using ET; using FairyGUI; using UI.CommonGame; 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); int curTimes = LeagueDataManager.Instance.GetPrayTimesByType(type); int ExtraArrLength = prayCfg.bonusExtraArr.Length; 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"); if(ExtraArrLength > 0) ItemUtil.UpdateItemNeedNum(item.m_comGain2, prayCfg.bonusExtraArr[0][0], prayCfg.bonusExtraArr[0][1], false, "#B38441"); if (curTimes != 0 && ExtraArrLength <= 0) item.m_c1.selectedIndex = 0; else if(curTimes != 0 && ExtraArrLength > 0) item.m_c1.selectedIndex = 1; else if (curTimes == 0 && ExtraArrLength <= 0) item.m_c1.selectedIndex = 2; else if (curTimes == 0 && ExtraArrLength > 0) item.m_c1.selectedIndex = 3; 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_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; RedDotController.Instance.SetComRedDot(item.m_btnPray.target, type == LeaguePrayType.First && RedDotDataManager.Instance.GetLeaguePrayRed()); 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); if (type == LeaguePrayType.First && curTimes != 0 || type != LeaguePrayType.First) { if (!ItemUtil.CheckItemEnough(prayCfg.consumeArr[0][0], prayCfg.consumeArr[0][1])) { long has = ItemDataManager.GetItemNum(prayCfg.consumeArr[0][0]); ItemUtil.BuyCurrency(prayCfg.consumeArr[0][0], prayCfg.consumeArr[0][1] - has); return; } } LeagueSproxy.ReqPrayLeague(type).Coroutine(); } } }