ActivityZCJBRewardView.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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. namespace GFGGame
  9. {
  10. public class ActivityZCJBRewardView : BaseWindow
  11. {
  12. private UI_ActivityZCJBRewardUI _ui;
  13. private int lastGotIndex;
  14. public override void Dispose()
  15. {
  16. if (_ui != null)
  17. {
  18. _ui.Dispose();
  19. _ui = null;
  20. }
  21. base.Dispose();
  22. }
  23. protected override void OnInit()
  24. {
  25. base.OnInit();
  26. packageName = UI_ActivityZCJBRewardUI.PACKAGE_NAME;
  27. _ui = UI_ActivityZCJBRewardUI.Create();
  28. this.viewCom = _ui.target;
  29. isfullScreen = true;
  30. modal = true;
  31. _ui.m_back.onClick.Add(this.Hide);
  32. _ui.m_List.itemRenderer = RenderRewardList;
  33. }
  34. protected override void OnShown()
  35. {
  36. base.OnShown();
  37. UpdateList();
  38. _ui.m_List.numItems = ActivityDressCfgArray.Instance.dataArray.Length;
  39. _ui.m_List.ScrollToView(Mathf.Max(0, ActivityDataManager.Instance.ActivityZCJBList.Count - 1), false, true);
  40. }
  41. protected override void OnHide()
  42. {
  43. base.OnHide();
  44. }
  45. private void RenderRewardList(int index, GObject obj)
  46. {
  47. UI_ActivityRewardItemUI item = UI_ActivityRewardItemUI.Proxy(obj);
  48. ItemCfg costItem = ItemCfgArray.Instance.GetCfg(ActivityDressCfgArray.Instance.dataArray[index].comsumeArr[0][0]);
  49. ItemData numItem;
  50. long num;
  51. if (BagDataManager.Instance.GetBagData().TryGetValue(3000023, out numItem))
  52. {
  53. num = numItem.num;
  54. }
  55. else
  56. {
  57. num = 0;
  58. }
  59. //根据状态修改
  60. if (index < ActivityDataManager.Instance.ActivityZCJBList.Count)
  61. {
  62. item.m_RewardBtn.m_c1.selectedIndex = 2;
  63. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  64. }
  65. else
  66. {
  67. item.m_RewardBtn.m_c1.selectedIndex = 0;
  68. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  69. //设置锁的样式
  70. }
  71. if(index == ActivityDataManager.Instance.ActivityZCJBList.Count)
  72. {
  73. if(num >= ActivityDressCfgArray.Instance.dataArray[index].comsumeArr[0][1])
  74. {
  75. item.m_RewardBtn.m_c1.selectedIndex = 1;
  76. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, true);
  77. }
  78. else
  79. {
  80. item.m_RewardBtn.m_c1.selectedIndex = 3;
  81. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  82. }
  83. }
  84. //
  85. item.m_rewardName.text = "消耗" + costItem.name + "*"+ ActivityDressCfgArray.Instance.dataArray[index].comsumeArr[0][1] + "兑换";
  86. if (item.m_RewardBtn.target.data == null)
  87. {
  88. item.m_RewardBtn.target.onClick.Add(OnClickRewardBtn);
  89. }
  90. item.m_RewardBtn.target.data = index + 1;
  91. if(item.m_List.data == null)
  92. {
  93. item.m_List.itemRenderer = RenderRewardItemList;
  94. }
  95. item.m_List.data = ActivityDressCfgArray.Instance.dataArray[index].bonusArr;
  96. item.m_List.numItems = ActivityDressCfgArray.Instance.dataArray[index].bonusArr.Length;
  97. UI_ActivityRewardItemUI.ProxyEnd();
  98. }
  99. private async void OnClickRewardBtn(EventContext context)
  100. {
  101. if (!(context.sender is GObject btnGet)) return;
  102. int itemCfg = (int)btnGet.data;
  103. UI_ActivityRewardItemUI item = UI_ActivityRewardItemUI.Proxy(_ui.m_List.GetChildAt(itemCfg - 1));
  104. if(item.m_RewardBtn.m_c1.selectedIndex == 1)
  105. {
  106. bool result = await ActivitySProxy.ReqActivityZCJBReward(5006, itemCfg);
  107. if (!result) return;
  108. GetSuitItemController.TryShow(0);
  109. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  110. UI_ActivityRewardItemUI.ProxyEnd();
  111. _ui.m_List.numItems = ActivityDressCfgArray.Instance.dataArray.Length;
  112. UpdateList();
  113. }
  114. }
  115. private void RenderRewardItemList(int index, GObject obj)
  116. {
  117. var rewards = (int[][])obj.parent.data;
  118. ItemUtil.CreateItemView(rewards[index], obj as GComponent);
  119. }
  120. private void UpdateList()
  121. {
  122. ItemData numItem;
  123. long num;
  124. if (BagDataManager.Instance.GetBagData().TryGetValue(3000023, out numItem))
  125. {
  126. num = numItem.num;
  127. }
  128. else
  129. {
  130. num = 0;
  131. }
  132. _ui.m_num.text = "金元宝:" + num;
  133. }
  134. }
  135. }