using System.Collections.Generic; using ET; using FairyGUI; using UI.ActivityThemeLuckyBox; using UnityEngine; using UI.CommonGame; namespace GFGGame { public class ActivityThemeLuckyBoxTaskView : BaseWindow { private UI_ActivityThemeLuckyBoxTaskUI _ui; private List _taskCfgs = new List(); private int _activityID; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ActivityThemeLuckyBoxTaskUI.PACKAGE_NAME; _ui = UI_ActivityThemeLuckyBoxTaskUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_list.itemRenderer = RenderListItem; _ui.m_btnClose.onClick.Add(Hide); } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); _activityID = (int)viewData; UpdateView(); } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); } private void UpdateView() { _taskCfgs = TaskDataManager.Instance.GetTaskCfgs(TaskFuncType.LuckyBoxActivity); for (int i = _taskCfgs.Count - 1; i >= 0; i--) { if(_activityID != _taskCfgs[i].TopicActivityId) { _taskCfgs.RemoveAt(i); } } _ui.m_list.numItems = _taskCfgs.Count; _ui.m_list.scrollPane.ScrollTop(); } private void RenderListItem(int index, GObject obj) { UI_ListItem item = UI_ListItem.Proxy(obj); //ι’†ε–ηŠΆζ€ int state = TaskDataManager.Instance.GetTaskStateById(_taskCfgs[index].id); item.m_c1.selectedIndex = state == ConstBonusStatus.CAN_NOT_GET && !string.IsNullOrEmpty(_taskCfgs[index].jumpId) ? 3 : state; item.m_txtTitle.text = string.Format("{0}({1}/{2})", TaskDataManager.Instance.GetTaskDesc(_taskCfgs[index].id), TaskDataManager.Instance.GetTaskProgressById(_taskCfgs[index].id), _taskCfgs[index].GetTargetCount()); if (item.m_btnGet.data == null) { item.m_btnGet.onClick.Add(OnBtnGetClick); } item.m_btnGet.data = _taskCfgs[index].id; if (item.m_btnGo.data == null) { item.m_btnGo.onClick.Add(OnBtnGoClick); } item.m_btnGo.data = _taskCfgs[index]; if (item.m_listRewards.data == null) { item.m_listRewards.itemRenderer = RenderListRewardItem; } var reward = TaskDataManager.Instance.GetReward(_taskCfgs[index]); item.m_listRewards.data = reward; item.m_listRewards.numItems = reward.Length; UI_ListItem.ProxyEnd(); } private void RenderListRewardItem(int index, GObject obj) { int[][] bonus = (int[][])obj.parent.data; ItemData reward = ItemUtil.createItemData(bonus[index]); if (obj.data == null) { obj.data = new ItemView(obj as GComponent); } (obj.data as ItemView).SetData(reward); (obj.data as ItemView).ChangeTxtCountStyle(); } private async void OnBtnGetClick(EventContext context) { if (!(context.sender is GObject btnGet)) return; var result = await TaskSProxy.GetTaskBonus((int)btnGet.data); if (!result) return; UpdateView(); } private void OnBtnGoClick(EventContext context) { if (!(context.sender is GObject btnGo)) return; TaskCfg taskCfg = btnGo.data as TaskCfg; object[] param = new object[taskCfg.jumpParamArr.Length]; for (int i = 0; i < taskCfg.jumpParamArr.Length; i++) { param[i] = taskCfg.jumpParamArr[i]; } ViewManager.JumpToView(taskCfg.jumpId, param); Hide(); } } }