yyl
2026-01-09 dbf227157aecf375c2048417fa867a438b5337fe
125 战斗 死亡动画播放延迟问题修复
6个文件已修改
37 ■■■■ 已修改文件
Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Define/BattleDmgInfo.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Define/DamageType.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/RecordPlayer/RecordAction.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/RecordPlayer/RecordPlayer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Skill/SkillBase.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
@@ -237,4 +237,9 @@
        
        return true;
    }
    public override bool NeedWaitSibling()
    {
        return HasDeathTriggerSkill();
    }
}
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>
    /// 验证并修复攻击类型
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)
Main/System/Battle/RecordPlayer/RecordAction.cs
@@ -165,4 +165,9 @@
        }
        return battleField.guid;
    }
    public virtual bool NeedWaitSibling()
    {
        return true;
    }
}
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} 完成");
Main/System/Battle/Skill/SkillBase.cs
@@ -1187,7 +1187,7 @@
        }
        //  传递parentRecordAction,让死亡技能等待当前技能完成
        battleField.OnObjsDead(new List<BattleDeadPack>(tempDeadPackList.Values), parentRecordAction);
        battleField.OnObjsDead(new List<BattleDeadPack>(tempDeadPackList.Values));
        // 1. 强制结束技能效果
        skillEffect?.ForceFinished();