ActivityThemeLuckyBoxTaskView.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using System.Collections.Generic;
  2. using ET;
  3. using FairyGUI;
  4. using UI.ActivityThemeLuckyBox;
  5. using UnityEngine;
  6. namespace GFGGame
  7. {
  8. public class ActivityThemeLuckyBoxTaskView : BaseWindow
  9. {
  10. private UI_ActivityThemeLuckyBoxTaskUI _ui;
  11. private List<TaskCfg> _taskCfgs = new List<TaskCfg>();
  12. public override void Dispose()
  13. {
  14. if (_ui != null)
  15. {
  16. _ui.Dispose();
  17. _ui = null;
  18. }
  19. base.Dispose();
  20. }
  21. protected override void OnInit()
  22. {
  23. base.OnInit();
  24. packageName = UI_ActivityThemeLuckyBoxTaskUI.PACKAGE_NAME;
  25. _ui = UI_ActivityThemeLuckyBoxTaskUI.Create();
  26. this.viewCom = _ui.target;
  27. this.viewCom.Center();
  28. this.modal = true;
  29. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  30. _ui.m_list.itemRenderer = RenderListItem;
  31. }
  32. protected override void AddEventListener()
  33. {
  34. base.AddEventListener();
  35. }
  36. protected override void OnShown()
  37. {
  38. base.OnShown();
  39. UpdateView();
  40. }
  41. protected override void OnHide()
  42. {
  43. base.OnHide();
  44. }
  45. protected override void RemoveEventListener()
  46. {
  47. base.RemoveEventListener();
  48. }
  49. private void UpdateView()
  50. {
  51. _taskCfgs = TaskDataManager.Instance.GetTaskCfgs(TaskType.LuckyBoxActivity); //TaskCfgArray.Instance.GetCfgsBytaskType(TaskType.LuckyBoxActivity);
  52. _ui.m_list.numItems = _taskCfgs.Count;
  53. }
  54. private void RenderListItem(int index, GObject obj)
  55. {
  56. UI_ListItem item = UI_ListItem.Proxy(obj);
  57. //领取状态
  58. int state = TaskDataManager.Instance.GetTaskStateById(_taskCfgs[index].id);
  59. item.m_c1.selectedIndex = state == ConstBonusStatus.CAN_NOT_GET && !string.IsNullOrEmpty(_taskCfgs[index].jumpId) ? 3 : state;
  60. item.m_txtTitle.text = string.Format("{0}({1}/{2})", TaskDataManager.Instance.GetTaskDesc(_taskCfgs[index].id), TaskDataManager.Instance.GetTaskProgressById(_taskCfgs[index].id), _taskCfgs[index].GetTargetCount());
  61. if (item.m_btnGet.data == null)
  62. {
  63. item.m_btnGet.onClick.Add(OnBtnGetClick);
  64. }
  65. item.m_btnGet.data = _taskCfgs[index].id;
  66. if (item.m_btnGo.data == null)
  67. {
  68. item.m_btnGo.onClick.Add(OnBtnGoClick);
  69. }
  70. item.m_btnGo.data = _taskCfgs[index];
  71. if (item.m_listRewards.data == null)
  72. {
  73. item.m_listRewards.itemRenderer = RenderListRewardItem;
  74. }
  75. item.m_listRewards.data = _taskCfgs[index].rewardsArr;
  76. item.m_listRewards.numItems = _taskCfgs[index].rewardsArr.Length;
  77. UI_ListItem.ProxyEnd();
  78. }
  79. private void RenderListRewardItem(int index, GObject obj)
  80. {
  81. int[][] bonus = (int[][])obj.parent.data;
  82. ItemData reward = ItemUtil.createItemData(bonus[index]);
  83. if (obj.data == null)
  84. {
  85. obj.data = new ItemView(obj as GComponent);
  86. }
  87. (obj.data as ItemView).SetData(reward);
  88. (obj.data as ItemView).ChangeTxtCountStyle();
  89. }
  90. private async void OnBtnGetClick(EventContext context)
  91. {
  92. if (!(context.sender is GObject btnGet)) return;
  93. var result = await TaskSProxy.GetTaskBonus((int)btnGet.data);
  94. if (!result) return;
  95. UpdateView();
  96. }
  97. private void OnBtnGoClick(EventContext context)
  98. {
  99. // Hide();
  100. if (!(context.sender is GObject btnGo)) return;
  101. TaskCfg taskCfg = btnGo.data as TaskCfg;
  102. object[] param = new object[taskCfg.jumpParamArr.Length];
  103. for (int i = 0; i < taskCfg.jumpParamArr.Length; i++)
  104. {
  105. param[i] = taskCfg.jumpParamArr[i];
  106. }
  107. TaskDataManager.Instance.JumpToView(taskCfg.jumpId, param, new object[] { typeof(ActivityThemeLuckyBoxView).FullName, true });
  108. }
  109. }
  110. }