From f5396cd36a7bfe11ac7374bc1a1c9c11089c2bc8 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 19:38:02 +1100 Subject: [PATCH 01/51] Update Heatshiver to 3.23 --- src/Data/Uniques/helmet.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Data/Uniques/helmet.lua b/src/Data/Uniques/helmet.lua index 9d8e99f28e..e0e165cc33 100644 --- a/src/Data/Uniques/helmet.lua +++ b/src/Data/Uniques/helmet.lua @@ -216,6 +216,7 @@ Heatshiver Leather Hood Variant: Pre 3.0.0 Variant: Pre 3.19.0 +Variant: Pre 3.23.0 Variant: Current Requires Level 20, 46 Dex {variant:1}+1 to Level of Socketed Fire Gems @@ -223,13 +224,14 @@ Requires Level 20, 46 Dex (80-100)% increased Evasion Rating 60% increased Mana Regeneration Rate {variant:1}-(20-10)% to Fire Resistance -{variant:2,3}+(20-30)% to Fire Resistance +{variant:2,3,4}+(20-30)% to Fire Resistance {variant:1}-(20-10)% to Cold Resistance -{variant:2,3}+(20-30)% to Cold Resistance +{variant:2,3,4}+(20-30)% to Cold Resistance {variant:2}(20-30)% increased Cold Damage if you have used a Fire Skill Recently {variant:2}(20-30)% increased Fire Damage if you have used a Cold Skill Recently -{variant:3}Gain 1% of Cold Damage as Extra Fire Damage per 1% Chill Effect on Enemy +{variant:3,4}Gain 1% of Cold Damage as Extra Fire Damage per 1% Chill Effect on Enemy {variant:3}Gain 100% of Cold Damage as Extra Fire Damage against Frozen Enemies +{variant:4}Gain 30% of Cold Damage as Extra Fire Damage against Frozen Enemies ]],[[ Frostferno Leather Hood From 30c49ed282863c95430c2c06e47c9bfec18518b3 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 19:43:42 +1100 Subject: [PATCH 02/51] Update Ashes of the Stars to 3.23 --- src/Data/Uniques/amulet.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index 6e13f0e550..8ffcb8f993 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -76,14 +76,16 @@ Implicits: 1 ]],[[ Ashes of the Stars Onyx Amulet +Variant: Pre 3.23.0 +Variant: Current Source: Drops from unique{The Eater of Worlds} Requires Level 60 Implicits: 1 {tags:jewellery_attribute}+(10-16) to all Attributes -(5-10)% increased Experience Gain of Gems -(10-20)% increased Reservation Efficiency of Skills -+1 to Level of all Skill Gems -+(20-30)% to Quality of all Skill Gems +{variant:1,2}(5-10)% increased Experience Gain of Gems +{variant:1}(10-20)% increased Reservation Efficiency of Skills +{variant:1,2}+1 to Level of all Skill Gems +{variant:1,2}+(20-30)% to Quality of all Skill Gems ]],[[ Astramentis Onyx Amulet From 3ad24a9f357fdcfde33d33a0eb7cf251ea1828d7 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 19:50:33 +1100 Subject: [PATCH 03/51] Update Kaom's Spirit to 3.23 --- src/Data/Uniques/gloves.lua | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Data/Uniques/gloves.lua b/src/Data/Uniques/gloves.lua index 666e03ba62..3b77e3e129 100644 --- a/src/Data/Uniques/gloves.lua +++ b/src/Data/Uniques/gloves.lua @@ -55,11 +55,14 @@ your maximum number of Crab Barriers ]],[[ Kaom's Spirit Titan Gauntlets -+(50-70) to Maximum Life -+(20-30)% to Fire Resistance -(0.3-0.5)% of Physical Attack Damage Leeched as Life -Life Recovery from Regeneration is not applied -Regenerate 1 Rage per second for every 100 Life Recovery per second from Regeneration +Variant: Pre 3.23.0 +Variant: Current +{variant:1,2}+(50-70) to Maximum Life +{variant:1,2}+(20-30)% to Fire Resistance +{variant:1,2}(0.3-0.5)% of Physical Attack Damage Leeched as Life +{variant:1,2}Life Recovery from Regeneration is not applied +{variant:1}Regenerate 1 Rage per second for every 100 Life Recovery per second from Regeneration +{variant:2}Regenerate 1 Rage per second for every 300 Life Recovery per second from Regeneration ]],[[ Doryani's Fist Vaal Gauntlets From 32a7c6a06b7938c766d99ea2eeee4d8f3513359a Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 19:58:44 +1100 Subject: [PATCH 04/51] Update Anima Stone to 3.23 --- src/Data/Uniques/jewel.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Data/Uniques/jewel.lua b/src/Data/Uniques/jewel.lua index 05a7c880ee..18b1b0fbce 100644 --- a/src/Data/Uniques/jewel.lua +++ b/src/Data/Uniques/jewel.lua @@ -12,10 +12,12 @@ Adds 1 to Maximum Life per 3 Intelligence Allocated in Radius ]],[[ The Anima Stone Prismatic Jewel +Variant: Pre 3.23.0 +Variant: Current Source: Vendor Recipe Limited to: 1 -+1 to maximum number of Golems -+1 to maximum number of Summoned Golems if you have 3 Primordial Items Socketed or Equipped +{variant:1}+1 to maximum number of Golems +{variant:1,2}+1 to maximum number of Summoned Golems if you have 3 Primordial Items Socketed or Equipped ]],[[ Apex Mode Cobalt Jewel From e4cf696a4997e4188144d531da3d1e4f0891a0d0 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 19:59:04 +1100 Subject: [PATCH 05/51] Update Annihalation's Approach to 3.23 --- src/Data/Uniques/boots.lua | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index d5cc750fcc..e114711ce5 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -687,15 +687,18 @@ Requires Level 69, 48 Str, 48 Dex ]],[[ Annihilation's Approach Dragonscale Boots +Variant: Pre 3.23.0 +Variant: Current Source: Drops from unique{The Searing Exarch} (Uber) -Grants Level 20 Approaching Flames Skill -(60-100)% increased Armour and Evasion -30% increased Movement Speed -Cannot be Chilled -Cannot be Frozen -Take 10000 Fire Damage per Second while Flame-Touched -Gain Adrenaline when you become Flame-Touched -Lose Adrenaline when you cease to be Flame-Touched +{variant:1,2}Grants Level 20 Approaching Flames Skill +{variant:1,2}(60-100)% increased Armour and Evasion +{variant:1,2}30% increased Movement Speed +{variant:1,2}Cannot be Chilled +{variant:1,2}Cannot be Frozen +{variant:1}Take 10000 Fire Damage per Second while Flame-Touched +{variant:2}Take 6000 Fire Damage per Second while Flame-Touched +{variant:1,2}Gain Adrenaline when you become Flame-Touched +{variant:1,2}Lose Adrenaline when you cease to be Flame-Touched ]],[[ Lioneye's Paws Bronzescale Boots From 537464697e2b2310779ebf2ce25ee0a1b4f130d1 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 20:04:39 +1100 Subject: [PATCH 06/51] Remove redundant Ashes of the Stars variant tags --- src/Data/Uniques/amulet.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index 8ffcb8f993..4e0e061879 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -82,10 +82,10 @@ Source: Drops from unique{The Eater of Worlds} Requires Level 60 Implicits: 1 {tags:jewellery_attribute}+(10-16) to all Attributes -{variant:1,2}(5-10)% increased Experience Gain of Gems +(5-10)% increased Experience Gain of Gems {variant:1}(10-20)% increased Reservation Efficiency of Skills -{variant:1,2}+1 to Level of all Skill Gems -{variant:1,2}+(20-30)% to Quality of all Skill Gems ++1 to Level of all Skill Gems ++(20-30)% to Quality of all Skill Gems ]],[[ Astramentis Onyx Amulet From 63a7f69152de785f4f4055795d3cfb307485ec06 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 20:06:28 +1100 Subject: [PATCH 07/51] Update Ralakesh's Impatience to 3.23 --- src/Data/Uniques/boots.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index e114711ce5..aabf6d3c66 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -828,17 +828,21 @@ Socketed Gems are Supported by Level 25 Divine Blessing Ralakesh's Impatience Riveted Boots Variant: Pre 3.19.0 +Variant: Pre 3.23.0 Variant: Current Requires Level 36, 35 Str, 35 Int +(15-25)% to Cold Resistance +(15-25)% to Chaos Resistance {variant:1}20% increased Movement Speed -{variant:2}30% increased Movement Speed -{variant:1}Gain a Frenzy, Endurance, or Power Charge once per second while you are Stationary -Lose all Frenzy, Endurance, and Power Charges when you Move +{variant:2,3}30% increased Movement Speed +{variant:1,3}Gain a Frenzy, Endurance, or Power Charge once per second while you are Stationary +{variant:1,2}Lose all Frenzy, Endurance, and Power Charges when you Move {variant:2}Minimum Endurance Charges equal to Maximum while stationary {variant:2}Minimum Frenzy Charges equal to Maximum while stationary {variant:2}Minimum Power Charges equal to Maximum while stationary +{variant:3}Count as having maximum number of Endurance Charges +{variant:3}Count as having maximum number of Frenzy Charges +{variant:3}Count as having maximum number of Power Charges ]],[[ Wake of Destruction Mesh Boots From e218db67574e6b8af23ec9c250ed18b1d9fb59d8 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 20:07:42 +1100 Subject: [PATCH 08/51] Remove redundant Annihalation's Approach variant tags --- src/Data/Uniques/boots.lua | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index aabf6d3c66..d90e1a9ab5 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -690,15 +690,15 @@ Dragonscale Boots Variant: Pre 3.23.0 Variant: Current Source: Drops from unique{The Searing Exarch} (Uber) -{variant:1,2}Grants Level 20 Approaching Flames Skill -{variant:1,2}(60-100)% increased Armour and Evasion -{variant:1,2}30% increased Movement Speed -{variant:1,2}Cannot be Chilled -{variant:1,2}Cannot be Frozen +Grants Level 20 Approaching Flames Skill +(60-100)% increased Armour and Evasion +30% increased Movement Speed +Cannot be Chilled +Cannot be Frozen {variant:1}Take 10000 Fire Damage per Second while Flame-Touched {variant:2}Take 6000 Fire Damage per Second while Flame-Touched -{variant:1,2}Gain Adrenaline when you become Flame-Touched -{variant:1,2}Lose Adrenaline when you cease to be Flame-Touched +Gain Adrenaline when you become Flame-Touched +Lose Adrenaline when you cease to be Flame-Touched ]],[[ Lioneye's Paws Bronzescale Boots From 29f7d7e6d7c27a8a90f319ea21b6f2d1e9980246 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 20:08:37 +1100 Subject: [PATCH 09/51] Remove redundant Anima Stone variant tags --- src/Data/Uniques/jewel.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Data/Uniques/jewel.lua b/src/Data/Uniques/jewel.lua index 18b1b0fbce..72aa9c61a4 100644 --- a/src/Data/Uniques/jewel.lua +++ b/src/Data/Uniques/jewel.lua @@ -17,7 +17,7 @@ Variant: Current Source: Vendor Recipe Limited to: 1 {variant:1}+1 to maximum number of Golems -{variant:1,2}+1 to maximum number of Summoned Golems if you have 3 Primordial Items Socketed or Equipped ++1 to maximum number of Summoned Golems if you have 3 Primordial Items Socketed or Equipped ]],[[ Apex Mode Cobalt Jewel From 4316b4bdbf71783c5b1bb8659bddea180b89b6d1 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 20:09:12 +1100 Subject: [PATCH 10/51] Remove redundant Kaom's Spirit variant tags --- src/Data/Uniques/gloves.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Data/Uniques/gloves.lua b/src/Data/Uniques/gloves.lua index 3b77e3e129..e7f572f2c5 100644 --- a/src/Data/Uniques/gloves.lua +++ b/src/Data/Uniques/gloves.lua @@ -57,10 +57,10 @@ Kaom's Spirit Titan Gauntlets Variant: Pre 3.23.0 Variant: Current -{variant:1,2}+(50-70) to Maximum Life -{variant:1,2}+(20-30)% to Fire Resistance -{variant:1,2}(0.3-0.5)% of Physical Attack Damage Leeched as Life -{variant:1,2}Life Recovery from Regeneration is not applied ++(50-70) to Maximum Life ++(20-30)% to Fire Resistance +(0.3-0.5)% of Physical Attack Damage Leeched as Life +Life Recovery from Regeneration is not applied {variant:1}Regenerate 1 Rage per second for every 100 Life Recovery per second from Regeneration {variant:2}Regenerate 1 Rage per second for every 300 Life Recovery per second from Regeneration ]],[[ From d752de0492b3a49ef68d1ac4b22c70c41426e59f Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 20:16:47 +1100 Subject: [PATCH 11/51] Update Ephemeral Edge to 3.23 --- src/Data/Uniques/sword.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Data/Uniques/sword.lua b/src/Data/Uniques/sword.lua index 14d76f1f53..cd4c2e6025 100644 --- a/src/Data/Uniques/sword.lua +++ b/src/Data/Uniques/sword.lua @@ -65,20 +65,22 @@ Dusk Blade Variant: Pre 2.0.0 Variant: Pre 2.6.0 Variant: Pre 3.19.0 +Variant: Pre 3.23.0 Variant: Current Implicits: 2 {variant:1,2}18% increased Global Accuracy Rating -{variant:3,4}40% increased Global Accuracy Rating +{variant:3,4,5}40% increased Global Accuracy Rating +10 to Intelligence {variant:1}100% increased Physical Damage {variant:2,3}150% increased Physical Damage -{variant:4}Adds 1 to 75 Lightning Damage +{variant:4,5}Adds 1 to 75 Lightning Damage 50% increased Global Critical Strike Chance (40-50)% increased maximum Energy Shield {variant:1,2,3}10% reduced maximum Life -{variant:4}25% reduced maximum Life +{variant:4,5}25% reduced maximum Life {variant:1,2,3}(0.6-1)% of Physical Attack Damage Leeched as Mana {variant:4}Attacks with this Weapon have Added Maximum Lightning Damage equal to 20% of your Maximum Energy Shield +{variant:5}Attacks with this Weapon have Added Maximum Lightning Damage equal to 20% of player Maximum Energy Shield ]],[[ The Goddess Scorned Elegant Sword From 6b52d947029c3f0c80ee23f81cc4abb36ce59fc0 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 20:19:22 +1100 Subject: [PATCH 12/51] Update Replica Bones of Ullr to 3.23 --- src/Data/Uniques/boots.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index d90e1a9ab5..8a2392e058 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -412,6 +412,8 @@ Requires Level 22, 42 Int ]],[[ Replica Bones of Ullr Silk Slippers +Variant: Pre 3.23.0 +Variant: Current League: Heist Source: Steal from a unique{Curio Display} during a Grand Heist Requires Level 22, 42 Int @@ -419,8 +421,10 @@ Requires Level 22, 42 Int +20 to maximum Life +20 to maximum Mana (5-15)% increased Movement Speed -Summoned Phantasms have 10% chance to refresh their Duration when they Hit a Unique Enemy -Summoned Raging Spirits have 10% chance to refresh their Duration when they Hit a Unique Enemy +{variant:1}Summoned Phantasms have 10% chance to refresh their Duration when they Hit a Unique Enemy +{variant:2}Summoned Phantasms have 10% chance to refresh their Duration when they Hit a Rare or Unique Enemy +{variant:1}Summoned Raging Spirits have 10% chance to refresh their Duration when they Hit a Unique Enemy +{variant:2}Summoned Raging Spirits have 10% chance to refresh their Duration when they Hit a Rare or Unique Enemy ]],[[ Doryani's Delusion Sorcerer Boots From e7d401bb24bdb4f4f9771ca1a1b64bb6be58f9ce Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 21:49:11 +1100 Subject: [PATCH 13/51] Migrate Ancestor uniques into base files --- src/Data/Uniques/amulet.lua | 34 ++++++++++++++++++++++++++++++++++ src/Data/Uniques/belt.lua | 27 +++++++++++++++++++++++++++ src/Data/Uniques/body.lua | 9 +++++++++ src/Data/Uniques/boots.lua | 9 +++++++++ src/Data/Uniques/helmet.lua | 9 +++++++++ src/Data/Uniques/jewel.lua | 8 ++++++++ src/Data/Uniques/mace.lua | 10 ++++++++++ src/Data/Uniques/quiver.lua | 11 +++++++++++ src/Data/Uniques/ring.lua | 22 ++++++++++++++++++++++ src/Data/Uniques/shield.lua | 15 +++++++++++++-- src/Data/Uniques/sword.lua | 11 +++++++++++ 11 files changed, 163 insertions(+), 2 deletions(-) diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index 4e0e061879..6353556d70 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -320,6 +320,18 @@ Implicits: 1 {tags:attack}+0.2 metres to Melee Strike Range {tags:attack}60% increased Melee Damage when on Full Life ]],[[ +Defiance of Destiny +Paua Amulet +League: Ancestor +LevelReq: 49 +Implicits: 1 +{tags:mana}(20–30)% increased Mana Regeneration Rate +{tags:life}+(60–80) to maximum Life +{tags:jewellery_resistance}+(10–40)% to Fire Resistance +{tags:jewellery_resistance}+(10–40)% to Cold Resistance +{tags:jewellery_resistance}+(10–40)% to Lightning Resistance +{tags:life}Gain (25–35)% of Missing Unreserved Life before being Hit by an Enemy +]],[[ The Ephemeral Bond Lapis Amulet League: Heist @@ -625,6 +637,18 @@ Implicits: 1 Your Hits can't be Evaded by Blinded Enemies {tags:jewellery_elemental}Damage Penetrates 10% Fire Resistance against Blinded Enemies ]],[[ +Ikiaho's Promise +Coral Amulet +League: Ancestor +LevelReq: 30 +Implicits: 1 +{tags:life}Regenerate (2–4) Life per second +{tags:mana}Regenerate (3–5) Mana per second +{tags:life}(30–40)% increased Life Recovery from Flasks +{tags:mana}(15–30)% increased Mana Recovery from Flasks +Life Flasks used while on Low Life apply Recovery Instantly +Mana Flasks used while on Low Mana apply Recovery Instantly +]],[[ Impresence Onyx Amulet Elder Item @@ -835,6 +859,16 @@ Implicits: 1 {variant:2}Always Freeze, Shock and Ignite {variant:1}Cannot gain Power Charges ]],[[ +Replica Dragonfang's Flight +Onyx Amulet +LevelReq: 56 +Implicits: 1 ++(10–16) to all Attributes ++(10–15)% to all Elemental Resistances ++3 to Level of all Spark Gems +(10–15)% increased Reservation Efficiency of Skills +Items and Gems have (10–15)% reduced Attribute Requirements +]],[[ Retaliation Charm Citrine Amulet Variant: Pre 3.19.0 diff --git a/src/Data/Uniques/belt.lua b/src/Data/Uniques/belt.lua index 11c1160898..5c75db17cc 100644 --- a/src/Data/Uniques/belt.lua +++ b/src/Data/Uniques/belt.lua @@ -134,6 +134,23 @@ Implicits: 1 1% increased Rarity of Items found per 15 Rampage Kills Rampage ]],[[ +Bound Fate +Cloth Belt +League: Ancestor +LevelReq: 16 +Implicits: 1 +(15-25)% increased Stun and Block Recovery +{tags:jewellery_attribute}+(20-30) to Dexterity +{tags:jewellery_attribute}+(20-30) to Intelligence +{tags:life}+(60-80) to Maximum Life +Every 5 seconds, gain one of the following for 5 seconds: +Your Hits are always Critical Strikes +Hits against you always are Critical Strikes +Attacks cannot Hit you +Attacks against you always Hit +Your Damage with Hits is Lucky +Damage of Hits against you is Lucky +]],[[ Chains of Emancipation Chain Belt League: Heist @@ -459,6 +476,16 @@ Implicits: 1 {tags:physical_damage}-(50-40) Physical Damage taken from Attack Hits {tags:jewellery_defense}40% increased Armour while not Ignited, Frozen or Shocked ]],[[ +Kaom's Binding +Heavy Belt +League: Ancestor +LevelReq: 56 +Implicits: 1 +{tags:jewellery_attribute}+(30–40) to Strength +{tags:jewellery_defense}+(300–500) to Armour +Take no Burning Damage if you've stopped taking Burning Damage Recently +Nearby Enemies Convert 25% of their Physical Damage to Fire +]],[[ Leash of Oblation Leather Belt LevelReq: 49 diff --git a/src/Data/Uniques/body.lua b/src/Data/Uniques/body.lua index ce709a840a..0cf0489e47 100644 --- a/src/Data/Uniques/body.lua +++ b/src/Data/Uniques/body.lua @@ -189,6 +189,15 @@ Implicits: 0 Chaos Damage taken does not bypass Energy Shield {variant:1}-10 Chaos Damage taken {variant:2}-(30-40) Chaos Damage taken +]],[[ +Utula's Hunger +Majestic Plate +League: Ancestor +Requires Level 53, 145 Str +(60-100)% increased Armour +Recover (1-3)% of Life on Kill +(30-40)% Increased Stun and Block Recovery ++(700-1000) to maximum Life if there are no Life Modifiers on other Equipped items ]], -- Body: Evasion [[ diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index 8a2392e058..2c611f3cc4 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -96,6 +96,15 @@ Gain a Power Charge on Hit while Poisoned Necrotic Footprints 50% chance for Spell Hits against you to inflict Poison ]],[[ +Kahuturoa's Certainty +Ancient Greaves +League: Ancestor +Requires Level 46, 82 Str +(100–150)% increased Armour +5% reduced Movement Speed +(100–200)% increased Stun and Block Recovery +Unaffected by Damaging Ailments +]],[[ Kaom's Roots Titan Greaves Variant: Pre 2.6.0 diff --git a/src/Data/Uniques/helmet.lua b/src/Data/Uniques/helmet.lua index e0e165cc33..96733fcd40 100644 --- a/src/Data/Uniques/helmet.lua +++ b/src/Data/Uniques/helmet.lua @@ -1199,6 +1199,15 @@ Variant: Current ]], -- Helmet: Evasion/Energy Shield [[ +Akoya's Gaze +Regicide Mask +League: Ancestor +Requires Level 52, 58 Dex, 58 Int ++100 Strength Requirement +(20–25)% increased Warcry Speed +Life Leech from Exerted Attacks is instant +Non-Exerted Attacks deal no Damage +]],[[ Crown of the Pale King Regicide Mask League: Tempest diff --git a/src/Data/Uniques/jewel.lua b/src/Data/Uniques/jewel.lua index 72aa9c61a4..beab1c1ca6 100644 --- a/src/Data/Uniques/jewel.lua +++ b/src/Data/Uniques/jewel.lua @@ -765,6 +765,14 @@ it and your Class' starting location {variant:8}+40 to Evasion Rating {variant:9}+40 to Accuracy Rating Corrupted +]],[[ +Warrior's Tale +Crimson Jewel +League: Ancestor +Source: No longer obtainable +Limited to: 1 +Radius: Medium +100% increased effect of Tattoos in Radius ]], -- Jewel: Abyss [[ diff --git a/src/Data/Uniques/mace.lua b/src/Data/Uniques/mace.lua index a42397536e..8391f09975 100644 --- a/src/Data/Uniques/mace.lua +++ b/src/Data/Uniques/mace.lua @@ -448,6 +448,16 @@ Raised Zombies Cover Enemies in Ash on Hit Raised Zombies take (15.0-30.0)% of their Maximum Life per second as Fire Damage Raised Zombies have Avatar of Fire ]],[[ +Maata's Teaching +Karui Sceptre +League: Ancestor +Requires Level 56, 96 Str, 96 Int +Implicits: 1 ++(30-40) to Intelligence +(25-50)% increased Critical Strike Chance ++(1-2) to Level of all Minion Skill Gems +Minions' Base Attack Critical Strike Chance is equal to the Critical Strike Chance of your Main Hand Weapon +]],[[ Mon'tregul's Grasp Void Sceptre Variant: Pre 1.2.0 diff --git a/src/Data/Uniques/quiver.lua b/src/Data/Uniques/quiver.lua index 361bb3f059..86d3125f67 100644 --- a/src/Data/Uniques/quiver.lua +++ b/src/Data/Uniques/quiver.lua @@ -3,6 +3,17 @@ return { -- Quiver [[ +Ahuana's Bite +Sharktooth Arrow Quiver +League: Ancestor +LevelReq: 56 +Implicits: 1 +Gain (6–8) Life per Enemy Hit with Attacks +Adds (30–40) to (60–70) Cold Damage to Attacks ++(20–30)% to Cold Resistance +Enemies Chilled by your Hits have Damage taken increased by Chill Effect +Chill Enemies as though dealing (60–100)% more Damage +]],[[ Asphyxia's Wrath {variant:1,2}Two-Point Arrow Quiver {variant:3}Feathered Arrow Quiver diff --git a/src/Data/Uniques/ring.lua b/src/Data/Uniques/ring.lua index 3acda826c0..cb477fbfb6 100644 --- a/src/Data/Uniques/ring.lua +++ b/src/Data/Uniques/ring.lua @@ -549,6 +549,19 @@ Implicits: 1 {variant:2}Steal Power, Frenzy, and Endurance Charges on Hit Total Recovery per second from Life Leech is Doubled ]],[[ +Honoured Alliance +Coral Ring +League: Ancestor +Source: No longer obtainable +LevelReq: 49 +Implicits: 1 +{tags:life}+(20–30) to maximum Life +10% chance to Trigger Summon Spirit of Akoya on Kill +{tags:jewellery_attribute}+(10–20) to all Attributes +{tags:mana}(30–50)% increased Mana Regeneration Rate +{tags:life}(10–15)% of Damage taken Recouped as Life +]], +[[ The Hungry Loop Unset Ring Requires Level 45 @@ -1116,6 +1129,15 @@ Your Cold Damage cannot Freeze Immune to Chill {tags:jewellery_elemental}Adds 60 to 80 Cold Damage against Chilled Enemies ]],[[ +Tawhanuku's Timing +Moonstone Ring +League: Ancestor +{tags:jewellery_defense}+(15–25) to maximum Energy Shield +{tags:caster}(30–40)% increased Spell Damage +{tags:mana}+(60–80) to maximum Mana +(5–10)% chance to Freeze, Shock and Ignite +{tags:jewellery_defense,caster}Spells cause you to gain Energy Shield equal to their Upfront Cost every fifth time you Pay it +]],[[ Thief's Torment Prismatic Ring Variant: Pre 1.0.0 diff --git a/src/Data/Uniques/shield.lua b/src/Data/Uniques/shield.lua index 7010d319b6..aa34073292 100644 --- a/src/Data/Uniques/shield.lua +++ b/src/Data/Uniques/shield.lua @@ -332,6 +332,18 @@ Reflects (25-50) Cold Damage to Melee Attackers +5% Chance to Block 20% of Fire Damage from Hits taken as Cold Damage ]],[[ +Kiloava's Bluster +Ironwood Buckler +League: Ancestor +Requires Level 57, 137 Dex +Implicits: 1 +3% increased Movement Speed +(100–150)% increased Evasion Rating +(15–25)% chance to Avoid Elemental Ailments ++(3–8)% Chance to Block +(30–40)% chance for Elemental Resistances to count as being 90% against Enemy Hits +]], +[[ Mistwall Lacquered Buckler Implicits: 1 @@ -1153,5 +1165,4 @@ Implicits: 1 +(50-70) to maximum Life 1% increased Area of Effect per Enemy killed recently, up to 50% You have Zealot's Oath if you haven't been hit recently -]], -} +]],} diff --git a/src/Data/Uniques/sword.lua b/src/Data/Uniques/sword.lua index cd4c2e6025..eedcc0fc97 100644 --- a/src/Data/Uniques/sword.lua +++ b/src/Data/Uniques/sword.lua @@ -872,6 +872,17 @@ Minions have (80-100)% increased Movement Speed +1 to maximum number of Skeletons 25% increased Strength Requirement ]],[[ +Rakiata's Dance +Engraved Greatsword +League: Ancestor +Requires Level 48, 91 Str, 76 Dex +Implicits: 1 +60% increased Global Accuracy Rating +Adds (150–200) to (300–350) Cold Damage +Adds 1 to (550–600) Lightning Damage +(15–20)% increased Attack Speed +Treats Enemy Monster Elemental Resistance values as inverted +]],[[ Rigwald's Charge Highland Blade Variant: Pre 1.0.0 From 543d39fe501fdc2d8b2c179d24bcca3b80033740 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 21:49:51 +1100 Subject: [PATCH 14/51] Migrate Ancestor uniques into base files --- src/Data/Uniques/Special/New.lua | 160 +------------------------------ 1 file changed, 1 insertion(+), 159 deletions(-) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 84c4949c0c..12bd3d5818 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -5,165 +5,7 @@ data.uniques.new = { -- New -[[ -Ahuana's Bite -Sharktooth Arrow Quiver -League: Ancestor -LevelReq: 56 -Implicits: 1 -Gain (6–8) Life per Enemy Hit with Attacks -Adds (30–40) to (60–70) Cold Damage to Attacks -+(20–30)% to Cold Resistance -Enemies Chilled by your Hits have Damage taken increased by Chill Effect -Chill Enemies as though dealing (60–100)% more Damage -]],[[ -Akoya's Gaze -Regicide Mask -League: Ancestor -Requires Level 52, 58 Dex, 58 Int -+100 Strength Requirement -(20–25)% increased Warcry Speed -Life Leech from Exerted Attacks is instant -Non-Exerted Attacks deal no Damage -]],[[ -Bound Fate -Cloth Belt -League: Ancestor -LevelReq: 16 -Implicits: 1 -(15-25)% increased Stun and Block Recovery -{tags:jewellery_attribute}+(20-30) to Dexterity -{tags:jewellery_attribute}+(20-30) to Intelligence -{tags:life}+(60-80) to Maximum Life -Every 5 seconds, gain one of the following for 5 seconds: -Your Hits are always Critical Strikes -Hits against you always are Critical Strikes -Attacks cannot Hit you -Attacks against you always Hit -Your Damage with Hits is Lucky -Damage of Hits against you is Lucky -]],[[ -Defiance of Destiny -Paua Amulet -League: Ancestor -LevelReq: 49 -Implicits: 1 -{tags:mana}(20–30)% increased Mana Regeneration Rate -{tags:life}+(60–80) to maximum Life -{tags:jewellery_resistance}+(10–40)% to Fire Resistance -{tags:jewellery_resistance}+(10–40)% to Cold Resistance -{tags:jewellery_resistance}+(10–40)% to Lightning Resistance -{tags:life}Gain (25–35)% of Missing Unreserved Life before being Hit by an Enemy -]],[[ -Honoured Alliance -Coral Ring -League: Ancestor -LevelReq: 49 -Implicits: 1 -{tags:life}+(20–30) to maximum Life -10% chance to Trigger Summon Spirit of Akoya on Kill -{tags:jewellery_attribute}+(10–20) to all Attributes -{tags:mana}(30–50)% increased Mana Regeneration Rate -{tags:life}(10–15)% of Damage taken Recouped as Life -]],[[ -Ikiaho's Promise -Coral Amulet -League: Ancestor -LevelReq: 30 -Implicits: 1 -{tags:life}Regenerate (2–4) Life per second -{tags:mana}Regenerate (3–5) Mana per second -{tags:life}(30–40)% increased Life Recovery from Flasks -{tags:mana}(15–30)% increased Mana Recovery from Flasks -Life Flasks used while on Low Life apply Recovery Instantly -Mana Flasks used while on Low Mana apply Recovery Instantly -]],[[ -Kahuturoa's Certainty -Ancient Greaves -League: Ancestor -Requires Level 46, 82 Str -(100–150)% increased Armour -5% reduced Movement Speed -(100–200)% increased Stun and Block Recovery -Unaffected by Damaging Ailments -]],[[ -Kaom's Binding -Heavy Belt -League: Ancestor -LevelReq: 56 -Implicits: 1 -{tags:jewellery_attribute}+(30–40) to Strength -{tags:jewellery_defense}+(300–500) to Armour -Take no Burning Damage if you've stopped taking Burning Damage Recently -Nearby Enemies Convert 25% of their Physical Damage to Fire -]],[[ -Kiloava's Bluster -Ironwood Buckler -League: Ancestor -Requires Level 57, 137 Dex -Implicits: 1 -3% increased Movement Speed -(100–150)% increased Evasion Rating -(15–25)% chance to Avoid Elemental Ailments -+(3–8)% Chance to Block -(30–40)% chance for Elemental Resistances to count as being 90% against Enemy Hits -]],[[ -Maata's Teaching -Karui Sceptre -League: Ancestor -Requires Level 56, 96 Str, 96 Int -Implicits: 1 -+(30-40) to Intelligence -(25-50)% increased Critical Strike Chance -+(1-2) to Level of all Minion Skill Gems -Minions' Base Attack Critical Strike Chance is equal to the Critical Strike Chance of your Main Hand Weapon -]],[[ -Rakiata's Dance -Engraved Greatsword -League: Ancestor -Requires Level 48, 91 Str, 76 Dex -Implicits: 1 -60% increased Global Accuracy Rating -Adds (150–200) to (300–350) Cold Damage -Adds 1 to (550–600) Lightning Damage -(15–20)% increased Attack Speed -Treats Enemy Monster Elemental Resistance values as inverted -]],[[ -Replica Dragonfang's Flight -Onyx Amulet -LevelReq: 56 -Implicits: 1 -+(10–16) to all Attributes -+(10–15)% to all Elemental Resistances -+3 to Level of all Spark Gems -(10–15)% increased Reservation Efficiency of Skills -Items and Gems have (10–15)% reduced Attribute Requirements -]],[[ -Tawhanuku's Timing -Moonstone Ring -League: Ancestor -{tags:jewellery_defense}+(15–25) to maximum Energy Shield -{tags:caster}(30–40)% increased Spell Damage -{tags:mana}+(60–80) to maximum Mana -(5–10)% chance to Freeze, Shock and Ignite -{tags:jewellery_defense,caster}Spells cause you to gain Energy Shield equal to their Upfront Cost every fifth time you Pay it -]],[[ -Utula's Hunger -Majestic Plate -League: Ancestor -Requires Level 53, 145 Str -(60-100)% increased Armour -Recover (1-3)% of Life on Kill -(30-40)% Increased Stun and Block Recovery -+(700-1000) to maximum Life if there are no Life Modifiers on other Equipped items -]],[[ -Warrior's Tale -Crimson Jewel -League: Ancestor -Radius: Medium -Limited to: 1 -100% increased effect of Tattoos in Radius -]] + -- Reworked } From cbae9fd1f28a7a82be3281d35a57afc9eccb4443 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 21:55:38 +1100 Subject: [PATCH 15/51] Update Replica Dragonfang's Flight to 3.23 --- src/Data/Uniques/amulet.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index 6353556d70..3083cc4053 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -861,13 +861,18 @@ Implicits: 1 ]],[[ Replica Dragonfang's Flight Onyx Amulet +Variant: Pre 3.23.0 +Variant: Current LevelReq: 56 Implicits: 1 +(10–16) to all Attributes -+(10–15)% to all Elemental Resistances +{variant:1}+(10–15)% to all Elemental Resistances +{variant:2}+(5–10)% to all Elemental Resistances +3 to Level of all Spark Gems -(10–15)% increased Reservation Efficiency of Skills -Items and Gems have (10–15)% reduced Attribute Requirements +{variant:1}(10–15)% increased Reservation Efficiency of Skills +{variant:2}(5–10)% increased Reservation Efficiency of Skills +{variant:1}Items and Gems have (10–15)% reduced Attribute Requirements +{variant:2}Items and Gems have (5–10)% reduced Attribute Requirements ]],[[ Retaliation Charm Citrine Amulet From def0eb588901d7666f3494cdc5521d3c37624db9 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Fri, 1 Dec 2023 23:44:58 +1100 Subject: [PATCH 16/51] Add new mod for updated Ephemeral Edge --- src/Modules/ModParser.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 846d669165..b6ad094445 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4380,6 +4380,9 @@ local specialModList = { ["attacks with this weapon have added maximum lightning damage equal to (%d+)%% of your maximum energy shield"] = function(num) return { mod("LightningMax", "BASE", 1, { type = "PercentStat", stat = "EnergyShield" , percent = num }, { type = "Condition", var = "{Hand}Attack" }, { type = "SkillType", skillType = SkillType.Attack }), } end, + ["attacks with this weapon have added maximum lightning damage equal to (%d+)%% of player maximum energy shield"] = function(num) return { + mod("LightningMax", "BASE", 1, { type = "PercentStat", stat = "EnergyShield" , percent = num, actor = "parent" }, { type = "Condition", var = "{Hand}Attack" }, { type = "SkillType", skillType = SkillType.Attack }), + } end, ["gain added chaos damage equal to (%d+)%% of ward"] = function(num) return { mod("ChaosMin", "BASE", 1, { type = "PercentStat", stat = "Ward", percent = num }), mod("ChaosMax", "BASE", 1, { type = "PercentStat", stat = "Ward", percent = num }), From 0d2f63522559e67c60266187155961ebbbaa8c38 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 00:33:14 +1100 Subject: [PATCH 17/51] Add mods and logic for Ralakesh's Impatience 3.23 --- src/Modules/CalcPerform.lua | 9 +++++++++ src/Modules/ModParser.lua | 3 +++ 2 files changed, 12 insertions(+) diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index bded35d1d9..3f628c527e 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -601,6 +601,15 @@ local function doActorMisc(env, actor) output.SpiritCharges = m_min(modDB:Override(nil, "SpiritCharges") or 0, output.SpiritChargesMax) output.CrabBarriers = m_min(modDB:Override(nil, "CrabBarriers") or output.CrabBarriersMax, output.CrabBarriersMax) + if modDB:Flag(nil, "HaveMaximumPowerCharges") then + output.PowerCharges = output.PowerChargesMax + end + if modDB:Flag(nil, "HaveMaximumFrenzyCharges") then + output.FrenzyCharges = output.FrenzyChargesMax + end + if modDB:Flag(nil, "HaveMaximumEnduranceCharges") then + output.EnduranceCharges = output.EnduranceChargesMax + end output.TotalCharges = output.PowerCharges + output.FrenzyCharges + output.EnduranceCharges modDB.multipliers["PowerCharge"] = output.PowerCharges modDB.multipliers["PowerChargeMax"] = output.PowerChargesMax diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index b6ad094445..aa98b23645 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4257,6 +4257,9 @@ local specialModList = { ["minimum power charges equal to maximum while stationary"] = { flag("MinimumPowerChargesIsMaximumPowerCharges", {type = "Condition", var = "Stationary" }) }, ["minimum frenzy charges equal to maximum while stationary"] = { flag("MinimumFrenzyChargesIsMaximumFrenzyCharges", {type = "Condition", var = "Stationary" }) }, ["minimum endurance charges equal to maximum while stationary"] = { flag("MinimumEnduranceChargesIsMaximumEnduranceCharges", {type = "Condition", var = "Stationary" }) }, + ["count as having maximum number of power charges"] = { flag("HaveMaximumPowerCharges") }, + ["count as having maximum number of frenzy charges"] = { flag("HaveMaximumFrenzyCharges") }, + ["count as having maximum number of endurance charges"] = { flag("HaveMaximumEnduranceCharges") }, ["leftmost (%d+) magic utility flasks constantly apply their flask effects to you"] = function(num) return { mod("ActiveMagicUtilityFlasks", "BASE", num) } end, ["marauder: melee skills have (%d+)%% increased area of effect"] = function(num) return { mod("AreaOfEffect", "INC", num, { type = "Condition", var = "ConnectedToMarauderStart" }, { type = "SkillType", skillType = SkillType.Melee }) } end, ["intelligence provides no bonus to energy shield"] = { flag("NoIntBonusToES") }, From 3239646bf3a4c09d2108037cc0bfa95db68eab49 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 00:41:00 +1100 Subject: [PATCH 18/51] Update Replica Perfect Form to 3.23 --- src/Data/Uniques/body.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Data/Uniques/body.lua b/src/Data/Uniques/body.lua index 0cf0489e47..e6c3cf6a34 100644 --- a/src/Data/Uniques/body.lua +++ b/src/Data/Uniques/body.lua @@ -427,20 +427,23 @@ League: Heist Source: Steal from a unique{Curio Display} during a Grand Heist Variant: Pre 3.16.0 Variant: Pre 3.21.0 +Variant: Pre 3.23.0 Variant: Current Implicits: 0 {variant:1}(5-10)% increased Dexterity {variant:2,3}(10-15)% increased Dexterity {variant:1}(30-50)% increased Evasion Rating {variant:2}(80-100)% increased Evasion Rating -{variant:3}(150-200)% increased Evasion Rating +{variant:3,4}(150-200)% increased Evasion Rating {variant:1}+(50-80) to maximum Life {variant:2,3}+(70-100) to maximum Life -30% to Cold Resistance {variant:1}Evasion Rating is increased by Uncapped Cold Resistance {variant:2,3}Evasion Rating is increased by Overcapped Cold Resistance -Flesh and Stone has no Reservation -Hollow Palm Technique +{variant:3}Flesh and Stone has no Reservation +{variant:3}Hollow Palm Technique +{variant:4}Versatile Combatant +{variant:4}+20% chance to Block Attack Damage ]],[[ Yriel's Fostering Exquisite Leather From 9c694f49f045b9ffaf4e61afd4e3adca8da08721 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 08:27:51 +1100 Subject: [PATCH 19/51] Add MaxSpellBlockIfNotBlockedRecently flag for Replica Mistwall --- src/Modules/ModParser.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index aa98b23645..4f6c6617e6 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -3348,6 +3348,7 @@ local specialModList = { ["if you consumed a corpse recently, you and nearby allies regenerate (%d+)%% of life per second"] = function (num) return { mod("ExtraAura", "LIST", { mod = mod("LifeRegenPercent", "BASE", num) }, { type = "Condition", var = "ConsumedCorpseRecently" }) } end, ["if you have blocked recently, you and nearby allies regenerate (%d+)%% of life per second"] = function (num) return { mod("ExtraAura", "LIST", { mod = mod("LifeRegenPercent", "BASE", num) }, { type = "Condition", var = "BlockedRecently" }) } end, ["you are at maximum chance to block attack damage if you have not blocked recently"] = { flag("MaxBlockIfNotBlockedRecently", { type = "Condition", var = "BlockedRecently", neg = true }) }, + ["you are at maximum chance to block spell damage if you have not blocked recently"] = { flag("MaxSpellBlockIfNotBlockedRecently", { type = "Condition", var = "BlockedRecently", neg = true }) }, ["%+(%d+)%% chance to block attack damage if you have not blocked recently"] = function(num) return { mod("BlockChance", "BASE", num, { type = "Condition", var = "BlockedRecently", neg = true }) } end, ["%+(%d+)%% chance to block spell damage if you have not blocked recently"] = function(num) return { mod("SpellBlockChance", "BASE", num, { type = "Condition", var = "BlockedRecently", neg = true }) } end, ["([%d%.]+)%% of evasion rating is regenerated as life per second while focus?sed"] = function(num) return { mod("LifeRegen", "BASE", 1, { type = "PercentStat", stat = "Evasion", percent = num }, { type = "Condition", var = "Focused" }) } end, From 77ec43e033115fc43f4ab3824b6b8e4e91223d9d Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 09:44:25 +1100 Subject: [PATCH 20/51] Update Spell Block logic for Replica Mistwall 3.23 --- src/Modules/CalcDefence.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index 0fa1ed04fa..61b69b8e0b 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -443,7 +443,10 @@ function calcs.defence(env, actor) else output.SpellBlockChanceMax = modDB:Sum("BASE", nil, "SpellBlockChanceMax") end - if modDB:Flag(nil, "SpellBlockChanceIsBlockChance") then + if modDB:Flag(nil, "MaxSpellBlockIfNotBlockedRecently") then + output.SpellBlockChance = output.SpellBlockChanceMax + output.SpellProjectileBlockChance = output.SpellBlockChanceMax + elseif modDB:Flag(nil, "SpellBlockChanceIsBlockChance") then output.SpellBlockChance = output.BlockChance output.SpellProjectileBlockChance = output.ProjectileBlockChance output.SpellBlockChanceOverCap = output.BlockChanceOverCap @@ -852,7 +855,10 @@ function calcs.defence(env, actor) else output.SpellBlockChanceMax = modDB:Sum("BASE", nil, "SpellBlockChanceMax") end - if modDB:Flag(nil, "SpellBlockChanceIsBlockChance") then + if modDB:Flag(nil, "MaxSpellBlockIfNotBlockedRecently") then + output.SpellBlockChance = output.SpellBlockChanceMax + output.SpellProjectileBlockChance = output.SpellBlockChanceMax + elseif modDB:Flag(nil, "SpellBlockChanceIsBlockChance") then output.SpellBlockChance = output.BlockChance output.SpellProjectileBlockChance = output.ProjectileBlockChance else From 9159a7331cbe8679f8f838d0aea4a0740b91bb46 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 09:44:42 +1100 Subject: [PATCH 21/51] Update Replica Mistwall to 3.23 --- src/Data/Uniques/shield.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Data/Uniques/shield.lua b/src/Data/Uniques/shield.lua index aa34073292..4811b9d6f2 100644 --- a/src/Data/Uniques/shield.lua +++ b/src/Data/Uniques/shield.lua @@ -357,6 +357,8 @@ You have Phasing if you have Blocked Recently ]],[[ Replica Mistwall Lacquered Buckler +Variant: Pre 3.23.0 +Variant: Current League: Heist Source: Steal from a unique{Curio Display} during a Grand Heist Implicits: 1 @@ -364,7 +366,8 @@ Implicits: 1 (120-150)% increased Evasion Rating 10% increased Movement Speed +(10-20)% to Fire and Cold Resistances -+75% Chance to Block Spell Damage if you have not Blocked Recently +{variant:1}+75% Chance to Block Spell Damage if you have not Blocked Recently +{variant:2}You are at Maximum Chance to Block Spell Damage if you have not Blocked Recently +(8-15)% chance to Avoid Physical Damage from Hits while Phasing You have Phasing if you have Blocked Recently ]],[[ From 0fdadf6175e40a41345b4e6ab01760ec208656e9 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 09:49:28 +1100 Subject: [PATCH 22/51] Update Replica Bitterdream to 3.23 --- src/Data/Uniques/mace.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Data/Uniques/mace.lua b/src/Data/Uniques/mace.lua index 8391f09975..349f6fb648 100644 --- a/src/Data/Uniques/mace.lua +++ b/src/Data/Uniques/mace.lua @@ -280,12 +280,15 @@ Socketed Gems are Supported by Level 15 Inspiration ]],[[ Replica Bitterdream Shadow Sceptre +Variant: Pre 3.23.0 +Variant: Current League: Heist Source: Steal from a unique{Curio Display} during a Grand Heist Requires Level 32, 52 Str, 62 Int Implicits: 1 22% increased Elemental Damage -Socketed Gems are Supported by Level 1 Elemental Penetration +{variant: 1}Socketed Gems are Supported by Level 1 Elemental Penetration +{variant: 2}Socketed Gems are Supported by Level 15 Elemental Penetration Socketed Gems are Supported by Level 15 Immolate Socketed Gems are Supported by Level 15 Unbound Ailments Socketed Gems are Supported by Level 15 Ice Bite From c96206f80ea02a185de2959d8311fa7b1277e8a4 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 10:13:36 +1100 Subject: [PATCH 23/51] Update Replica Oro's Sacrifice to 3.23 --- src/Data/Uniques/sword.lua | 5 ++++- src/Modules/ModParser.lua | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Data/Uniques/sword.lua b/src/Data/Uniques/sword.lua index eedcc0fc97..ca1f3a161d 100644 --- a/src/Data/Uniques/sword.lua +++ b/src/Data/Uniques/sword.lua @@ -807,6 +807,8 @@ Gain a Frenzy Charge if an Attack Ignites an Enemy ]],[[ Replica Oro's Sacrifice Infernal Sword +Variant: Pre 3.23.0 +Variant: Current League: Heist Source: Steal from a unique{Curio Display} during a Grand Heist Implicits: 1 @@ -814,11 +816,12 @@ Implicits: 1 No Physical Damage Adds (385-440) to (490-545) Cold Damage (10-15)% increased Attack Speed -1% of Damage against Frozen Enemies Leeched as Life +{variant:1}1% of Damage against Frozen Enemies Leeched as Life 20% chance to Freeze 10% increased Physical Damage taken 10% increased Cold Damage taken Gain an Endurance Charge if an Attack Freezes an Enemy +{variant:2}Culling Strike against Frozen Enemies ]],[[ Echoforge Infernal Sword diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 4f6c6617e6..a6ba42e312 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4105,6 +4105,7 @@ local specialModList = { ["your spells have culling strike"] = { mod("CullPercent", "MAX", 10, nil, ModFlag.Spell) }, ["bow attacks have culling strike"] = { mod("CullPercent", "MAX", 10, nil, bor(ModFlag.Attack, ModFlag.Bow)) }, ["culling strike against burning enemies"] = { mod("CullPercent", "MAX", 10, { type = "ActorCondition", actor = "enemy", var = "Burning" }) }, + ["culling strike against frozen enemies"] = { mod("CullPercent", "MAX", 10, { type = "ActorCondition", actor = "enemy", var = "Frozen" }) }, ["culling strike against marked enemy"] = { mod("CullPercent", "MAX", 10, { type = "ActorCondition", actor = "enemy", var = "Marked" }) }, ["nearby allies have culling strike"] = { mod("ExtraAura", "LIST", {onlyAllies = true, mod = mod("CullPercent", "MAX", 10) }) }, -- Intimidate From 2ee69124222b3f0c8b274907a671905fde923a88 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 12:00:30 +1100 Subject: [PATCH 24/51] Added support for Replica Covenant 3.23 --- src/Data/Uniques/Special/New.lua | 10 ++++++++++ src/Modules/CalcOffence.lua | 7 +++++++ src/Modules/ModParser.lua | 3 +++ 3 files changed, 20 insertions(+) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 12bd3d5818..5509309023 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -5,6 +5,16 @@ data.uniques.new = { -- New +[[ +Replica Covenant +Spidersilk Robe +Implicits: 0 +Socketed Gems are Supported by Level 29 Added Cold Damage ++(20-30) to Intelligence +(210-250)% increased Energy Shield +10% increased maximum Life +Skills gain a Base Energy Shield Cost equal to 200% of Base Mana Cost +]] -- Reworked diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index bc3bed061f..e65c3eb336 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -1498,6 +1498,7 @@ function calcs.offence(env, actor, activeSkill) local mult = floor(skillModList:More(skillCfg, "SupportManaMultiplier"), 4) -- First pass to calculate base costs. Used for cost conversion (e.g. Petrified Blood) local additionalLifeCost = skillModList:Sum("BASE", skillCfg, "ManaCostAsLifeCost") / 100 -- Extra cost (e.g. Petrified Blood) calculations + local additionalESCost = skillModList:Sum("BASE", skillCfg, "ManaCostAsEnergyShieldCost") / 100 -- Extra cost (e.g. Petrified Blood) calculations local hybridLifeCost = skillModList:Sum("BASE", skillCfg, "HybridManaAndLifeCost_Life") / 100 -- Life/Mana mastery for resource, val in pairs(costs) do local skillCost = activeSkill.activeEffect.grantedEffectLevel.cost and activeSkill.activeEffect.grantedEffectLevel.cost[resource] or nil @@ -1535,6 +1536,12 @@ function calcs.offence(env, actor, activeSkill) val.baseCost = costs[manaType].baseCost val.finalBaseCost = val.finalBaseCost + round(costs[manaType].finalBaseCost * (hybridLifeCost + additionalLifeCost)) end + elseif val.type == "ES" then + local manaType = resource:gsub("ES", "Mana") + if additionalESCost > 0 then + val.baseCost = round(costs[manaType].baseCost * additionalESCost) + val.finalBaseCost = val.finalBaseCost + round(costs[manaType].finalBaseCost * additionalESCost) + end elseif val.type == "Rage" then if skillModList:Flag(skillCfg, "CostRageInsteadOfSouls") then -- Hateforge val.baseCost = val.baseCost + costs.Soul.baseCost diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index a6ba42e312..117bd6e610 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4547,6 +4547,9 @@ local specialModList = { ["skills gain a base life cost equal to (%d+)%% of base mana cost"] = function(num) return { mod("ManaCostAsLifeCost", "BASE", num), } end, + ["skills gain a base energy shield cost equal to (%d+)%% of base mana cost"] = function(num) return { + mod("ManaCostAsEnergyShieldCost", "BASE", num), + } end, ["skills cost life instead of (%d+)%% of mana cost"] = function(num) return { mod("HybridManaAndLifeCost_Life", "BASE", num), } end, From 351cd55491b34f4cac7ad5afe7ae4fe9118b5064 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 12:16:23 +1100 Subject: [PATCH 25/51] Add Replica Badge of the Brotherhood 3.23 --- src/Data/Uniques/Special/New.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 5509309023..7071fa01c4 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -8,12 +8,27 @@ data.uniques.new = { [[ Replica Covenant Spidersilk Robe +League: Heist +Source: Steal from a unique{Curio Display} during a Grand Heist Implicits: 0 Socketed Gems are Supported by Level 29 Added Cold Damage +(20-30) to Intelligence (210-250)% increased Energy Shield 10% increased maximum Life Skills gain a Base Energy Shield Cost equal to 200% of Base Mana Cost +]],[[ +Replica Badge of the Brotherhood +Turquoise Amulet +League: Heist +Source: Steal from a unique{Curio Display} during a Grand Heist +Requires Level: 60 +Implicits: 1 +{tags:jewellery_attribute}+(16-24) to Dexterity and Intelligence +Your Maximum Endurance Charges is equal to your Maximum Frenzy Charges ++1 to Maximum Fortification per Endurance Charge +(7-10)% increased Cooldown Recovery of Travel Skills per Frenzy Charge +(20-25)% chance to lose a Frenzy Charge when you use a Travel Skill +(20-25)% chance to lose an Endurance Charge when you gain Fortification ]] -- Reworked From a238309469f24e78002328cb524d6a185454d6de Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 12:51:46 +1100 Subject: [PATCH 26/51] Add Ixchel's Temptation 3.23 --- src/Data/Uniques/Special/New.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 7071fa01c4..ebd4a7350a 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -29,6 +29,24 @@ Your Maximum Endurance Charges is equal to your Maximum Frenzy Charges (7-10)% increased Cooldown Recovery of Travel Skills per Frenzy Charge (20-25)% chance to lose a Frenzy Charge when you use a Travel Skill (20-25)% chance to lose an Endurance Charge when you gain Fortification +]],[[ +Ixchel's Temptation +Gold Ring +Requires Level 20 +Implicits: 1 +(6-15)% increased Rarity of Items found +{tags:jewellery_attribute}+(13-13) to all Attributes +{tags:attack,chaos_damage}Adds (9-9) to (18-18) Chaos Damage to Attacks +{tags:caster,jewellery_elemental}Adds (10-10) to (20-20) Fire Damage to Spells +{tags:critical}+(17-17)% to Global Critical Strike Multiplier +{tags:jewellery_defense}+(86-86) to Armour +{tags:jewellery_defense}+(93-93) to Evasion Rating +{tags:jewellery_defense}+(34-34) to maximum Energy Shield +{tags:life}+(26-26) to maximum Life +{tags:jewellery_resistance}+(10-10)% to all Elemental Resistances +{tags:attack,caster,speed}(6-6)% increased Attack and Cast Speed +Maximum Quality is 200% +Corrupted ]] -- Reworked From 924d7209b7497e07ff3c271d8b8fcb2fa4ef2c59 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 13:02:10 +1100 Subject: [PATCH 27/51] Added Gamblesprint 3.23 --- src/Data/Uniques/Special/New.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index ebd4a7350a..053eec800d 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -47,6 +47,14 @@ Implicits: 1 {tags:attack,caster,speed}(6-6)% increased Attack and Cast Speed Maximum Quality is 200% Corrupted +]],[[ +Gamblesprint +Hydrascale Boots +Requires Level 59, 56 Str, 56 Dex ++(34-34) to Dexterity +(140-140)% increased Armour and Evasion ++(31-31)% to Lightning Resistance +When Hit, gain a random Movement Speed modifier from 40% reduced to 100% increased until Hit again ]] -- Reworked From a97ef1c9e39320da10e40f8a59e44f77fb7685f5 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 13:57:11 +1100 Subject: [PATCH 28/51] Update Dead Reckoning to 3.23 --- src/Data/Uniques/jewel.lua | 4 +++- src/Modules/ModParser.lua | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Data/Uniques/jewel.lua b/src/Data/Uniques/jewel.lua index beab1c1ca6..59664730ce 100644 --- a/src/Data/Uniques/jewel.lua +++ b/src/Data/Uniques/jewel.lua @@ -854,12 +854,14 @@ Source: Vendor Recipe Limited to: 1 Variant: Pre 3.0.0 Variant: Pre 3.8.0 +Variant: Pre 3.23.0 Variant: Current Radius: Medium -Minions have +(7-10)% to all Elemental Resistances +{variant:1,2,3}Minions have +(7-10)% to all Elemental Resistances {variant:1}With at least 40 Intelligence in Radius, can summon up to 3 Skeleton Mages with Summon Skeletons {variant:2}With at least 40 Intelligence in Radius, can summon up to 5 Skeleton Mages with Summon Skeletons {variant:3}With at least 40 Intelligence in Radius, can summon up to 15 Skeleton Mages with Summon Skeletons +{variant:4}Summoned Skeletons gain Added Chaos Damage equal to (20-30)% of Maximum Energy Shield on your Equipped Shield ]],[[ Fight for Survival Viridian Jewel diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 117bd6e610..4c07cf28ed 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -3668,6 +3668,11 @@ local specialModList = { ["summoned skeletons take ([%d%.]+)%% of their maximum life per second as fire damage"] = function(num) return { mod("MinionModifier", "LIST", { mod = mod("FireDegen", "BASE", 1, { type = "PercentStat", stat = "Life", percent = num }) }, { type = "SkillName", skillName = "Summon Skeleton" }) } end, ["summoned skeletons have (%d+)%% chance to wither enemies for (%d+) seconds on hit"] = { mod("ExtraSkillMod", "LIST", { mod = flag("Condition:CanWither") }, { type = "SkillName", skillName = "Summon Skeleton" }) }, ["summoned skeletons have (%d+)%% of physical damage converted to chaos damage"] = function(num) return { mod("MinionModifier", "LIST", { mod = mod("PhysicalDamageConvertToChaos", "BASE", num) }, { type = "SkillName", skillName = "Summon Skeleton" }) } end, + ["summoned skeletons gain added chaos damage equal to (%d+)%% of maximum energy shield on your equipped shield"] = function(num) return { + mod("MinionModifier", "LIST", { mod = mod("ChaosMin", "BASE", 1, { type = "PercentStat", stat = "EnergyShieldOnWeapon 2", actor = "parent", percent = num }) }), + mod("MinionModifier", "LIST", { mod = mod("ChaosMax", "BASE", 1, { type = "PercentStat", stat = "EnergyShieldOnWeapon 2", actor = "parent", percent = num }) }), + + } end, ["minions convert (%d+)%% of physical damage to fire damage per red socket"] = function(num) return { mod("MinionModifier", "LIST", { mod = mod("PhysicalDamageConvertToFire", "BASE", num) }, { type = "Multiplier", var = "RedSocketIn{SlotName}" }) } end, ["minions convert (%d+)%% of physical damage to cold damage per green socket"] = function(num) return { mod("MinionModifier", "LIST", { mod = mod("PhysicalDamageConvertToCold", "BASE", num) }, { type = "Multiplier", var = "GreenSocketIn{SlotName}" }) } end, ["minions convert (%d+)%% of physical damage to lightning damage per blue socket"] = function(num) return { mod("MinionModifier", "LIST", { mod = mod("PhysicalDamageConvertToLightning", "BASE", num) }, { type = "Multiplier", var = "BlueSocketIn{SlotName}" }) } end, From 418010898230addf2affb72f8209969222082928 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sat, 2 Dec 2023 13:59:32 +1100 Subject: [PATCH 29/51] Add Gamblesprint to config options --- src/Modules/ConfigOptions.lua | 3 +++ src/Modules/ModParser.lua | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 90e3271892..279f7e0dc2 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1398,6 +1398,9 @@ Huge sets the radius to 11. { var = "conditionHaveManaStorm", type = "check", label = "Do you have Manastorm's ^xADAA47Lightning ^7Buff?", ifFlag = "Condition:HaveManaStorm", tooltip = "This option enables Manastorm's ^xADAA47Lightning ^7Damage Buff.\n(When you cast a Spell, Sacrifice all ^x7070FFMana ^7to gain Added Maximum ^xADAA47Lightning ^7Damage\nequal to 25% of Sacrificed ^x7070FFMana ^7for 4 seconds)", apply = function(val, modList, enemyModList) modList:NewMod("Condition:SacrificeManaForLightning", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, + { var = "GamblesprintMovementSpeed", type = "list", label = "Gamblesprint Movement Speed", defaultIndex=5, list={{val=-40,label="-40%"},{val=-20,label="-20%"},{val=0,label="0%"},{val=20,label="20%"},{val=30,label="30%"},{val=40,label="40%"},{val=60,label="60%"},{val=80,label="80%"},{val=100,label="100%"}}, ifFlag = "Condition:HaveGamblesprint", tooltip = "This options sets the Movement Speed from Gamblesprint boots.", apply = function(val, modList, enemyModList) + modList:NewMod("MovementSpeed", "INC", val, "Config", { type = "Condition", var = "Combat" }) + end }, { var = "buffFanaticism", type = "check", label = "Do you have Fanaticism?", ifFlag = "Condition:CanGainFanaticism", tooltip = "This will enable the Fanaticism buff itself. (Grants 75% more cast speed, reduced skill cost, and increased area of effect)", apply = function(val, modList, enemyModList) modList:NewMod("Condition:Fanaticism", "FLAG", true, "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "CanGainFanaticism" }) end }, diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 4c07cf28ed..bb9eb98361 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4406,6 +4406,9 @@ local specialModList = { ["every 8 seconds, gain avatar of fire for 4 seconds"] = { flag("Condition:HaveVulconus"), }, + ["when hit, gain a random movement speed modifier from 40%% reduced to 100%% increased until hit again"] = { + flag("Condition:HaveGamblesprint"), + }, ["trigger socketed curse spell when you cast a curse spell, with a ([%d%.]+) second cooldown"] = { mod("ExtraSupport", "LIST", { skillId = "SupportUniqueCastCurseOnCurse", level = 1 }, { type = "SocketedIn", slotName = "{SlotName}" }), }, From 16f952a0300aaf0cb4ff0a943ef2f27cff76c04f Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 13:10:56 +1100 Subject: [PATCH 30/51] Update sources for jewels 3.23 --- src/Data/Uniques/jewel.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Data/Uniques/jewel.lua b/src/Data/Uniques/jewel.lua index 59664730ce..a447ef916b 100644 --- a/src/Data/Uniques/jewel.lua +++ b/src/Data/Uniques/jewel.lua @@ -145,7 +145,7 @@ Radius: Medium ]],[[ Endless Misery Cobalt Jewel -Source: Vendor Recipe +Source: No longer obtainable League: Heist Limited to: 1 Radius: Medium @@ -850,7 +850,6 @@ cone has a 50% chance to deal Double Damage ]],[[ Dead Reckoning Cobalt Jewel -Source: Vendor Recipe Limited to: 1 Variant: Pre 3.0.0 Variant: Pre 3.8.0 @@ -1060,7 +1059,7 @@ With at least 40 Strength in Radius, 20% increased Rarity of Items dropped by En ]],[[ Spirit Guards Viridian Jewel -Source: Vendor Recipe +Source: No longer obtainable Variant: Pre 2.6.0 Variant: Pre 3.20.0 Variant: Current @@ -1516,7 +1515,7 @@ Corrupted ]],[[ Soul's Wick Cobalt Jewel -Source: Use currency{Vaal Orb} on normal{Cobalt Jewel} +Source: No longer obtainable Variant: Pre 3.20.0 Variant: Current Limited to: 1 From 30076c54ce117989273741c80a1f39244518ae81 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 13:15:02 +1100 Subject: [PATCH 31/51] Remove sources for metamorph uniques moved to core drop pool --- src/Data/Uniques/amulet.lua | 1 - src/Data/Uniques/belt.lua | 1 - src/Data/Uniques/ring.lua | 2 -- 3 files changed, 4 deletions(-) diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index 3083cc4053..fe34216459 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -493,7 +493,6 @@ Implicits: 1 Fury Valve Turquoise Amulet League: Metamorph -Source: Drops from unique{Metamorph} in normal{Tane's Laboratory} Requires Level 40 Implicits: 1 {tags:jewellery_attribute}+(16-24) to Dexterity and Intelligence diff --git a/src/Data/Uniques/belt.lua b/src/Data/Uniques/belt.lua index 5c75db17cc..726a6554be 100644 --- a/src/Data/Uniques/belt.lua +++ b/src/Data/Uniques/belt.lua @@ -577,7 +577,6 @@ Implicits: 1 Mother's Embrace Heavy Belt League: Metamorph -Source: Drops from unique{Metamorph} in normal{Tane's Laboratory} LevelReq: 40 Implicits: 1 {tags:jewellery_attribute}+(25-35) to Strength diff --git a/src/Data/Uniques/ring.lua b/src/Data/Uniques/ring.lua index cb477fbfb6..d78f9356d7 100644 --- a/src/Data/Uniques/ring.lua +++ b/src/Data/Uniques/ring.lua @@ -48,7 +48,6 @@ Implicits: 1 Astral Projector Topaz Ring League: Metamorph -Source: Drops from unique{Metamorph} in normal{Tane's Laboratory} Requires Level 40 Implicits: 1 {tags:jewellery_resistance}+(20-30)% to Lightning Resistance @@ -1423,7 +1422,6 @@ Implicits: 1 Warrior's Legacy Ruby Ring League: Metamorph -Source: Drops from unique{Metamorph} in normal{Tane's Laboratory} Requires Level 16 Implicits: 1 {tags:jewellery_resistance}+(20-30)% to Fire Resistance From dbc349111b59d2386208eaad61c6bd3049194f11 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 15:45:30 +1100 Subject: [PATCH 32/51] Add Pragmatism 3.23 --- src/Data/Uniques/Special/New.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 053eec800d..481437fd07 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -55,6 +55,14 @@ Requires Level 59, 56 Str, 56 Dex (140-140)% increased Armour and Evasion +(31-31)% to Lightning Resistance When Hit, gain a random Movement Speed modifier from 40% reduced to 100% increased until Hit again +]],[[ +Pragmatism +Colosseum Plate +Implicits: 0 ++12 to Level of Socketed Skill Gems +(100-100)% increased Armour ++(84-84) to maximum Mana +-2 to Level of Socketed Skill Gems per Socketed Gem ]] -- Reworked From eefc541a3e608f1386f78c7da31fb50b8153fcf8 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 15:45:48 +1100 Subject: [PATCH 33/51] Add support for per socketed gem multiplier --- src/Modules/CalcSetup.lua | 16 ++++++++++++++++ src/Modules/ModParser.lua | 2 ++ 2 files changed, 18 insertions(+) diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index bb2db8819a..c766a115e2 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -298,6 +298,21 @@ local function applySocketMods(env, gem, groupCfg, socketNum, modSource) end end +local function calcSocketStats(env, build) + for _, socketGroup in pairs(build.skillsTab.socketGroupList) do + if socketGroup.slot then + local socketedGems = 0 + for _, gem in pairs(socketGroup.gemList) do + if gem.enabled then + socketedGems = socketedGems + 1 + end + end + socketedGems = math.min(socketedGems, #build.itemsTab.items[build.itemsTab.activeItemSet[socketGroup.slot].selItemId].sockets) + env.modDB:NewMod("Multiplier:SocketedGemsIn"..socketGroup.slot, "BASE", socketedGems) + end + end +end + -- Initialise environment: -- 1. Initialises the player and enemy modifier databases -- 2. Merges modifiers for all items @@ -475,6 +490,7 @@ function calcs.initEnv(build, mode, override, specEnv) modDB:NewMod("PerAfflictionAilmentDamage", "BASE", 8, "Base") modDB:NewMod("PerAfflictionNonDamageEffect", "BASE", 8, "Base") modDB:NewMod("PerAbsorptionElementalEnergyShieldRecoup", "BASE", 12, "Base") + calcSocketStats(env, build) -- Add bandit mods if env.configInput.bandit == "Alira" then diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index bb9eb98361..b04eb4dc15 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -1272,6 +1272,7 @@ local modTagList = { ["per green socket"] = { tag = { type = "Multiplier", var = "GreenSocketIn{SlotName}" } }, ["per blue socket"] = { tag = { type = "Multiplier", var = "BlueSocketIn{SlotName}" } }, ["per white socket"] = { tag = { type = "Multiplier", var = "WhiteSocketIn{SlotName}" } }, + ["per socketed gem"] = { tag = { type = "Multiplier", var = "SocketedGemsIn{SlotName}"}}, ["for each impale on enemy"] = { tag = { type = "Multiplier", var = "ImpaleStacks", actor = "enemy" } }, ["per impale on enemy"] = { tag = { type = "Multiplier", var = "ImpaleStacks", actor = "enemy" } }, ["per animated weapon"] = { tag = { type = "Multiplier", var = "AnimatedWeapon", actor = "parent" } }, @@ -2627,6 +2628,7 @@ local specialModList = { if type == "" then type = "all" end return { mod("GemProperty", "LIST", { keyword = type, key = property, value = num }, { type = "SocketedIn", slotName = "{SlotName}" }) } end, + ["([%+%-]%d+) to level of socketed skill gems per socketed gem"] = function(num) return { mod("GemProperty", "LIST", { keyword = "grants_active_skill", key = "level", value = num }, { type = "SocketedIn", slotName = "{SlotName}" }, { type = "Multiplier", var="SocketedGemsIn{SlotName}"}) } end, ["([%+%-]%d+)%% to quality of all skill gems"] = function(num) return { mod("GemProperty", "LIST", { keyword = "grants_active_skill", key = "quality", value = num }) } end, ["([%+%-]%d+) to level of socketed active skill gems per (%d+) player levels"] = function(num, _, div) return { mod("GemProperty", "LIST", { keyword = "grants_active_skill", key = "level", value = num }, { type = "SocketedIn", slotName = "{SlotName}" }, { type = "Multiplier", var = "Level", div = tonumber(div) }) } end, ["([%+%-]%d+) to level of socketed skill gems per (%d+) player levels"] = function(num, _, div) return { mod("GemProperty", "LIST", { keyword = "grants_active_skill", key = "level", value = num }, { type = "SocketedIn", slotName = "{SlotName}" }, { type = "Multiplier", var = "Level", div = tonumber(div) }) } end, From 4a0944dc5d98af5868f07dfd3fc38e5ff0120b15 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 19:27:40 +1100 Subject: [PATCH 34/51] Add The Untouched Soul 3.23 --- src/Data/Uniques/Special/New.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 481437fd07..1cfc581f96 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -63,6 +63,16 @@ Implicits: 0 (100-100)% increased Armour +(84-84) to maximum Mana -2 to Level of Socketed Skill Gems per Socketed Gem +]],[[ +The Untouched Soul +Gold Amulet +Requires Level 48 +Implicits: 1 +(12-20)% increased Rarity of Items found ++40 to maximum Life for each Empty Red Socket on any Equipped Item ++225 to Accuracy Rating for each Empty Green Socket on any Equipped Item ++40 to maximum Mana for each Empty Blue Socket on any Equipped Item ++18 to all Elemental Resistances for each Empty White Socket on any Equipped Item ]] -- Reworked From 9fb58b7a0f111a338f7e1522f915504790398875 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 19:49:06 +1100 Subject: [PATCH 35/51] Fix socket count logic and add Oath of Maji Ascendancy support --- src/Modules/CalcSetup.lua | 28 ++++++++++++++++++++-------- src/Modules/ModParser.lua | 5 +++++ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index c766a115e2..fd3a51cbc5 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -299,17 +299,29 @@ local function applySocketMods(env, gem, groupCfg, socketNum, modSource) end local function calcSocketStats(env, build) - for _, socketGroup in pairs(build.skillsTab.socketGroupList) do - if socketGroup.slot then - local socketedGems = 0 - for _, gem in pairs(socketGroup.gemList) do - if gem.enabled then - socketedGems = socketedGems + 1 + local activeItemSlots + if env.build.itemsTab.activeItemSet.useSecondWeaponSet then + activeItemSlots = {"Weapon 1 Swap", "Weapon 2 Swap", "Helmet", "Gloves", "Boots", "Body Armour", "Amulet", "Ring 1", "Ring 2"} + else + activeItemSlots = {"Weapon 1", "Weapon 2", "Helmet", "Gloves", "Boots", "Body Armour", "Amulet", "Ring 1", "Ring 2"} + end + for _, slot in pairs(activeItemSlots) do + local slotSocketsCount = 0 + local socketedGems = 0 + local item = build.itemsTab.items[build.itemsTab.activeItemSet[slot].selItemId] + if item then + slotSocketsCount = #item.sockets + end + for _, socketGroup in pairs(build.skillsTab.socketGroupList) do + if (socketGroup.enabled and socketGroup.slot and socketGroup.slot == slot and socketGroup.gemList) then + for _, gem in pairs(socketGroup.gemList) do + if (gem.gemData and gem.enabled) then + socketedGems = socketedGems + 1 + end end end - socketedGems = math.min(socketedGems, #build.itemsTab.items[build.itemsTab.activeItemSet[socketGroup.slot].selItemId].sockets) - env.modDB:NewMod("Multiplier:SocketedGemsIn"..socketGroup.slot, "BASE", socketedGems) end + env.modDB:NewMod("Multiplier:SocketedGemsIn"..slot, "BASE", math.min(slotSocketsCount, socketedGems)) end end diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index b04eb4dc15..1cb8cb921e 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -2558,6 +2558,11 @@ local specialModList = { mod("DamageTakenOverTime", "MORE", -num, { type = "Condition", var = "HeartstopperDOT" }), mod("DamageTakenOverTime", "MORE", -num * tonumber(duration) / 10, { type = "Condition", var = "HeartstopperAVERAGE" }) } end, + -- Oath of the Maji + ["defences from equipped body armour are doubled if it has no socketed gems"] = { flag("Unbreakable", { type = "MultiplierThreshold", var = "SocketedGemsInBody Armour", threshold = 0, upper = true }) }, + ["([%+%-]%d+)%% to all elemental resistances if you have an equipped helmet with no socketed gems"] = function(num) return { mod("ElementalResist", "BASE", num, { type = "MultiplierThreshold", var = "SocketedGemsInHelmet", threshold = 0, upper = true}) } end, + ["(%d+)%% increased maximum life if you have equipped gloves with no socketed gems"] = function(num) return { mod("Life", "INC", num, { type = "MultiplierThreshold", var = "SocketedGemsInGloves", threshold = 0, upper = true}) } end, + ["(%d+)%% increased movement speed if you have equipped boots with no socketed gems"] = function(num) return { mod("MovementSpeed", "INC", num, { type = "MultiplierThreshold", var = "SocketedGemsInBoots", threshold = 0, upper = true}) } end, -- Item local modifiers ["has no sockets"] = { flag("NoSockets") }, ["reflects your other ring"] = { From 23b9a5becdef244d537d31c51d60af3921de0bfb Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 20:13:16 +1100 Subject: [PATCH 36/51] Add support for The Untouched Soul empty socket calculations --- src/Modules/CalcSetup.lua | 22 ++++++++++++++++++---- src/Modules/ModParser.lua | 4 ++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index fd3a51cbc5..02d2450049 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -305,13 +305,11 @@ local function calcSocketStats(env, build) else activeItemSlots = {"Weapon 1", "Weapon 2", "Helmet", "Gloves", "Boots", "Body Armour", "Amulet", "Ring 1", "Ring 2"} end + local totalEmptySocketsCount = { R = 0, G = 0, B = 0, W = 0} for _, slot in pairs(activeItemSlots) do local slotSocketsCount = 0 local socketedGems = 0 - local item = build.itemsTab.items[build.itemsTab.activeItemSet[slot].selItemId] - if item then - slotSocketsCount = #item.sockets - end + -- loop through socket groups to calculate number of socketed gems for _, socketGroup in pairs(build.skillsTab.socketGroupList) do if (socketGroup.enabled and socketGroup.slot and socketGroup.slot == slot and socketGroup.gemList) then for _, gem in pairs(socketGroup.gemList) do @@ -321,8 +319,24 @@ local function calcSocketStats(env, build) end end end + local item = build.itemsTab.items[build.itemsTab.activeItemSet[slot].selItemId] + if item then + slotSocketsCount = #item.sockets + local emptySockets = slotSocketsCount - socketedGems + if emptySockets > 0 then + for i, socket in ipairs(item.sockets) do + if slotSocketsCount - i < emptySockets then + totalEmptySocketsCount[socket.color] = totalEmptySocketsCount[socket.color] + 1 + end + end + end + end env.modDB:NewMod("Multiplier:SocketedGemsIn"..slot, "BASE", math.min(slotSocketsCount, socketedGems)) end + env.modDB:NewMod("Multiplier:EmptyRedSocketsInAnySlot", "BASE", totalEmptySocketsCount.R) + env.modDB:NewMod("Multiplier:EmptyGreenSocketsInAnySlot", "BASE", totalEmptySocketsCount.G) + env.modDB:NewMod("Multiplier:EmptyBlueSocketsInAnySlot", "BASE", totalEmptySocketsCount.B) + env.modDB:NewMod("Multiplier:EmptyWhiteSocketsInAnySlot", "BASE", totalEmptySocketsCount.W) end -- Initialise environment: diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 1cb8cb921e..86c61fa243 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -1272,6 +1272,10 @@ local modTagList = { ["per green socket"] = { tag = { type = "Multiplier", var = "GreenSocketIn{SlotName}" } }, ["per blue socket"] = { tag = { type = "Multiplier", var = "BlueSocketIn{SlotName}" } }, ["per white socket"] = { tag = { type = "Multiplier", var = "WhiteSocketIn{SlotName}" } }, + ["for each empty red socket on any equipped item"] = { tag = { type = "Multiplier", var = "EmptyRedSocketsInAnySlot" } }, + ["for each empty green socket on any equipped item"] = { tag = { type = "Multiplier", var = "EmptyGreenSocketsInAnySlot" } }, + ["for each empty blue socket on any equipped item"] = { tag = { type = "Multiplier", var = "EmptyBlueSocketsInAnySlot" } }, + ["for each empty white socket on any equipped item"] = { tag = { type = "Multiplier", var = "EmptyWhiteSocketsInAnySlot" } }, ["per socketed gem"] = { tag = { type = "Multiplier", var = "SocketedGemsIn{SlotName}"}}, ["for each impale on enemy"] = { tag = { type = "Multiplier", var = "ImpaleStacks", actor = "enemy" } }, ["per impale on enemy"] = { tag = { type = "Multiplier", var = "ImpaleStacks", actor = "enemy" } }, From ea77e3ba7eb543345c43e7dd9e8f696289275c26 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 22:22:14 +1100 Subject: [PATCH 37/51] Add support The Trickster's Smile 3.23 --- src/Data/Uniques/Special/New.lua | 14 ++++++++++++++ src/Modules/ConfigOptions.lua | 9 +++++++++ src/Modules/ModParser.lua | 1 + 3 files changed, 24 insertions(+) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 1cfc581f96..4916145a6e 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -32,6 +32,7 @@ Your Maximum Endurance Charges is equal to your Maximum Frenzy Charges ]],[[ Ixchel's Temptation Gold Ring +League: Affliction Requires Level 20 Implicits: 1 (6-15)% increased Rarity of Items found @@ -50,6 +51,7 @@ Corrupted ]],[[ Gamblesprint Hydrascale Boots +League: Affliction Requires Level 59, 56 Str, 56 Dex +(34-34) to Dexterity (140-140)% increased Armour and Evasion @@ -58,6 +60,7 @@ When Hit, gain a random Movement Speed modifier from 40% reduced to 100% increas ]],[[ Pragmatism Colosseum Plate +League: Affliction Implicits: 0 +12 to Level of Socketed Skill Gems (100-100)% increased Armour @@ -66,6 +69,7 @@ Implicits: 0 ]],[[ The Untouched Soul Gold Amulet +League: Affliction Requires Level 48 Implicits: 1 (12-20)% increased Rarity of Items found @@ -73,6 +77,16 @@ Implicits: 1 +225 to Accuracy Rating for each Empty Green Socket on any Equipped Item +40 to maximum Mana for each Empty Blue Socket on any Equipped Item +18 to all Elemental Resistances for each Empty White Socket on any Equipped Item +]],[[ +The Trickster's Smile +Visored Sallet +League: Affliction +Implicits: 0 +(75-75)% increased Armour and Evasion +Reflects 100 Cold Damage to Melee Attackers +Reflects 100 Fire Damage to Melee Attackers +Reflects 100 Lightning Damage to Melee Attackers +When an Enemy Hit deals Elemental Damage to you, their Resistance to those Elements becomes zero for 4 seconds ]] -- Reworked diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 279f7e0dc2..9f30cd2ac8 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1647,6 +1647,15 @@ Huge sets the radius to 11. { var = "conditionBetweenYouAndLinkedTarget", type = "check", label = "Is the enemy in your Link beams?", ifEnemyCond = "BetweenYouAndLinkedTarget", tooltip = "This option sets whether an enemy is between you and your linked target.", apply = function(val, modList, enemyModList) enemyModList:NewMod("Condition:BetweenYouAndLinkedTarget", "FLAG", true, "Config", { type = "Condition", var = "Effective" }) end }, + { var = "conditionEnemyFireResZero", type = "check", label = "Enemy hit you with ^xB97123Fire Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with Fire Damage in the last 4 seconds.", apply = function(val, modList, enemyModList) + enemyModList:NewMod("FireResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) + end }, + { var = "conditionEnemyColdResZero", type = "check", label = "Enemy hit you with ^x3F6DB3Cold Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with Cold Damage in the last 4 seconds.", apply = function(val, modList, enemyModList) + enemyModList:NewMod("ColdResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) + end }, + { var = "conditionEnemyLightningResZero", type = "check", label = "Enemy hit you with ^xADAA47Light. Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with Lightning Damage in the last 4 seconds.", apply = function(val, modList, enemyModList) + enemyModList:NewMod("LightningResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) + end }, -- Section: Enemy Stats { section = "Enemy Stats", col = 3 }, { var = "enemyLevel", type = "count", label = "Enemy Level:", tooltip = "This overrides the default enemy level used to estimate your hit and ^x33FF77evade ^7chance.\n\nThe default level for normal enemies and standard bosses is 83.\nTheir default level is capped by your character level.\n\nThe default level for pinnacle bosses is 84, and the default level for uber pinnacle bosses is 85.\nTheir default level is not capped by your character level." }, diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 86c61fa243..05e8dafbb0 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4618,6 +4618,7 @@ local specialModList = { ["volatile dead and cremation penetrate (%d+)%% fire resistance per (%d+) dexterity"] = function(inc, _, num) return { mod("FirePenetration", "BASE", inc, { type = "PerStat", stat = "Dex", div = num }, { type = "SkillName", skillNameList = { "Volatile Dead", "Cremation" } }) } end, ["regenerate (%d+) mana per second while any enemy is in your righteous fire or scorching ray"] = function( num) return { mod("ManaRegen", "BASE", num, { type = "Condition", var = "InRFOrScorchingRay" }) } end, ["%+(%d+)%% to wave of conviction damage over time multiplier per ([%d%.]+) seconds of duration expired"] = function(num) return { mod("WaveOfConvictionDurationDotMulti", "INC", num) } end, + ["when an enemy hit deals elemental damage to you, their resistance to those elements becomes zero for 4 seconds"] = { flag("Condition:HaveTrickstersSmile"), }, -- Pantheon: Soul of Tukohama support ["while stationary, gain ([%d%.]+)%% of life regenerated per second every second, up to a maximum of (%d+)%%"] = function(num, _, limit) return { mod("LifeRegenPercent", "BASE", num, { type = "Multiplier", var = "StationarySeconds", limit = tonumber(limit), limitTotal = true }, { type = "Condition", var = "Stationary" }), From 8af178aa743309a8f5f698054d1984c03050e340 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 22:44:05 +1100 Subject: [PATCH 38/51] Remove League on Metamorph Uniques going Core --- src/Data/Uniques/amulet.lua | 1 - src/Data/Uniques/belt.lua | 1 - src/Data/Uniques/ring.lua | 2 -- 3 files changed, 4 deletions(-) diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index fe34216459..91227df303 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -492,7 +492,6 @@ Implicits: 1 ]],[[ Fury Valve Turquoise Amulet -League: Metamorph Requires Level 40 Implicits: 1 {tags:jewellery_attribute}+(16-24) to Dexterity and Intelligence diff --git a/src/Data/Uniques/belt.lua b/src/Data/Uniques/belt.lua index 726a6554be..2d2be4877b 100644 --- a/src/Data/Uniques/belt.lua +++ b/src/Data/Uniques/belt.lua @@ -576,7 +576,6 @@ Implicits: 1 ]],[[ Mother's Embrace Heavy Belt -League: Metamorph LevelReq: 40 Implicits: 1 {tags:jewellery_attribute}+(25-35) to Strength diff --git a/src/Data/Uniques/ring.lua b/src/Data/Uniques/ring.lua index d78f9356d7..07f920334f 100644 --- a/src/Data/Uniques/ring.lua +++ b/src/Data/Uniques/ring.lua @@ -47,7 +47,6 @@ Implicits: 1 ]],[[ Astral Projector Topaz Ring -League: Metamorph Requires Level 40 Implicits: 1 {tags:jewellery_resistance}+(20-30)% to Lightning Resistance @@ -1421,7 +1420,6 @@ Implicits: 1 ]],[[ Warrior's Legacy Ruby Ring -League: Metamorph Requires Level 16 Implicits: 1 {tags:jewellery_resistance}+(20-30)% to Fire Resistance From c30859b1f307caecece992578b510bca7e474655 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Sun, 3 Dec 2023 22:49:37 +1100 Subject: [PATCH 39/51] Remove League tag on Ancestor uniques going core --- src/Data/Uniques/amulet.lua | 2 -- src/Data/Uniques/belt.lua | 2 -- src/Data/Uniques/body.lua | 1 - src/Data/Uniques/boots.lua | 1 - src/Data/Uniques/helmet.lua | 1 - src/Data/Uniques/mace.lua | 1 - src/Data/Uniques/quiver.lua | 1 - src/Data/Uniques/ring.lua | 1 - src/Data/Uniques/shield.lua | 1 - src/Data/Uniques/sword.lua | 1 - 10 files changed, 12 deletions(-) diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index 91227df303..b81b3a2950 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -322,7 +322,6 @@ Implicits: 1 ]],[[ Defiance of Destiny Paua Amulet -League: Ancestor LevelReq: 49 Implicits: 1 {tags:mana}(20–30)% increased Mana Regeneration Rate @@ -637,7 +636,6 @@ Your Hits can't be Evaded by Blinded Enemies ]],[[ Ikiaho's Promise Coral Amulet -League: Ancestor LevelReq: 30 Implicits: 1 {tags:life}Regenerate (2–4) Life per second diff --git a/src/Data/Uniques/belt.lua b/src/Data/Uniques/belt.lua index 2d2be4877b..87e6cedd80 100644 --- a/src/Data/Uniques/belt.lua +++ b/src/Data/Uniques/belt.lua @@ -136,7 +136,6 @@ Rampage ]],[[ Bound Fate Cloth Belt -League: Ancestor LevelReq: 16 Implicits: 1 (15-25)% increased Stun and Block Recovery @@ -478,7 +477,6 @@ Implicits: 1 ]],[[ Kaom's Binding Heavy Belt -League: Ancestor LevelReq: 56 Implicits: 1 {tags:jewellery_attribute}+(30–40) to Strength diff --git a/src/Data/Uniques/body.lua b/src/Data/Uniques/body.lua index e6c3cf6a34..901cdfb0f5 100644 --- a/src/Data/Uniques/body.lua +++ b/src/Data/Uniques/body.lua @@ -192,7 +192,6 @@ Chaos Damage taken does not bypass Energy Shield ]],[[ Utula's Hunger Majestic Plate -League: Ancestor Requires Level 53, 145 Str (60-100)% increased Armour Recover (1-3)% of Life on Kill diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index 2c611f3cc4..e561ea0cf6 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -98,7 +98,6 @@ Necrotic Footprints ]],[[ Kahuturoa's Certainty Ancient Greaves -League: Ancestor Requires Level 46, 82 Str (100–150)% increased Armour 5% reduced Movement Speed diff --git a/src/Data/Uniques/helmet.lua b/src/Data/Uniques/helmet.lua index 96733fcd40..3bcfe52e9f 100644 --- a/src/Data/Uniques/helmet.lua +++ b/src/Data/Uniques/helmet.lua @@ -1201,7 +1201,6 @@ Variant: Current [[ Akoya's Gaze Regicide Mask -League: Ancestor Requires Level 52, 58 Dex, 58 Int +100 Strength Requirement (20–25)% increased Warcry Speed diff --git a/src/Data/Uniques/mace.lua b/src/Data/Uniques/mace.lua index 349f6fb648..f247f80c01 100644 --- a/src/Data/Uniques/mace.lua +++ b/src/Data/Uniques/mace.lua @@ -453,7 +453,6 @@ Raised Zombies have Avatar of Fire ]],[[ Maata's Teaching Karui Sceptre -League: Ancestor Requires Level 56, 96 Str, 96 Int Implicits: 1 +(30-40) to Intelligence diff --git a/src/Data/Uniques/quiver.lua b/src/Data/Uniques/quiver.lua index 86d3125f67..ef7ef9a65a 100644 --- a/src/Data/Uniques/quiver.lua +++ b/src/Data/Uniques/quiver.lua @@ -5,7 +5,6 @@ return { [[ Ahuana's Bite Sharktooth Arrow Quiver -League: Ancestor LevelReq: 56 Implicits: 1 Gain (6–8) Life per Enemy Hit with Attacks diff --git a/src/Data/Uniques/ring.lua b/src/Data/Uniques/ring.lua index 07f920334f..18d5162e7d 100644 --- a/src/Data/Uniques/ring.lua +++ b/src/Data/Uniques/ring.lua @@ -1129,7 +1129,6 @@ Immune to Chill ]],[[ Tawhanuku's Timing Moonstone Ring -League: Ancestor {tags:jewellery_defense}+(15–25) to maximum Energy Shield {tags:caster}(30–40)% increased Spell Damage {tags:mana}+(60–80) to maximum Mana diff --git a/src/Data/Uniques/shield.lua b/src/Data/Uniques/shield.lua index 4811b9d6f2..0dabd98449 100644 --- a/src/Data/Uniques/shield.lua +++ b/src/Data/Uniques/shield.lua @@ -334,7 +334,6 @@ Reflects (25-50) Cold Damage to Melee Attackers ]],[[ Kiloava's Bluster Ironwood Buckler -League: Ancestor Requires Level 57, 137 Dex Implicits: 1 3% increased Movement Speed diff --git a/src/Data/Uniques/sword.lua b/src/Data/Uniques/sword.lua index ca1f3a161d..fd2f400698 100644 --- a/src/Data/Uniques/sword.lua +++ b/src/Data/Uniques/sword.lua @@ -877,7 +877,6 @@ Minions have (80-100)% increased Movement Speed ]],[[ Rakiata's Dance Engraved Greatsword -League: Ancestor Requires Level 48, 91 Str, 76 Dex Implicits: 1 60% increased Global Accuracy Rating From 07370e533b830aa104316c908d6a3cdf1267f0e7 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Mon, 4 Dec 2023 09:41:05 +1100 Subject: [PATCH 40/51] Fix empty sockets calculation with respect to abyssal sockets --- src/Modules/CalcSetup.lua | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index 02d2450049..f12a088e7d 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -307,7 +307,7 @@ local function calcSocketStats(env, build) end local totalEmptySocketsCount = { R = 0, G = 0, B = 0, W = 0} for _, slot in pairs(activeItemSlots) do - local slotSocketsCount = 0 + local slotGemSocketsCount = 0 local socketedGems = 0 -- loop through socket groups to calculate number of socketed gems for _, socketGroup in pairs(build.skillsTab.socketGroupList) do @@ -321,17 +321,18 @@ local function calcSocketStats(env, build) end local item = build.itemsTab.items[build.itemsTab.activeItemSet[slot].selItemId] if item then - slotSocketsCount = #item.sockets - local emptySockets = slotSocketsCount - socketedGems - if emptySockets > 0 then - for i, socket in ipairs(item.sockets) do - if slotSocketsCount - i < emptySockets then + for i, socket in ipairs(item.sockets) do + -- check socket color to ignore abyssal sockets + if socket.color == 'R' or socket.color == 'B' or socket.color == 'G' or socket.color == 'W' then + slotGemSocketsCount = slotGemSocketsCount + 1 + -- loop through sockets indexes that are greater than number of socketed gems + if i > socketedGems then totalEmptySocketsCount[socket.color] = totalEmptySocketsCount[socket.color] + 1 end end end end - env.modDB:NewMod("Multiplier:SocketedGemsIn"..slot, "BASE", math.min(slotSocketsCount, socketedGems)) + env.modDB:NewMod("Multiplier:SocketedGemsIn"..slot, "BASE", math.min(slotGemSocketsCount, socketedGems)) end env.modDB:NewMod("Multiplier:EmptyRedSocketsInAnySlot", "BASE", totalEmptySocketsCount.R) env.modDB:NewMod("Multiplier:EmptyGreenSocketsInAnySlot", "BASE", totalEmptySocketsCount.G) From 3c27fe78ab41a000448867cfca738b5a7b76ee1a Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Mon, 4 Dec 2023 10:23:09 +1100 Subject: [PATCH 41/51] Move socket calculations into appropriate item calculations section --- src/Modules/CalcSetup.lua | 72 ++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 43 deletions(-) diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index f12a088e7d..077f4bbd9a 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -298,48 +298,6 @@ local function applySocketMods(env, gem, groupCfg, socketNum, modSource) end end -local function calcSocketStats(env, build) - local activeItemSlots - if env.build.itemsTab.activeItemSet.useSecondWeaponSet then - activeItemSlots = {"Weapon 1 Swap", "Weapon 2 Swap", "Helmet", "Gloves", "Boots", "Body Armour", "Amulet", "Ring 1", "Ring 2"} - else - activeItemSlots = {"Weapon 1", "Weapon 2", "Helmet", "Gloves", "Boots", "Body Armour", "Amulet", "Ring 1", "Ring 2"} - end - local totalEmptySocketsCount = { R = 0, G = 0, B = 0, W = 0} - for _, slot in pairs(activeItemSlots) do - local slotGemSocketsCount = 0 - local socketedGems = 0 - -- loop through socket groups to calculate number of socketed gems - for _, socketGroup in pairs(build.skillsTab.socketGroupList) do - if (socketGroup.enabled and socketGroup.slot and socketGroup.slot == slot and socketGroup.gemList) then - for _, gem in pairs(socketGroup.gemList) do - if (gem.gemData and gem.enabled) then - socketedGems = socketedGems + 1 - end - end - end - end - local item = build.itemsTab.items[build.itemsTab.activeItemSet[slot].selItemId] - if item then - for i, socket in ipairs(item.sockets) do - -- check socket color to ignore abyssal sockets - if socket.color == 'R' or socket.color == 'B' or socket.color == 'G' or socket.color == 'W' then - slotGemSocketsCount = slotGemSocketsCount + 1 - -- loop through sockets indexes that are greater than number of socketed gems - if i > socketedGems then - totalEmptySocketsCount[socket.color] = totalEmptySocketsCount[socket.color] + 1 - end - end - end - end - env.modDB:NewMod("Multiplier:SocketedGemsIn"..slot, "BASE", math.min(slotGemSocketsCount, socketedGems)) - end - env.modDB:NewMod("Multiplier:EmptyRedSocketsInAnySlot", "BASE", totalEmptySocketsCount.R) - env.modDB:NewMod("Multiplier:EmptyGreenSocketsInAnySlot", "BASE", totalEmptySocketsCount.G) - env.modDB:NewMod("Multiplier:EmptyBlueSocketsInAnySlot", "BASE", totalEmptySocketsCount.B) - env.modDB:NewMod("Multiplier:EmptyWhiteSocketsInAnySlot", "BASE", totalEmptySocketsCount.W) -end - -- Initialise environment: -- 1. Initialises the player and enemy modifier databases -- 2. Merges modifiers for all items @@ -517,7 +475,6 @@ function calcs.initEnv(build, mode, override, specEnv) modDB:NewMod("PerAfflictionAilmentDamage", "BASE", 8, "Base") modDB:NewMod("PerAfflictionNonDamageEffect", "BASE", 8, "Base") modDB:NewMod("PerAbsorptionElementalEnergyShieldRecoup", "BASE", 12, "Base") - calcSocketStats(env, build) -- Add bandit mods if env.configInput.bandit == "Alira" then @@ -1040,6 +997,35 @@ function calcs.initEnv(build, mode, override, specEnv) env.itemModDB.multipliers.ShaperOrElderItem = (env.itemModDB.multipliers.ShaperOrElderItem or 0) + 1 end env.itemModDB.multipliers[item.type:gsub(" ", ""):gsub(".+Handed", "").."Item"] = (env.itemModDB.multipliers[item.type:gsub(" ", ""):gsub(".+Handed", "").."Item"] or 0) + 1 + -- Update socket counts + local slotEmptySocketsCount = { R = 0, G = 0, B = 0, W = 0} + local slotGemSocketsCount = 0 + local socketedGems = 0 + -- loop through socket groups to calculate number of socketed gems + for _, socketGroup in pairs(env.build.skillsTab.socketGroupList) do + if (socketGroup.enabled and socketGroup.slot and socketGroup.slot == slotName and socketGroup.gemList) then + for _, gem in pairs(socketGroup.gemList) do + if (gem.gemData and gem.enabled) then + socketedGems = socketedGems + 1 + end + end + end + end + for i, socket in ipairs(item.sockets) do + -- check socket color to ignore abyssal sockets + if socket.color == 'R' or socket.color == 'B' or socket.color == 'G' or socket.color == 'W' then + slotGemSocketsCount = slotGemSocketsCount + 1 + -- loop through sockets indexes that are greater than number of socketed gems + if i > socketedGems then + slotEmptySocketsCount[socket.color] = slotEmptySocketsCount[socket.color] + 1 + end + end + end + env.itemModDB.multipliers["SocketedGemsIn"..slotName] = (env.itemModDB.multipliers["SocketedGemsIn"..slotName] or 0) + math.min(slotGemSocketsCount, socketedGems) + env.itemModDB.multipliers.EmptyRedSocketsInAnySlot = (env.itemModDB.multipliers.EmptyRedSocketsInAnySlot or 0) + slotEmptySocketsCount.R + env.itemModDB.multipliers.EmptyGreenSocketsInAnySlot = (env.itemModDB.multipliers.EmptyGreenSocketsInAnySlot or 0) + slotEmptySocketsCount.G + env.itemModDB.multipliers.EmptyBlueSocketsInAnySlot = (env.itemModDB.multipliers.EmptyBlueSocketsInAnySlot or 0) + slotEmptySocketsCount.B + env.itemModDB.multipliers.EmptyWhiteSocketsInAnySlot = (env.itemModDB.multipliers.EmptyWhiteSocketsInAnySlot or 0) + slotEmptySocketsCount.W end end end From 533c779d65ab0d3148eb44af08f297eb4fd4df2b Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Mon, 4 Dec 2023 14:44:15 +1100 Subject: [PATCH 42/51] Add config options for Empty Sockets override --- src/Modules/CalcSetup.lua | 11 ++++++++--- src/Modules/ConfigOptions.lua | 4 ++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index 077f4bbd9a..42d8c22a95 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -997,11 +997,11 @@ function calcs.initEnv(build, mode, override, specEnv) env.itemModDB.multipliers.ShaperOrElderItem = (env.itemModDB.multipliers.ShaperOrElderItem or 0) + 1 end env.itemModDB.multipliers[item.type:gsub(" ", ""):gsub(".+Handed", "").."Item"] = (env.itemModDB.multipliers[item.type:gsub(" ", ""):gsub(".+Handed", "").."Item"] or 0) + 1 - -- Update socket counts + -- Calculate socket counts local slotEmptySocketsCount = { R = 0, G = 0, B = 0, W = 0} local slotGemSocketsCount = 0 local socketedGems = 0 - -- loop through socket groups to calculate number of socketed gems + -- Loop through socket groups to calculate number of socketed gems for _, socketGroup in pairs(env.build.skillsTab.socketGroupList) do if (socketGroup.enabled and socketGroup.slot and socketGroup.slot == slotName and socketGroup.gemList) then for _, gem in pairs(socketGroup.gemList) do @@ -1012,7 +1012,7 @@ function calcs.initEnv(build, mode, override, specEnv) end end for i, socket in ipairs(item.sockets) do - -- check socket color to ignore abyssal sockets + -- Check socket color to ignore abyssal sockets if socket.color == 'R' or socket.color == 'B' or socket.color == 'G' or socket.color == 'W' then slotGemSocketsCount = slotGemSocketsCount + 1 -- loop through sockets indexes that are greater than number of socketed gems @@ -1029,6 +1029,11 @@ function calcs.initEnv(build, mode, override, specEnv) end end end + -- Override empty socket calculation if set in config + env.itemModDB.multipliers.EmptyRedSocketsInAnySlot = (env.configInput.overrideEmptyRedSockets or env.itemModDB.multipliers.EmptyRedSocketsInAnySlot) + env.itemModDB.multipliers.EmptyGreenSocketsInAnySlot = (env.configInput.overrideEmptyGreenSockets or env.itemModDB.multipliers.EmptyGreenSocketsInAnySlot) + env.itemModDB.multipliers.EmptyBlueSocketsInAnySlot = (env.configInput.overrideEmptyBlueSockets or env.itemModDB.multipliers.EmptyBlueSocketsInAnySlot) + env.itemModDB.multipliers.EmptyWhiteSocketsInAnySlot = (env.configInput.overrideEmptyWhiteSockets or env.itemModDB.multipliers.EmptyWhiteSocketsInAnySlot) if override.toggleFlask then if env.flasks[override.toggleFlask] then env.flasks[override.toggleFlask] = nil diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 9f30cd2ac8..a23305f9ed 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -239,6 +239,10 @@ return { end }, { var = "ignoreItemDisablers", type = "check", label = "Don't disable items", ifTagType = "DisablesItem", tooltip = "Ignore the effects of things which disable items, like Bringer of Rain" }, { var = "ignoreJewelLimits", type = "check", label = "Ignore Jewel Limits", tooltip = "Ignore the limits on jewels" }, + { var = "overrideEmptyRedSockets", type = "count", label = "# of Empty ^xE05030Red^7 Sockets", ifMult = "EmptyRedSocketsInAnySlot", tooltip = "This option allows you to override the default calculation for the number of Empty ^xE05030Red^7 Sockets.\nThe default calculation assumes enabled gems in skill socket groups fill the item in socket order disregarding gem colour.\nLeave blank for default calculation." }, + { var = "overrideEmptyGreenSockets", type = "count", label = "# of Empty ^x70FF70Green^7 Sockets", ifMult = "EmptyGreenSocketsInAnySlot", tooltip = "This option allows you to override the default calculation for the number of Empty ^x70FF70Green^7 Sockets.\nThe default calculation assumes enabled gems in skill socket groups fill the item in socket order disregarding gem colour.\nLeave blank for default calculation." }, + { var = "overrideEmptyBlueSockets", type = "count", label = "# of Empty ^x7070FFBlue^7 Sockets", ifMult = "EmptyBlueSocketsInAnySlot", tooltip = "This option allows you to override the default calculation for the number of Empty ^x7070FFBlue^7 Sockets.\nThe default calculation assumes enabled gems in skill socket groups fill the item in socket order disregarding gem colour.\nLeave blank for default calculation." }, + { var = "overrideEmptyWhiteSockets", type = "count", label = "# of Empty White Sockets", ifMult = "EmptyWhiteSocketsInAnySlot", tooltip = "This option allows you to override the default calculation for the number of Empty White Sockets.\nThe default calculation assumes enabled gems in skill socket groups fill the item in socket order disregarding gem colour.\nLeave blank for default calculation." }, -- Section: Skill-specific options { section = "Skill Options", col = 2 }, From 3970aaf1c7fe64590866d1aaf5b4e65e1fbfaee9 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Mon, 4 Dec 2023 14:47:29 +1100 Subject: [PATCH 43/51] Minor color & typo changes --- src/Modules/ConfigOptions.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index a23305f9ed..e1b5df8c15 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1402,7 +1402,7 @@ Huge sets the radius to 11. { var = "conditionHaveManaStorm", type = "check", label = "Do you have Manastorm's ^xADAA47Lightning ^7Buff?", ifFlag = "Condition:HaveManaStorm", tooltip = "This option enables Manastorm's ^xADAA47Lightning ^7Damage Buff.\n(When you cast a Spell, Sacrifice all ^x7070FFMana ^7to gain Added Maximum ^xADAA47Lightning ^7Damage\nequal to 25% of Sacrificed ^x7070FFMana ^7for 4 seconds)", apply = function(val, modList, enemyModList) modList:NewMod("Condition:SacrificeManaForLightning", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, - { var = "GamblesprintMovementSpeed", type = "list", label = "Gamblesprint Movement Speed", defaultIndex=5, list={{val=-40,label="-40%"},{val=-20,label="-20%"},{val=0,label="0%"},{val=20,label="20%"},{val=30,label="30%"},{val=40,label="40%"},{val=60,label="60%"},{val=80,label="80%"},{val=100,label="100%"}}, ifFlag = "Condition:HaveGamblesprint", tooltip = "This options sets the Movement Speed from Gamblesprint boots.", apply = function(val, modList, enemyModList) + { var = "GamblesprintMovementSpeed", type = "list", label = "Gamblesprint Movement Speed", defaultIndex=5, list={{val=-40,label="-40%"},{val=-20,label="-20%"},{val=0,label="0%"},{val=20,label="20%"},{val=30,label="30%"},{val=40,label="40%"},{val=60,label="60%"},{val=80,label="80%"},{val=100,label="100%"}}, ifFlag = "Condition:HaveGamblesprint", tooltip = "This option sets the Movement Speed from Gamblesprint boots.", apply = function(val, modList, enemyModList) modList:NewMod("MovementSpeed", "INC", val, "Config", { type = "Condition", var = "Combat" }) end }, { var = "buffFanaticism", type = "check", label = "Do you have Fanaticism?", ifFlag = "Condition:CanGainFanaticism", tooltip = "This will enable the Fanaticism buff itself. (Grants 75% more cast speed, reduced skill cost, and increased area of effect)", apply = function(val, modList, enemyModList) @@ -1651,13 +1651,13 @@ Huge sets the radius to 11. { var = "conditionBetweenYouAndLinkedTarget", type = "check", label = "Is the enemy in your Link beams?", ifEnemyCond = "BetweenYouAndLinkedTarget", tooltip = "This option sets whether an enemy is between you and your linked target.", apply = function(val, modList, enemyModList) enemyModList:NewMod("Condition:BetweenYouAndLinkedTarget", "FLAG", true, "Config", { type = "Condition", var = "Effective" }) end }, - { var = "conditionEnemyFireResZero", type = "check", label = "Enemy hit you with ^xB97123Fire Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with Fire Damage in the last 4 seconds.", apply = function(val, modList, enemyModList) + { var = "conditionEnemyFireResZero", type = "check", label = "Enemy hit you with ^xB97123Fire Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with ^xB97123Fire Damage^7 in the last 4 seconds.", apply = function(val, modList, enemyModList) enemyModList:NewMod("FireResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) end }, - { var = "conditionEnemyColdResZero", type = "check", label = "Enemy hit you with ^x3F6DB3Cold Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with Cold Damage in the last 4 seconds.", apply = function(val, modList, enemyModList) + { var = "conditionEnemyColdResZero", type = "check", label = "Enemy hit you with ^x3F6DB3Cold Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with ^x3F6DB3Cold Damage^7 in the last 4 seconds.", apply = function(val, modList, enemyModList) enemyModList:NewMod("ColdResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) end }, - { var = "conditionEnemyLightningResZero", type = "check", label = "Enemy hit you with ^xADAA47Light. Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with Lightning Damage in the last 4 seconds.", apply = function(val, modList, enemyModList) + { var = "conditionEnemyLightningResZero", type = "check", label = "Enemy hit you with ^xADAA47Light. Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with ^xADAA47Lightning Damage^7 in the last 4 seconds.", apply = function(val, modList, enemyModList) enemyModList:NewMod("LightningResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) end }, -- Section: Enemy Stats From b4ce8cf441322c7472f408aacb34b19d09603cac Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 4 Dec 2023 19:37:29 +1100 Subject: [PATCH 44/51] Fix typo + Ralakesh variant --- src/Data/Uniques/Special/New.lua | 2 +- src/Data/Uniques/boots.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 4916145a6e..7ec91e5a3b 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -76,7 +76,7 @@ Implicits: 1 +40 to maximum Life for each Empty Red Socket on any Equipped Item +225 to Accuracy Rating for each Empty Green Socket on any Equipped Item +40 to maximum Mana for each Empty Blue Socket on any Equipped Item -+18 to all Elemental Resistances for each Empty White Socket on any Equipped Item ++18% to all Elemental Resistances for each Empty White Socket on any Equipped Item ]],[[ The Trickster's Smile Visored Sallet diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index e561ea0cf6..3f84ce41f2 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -847,7 +847,7 @@ Requires Level 36, 35 Str, 35 Int +(15-25)% to Chaos Resistance {variant:1}20% increased Movement Speed {variant:2,3}30% increased Movement Speed -{variant:1,3}Gain a Frenzy, Endurance, or Power Charge once per second while you are Stationary +{variant:1}Gain a Frenzy, Endurance, or Power Charge once per second while you are Stationary {variant:1,2}Lose all Frenzy, Endurance, and Power Charges when you Move {variant:2}Minimum Endurance Charges equal to Maximum while stationary {variant:2}Minimum Frenzy Charges equal to Maximum while stationary From 5e9e051734ddf8aceae5053d4ac19d6c349102ac Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 4 Dec 2023 19:54:00 +1100 Subject: [PATCH 45/51] Fix incorrect hyphen --- src/Data/ModMap.lua | 4 ++-- src/Data/Uniques/amulet.lua | 34 +++++++++++++++++----------------- src/Data/Uniques/belt.lua | 4 ++-- src/Data/Uniques/boots.lua | 4 ++-- src/Data/Uniques/helmet.lua | 2 +- src/Data/Uniques/quiver.lua | 8 ++++---- src/Data/Uniques/ring.lua | 16 ++++++++-------- src/Data/Uniques/shield.lua | 8 ++++---- src/Data/Uniques/sword.lua | 6 +++--- 9 files changed, 43 insertions(+), 43 deletions(-) diff --git a/src/Data/ModMap.lua b/src/Data/ModMap.lua index 0148c914dd..1e41a5b193 100644 --- a/src/Data/ModMap.lua +++ b/src/Data/ModMap.lua @@ -369,7 +369,7 @@ return { end }, -- other prefixes - ["Antagonist's"] = {}, -- (20–30)% increased number of Rare Monsters + ["Antagonist's"] = {}, -- (20-30)% increased number of Rare Monsters ["Anarchic"] = {}, -- Area is inhabited by 2 additional Rogue Exiles ["Ceremonial"] = {}, -- Area contains many Totems ["Skeletal"] = {}, -- Area is inhabited by Skeletons @@ -392,7 +392,7 @@ return { ["Chaining"] = {}, -- Monsters' skills Chain 2 additional times ["Splitting"] = {}, -- Monsters fire 2 additional Projectiles -- other suffixes - ["of Bloodlines"] = {}, -- (20–30)% more Magic Monsters + ["of Bloodlines"] = {}, -- (20-30)% more Magic Monsters ["of Giants"] = {}, -- Monsters have 45|70|100% increased Area of Effect ["of Flames"] = {}, -- Area has patches of Burning Ground ["of Ice"] = {}, -- Area has patches of Chilled Ground diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index b81b3a2950..b4f855aaa1 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -324,12 +324,12 @@ Defiance of Destiny Paua Amulet LevelReq: 49 Implicits: 1 -{tags:mana}(20–30)% increased Mana Regeneration Rate -{tags:life}+(60–80) to maximum Life -{tags:jewellery_resistance}+(10–40)% to Fire Resistance -{tags:jewellery_resistance}+(10–40)% to Cold Resistance -{tags:jewellery_resistance}+(10–40)% to Lightning Resistance -{tags:life}Gain (25–35)% of Missing Unreserved Life before being Hit by an Enemy +{tags:mana}(20-30)% increased Mana Regeneration Rate +{tags:life}+(60-80) to maximum Life +{tags:jewellery_resistance}+(10-40)% to Fire Resistance +{tags:jewellery_resistance}+(10-40)% to Cold Resistance +{tags:jewellery_resistance}+(10-40)% to Lightning Resistance +{tags:life}Gain (25-35)% of Missing Unreserved Life before being Hit by an Enemy ]],[[ The Ephemeral Bond Lapis Amulet @@ -638,10 +638,10 @@ Ikiaho's Promise Coral Amulet LevelReq: 30 Implicits: 1 -{tags:life}Regenerate (2–4) Life per second -{tags:mana}Regenerate (3–5) Mana per second -{tags:life}(30–40)% increased Life Recovery from Flasks -{tags:mana}(15–30)% increased Mana Recovery from Flasks +{tags:life}Regenerate (2-4) Life per second +{tags:mana}Regenerate (3-5) Mana per second +{tags:life}(30-40)% increased Life Recovery from Flasks +{tags:mana}(15-30)% increased Mana Recovery from Flasks Life Flasks used while on Low Life apply Recovery Instantly Mana Flasks used while on Low Mana apply Recovery Instantly ]],[[ @@ -861,14 +861,14 @@ Variant: Pre 3.23.0 Variant: Current LevelReq: 56 Implicits: 1 -+(10–16) to all Attributes -{variant:1}+(10–15)% to all Elemental Resistances -{variant:2}+(5–10)% to all Elemental Resistances ++(10-16) to all Attributes +{variant:1}+(10-15)% to all Elemental Resistances +{variant:2}+(5-10)% to all Elemental Resistances +3 to Level of all Spark Gems -{variant:1}(10–15)% increased Reservation Efficiency of Skills -{variant:2}(5–10)% increased Reservation Efficiency of Skills -{variant:1}Items and Gems have (10–15)% reduced Attribute Requirements -{variant:2}Items and Gems have (5–10)% reduced Attribute Requirements +{variant:1}(10-15)% increased Reservation Efficiency of Skills +{variant:2}(5-10)% increased Reservation Efficiency of Skills +{variant:1}Items and Gems have (10-15)% reduced Attribute Requirements +{variant:2}Items and Gems have (5-10)% reduced Attribute Requirements ]],[[ Retaliation Charm Citrine Amulet diff --git a/src/Data/Uniques/belt.lua b/src/Data/Uniques/belt.lua index 87e6cedd80..4298f0d530 100644 --- a/src/Data/Uniques/belt.lua +++ b/src/Data/Uniques/belt.lua @@ -479,8 +479,8 @@ Kaom's Binding Heavy Belt LevelReq: 56 Implicits: 1 -{tags:jewellery_attribute}+(30–40) to Strength -{tags:jewellery_defense}+(300–500) to Armour +{tags:jewellery_attribute}+(30-40) to Strength +{tags:jewellery_defense}+(300-500) to Armour Take no Burning Damage if you've stopped taking Burning Damage Recently Nearby Enemies Convert 25% of their Physical Damage to Fire ]],[[ diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index 3f84ce41f2..ad792a4e2f 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -99,9 +99,9 @@ Necrotic Footprints Kahuturoa's Certainty Ancient Greaves Requires Level 46, 82 Str -(100–150)% increased Armour +(100-150)% increased Armour 5% reduced Movement Speed -(100–200)% increased Stun and Block Recovery +(100-200)% increased Stun and Block Recovery Unaffected by Damaging Ailments ]],[[ Kaom's Roots diff --git a/src/Data/Uniques/helmet.lua b/src/Data/Uniques/helmet.lua index 3bcfe52e9f..a8360ab3e1 100644 --- a/src/Data/Uniques/helmet.lua +++ b/src/Data/Uniques/helmet.lua @@ -1203,7 +1203,7 @@ Akoya's Gaze Regicide Mask Requires Level 52, 58 Dex, 58 Int +100 Strength Requirement -(20–25)% increased Warcry Speed +(20-25)% increased Warcry Speed Life Leech from Exerted Attacks is instant Non-Exerted Attacks deal no Damage ]],[[ diff --git a/src/Data/Uniques/quiver.lua b/src/Data/Uniques/quiver.lua index ef7ef9a65a..55292f08d8 100644 --- a/src/Data/Uniques/quiver.lua +++ b/src/Data/Uniques/quiver.lua @@ -7,11 +7,11 @@ Ahuana's Bite Sharktooth Arrow Quiver LevelReq: 56 Implicits: 1 -Gain (6–8) Life per Enemy Hit with Attacks -Adds (30–40) to (60–70) Cold Damage to Attacks -+(20–30)% to Cold Resistance +Gain (6-8) Life per Enemy Hit with Attacks +Adds (30-40) to (60-70) Cold Damage to Attacks ++(20-30)% to Cold Resistance Enemies Chilled by your Hits have Damage taken increased by Chill Effect -Chill Enemies as though dealing (60–100)% more Damage +Chill Enemies as though dealing (60-100)% more Damage ]],[[ Asphyxia's Wrath {variant:1,2}Two-Point Arrow Quiver diff --git a/src/Data/Uniques/ring.lua b/src/Data/Uniques/ring.lua index 18d5162e7d..03de42d65a 100644 --- a/src/Data/Uniques/ring.lua +++ b/src/Data/Uniques/ring.lua @@ -553,11 +553,11 @@ League: Ancestor Source: No longer obtainable LevelReq: 49 Implicits: 1 -{tags:life}+(20–30) to maximum Life +{tags:life}+(20-30) to maximum Life 10% chance to Trigger Summon Spirit of Akoya on Kill -{tags:jewellery_attribute}+(10–20) to all Attributes -{tags:mana}(30–50)% increased Mana Regeneration Rate -{tags:life}(10–15)% of Damage taken Recouped as Life +{tags:jewellery_attribute}+(10-20) to all Attributes +{tags:mana}(30-50)% increased Mana Regeneration Rate +{tags:life}(10-15)% of Damage taken Recouped as Life ]], [[ The Hungry Loop @@ -1129,10 +1129,10 @@ Immune to Chill ]],[[ Tawhanuku's Timing Moonstone Ring -{tags:jewellery_defense}+(15–25) to maximum Energy Shield -{tags:caster}(30–40)% increased Spell Damage -{tags:mana}+(60–80) to maximum Mana -(5–10)% chance to Freeze, Shock and Ignite +{tags:jewellery_defense}+(15-25) to maximum Energy Shield +{tags:caster}(30-40)% increased Spell Damage +{tags:mana}+(60-80) to maximum Mana +(5-10)% chance to Freeze, Shock and Ignite {tags:jewellery_defense,caster}Spells cause you to gain Energy Shield equal to their Upfront Cost every fifth time you Pay it ]],[[ Thief's Torment diff --git a/src/Data/Uniques/shield.lua b/src/Data/Uniques/shield.lua index 0dabd98449..99c7d059e9 100644 --- a/src/Data/Uniques/shield.lua +++ b/src/Data/Uniques/shield.lua @@ -337,10 +337,10 @@ Ironwood Buckler Requires Level 57, 137 Dex Implicits: 1 3% increased Movement Speed -(100–150)% increased Evasion Rating -(15–25)% chance to Avoid Elemental Ailments -+(3–8)% Chance to Block -(30–40)% chance for Elemental Resistances to count as being 90% against Enemy Hits +(100-150)% increased Evasion Rating +(15-25)% chance to Avoid Elemental Ailments ++(3-8)% Chance to Block +(30-40)% chance for Elemental Resistances to count as being 90% against Enemy Hits ]], [[ Mistwall diff --git a/src/Data/Uniques/sword.lua b/src/Data/Uniques/sword.lua index fd2f400698..66ce84a726 100644 --- a/src/Data/Uniques/sword.lua +++ b/src/Data/Uniques/sword.lua @@ -880,9 +880,9 @@ Engraved Greatsword Requires Level 48, 91 Str, 76 Dex Implicits: 1 60% increased Global Accuracy Rating -Adds (150–200) to (300–350) Cold Damage -Adds 1 to (550–600) Lightning Damage -(15–20)% increased Attack Speed +Adds (150-200) to (300-350) Cold Damage +Adds 1 to (550-600) Lightning Damage +(15-20)% increased Attack Speed Treats Enemy Monster Elemental Resistance values as inverted ]],[[ Rigwald's Charge From c4133ce8d61c17ff827fa9f18bd95f6883f750ae Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 4 Dec 2023 20:16:54 +1100 Subject: [PATCH 46/51] Fix Covenant ES calc + comment --- src/Modules/CalcOffence.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index b819b8fc1b..1180a571d4 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -1498,7 +1498,7 @@ function calcs.offence(env, actor, activeSkill) local mult = floor(skillModList:More(skillCfg, "SupportManaMultiplier"), 4) -- First pass to calculate base costs. Used for cost conversion (e.g. Petrified Blood) local additionalLifeCost = skillModList:Sum("BASE", skillCfg, "ManaCostAsLifeCost") / 100 -- Extra cost (e.g. Petrified Blood) calculations - local additionalESCost = skillModList:Sum("BASE", skillCfg, "ManaCostAsEnergyShieldCost") / 100 -- Extra cost (e.g. Petrified Blood) calculations + local additionalESCost = skillModList:Sum("BASE", skillCfg, "ManaCostAsEnergyShieldCost") / 100 -- Extra cost (e.g. Replica Covenant) calculations local hybridLifeCost = skillModList:Sum("BASE", skillCfg, "HybridManaAndLifeCost_Life") / 100 -- Life/Mana mastery for resource, val in pairs(costs) do local skillCost = activeSkill.activeEffect.grantedEffectLevel.cost and activeSkill.activeEffect.grantedEffectLevel.cost[resource] or nil @@ -1539,7 +1539,7 @@ function calcs.offence(env, actor, activeSkill) elseif val.type == "ES" then local manaType = resource:gsub("ES", "Mana") if additionalESCost > 0 then - val.baseCost = round(costs[manaType].baseCost * additionalESCost) + val.baseCost = costs[manaType].baseCost val.finalBaseCost = val.finalBaseCost + round(costs[manaType].finalBaseCost * additionalESCost) end elseif val.type == "Rage" then From 9416d31f1439093c9bdd803cc03e46b83ccbabbd Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 4 Dec 2023 20:23:30 +1100 Subject: [PATCH 47/51] Fix Gamblesprint MS persisting after removal --- src/Modules/ConfigOptions.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index e1b5df8c15..5f45c62545 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1403,7 +1403,7 @@ Huge sets the radius to 11. modList:NewMod("Condition:SacrificeManaForLightning", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, { var = "GamblesprintMovementSpeed", type = "list", label = "Gamblesprint Movement Speed", defaultIndex=5, list={{val=-40,label="-40%"},{val=-20,label="-20%"},{val=0,label="0%"},{val=20,label="20%"},{val=30,label="30%"},{val=40,label="40%"},{val=60,label="60%"},{val=80,label="80%"},{val=100,label="100%"}}, ifFlag = "Condition:HaveGamblesprint", tooltip = "This option sets the Movement Speed from Gamblesprint boots.", apply = function(val, modList, enemyModList) - modList:NewMod("MovementSpeed", "INC", val, "Config", { type = "Condition", var = "Combat" }) + modList:NewMod("MovementSpeed", "INC", val, "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "HaveGamblesprint" }) end }, { var = "buffFanaticism", type = "check", label = "Do you have Fanaticism?", ifFlag = "Condition:CanGainFanaticism", tooltip = "This will enable the Fanaticism buff itself. (Grants 75% more cast speed, reduced skill cost, and increased area of effect)", apply = function(val, modList, enemyModList) modList:NewMod("Condition:Fanaticism", "FLAG", true, "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "CanGainFanaticism" }) From 523779603e5c0a57e11580ddcc42507fe5d8a78f Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 4 Dec 2023 20:30:35 +1100 Subject: [PATCH 48/51] Wrap Wildwood Blessing description --- src/TreeData/3_23/tree.lua | 2 +- src/TreeData/3_23_ruthless/tree.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TreeData/3_23/tree.lua b/src/TreeData/3_23/tree.lua index 6b61bae08a..cb869fca15 100644 --- a/src/TreeData/3_23/tree.lua +++ b/src/TreeData/3_23/tree.lua @@ -14143,7 +14143,7 @@ return { "Grants Level 20 Barkskin Skill" }, ["reminderText"]= { - "(Adopt the power of the Viridian Wildwood, gradually covering your body in bark. Getting hit by enemy attacks causes bark to be removed. You have higher armour the more bark builds up, but higher chance to evade when less covered in bark)" + "(Adopt the power of the Viridian Wildwood, gradually covering your body in bark. Getting hit by enemy attacks causes bark to be removed.\nYou have higher armour the more bark builds up, but higher chance to evade when less covered in bark)" }, ["group"]= 37, ["orbit"]= 3, diff --git a/src/TreeData/3_23_ruthless/tree.lua b/src/TreeData/3_23_ruthless/tree.lua index aff185f65b..c92a270173 100644 --- a/src/TreeData/3_23_ruthless/tree.lua +++ b/src/TreeData/3_23_ruthless/tree.lua @@ -14087,7 +14087,7 @@ return { "Grants Level 20 Barkskin Skill" }, ["reminderText"]= { - "(Adopt the power of the Viridian Wildwood, gradually covering your body in bark. Getting hit by enemy attacks causes bark to be removed. You have higher armour the more bark builds up, but higher chance to evade when less covered in bark)" + "(Adopt the power of the Viridian Wildwood, gradually covering your body in bark. Getting hit by enemy attacks causes bark to be removed.\nYou have higher armour the more bark builds up, but higher chance to evade when less covered in bark)" }, ["group"]= 37, ["orbit"]= 3, From 5e9ba27d33d28f36f82d7ddc1e7bafbef680b41d Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 4 Dec 2023 20:45:11 +1100 Subject: [PATCH 49/51] Fix Trickster's Smile persisting after removal --- src/Modules/ConfigOptions.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 5f45c62545..725b678f30 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1652,13 +1652,13 @@ Huge sets the radius to 11. enemyModList:NewMod("Condition:BetweenYouAndLinkedTarget", "FLAG", true, "Config", { type = "Condition", var = "Effective" }) end }, { var = "conditionEnemyFireResZero", type = "check", label = "Enemy hit you with ^xB97123Fire Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with ^xB97123Fire Damage^7 in the last 4 seconds.", apply = function(val, modList, enemyModList) - enemyModList:NewMod("FireResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) + enemyModList:NewMod("FireResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}, { type = "ActorCondition", actor = "enemy", var = "HaveTrickstersSmile" }) end }, { var = "conditionEnemyColdResZero", type = "check", label = "Enemy hit you with ^x3F6DB3Cold Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with ^x3F6DB3Cold Damage^7 in the last 4 seconds.", apply = function(val, modList, enemyModList) - enemyModList:NewMod("ColdResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) + enemyModList:NewMod("ColdResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}, { type = "ActorCondition", actor = "enemy", var = "HaveTrickstersSmile" }) end }, { var = "conditionEnemyLightningResZero", type = "check", label = "Enemy hit you with ^xADAA47Light. Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with ^xADAA47Lightning Damage^7 in the last 4 seconds.", apply = function(val, modList, enemyModList) - enemyModList:NewMod("LightningResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}) + enemyModList:NewMod("LightningResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}, { type = "ActorCondition", actor = "enemy", var = "HaveTrickstersSmile" }) end }, -- Section: Enemy Stats { section = "Enemy Stats", col = 3 }, From 5c3efa8d50f6c5362823081628cd891a88a35b13 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 4 Dec 2023 22:16:52 +1100 Subject: [PATCH 50/51] Fix Replica Covenant ES cost breakdown --- src/Modules/CalcOffence.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index 1180a571d4..ec3f01c1f5 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -1604,6 +1604,9 @@ function calcs.offence(env, actor, activeSkill) if val.type == "Life" and (hybridLifeCost + additionalLifeCost) ~= 0 and not skillModList:Flag(skillCfg, "CostLifeInsteadOfMana") then t_insert(breakdown[costName], s_format("* %.2f ^8(mana cost conversion)", hybridLifeCost + additionalLifeCost)) end + if val.type == "ES" and additionalESCost ~= 0 and not skillModList:Flag(skillCfg, "CostLifeInsteadOfMana") then + t_insert(breakdown[costName], s_format("* %.2f ^8(mana cost conversion)", additionalESCost)) + end if inc ~= 0 then t_insert(breakdown[costName], s_format("x %.2f ^8(increased/reduced "..val.text.." cost)", 1 + inc/100)) end From f343111d058b005cc1eefaa8a4957abf1c024eed Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Mon, 4 Dec 2023 22:32:34 +1100 Subject: [PATCH 51/51] Removing changes from duplicated block section --- src/Modules/CalcDefence.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index 529e801753..09a5c260df 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -855,10 +855,7 @@ function calcs.defence(env, actor) else output.SpellBlockChanceMax = modDB:Sum("BASE", nil, "SpellBlockChanceMax") end - if modDB:Flag(nil, "MaxSpellBlockIfNotBlockedRecently") then - output.SpellBlockChance = output.SpellBlockChanceMax - output.SpellProjectileBlockChance = output.SpellBlockChanceMax - elseif modDB:Flag(nil, "SpellBlockChanceIsBlockChance") then + if modDB:Flag(nil, "SpellBlockChanceIsBlockChance") then output.SpellBlockChance = output.BlockChance output.SpellProjectileBlockChance = output.ProjectileBlockChance else