SelectFaBaoPanel.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. using System.Collections.Generic;
  2. using Core.Language;
  3. using Fort23.Core;
  4. using GameLogic.Hero;
  5. using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
  6. using Utility;
  7. namespace Fort23.Mono
  8. {
  9. [UIBinding(prefab = "SelectFaBaoPanel")]
  10. public partial class SelectFaBaoPanel : UIPanel
  11. {
  12. private void Init()
  13. {
  14. }
  15. protected override void AddEvent()
  16. {
  17. }
  18. protected override void DelEvent()
  19. {
  20. }
  21. public override void AddButtonEvent()
  22. {
  23. Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  24. Btn_Change.onClick.AddListener(() =>
  25. {
  26. PlayerManager.Instance.FaBaoControl.ChangeUseFaBao(selectIndex, selectedFaBaoInfo);
  27. currentFaBaoInfo = selectedFaBaoInfo;
  28. selectedFaBaoInfo = null;
  29. CustomInit(selectIndex);
  30. });
  31. Btn_UpGrade.onClick.AddListener(() =>
  32. {
  33. if (selectedFaBaoInfo != null)
  34. {
  35. selectedFaBaoInfo.UpGrade();
  36. UpadaFabaoBag();
  37. UpdateUI(selectedFaBaoInfo);
  38. }
  39. });
  40. Btn_PeiYang.onClick.AddListener(() =>
  41. {
  42. BtnUpGradeRoot.SetActive(true);
  43. BtnChangeRoot.SetActive(false);
  44. });
  45. Btn_Cancel.onClick.AddListener(() =>
  46. {
  47. BtnUpGradeRoot.SetActive(false);
  48. BtnChangeRoot.SetActive(true);
  49. });
  50. }
  51. List<FaBaoAttributeWidget> faBaoAttributeWidgets = new List<FaBaoAttributeWidget>();
  52. List<FaBaoWidget> faBaoWidgets = new List<FaBaoWidget>();
  53. FaBaoWidget currentFaBaoWidget = null;
  54. FaBaoInfo currentFaBaoInfo;
  55. FaBaoInfo selectedFaBaoInfo;
  56. int selectIndex;
  57. public async override CTask<bool> AsyncInit(object[] uiData)
  58. {
  59. // await UpadaFabaoBag();
  60. return await base.AsyncInit(uiData);
  61. }
  62. private async CTask UpadaFabaoBag()
  63. {
  64. foreach (var faBaoAttributeWidget in faBaoWidgets)
  65. {
  66. UIManager.Instance.DormancyGComponent(faBaoAttributeWidget);
  67. }
  68. faBaoWidgets.Clear();
  69. for (var i = 0; i < PlayerManager.Instance.FaBaoControl.myAllFaBao.Count; i++)
  70. {
  71. if (PlayerManager.Instance.FaBaoControl.myAllFaBao[i] == currentFaBaoInfo)
  72. {
  73. continue;
  74. }
  75. FaBaoWidget faBaoWidget = await UIManager.Instance.CreateGComponent<FaBaoWidget>(null, Content);
  76. faBaoWidget.CustomInit(PlayerManager.Instance.FaBaoControl.myAllFaBao[i]);
  77. faBaoWidget.onClick = OnClick;
  78. faBaoWidgets.Add(faBaoWidget);
  79. }
  80. }
  81. private void OnClick(ItemWidgetBasic obj)
  82. {
  83. FaBaoWidget faBao = obj as FaBaoWidget;
  84. selectedFaBaoInfo = faBao.faoInfo;
  85. UpdateFaBaoUI(selectedFaBaoInfo);
  86. FaBaoInfoRoot.SetActive(true);
  87. Text_NoFabaoTips.gameObject.gameObject.SetActive(false);
  88. }
  89. public async void CustomInit(int selectIndex)
  90. {
  91. this.selectIndex = selectIndex;
  92. BtnUpGradeRoot.SetActive(false);
  93. BtnChangeRoot.SetActive(true);
  94. currentFaBaoInfo = PlayerManager.Instance.FaBaoControl.FightFaBao[selectIndex];
  95. selectedFaBaoInfo = currentFaBaoInfo;
  96. UpdateUI(selectedFaBaoInfo);
  97. UpadaFabaoBag();
  98. }
  99. private async void UpdateUI(FaBaoInfo faBaoInfo)
  100. {
  101. if (faBaoInfo != null)
  102. {
  103. if (currentFaBaoWidget == null)
  104. currentFaBaoWidget = await UIManager.Instance.CreateGComponent<FaBaoWidget>(null, CurrentFaBaoRoot);
  105. currentFaBaoWidget.CustomInit(faBaoInfo);
  106. UpdateFaBaoUI(faBaoInfo);
  107. FaBaoInfoRoot.SetActive(true);
  108. Text_NoFabaoTips.gameObject.gameObject.SetActive(false);
  109. Btn_PeiYang.gameObject.SetActive(true);
  110. equipTipsRoot.gameObject.SetActive(true);
  111. }
  112. else
  113. {
  114. FaBaoInfoRoot.SetActive(false);
  115. Text_NoFabaoTips.gameObject.gameObject.SetActive(true);
  116. Btn_PeiYang.gameObject.SetActive(false);
  117. equipTipsRoot.gameObject.SetActive(false);
  118. }
  119. }
  120. private async void UpdateFaBaoUI(FaBaoInfo faBaoInfo)
  121. {
  122. foreach (var faBaoAttributeWidget in faBaoAttributeWidgets)
  123. {
  124. UIManager.Instance.DormancyGComponent(faBaoAttributeWidget);
  125. }
  126. faBaoAttributeWidgets.Clear();
  127. Text_FaBaoName.text = LanguageManager.Instance.Text(faBaoInfo.FabaoConfig.name) + " Lv." +
  128. faBaoInfo.FabaoPowerupConfig.ID;
  129. Text_Power.text = $"强度:{faBaoInfo.qiangDu}";
  130. Text_Desc.text = UtilTools.GetString(LanguageManager.Instance.Text(faBaoInfo.SkillConfig.dec),
  131. faBaoInfo.effectValue);
  132. switch (faBaoInfo.FabaoConfig.magicAttribute)
  133. {
  134. case 1:
  135. Icon_Attribute.GetComponent<CustomStateController>().ChangeState(0);
  136. Text_Attribute.text = "金";
  137. break;
  138. case 2:
  139. Icon_Attribute.GetComponent<CustomStateController>().ChangeState(1);
  140. Text_Attribute.text = "木";
  141. break;
  142. case 4:
  143. Icon_Attribute.GetComponent<CustomStateController>().ChangeState(2);
  144. Text_Attribute.text = "水";
  145. break;
  146. case 8:
  147. Icon_Attribute.GetComponent<CustomStateController>().ChangeState(3);
  148. Text_Attribute.text = "火";
  149. break;
  150. case 16:
  151. Icon_Attribute.GetComponent<CustomStateController>().ChangeState(4);
  152. Text_Attribute.text = "土";
  153. break;
  154. }
  155. foreach (var keyValuePair in faBaoInfo.attriButedIC)
  156. {
  157. FaBaoAttributeWidget faBaoAttributeWidget =
  158. await UIManager.Instance.CreateGComponent<FaBaoAttributeWidget>(null, FaBaoAttributeWidgetRoot);
  159. faBaoAttributeWidget.CusomtInit(keyValuePair.Key, keyValuePair.Value);
  160. faBaoAttributeWidgets.Add(faBaoAttributeWidget);
  161. }
  162. }
  163. public async static CTask<SelectFaBaoPanel> OpenPanel(int selectIndex)
  164. {
  165. SelectFaBaoPanel selectFaBaoPanel = await UIManager.Instance.LoadAndOpenPanel<SelectFaBaoPanel>(null);
  166. selectFaBaoPanel.CustomInit(selectIndex);
  167. return selectFaBaoPanel;
  168. }
  169. public override void Close()
  170. {
  171. foreach (var faBaoAttributeWidget in faBaoAttributeWidgets)
  172. {
  173. UIManager.Instance.DormancyGComponent(faBaoAttributeWidget);
  174. }
  175. faBaoAttributeWidgets.Clear();
  176. foreach (var faBaoAttributeWidget in faBaoWidgets)
  177. {
  178. UIManager.Instance.DormancyGComponent(faBaoAttributeWidget);
  179. }
  180. faBaoWidgets.Clear();
  181. UIManager.Instance.DormancyGComponent(currentFaBaoWidget);
  182. currentFaBaoWidget = null;
  183. BtnUpGradeRoot.SetActive(false);
  184. BtnChangeRoot.SetActive(true);
  185. currentFaBaoInfo = null;
  186. selectedFaBaoInfo = null;
  187. base.Close();
  188. }
  189. }
  190. }