TaskAchieveDetailView.cs 5.1 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. _ui.m_listAchieveTask.ScrollToView(0);
  50. }
  51. protected override void OnHide()
  52. {
  53. base.OnHide();
  54. }
  55. private void UpdateTask()
  56. {
  57. int taskSubType = (int)this.viewData;
  58. _ui.m_AchieveType.selectedIndex = taskSubType;
  59. _cfgsAll = TaskDataManager.Instance.GetTaskCfgs(funcType);
  60. _cfgs.Clear();
  61. for (int i= 0; i< _cfgsAll.Count;i++) {
  62. if (_cfgsAll[i].achievementType == taskSubType+1)
  63. _cfgs.Add(_cfgsAll[i]);
  64. }
  65. _ui.m_listAchieveTask.numItems = _cfgs.Count;
  66. }
  67. private void RenderListAchieveTask(int index, GObject obj)
  68. {
  69. var item = UI_TaskListItem.Proxy(obj);
  70. //Áìȡ״̬
  71. item.m_c1.selectedIndex = TaskDataManager.Instance.GetTaskStateById(_cfgs[index].id);
  72. item.m_c2.selectedIndex = _cfgs[index].jumpId == "" ? 1 : 0;
  73. item.m_txtDesc.text = TaskDataManager.Instance.GetTaskDesc(_cfgs[index].id);
  74. item.m_txtCount.text =
  75. $"{TaskDataManager.Instance.GetTaskProgressById(_cfgs[index].id)}/{_cfgs[index].GetTargetCount()}";
  76. if (item.m_GetRewardBt.target.data == null)
  77. {
  78. item.m_GetRewardBt.target.onClick.Add(OnBtnGetClick);
  79. }
  80. item.m_GetRewardBt.target.data = _cfgs[index].id;
  81. if (item.m_ComeBt.target.data == null)
  82. {
  83. item.m_ComeBt.target.onClick.Add(OnBtnGoClick);
  84. }
  85. item.m_ComeBt.target.data = _cfgs[index];
  86. if (item.m_listTaskReward.data == null)
  87. {
  88. item.m_listTaskReward.itemRenderer = ListTaskRewardItemRender;
  89. }
  90. var reward = TaskDataManager.Instance.GetReward(_cfgs[index]);
  91. item.m_listTaskReward.data = reward;
  92. item.m_listTaskReward.numItems = reward.Length;
  93. var isBuy = BattlePassTaskDataManager.Instance.GetIsBuy();
  94. bool canGet = item.m_c1.selectedIndex == 1;
  95. RedDotController.Instance.SetComRedDot(item.m_GetRewardBt.target, canGet);
  96. RedDotController.Instance.SetComRedDot(item.m_GetRewardBt.target, canGet);
  97. UI_TaskListItem.ProxyEnd();
  98. }
  99. private static void ListTaskRewardItemRender(int index, GObject obj)
  100. {
  101. var rewards = (int[][])obj.parent.data;
  102. var itemData = ItemUtil.createItemData(rewards[index]);
  103. var item = new ItemView(obj as GComponent);
  104. obj.data = item;
  105. item.SetData(itemData);
  106. item.ChangeTxtCountStyle();
  107. UI_RewardIconYellow.ProxyEnd();
  108. }
  109. private async void OnBtnGetClick(EventContext context)
  110. {
  111. if (!(context.sender is GObject btnGet)) return;
  112. var result = await TaskSProxy.GetTaskBonus((int)btnGet.data);
  113. if (!result) return;
  114. UpdateTask();
  115. //LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.MEI_RI_REN_WU, 2);
  116. }
  117. private void OnBtnGoClick(EventContext context)
  118. {
  119. if (!(context.sender is GObject { data: TaskCfg taskCfg })) return;
  120. //¹¦ÄÜ먦·Å
  121. if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(taskCfg.jumpId)) return;
  122. var param = new object[taskCfg.jumpParamArr.Length];
  123. for (var i = 0; i < taskCfg.jumpParamArr.Length; i++)
  124. {
  125. param[i] = taskCfg.jumpParamArr[i];
  126. }
  127. ViewManager.JumpToView(taskCfg.jumpId, param, new object[] { typeof(TaskAchieveDetailView).FullName});
  128. }
  129. }
  130. }