BuyBattlePassLevelView.cs 3.6 KB

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