StoreSummerGiftView.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using ET;
  5. using FairyGUI;
  6. using UI.Store;
  7. using UI.CommonGame;
  8. using UnityEngine;
  9. using static GFGGame.ShopSProxy;
  10. namespace GFGGame
  11. {
  12. class StoreSummerGiftView : BaseWindow
  13. {
  14. private UI_StoreSummerGiftUI _ui;
  15. private List<CoolDownCfg> _rewardCfgs;
  16. private ActivityOpenCfg activityOpenCfg;
  17. public override void Dispose()
  18. {
  19. if (_ui != null)
  20. {
  21. _ui.Dispose();
  22. _ui = null;
  23. }
  24. base.Dispose();
  25. }
  26. protected override void OnInit()
  27. {
  28. base.OnInit();
  29. packageName = UI_StoreSummerGiftUI.PACKAGE_NAME;
  30. _ui = UI_StoreSummerGiftUI.Create();
  31. viewCom = _ui.target;
  32. isfullScreen = true;
  33. clickBlankToClose = false;
  34. _ui.m_btnOpen.onClick.Add(OnBtnOpenClick);
  35. _ui.m_btnGetAll.onClick.Add(OnBtnGetAllClick);
  36. _ui.m_RewardList.itemRenderer = ListBoxRewardItemRender;
  37. //_ui.m_tip.onClick.Add(RuleController.ShowRuleView);
  38. //_ui.m_tip.data = 300012;
  39. }
  40. protected override void OnHide()
  41. {
  42. base.OnHide();
  43. Timers.inst.Remove(UpdateTime);
  44. }
  45. protected override void OnShown()
  46. {
  47. base.OnShown();
  48. activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(ActivityAfuGiftDataManager.Instance.SummerActivityID);
  49. FreshReward();
  50. Timers.inst.AddUpdate(UpdateTime);
  51. }
  52. protected override void AddEventListener()
  53. {
  54. base.AddEventListener();
  55. //监听通行证等级变化
  56. EventAgent.AddEventListener(ConstMessage.SHOP_BUY, SetBuyBtnStatus);
  57. EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, FreshReward);
  58. }
  59. protected override void RemoveEventListener()
  60. {
  61. base.RemoveEventListener();
  62. EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, SetBuyBtnStatus);
  63. EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, FreshReward);
  64. }
  65. //购买礼包
  66. private async void OnBtnOpenClick(EventContext context)
  67. {
  68. if(GetBuyStatus())
  69. {
  70. return;
  71. }
  72. await ReqShopBuy(activityOpenCfg.paramsArr[0]);
  73. await ActivityAfuGiftSProxy.GetSummerGiftInfo();
  74. _ui.m_RewardList.numItems = _rewardCfgs.Count;
  75. }
  76. //领取全部奖励
  77. private async void OnBtnGetAllClick(EventContext context)
  78. {
  79. if(!ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState())
  80. {
  81. return;
  82. }
  83. await ActivityAfuGiftSProxy.ReqGetSummerGiftAllReward();
  84. _ui.m_RewardList.numItems = _rewardCfgs.Count;
  85. }
  86. private void ListBoxRewardItemRender(int index, GObject obj)
  87. {
  88. var item = UI_BrocadeWeavRewardItem.Proxy(obj);
  89. var level = index;
  90. var battlePassCfg = _rewardCfgs[level];
  91. item.m_Level.text = (index + 1).ToString();
  92. //设置奖励
  93. var bonusNormalArr = battlePassCfg.bonusFreeArr;
  94. if (bonusNormalArr != null && bonusNormalArr.Length > 0)
  95. {
  96. item.m_NormalReward.visible = true;
  97. ItemCfg itemNormal = ItemCfgArray.Instance.GetCfg(bonusNormalArr[0][0]);
  98. UI_ComItem comItem = UI_ComItem.Proxy(item.m_NormalReward);
  99. comItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemNormal);
  100. comItem.m_txtCount.text = bonusNormalArr[0][1].ToString();
  101. comItem.m_QualityType.selectedIndex = itemNormal.rarity - 1;
  102. if (index <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[0].Count)
  103. {
  104. if (ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[0][index] == 2)
  105. {
  106. comItem.m_grpGot.visible = true;
  107. }
  108. else
  109. {
  110. comItem.m_grpGot.visible = false;
  111. }
  112. }
  113. else
  114. {
  115. comItem.m_grpGot.visible = false;
  116. }
  117. if (comItem.target.data == null)
  118. {
  119. comItem.target.onClick.Add(OnItemClick);
  120. }
  121. comItem.target.data = new List<int>() { 0, index, bonusNormalArr[0][0] };
  122. if (index <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[0].Count)
  123. {
  124. RedDotController.Instance.SetComRedDot(item.m_NormalReward, ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[0][index] == 1, "", -12, 24);
  125. }
  126. UI_ComItem.ProxyEnd();
  127. }
  128. else
  129. {
  130. item.m_NormalReward.data = null;
  131. item.m_NormalReward.visible = false;
  132. }
  133. if (item.m_RewardList.data == null)
  134. {
  135. item.m_RewardList.itemRenderer = SpecialRewardRender;
  136. }
  137. item.m_RewardList.data = _rewardCfgs[index];
  138. item.m_RewardList.numItems = battlePassCfg.bonusPayArr.Length;
  139. UI_BrocadeWeavRewardItem.ProxyEnd();
  140. }
  141. private void SpecialRewardRender(int index, GObject obj)
  142. {
  143. var keyValuePair = (CoolDownCfg)obj.parent.data;
  144. var itemInfo = keyValuePair.bonusPayArr;
  145. int day = keyValuePair.num - 1;
  146. ItemCfg itemNormal = ItemCfgArray.Instance.GetCfg(itemInfo[index][0]);
  147. UI_ComItem comItem = UI_ComItem.Proxy(obj);
  148. comItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemNormal);
  149. comItem.m_txtCount.text = itemInfo[index][1].ToString();
  150. comItem.m_QualityType.selectedIndex = itemNormal.rarity - 1;
  151. if (day <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[1].Count)
  152. {
  153. if (ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[1][day] == 2)
  154. {
  155. comItem.m_grpGot.visible = true;
  156. }
  157. else
  158. {
  159. comItem.m_grpGot.visible = false;
  160. }
  161. }
  162. if (comItem.target.data == null)
  163. {
  164. comItem.target.onClick.Add(OnItemClick);
  165. }
  166. comItem.target.data = new List<int>() {1, day, itemInfo[index][0] };
  167. if (day <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[1].Count)
  168. {
  169. RedDotController.Instance.SetComRedDot(comItem.target, ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[1][day] == 1, "", -12, 24);
  170. }
  171. UI_ComItem.ProxyEnd();
  172. }
  173. private void OnItemClick(EventContext eventContext)
  174. {
  175. GObject sender = eventContext.sender as GObject;
  176. List<int> info = (List<int>)sender.data;
  177. if(info[1] <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[info[0]].Count)
  178. {
  179. if (ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[info[0]][info[1]] == 1)
  180. {
  181. if(info[0] == 0)
  182. {
  183. ActivityAfuGiftSProxy.ReqGetSummerGiftReward(false,info[1] + 1).Coroutine();
  184. }
  185. else
  186. {
  187. ActivityAfuGiftSProxy.ReqGetSummerGiftReward(true,info[1] + 1).Coroutine();
  188. }
  189. _ui.m_RewardList.numItems = _rewardCfgs.Count;
  190. RedDotController.Instance.SetComRedDot(_ui.m_btnGetAll, ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState(), "");
  191. }
  192. else
  193. {
  194. GoodsItemTipsController.ShowItemTips(info[2]);
  195. }
  196. }
  197. }
  198. private void UpdateTime(object param)
  199. {
  200. long curTime = TimeHelper.ServerNow();
  201. var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(ActivityAfuGiftDataManager.Instance.SummerActivityID);
  202. if (activityInfo != null)
  203. {
  204. long endTime = activityInfo.EndTime;
  205. _ui.m_LeftTime.text = TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
  206. }
  207. else
  208. {
  209. _ui.m_LeftTime.text = "";
  210. }
  211. }
  212. private void FreshReward()
  213. {
  214. //刷新奖励列表
  215. _rewardCfgs = CoolDownCfgArray.Instance.dataArray.ToList();
  216. //去掉第一个为0的配置
  217. _ui.m_RewardList.numItems = _rewardCfgs.Count;
  218. SetBuyBtnStatus();
  219. }
  220. private void SetBuyBtnStatus(EventContext context = null)
  221. {
  222. //通行证是否购买
  223. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(activityOpenCfg.paramsArr[0]);
  224. int buyNum = ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id);
  225. if (shopCfg.maxBuyNum == 0 || buyNum < shopCfg.maxBuyNum)
  226. {
  227. _ui.m_btnOpen.text = "¥ 68 解 锁";
  228. _ui.m_btnGetAll.visible = false;
  229. }
  230. else
  231. {
  232. _ui.m_btnOpen.text = "已解锁";
  233. _ui.m_btnGetAll.visible = true;
  234. }
  235. RedDotController.Instance.SetComRedDot(_ui.m_btnGetAll, ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState(), "");
  236. }
  237. private bool GetBuyStatus()
  238. {
  239. //通行证是否购买
  240. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(activityOpenCfg.paramsArr[0]);
  241. int buyNum = ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id);
  242. if (shopCfg.maxBuyNum == 0 || buyNum < shopCfg.maxBuyNum)
  243. {
  244. return false;
  245. }
  246. else
  247. {
  248. return true;
  249. }
  250. }
  251. }
  252. }