using System; using System.Collections.Generic; using UnityEngine; public class SkillEffect { protected SkillConfig skillConfig; protected BattleObject caster; protected HB427_tagSCUseSkill tagUseSkillAttack;// 目标列表 protected bool isFinish = false; protected bool isFinishFrameEnd = false; protected Action> onHit; public SkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack) { skillConfig = _skillConfig; caster = _caster; tagUseSkillAttack = _tagUseSkillAttack; } // public virtual void Play(Action> _onHit) { onHit = _onHit; if (skillConfig.EffectId > 0) { caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId, caster.heroRectTrans, caster.Camp); } if (skillConfig.EffectId2 > 0) { caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId2, caster.heroRectTrans, caster.Camp); } } public virtual void Run() { } public virtual void OnMiddleFrameEnd(int times, int hitIndex) { } public virtual void OnMiddleFrameStart(int times) { if (skillConfig.MStartEffectId <= 0) return; // 中摇固定特效 caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp); } /// /// 后摇开始 /// public virtual void OnFinalFrameStart() { } /// /// 后摇结束 /// public virtual void OnFinalFrameEnd() { isFinishFrameEnd = true; } public virtual bool IsFinished() { return isFinish && isFinishFrameEnd; } public virtual void ForceFinished() { isFinish = true; isFinishFrameEnd = true; } }