BuyBattlePassLevelView.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using ET;
  2. using FairyGUI;
  3. using UI.Task;
  4. namespace GFGGame
  5. {
  6. public class BuyBattlePassLevelView : BaseWindow
  7. {
  8. private UI_BuyBattlePassLevelUI _ui;
  9. private int addLevel = 1;
  10. public override void Dispose()
  11. {
  12. if (_ui != null)
  13. {
  14. _ui.Dispose();
  15. _ui = null;
  16. }
  17. base.Dispose();
  18. }
  19. protected override void OnInit()
  20. {
  21. base.OnInit();
  22. packageName = UI_OpenBattlePassUI.PACKAGE_NAME;
  23. _ui = UI_BuyBattlePassLevelUI.Create();
  24. viewCom = _ui.target;
  25. viewCom.Center();
  26. _ui.m_CloseBtn.onClick.Add(Hide);
  27. // clickBlankToClose = false;
  28. _ui.m_Rewards.itemRenderer = SpecialRewardRender;
  29. var globalCfgBattlePassLevelConsumeArr = CommonDataManager.Tables.TblGlobalCfg.BattlePassLevelConsume;
  30. _ui.m_AddLevelBtn.icon =
  31. ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg
  32. .GetOrDefault(globalCfgBattlePassLevelConsumeArr[0].ItemId).Res);
  33. _ui.m_Add.onClick.Add(OnAddLevel);
  34. _ui.m_Reduce.onClick.Add(OnReduceLevel);
  35. _ui.m_AddLevelBtn.onClick.Add(OnRequestAddLevel);
  36. modal = true;
  37. }
  38. protected override void OnShown()
  39. {
  40. SetLevel();
  41. base.OnShown();
  42. }
  43. private static void SpecialRewardRender(int index, GObject obj)
  44. {
  45. var itemInfos = (int[][])obj.parent.data;
  46. var itemInfo = itemInfos[index];
  47. ItemUtil.CreateItemView(new ItemParamProto() { ItemId = itemInfo[0], Count = itemInfo[1] },
  48. obj as GComponent);
  49. }
  50. private void SetLevel()
  51. {
  52. var dataManager = BattlePassTaskDataManager.Instance;
  53. var battlePassLevel = dataManager.GetBattlePassLevel();
  54. _ui.m_Tip.SetVar("startLeve", battlePassLevel.ToString())
  55. .SetVar("endLevel", (battlePassLevel + addLevel).ToString()).FlushVars();
  56. var globalCfgBattlePassLevelConsumeArr = CommonDataManager.Tables.TblGlobalCfg.BattlePassLevelConsume;
  57. var count = globalCfgBattlePassLevelConsumeArr[0].Count;
  58. _ui.m_AddLevelBtn.text = (addLevel * count).ToString();
  59. var upLevelReward = dataManager.GetUpLevelReward(addLevel);
  60. _ui.m_Rewards.data = upLevelReward;
  61. _ui.m_Rewards.numItems = upLevelReward?.Count ?? 0;
  62. }
  63. private void OnReduceLevel(EventContext context)
  64. {
  65. if (addLevel == 0)
  66. {
  67. return;
  68. }
  69. addLevel -= 1;
  70. SetLevel();
  71. }
  72. private void OnAddLevel(EventContext context)
  73. {
  74. var newLevel = addLevel + 1;
  75. var dataManager = BattlePassTaskDataManager.Instance;
  76. var cfg = CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ByIdAndLevel(dataManager.GetSeasonId(),
  77. newLevel);
  78. if (cfg == null)
  79. {
  80. return;
  81. }
  82. addLevel = newLevel;
  83. SetLevel();
  84. }
  85. private async void OnRequestAddLevel(EventContext context)
  86. {
  87. //检查是否消耗足够
  88. System.Collections.Generic.List<cfg.ItemParam> globalCfgBattlePassLevelConsumeArr =
  89. CommonDataManager.Tables.TblGlobalCfg.BattlePassLevelConsume;
  90. if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr))
  91. {
  92. PromptController.Instance.ShowFloatTextPrompt("货币不够!");
  93. return;
  94. }
  95. var isBuy = await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel);
  96. if (isBuy)
  97. {
  98. Hide();
  99. }
  100. }
  101. }
  102. }