ChallengeRewardView.cs 9.9 KB

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