ChallengeRewardView.cs 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. using FairyGUI;
  5. using UI.MiniGame;
  6. using UnityEngine;
  7. using System.Reflection;
  8. namespace GFGGame
  9. {
  10. public class ChallengeRewardView : BaseWindow
  11. {
  12. private UI_ChallengeRewardsUI _ui;
  13. private List<int> gameList = new List<int>();
  14. private MiniGame[] gameNameDate;
  15. //由于每个游戏都有一个表
  16. private List<CardGame> CardGameDate;
  17. private List<GameInfoProto> CardGameInfo = new List<GameInfoProto>();
  18. private List<Merge2048Game> Merge2048GameDate;
  19. private List<GameInfoProto> Merge2048GameInfo = new List<GameInfoProto>();
  20. private int oneNumItems;
  21. private int twoNumItems;
  22. public override void Dispose()
  23. {
  24. if (_ui != null)
  25. {
  26. _ui.Dispose();
  27. _ui = null;
  28. }
  29. base.Dispose();
  30. }
  31. protected override void OnInit()
  32. {
  33. base.OnInit();
  34. packageName = UI_ChallengeRewardsUI.PACKAGE_NAME;
  35. _ui = UI_ChallengeRewardsUI.Create();
  36. this.viewCom = _ui.target;
  37. isfullScreen = true;
  38. _ui.m_exit.onClick.Add(Hide);
  39. _ui.m_reward.m_rewardOneList.itemRenderer = RenderListOne;
  40. _ui.m_reward.m_rewardTwoList.itemRenderer = RenderListTwo;
  41. }
  42. protected override void OnShown()
  43. {
  44. base.OnShown();
  45. gameList = (this.viewData as object[])[0] as List<int>;
  46. for(int i= 0;i< gameList.Count; i+=2)
  47. {
  48. GetGameArray(gameList[i], gameList[i + 1],i);
  49. }
  50. switch(gameList.Count)
  51. {
  52. case 0:
  53. oneNumItems = 0;
  54. break;
  55. case 2:
  56. oneNumItems = 3;
  57. break;
  58. case 4:
  59. oneNumItems = 3;
  60. break;
  61. default:
  62. oneNumItems = 0;
  63. break;
  64. }
  65. foreach(GameInfoProto t in MiniGameDateManager.Instance.gameinfoList)
  66. {
  67. if(t.GameType == 1)
  68. {
  69. CardGameInfo.Add(t);
  70. }
  71. if(t.GameType == 2)
  72. {
  73. Merge2048GameInfo.Add(t);
  74. }
  75. }
  76. _ui.m_reward.m_rewardOneList.numItems = CardGameInfo[0].StarRewardStatus.Count == 0? CardGameInfo.Count : CardGameInfo[0].StarRewardStatus.Count;
  77. oneNumItems = CardGameInfo[0].StarRewardStatus.Count == 0 ? CardGameInfo.Count : CardGameInfo[0].StarRewardStatus.Count;
  78. _ui.m_reward.m_rewardTwoList.numItems = Merge2048GameInfo[0].StarRewardStatus.Count == 0 ? Merge2048GameInfo.Count : Merge2048GameInfo[0].StarRewardStatus.Count;
  79. twoNumItems = Merge2048GameInfo[0].StarRewardStatus.Count == 0 ? Merge2048GameInfo.Count : Merge2048GameInfo[0].StarRewardStatus.Count;
  80. }
  81. protected override void OnHide()
  82. {
  83. base.OnHide();
  84. }
  85. private void RenderListOne(int index ,GObject obj)
  86. {
  87. UI_ChallengeRewardItemUI item = UI_ChallengeRewardItemUI.Proxy(obj);
  88. int starNum = 3 - index;
  89. item.m_rewardDesc.text = string.Format("{0}游戏首次{1}星通关",MiniGameArray.Instance.GetCfg(gameList[0]).typeName, starNum);
  90. item.m_rewardList.itemRenderer = RenditemReward;
  91. //var reward;
  92. item.m_getBtn.m_c1.selectedIndex = MiniGameDateManager.Instance.gameinfoList[0].StarRewardStatus[2 - index];
  93. item.m_rewardList.data = gameList[0];
  94. item.m_rewardList.numItems = CardGameDate[0].bonusStar3Arr.Length;
  95. if (item.m_getBtn.target.data == null)
  96. {
  97. item.m_getBtn.target.onClick.Add(OnBtnGoClick);
  98. }
  99. List<int> rewardList = new List<int>();
  100. List<int> starList = new List<int>() { CardGameDate[0].timeStar3, CardGameDate[0].timeStar2, CardGameDate[0].timeStar1 };
  101. rewardList.Add(CardGameDate[0].id);
  102. rewardList.Add(CardGameDate[0].type);
  103. rewardList.Add(1);
  104. rewardList.Add(3-index);
  105. rewardList.Add(MiniGameDateManager.Instance.gameinfoList[0].StarRewardStatus[2 - index]);
  106. item.m_getBtn.target.data = rewardList;
  107. UI_ChallengeRewardItemUI.ProxyEnd();
  108. }
  109. private void RenderListTwo(int index , GObject obj)
  110. {
  111. UI_ChallengeRewardItemUI item = UI_ChallengeRewardItemUI.Proxy(obj);
  112. int starNum = 3 - index;
  113. item.m_rewardDesc.text = string.Format("{0}游戏关卡{1}首次通关", MiniGameArray.Instance.GetCfg(gameList[2]).typeName,index+1);
  114. item.m_rewardList.itemRenderer = RenditemReward;
  115. //读表
  116. //var reward;
  117. item.m_getBtn.m_c1.selectedIndex = Merge2048GameInfo[index].FirstPassRewardStatus;
  118. item.m_rewardList.data = gameList[2];
  119. item.m_rewardList.numItems = Merge2048GameDate[index].bonusWinFirstArr.Length;
  120. if (item.m_getBtn.target.data == null)
  121. {
  122. item.m_getBtn.target.onClick.Add(OnBtnGoClick);
  123. }
  124. List<int> rewardList = new List<int>();
  125. List<int> starList = new List<int>() { Merge2048GameDate[0].timeStar3, Merge2048GameDate[0].timeStar2, Merge2048GameDate[0].timeStar1 };
  126. rewardList.Add(Merge2048GameDate[0].id);
  127. rewardList.Add(Merge2048GameDate[0].type);
  128. rewardList.Add(1);
  129. rewardList.Add(3 - index);
  130. rewardList.Add(Merge2048GameInfo[index].FirstPassRewardStatus);
  131. item.m_getBtn.target.data = rewardList;
  132. UI_ChallengeRewardItemUI.ProxyEnd();
  133. }
  134. private void RenditemReward(int index, GObject obj)
  135. {
  136. UI_ChallengeRewardItem item = UI_ChallengeRewardItem.Proxy(obj);
  137. int num = 3 - index;
  138. if((int)item.target.parent.data == 1)
  139. {
  140. switch (num)
  141. {
  142. case 1:
  143. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar1Arr[0][0]).res);
  144. item.m_Num.text = CardGameDate[0].bonusStar1Arr[0][1].ToString();
  145. break;
  146. case 2:
  147. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar2Arr[0][0]).res);
  148. item.m_Num.text = CardGameDate[0].bonusStar2Arr[0][1].ToString();
  149. break;
  150. case 3:
  151. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar3Arr[0][0]).res);
  152. item.m_Num.text = CardGameDate[0].bonusStar3Arr[0][1].ToString();
  153. break;
  154. default:
  155. break;
  156. }
  157. }
  158. else
  159. {
  160. switch (num)
  161. {
  162. case 1:
  163. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[0].bonusWinFirstArr[0][0]).res);
  164. item.m_Num.text = Merge2048GameDate[0].bonusWinFirstArr[0][1].ToString();
  165. break;
  166. case 2:
  167. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[1].bonusWinFirstArr[0][0]).res);
  168. item.m_Num.text = Merge2048GameDate[1].bonusWinFirstArr[0][1].ToString();
  169. break;
  170. case 3:
  171. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[2].bonusWinFirstArr[0][0]).res);
  172. item.m_Num.text = Merge2048GameDate[2].bonusWinFirstArr[0][1].ToString();
  173. break;
  174. default:
  175. break;
  176. }
  177. }
  178. UI_ChallengeRewardItem.ProxyEnd();
  179. }
  180. private async void OnBtnGoClick(EventContext context)
  181. {
  182. if (!(context.sender is GObject btnGet)) return;
  183. List<int> itemList = btnGet.data as List<int>;
  184. if (itemList[4] != 1)
  185. {
  186. return;
  187. }
  188. if (itemList[1] == 1)
  189. {
  190. var result = await MiniGameProxy.ReqGetReward(itemList[0], itemList[1], itemList[2], itemList[3]);
  191. if (!result) return;
  192. }
  193. else if(itemList[1] == 2)
  194. {
  195. var result = await MiniGameProxy.ReqGetFirstPassReward(itemList[0], itemList[1], itemList[2]);
  196. if (!result) return;
  197. }
  198. _ui.m_reward.m_rewardOneList.numItems = oneNumItems;
  199. _ui.m_reward.m_rewardTwoList.numItems = twoNumItems;
  200. }
  201. private void GetGameArray(int i,int j,int index)
  202. {
  203. switch(i)
  204. {
  205. case 1:
  206. CardGameDate = CardGameArray.Instance.GetCfgsBytypeAndsubType(i,j);
  207. break;
  208. case 2:
  209. Merge2048GameDate = Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(i,j);
  210. break;
  211. default:
  212. break;
  213. }
  214. }
  215. }
  216. }