BuyBattlePassLevelView.cs 3.3 KB

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