123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- 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<RewardPreView>(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;
- }
- }
- }
- }
|