From ed98029a88cd89702980ac7c40b711afddc5aeb2 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 20 十一月 2025 14:44:59 +0800
Subject: [PATCH] Merge branch 'master' of http://mobile.secondworld.net.cn:10010/r/Project_SG_scripts

---
 Main/System/Battle/SkillEffect/SkillEffect.cs |   89 ++++++++++++++++++++++++++++++--------------
 1 files changed, 60 insertions(+), 29 deletions(-)

diff --git a/Main/System/Battle/SkillEffect/SkillEffect.cs b/Main/System/Battle/SkillEffect/SkillEffect.cs
index 9fb324f..f588b5b 100644
--- a/Main/System/Battle/SkillEffect/SkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffect.cs
@@ -4,50 +4,81 @@
 
 public class SkillEffect
 {
+    protected SkillBase skillBase;
     protected SkillConfig skillConfig;
     protected BattleObject caster;
-    protected H0604_tagUseSkillAttack tagUseSkillAttack;// 鐩爣鍒楄〃
+    protected HB427_tagSCUseSkill tagUseSkillAttack;// 鐩爣鍒楄〃
 
-    public SkillEffect(SkillConfig _skillConfig, BattleObject _caster, H0604_tagUseSkillAttack _tagUseSkillAttack)
+    protected bool isFinish = false;
+
+    protected bool isFinishFrameEnd = false;
+
+    protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit;
+
+    public SkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
     {
+        skillBase = _skillBase;
         skillConfig = _skillConfig;
         caster = _caster;
         tagUseSkillAttack = _tagUseSkillAttack;
     }
 
-    public Action OnHit; // 琛ㄧ幇鍒拌揪鐩爣鏃跺洖璋�
-
     //  
-    public virtual void Play(Action<int, List<H0604_tagUseSkillAttack.tagSkillHurtObj>> _onHit)
+    public virtual void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
     {
-        // OnHit = _onHit;
-        // switch (skillConfig.effectType)
-        // {
-        //     case SkillEffectType.StageEffect:
-        //         Debug.LogError("鎾斁鍦烘櫙鐗规晥");
-        //         break;
-        //     case SkillEffectType.Bullet:
-        //         // 浼唬鐮侊細琛ㄧ幇瀛愬脊椋炶
-        //         Debug.Log("鎾斁瀛愬脊鐗规晥");
-        //         // 鍒拌揪鐩爣鏃�
-        //         OnHit?.Invoke();
-        //         break;
-        //     case SkillEffectType.Direct:
-        //         // 浼唬鐮侊細鐩存帴鍦ㄧ洰鏍囪韩涓婃挱鏀剧壒鏁�
-        //         Debug.Log("鎾斁鐩存帴鐗规晥");
-        //         OnHit?.Invoke();
-        //         break;
-        //     case SkillEffectType.BuffEffect:
-        //         // 浼唬鐮侊細鎾斁鎸佺画鐗规晥
-        //         Debug.Log("鎾斁Buff鐗规晥");
-        //         break;
-        //     default:
-        //         break;
-        // }
+        onHit = _onHit;
+        if (skillConfig.EffectId > 0)
+        {
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId, caster.heroRectTrans, caster.Camp);
+        }
+        if (skillConfig.EffectId2 > 0)
+        {
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId2, caster.heroRectTrans, caster.Camp);
+        }
     }
 
     public virtual void Run()
     {
 
     }
+
+    public virtual void OnMiddleFrameEnd(int times, int hitIndex)
+    {
+
+    }
+
+    public virtual void OnMiddleFrameStart(int times)
+    {
+        if (skillConfig.MStartEffectId <= 0)
+            return;
+        //  涓憞鍥哄畾鐗规晥
+        caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp);
+    }
+    
+    /// <summary>
+    /// 鍚庢憞寮�濮�
+    /// </summary>
+    public virtual void OnFinalFrameStart()
+    {
+
+    }
+
+    /// <summary>
+    /// 鍚庢憞缁撴潫
+    /// </summary>
+    public virtual void OnFinalFrameEnd()
+    {
+        isFinishFrameEnd = true;
+    }
+    
+    public virtual bool IsFinished()
+    {
+        return isFinish && isFinishFrameEnd;
+    }
+
+    public virtual void ForceFinished()
+    {
+        isFinish = true;
+        isFinishFrameEnd = true;
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0