TaskAchieveView.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using FairyGUI;
  2. using UI.Task;
  3. namespace GFGGame
  4. {
  5. public class TaskAchieveView : BaseWindow
  6. {
  7. private UI_TaskAchieveUI _ui;
  8. public override void Dispose()
  9. {
  10. if (_ui != null)
  11. {
  12. _ui.Dispose();
  13. _ui = null;
  14. }
  15. base.Dispose();
  16. }
  17. protected override void OnInit()
  18. {
  19. base.OnInit();
  20. packageName = UI_TaskAchieveUI.PACKAGE_NAME;
  21. _ui = UI_TaskAchieveUI.Create();
  22. viewCom = _ui.target;
  23. isfullScreen = true;
  24. isReturnView = true;
  25. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("chengjiu_bg");
  26. _ui.m_btnBack.onClick.Add(OnBtnBackClick);
  27. _ui.m_listAchieveItem.itemRenderer = RenderListAchieveItem;
  28. //_ui.m_listAchieveItem.onClickItem.Add(OnClickListRarityItem);
  29. }
  30. private void OnBtnBackClick()
  31. {
  32. //ViewManager.Hide<TaskAchieveView>();
  33. //ViewManager.Show<TaskView>();
  34. this.Hide();
  35. }
  36. private void OnClickListRarityItem(EventContext context)
  37. {
  38. int subIndex = (int)(context.sender as GObject).data;
  39. if (subIndex > 3)
  40. PromptController.Instance.ShowFloatTextPrompt("ÔÝ먦Æô");
  41. else
  42. ViewManager.Show<TaskAchieveDetailView>(subIndex);
  43. }
  44. protected override void AddEventListener()
  45. {
  46. base.AddEventListener();
  47. EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRewardState);
  48. EventAgent.AddEventListener(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED, UpdateRewardState);
  49. }
  50. protected override void RemoveEventListener()
  51. {
  52. base.RemoveEventListener();
  53. EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRewardState);
  54. EventAgent.RemoveEventListener(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED, UpdateRewardState);
  55. }
  56. private void UpdateRewardState()
  57. {
  58. _ui.m_listAchieveItem.numItems = 6;
  59. }
  60. protected override void OnShown()
  61. {
  62. base.OnShown();
  63. UpdateInfo();
  64. }
  65. protected async void UpdateInfo()
  66. {
  67. _ui.m_hide.Play();
  68. var result = await TaskSProxy.GetTaskTypePro();
  69. if (!result) return;
  70. _ui.m_fadeIn.Play();
  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. if (info.AchievementType == index+1) {
  93. listItem.m_achieveBar.max = info.AllTaskNum;
  94. listItem.m_achieveBar.value = info.CompleteTaskNum;
  95. break;
  96. }
  97. }
  98. RedDotController.Instance.SetComRedDot(listItem.target, TaskDataManager.Instance.CheckTaskSubRewardCanGet(TaskFuncType.Achievement, index),"",-30,120);
  99. UI_AchieveItem.ProxyEnd();
  100. }
  101. }
  102. }