|
using System.Collections.Generic;
|
using UnityEngine;
|
using System;
|
using System.Linq;
|
|
|
public class DirectlyDamageSkill : SkillBase
|
{
|
protected SkillEffect skillEffect;
|
|
public DirectlyDamageSkill(BattleObject _caster, SkillConfig _skillCfg,
|
HB427_tagSCUseSkill _vNetData, List<GameNetPackBasic> _packList, BattleField _battleField)
|
: base(_caster, _skillCfg, _vNetData, _packList, _battleField)
|
{
|
foreach (var pack in packList)
|
{
|
Debug.LogError("directly damage skill pack type is " + pack.GetType());
|
}
|
}
|
|
public override void Run()
|
{
|
if (null != skillEffect)
|
{
|
skillEffect.Run();
|
}
|
|
base.Run();
|
}
|
|
// 技能开始
|
public override void OnSkillStart()
|
{
|
skillEffect = SkillEffectFactory.CreateSkillEffect(
|
caster,
|
skillConfig,
|
tagUseSkillAttack
|
);
|
if (skillEffect != null)
|
{
|
skillEffect.Play(OnHitTargets);
|
}
|
}
|
|
// 前摇结束
|
public override void OnStartSkillFrameEnd()
|
{
|
base.OnStartSkillFrameEnd();
|
}
|
|
protected override void OnHitTargets(int _hitIndex, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> hitList)
|
{
|
base.OnHitTargets(_hitIndex, hitList);
|
}
|
|
protected override void OnHitEachTarget(BattleObject target, long totalDamage, List<long> damageList, ref HB427_tagSCUseSkill.tagSCUseSkillHurt hurt)
|
{
|
base.OnHitEachTarget(target, totalDamage, damageList, ref hurt);
|
}
|
|
|
public override void OnMiddleFrameStart(int times)
|
{
|
base.OnMiddleFrameStart(times);
|
|
skillEffect?.OnMiddleFrameStart(times);
|
}
|
|
|
// 中摇结束(命中帧)
|
public override void OnMiddleFrameEnd(int times, int hitIndex)
|
{
|
skillEffect?.OnMiddleFrameEnd(times, hitIndex);
|
}
|
|
// 后摇结束
|
public override void OnFinalFrameEnd()
|
{
|
|
}
|
}
|