From dbf227157aecf375c2048417fa867a438b5337fe Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 09 一月 2026 20:53:19 +0800
Subject: [PATCH] 125 战斗 死亡动画播放延迟问题修复
---
Main/System/Battle/RecordPlayer/RecordAction.cs | 5 +++++
Main/System/Battle/RecordPlayer/RecordPlayer.cs | 2 +-
Main/System/Battle/Skill/SkillBase.cs | 2 +-
Main/System/Battle/Define/DamageType.cs | 6 ++++--
Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs | 5 +++++
Main/System/Battle/Define/BattleDmgInfo.cs | 17 ++++++++++-------
6 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs b/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
index c46e151..288d3ea 100644
--- a/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
+++ b/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
@@ -237,4 +237,9 @@
return true;
}
+
+ public override bool NeedWaitSibling()
+ {
+ return HasDeathTriggerSkill();
+ }
}
\ No newline at end of file
diff --git a/Main/System/Battle/Define/BattleDmgInfo.cs b/Main/System/Battle/Define/BattleDmgInfo.cs
index 10f11e1..8fd36fc 100644
--- a/Main/System/Battle/Define/BattleDmgInfo.cs
+++ b/Main/System/Battle/Define/BattleDmgInfo.cs
@@ -14,6 +14,15 @@
public class BattleDmgInfo
{
+ // 鎺掗櫎灞曠ず鐨勪激瀹崇被鍨�
+ protected static List<DamageType> ExcludeDamageTypes = new List<DamageType>
+ {
+ DamageType.SuckHpReverse,
+ DamageType.Parry,
+ DamageType.BreakArmor,
+ DamageType.Protected,
+ };
+
public string battleFieldGuid { get; private set; }
public BattleHurtParam battleHurtParam { get; private set; }
@@ -419,13 +428,7 @@
targetDamageList.Add(new BattleDmg { damage = damage, attackType = attackType });
}
- protected static List<DamageType> ExcludeDamageTypes = new List<DamageType>
- {
- DamageType.SuckHpReverse,
- DamageType.Parry,
- DamageType.BreakArmor,
- DamageType.Protected,
- };
+
/// <summary>
/// 楠岃瘉骞朵慨澶嶆敾鍑荤被鍨�
diff --git a/Main/System/Battle/Define/DamageType.cs b/Main/System/Battle/Define/DamageType.cs
index 814230b..efbe90c 100644
--- a/Main/System/Battle/Define/DamageType.cs
+++ b/Main/System/Battle/Define/DamageType.cs
@@ -73,9 +73,11 @@
CritRealdamage = Crit + Realdamage, //鏆村嚮鐪熶激
- SuckHpReverse = 8192, //鍚歌鍙嶈浆涓轰激瀹�
+ SuckHpReverse = 8192,//鍚歌姣掕嵂 (2^13 搴忓彿13)
- Protected = 16384,//鏈浼ゅ鏈夊彈淇濇姢鏍囪 (2^13 搴忓彿13)
+ Protected = 16384,//鏈浼ゅ鏈夊彈淇濇姢鏍囪 (2^14 搴忓彿14)
+
+
BreakArmor = 32768,//鐮寸敳浼ゅ (2^15 搴忓彿15)
diff --git a/Main/System/Battle/RecordPlayer/RecordAction.cs b/Main/System/Battle/RecordPlayer/RecordAction.cs
index 76bdc10..237218a 100644
--- a/Main/System/Battle/RecordPlayer/RecordAction.cs
+++ b/Main/System/Battle/RecordPlayer/RecordAction.cs
@@ -165,4 +165,9 @@
}
return battleField.guid;
}
+
+ public virtual bool NeedWaitSibling()
+ {
+ return true;
+ }
}
\ No newline at end of file
diff --git a/Main/System/Battle/RecordPlayer/RecordPlayer.cs b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
index f73d78d..a5da9c6 100644
--- a/Main/System/Battle/RecordPlayer/RecordPlayer.cs
+++ b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
@@ -154,7 +154,7 @@
if (prevAction != null && prevAction.parentAction == action.parentAction)
{
// 鎵惧埌鍚岀骇鍓嶇疆鑺傜偣锛屽鏋滃畠杩樺湪鎵ц涓紝鍒欏綋鍓嶈妭鐐归渶瑕佺瓑寰�
- if (!prevAction.IsFinished())
+ if (!prevAction.IsFinished() && action.NeedWaitSibling())
{
shouldWaitForSibling = true;
// BattleDebug.LogError($"RecordPlayer: {action.GetType().Name} 绛夊緟鍚岀骇鍓嶇疆鑺傜偣 {prevAction.GetType().Name} 瀹屾垚");
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index c8592c4..f07de9d 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -1187,7 +1187,7 @@
}
// 浼犻�抪arentRecordAction锛岃姝讳骸鎶�鑳界瓑寰呭綋鍓嶆妧鑳藉畬鎴�
- battleField.OnObjsDead(new List<BattleDeadPack>(tempDeadPackList.Values), parentRecordAction);
+ battleField.OnObjsDead(new List<BattleDeadPack>(tempDeadPackList.Values));
// 1. 寮哄埗缁撴潫鎶�鑳芥晥鏋�
skillEffect?.ForceFinished();
--
Gitblit v1.8.0