using FairyGUI; using UI.Task; namespace GFGGame { public class TaskAchieveView : BaseWindow { private UI_TaskAchieveUI _ui; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_TaskAchieveUI.PACKAGE_NAME; _ui = UI_TaskAchieveUI.Create(); viewCom = _ui.target; isfullScreen = true; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("chengjiu_bg"); _ui.m_btnBack.onClick.Add(OnBtnBackClick); _ui.m_listAchieveItem.itemRenderer = RenderListAchieveItem; //_ui.m_listAchieveItem.onClickItem.Add(OnClickListRarityItem); } private void OnBtnBackClick() { ViewManager.Hide(); } private void OnClickListRarityItem(EventContext context) { int subIndex = (int)(context.sender as GObject).data; if (subIndex > 3) PromptController.Instance.ShowFloatTextPrompt("ÔÝ먦Æô"); else ViewManager.Show(subIndex); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateInfo); EventAgent.AddEventListener(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED, UpdateRewardState); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateInfo); EventAgent.RemoveEventListener(ConstMessage.ACHIEVEMENT_TASK_PRO_CHANGED, UpdateRewardState); } private void UpdateRewardState() { _ui.m_listAchieveItem.numItems = 6; } protected override void OnShown() { base.OnShown(); UpdateInfo(); } protected async void UpdateInfo() { var result = await TaskSProxy.GetTaskTypePro(); if (!result) return; } protected override void OnHide() { base.OnHide(); } private void RenderListAchieveItem(int index, GObject obj) { UI_AchieveItem listItem = UI_AchieveItem.Proxy(obj); if(index >= 4) listItem.m_AchieveType.selectedIndex = 4; else listItem.m_AchieveType.selectedIndex = index; if (listItem.target.data == null) { listItem.target.onClick.Add(OnClickListRarityItem); } listItem.target.data = index; var taskTypeProList = TaskDataManager.Instance.GetAchievementTaskTypeProList(); foreach (var info in taskTypeProList) { if (info.AchievementType == index+1) { listItem.m_achieveBar.max = info.AllTaskNum; listItem.m_achieveBar.value = info.CompleteTaskNum; break; } } RedDotController.Instance.SetComRedDot(listItem.target, TaskDataManager.Instance.CheckTaskSubRewardCanGet(TaskFuncType.Achievement, index),"",-30,120); UI_AchieveItem.ProxyEnd(); } } }