ActivityZCJBRewardView.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. _ui.m_backBtn.onClick.Add(this.Hide);
  31. _ui.m_List.itemRenderer = RenderRewardList;
  32. }
  33. protected override void OnShown()
  34. {
  35. base.OnShown();
  36. UpdateList();
  37. _ui.m_List.numItems = ActivityDressCfgArray.Instance.dataArray.Length;
  38. _ui.m_List.ScrollToView(ActivityDataManager.Instance.ActivityZCJBList.Count, false, true);
  39. }
  40. protected override void OnHide()
  41. {
  42. base.OnHide();
  43. }
  44. private void RenderRewardList(int index, GObject obj)
  45. {
  46. UI_ActivityRewardItemUI item = UI_ActivityRewardItemUI.Proxy(obj);
  47. ItemCfg costItem = ItemCfgArray.Instance.GetCfg(ActivityDressCfgArray.Instance.dataArray[index].comsumeArr[0][0]);
  48. ItemData numItem;
  49. long num;
  50. if (BagDataManager.Instance.GetBagData().TryGetValue(3000023, out numItem))
  51. {
  52. num = numItem.num;
  53. }
  54. else
  55. {
  56. num = 0;
  57. }
  58. //根据状态修改
  59. if (index < ActivityDataManager.Instance.ActivityZCJBList.Count)
  60. {
  61. item.m_RewardBtn.m_c1.selectedIndex = 2;
  62. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  63. }
  64. else
  65. {
  66. item.m_RewardBtn.m_c1.selectedIndex = 0;
  67. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
  68. //设置锁的样式
  69. }
  70. if(index == ActivityDataManager.Instance.ActivityZCJBList.Count)
  71. {
  72. if(num >= ActivityDressCfgArray.Instance.dataArray[index].comsumeArr[0][1])
  73. {
  74. item.m_RewardBtn.m_c1.selectedIndex = 1;
  75. RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, true);
  76. }
  77. }
  78. //
  79. item.m_rewardName.text = "消耗" + costItem.name + "*"+ ActivityDressCfgArray.Instance.dataArray[index].comsumeArr[0][1] + "兑换";
  80. if (item.m_RewardBtn.target.data == null)
  81. {
  82. item.m_RewardBtn.target.onClick.Add(OnClickRewardBtn);
  83. }
  84. item.m_RewardBtn.target.data = index + 1;
  85. if(item.m_List.data == null)
  86. {
  87. item.m_List.itemRenderer = RenderRewardItemList;
  88. }
  89. item.m_List.data = ActivityDressCfgArray.Instance.dataArray[index].bonusArr;
  90. item.m_List.numItems = ActivityDressCfgArray.Instance.dataArray[index].bonusArr.Length;
  91. UI_ActivityRewardItemUI.ProxyEnd();
  92. }
  93. private async void OnClickRewardBtn(EventContext context)
  94. {
  95. if (!(context.sender is GObject btnGet)) return;
  96. int itemCfg = (int)btnGet.data;
  97. UI_ActivityRewardItemUI item = UI_ActivityRewardItemUI.Proxy(_ui.m_List.GetChildAt(itemCfg - 1));
  98. if(item.m_RewardBtn.m_c1.selectedIndex == 1)
  99. {
  100. bool result = await ActivitySProxy.ReqActivityZCJBReward(5006, itemCfg);
  101. if (!result) return;
  102. UI_ActivityRewardItemUI.ProxyEnd();
  103. _ui.m_List.numItems = ActivityDressCfgArray.Instance.dataArray.Length;
  104. UpdateList();
  105. }
  106. }
  107. private void RenderRewardItemList(int index, GObject obj)
  108. {
  109. var rewards = (int[][])obj.parent.data;
  110. ItemUtil.CreateItemView(rewards[index], obj as GComponent);
  111. }
  112. private void UpdateList()
  113. {
  114. ItemData numItem;
  115. long num;
  116. if (BagDataManager.Instance.GetBagData().TryGetValue(3000023, out numItem))
  117. {
  118. num = numItem.num;
  119. }
  120. else
  121. {
  122. num = 0;
  123. }
  124. _ui.m_num.text = "金元宝:" + num;
  125. }
  126. }
  127. }