From 4ef97b03b8f723a2b058eb15883e6b742077affe Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 18 十一月 2025 17:12:45 +0800
Subject: [PATCH] 125 战斗 DOT技能 特效

---
 Main/System/Battle/Skill/DotSkill.cs.meta             |   11 +++++
 Main/System/Battle/Skill/SkillFactory.cs              |    3 +
 Main/System/Battle/SkillEffect/DotSkillEffect.cs.meta |   11 +++++
 Main/System/Battle/SkillEffect/DotSkillEffect.cs      |   39 +++++++++++++++++++
 Main/System/Battle/Skill/SkillEffectType.cs           |    2 +
 Main/System/Battle/SkillEffect/SkillEffectFactory.cs  |    2 +
 Main/System/Battle/Skill/DotSkill.cs                  |   25 ++++++++++++
 7 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/Main/System/Battle/Skill/DotSkill.cs b/Main/System/Battle/Skill/DotSkill.cs
new file mode 100644
index 0000000..f6e9547
--- /dev/null
+++ b/Main/System/Battle/Skill/DotSkill.cs
@@ -0,0 +1,25 @@
+
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+using System.Linq;
+using Spine;
+
+
+public class DotSkill : SkillBase
+{
+
+	public DotSkill(BattleObject _caster, SkillConfig _skillCfg,
+			HB427_tagSCUseSkill _vNetData, List<GameNetPackBasic> _packList, BattleField _battleField)
+			: base(_caster, _skillCfg, _vNetData, _packList, _battleField)
+	{
+
+	}
+
+	public override void Cast()
+    {
+		OnSkillStart();
+		isFinished = true;
+		moveFinished = true;
+    }
+}
\ No newline at end of file
diff --git a/Main/System/Battle/Skill/DotSkill.cs.meta b/Main/System/Battle/Skill/DotSkill.cs.meta
new file mode 100644
index 0000000..bdffe2b
--- /dev/null
+++ b/Main/System/Battle/Skill/DotSkill.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2f8b71d47e638ae48866f14fa037ac80
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Battle/Skill/SkillEffectType.cs b/Main/System/Battle/Skill/SkillEffectType.cs
index 4204b64..66d1f54 100644
--- a/Main/System/Battle/Skill/SkillEffectType.cs
+++ b/Main/System/Battle/Skill/SkillEffectType.cs
@@ -8,5 +8,7 @@
     BuffEffect,
     StageEffect,
 
+    DOTEffect,
+
     NoEffect,
 }
\ No newline at end of file
diff --git a/Main/System/Battle/Skill/SkillFactory.cs b/Main/System/Battle/Skill/SkillFactory.cs
index 1564813..185e2bb 100644
--- a/Main/System/Battle/Skill/SkillFactory.cs
+++ b/Main/System/Battle/Skill/SkillFactory.cs
@@ -54,6 +54,7 @@
 		}
 
 		SkillBase skill = null;
+
 		switch (skillConfig.SkillType)
 		{
 			case 1:
@@ -65,6 +66,8 @@
 				break;
 			case 3:
 			case 4:
+				skill = new DotSkill(_caster, skillConfig, vNetData, packList, battleField);
+				break;
 			case 5:
 			case 6:
 			case 14:
diff --git a/Main/System/Battle/SkillEffect/DotSkillEffect.cs b/Main/System/Battle/SkillEffect/DotSkillEffect.cs
new file mode 100644
index 0000000..5cd0fdd
--- /dev/null
+++ b/Main/System/Battle/SkillEffect/DotSkillEffect.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Cysharp.Threading.Tasks;
+using DG.Tweening;
+using UnityEngine;
+
+//
+
+public class DotSkillEffect : SkillEffect
+{
+    // protected SkillConfig skillConfig;
+    // protected BattleObject caster;
+    // protected List<BattleObject> targets; // 鐩爣鍒楄〃
+
+    public DotSkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
+        : base(_skillConfig, _caster, _tagUseSkillAttack)
+    {
+
+    }
+
+    public override void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
+    {
+        onHit = _onHit;
+        if (skillConfig.TriggerEffect > 0)
+        {
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.TriggerEffect, caster.heroRectTrans, caster.Camp);
+        }
+        onHit?.Invoke(0, tagUseSkillAttack.HurtList.ToList());
+        isFinish = true;
+    }
+
+
+    public override bool IsFinished()
+    {
+        return isFinish;
+    }
+
+}
\ No newline at end of file
diff --git a/Main/System/Battle/SkillEffect/DotSkillEffect.cs.meta b/Main/System/Battle/SkillEffect/DotSkillEffect.cs.meta
new file mode 100644
index 0000000..5d26b3c
--- /dev/null
+++ b/Main/System/Battle/SkillEffect/DotSkillEffect.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c21b446d8723d624aa45c5ec0bfb5dce
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Battle/SkillEffect/SkillEffectFactory.cs b/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
index 9e30aa7..1a79c8c 100644
--- a/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
@@ -17,6 +17,8 @@
             //     return new BuffSkillEffect(skillConfig, caster, targets);
             // case SkillEffectType.StageEffect:
             //     return new StageSkillEffect(skillConfig, caster, targets);
+            case SkillEffectType.DOTEffect:
+                return new DotSkillEffect(skillConfig, caster, tagUseSkillAttack);
             case SkillEffectType.NoEffect:
                 return new NoEffect(skillConfig, caster, tagUseSkillAttack);
             default:

--
Gitblit v1.8.0