using System.Collections.Generic; using UnityEngine; public class SkillBase { protected SkillConfig skillConfig; protected bool isFinished = false; public SkillBase(SkillConfig _skillCfg) { skillConfig = _skillCfg; } public virtual void Run() { } public virtual void Cast(BattleObject _caster, BattleField battleField, List>> damageList) { Debug.LogError("SkillBase Cast should be overridden by derived class"); } public virtual bool IsFinished() { return isFinished; } public virtual void ForceFinished() { isFinished = true; } #if UNITY_EDITOR public virtual List GetTargetList(BattleObject _caster, BattleField battleField) { SkillTargetType targetType = SkillTargetType.Enemy; SkillTargetRangeType rangeType = SkillTargetRangeType.LowestHP; List affectList = battleField.battleObjMgr.GetTargetList(_caster, targetType, rangeType); return affectList; } public virtual List>> GetDamageList(BattleObject _caster, BattleField battleField) { Debug.LogError("SkillBase GetDamageList should be overridden by derived class"); return null; } #endif }