BuyBattlePassLevelView.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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 item = UI_RewardIconYellow.Proxy(obj);
  41. var itemInfos = (int[][])obj.parent.data;
  42. // if (!(obj.parent.data is int[][] parentData))
  43. // {
  44. // UI_RewardIconYellow.ClearProxy();
  45. // return;
  46. // }
  47. var itemInfo = itemInfos[index];
  48. var itemId = itemInfo[0];
  49. var num = itemInfo[1];
  50. var itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
  51. if (itemCfg != null)
  52. {
  53. item.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res);
  54. item.m_num.text = num.ToString();
  55. }
  56. UI_RewardIconYellow.ProxyEnd();
  57. }
  58. private void SetLevel()
  59. {
  60. var dataManager = BattlePassTaskDataManager.Instance;
  61. var battlePassLevel = dataManager.GetBattlePassLevel();
  62. _ui.m_Tip.SetVar("startLeve", battlePassLevel.ToString())
  63. .SetVar("endLevel", (battlePassLevel + addLevel).ToString()).FlushVars();
  64. var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr;
  65. var count = globalCfgBattlePassLevelConsumeArr[0][1];
  66. _ui.m_AddLevelBtn.text = (addLevel * count).ToString();
  67. var upLevelReward = dataManager.GetUpLevelReward(addLevel);
  68. _ui.m_Rewards.data = upLevelReward;
  69. _ui.m_Rewards.numItems = upLevelReward?.Length ?? 0;
  70. }
  71. private void OnReduceLevel(EventContext context)
  72. {
  73. if (addLevel == 0)
  74. {
  75. return;
  76. }
  77. addLevel -= 1;
  78. SetLevel();
  79. }
  80. private void OnAddLevel(EventContext context)
  81. {
  82. var newLevel = addLevel + 1;
  83. var dataManager = BattlePassTaskDataManager.Instance;
  84. var cfg = BattlePassCfgArray.Instance.GetCfgByidAndlevel(dataManager.GetSeasonId(), newLevel);
  85. if (cfg == null)
  86. {
  87. return;
  88. }
  89. addLevel = newLevel;
  90. SetLevel();
  91. }
  92. private async void OnRequestAddLevel(EventContext context)
  93. {
  94. //检查是否消耗足够
  95. var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr;
  96. if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr, addLevel))
  97. {
  98. PromptController.Instance.ShowFloatTextPrompt("货币不够!");
  99. return;
  100. }
  101. await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel);
  102. }
  103. }
  104. }