BuyBattlePassLevelView.cs 3.6 KB

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