SkillRoadSelecPanel.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Core.Language;
  5. using Excel2Json;
  6. using Fort23.Core;
  7. using Fort23.UTool;
  8. namespace Fort23.Mono
  9. {
  10. [UIBinding(prefab = "SkillRoadSelecPanel")]
  11. public partial class SkillRoadSelecPanel : UIPanel
  12. {
  13. List<SkillRoadWidget> _skillRoadWidgets = new List<SkillRoadWidget>();
  14. private Action<int> callBack;
  15. private void Init()
  16. {
  17. }
  18. protected override void AddEvent()
  19. {
  20. }
  21. protected override void DelEvent()
  22. {
  23. }
  24. public override void AddButtonEvent()
  25. {
  26. Btn_Close.onClick.AddListener(() =>
  27. {
  28. callBack?.Invoke(0);
  29. UIManager.Instance.HideUIUIPanel(this);
  30. });
  31. }
  32. public async void CustomInit(int currentSelectId, Action<int> callBack)
  33. {
  34. this.callBack = callBack;
  35. List<SkillConfig> skillConfigs = ConfigComponent.Instance.GetAll<SkillConfig>().ToList();
  36. List<SkillConfig> configs = skillConfigs.Where(s => s.SkillType == 4).ToList();
  37. foreach (var skillConfig in configs)
  38. {
  39. SkillRoadWidget skillRoadWidget =
  40. await UIManager.Instance.CreateGComponent<SkillRoadWidget>(null, Content);
  41. skillRoadWidget.CustomInti(skillConfig.ID, skillConfig.ID == 601011);
  42. skillRoadWidget.OnClick = OnClick;
  43. _skillRoadWidgets.Add(skillRoadWidget);
  44. }
  45. if (currentSelectId == 0)
  46. {
  47. Text_SkillName.text = "未选择";
  48. }
  49. else
  50. {
  51. SkillConfig skillConfig = ConfigComponent.Instance.Get<SkillConfig>(currentSelectId);
  52. Text_SkillName.text = LanguageManager.Instance.Text(skillConfig.name);
  53. Icon_SkillIcon.icon_name = skillConfig.icon;
  54. }
  55. }
  56. private void OnClick(ItemWidgetBasic obj)
  57. {
  58. SkillRoadWidget skillRoadWidget = obj as SkillRoadWidget;
  59. if (!skillRoadWidget.isUlock)
  60. return;
  61. // PlayerManager.Instance.GongFaControl.SetTaoismSkillIndex(skillRoadWidget.SkillConfig.ID);
  62. // PlayerManager.Instance.myHero.heroData.TaoismSkillId = skillRoadWidget.SkillConfig.ID;
  63. // AccountFileInfo.Instance.SavePlayerData();
  64. callBack?.Invoke(skillRoadWidget.SkillConfig.ID);
  65. UIManager.Instance.HideUIUIPanel(this);
  66. }
  67. public async static void OpenPanel(int currentSelectId, Action<int> callBack)
  68. {
  69. SkillRoadSelecPanel skillRoadSelecPanel =
  70. await UIManager.Instance.LoadAndOpenPanel<SkillRoadSelecPanel>(null);
  71. skillRoadSelecPanel.CustomInit(currentSelectId, callBack);
  72. }
  73. public async override CTask Close()
  74. {
  75. foreach (var skillRoadWidget in _skillRoadWidgets)
  76. {
  77. UIManager.Instance.DormancyGComponent(skillRoadWidget);
  78. }
  79. _skillRoadWidgets.Clear();
  80. await base.Close();
  81. }
  82. }
  83. }