using UnityEngine;
|
using System.Collections.Generic;
|
|
public class SkillRecordAction : RecordAction
|
{
|
protected SkillBase skillBase;
|
|
private bool isCast = false;
|
|
public int fromSkillId = 0;
|
|
public SkillRecordAction(BattleField _battleField, BattleObject _caster, HB427_tagSCUseSkill vNetData, List<GameNetPackBasic> 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 (isCast && !skillBase.IsFinished())
|
{
|
skillBase.Run();
|
}
|
|
if (isCast)
|
return;
|
|
if (fromSkillId > 0)
|
{
|
BattleDebug.LogError("cast skill from skill : " + fromSkillId);
|
}
|
|
// Debug.LogError("cast skill id is " + skillBase.skillConfig.SkillID);
|
|
skillBase.fromSkillId = fromSkillId;
|
|
skillBase.Cast();
|
|
isCast = true;
|
}
|
}
|