From 2668ee0c8bb360ce8909d88796e3f87abc393773 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 19 十一月 2025 10:02:55 +0800
Subject: [PATCH] 125 战斗 弹射支持
---
Main/System/Battle/SkillEffect/BulletSkillEffect.cs | 60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 48 insertions(+), 12 deletions(-)
diff --git a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
index 603fff8..77a1466 100644
--- a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -380,27 +380,61 @@
effectPlayer.Alpha = shotToSelf ? 0f : 1f;
+ int bounceHitIndex = 0;
+
var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, target.heroRectTrans, tagUseSkillAttack.HurtList.ToList(), bulletIndex, (index, hitList) =>
{
- foreach (var hurt in hitList)
+ if (skillConfig.BulletPath == 4)
{
+ if (bounceHitIndex >= hitList.Count)
+ {
+ return;
+ }
+ var hurt = hitList[bounceHitIndex++];
BattleObject targetObj = caster.battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID);
- if (targetObj == null)
+ if (targetObj != null)
+ {
+ PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
+ PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
+ PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
+ PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+ }
+ else
{
Debug.LogError("鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
- continue;
}
- PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
- PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
- PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
- PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
- }
+ // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
+ onHit?.Invoke(index, new List<HB427_tagSCUseSkill.tagSCUseSkillHurt> { hurt });
- // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
- onHit?.Invoke(index, hitList);
- // 鍑讳腑灏遍攢姣佸瓙寮�
- caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.BulletEffectId, effectPlayer);
+ if (bulletIndex == tagUseSkillAttack.HurtList.Length - 1)
+ {
+ caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.BulletEffectId, effectPlayer);
+ }
+ }
+ else
+ {
+ foreach (var hurt in hitList)
+ {
+ BattleObject targetObj = caster.battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID);
+ if (targetObj == null)
+ {
+ Debug.LogError("鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
+ continue;
+ }
+
+ PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
+ PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
+ PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
+ PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+ }
+
+ // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
+ onHit?.Invoke(index, hitList);
+ // 鍑讳腑灏遍攢姣佸瓙寮�
+
+ caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.BulletEffectId, effectPlayer);
+ }
if (isFinish)
return;
@@ -414,6 +448,8 @@
bulletCurves.Add(bulletCurve);
}
+
+
protected void PlayExplosionEffect(int effectId, Transform parent, BattleCamp camp)
{
if (effectId <= 0)
--
Gitblit v1.8.0