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 = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr; _ui.m_AddLevelBtn.icon = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(globalCfgBattlePassLevelConsumeArr[0][0]) .res); _ui.m_Add.onClick.Add(OnAddLevel); _ui.m_Reduce.onClick.Add(OnReduceLevel); _ui.m_AddLevelBtn.onClick.Add(OnRequestAddLevel); } 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(itemInfo, 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 = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr; var count = globalCfgBattlePassLevelConsumeArr[0][1]; _ui.m_AddLevelBtn.text = (addLevel * count).ToString(); var upLevelReward = dataManager.GetUpLevelReward(addLevel); _ui.m_Rewards.data = upLevelReward; _ui.m_Rewards.numItems = upLevelReward?.Length ?? 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 = BattlePassCfgArray.Instance.GetCfgByidAndlevel(dataManager.GetSeasonId(), newLevel); if (cfg == null) { return; } addLevel = newLevel; SetLevel(); } private async void OnRequestAddLevel(EventContext context) { //检查是否消耗足够 var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr; if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr, addLevel)) { PromptController.Instance.ShowFloatTextPrompt("货币不够!"); return; } var isBuy = await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel); if (isBuy) { Hide(); } } } }