diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index f223b13607..f106c9c12a 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -687,7 +687,9 @@ function calcs.defence(env, actor) elseif modDB:Flag(nil, "MaxBlockIfNotBlockedRecently") then output.BlockChance = output.BlockChanceMax else - local totalBlockChance = (baseBlockChance + modDB:Sum("BASE", nil, "BlockChance")) * calcLib.mod(modDB, nil, "BlockChance") + local inc = modDB:Sum("INC", nil, "BlockChance") + local more = modDB:More(nil, "BlockChance") + local totalBlockChance = round((baseBlockChance + modDB:Sum("BASE", nil, "BlockChance")) * (1 + inc/100) * more) output.BlockChance = m_min(totalBlockChance, output.BlockChanceMax) output.BlockChanceOverCap = m_max(0, totalBlockChance - output.BlockChanceMax) end @@ -706,7 +708,9 @@ function calcs.defence(env, actor) output.SpellProjectileBlockChance = output.ProjectileBlockChance output.SpellBlockChanceOverCap = output.BlockChanceOverCap else - local totalSpellBlockChance = modDB:Sum("BASE", nil, "SpellBlockChance") * calcLib.mod(modDB, nil, "SpellBlockChance") + local inc = modDB:Sum("INC", nil, "BlockChance") + local more = modDB:More(nil, "BlockChance") + local totalSpellBlockChance = round(modDB:Sum("BASE", nil, "SpellBlockChance") * (1 + inc/100) * more) output.SpellBlockChance = m_min(totalSpellBlockChance, output.SpellBlockChanceMax) output.SpellBlockChanceOverCap = m_max(0, totalSpellBlockChance - output.SpellBlockChanceMax) output.SpellProjectileBlockChance = m_max(m_min(output.SpellBlockChance + modDB:Sum("BASE", nil, "ProjectileSpellBlockChance") * calcLib.mod(modDB, nil, "SpellBlockChance"), output.SpellBlockChanceMax), 0)