BuyBattlePassLevelView.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using FairyGUI;
  2. using UI.CommonGame;
  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. _ui.m_Add.onClick.Add(OnAddLevel);
  30. _ui.m_Reduce.onClick.Add(OnReduceLevel);
  31. _ui.m_AddLevelBtn.onClick.Add(OnRequestAddLevel);
  32. }
  33. protected override void OnShown()
  34. {
  35. SetLevel();
  36. base.OnShown();
  37. }
  38. private static void SpecialRewardRender(int index, GObject obj)
  39. {
  40. var itemInfos = (int[][])obj.parent.data;
  41. var itemInfo = itemInfos[index];
  42. ItemUtil.CreateItemView(itemInfo, obj as GComponent);
  43. }
  44. private void SetLevel()
  45. {
  46. var dataManager = BattlePassTaskDataManager.Instance;
  47. var battlePassLevel = dataManager.GetBattlePassLevel();
  48. _ui.m_Tip.SetVar("startLeve", battlePassLevel.ToString())
  49. .SetVar("endLevel", (battlePassLevel + addLevel).ToString()).FlushVars();
  50. var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr;
  51. var count = globalCfgBattlePassLevelConsumeArr[0][1];
  52. _ui.m_AddLevelBtn.text = (addLevel * count).ToString();
  53. var upLevelReward = dataManager.GetUpLevelReward(addLevel);
  54. _ui.m_Rewards.data = upLevelReward;
  55. _ui.m_Rewards.numItems = upLevelReward?.Length ?? 0;
  56. }
  57. private void OnReduceLevel(EventContext context)
  58. {
  59. if (addLevel == 0)
  60. {
  61. return;
  62. }
  63. addLevel -= 1;
  64. SetLevel();
  65. }
  66. private void OnAddLevel(EventContext context)
  67. {
  68. var newLevel = addLevel + 1;
  69. var dataManager = BattlePassTaskDataManager.Instance;
  70. var cfg = BattlePassCfgArray.Instance.GetCfgByidAndlevel(dataManager.GetSeasonId(), newLevel);
  71. if (cfg == null)
  72. {
  73. return;
  74. }
  75. addLevel = newLevel;
  76. SetLevel();
  77. }
  78. private async void OnRequestAddLevel(EventContext context)
  79. {
  80. //检查是否消耗足够
  81. var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr;
  82. if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr, addLevel))
  83. {
  84. PromptController.Instance.ShowFloatTextPrompt("货币不够!");
  85. return;
  86. }
  87. await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel);
  88. }
  89. }
  90. }