StoreSummerGiftView.cs 11 KB

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