diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index 5eb3b28700..b3e4869633 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -886,7 +886,7 @@ function calcs.defence(env, actor) -- Unnatural Resilience needs FireResistTotal before we calc FireResistMax output[elem.."ResistTotal"] = total if modDB:Flag(nil, "MaxBlockChanceModsApplyMaxResist") then - local blockMaxBonus = modDB:Sum("BASE", nil, "BlockChanceMax") - 75 -- Subtract base block cap + local blockMaxBonus = modDB:Override(nil, "BlockChanceMax") and 0 or modDB:Sum("BASE", nil, "BlockChanceMax") max = (modDB:Override(nil, elem.."ResistMax") or m_min(data.misc.MaxResistCap, modDB:Sum("BASE", nil, elem.."ResistMax", isElemental[elem] and "ElementalResistMax"))) + blockMaxBonus else max = modDB:Override(nil, elem.."ResistMax") or m_min(data.misc.MaxResistCap, modDB:Sum("BASE", nil, elem.."ResistMax", isElemental[elem] and "ElementalResistMax")) @@ -941,9 +941,9 @@ function calcs.defence(env, actor) -- Block if modDB:Flag(nil, "MaxBlockChanceModsApplyMaxResist") then - output.BlockChanceMax = 75 + output.BlockChanceMax = modDB:Override(nil, "BlockChanceMax") or modDB:Sum("BASE", nil, "BaseBlockChanceMax") else - output.BlockChanceMax = m_min(modDB:Sum("BASE", nil, "BlockChanceMax"), data.misc.BlockChanceCap) + output.BlockChanceMax = m_min(modDB:Override(nil, "BlockChanceMax") or (modDB:Sum("BASE", nil, "BaseBlockChanceMax") + modDB:Sum("BASE", nil, "BlockChanceMax")), data.misc.BlockChanceCap) end if modDB:Flag(nil, "MaximumBlockAttackChanceIsEqualToParent") then output.BlockChanceMax = actor.parent.output.BlockChanceMax @@ -976,7 +976,7 @@ function calcs.defence(env, actor) if modDB:Flag(nil, "SpellBlockChanceMaxIsBlockChanceMax") then output.SpellBlockChanceMax = output.BlockChanceMax else - output.SpellBlockChanceMax = m_min(modDB:Sum("BASE", nil, "SpellBlockChanceMax"), data.misc.BlockChanceCap) + output.SpellBlockChanceMax = m_min(modDB:Override(nil, "BlockChanceMax") or (modDB:Sum("BASE", nil, "BaseSpellBlockChanceMax") + modDB:Sum("BASE", nil, "SpellBlockChanceMax")), data.misc.BlockChanceCap) end if modDB:Flag(nil, "MaxSpellBlockIfNotBlockedRecently") then output.SpellBlockChance = output.SpellBlockChanceMax diff --git a/src/Modules/CalcSections.lua b/src/Modules/CalcSections.lua index 69321b5d70..e237c3af43 100644 --- a/src/Modules/CalcSections.lua +++ b/src/Modules/CalcSections.lua @@ -1683,7 +1683,7 @@ return { extra = "{0:output:EffectiveBlockChance}%", { label = "Block Chance", { format = "{0:output:BlockChance}% (+{0:output:BlockChanceOverCap}%)", { breakdown = "BlockChance" }, - { modName = { "BlockChance", "ReplaceShieldBlock" } }, + { modName = { "BlockChance", "ReplaceShieldBlock", "BlockChanceMax" } }, }, }, { label = "Taken From Block", haveOutput = "ShowBlockEffect", { format = "{0:output:DamageTakenOnBlock}%", { breakdown = "BlockEffect" }, diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index b4e803f069..eb000647aa 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -24,8 +24,8 @@ function calcs.initModDB(env, modDB) modDB:NewMod("TotemColdResistMax", "BASE", 75, "Base") modDB:NewMod("TotemLightningResistMax", "BASE", 75, "Base") modDB:NewMod("TotemChaosResistMax", "BASE", 75, "Base") - modDB:NewMod("BlockChanceMax", "BASE", data.characterConstants["object_inherent_base_maximum_block_%_from_ot"], "Base") - modDB:NewMod("SpellBlockChanceMax", "BASE", data.characterConstants["object_inherent_base_maximum_block_%_from_ot"], "Base") + modDB:NewMod("BaseBlockChanceMax", "OVERRIDE", data.characterConstants["object_inherent_base_maximum_block_%_from_ot"], "Base") + modDB:NewMod("BaseSpellBlockChanceMax", "OVERRIDE", data.characterConstants["object_inherent_base_maximum_block_%_from_ot"], "Base") modDB:NewMod("SpellDodgeChanceMax", "BASE", 75, "Base") modDB:NewMod("ChargeDuration", "BASE", 15, "Base") modDB:NewMod("PowerChargesMax", "BASE", data.characterConstants["max_power_charges"], "Base")