using System; using System.Collections.Generic; using System.Linq; using Core.Language; using Excel2Json; using Fort23.UTool; namespace Fort23.Mono { [UIBinding(prefab = "SkillRoadSelecPanel")] public partial class SkillRoadSelecPanel : UIPanel { List _skillRoadWidgets = new List(); private Action callBack; private void Init() { } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { callBack?.Invoke(0); UIManager.Instance.HideUIUIPanel(this ); }); } public async void CustomInit(int currentSelectId,Action callBack) { this.callBack = callBack; List skillConfigs = ConfigComponent.Instance.GetAll().ToList(); List configs = skillConfigs.Where(s => s.SkillType == 4).ToList(); foreach (var skillConfig in configs) { SkillRoadWidget skillRoadWidget = await UIManager.Instance.CreateGComponent(null, Content); skillRoadWidget.CustomInti(skillConfig.ID); skillRoadWidget.onClick = OnClick; _skillRoadWidgets.Add(skillRoadWidget); } if (currentSelectId == 0) { Text_SkillName.text = "未选择"; } else { SkillConfig skillConfig = ConfigComponent.Instance.Get(currentSelectId); Text_SkillName.text = LanguageManager.Instance.Text(skillConfig.name); Icon_SkillIcon.icon_name = skillConfig.icon; } } private void OnClick(ItemWidgetBasic obj) { SkillRoadWidget skillRoadWidget = obj as SkillRoadWidget; // PlayerManager.Instance.GongFaControl.SetTaoismSkillIndex(skillRoadWidget.SkillConfig.ID); // PlayerManager.Instance.myHero.heroData.TaoismSkillId = skillRoadWidget.SkillConfig.ID; // AccountFileInfo.Instance.SavePlayerData(); callBack?.Invoke(skillRoadWidget.SkillConfig.ID); UIManager.Instance.HideUIUIPanel(this); } public async static void OpenPanel(int currentSelectId,Action callBack) { SkillRoadSelecPanel skillRoadSelecPanel = await UIManager.Instance.LoadAndOpenPanel(null); skillRoadSelecPanel.CustomInit(currentSelectId,callBack); } public override void Close() { foreach (var skillRoadWidget in _skillRoadWidgets) { UIManager.Instance.DormancyGComponent(skillRoadWidget); } _skillRoadWidgets.Clear(); base.Close(); } } }