From 8f983d0dab26becb6b85dbbb616fde21c3ad8f02 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 20 八月 2025 18:40:23 +0800
Subject: [PATCH] 125 【战斗】战斗系统

---
 Main/System/Battle/SkillEffect/BulletSkillEffect.cs |   37 ++++++++++++++++++++++++++++---------
 1 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
index 10e146f..1b1b239 100644
--- a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -23,6 +23,7 @@
 
     public override void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
     {
+        base.Play(_onHit);
         //  寮瑰皠 鍙﹀鐨勫仛娉曚簡
         if (skillConfig.effectType == SkillEffectType.Bullet && skillConfig.BulletPath == 4)
         {
@@ -33,14 +34,14 @@
                 Debug.LogError("鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
                 return;
             }
-            ShotToTarget(targetObject, _onHit);
+            ShotToTarget(targetObject);
         }
-        //  鏅�氱殑鍋氭硶
+        //  鏅�氱殑鍋氭硶 鍖哄垎鎵撳悜闃佃惀鎴栬�呮墦鍚戜釜浣�
         else
         {
             Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHitFormation = (_hitIndex, _hurtList) =>
             {
-                _onHit?.Invoke(_hitIndex, tagUseSkillAttack.HurtList.ToList());
+                onHit?.Invoke(_hitIndex, tagUseSkillAttack.HurtList.ToList());
             };
             switch (skillConfig.castMode)
             {
@@ -63,7 +64,7 @@
                             continue;
                         }
 
-                        ShotToTarget(target, _onHit);
+                        ShotToTarget(target);
                     }
                     break;
                 case SkillCastMode.Allies:
@@ -102,30 +103,48 @@
                 }
 
                 caster.battleField.battleEffectMgr.PlayEffect(targetObj.ObjID, skillConfig.ExplosionEffectId, targetObj.heroGo.transform);
+                caster.battleField.battleEffectMgr.PlayEffect(targetObj.ObjID, skillConfig.ExplosionEffect2, targetObj.heroGo.transform);
             }
 
-            // caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.ExplosionEffectId, target);
         });
 
         bulletCurves.Add(bulletCurve);
 
     }
 
-    protected void ShotToTarget(BattleObject target, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
+    protected void ShotToTarget(BattleObject target)
     {
-        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.BulletEffectId, caster.effectNode);
+        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.BulletEffectId, caster.heroRectTrans);
         RectTransform effectTrans = effectPlayer.transform as RectTransform;
 
         var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, target.heroRectTrans, tagUseSkillAttack, (index, hitList) =>
         {
-            //  鍑讳腑灏遍攢姣佸瓙寮� 瀛愬脊涓嶉渶瑕佽嚜鍔ㄩ攢姣� 閰嶇疆琛ㄩ噷autoDestroy涓篺alse
+            // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
+            onHit?.Invoke(index, hitList);
+
+            // 鍑讳腑灏遍攢姣佸瓙寮�
             caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.BulletEffectId, effectPlayer);
-            _onHit?.Invoke(index, hitList);
+            // 鎾斁瀛愬脊鐖嗙偢鐗规晥
+
+            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;
+                }
+
+                caster.battleField.battleEffectMgr.PlayEffect(targetObj.ObjID, skillConfig.ExplosionEffectId, targetObj.heroGo.transform);
+                caster.battleField.battleEffectMgr.PlayEffect(targetObj.ObjID, skillConfig.ExplosionEffect2, targetObj.heroGo.transform);
+            }
         });
 
         bulletCurves.Add(bulletCurve);
     }
 
+
+
     public override void Run()
     {
         foreach (var bulletCurve in bulletCurves)

--
Gitblit v1.8.0