From 7935e509ef7a17cfcaceb81944745b19f8b7087c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 22 五月 2026 16:15:36 +0800
Subject: [PATCH] 花鬘自身复活问题修复

---
 Main/System/Battle/SkillEffect/SkillEffect.cs |   26 ++++++++++++++++++--------
 1 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/Main/System/Battle/SkillEffect/SkillEffect.cs b/Main/System/Battle/SkillEffect/SkillEffect.cs
index e0d4e11..18179af 100644
--- a/Main/System/Battle/SkillEffect/SkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffect.cs
@@ -6,6 +6,7 @@
 {
     protected SkillBase skillBase;
     protected SkillConfig skillConfig;
+    protected SkillSkinConfig skillSkinConfig;
     protected BattleObject caster;
     protected HB427_tagSCUseSkill tagUseSkillAttack;// 鐩爣鍒楄〃
 
@@ -15,10 +16,11 @@
 
     protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit;
 
-    public SkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
+    public SkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, SkillSkinConfig _skillSkinConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
     {
         skillBase = _skillBase;
         skillConfig = _skillConfig;
+        skillSkinConfig = _skillSkinConfig;
         caster = _caster;
         tagUseSkillAttack = _tagUseSkillAttack;
     }
@@ -27,15 +29,15 @@
     public virtual void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
     {
         onHit = _onHit;
-        if (skillConfig.EffectId > 0)
+        if (skillSkinConfig.EffectId > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillSkinConfig.EffectId, caster.GetRectTransform(), caster.Camp, caster.GetModelScale());
         }
-        if (skillConfig.EffectId2 > 0)
+        if (skillSkinConfig.EffectId2 > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId2, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillSkinConfig.EffectId2, caster.GetRectTransform(), caster.Camp, caster.GetModelScale());
         }
-    }
+     }
 
     public virtual void Run()
     {
@@ -49,10 +51,10 @@
 
     public virtual void OnMiddleFrameStart(int times)
     {
-        if (skillConfig.MStartEffectId <= 0)
+        if (skillSkinConfig.MStartEffectId <= 0)
             return;
         //  涓憞鍥哄畾鐗规晥
-        caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp, caster.teamHero.modelScale);
+        caster.battleField.battleEffectMgr.PlayEffect(caster, skillSkinConfig.MStartEffectId, caster.GetTransform(), caster.Camp, caster.GetModelScale());
     }
     
     /// <summary>
@@ -76,6 +78,14 @@
         return isFinish && isFinishFrameEnd;
     }
 
+#if UNITY_EDITOR
+    /// <summary>鍗℃璇婃柇鐢細鎵撳嵃 SkillEffect 鍐呴儴 isFinish / isFinishFrameEnd 绛夋爣蹇椾綅銆�</summary>
+    public virtual string DumpState()
+    {
+        return $"{GetType().Name} isFinish={isFinish} isFinishFrameEnd={isFinishFrameEnd}";
+    }
+#endif
+
     public virtual void ForceFinished()
     {
         isFinish = true;

--
Gitblit v1.8.0