BuyBattlePassLevelView.cs 3.7 KB

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