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; _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 item = UI_RewardIconYellow.Proxy(obj); var itemInfos = (int[][])obj.parent.data; // if (!(obj.parent.data is int[][] parentData)) // { // UI_RewardIconYellow.ClearProxy(); // return; // } var itemInfo = itemInfos[index]; var itemId = itemInfo[0]; var num = itemInfo[1]; var itemCfg = ItemCfgArray.Instance.GetCfg(itemId); if (itemCfg != null) { item.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res); item.m_num.text = num.ToString(); } UI_RewardIconYellow.ProxyEnd(); } 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; } await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel); } } }