using ET; using FairyGUI; using UI.League; using UnityEngine; namespace GFGGame { //联盟祈福 public class LeaguePrayView : BaseWindow { private UI_LeaguePrayUI _ui; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_LeaguePrayUI.PACKAGE_NAME; _ui = UI_LeaguePrayUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_btnClose.onClick.Add(Hide); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, UpdateView); } protected override void OnShown() { base.OnShown(); UpdateView(); } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, UpdateView); } private void UpdateView() { UpdateComPary(_ui.m_comPary0.target, LeaguePrayType.First); UpdateComPary(_ui.m_comPary1.target, LeaguePrayType.Second); UpdateComPary(_ui.m_comPary2.target, LeaguePrayType.Third); } private void UpdateComPary(GObject obj, int type) { LeaguePrayCfg prayCfg = LeaguePrayCfgArray.Instance.GetCfg(type); UI_ComPary item = UI_ComPary.Proxy(obj); ItemUtil.UpdateItemNeedNum(item.m_comGain, prayCfg.bonusArr[0][0], prayCfg.bonusArr[0][1], false, "#B38441"); ItemUtil.UpdateItemNeedNum(item.m_comFirstGain, prayCfg.bonusOnceArr[0][0], prayCfg.bonusOnceArr[0][1], false, "#B38441"); int curTimes = LeagueDataManager.Instance.GetPrayTimesByType(type); if (type == LeaguePrayType.First && curTimes == 0) { ItemUtil.UpdateItemNeedNum(item.m_btnPray.m_comCost, prayCfg.consumeArr[0][0], 0); } else { ItemUtil.UpdateItemNeedNum(item.m_btnPray.m_comCost, prayCfg.consumeArr[0][0], prayCfg.consumeArr[0][1]); } item.m_c1.selectedIndex = curTimes == 0 ? 0 : 1; item.m_btnPray.target.enabled = curTimes < prayCfg.limit; item.m_txtCount.SetVar("value", curTimes.ToString()).FlushVars(); item.m_txtCount.SetVar("maxValue", prayCfg.limit.ToString()).FlushVars(); if (item.m_btnPray.target.data == null) { item.m_btnPray.target.onClick.Add(OnBtnPrayClick); } item.m_btnPray.target.data = type; UI_ComPary.ProxyEnd(); } private void OnBtnPrayClick(EventContext context) { int type = (int)(context.sender as GObject).data; LeaguePrayCfg prayCfg = LeaguePrayCfgArray.Instance.GetCfg(type); int curTimes = LeagueDataManager.Instance.GetPrayTimesByType(type); long hasCount = ItemDataManager.GetItemNum(prayCfg.consumeArr[0][0]); long needCount = prayCfg.consumeArr[0][1]; if (type != LeaguePrayType.First && curTimes != 0 && hasCount < needCount) { PromptController.Instance.ShowFloatTextPrompt("消耗不足"); return; } LeagueSproxy.ReqPrayLeague(type).Coroutine(); } } }