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/NormalSkillEffect.cs |   93 ++++++++++++++++------------------------------
 1 files changed, 33 insertions(+), 60 deletions(-)

diff --git a/Main/System/Battle/SkillEffect/NormalSkillEffect.cs b/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
index 0e8d860..369704d 100644
--- a/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
@@ -14,75 +14,48 @@
     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);
-        // }
+        // 鎾斁鎶�鑳界壒鏁�
+        BattleEffectPlayer battleEffectPlayer = caster.battleField.battleEffectMgr.PlayEffect(
+            caster.ObjID,
+            skillConfig.EffectId,
+            caster.heroGo.transform
+        );
     }
 
-    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()
     {
+        base.Run();
+    }
 
+    public override void OnMiddleFrameEnd(int times, int 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)
+            {
+                Debug.LogError("鐗规晥鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
+                continue;
+            }
+
+            caster.battleField.battleEffectMgr.PlayEffect(target.ObjID, skillConfig.ExplosionEffectId, target.heroGo.transform);
+            caster.battleField.battleEffectMgr.PlayEffect(target.ObjID, skillConfig.ExplosionEffect2, target.heroGo.transform);
+        }
+        
+        onHit?.Invoke(hitIndex, tagUseSkillAttack.HurtList.ToList());
+    }
+
+    public override void OnMiddleFrameStart(int times)
+    {
+        
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0