using System; using System.Collections.Generic; using Fort23.Core; using GameLogic.Hero; using UnityEngine; namespace Fort23.Mono { [UIBinding(prefab = "SkillSelectPanel")] public partial class SkillSelectPanel : UIPanel { private bool _isSelectSkill; private List allKongSkill = new List(); private SkillInfo selectSkillConfig; private bool isAlter; public static async CTask OpenSkillSelectPanel() { await UIManager.Instance.LoadAndOpenPanel(null, UILayer.Middle); } private void Init() { } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { guanbi.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); XiuXing.onClick.AddListener(async () => { await TaoismPanel.OpenTaoismPanel(); UIManager.Instance.HideUIUIPanel(this); }); } public override async CTask Open() { await base.Open(); allKongSkill.Clear(); UIManager.Instance.DormancyAllGComponent(); UIManager.Instance.DormancyAllGComponent(); int[] allSkill = new[] { 10011, 20011, 11011, 12011, 13011, 5010011, 5011011, 5012011, 5013011, 5014011, 5015011 }; for (int i = 0; i < allSkill.Length; i++) { int id = allSkill[i]; SkillWidget skillWidget = await UIManager.Instance.CreateGComponentForObject(SkillWidget, null, SkillWidgetRoot, isInstance: true); SkillInfo skillInfo = new SkillInfo(id, 1); skillWidget.InitSkillWidget(skillInfo, this); } Vector2 dir = new Vector2(0, 1); for (int i = 0; i < 10; i++) { int index = i; double hd = (-36 * i) * Math.PI / 180f; double a = Math.Cos(hd); double b = -Math.Sin(hd); double c = Math.Sin(hd); double d = a; double x = a * 0 + b * 114; double y = c * 0 + d * 114; Vector2 pos = new Vector2((float)x, (float)y); SkillKongWidget skillKongWidget = await UIManager.Instance.CreateGComponentForObject( kongdongs.gameObject, null, SkillKongWeiRoot, isInstance: true); skillKongWidget.InitWidget(index, this); skillKongWidget.SetSKill(PlayerManager.Instance.GongFaControl.GetSkillInfo(index)); skillKongWidget.transform.anchoredPosition = pos; allKongSkill.Add(skillKongWidget); } } public void SelectSkill(SkillInfo skillConfig) { selectSkillConfig = skillConfig; _isSelectSkill = true; for (int i = 0; i < allKongSkill.Count; i++) { allKongSkill[i].SelectState(true); } } private void CloseSelect() { _isSelectSkill = false; selectSkillConfig = null; for (int i = 0; i < allKongSkill.Count; i++) { allKongSkill[i].SelectState(false); } } public void SelectKongSkill(SkillKongWidget skillKongWidget) { isAlter = true; if (!_isSelectSkill || selectSkillConfig == null) { PlayerManager.Instance.GongFaControl.RemoveSkillInfo(skillKongWidget.index); skillKongWidget.Cleared(); return; } skillKongWidget.SetSKill(selectSkillConfig); selectSkillConfig.index = skillKongWidget.index; PlayerManager.Instance.GongFaControl.allUseSkill[skillKongWidget.index] = (selectSkillConfig); CloseSelect(); } public override void Hide() { base.Hide(); if (isAlter) { PlayerManager.Instance.GongFaControl.SaveUseSkill(); } isAlter = false; } } }