using System.Collections.Generic; 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 = (List>)obj.parent.data; // if (!(obj.parent.data is int[][] parentData)) // { // UI_RewardIconYellow.ClearProxy(); // return; // } var itemInfo = itemInfos[index]; var itemId = itemInfo.Key; var num = itemInfo.Value; 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 battlePassLevel = BattlePassTaskDataManager.Instance.GetBattlePassLevel(); _ui.m_Tip.SetVar("StartLevel", 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(); } private void OnReduceLevel(EventContext context) { if (addLevel == 0) { return; } addLevel -= 1; setLevel(); } private void OnAddLevel(EventContext context) { } private async void OnRequestAddLevel(EventContext context) { //检查是否消耗足够 var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr; if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr, addLevel)) { PromptController.Instance.ShowFloatTextPrompt("货币不够!"); return; } await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel); } } }