From b6f94e013be7edc0aa3de2440dd52d2c7e6d9d38 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 27 十月 2025 18:37:18 +0800
Subject: [PATCH] 125 竞技场+伤害展示跟技能名字弹出
---
Main/System/Battle/SkillEffect/NormalSkillEffect.cs | 113 ++++++++++++++++++++++++--------------------------------
1 files changed, 48 insertions(+), 65 deletions(-)
diff --git a/Main/System/Battle/SkillEffect/NormalSkillEffect.cs b/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
index 0e8d860..172d5f6 100644
--- a/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
@@ -14,75 +14,58 @@
public NormalSkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
: base(_skillConfig, _caster, _tagUseSkillAttack)
{
-
- }
-
-
- public override void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
- {
-
- // // 鐗规晥鐐稿紑鍦ㄩ樀瀹圭殑涓棿鐨勫洖璋�
- // Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHitLineUpCenter = (_hitIndex, _hurtList) =>
- // {
- // _onHit?.Invoke(_hitIndex, tagUseSkillAttack.HurtList.ToList());
- // };
-
- // if (skillConfig.effectAnchor == SkillEffectAnchor.Caster)
- // {
- // CastInTarget(caster.heroGo.transform as RectTransform, onHitLineUpCenter);
- // }
- // else if (skillConfig.effectAnchor == SkillEffectAnchor.Target)
- // {
- // if (tagUseSkillAttack == null || tagUseSkillAttack.HurtList.Length <= 0)
- // {
- // Debug.LogError("娌℃湁鐩爣 tagUseSkillAttack.HurtList.Length <= 0");
- // _onHit?.Invoke(0, default);
- // return;
- // }
-
- // foreach (var hurt in tagUseSkillAttack.HurtList)
- // {
- // BattleObject target = caster.battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID);
- // if (target == null)
- // {
- // Debug.LogError("鐗规晥鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
- // continue;
- // }
-
- // CastInTarget(target.heroGo.transform as RectTransform, (index, list) => _onHit(0, new List<HB427_tagSCUseSkill.tagSCUseSkillHurt>() { hurt }));
- // }
- // }
- // else if (skillConfig.effectAnchor == SkillEffectAnchor.AlliesCenter)
- // {
- // CastInTarget(caster.battleField.GetTeamNode(caster.Camp), onHitLineUpCenter);
- // }
- // else if (skillConfig.effectAnchor == SkillEffectAnchor.EnemiesCenter)
- // {
- // CastInTarget(caster.battleField.GetTeamNode(caster.Camp == BattleCamp.Blue ? BattleCamp.Red : BattleCamp.Blue), onHitLineUpCenter);
- // }
- // else
- // {
- // Debug.LogError("鏈煡鐨勬妧鑳界壒鏁堥敋鐐圭被鍨�: " + skillConfig.effectAnchor);
- // }
- }
-
- protected void CastInTarget(RectTransform target, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
- {
- // EffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.EffectId, caster.effectNode);
-
- // RectTransform effectTrans = effectPlayer.transform as RectTransform;
-
- // _onHit?.Invoke(0, null);
-
- // // 閿�姣佽嚜韬笂鐨勭壒鏁堝簲璇ユ槸绛夌壒鏁堟挱鏀惧畬姣曚箣鍚�
- // // caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.EffectId, effectPlayer);
- // // 鎾斁鍙楀嚮鐗规晥
- // caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.ExplotionEffectId, target);
}
- public override void Run()
+
+ public override void OnMiddleFrameEnd(int times, int hitIndex)
{
+ int mainTargetIndex = BattleUtility.GetMainTargetPositionNum(caster, tagUseSkillAttack.HurtList.ToList(), skillConfig);
+
+ BattleCamp battleCamp = skillConfig.TagFriendly == 1 ? caster.Camp : caster.GetEnemyCamp();
+
+ RectTransform targetTransform = caster.battleField.GetTeamNode(battleCamp, mainTargetIndex);
+
+ if (skillConfig.ExplosionEffectId > 0)
+ {
+ caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffectId, targetTransform, caster.Camp);
+ }
+
+ if (skillConfig.ExplosionEffect2 > 0)
+ {
+ caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffect2, targetTransform, caster.Camp);
+ }
+
+ 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)
+ {
+ Debug.LogError("鐗规晥鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
+ continue;
+ }
+
+ if (skillConfig.ExplosionEffect3 > 0)
+ {
+ caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect3, target.heroGo.transform, caster.Camp);
+ }
+ if (skillConfig.ExplosionEffect4 > 0)
+ {
+ caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect4, target.heroGo.transform, caster.Camp);
+ }
+ }
+
+ onHit?.Invoke(hitIndex, tagUseSkillAttack.HurtList.ToList());
+ }
+
+ /// <summary>
+ /// 鍚庢憞缁撴潫
+ /// </summary>
+ public override void OnFinalFrameEnd()
+ {
+ base.OnFinalFrameEnd();
+ isFinish = true;
}
}
\ No newline at end of file
--
Gitblit v1.8.0