| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- 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<cfg.ItemParam> globalCfgBattlePassLevelConsumeArr =
- CommonDataManager.Tables.TblGlobalCfg.BattlePassLevelConsume;
- if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr))
- {
- PromptController.Instance.ShowFloatTextPrompt("货币不够!");
- return;
- }
- var isBuy = await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel);
- if (isBuy)
- {
- Hide();
- }
- }
- }
- }
|