From 2a6f3389b3cfbf6d1eb5344fb8b2fbb12c4acfe6 Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Fri, 22 Oct 2021 13:35:44 +0800 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=E8=A2=AB=E5=8A=A8199=20=E5=8E=86=E6=88=98=E4=B9=8B?= =?UTF-8?q?=E8=BA=AF=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Battle/Logic/Base/Passivity.lua | 21 ++++++++++++++----- .../Battle/Logic/Misc/BattleDefine.lua | 1 + .../Modules/Battle/Logic/Misc/BattleUtil.lua | 8 +++++++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index 04bd2df1df..448125cd94 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -4242,14 +4242,21 @@ local passivityList = { end, - --每回合最多受到自身生命上限[a]%的伤害(该伤害为来自武将的直接伤害) + --每回合最多受到自身生命上限[a]%的伤害(该伤害为来自武将的直接伤害,血量最多扣到50%) --a[float] [199] = function(role, args) local f1 = args[1] - local curDamage = 0 + local maxPro=0 local function onRoundChange() curDamage = 0 + --本回合最多能扣到多少比例的血条 + maxPro=(role:GetRoleData(RoleDataName.Hp)/role:GetRoleData(RoleDataName.MaxHp))-f1 + if maxPro<0 then + maxPro=0 + end + --LogError("本回合最多能扣到的比例=="..maxPro) + end BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, onRoundChange,nil,nil,role) @@ -4260,8 +4267,12 @@ local passivityList = { return end -- - local maxDamage = role:GetRoleData(RoleDataName.MaxHp) * f1 - curDamage = curDamage + damage + --local maxDamage = role:GetRoleData(RoleDataName.MaxHp) * f1 + --curDamage = curDamage + damage + --判断伤害是否能超出能扣除的最大伤害 + local maxDamage =floor(role:GetRoleData(RoleDataName.Hp)-(role:GetRoleData(RoleDataName.MaxHp) * maxPro)) + --LogError("本次能扣的最大伤害=="..maxDamage.." 本次伤害=="..damage) + curDamage=damage if curDamage > maxDamage then -- 计算免除的伤害值 local md = curDamage - maxDamage @@ -4272,7 +4283,7 @@ local passivityList = { end end - role.Event:AddEvent(BattleEventName.FinalBeDamageEnd, onFinalBeDamage,nil,nil,role) + role.Event:AddEvent(BattleEventName.CheckLiZhanZhiQu, onFinalBeDamage,nil,nil,role) end, diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua index 760fd85ff3..c459156242 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua @@ -207,6 +207,7 @@ RoleDataName = { DarkDamageReduceFactor = indexAdd(), --暗系伤害减免系数(%) ElementDamageBocusFactor = indexAdd(), --属性伤害加成系数(%) InitRage = indexAdd(), --初始怒气值 + CheckLiZhanZhiQu = indexAdd(),--检测历战之躯 } BuffName = { diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index ae598a432b..08e3d85424 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -821,6 +821,14 @@ function BattleUtil.FinalDamageCountShield(skill, atkRole, defRole, damage, bCri realDamage=math.abs(defRole.bloodShield:CountBloodValue(damage)) -- damage=realDamage end + --检测历战之躯 + -- 造成的最终伤害 + local damagingFunc = function(dmgDeduction) + realDamage = realDamage - dmgDeduction + damage=realDamage + end + defRole.Event:DispatchEvent(BattleEventName.CheckLiZhanZhiQu, damagingFunc, atkRole, realDamage, skill, dotType, bCrit, damageType,isDirect) + --LogError("最后扣除伤害=="..realDamage) --御甲过滤后的伤害只会处理扣血 by: wangzhenxing shihongyi 2021/09/27 local finalDmg = defRole.data:SubValue(RoleDataName.Hp,realDamage) if finalDmg >= 0 then