ChallengeRewardView.cs 8.5 KB

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