BuyBattlePassLevelView.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System.Collections.Generic;
  2. using FairyGUI;
  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 = (List<KeyValuePair<int, long>>)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.Key;
  49. var num = itemInfo.Value;
  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 battlePassLevel = BattlePassTaskDataManager.Instance.GetBattlePassLevel();
  61. _ui.m_Tip.SetVar("StartLevel", 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. }
  67. private void OnReduceLevel(EventContext context)
  68. {
  69. if (addLevel == 0)
  70. {
  71. return;
  72. }
  73. addLevel -= 1;
  74. setLevel();
  75. }
  76. private void OnAddLevel(EventContext context)
  77. {
  78. }
  79. private async void OnRequestAddLevel(EventContext context)
  80. {
  81. //检查是否消耗足够
  82. var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr;
  83. if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr, addLevel))
  84. {
  85. PromptController.Instance.ShowFloatTextPrompt("货币不够!");
  86. return;
  87. }
  88. await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel);
  89. }
  90. }
  91. }