HeroBreakthroughSuccessPanel.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System.Collections.Generic;
  2. using Core.Language;
  3. using Fort23.Core;
  4. using GameLogic.Hero;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. namespace Fort23.Mono
  8. {
  9. [UIBinding(prefab = "HeroBreakthroughSuccessPanel")]
  10. public partial class HeroBreakthroughSuccessPanel : UIPanel
  11. {
  12. List<UIComponent> heroAttributeWidgets = new List<UIComponent>();
  13. private void Init()
  14. {
  15. }
  16. protected override void AddEvent()
  17. {
  18. }
  19. protected override void DelEvent()
  20. {
  21. }
  22. public override void AddButtonEvent()
  23. {
  24. Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  25. }
  26. int type;
  27. public async static CTask<HeroBreakthroughSuccessPanel> OpenPanel(int type,
  28. List<HeroAttributeData> heroAttributes)
  29. {
  30. HeroBreakthroughSuccessPanel heroBreakthroughSuccessPanel =
  31. await UIManager.Instance.LoadAndOpenPanel<HeroBreakthroughSuccessPanel>(null, UILayer.Top,
  32. uiData: new object[] { type, heroAttributes }, isShowBG: true);
  33. // heroBreakthroughSuccessPanel.CustomInit(type, heroAttributes);
  34. return heroBreakthroughSuccessPanel;
  35. }
  36. public async override CTask<bool> AsyncInit(object[] uiData)
  37. {
  38. int type = int.Parse(uiData[0].ToString());
  39. List<HeroAttributeData> heroAttributes = uiData[1] as List<HeroAttributeData>;
  40. await CustomInit(type, heroAttributes);
  41. return await base.AsyncInit(uiData);
  42. }
  43. public async CTask CustomInit(int type, List<HeroAttributeData> heroAttributes)
  44. {
  45. // HeroInfo heroInfo = new HeroInfo();
  46. HeroInfo heroInfo = PlayerManager.Instance.myHero.CopyHero();
  47. heroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId,
  48. PlayerManager.Instance.myHero.heroData.heroPowerId - 1);
  49. Text_NextJIngjie.text =
  50. LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[0]) +
  51. LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[1]) +
  52. LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[2]);
  53. Text_CurretnJIngjie.text = LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[0]) +
  54. LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[1]) +
  55. LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[2]);
  56. if (type == 1 || type == 2)
  57. {
  58. Icon_Tu.gameObject.SetActive(true);
  59. Icon_Dj.gameObject.SetActive(false);
  60. }
  61. else
  62. {
  63. Icon_Tu.gameObject.SetActive(false);
  64. Icon_Dj.gameObject.SetActive(true);
  65. }
  66. foreach (var heroAttributeData in heroAttributes)
  67. {
  68. if (type == 1)
  69. {
  70. HeroAttributeWidgetType1 heroAttributeWidget =
  71. await UIManager.Instance.CreateGComponent<HeroAttributeWidgetType1>(null, AttributeRoot);
  72. heroAttributeWidget.CustomInit(heroAttributeData);
  73. heroAttributeWidgets.Add(heroAttributeWidget);
  74. }
  75. else
  76. {
  77. HeroAttributeWidgetType2 heroAttributeWidget =
  78. await UIManager.Instance.CreateGComponent<HeroAttributeWidgetType2>(null, AttributeRoot);
  79. heroAttributeWidget.CustomInit(heroAttributeData);
  80. heroAttributeWidgets.Add(heroAttributeWidget);
  81. }
  82. }
  83. LayoutRebuilder.ForceRebuildLayoutImmediate(AttributeRoot);
  84. LayoutRebuilder.ForceRebuildLayoutImmediate(AttributeRoot.parent.GetComponent<RectTransform>());
  85. }
  86. public async override CTask Close()
  87. {
  88. foreach (var heroAttributeWidget in heroAttributeWidgets)
  89. {
  90. UIManager.Instance.DormancyGComponent(heroAttributeWidget);
  91. }
  92. heroAttributeWidgets.Clear();
  93. await base.Close();
  94. }
  95. }
  96. }