From f699634c245d10aebb947905d64207343eb4e291 Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Tue, 2 Feb 2021 15:02:25 +0900 Subject: [PATCH] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=3D=3D=3D=3D=3D=3D=3D=3D=3D126=E6=95=88=E6=9E=9C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=20=E7=94=9F=E5=91=BD=E7=99=BE=E5=88=86=E6=AF=94?= =?UTF-8?q?=E4=BC=A4=E5=AE=B3=E4=BC=9A=E8=A2=AB=E6=97=A0=E6=95=8C=E7=9B=BE?= =?UTF-8?q?=E6=8C=A1=E4=BD=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Modules/Battle/Logic/Base/Effect.lua | 3 ++- .../~Lua/Modules/Battle/Logic/Buff/Shield.lua | 22 +++++++++++++++++++ .../Modules/Battle/Logic/Misc/BattleUtil.lua | 10 +++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) 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