TaskAchieveDetailView.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. using FairyGUI;
  2. using System.Collections.Generic;
  3. using UI.CommonGame;
  4. using UI.Task;
  5. namespace GFGGame
  6. {
  7. public class TaskAchieveDetailView : BaseWindow
  8. {
  9. private UI_TaskAchieveDetailUI _ui;
  10. private List<TaskCfg> _cfgs = new List<TaskCfg>();
  11. private int funcType = TaskFuncType.Achievement;
  12. private List<TaskCfg> _cfgsAll = new List<TaskCfg>();
  13. public override void Dispose()
  14. {
  15. if (_ui != null)
  16. {
  17. _ui.Dispose();
  18. _ui = null;
  19. }
  20. base.Dispose();
  21. }
  22. protected override void OnInit()
  23. {
  24. base.OnInit();
  25. packageName = UI_TaskAchieveDetailUI.PACKAGE_NAME;
  26. _ui = UI_TaskAchieveDetailUI.Create();
  27. viewCom = _ui.target;
  28. isfullScreen = true;
  29. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("chengjiu_bg");
  30. _ui.m_btnBack.onClick.Add(OnBtnBackClick);
  31. _ui.m_listAchieveTask.itemRenderer = RenderListAchieveTask;
  32. }
  33. private void OnBtnBackClick()
  34. {
  35. ViewManager.Hide<TaskAchieveDetailView>();
  36. }
  37. protected override void AddEventListener()
  38. {
  39. base.AddEventListener();
  40. }
  41. protected override void RemoveEventListener()
  42. {
  43. base.RemoveEventListener();
  44. }
  45. protected override void OnShown()
  46. {
  47. base.OnShown();
  48. UpdateTask();
  49. }
  50. protected override void OnHide()
  51. {
  52. base.OnHide();
  53. }
  54. private void UpdateTask()
  55. {
  56. int taskSubType = (int)this.viewData;
  57. _ui.m_AchieveType.selectedIndex = taskSubType;
  58. _cfgsAll = TaskDataManager.Instance.GetTaskCfgs(funcType);
  59. _cfgs.Clear();
  60. foreach (var info in _cfgsAll) {
  61. if (info.achievementType == taskSubType+1)
  62. _cfgs.Add(info);
  63. }
  64. _ui.m_listAchieveTask.numItems = _cfgs.Count;
  65. }
  66. private void RenderListAchieveTask(int index, GObject obj)
  67. {
  68. var item = UI_TaskListItem.Proxy(obj);
  69. //Áìȡ״̬
  70. item.m_c1.selectedIndex = TaskDataManager.Instance.GetTaskStateById(_cfgs[index].id);
  71. item.m_c2.selectedIndex = _cfgs[index].jumpId == "" ? 1 : 0;
  72. item.m_txtDesc.text = TaskDataManager.Instance.GetTaskDesc(_cfgs[index].id);
  73. item.m_txtCount.text =
  74. $"{TaskDataManager.Instance.GetTaskProgressById(_cfgs[index].id)}/{_cfgs[index].GetTargetCount()}";
  75. if (item.m_GetRewardBt.target.data == null)
  76. {
  77. item.m_GetRewardBt.target.onClick.Add(OnBtnGetClick);
  78. }
  79. item.m_GetRewardBt.target.data = _cfgs[index].id;
  80. if (item.m_ComeBt.target.data == null)
  81. {
  82. item.m_ComeBt.target.onClick.Add(OnBtnGoClick);
  83. }
  84. item.m_ComeBt.target.data = _cfgs[index];
  85. if (item.m_listTaskReward.data == null)
  86. {
  87. item.m_listTaskReward.itemRenderer = ListTaskRewardItemRender;
  88. }
  89. var reward = TaskDataManager.Instance.GetReward(_cfgs[index]);
  90. item.m_listTaskReward.data = reward;
  91. item.m_listTaskReward.numItems = reward.Length;
  92. var isBuy = BattlePassTaskDataManager.Instance.GetIsBuy();
  93. bool canGet = item.m_c1.selectedIndex == 1;
  94. RedDotController.Instance.SetComRedDot(item.m_GetRewardBt.target, canGet);
  95. RedDotController.Instance.SetComRedDot(item.m_GetRewardBt.target, canGet);
  96. UI_TaskListItem.ProxyEnd();
  97. }
  98. private static void ListTaskRewardItemRender(int index, GObject obj)
  99. {
  100. var rewards = (int[][])obj.parent.data;
  101. var itemData = ItemUtil.createItemData(rewards[index]);
  102. var item = new ItemView(obj as GComponent);
  103. obj.data = item;
  104. item.SetData(itemData);
  105. item.ChangeTxtCountStyle();
  106. UI_RewardIconYellow.ProxyEnd();
  107. }
  108. private async void OnBtnGetClick(EventContext context)
  109. {
  110. if (!(context.sender is GObject btnGet)) return;
  111. var result = await TaskSProxy.GetTaskBonus((int)btnGet.data);
  112. if (!result) return;
  113. UpdateTask();
  114. //LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.MEI_RI_REN_WU, 2);
  115. }
  116. private void OnBtnGoClick(EventContext context)
  117. {
  118. if (!(context.sender is GObject { data: TaskCfg taskCfg })) return;
  119. //¹¦ÄÜ먦·Å
  120. if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(taskCfg.jumpId)) return;
  121. var param = new object[taskCfg.jumpParamArr.Length];
  122. for (var i = 0; i < taskCfg.jumpParamArr.Length; i++)
  123. {
  124. param[i] = taskCfg.jumpParamArr[i];
  125. }
  126. ViewManager.JumpToView(taskCfg.jumpId, param, new object[] { typeof(TaskAchieveDetailView).FullName});
  127. }
  128. }
  129. }