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