| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 | using System.Collections;using UnityEngine;using UI.ActivityHuaRongDao;using System.Collections.Generic;using FairyGUI;using System.Threading.Tasks;using ET;namespace GFGGame{    public class ActivityHuaRongDaoEntryView : BaseWindow    {        private UI_ActivityHuaRongDaoEntryUI _ui;        private int curLevel;        private int _activityID;        private List<int> IDList;        protected override void OnInit()        {            base.OnInit();            packageName = UI_ActivityHuaRongDaoEntryUI.PACKAGE_NAME;            _ui = UI_ActivityHuaRongDaoEntryUI.Create();            viewCom = _ui.target;            isfullScreen = true;            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("gf_pjxq_bj");            _ui.m_btnStart.onClick.Add(OnBtnStartClick);            _ui.m_btnBack.onClick.Add(OnBtnBackClick);            InitBtnRule();            InitIDList();            _ui.m_scrollPane.m_listBg.itemRenderer = RenderListItem;            _ui.m_scrollPane.m_listItems.itemRenderer = RenderRewardListItem;            //_ui.m_scrollPane.m_listBg.onClickItem.Add(OnClickReward);        }        public override void Dispose()        {            if (_ui != null)            {                _ui.Dispose();                _ui = null;            }            base.Dispose();        }        protected override async void OnShown()        {            base.OnShown();            _ui.m_hide.Play();            _activityID = (int)viewData;            await InitInfo();            _ui.m_show.Play();            UpdateTime(null);            Timers.inst.Add(1, 0, UpdateTime);        }        protected override void OnHide()        {            base.OnHide();            Timers.inst.Remove(UpdateTime);        }        protected override void AddEventListener()        {            base.AddEventListener();            EventAgent.AddEventListener(ConstMessage.ACTIVITY_HUARONGDAO_UPDATE, UpdateUI);        }        protected override void RemoveEventListener()        {            base.RemoveEventListener();            EventAgent.RemoveEventListener(ConstMessage.ACTIVITY_HUARONGDAO_UPDATE, UpdateUI);        }        private void InitIDList()        {            IDList = new List<int>();            HuarongRoadGame[] cfgs = HuarongRoadGameArray.Instance.dataArray;            foreach (var t in cfgs)            {                IDList.Add(t.id);            }        }        private void UpdateUI()        {            InitInfo();        }        private async Task InitInfo()        {            curLevel = await GetCurLevel(_activityID);            RoleLimitData limitData;            _ui.m_curLevel.text = curLevel.ToString();            // 所有关卡都通关了            if (curLevel == IDList.Count)            {                _ui.m_challengeTimes.SetVar("have", "0").SetVar("sum", "0").FlushVars();            }            else            {                limitData = RoleLimitDataManager.GetLimitData(HuarongRoadGameArray.Instance.GetCfg(IDList[curLevel]).comsumeLimit);                int times = limitData.TotalPlayMax - limitData.PlayTimes;                _ui.m_challengeTimes.SetVar("have", times.ToString())                    .SetVar("sum", limitData.TotalPlayMax.ToString()).FlushVars();            }            InitProgress();            ProgressAutoLocate();        }        private void InitProgress()        {            _ui.m_scrollPane.m_listBar.numItems = curLevel;            _ui.m_scrollPane.m_listBg.numItems = IDList.Count;            _ui.m_scrollPane.m_listItems.numItems = IDList.Count;            _ui.m_scrollPane.m_listBg.ResizeToFit();        }        private void ProgressAutoLocate()        {            _ui.m_scrollPane.target.scrollPane.posX                = curLevel * (_ui.m_scrollPane.m_listBg.GetChildAt(0).width + _ui.m_scrollPane.m_listBg.columnGap)                + (curLevel > 0 ? -150 : 0);        }        private void RenderListItem(int index, GObject gObject)        {            gObject.data = index;            UI_progressBgItem item = UI_progressBgItem.Proxy(gObject);            item.m_levelNum.text = (index + 1).ToString();            UI_progressBgItem.ProxyEnd();        }        private void RenderRewardListItem(int index, GObject gObject)        {            gObject.data = index;            UI_reward reward = UI_reward.Proxy(gObject);            int id = HuarongRoadGameArray.Instance.GetCfg(IDList[index]).bonusWinArr[0][0];            reward.m_loaIcon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(id));            reward.m_c1.SetSelectedIndex(curLevel > index ? 1 : 0);            reward.target.touchable = (curLevel <= index);            reward.target.data = index;            reward.target.onClick.Add(OnClickReward);            UI_reward.ProxyEnd();        }        private void OnClickReward(EventContext eventContext)        {            GObject obj = (GObject)eventContext.sender;            int id = (int)obj.data;            //ViewManager.Show<GiftDetailView>(HuarongRoadGameArray.Instance.GetCfg(IDList[id]).bonusWinArr);            GoodsItemTipsController.ShowItemTips(HuarongRoadGameArray.Instance.GetCfg(IDList[id]).bonusWinArr[0][0]);        }        private void OnBtnBackClick()        {            Hide();        }        private void InitBtnRule()        {            if (_ui.m_btnRule.data == null)            {                _ui.m_btnRule.onClick.Add(RuleController.ShowRuleView);                _ui.m_btnRule.data = 300025;            }        }        private async void OnBtnStartClick()        {            // 通关了所有            if(curLevel == IDList.Count)            {                PromptController.Instance.ShowFloatTextPrompt("已通关所有关卡");                return;            }            HuarongRoadGame cfg = HuarongRoadGameArray.Instance.dataArray[curLevel];            var result = await MiniGameProxy.ReqMiniGameStart(cfg.id, cfg.type, _activityID);            if (!result) return;            ViewManager.Show<ActivityHuaRongDaoView>(new object[] { cfg, _activityID });        }        private async Task<int> GetCurLevel(int id)        {            var result = await MiniGameProxy.ReqGetChallengeReward(id);            if (!result)            {                return -1;            }            int i;            for (i = 0; i < MiniGameDateManager.Instance.gameinfoList.Count; i++)            {                if (!MiniGameDateManager.Instance.gameinfoList[i].IsCleared)                {                    return i;                }            }            return i;        }        private void UpdateTime(object param)        {            long curTime = TimeHelper.ServerNow();            var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(_activityID);            if (activityInfo != null)            {                long endTime = activityInfo.EndTime;                _ui.m_txtTime.text = "剩余" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);            }        }    }}
 |