using System; using System.Collections.Generic; using Common.Utility.CombatEvent; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Skill; using UnityEngine; namespace GameLogic.Combat.Hero { public class CombatHeroSkillControlBasic : IDisposable { public BetterList allSkill = new BetterList(); protected CombatHeroEntity _combatHeroEntity; /// /// 当前显示跑CD的技能 /// public SkillBasic currCdSkill; public T This() where T : class { return this as T; } public async CTask Init(CombatHeroEntity combatHeroEntity) { _combatHeroEntity = combatHeroEntity; await ProInit(); } protected virtual async CTask ProInit() { } public SkillBasic GetSkillBasic(int skillGroupId) { for (int i = 0; i < allSkill.Count; i++) { if (allSkill[i].SelfSkillConfig.IDGroup == skillGroupId) { return allSkill[i]; } } return null; } public SkillBasic AddSkill(SkillConfig skillConfig) { if (string.IsNullOrEmpty(skillConfig.scriptName)) { return null; } SkillBasic skillBasic = SkillScriptManager.Instance.CreateSkillBasic(skillConfig); if (skillBasic == null) { return null; } skillBasic.InitSkill(_combatHeroEntity); allSkill.Add(skillBasic); return skillBasic; } public void Update(float t) { for (int i = 0; i < allSkill.Count; i++) { allSkill[i].CombatUpdate(t); } ProUpdate(t); } protected virtual void ProUpdate(float t) { } public virtual void Dispose() { _combatHeroEntity = null; } public virtual void ProDormancyObj() { for (int i = 0; i < allSkill.size; i++) { SkillBasic skillBasic = allSkill[i]; CObjectPool.Instance.Recycle(skillBasic); } allSkill.Clear(); } } }