ActivityZCJBRewardView.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. using FairyGUI;
  2. using UI.ActivityMain;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using ET;
  6. using UnityEngine;
  7. using System;
  8. using cfg.GfgCfg;
  9. namespace GFGGame
  10. {
  11. public class ActivityZCJBRewardView : BaseWindow
  12. {
  13. private UI_ActivityZCJBRewardUI _ui;
  14. private List<ActivityDressCfg> zcjbCfgList = new List<ActivityDressCfg>();
  15. private int lastGotIndex;
  16. public override void Dispose()
  17. {
  18. if (_ui != null)
  19. {
  20. _ui.Dispose();
  21. _ui = null;
  22. }
  23. base.Dispose();
  24. }
  25. protected override void OnInit()
  26. {
  27. base.OnInit();
  28. packageName = UI_ActivityZCJBRewardUI.PACKAGE_NAME;
  29. _ui = UI_ActivityZCJBRewardUI.Create();
  30. this.viewCom = _ui.target;
  31. isfullScreen = true;
  32. modal = true;
  33. _ui.m_back.onClick.Add(this.Hide);
  34. _ui.m_backBtn.onClick.Add(this.Hide);
  35. _ui.m_List.itemRenderer = RenderRewardList;
  36. }
  37. protected override void OnShown()
  38. {
  39. base.OnShown();
  40. int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(17);
  41. zcjbCfgList = CommonDataManager.Tables.TblActivityDressCfg.GetGroup1ByActivityId(activityId);
  42. _ui.m_List.numItems = zcjbCfgList.Count;
  43. UpdateList();
  44. _ui.m_List.ScrollToView(Mathf.Max(0, ActivityDataManager.Instance.ActivityZCJBList.Count - 1), false, true);
  45. }
  46. protected override void OnHide()
  47. {
  48. base.OnHide();
  49. }
  50. private void RenderRewardList(int index, GObject obj)
  51. {
  52. UI_ActivityRewardItemUI item = UI_ActivityRewardItemUI.Proxy(obj);
  53. ItemCfg costItem = CommonDataManager.Tables.TblItemCfg.GetOrDefault(zcjbCfgList[index].Comsume[0].ItemId);
  54. ItemData numItem;
  55. long num;
  56. if (BagDataManager.Instance.GetBagData().TryGetValue(zcjbCfgList[index].Comsume[0].ItemId, out numItem))
  57. {
  58. num = numItem.num;
  59. }
  60. else
  61. {
  62. num = 0;
  63. }
  64. //根据状态修改
  65. if (index < ActivityDataManager.Instance.ActivityZCJBList.Count)
  66. {
  67. item.m_RewardBtn.m_c1.selectedIndex = 2;
  68. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  69. }
  70. else
  71. {
  72. item.m_RewardBtn.m_c1.selectedIndex = 0;
  73. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  74. //设置锁的样式
  75. }
  76. if (index == ActivityDataManager.Instance.ActivityZCJBList.Count)
  77. {
  78. if (num >= zcjbCfgList[index].Comsume[0].Count)
  79. {
  80. item.m_RewardBtn.m_c1.selectedIndex = 1;
  81. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, true);
  82. }
  83. else
  84. {
  85. item.m_RewardBtn.m_c1.selectedIndex = 3;
  86. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  87. }
  88. }
  89. //
  90. item.m_rewardName.text = "使用" + costItem.Name + "*" + zcjbCfgList[index].Comsume[0].Count + "兑换";
  91. if (item.m_RewardBtn.target.data == null)
  92. {
  93. item.m_RewardBtn.target.onClick.Add(OnClickRewardBtn);
  94. }
  95. item.m_RewardBtn.target.data = index + 1;
  96. if (item.m_List.data == null)
  97. {
  98. item.m_List.itemRenderer = RenderRewardItemList;
  99. }
  100. item.m_List.data = zcjbCfgList[index].Bonus.ToGfgGameItemParam();
  101. item.m_List.numItems = zcjbCfgList[index].Bonus.Count;
  102. //最后一档特殊处理
  103. //if(index == zcjbCfgList.Length - 1)
  104. //{
  105. // item.m_rewardNum.visible = true;
  106. // int numChange = GameGlobal.myNumericComponent.GetAsInt(NumericType.ActivityDressLastGearRewrdNum);
  107. // item.m_rewardNum.text = string.Format("已兑换次数:{0}/{1}", numChange, 50);
  108. // RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  109. //}
  110. //else
  111. {
  112. item.m_rewardNum.visible = false;
  113. }
  114. UI_ActivityRewardItemUI.ProxyEnd();
  115. }
  116. private async void OnClickRewardBtn(EventContext context)
  117. {
  118. if (!(context.sender is GObject btnGet)) return;
  119. int itemCfg = (int)btnGet.data;
  120. UI_ActivityRewardItemUI item = UI_ActivityRewardItemUI.Proxy(_ui.m_List.GetChildAt(itemCfg - 1));
  121. if (item.m_RewardBtn.m_c1.selectedIndex == 1)
  122. {
  123. bool result = await ActivitySProxy.ReqActivityZCJBReward(
  124. ActivityDataManager.Instance.GetCurOpenActiveByType(17), zcjbCfgList[itemCfg - 1].Id);
  125. if (!result) return;
  126. GetSuitItemController.TryShow(0);
  127. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  128. UI_ActivityRewardItemUI.ProxyEnd();
  129. _ui.m_List.numItems = zcjbCfgList.Count;
  130. UpdateList();
  131. }
  132. else if (item.m_RewardBtn.m_c1.selectedIndex == 0)
  133. {
  134. PromptController.Instance.ShowFloatTextPrompt("请优先兑换前置物品!");
  135. }
  136. else if (item.m_RewardBtn.m_c1.selectedIndex == 3)
  137. {
  138. PromptController.Instance.ShowFloatTextPrompt("数量不够!");
  139. }
  140. }
  141. private void RenderRewardItemList(int index, GObject obj)
  142. {
  143. var rewards = (List<ItemParamProto>)obj.parent.data;
  144. ItemUtil.CreateItemView(rewards[index], obj as GComponent);
  145. }
  146. private void UpdateList()
  147. {
  148. ItemData numItem;
  149. long num;
  150. if (BagDataManager.Instance.GetBagData().TryGetValue(zcjbCfgList[0].Comsume[0].ItemId, out numItem))
  151. {
  152. num = numItem.num;
  153. }
  154. else
  155. {
  156. num = 0;
  157. }
  158. ItemCfg item = CommonDataManager.Tables.TblItemCfg.GetOrDefault(zcjbCfgList[0].Comsume[0].ItemId);
  159. _ui.m_num.text = item.Name + ":" + num;
  160. }
  161. }
  162. }