| | |
| | | { |
| | | protected SkillConfig skillConfig; |
| | | protected BattleObject caster; |
| | | protected H0604_tagUseSkillAttack tagUseSkillAttack;// 目标列表 |
| | | protected HB427_tagSCUseSkill tagUseSkillAttack;// 目标列表 |
| | | |
| | | public SkillEffect(SkillConfig _skillConfig, BattleObject _caster, H0604_tagUseSkillAttack _tagUseSkillAttack) |
| | | protected bool isFinish = 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 Action OnHit; // 表现到达目标时回调 |
| | | |
| | | // |
| | | public virtual void Play(Action<int, List<H0604_tagUseSkillAttack.tagSkillHurtObj>> _onHit) |
| | | public virtual void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit) |
| | | { |
| | | // OnHit = _onHit; |
| | | // switch (skillConfig.effectType) |
| | | // { |
| | | // case SkillEffectType.StageEffect: |
| | | // Debug.LogError("播放场景特效"); |
| | | // break; |
| | | // case SkillEffectType.Bullet: |
| | | // // 伪代码:表现子弹飞行 |
| | | // Debug.Log("播放子弹特效"); |
| | | // // 到达目标时 |
| | | // OnHit?.Invoke(); |
| | | // break; |
| | | // case SkillEffectType.Direct: |
| | | // // 伪代码:直接在目标身上播放特效 |
| | | // Debug.Log("播放直接特效"); |
| | | // OnHit?.Invoke(); |
| | | // break; |
| | | // case SkillEffectType.BuffEffect: |
| | | // // 伪代码:播放持续特效 |
| | | // Debug.Log("播放Buff特效"); |
| | | // break; |
| | | // default: |
| | | // break; |
| | | // } |
| | | onHit = _onHit; |
| | | if (skillConfig.EffectId > 0) |
| | | { |
| | | caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.EffectId, caster.heroRectTrans, caster.Camp); |
| | | } |
| | | if (skillConfig.EffectId2 > 0) |
| | | { |
| | | caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, 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.ObjID, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp); |
| | | } |
| | | |
| | | public virtual bool IsFinished() |
| | | { |
| | | return isFinish; |
| | | } |
| | | } |