using UnityEngine; using System.Collections.Generic; public class SkillRecordAction : RecordAction { protected SkillBase skillBase; private bool isCast = false; public SkillRecordAction(BattleField _battleField, BattleObject _caster, HB427_tagSCUseSkill vNetData, List packList) : base(RecordActionType.Skill, _battleField, _caster) { // Debug.LogError("_caster == null : " + (_caster == null)); skillBase = SkillFactory.CreateSkill(_caster, vNetData, packList, _battleField); } public override bool IsFinished() { if (null == skillBase) { return true; } return skillBase.IsFinished(); } public override void ForceFinish() { // 设置结束flag 记得清空motionBase里的事件 if (null != skillBase) { skillBase.ForceFinished(); } base.ForceFinish(); } public override void Run() { base.Run(); if (null == skillBase) { return; } if (!skillBase.IsFinished()) { skillBase.Run(); } if (isCast) return; skillBase.Cast(); isCast = true; } }