using cfg.GfgCfg; using ET; using FairyGUI; using UI.League; using UnityEngine; namespace GFGGame { //联盟建设 public class LeagueConstructView : BaseWindow { private UI_LeagueConstructUI _ui; private LeagueDataManager _leagueDataManager; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_LeagueConstructUI.PACKAGE_NAME; _ui = UI_LeagueConstructUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; // _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("gzs_bjbj"); _ui.m_btnClose.onClick.Add(Hide); _ui.m_btnUpLv0.target.onClick.Add(OnBtnUpLvClick); _ui.m_btnUpLv0.target.data = LeagueBuildingType.Hall; _ui.m_btnUpLv1.target.onClick.Add(OnBtnUpLvClick); _ui.m_btnUpLv1.target.data = LeagueBuildingType.Hotel; _ui.m_btnUpLv2.target.onClick.Add(OnBtnUpLvClick); _ui.m_btnUpLv2.target.data = LeagueBuildingType.Store; _ui.m_btnClose.onClick.Add(Hide); _ui.m_btnTips.onClick.Add(RuleController.ShowRuleView); _ui.m_btnTips.data = 300005; _ui.m_btnRule.onClick.Add(RuleController.ShowRuleView); _ui.m_btnRule.data = 300004; _leagueDataManager = LeagueDataManager.Instance; } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.LEAGUE_NUMBERIC_CHANGE, UpdateView); } protected override void OnShown() { base.OnShown(); UpdateView(); } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.LEAGUE_NUMBERIC_CHANGE, UpdateView); } // private void OnBtnTipsClick() // { // ViewManager.Show(); // } // private void OnBtnRuleClick() // { // ViewManager.Show(); // } private void OnBtnUpLvClick(EventContext context) { int type = (int)(context.sender as GObject).data; int myPos = _leagueDataManager.GetMyPos(); if (myPos != LeaguePos.Owner && myPos != LeaguePos.SubOwner) { PromptController.Instance.ShowFloatTextPrompt("权限不足"); return; } long needCount = 0; long hasCount = 0; if (type == LeagueBuildingType.Hall) { LeagueHallCfg hallCfg = CommonDataManager.Tables.TblLeagueHallCfg.GetOrDefault(_leagueDataManager.HallLevel); needCount = hallCfg.ConsumeUp[0].Count; hasCount = ItemDataManager.GetItemNum(hallCfg.ConsumeUp[0].ItemId); } else if (type == LeagueBuildingType.Hotel) { LeagueHotelCfg hotelCfg = CommonDataManager.Tables.TblLeagueHotelCfg.GetOrDefault(_leagueDataManager.HotelLevel); needCount = hotelCfg.Consume[0].Count; hasCount = ItemDataManager.GetItemNum(hotelCfg.Consume[0].ItemId); } else if (type == LeagueBuildingType.Store) { LeagueStoreCfg storeCfg = CommonDataManager.Tables.TblLeagueStoreCfg.GetOrDefault(_leagueDataManager.StoreLevel); needCount = storeCfg.Consume[0].Count; hasCount = ItemDataManager.GetItemNum(storeCfg.Consume[0].ItemId); } if (needCount > hasCount) { PromptController.Instance.ShowFloatTextPrompt("消耗不足"); return; } LeagueSproxy.ReqUpLeagueBuilding(type).Coroutine(); } private void UpdateView() { UpdateHall(); UpdateHotel(); UpdateStore(); } private void UpdateHall() { int hallLv = (int)_leagueDataManager.GetNumeriValue(LeagueNumericType.HallLevel); int hotelLevel = (int)_leagueDataManager.GetNumeriValue(LeagueNumericType.HotelLevel); int storeLevel = (int)_leagueDataManager.GetNumeriValue(LeagueNumericType.StoreLevel); LeagueHallCfg hallCfg = CommonDataManager.Tables.TblLeagueHallCfg.GetOrDefault(hallLv); LeagueHallCfg nextHallCfg = CommonDataManager.Tables.TblLeagueHallCfg.GetOrDefault(hallLv + 1); ItemUtil.UpdateItemNeedNum(_ui.m_comCost, ConstItemID.LEAGUE_COIN, hallCfg.Consume); _ui.m_txtLv0.text = hallLv.ToString(); int hotelLv = hotelLevel; int hotelAdd = nextHallCfg == null ? 0 : nextHallCfg.LevelHotel - hotelLv; _ui.m_comHall0.m_txtCurValue.text = hotelLv.ToString(); _ui.m_comHall0.m_txtNextAdd.text = hotelAdd.ToString(); _ui.m_comHall0.m_c1.selectedIndex = hotelAdd > 0 ? 1 : 0; int storeLv = storeLevel; int storeAdd = nextHallCfg == null ? 0 : nextHallCfg.LevelStore - storeLv; _ui.m_comHall1.m_txtCurValue.text = storeLv.ToString(); _ui.m_comHall1.m_txtNextAdd.text = storeAdd.ToString(); _ui.m_comHall1.m_c1.selectedIndex = storeAdd > 0 ? 1 : 0; _ui.m_btnUpLv0.target.enabled = nextHallCfg == null ? false : true; _ui.m_btnUpLv0.m_txtTip.text = nextHallCfg == null ? "已满级" : ""; _ui.m_btnUpLv0.m_comCost.visible = nextHallCfg == null ? false : true; _ui.m_btnUpLv0.m_comCost.visible = nextHallCfg != null; if (nextHallCfg != null) { ItemUtil.UpdateItemNeedNum(_ui.m_btnUpLv0.m_comCost, hallCfg.ConsumeUp[0].ItemId, hallCfg.ConsumeUp[0].Count); } } private void UpdateHotel() { int hallLv = _leagueDataManager.HallLevel; int hotelLv = _leagueDataManager.HotelLevel; // int hallLv = _leagueDataManager.LeagueData.HallLevel; LeagueHallCfg hallCfg = CommonDataManager.Tables.TblLeagueHallCfg.GetOrDefault(hallLv); LeagueHotelCfg hotelCfg = CommonDataManager.Tables.TblLeagueHotelCfg.GetOrDefault(hotelLv); LeagueHotelCfg nextHotelCfg = CommonDataManager.Tables.TblLeagueHotelCfg.GetOrDefault(hotelLv + 1); _ui.m_txtLv1.text = hotelLv.ToString(); int memberLimitAdd = nextHotelCfg == null ? 0 : nextHotelCfg.Limit - hotelCfg.Limit; _ui.m_comHotel0.m_txtCurValue.text = hotelCfg.Limit.ToString(); _ui.m_comHotel0.m_txtNextAdd.text = memberLimitAdd.ToString(); _ui.m_comHotel0.m_c1.selectedIndex = memberLimitAdd > 0 ? 1 : 0; int flowerLimitAdd = nextHotelCfg == null ? 0 : nextHotelCfg.LimitPosition - hotelCfg.LimitPosition; _ui.m_comHotel1.m_txtCurValue.text = hotelCfg.LimitPosition.ToString(); _ui.m_comHotel1.m_txtNextAdd.text = flowerLimitAdd.ToString(); _ui.m_comHotel1.m_c1.selectedIndex = flowerLimitAdd > 0 ? 1 : 0; int memberDayLimitAdd = nextHotelCfg == null ? 0 : nextHotelCfg.LimitDayAdd - hotelCfg.LimitDayAdd; _ui.m_comHotel2.m_txtCurValue.text = hotelCfg.LimitDayAdd.ToString(); _ui.m_comHotel2.m_txtNextAdd.text = memberDayLimitAdd.ToString(); _ui.m_comHotel2.m_c1.selectedIndex = memberDayLimitAdd > 0 ? 1 : 0; int memberDayExtraLimitAdd = nextHotelCfg == null ? 0 : nextHotelCfg.LimitDayAddExtra - hotelCfg.LimitDayAddExtra; _ui.m_comHotel3.m_txtCurValue.text = hotelCfg.LimitDayAddExtra.ToString(); _ui.m_comHotel3.m_txtNextAdd.text = memberDayExtraLimitAdd.ToString(); _ui.m_comHotel3.m_c1.selectedIndex = memberDayExtraLimitAdd > 0 ? 1 : 0; if (nextHotelCfg == null) { _ui.m_btnUpLv1.m_txtTip.text = "已满级"; _ui.m_btnUpLv1.m_comCost.visible = false; _ui.m_btnUpLv1.target.enabled = false; } else if (hallCfg.LevelHotel == hotelLv) { int needHallLv = hallLv; for (int i = hallLv - 1; i hotelLv) { needHallLv = _hallCfg.Level; break; } } _ui.m_btnUpLv1.m_txtTip.text = string.Format("宴客厅{0}级解锁", needHallLv); _ui.m_btnUpLv1.m_comCost.visible = false; _ui.m_btnUpLv1.target.enabled = false; } else { _ui.m_btnUpLv1.m_txtTip.text = ""; _ui.m_btnUpLv1.m_comCost.visible = true; _ui.m_btnUpLv1.target.enabled = true; ItemUtil.UpdateItemNeedNum(_ui.m_btnUpLv1.m_comCost, hotelCfg.Consume[0].ItemId, hotelCfg.Consume[0].Count); } } private void UpdateStore() { int hallLv = _leagueDataManager.HallLevel; int storeLv = _leagueDataManager.StoreLevel; // int hallLv = _leagueDataManager.LeagueData.HallLevel; LeagueHallCfg hallCfg = CommonDataManager.Tables.TblLeagueHallCfg.GetOrDefault(hallLv); // int storeLv = _leagueDataManager.LeagueData.StoreLevel; LeagueStoreCfg storeCfg = CommonDataManager.Tables.TblLeagueStoreCfg.GetOrDefault(storeLv); LeagueStoreCfg nextStoreCfg = CommonDataManager.Tables.TblLeagueStoreCfg.GetOrDefault(storeLv + 1); _ui.m_txtLv2.text = storeLv.ToString(); int coinLimitAdd = nextStoreCfg == null ? 0 : nextStoreCfg.LimitStore - storeCfg.LimitStore; _ui.m_comStore0.m_txtCurValue.text = storeCfg.LimitStore.ToString(); _ui.m_comStore0.m_txtNextAdd.text = coinLimitAdd.ToString(); _ui.m_comStore0.m_c1.selectedIndex = coinLimitAdd > 0 ? 1 : 0; if (nextStoreCfg == null) { _ui.m_btnUpLv2.m_txtTip.text = "已满级"; _ui.m_btnUpLv2.m_comCost.visible = false; _ui.m_btnUpLv2.target.enabled = false; } else if (hallCfg.LevelStore == storeLv) { int needHallLv = hallLv; for (int i = hallLv - 1; i < CommonDataManager.Tables.TblLeagueHallCfg.DataList.Count; i++) { LeagueHallCfg _hallCfg = CommonDataManager.Tables.TblLeagueHallCfg.DataList [i]; if (_hallCfg.LevelStore > storeLv) { needHallLv = _hallCfg.Level; break; } } _ui.m_btnUpLv2.m_txtTip.text = string.Format("宴客厅{0}级解锁", needHallLv); _ui.m_btnUpLv2.m_comCost.visible = false; _ui.m_btnUpLv2.target.enabled = false; } else { _ui.m_btnUpLv2.m_txtTip.text = ""; _ui.m_btnUpLv2.m_comCost.visible = true; _ui.m_btnUpLv2.target.enabled = true; ItemUtil.UpdateItemNeedNum(_ui.m_btnUpLv2.m_comCost, storeCfg.Consume[0].ItemId, storeCfg.Consume[0].Count); } } } }