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<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit; 
 | 
  
 | 
    public SkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack) 
 | 
    { 
 | 
        skillConfig = _skillConfig; 
 | 
        caster = _caster; 
 | 
        tagUseSkillAttack = _tagUseSkillAttack; 
 | 
    } 
 | 
  
 | 
    //   
 | 
    public virtual void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _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); 
 | 
    } 
 | 
     
 | 
    /// <summary> 
 | 
    /// 后摇开始 
 | 
    /// </summary> 
 | 
    public virtual void OnFinalFrameStart() 
 | 
    { 
 | 
  
 | 
    } 
 | 
  
 | 
    /// <summary> 
 | 
    /// 后摇结束 
 | 
    /// </summary> 
 | 
    public virtual void OnFinalFrameEnd() 
 | 
    { 
 | 
        isFinishFrameEnd = true; 
 | 
    } 
 | 
     
 | 
    public virtual bool IsFinished() 
 | 
    { 
 | 
        return isFinish && isFinishFrameEnd; 
 | 
    } 
 | 
  
 | 
    public virtual void ForceFinished() 
 | 
    { 
 | 
        isFinish = true; 
 | 
        isFinishFrameEnd = true; 
 | 
    } 
 | 
} 
 |