HeroBreakthroughSuccessPanel.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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, List<HeroAttributeData> heroAttributes)
  28. {
  29. HeroBreakthroughSuccessPanel heroBreakthroughSuccessPanel = await UIManager.Instance.LoadAndOpenPanel<HeroBreakthroughSuccessPanel>(null, UILayer.Top, isFocus: false);
  30. heroBreakthroughSuccessPanel.CustomInit(type, heroAttributes);
  31. return heroBreakthroughSuccessPanel;
  32. }
  33. public async void CustomInit(int type, List<HeroAttributeData> heroAttributes)
  34. {
  35. // HeroInfo heroInfo = new HeroInfo();
  36. HeroInfo heroInfo = PlayerManager.Instance.myHero.CopyHero();
  37. heroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId, PlayerManager.Instance.myHero.heroData.heroPowerId + 1);
  38. Text_CurretnJIngjie.text = LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[0]) +
  39. LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[1]) +
  40. LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[2]);
  41. Text_NextJIngjie.text = LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[0]) +
  42. LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[1]) +
  43. LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[2]);
  44. if (type == 1 || type == 2)
  45. {
  46. Icon_Tu.gameObject.SetActive(true);
  47. Icon_Dj.gameObject.SetActive(false);
  48. }
  49. else
  50. {
  51. Icon_Tu.gameObject.SetActive(false);
  52. Icon_Dj.gameObject.SetActive(true);
  53. }
  54. foreach (var heroAttributeData in heroAttributes)
  55. {
  56. if (type == 1)
  57. {
  58. HeroAttributeWidgetType1 heroAttributeWidget = await UIManager.Instance.CreateGComponent<HeroAttributeWidgetType1>(null, AttributeRoot);
  59. heroAttributeWidget.CustomInit(heroAttributeData);
  60. heroAttributeWidgets.Add(heroAttributeWidget);
  61. }
  62. else
  63. {
  64. HeroAttributeWidgetType2 heroAttributeWidget = await UIManager.Instance.CreateGComponent<HeroAttributeWidgetType2>(null, AttributeRoot);
  65. heroAttributeWidget.CustomInit(heroAttributeData);
  66. heroAttributeWidgets.Add(heroAttributeWidget);
  67. }
  68. }
  69. LayoutRebuilder.ForceRebuildLayoutImmediate(AttributeRoot);
  70. LayoutRebuilder.ForceRebuildLayoutImmediate(AttributeRoot.parent.GetComponent<RectTransform>());
  71. }
  72. public override void Close()
  73. {
  74. foreach (var heroAttributeWidget in heroAttributeWidgets)
  75. {
  76. UIManager.Instance.DormancyGComponent(heroAttributeWidget);
  77. }
  78. heroAttributeWidgets.Clear();
  79. base.Close();
  80. }
  81. }
  82. }