yyl
2026-01-29 b245f812625a11782d33082879fc7f98d781e51c
命格 新增极限闪避
7个文件已修改
26 ■■■■■ 已修改文件
Main/System/Battle/BattleObject/BattleObject.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleObject/HeroBattleObject.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleObject/MinggeBattleObject.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleUtility.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Define/BattleDmgInfo.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Define/DamageType.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TianziBillborad/TianziBillboradManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleObject/BattleObject.cs
@@ -305,7 +305,7 @@
    public abstract DeathRecordAction Hurt(BattleHurtParam battleHurtParam, SkillRecordAction _parentSkillAction = null);
    public abstract void OnDodgeBegin();
    public abstract void OnDodgeBegin(DamageType damageType);
    public abstract void OnDodgeEnd(Action _complete = null);
Main/System/Battle/BattleObject/HeroBattleObject.cs
@@ -349,9 +349,10 @@
        // ============ 应用目标的血量和护盾变化 ============
        ApplyHurtToTarget(battleHurtParam, isLastHit);
        //  这里
        if (dmgInfo.IsType(DamageType.Dodge) /*&& !buffMgr.isControled[BattleConst.HardControlGroup]*/)//如果被控制了还闪避了 要看看服务器怎么处理了
        if (dmgInfo.IsType(DamageType.Dodge) || dmgInfo.IsType(DamageType.CompletelyDodge))//如果被控制了还闪避了 要看看服务器怎么处理了
        {
            if (isLastHit)
            {
@@ -365,7 +366,7 @@
            if (firstHit)
            {
                OnDodgeBegin();
                OnDodgeBegin(dmgInfo.IsType(DamageType.Dodge) ? DamageType.Dodge : DamageType.CompletelyDodge);
            }
        }
@@ -422,7 +423,7 @@
    const float pingpongTime = 0.4f;
    //  闪避开始
    public override void OnDodgeBegin()
    public override void OnDodgeBegin(DamageType damageType)
    {
        RectTransform rectTrans = heroRectTrans;
        var tween = rectTrans.DOAnchorPos(new Vector3(-30, 0, 0), pingpongTime)
@@ -430,7 +431,9 @@
        motionBase.ShowIllusionShadow(true);
        DamageNumConfig damageNumConfig = DamageNumConfig.Get((int)DamageType.Dodge);
        int damageTypeInt = damageType == DamageType.Dodge ? (int)damageType : BattleConst.CompletelyDodge;
        DamageNumConfig damageNumConfig = DamageNumConfig.Get(damageTypeInt);
        string dodgeStr = ((char)damageNumConfig.prefix).ToString();
Main/System/Battle/BattleObject/MinggeBattleObject.cs
@@ -158,7 +158,7 @@
        return null;
    }
    public override void OnDodgeBegin()
    public override void OnDodgeBegin(DamageType damageType)
    {
        // 命格不需要闪避
    }
Main/System/Battle/BattleUtility.cs
@@ -115,7 +115,7 @@
        string result = string.Empty;
        //  如果是闪避或免疫 则只显示对应文字,不显示数字
        if (damage.IsType(DamageType.Dodge) || damage.IsType(DamageType.Immune))
        if (damage.IsType(DamageType.Dodge) || damage.IsType(DamageType.Immune) || damage.IsType(DamageType.CompletelyDodge))
        {
            result += (char)config.prefix;
        }
Main/System/Battle/Define/BattleDmgInfo.cs
@@ -160,6 +160,10 @@
                case ServerDamageType.Dodge:
                    convertedAttackTypes |= (int)DamageType.Dodge;
                    break;
                case ServerDamageType.CompletelyDodge:
                    convertedAttackTypes |= (int)DamageType.CompletelyDodge;
                    break;
                
                case ServerDamageType.DamageReverse:
                    convertedAttackTypes |= (int)DamageType.Damage;
Main/System/Battle/Define/DamageType.cs
@@ -39,6 +39,7 @@
    BreakArmor = 32768,//破甲伤害 (2^15 序号15)
    Parry = 65536,//招架 (2^16 序号16)
    CompletelyDodge = 131072,
}
public enum DamageType
@@ -83,6 +84,6 @@
    Parry = 65536,//招架 (2^16 序号16)
    CompletelyDodge = 131072,//极限闪避
}
Main/System/TianziBillborad/TianziBillboradManager.cs
@@ -74,7 +74,7 @@
        if (info == null)
            return;
        //闪避和回血类不算伤害
        if (info.IsType(DamageType.Dodge) || info.IsType(DamageType.Recovery))
        if (info.IsType(DamageType.Dodge) || info.IsType(DamageType.Recovery) || info.IsType(DamageType.CompletelyDodge))
            return;
        var damages = info.damageList;
        for (int i = 0; i < damages.Count; i++)