TaskAchieveView.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. using ET;
  2. using FairyGUI;
  3. using UI.Task;
  4. namespace GFGGame
  5. {
  6. public class TaskAchieveView : BaseWindow
  7. {
  8. private UI_TaskAchieveUI _ui;
  9. public override void Dispose()
  10. {
  11. if (_ui != null)
  12. {
  13. _ui.Dispose();
  14. _ui = null;
  15. }
  16. base.Dispose();
  17. }
  18. protected override void OnInit()
  19. {
  20. base.OnInit();
  21. packageName = UI_TaskAchieveUI.PACKAGE_NAME;
  22. _ui = UI_TaskAchieveUI.Create();
  23. viewCom = _ui.target;
  24. isfullScreen = true;
  25. isReturnView = true;
  26. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("chengjiu_bg");
  27. _ui.m_btnBack.onClick.Add(OnBtnBackClick);
  28. _ui.m_listAchieveItem.itemRenderer = RenderListAchieveItem;
  29. //_ui.m_listAchieveItem.onClickItem.Add(OnClickListRarityItem);
  30. }
  31. private void OnBtnBackClick()
  32. {
  33. //ViewManager.Hide<TaskAchieveView>();
  34. //ViewManager.Show<TaskView>();
  35. this.Hide();
  36. }
  37. private void OnClickListRarityItem(EventContext context)
  38. {
  39. int subIndex = (int)(context.sender as GObject).data;
  40. if (subIndex > 3)
  41. PromptController.Instance.ShowFloatTextPrompt("暂未开启");
  42. else
  43. ViewManager.Show<TaskAchieveDetailView>(subIndex);
  44. }
  45. protected override void AddEventListener()
  46. {
  47. base.AddEventListener();
  48. EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRewardState);
  49. EventAgent.AddEventListener(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED, UpdateRewardState);
  50. }
  51. protected override void RemoveEventListener()
  52. {
  53. base.RemoveEventListener();
  54. EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRewardState);
  55. EventAgent.RemoveEventListener(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED, UpdateRewardState);
  56. }
  57. private void UpdateRewardState()
  58. {
  59. _ui.m_listAchieveItem.numItems = 6;
  60. }
  61. protected override void OnShown()
  62. {
  63. base.OnShown();
  64. UpdateRewardState(); //进入界面第一遍先读取配置显示界面
  65. UpdateInfo();
  66. }
  67. protected async void UpdateInfo()
  68. {
  69. var result = await TaskSProxy.GetTaskTypePro();
  70. if (!result) return;
  71. }
  72. protected override void OnHide()
  73. {
  74. base.OnHide();
  75. }
  76. private void RenderListAchieveItem(int index, GObject obj)
  77. {
  78. UI_AchieveItem listItem = UI_AchieveItem.Proxy(obj);
  79. if (index >= 4)
  80. listItem.m_AchieveType.selectedIndex = 4;
  81. else
  82. listItem.m_AchieveType.selectedIndex = index;
  83. if (listItem.target.data == null)
  84. {
  85. listItem.target.onClick.Add(OnClickListRarityItem);
  86. }
  87. listItem.target.data = index;
  88. var taskTypeProList = TaskDataManager.Instance.GetAchievementTaskTypeProList();
  89. if (taskTypeProList == null)
  90. return;
  91. foreach (var info in taskTypeProList)
  92. {
  93. if (info.AchievementType == index + 1)
  94. {
  95. listItem.m_achieveBar.max = info.AllTaskNum;
  96. listItem.m_achieveBar.value = info.CompleteTaskNum;
  97. break;
  98. }
  99. }
  100. RedDotController.Instance.SetComRedDot(listItem.target,
  101. TaskDataManager.Instance.CheckTaskSubRewardCanGet(TaskFuncType.Achievement, index), "", -30, 120);
  102. UI_AchieveItem.ProxyEnd();
  103. }
  104. }
  105. }