using cfg.GfgCfg; 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 =CommonDataManager.Tables.TblLeaguePrayCfg.GetOrDefault(type); UI_ComPary item = UI_ComPary.Proxy(obj); int curTimes = LeagueDataManager.Instance.GetPrayTimesByType(type); int ExtraArrLength = prayCfg.BonusExtra.Count; ItemUtil.UpdateItemNeedNum(item.m_comGain, prayCfg.Bonus[0].ItemId, prayCfg.Bonus[0].Count, false, "#B38441"); ItemUtil.UpdateItemNeedNum(item.m_comFirstGain, prayCfg.BonusOnce[0].ItemId, prayCfg.BonusOnce[0].Count, false, "#B38441"); if(ExtraArrLength > 0) ItemUtil.UpdateItemNeedNum(item.m_comGain2, prayCfg.BonusExtra[0].ItemId, prayCfg.BonusExtra[0].Count, 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.Consume[0].ItemId, 0); } else { ItemUtil.UpdateItemNeedNum(item.m_btnPray.m_comCost, prayCfg.Consume[0].ItemId, prayCfg.Consume[0].Count); } 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 = CommonDataManager.Tables.TblLeaguePrayCfg.GetOrDefault(type); int curTimes = LeagueDataManager.Instance.GetPrayTimesByType(type); if (type == LeaguePrayType.First && curTimes != 0 || type != LeaguePrayType.First) { if (!ItemUtil.CheckItemEnough(prayCfg.Consume[0].ItemId, prayCfg.Consume[0].Count)) { long has = ItemDataManager.GetItemNum(prayCfg.Consume[0].ItemId); ItemUtil.BuyCurrency(prayCfg.Consume[0].ItemId, prayCfg.Consume[0].Count - has); return; } } LeagueSproxy.ReqPrayLeague(type).Coroutine(); } } }