[战斗]=============被动199 历战之躯 修改

dev_chengFeng
wangzhenxing 2021-10-22 13:35:44 +08:00
parent cdc17b555e
commit 2a6f3389b3
3 changed files with 25 additions and 5 deletions

View File

@ -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,

View File

@ -207,6 +207,7 @@ RoleDataName = {
DarkDamageReduceFactor = indexAdd(), --暗系伤害减免系数(%
ElementDamageBocusFactor = indexAdd(), --属性伤害加成系数(%
InitRage = indexAdd(), --初始怒气值
CheckLiZhanZhiQu = indexAdd(),--检测历战之躯
}
BuffName = {

View File

@ -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