ChallengeRewardView.cs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  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;
  18. private List<Merge2048Game> Merge2048GameDate;
  19. private List<GameInfoProto> Merge2048GameInfo;
  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. _ui.m_reward.m_rewardTwoList.numItems = Merge2048GameInfo[0].StarRewardStatus.Count == 0 ? Merge2048GameInfo.Count : Merge2048GameInfo[0].StarRewardStatus.Count;
  78. }
  79. protected override void OnHide()
  80. {
  81. base.OnHide();
  82. }
  83. private void RenderListOne(int index ,GObject obj)
  84. {
  85. UI_ChallengeRewardItemUI item = UI_ChallengeRewardItemUI.Proxy(obj);
  86. int starNum = 3 - index;
  87. item.m_rewardDesc.text = string.Format("{0}游戏首次{1}星通关",MiniGameArray.Instance.GetCfg(gameList[0]).typeName, starNum);
  88. item.m_rewardList.itemRenderer = RenditemReward;
  89. //var reward;
  90. item.m_getBtn.m_c1.selectedIndex = MiniGameDateManager.Instance.gameinfoList[0].StarRewardStatus[2 - index];
  91. item.m_rewardList.data = gameList[0];
  92. item.m_rewardList.numItems = CardGameDate[0].bonusStar3Arr.Length;
  93. if (item.m_getBtn.target.data == null)
  94. {
  95. item.m_getBtn.target.onClick.Add(OnBtnGoClick);
  96. }
  97. List<int> rewardList = new List<int>();
  98. List<int> starList = new List<int>() { CardGameDate[0].timeStar3, CardGameDate[0].timeStar2, CardGameDate[0].timeStar1 };
  99. rewardList.Add(CardGameDate[0].id);
  100. rewardList.Add(CardGameDate[0].type);
  101. rewardList.Add(1);
  102. rewardList.Add(3-index);
  103. rewardList.Add(MiniGameDateManager.Instance.gameinfoList[0].StarRewardStatus[2 - index]);
  104. item.m_getBtn.target.data = rewardList;
  105. UI_ChallengeRewardItemUI.ProxyEnd();
  106. }
  107. private void RenderListTwo(int index , GObject obj)
  108. {
  109. UI_ChallengeRewardItemUI item = UI_ChallengeRewardItemUI.Proxy(obj);
  110. int starNum = 3 - index;
  111. item.m_rewardDesc.text = string.Format("{0}游戏关卡{1}首次通关", MiniGameArray.Instance.GetCfg(gameList[2]).typeName,index);
  112. item.m_rewardList.itemRenderer = RenditemReward;
  113. //读表
  114. //var reward;
  115. item.m_getBtn.m_c1.selectedIndex = Merge2048GameInfo[index].IsCleared? 1:0;
  116. item.m_rewardList.data = gameList[2];
  117. item.m_rewardList.numItems = Merge2048GameDate[0].bonusStar3Arr.Length;
  118. if (item.m_getBtn.target.data == null)
  119. {
  120. item.m_getBtn.target.onClick.Add(OnBtnGoClick);
  121. }
  122. List<int> rewardList = new List<int>();
  123. List<int> starList = new List<int>() { Merge2048GameDate[0].timeStar3, Merge2048GameDate[0].timeStar2, Merge2048GameDate[0].timeStar1 };
  124. rewardList.Add(Merge2048GameDate[0].id);
  125. rewardList.Add(Merge2048GameDate[0].type);
  126. rewardList.Add(1);
  127. rewardList.Add(3 - index);
  128. rewardList.Add(Merge2048GameInfo[index].IsCleared ? 1 : 0);
  129. item.m_getBtn.target.data = rewardList;
  130. UI_ChallengeRewardItemUI.ProxyEnd();
  131. }
  132. private void RenditemReward(int index, GObject obj)
  133. {
  134. UI_ChallengeRewardItem item = UI_ChallengeRewardItem.Proxy(obj);
  135. int num = 3 - index;
  136. if((int)item.target.parent.data == 1)
  137. {
  138. switch (num)
  139. {
  140. case 1:
  141. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar1Arr[0][0]).res);
  142. item.m_Num.text = CardGameDate[0].bonusStar1Arr[0][1].ToString();
  143. break;
  144. case 2:
  145. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar2Arr[0][0]).res);
  146. item.m_Num.text = CardGameDate[0].bonusStar2Arr[0][1].ToString();
  147. break;
  148. case 3:
  149. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(CardGameDate[0].bonusStar3Arr[0][0]).res);
  150. item.m_Num.text = CardGameDate[0].bonusStar3Arr[0][1].ToString();
  151. break;
  152. default:
  153. break;
  154. }
  155. }
  156. else
  157. {
  158. switch (num)
  159. {
  160. case 1:
  161. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[0].bonusWinFirstArr[0][0]).res);
  162. item.m_Num.text = Merge2048GameDate[0].bonusWinFirstArr[0][1].ToString();
  163. break;
  164. case 2:
  165. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[1].bonusWinFirstArr[0][0]).res);
  166. item.m_Num.text = Merge2048GameDate[1].bonusWinFirstArr[0][1].ToString();
  167. break;
  168. case 3:
  169. item.m_icon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(Merge2048GameDate[2].bonusWinFirstArr[0][0]).res);
  170. item.m_Num.text = Merge2048GameDate[2].bonusWinFirstArr[0][1].ToString();
  171. break;
  172. default:
  173. break;
  174. }
  175. }
  176. UI_ChallengeRewardItem.ProxyEnd();
  177. }
  178. private async void OnBtnGoClick(EventContext context)
  179. {
  180. if (!(context.sender is GObject btnGet)) return;
  181. List<int> itemList = btnGet.data as List<int>;
  182. if(itemList[4] != 1)
  183. {
  184. return;
  185. }
  186. var result = await MiniGameProxy.ReqGetReward(itemList[0], itemList[1], itemList[2], itemList[3]);
  187. if (!result) return;
  188. _ui.m_reward.m_rewardOneList.numItems = oneNumItems;
  189. _ui.m_reward.m_rewardTwoList.numItems = twoNumItems;
  190. }
  191. private void GetGameArray(int i,int j,int index)
  192. {
  193. switch(i)
  194. {
  195. case 1:
  196. CardGameDate = CardGameArray.Instance.GetCfgsBytypeAndsubType(i,j);
  197. break;
  198. case 2:
  199. Merge2048GameDate = Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(i,j);
  200. break;
  201. default:
  202. break;
  203. }
  204. }
  205. }
  206. }