From 5cad581258cfbbcc4af7335510f713162030a165 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 30 Aug 2026 10:39:48 +0000 Subject: [PATCH 1/2] Apply changes from https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/10142 --- src/Modules/CalcDefence.lua | 4 +++- src/Modules/CalcDefence.lua.rej | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/Modules/CalcDefence.lua.rej diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index 4e7e4b44a6..d7cab3c1ac 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -1007,7 +1007,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 diff --git a/src/Modules/CalcDefence.lua.rej b/src/Modules/CalcDefence.lua.rej new file mode 100644 index 0000000000..6c07ec1eac --- /dev/null +++ b/src/Modules/CalcDefence.lua.rej @@ -0,0 +1,12 @@ +diff a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua (rejected hunks) +@@ -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) From e772f10246e895c7d6b9f10994187d73e9b1e1b9 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 30 Aug 2026 23:54:40 +1000 Subject: [PATCH 2/2] Fix port --- src/Modules/CalcDefence.lua | 4 +++- src/Modules/CalcDefence.lua.rej | 12 ------------ 2 files changed, 3 insertions(+), 13 deletions(-) delete mode 100644 src/Modules/CalcDefence.lua.rej diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index d7cab3c1ac..a958d433a6 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -1027,7 +1027,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) local spellProjectileBlockChance = m_min(output.SpellBlockChance + modDB:Sum("BASE", nil, "ProjectileSpellBlockChance") * calcLib.mod(modDB, nil, "SpellBlockChance"), output.SpellBlockChanceMax) diff --git a/src/Modules/CalcDefence.lua.rej b/src/Modules/CalcDefence.lua.rej deleted file mode 100644 index 6c07ec1eac..0000000000 --- a/src/Modules/CalcDefence.lua.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua (rejected hunks) -@@ -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)