using System.Collections.Generic; using FairyGUI; using UI.DailyLogin; using UnityEngine; namespace GFGGame { public class DailyLoginView : BaseWindow { private UI_DailyLoginUI _ui; private List _cfgs; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_DailyLoginUI.PACKAGE_NAME; _ui = UI_DailyLoginUI.Create(); this.viewCom = _ui.target; this.modal = true; this.viewCom.Center(); viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_list.itemRenderer = ListItemRender; _ui.m_loaIcon.onClick.Add(OnListItemClick); } protected override void OnShown() { base.OnShown(); ViewManager.SetMaskAlpha(0.8f); _cfgs = DailyLoginCfgArray.Instance.GetCfgs("1"); _ui.m_list.numItems = _cfgs.Count; _ui.m_loaIcon.url = "ui://DailyLogin/yzhd_dyt_7"; _ui.m_loaIcon.data = _cfgs[_cfgs.Count - 1]; } protected override void OnHide() { base.OnHide(); ViewManager.SetMaskAlpha(0.6f); } private void ListItemRender(int index, GObject obj) { DailyLoginCfg cfg = _cfgs[index]; UI_ListItem item = UI_ListItem.Proxy(obj); item.m_loaBg.url = string.Format("ui://DailyLogin/yzhd_dyt_{0}", cfg.id); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.rewardsArr[0][0]); item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); item.m_txtName.text = itemCfg.name; item.m_txtNum.text = "x" + NumberUtil.ChangeNumberUnit(cfg.rewardsArr[0][1], 10000); int dailyLoginId = ActivityDataManager.Instance.dailyLoginId; item.m_imgGot.visible = cfg.id < dailyLoginId || cfg.id == dailyLoginId && ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.GOT; if (cfg.id == dailyLoginId) { RedDotController.Instance.SetComRedDot(item.target, ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET); } if (item.target.data == null) { item.target.onClick.Add(OnListItemClick); } item.target.data = cfg; UI_ListItem.ClearProxy(); } private async void OnListItemClick(EventContext context) { DailyLoginCfg cfg = (context.sender as GObject).data as DailyLoginCfg; if (cfg.id == ActivityDataManager.Instance.dailyLoginId && ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET) { bool result = await ActivitySProxy.ReqGetDailyLoginRewards(cfg.id); if (result) { _ui.m_list.numItems = _cfgs.Count; } } else { GoodsItemTipsController.ShowItemTips(cfg.rewardsArr[0][0]); } } } }