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<GameNetPackBasic> packList)
|
: base(RecordActionType.Skill, _battleField, _caster)
|
{
|
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;
|
}
|
}
|