From eb94bc099f2b89c9f6b6534a92ea49b9a5e5409e Mon Sep 17 00:00:00 2001 From: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com> Date: Mon, 29 Jul 2024 14:20:41 +1000 Subject: [PATCH] Fix increased Chance to Block mod on Shields not working (#8010) Co-authored-by: LocalIdentity --- src/Classes/Item.lua | 4 +++- src/Data/ModCache.lua | 10 +++++----- src/Modules/ModParser.lua | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Classes/Item.lua b/src/Classes/Item.lua index 0171692431..c13ff579ba 100644 --- a/src/Classes/Item.lua +++ b/src/Classes/Item.lua @@ -1385,6 +1385,7 @@ function ItemClass:BuildModListForSlotNum(baseList, slotNum) local energyShieldVariance = (self.base.armour.EnergyShieldBaseMax or 0) - (self.base.armour.EnergyShieldBaseMin or 0) local armourEnergyShieldBase = calcLocal(modList, "ArmourAndEnergyShield", "BASE", 0) local wardBase = calcLocal(modList, "Ward", "BASE", 0) + (self.base.armour.WardBaseMin or 0) + local blockBase = calcLocal(modList, "BlockChance", "BASE", 0) local wardVariance = (self.base.armour.WardBaseMax or 0) - (self.base.armour.WardBaseMin or 0) local armourInc = calcLocal(modList, "Armour", "INC", 0) local armourEvasionInc = calcLocal(modList, "ArmourAndEvasion", "INC", 0) @@ -1393,6 +1394,7 @@ function ItemClass:BuildModListForSlotNum(baseList, slotNum) local energyShieldInc = calcLocal(modList, "EnergyShield", "INC", 0) local wardInc = calcLocal(modList, "Ward", "INC", 0) local armourEnergyShieldInc = calcLocal(modList, "ArmourAndEnergyShield", "INC", 0) + local blockInc = calcLocal(modList, "BlockChance", "INC", 0) local defencesInc = calcLocal(modList, "Defences", "INC", 0) local qualityScalar = self.quality if calcLocal(modList, "AlternateQualityArmour", "BASE", 0) > 0 then @@ -1435,7 +1437,7 @@ function ItemClass:BuildModListForSlotNum(baseList, slotNum) end if self.base.armour.BlockChance then - armourData.BlockChance = self.base.armour.BlockChance + calcLocal(modList, "BlockChance", "BASE", 0) + armourData.BlockChance = m_floor((self.base.armour.BlockChance + blockBase) * (1 + blockInc / 100)) end if self.base.armour.MovementPenalty then modList:NewMod("MovementSpeed", "INC", -self.base.armour.MovementPenalty, self.modSource, { type = "Condition", var = "IgnoreMovementPenalties", neg = true }) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 0370778061..fcb1e2ef4a 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -2368,7 +2368,7 @@ c["10% reduced maximum Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="Energ c["10% reduced maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="INC",value=-10}},nil} c["10.5% increased Movement Speed"]={{[1]={flags=0,keywordFlags=0,name="MovementSpeed",type="BASE",value=10}},".5% increased "} c["100% Chance to Cause Monster to Flee on Block"]={{}," to Cause Monster to Flee on Block "} -c["100% Chance to Cause Monster to Flee on Block +20% Chance to Block Attack Damage from Cursed Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="BlockChance",type="BASE",value=100}}," to Cause Monster to Flee on Block +20% Chance "} +c["100% Chance to Cause Monster to Flee on Block +20% Chance to Block Attack Damage from Cursed Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="BlockChance",type="BASE",value=100}}," to Cause Monster to Flee on Block +20% Attack Damage "} c["100% Increased Armour"]={{[1]={flags=0,keywordFlags=0,name="Armour",type="INC",value=100}},nil} c["100% Increased Armour and Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="ArmourAndEnergyShield",type="INC",value=100}},nil} c["100% Increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",type="INC",value=100}},nil} @@ -3392,7 +3392,7 @@ c["20% chance to Blind Enemies on Hit with Attacks 20% increased Blind Effect"]= c["20% chance to Blind Enemies on Hit with Attacks 40% increased Damage with Hits and Ailments against Blinded Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Blinded"},flags=4,keywordFlags=0,name="Damage",type="BASE",value=20}}," to Blind Enemies with Attacks 40% increased with Hits and Ailments "} c["20% chance to Blind Enemies with Off Hand Hits"]={{}," to Blind Enemies Hits "} c["20% chance to Cover Rare or Unique Enemies in Ash for 10 Seconds on Hit"]={{}," to Cover Rare or Unique Enemies in Ash "} -c["20% chance to Cover Rare or Unique Enemies in Ash for 10 Seconds on Hit +6% Chance to Block Attack Damage"]={{[1]={flags=4,keywordFlags=0,name="BlockChance",type="BASE",value=20}}," to Cover Rare or Unique Enemies in Ash +6% Chance "} +c["20% chance to Cover Rare or Unique Enemies in Ash for 10 Seconds on Hit +6% Chance to Block Attack Damage"]={{[1]={flags=4,keywordFlags=0,name="BlockChance",type="BASE",value=20}}," to Cover Rare or Unique Enemies in Ash +6% Attack Damage "} c["20% chance to Cover Rare or Unique Enemies in Ash for 10 Seconds on Hit Unaffected by Ignite"]={{}," to Cover Rare or Unique Enemies in Ash Unaffected by Ignite "} c["20% chance to Cover Rare or Unique Enemies in Ash for 10 Seconds on Hit Unaffected by Ignite 20% increased Warcry Buff Effect"]={{[1]={flags=4,keywordFlags=0,name="BuffEffect",type="BASE",value=20}}," to Cover Rare or Unique Enemies in Ash Unaffected by Ignite 20% increased Warcry "} c["20% chance to Cover Rare or Unique Enemies in Ash for 10 Seconds on Hit Unaffected by Ignite 20% increased Warcry Buff Effect 10% increased Strength"]={{[1]={flags=4,keywordFlags=0,name="BuffEffect",type="BASE",value=20}}," to Cover Rare or Unique Enemies in Ash Unaffected by Ignite 20% increased Warcry 10% increased Strength "} @@ -3892,9 +3892,9 @@ c["25% chance that if you would gain Power Charges, you instead gain up to"]={{} c["25% chance that if you would gain Power Charges, you instead gain up to your maximum number of Power Charges"]={{}," that if you would gain Power Charges, you instead gain up to your maximum number of Power Charges "} c["25% chance to Aggravate Bleeding on targets you Critically Strike with Attacks"]={{}," to Aggravate Bleeding on targets you Critically Strike "} c["25% chance to Aggravate Bleeding on targets you Hit with Attacks"]={{}," to Aggravate Bleeding on targets you Hit "} -c["25% chance to Aggravate Bleeding on targets you Hit with Attacks Gain 50% Chance to Block from Equipped Shield instead of the Shield's value"]={{[1]={flags=0,keywordFlags=65536,name="BlockChance",type="BASE",value=25}}," to Aggravate Bleeding on targets you Hit Gain 50% Chance from Equipped Shield instead of the Shield's value "} -c["25% chance to Aggravate Bleeding on targets you Hit with Attacks Gain 50% Chance to Block from Equipped Shield instead of the Shield's value Inherent Bonuses from Dual Wielding are doubled"]={{[1]={flags=0,keywordFlags=65536,name="BlockChance",type="BASE",value=25}}," to Aggravate Bleeding on targets you Hit Gain 50% Chance from Equipped Shield instead of the Shield's value Inherent Bonuses from Dual Wielding are doubled "} -c["25% chance to Aggravate Bleeding on targets you Hit with Attacks Gain 50% Chance to Block from Equipped Shield instead of the Shield's value Inherent Bonuses from Dual Wielding are doubled Deal 1% more Damage with Hits and Ailments to Rare and Unique Enemies for every 2 seconds they've ever been in your Presence, up to a maximum of 50%"]={{[1]={flags=0,keywordFlags=65536,name="BlockChance",type="BASE",value=25}}," to Aggravate Bleeding on targets you Hit Gain 50% Chance from Equipped Shield instead of the Shield's value Inherent Bonuses from Dual Wielding are doubled Deal 1% more Damage with Hits and Ailments to Rare and Unique Enemies for every 2 seconds they've ever been in your Presence, up to a maximum of 50% "} +c["25% chance to Aggravate Bleeding on targets you Hit with Attacks Gain 50% Chance to Block from Equipped Shield instead of the Shield's value"]={{[1]={flags=0,keywordFlags=65536,name="BlockChance",type="BASE",value=25}}," to Aggravate Bleeding on targets you Hit Gain 50% from Equipped Shield instead of the Shield's value "} +c["25% chance to Aggravate Bleeding on targets you Hit with Attacks Gain 50% Chance to Block from Equipped Shield instead of the Shield's value Inherent Bonuses from Dual Wielding are doubled"]={{[1]={flags=0,keywordFlags=65536,name="BlockChance",type="BASE",value=25}}," to Aggravate Bleeding on targets you Hit Gain 50% from Equipped Shield instead of the Shield's value Inherent Bonuses from Dual Wielding are doubled "} +c["25% chance to Aggravate Bleeding on targets you Hit with Attacks Gain 50% Chance to Block from Equipped Shield instead of the Shield's value Inherent Bonuses from Dual Wielding are doubled Deal 1% more Damage with Hits and Ailments to Rare and Unique Enemies for every 2 seconds they've ever been in your Presence, up to a maximum of 50%"]={{[1]={flags=0,keywordFlags=65536,name="BlockChance",type="BASE",value=25}}," to Aggravate Bleeding on targets you Hit Gain 50% from Equipped Shield instead of the Shield's value Inherent Bonuses from Dual Wielding are doubled Deal 1% more Damage with Hits and Ailments to Rare and Unique Enemies for every 2 seconds they've ever been in your Presence, up to a maximum of 50% "} c["25% chance to Aggravate Bleeding on targets you Hit with Exerted Attacks"]={{}," to Aggravate Bleeding on targets you Hit with Exerted Attacks "} c["25% chance to Avoid Elemental Ailments"]={{[1]={flags=0,keywordFlags=0,name="AvoidElementalAilments",type="BASE",value=25}},nil} c["25% chance to Avoid Elemental Ailments while Phasing"]={{[1]={[1]={type="Condition",var="Phasing"},flags=0,keywordFlags=0,name="AvoidElementalAilments",type="BASE",value=25}},nil} diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 2b0a9d20e3..5f4c7a4769 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -320,6 +320,7 @@ local modNameList = { ["to block attacks"] = "BlockChance", ["to block attack damage"] = "BlockChance", ["block chance"] = "BlockChance", + ["chance to block"] = "BlockChance", ["block chance with staves"] = { "BlockChance", tag = { type = "Condition", var = "UsingStaff" } }, ["to block with staves"] = { "BlockChance", tag = { type = "Condition", var = "UsingStaff" } }, ["block chance against projectiles"] = "ProjectileBlockChance",