GongFaDetailsPanel.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Core.Language;
  4. using Excel2Json;
  5. using Fort23.Core;
  6. using Fort23.UTool;
  7. using GameLogic.Hero;
  8. using UnityEngine;
  9. using UnityEngine.UI;
  10. using Utility;
  11. namespace Fort23.Mono
  12. {
  13. [UIBinding(prefab = "GongFaDetailsPanel")]
  14. public partial class GongFaDetailsPanel : UIPanel
  15. {
  16. private SkillInfo _skillInfo;
  17. private List<SkillConfig> configs;
  18. List<GongFaUpgradeInfoWidget> _gongFaUpgradeInfoWidgets = new List<GongFaUpgradeInfoWidget>();
  19. private List<SkillPowerupConfig> _skillPowerupConfigs;
  20. private SkillConstant skillConstant;
  21. List<ItemWidgetType1> _itemWidgetType1 = new List<ItemWidgetType1>();
  22. List<EnergyWidget> _energyWidgets = new List<EnergyWidget>();
  23. bool isUpStar = false;
  24. bool isUpGrad = false;
  25. private void Init()
  26. {
  27. isAddStack = false;
  28. IsShowAppBar = false;
  29. isPopUi = true;
  30. }
  31. protected override void AddEvent()
  32. {
  33. }
  34. protected override void DelEvent()
  35. {
  36. }
  37. public override void AddButtonEvent()
  38. {
  39. Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  40. }
  41. public async void CustomInit(SkillInfo skillInfo)
  42. {
  43. foreach (var gongFaUpgradeInfoWidget in _gongFaUpgradeInfoWidgets)
  44. {
  45. UIManager.Instance.DormancyGComponent(gongFaUpgradeInfoWidget);
  46. }
  47. _gongFaUpgradeInfoWidgets.Clear();
  48. _skillInfo = skillInfo;
  49. _skillPowerupConfigs = ConfigComponent.Instance.GetAll<SkillPowerupConfig>().ToList();
  50. SkillConfig skillConfig = _skillInfo.skillConfig;
  51. Icon_GongFaIcon.icon_name = skillConfig.icon;
  52. Text_SkillCd.text = $"功法运作周期:{skillConfig.cd}转";
  53. skillConstant = ConfigComponent.Instance.Get<SkillConstant>(1);
  54. UpdateStarBtn();
  55. Text_GongFaDesc.text = UtilTools.GetString(LanguageManager.Instance.Text(skillConfig.dec), _skillInfo.effectValue);
  56. Text_GongFaName.text = LanguageManager.Instance.Text(skillConfig.name) + " Lv." + _skillInfo.SkillPowerupConfig.ID.ToString();
  57. switch (skillConfig.attribute)
  58. {
  59. case 1:
  60. Icon_Attribute.icon_name = "dec_jin";
  61. break;
  62. case 2:
  63. Icon_Attribute.icon_name = "dec_mu";
  64. break;
  65. case 4:
  66. Icon_Attribute.icon_name = "dec_shui";
  67. break;
  68. case 8:
  69. Icon_Attribute.icon_name = "dec_huo";
  70. break;
  71. case 16:
  72. Icon_Attribute.icon_name = "dec_tu";
  73. break;
  74. }
  75. for (var i = 0; i < StarRoot.Count; i++)
  76. {
  77. MyImage icon = StarRoot[i] as MyImage;
  78. if (i < skillInfo.skillConfig.level - 1)
  79. {
  80. icon.gameObject.SetActive(true);
  81. }
  82. else
  83. {
  84. icon.gameObject.SetActive(false);
  85. }
  86. }
  87. List<SkillConfig> allSkillConfigs = ConfigComponent.Instance.GetAll<SkillConfig>().ToList();
  88. configs = allSkillConfigs.Where(s => s.IDGroup == skillConfig.IDGroup).ToList();
  89. for (var i = 0; i < configs.Count; i++)
  90. {
  91. if (configs[i].level == 1)
  92. continue;
  93. SkillInfo skillInfo1 = new SkillInfo(configs[i].IDGroup, _skillInfo.SkillPowerupConfig.ID, configs[i].level);
  94. GongFaUpgradeInfoWidget gongFaUpgradeInfoWidget = await UIManager.Instance.CreateGComponent<GongFaUpgradeInfoWidget>(null, Content);
  95. gongFaUpgradeInfoWidget.CustomInit(_skillInfo, skillInfo1);
  96. _gongFaUpgradeInfoWidgets.Add(gongFaUpgradeInfoWidget);
  97. }
  98. }
  99. private async CTask UpdateStarBtn()
  100. {
  101. foreach (var itemWidgetType1 in _itemWidgetType1)
  102. {
  103. UIManager.Instance.DormancyGComponent(itemWidgetType1);
  104. }
  105. _itemWidgetType1.Clear();
  106. foreach (var energyWidget in _energyWidgets)
  107. {
  108. UIManager.Instance.DormancyGComponent(energyWidget);
  109. }
  110. _energyWidgets.Clear();
  111. }
  112. public async static CTask<GongFaDetailsPanel> Open(SkillInfo skillInfo)
  113. {
  114. GongFaDetailsPanel gongFaUpgradePanel = await UIManager.Instance.LoadAndOpenPanel<GongFaDetailsPanel>(null, UILayer.Top);
  115. gongFaUpgradePanel.CustomInit(skillInfo);
  116. return gongFaUpgradePanel;
  117. }
  118. public override void Close()
  119. {
  120. foreach (var gongFaUpgradeInfoWidget in _gongFaUpgradeInfoWidgets)
  121. {
  122. UIManager.Instance.DormancyGComponent(gongFaUpgradeInfoWidget);
  123. }
  124. foreach (var itemWidgetType1 in _itemWidgetType1)
  125. {
  126. UIManager.Instance.DormancyGComponent(itemWidgetType1);
  127. }
  128. foreach (var energyWidget in _energyWidgets)
  129. {
  130. UIManager.Instance.DormancyGComponent(energyWidget);
  131. }
  132. _energyWidgets.Clear();
  133. _itemWidgetType1.Clear();
  134. _gongFaUpgradeInfoWidgets.Clear();
  135. isUpStar = false;
  136. isUpGrad = false;
  137. _skillInfo = null;
  138. base.Close();
  139. }
  140. }
  141. }