using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using Cysharp.Threading.Tasks;
|
using DG.Tweening;
|
using UnityEngine;
|
|
public class NormalSkillEffect : SkillEffect
|
{
|
// protected SkillConfig skillConfig;
|
// protected BattleObject caster;
|
// protected List<BattleObject> targets; // 目标列表
|
|
public NormalSkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
|
: base(_skillConfig, _caster, _tagUseSkillAttack)
|
{
|
|
}
|
|
// 技能动作第一帧
|
// 不用理会回调
|
public override void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
|
{
|
// 播放技能特效
|
BattleEffectPlayer battleEffectPlayer = caster.battleField.battleEffectMgr.PlayEffect(
|
caster.ObjID,
|
skillConfig.EffectId,
|
caster.heroGo.transform
|
);
|
}
|
|
|
public override void Run()
|
{
|
base.Run();
|
}
|
|
public override void OnMiddleFrameEnd(int times, int hitIndex)
|
{
|
BattleDebug.LogError($" NormalSkillEffect OnMiddleFrameEnd times : {times}, hitIndex : {hitIndex}");
|
for (int i = 0; i < tagUseSkillAttack.HurtList.Length; i++)
|
{
|
var hurt = tagUseSkillAttack.HurtList[i];
|
BattleObject target = caster.battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID);
|
if (target == null)
|
{
|
BattleDebug.LogError("特效目标为空 target == null ObjId : " + hurt.ObjID);
|
continue;
|
}
|
|
/*var effect1 = */
|
caster.battleField.battleEffectMgr.PlayEffect(target.ObjID, skillConfig.ExplosionEffectId, target.heroGo.transform);
|
/*var effect2 = */
|
caster.battleField.battleEffectMgr.PlayEffect(target.ObjID, skillConfig.ExplosionEffect2, target.heroGo.transform);
|
// if (effect1 != null)
|
// {
|
// effect1.transform.localRotation = effectTrans.localRotation;
|
// }
|
// if (effect2 != null)
|
// {
|
// effect2.transform.localRotation = effectTrans.localRotation;
|
// }
|
}
|
|
// 为什么没触发
|
onHit?.Invoke(hitIndex, tagUseSkillAttack.HurtList.ToList());
|
isFinish = true;
|
}
|
|
public override void OnMiddleFrameStart(int times)
|
{
|
|
}
|
}
|