using System.Collections.Generic; using ET; using FairyGUI; using UI.Task; namespace GFGGame { public class CombTaskView : BaseWindow { private UI_CombTaskUI _ui; private List _cfgs; private List _rewardCfgs; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_CombTaskUI.PACKAGE_NAME; _ui = UI_CombTaskUI.Create(); viewCom = _ui.target; isfullScreen = true; clickBlankToClose = false; } protected override void OnShown() { base.OnShown(); _rewardCfgs = new List(DailyActiveRewardCfgArray.Instance.dataArray); UpdateLivenessProcess(); } //更新活跃度进度条 private void UpdateLivenessProcess() { var liveness = RoleDataManager.Liveness; DailyTaskDataManager.Instance.GetShowLivenessBoxNum(); _ui.m_LivenessProcess.target.max = 100; _ui.m_LivenessProcess.target.value = liveness; var cfgs = DailyActiveRewardCfgArray.Instance.dataArray; for (var i = 0; i < cfgs.Length; i++) { var boxId = i + 1; var state = DailyTaskDataManager.Instance.GetBoxStateById(boxId); var index = state == ConstBonusStatus.CAN_GET ? 0 : 1; switch (boxId) { case 1: _ui.m_LivenessProcess.m_Reward20.m_c1.selectedIndex = index; break; case 2: _ui.m_LivenessProcess.m_Reward40.m_c1.selectedIndex = index; break; case 3: _ui.m_LivenessProcess.m_Reward60.m_c1.selectedIndex = index; break; case 4: _ui.m_LivenessProcess.m_Reward80.m_c1.selectedIndex = index; break; case 5: _ui.m_LivenessProcess.m_Reward100.m_c1.selectedIndex = index; break; } } } //更新任务列表 private void UpdateTask() { var selectedIndex = _ui.m_c1.selectedIndex; switch (selectedIndex) { case 0: _cfgs = TaskDataManager.Instance.GetTaskCfgs(TaskType.Daily); break; case 1: _cfgs = TaskDataManager.Instance.GetTaskCfgs(TaskType.BattlePass); break; } _ui.m_TaskList.itemRenderer = TaskItemIndex; _ui.m_TaskList.numItems = _cfgs.Count; } private void UpdateList() { _cfgs = TaskDataManager.Instance.GetTaskCfgs(TaskType.Daily); } private void TaskItemIndex(int index, GObject obj) { var item = UI_TaskListItem.Proxy(obj); //领取状态 item.m_c1.selectedIndex =TaskDataManager.Instance.GetTaskStateById(_cfgs[index].id); UI_TaskListItem.ProxyEnd(); } private void ListItemRender(int index, GObject obj) { // var item = UI_ListItem.Proxy(obj); // item.m_c1.selectedIndex = TaskDataManager.Instance.GetTaskStateById(_cfgs[index].id); // item.m_c2.selectedIndex = _cfgs[index].jumpId == "" ? 0 : 1; // item.m_txtDesc.text = TaskDataManager.Instance.GetTaskDesc(_cfgs[index].id); // item.m_txtCount.text = string.Format("{0}/{1}", TaskDataManager.Instance.GetTaskProgressById(_cfgs[index].id), _cfgs[index].count); // if (item.m_btnGet.data == null) // { // item.m_btnGet.onClick.Add(OnBtnGetClick); // } // item.m_btnGet.data = _cfgs[index].id; // if (item.m_btnGo.data == null) // { // item.m_btnGo.onClick.Add(OnBtnGoClick); // } // item.m_btnGo.data = _cfgs[index].jumpId; // // if (item.m_listTaskReward.data == null) // { // item.m_listTaskReward.itemRenderer = ListTaskRewardItemRender; // } // item.m_listTaskReward.data = _cfgs[index].rewardsArr; // item.m_listTaskReward.numItems = _cfgs[index].rewardsArr.Length; // UI_ListItem.ClearProxy(); } private void ListTaskRewardItemRender(int index, GObject obj) { // var item = UI_ListTaskRewardItem.Proxy(obj); // var rewards = (int[][])item.target.parent.data; // // var itemCfg = ItemCfgArray.Instance.GetCfg(rewards[index][0]); // item.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res); // item.m_txtNum.text = $"x{rewards[index][1]}"; // UI_ListTaskRewardItem.ProxyEnd(); } private async void OnBtnGetClick(EventContext context) { var btnGet = context.sender as GObject; var result = await DailyTaskSProxy.ReqDailyTaskBonus((int)btnGet.data); if (!result) return; UpdateLivenessProcess(); UpdateTask(); LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.MEI_RI_REN_WU, 2); } private void OnBtnGoClick(EventContext context) { Hide(); var btnGo = context.sender as GObject; ViewManager.Show($"GFGGame.{btnGo.data}", null, new[] { typeof(CombTaskView).FullName, viewData }, true); } private void ListBoxRewardItemRender(int index, GObject obj) { // var item = UI_ListBoxRewardItem.Proxy(obj); // var cfg = _rewardCfgs[index]; // var state = DailyTaskDataManager.Instance.GetBoxStateById(cfg.id); // item.m_c1.selectedIndex = state; // item.m_txtNum.text = cfg.count.ToString(); // RedDotController.Instance.SetComRedDot(item.target, state == ConstBonusStatus.CAN_GET, "", 12, 4); // // item.target.data = _rewardCfgs[index]; // UI_ListBoxRewardItem.ClearProxy(); } private async void OnBoxRewardItemClick(EventContext context) { var item = context.data as GObject; var cfg = item.data as DailyActiveRewardCfg; if (DailyTaskDataManager.Instance.GetBoxStateById(cfg.id) == ConstBonusStatus.CAN_GET) { var result = await DailyTaskSProxy.ReqLivenessBox(cfg.id); if (result) { UpdateTask(); } } else { var rewards = ItemUtil.CreateItemDataList(cfg.rewardsArr); ViewManager.Show(new object[] { rewards, "活跃度奖励", string.Format("满足{0}活跃度可领取", cfg.count) }); } } private void OnBtnBackClick() { ViewManager.GoBackFrom(typeof(CombTaskView).FullName); } private async void OnBtnGetAllClick() { var result = await DailyTaskSProxy.ReqAllDailyTaskBonus(); if (!result) return; UpdateLivenessProcess(); UpdateTask(); LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.MEI_RI_REN_WU, 2); } } }