using System.Linq; using ET; using FairyGUI; using UI.Task; namespace GFGGame { public class BuyBattlePassLevelView : BaseWindow { private UI_BuyBattlePassLevelUI _ui; private int addLevel = 1; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_OpenBattlePassUI.PACKAGE_NAME; _ui = UI_BuyBattlePassLevelUI.Create(); viewCom = _ui.target; viewCom.Center(); _ui.m_CloseBtn.onClick.Add(Hide); // clickBlankToClose = false; _ui.m_Rewards.itemRenderer = SpecialRewardRender; var globalCfgBattlePassLevelConsumeArr = CommonDataManager.Tables.TblGlobalCfg.BattlePassLevelConsume; _ui.m_AddLevelBtn.icon = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg .GetOrDefault(globalCfgBattlePassLevelConsumeArr[0].ItemId).Res); _ui.m_Add.onClick.Add(OnAddLevel); _ui.m_Reduce.onClick.Add(OnReduceLevel); _ui.m_AddLevelBtn.onClick.Add(OnRequestAddLevel); modal = true; } protected override void OnShown() { SetLevel(); base.OnShown(); } private static void SpecialRewardRender(int index, GObject obj) { var itemInfos = (int[][])obj.parent.data; var itemInfo = itemInfos[index]; ItemUtil.CreateItemView(new ItemParamProto() { ItemId = itemInfo[0], Count = itemInfo[1] }, obj as GComponent); } private void SetLevel() { var dataManager = BattlePassTaskDataManager.Instance; var battlePassLevel = dataManager.GetBattlePassLevel(); _ui.m_Tip.SetVar("startLeve", battlePassLevel.ToString()) .SetVar("endLevel", (battlePassLevel + addLevel).ToString()).FlushVars(); var globalCfgBattlePassLevelConsumeArr = CommonDataManager.Tables.TblGlobalCfg.BattlePassLevelConsume; var count = globalCfgBattlePassLevelConsumeArr[0].Count; _ui.m_AddLevelBtn.text = (addLevel * count).ToString(); var upLevelReward = dataManager.GetUpLevelReward(addLevel); _ui.m_Rewards.data = upLevelReward; _ui.m_Rewards.numItems = upLevelReward?.Count ?? 0; } private void OnReduceLevel(EventContext context) { if (addLevel == 0) { return; } addLevel -= 1; SetLevel(); } private void OnAddLevel(EventContext context) { var newLevel = addLevel + 1; var dataManager = BattlePassTaskDataManager.Instance; var cfg = CommonDataManager.Tables.TblBattlePassCfg.DataList .Where(a => a.Id == dataManager.GetSeasonId() && a.Level == newLevel).ToList(); if (cfg.Count == 0) { return; } addLevel = newLevel; SetLevel(); } private async void OnRequestAddLevel(EventContext context) { //检查是否消耗足够 System.Collections.Generic.List globalCfgBattlePassLevelConsumeArr = CommonDataManager.Tables.TblGlobalCfg.BattlePassLevelConsume; if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr)) { PromptController.Instance.ShowFloatTextPrompt("货币不够!"); return; } var isBuy = await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel); if (isBuy) { Hide(); } } } }