diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua index 05d8669563..c677846a88 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua @@ -2337,7 +2337,7 @@ local effectList = { BattleLogic.WaitForTrigger(interval, function () if (pro==12 or pro==13) and BattleUtil.CheckIsBoss(target) then return - end + end local damage = floor(BattleUtil.ErrorCorrection(f1 * target:GetRoleData(BattlePropList[pro]))) BattleUtil.FinalDamage(skill, caster, target, damage, nil, 0, nil, true) end) @@ -2382,6 +2382,7 @@ local effectList = { return end local damage = floor(BattleUtil.ErrorCorrection(f3 * target:GetRoleData(BattlePropList[p1]))) + damage=BattleUtil.CalAllReduceShield(caster,target,damage) BattleUtil.FinalDamage(skill,caster, target,damage) end end diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Shield.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Shield.lua index aba5e83d41..876dd30ca7 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Shield.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Shield.lua @@ -89,6 +89,28 @@ function Shield:CountShield(damage, atkRole,skill) return finalDamage end + +--计算无敌盾 +function Shield:CountAllReduce(damage,atkRole,skill) + local finalDamage = damage + local isImmuneAllReduceShield=false + if self.shieldType == ShieldTypeName.AllReduce then + --攻击者免疫无敌盾 + isImmuneAllReduceShield=atkRole.isImmuneAllReduceShield + --特殊处理 白骨精附加的普攻不会必定暴击 + if atkRole.roleId==10091 and skill and skill.type==BattleSkillType.Normal and skill.isAdd then + isImmuneAllReduceShield=false + end + if isImmuneAllReduceShield and skill then + finalDamage=damage + else + finalDamage = 0 + end + end + return finalDamage +end + + -- 提前计算护盾吸收伤害 function Shield:PreCountShield(damage) local finalDamage = 0 diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index d8447bf86e..1965278410 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -429,6 +429,16 @@ function BattleUtil.CalShield(atkRole, defRole, damage,skill) end return damage end + +-- 计算护盾 +function BattleUtil.CalAllReduceShield(atkRole, defRole, damage,skill) + for i=1, defRole.shield.size do + local buff = defRole.shield.buffer[i] + damage = buff:CountAllReduce(damage, atkRole,skill) + end + return damage +end + -- 提前计算护盾后伤害 function BattleUtil.PreCountShield(defRole, damage) for i=1, defRole.shield.size do