using ET; using FairyGUI; using UI.ActivityDay7; using UI.CommonGame; using UI.Task; namespace GFGGame { public class ActivityDay7View : BaseWindow { private UI_ActivityDay7UI _ui; //7日活动配置 private Activity7DaysCfg[] cfgDataArray; //7日活动积分配置 private Activity7DaysCfg[] activity7DaysCfgs; //选中的天数index 天数=index+1 private int onClickDayIndex; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ActivityDay7UI.PACKAGE_NAME; _ui = UI_ActivityDay7UI.Create(); viewCom = _ui.target; isfullScreen = true; bringToFontOnClick = false; _ui.m_btnBack.onClick.Add(OnBtnBackClick); _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("lm_beijing2"); _ui.m_DayList.itemRenderer = DayListRenderer; _ui.m_TaskList.itemRenderer = TaskListRenderer; } private void OnBtnBackClick() { ViewManager.GoBackFrom(typeof(ActivityDay7View).FullName); } protected override void OnShown() { base.OnShown(); onClickDayIndex = ActivityDay7DataManager.Instance.GetActivityDay7Day() - 1; SetScoreList(); SetDayList(); } protected override void OnHide() { base.OnHide(); } //DayListRenderer private void DayListRenderer(int index, GObject obj) { var item = UI_ButtonDay.Proxy(obj); if (item.target.data == null) { var cfg = cfgDataArray[index]; item.m_text.text = $"第{cfg.id}天"; item.target.data = index; item.target.onClick.Add(OnClickDay); } //设置按钮状态 item.target.selected = index == onClickDayIndex; UI_ButtonDay.ProxyEnd(); } //选中天数 private void OnClickDay(EventContext context) { if (!(context.sender is GObject typeItem)) return; onClickDayIndex = (int)typeItem.data; var activity7DaysTaskCfg = Activity7DaysTaskCfgArray.Instance.GetCfg(onClickDayIndex + 1); _ui.m_TaskList.data = activity7DaysTaskCfg.taskIdArr; _ui.m_TaskList.numItems = activity7DaysTaskCfg.taskIdArr.Length; //设置其他按钮选中状态 SetDayList(); } //TaskListRenderer private void TaskListRenderer(int index, GObject obj) { var item = UI_TaskListItem.Proxy(obj); var tasks = (int[])obj.parent.data; var taskId = tasks[index]; var taskCfg = TaskCfgArray.Instance.GetCfg(taskId); item.m_c1.selectedIndex = TaskDataManager.Instance.GetTaskStateById(taskId); item.m_c2.selectedIndex = taskCfg.jumpId == "" ? 1 : 0; item.m_txtDesc.text = TaskDataManager.Instance.GetTaskDesc(taskCfg.id); item.m_txtCount.text = $"{TaskDataManager.Instance.GetTaskProgressById(taskCfg.id)}/{taskCfg.count}"; if (item.m_GetRewardBt.data == null) { item.m_GetRewardBt.onClick.Add(OnBtnGetClick); } item.m_GetRewardBt.data = taskCfg.id; if (item.m_ComeBt.data == null) { item.m_ComeBt.onClick.Add(OnBtnGoClick); } item.m_ComeBt.data = taskCfg.jumpId; if (item.m_listTaskReward.data == null) { item.m_listTaskReward.itemRenderer = ListTaskRewardItemRender; } item.m_listTaskReward.data = taskCfg.rewardsArr; item.m_listTaskReward.numItems = taskCfg.rewardsArr.Length; UI_TaskListItem.ProxyEnd(); } private static void ListTaskRewardItemRender(int index, GObject obj) { var item = UI_RewardIconYellow.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_num.text = $"{rewards[index][1]}"; UI_RewardIconYellow.ProxyEnd(); } private void OnBtnGoClick(EventContext context) { Hide(); var btnGo = context.sender as GObject; if (btnGo == null) return; ViewManager.Show($"GFGGame.{btnGo.data}", null, new[] { typeof(ActivityDay7View).FullName, viewData }, true); } //设置积分列表 private void SetScoreList() { //7日活动配置 activity7DaysCfgs = Activity7DaysCfgArray.Instance.dataArray; var maxCfg = activity7DaysCfgs[activity7DaysCfgs.Length - 1]; var maxScore = maxCfg.score; var pos = _ui.m_StartIndex.position; var endY = _ui.m_EndIndex.position.y; //循环设置UI foreach (var cfg in activity7DaysCfgs) { var cfgScore = cfg.score; var item = UI_ExpProcessItem.Create(); var target = item.target; _ui.target.AddChild(target); // 根据 maxScore cfgScore pos.y endY 设置target 位置 x,z不变,y根据比例设置 var y = pos.y - (pos.y - endY) * cfgScore / maxScore; target.SetPosition(pos.x, y, pos.z); item.m_Score.text = cfgScore.ToString(); var cfgBonusArr = cfg.bonusArr; var itemCfg = ItemCfgArray.Instance.GetCfg(cfgBonusArr[0][0]); item.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res); item.m_Num.text = cfgBonusArr[0][1].ToString(); UI_ExpProcess.ProxyEnd(); } } //设置天数列表 private void SetDayList() { //7日活动配置 cfgDataArray = Activity7DaysCfgArray.Instance.dataArray; _ui.m_DayList.numItems = cfgDataArray.Length; } private async void OnBtnGetClick(EventContext context) { if (!(context.sender is GObject btnGet)) return; var result = await TaskSProxy.GetTaskBonus((int)btnGet.data); if (!result) return; } private async ETTask OnClickReward(int id) { var cfg = DailyActiveRewardCfgArray.Instance.GetCfg(id); var state = DailyTaskDataManager.Instance.GetBoxStateById(cfg.id); switch (state) { case ConstBonusStatus.CAN_NOT_GET: { var rewards = ItemUtil.CreateItemDataList(cfg.rewardsArr); ViewManager.Show(new object[] { rewards, "活跃度奖励", $"满足{cfg.count}活跃度可领取" }); break; } case ConstBonusStatus.CAN_GET: { var result = await DailyTaskSProxy.ReqLivenessBox(cfg.id); // if (result) UpdateLivenessProcess(); break; } case ConstBonusStatus.GOT: //领取完毕 break; } } } }