From f71c6533d004b7debeeaa56827bbd6a56ec578cf Mon Sep 17 00:00:00 2001 From: MrHB212 Date: Mon, 15 Dec 2025 18:48:25 +0100 Subject: [PATCH 1/3] elemental adaptation --- src/Data/ModCache.lua | 5 ++--- src/Modules/ConfigOptions.lua | 11 +++++++++++ src/Modules/ModParser.lua | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 1c1b9a64ec..e4c3287fda 100644 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -3316,8 +3316,7 @@ c["Abyssal Wasting also applies % to Lightning Resistance Projectiles have 50% c c["Abyssal Wasting you inflict has Infinite Duration"]={nil,"Abyssal Wasting you inflict has Infinite Duration "} c["Abyssal Wasting you inflict has Infinite Duration Abyssal Wasting also applies % to Fire Resistance"]={nil,"Abyssal Wasting you inflict has Infinite Duration Abyssal Wasting also applies % to Fire Resistance "} c["Accuracy Rating is Doubled"]={{[1]={[1]={globalLimit=100,globalLimitKey="AccuracyDoubledLimit",type="Multiplier",var="AccuracyDoubled"},flags=0,keywordFlags=0,name="Accuracy",type="MORE",value=100},[2]={flags=0,keywordFlags=0,name="Multiplier:AccuracyDoubled",type="OVERRIDE",value=1}},nil} -c["Adapt to the highest Elemental Damage Type of each Hit you take"]={nil,"Adapt to the highest Elemental Damage Type of each Hit you take "} -c["Adapt to the highest Elemental Damage Type of each Hit you take Each Adaptation grants 10% less Damage taken of that Adaptation's type"]={nil,"Adapt to the highest Elemental Damage Type of each Hit you take Each Adaptation grants 10% less Damage taken of that Adaptation's type "} +c["Adapt to the highest Elemental Damage Type of each Hit you take"]={{[1]={flags=0,keywordFlags=0,name="ElementalAdaptation",type="FLAG",value=true}},nil} c["Adaptations have a duration of 5 seconds"]={nil,"Adaptations have a duration of 5 seconds "} c["Adaptations have a duration of 5 seconds Double Adaptation Effect"]={{[1]={[1]={globalLimit=100,globalLimitKey="DurationDoubledLimit",type="Multiplier",var="DurationDoubled"},flags=0,keywordFlags=0,name="Duration",type="MORE",value=100},[2]={flags=0,keywordFlags=0,name="Multiplier:DurationDoubled",type="OVERRIDE",value=1}},"Adaptations have a of 5 seconds Adaptation Effect "} c["Adds 1 to 10 Lightning Damage to Attacks per 20 Intelligence"]={{[1]={[1]={div=20,stat="Int",type="PerStat"},flags=0,keywordFlags=65536,name="LightningMin",type="BASE",value=1},[2]={[1]={div=20,stat="Int",type="PerStat"},flags=0,keywordFlags=65536,name="LightningMax",type="BASE",value=10}},nil} @@ -4754,7 +4753,7 @@ c["Double the number of your Poisons that targets can be affected by at the same c["Doubles Mana Costs"]={{[1]={flags=0,keywordFlags=0,name="ManaCost",type="MORE",value=100}},nil} c["Drop Ignited Ground while moving, which lasts 8 seconds and Ignites as though dealing Fire Damage equal to 10% of your maximum Life"]={nil,"Drop Ignited Ground while moving, which lasts 8 seconds and Ignites as though dealing Fire Damage equal to 10% of your maximum Life "} c["Drop Shocked Ground while moving, lasting 8 seconds"]={nil,"Drop Shocked Ground while moving, lasting 8 seconds "} -c["Each Adaptation grants 10% less Damage taken of that Adaptation's type"]={nil,"Each Adaptation grants 10% less Damage taken of that Adaptation's type "} +c["Each Adaptation grants 10% less Damage taken of that Adaptation's type"]={{},nil} c["Each Arrow fired is a Crescendo, Splinter, Reversing, Diamond, Covetous, or Blunt Arrow"]={nil,"Each Arrow fired is a Crescendo, Splinter, Reversing, Diamond, Covetous, or Blunt Arrow "} c["Each Totem applies 2% increased Damage taken to Enemies in their Presence"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Multiplier",var="TotemsSummoned"},flags=0,keywordFlags=0,name="DamageTaken",type="INC",value=2}}}},nil} c["Effect is not removed when Unreserved Life is Filled"]={nil,"Effect is not removed when Unreserved Life is Filled "} diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 2dc4ced25e..c7d0d7006b 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1200,6 +1200,17 @@ Huge sets the radius to 11. { var = "multiplierStunnedRecently", type = "count", label = "# of times Stunned Recently:", ifOption = "conditionStunnedRecently", defaultPlaceholderState = 1, apply = function(val, modList, enemyModList) modList:NewMod("Multiplier:StunnedRecently", "BASE", m_min(val, 100), "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "StunnedRecently" } ) end }, + + { var = "FireAdaptation", type = "countAllowZero", label = "# of fire adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + modList:NewMod("FireDamageTaken", "MORE", -val*10, "Config") + end }, + { var = "ColdAdaptation", type = "countAllowZero", label = "# of cold adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + modList:NewMod("ColdDamageTaken", "MORE", -val*10, "Config") + end }, + { var = "LightningAdaptation", type = "countAllowZero", label = "# of lightning adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + modList:NewMod("LightningDamageTaken", "MORE", -val*10, "Config") + end }, + { var = "conditionBeenHitRecently", type = "check", label = "Have you been Hit Recently?", ifCond = "BeenHitRecently", apply = function(val, modList, enemyModList) modList:NewMod("Condition:BeenHitRecently", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 634883a99f..25569178da 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -3274,6 +3274,9 @@ local specialModList = { ["gain the benefits of bonded modifiers on runes and idols"] = { flag("Condition:CanUseBondedModifiers"), }, + -- Druid -- Shaman + ["adapt to the highest elemental damage type of each hit you take"] = { flag("ElementalAdaptation") } , + ["each adaptation grants (%d+)%% less damage taken of that adaptation's type"] = { }, -- Item local modifiers ["has no sockets"] = { flag("NoSockets") }, ["reflects your other ring"] = { From 90e9f9181a0a0a4458863e6c64781b0c5f1cf002 Mon Sep 17 00:00:00 2001 From: MrHB212 Date: Mon, 15 Dec 2025 18:58:54 +0100 Subject: [PATCH 2/3] fixed config --- src/Data/ModCache.lua | 2 +- src/Modules/ConfigOptions.lua | 12 ++++++------ src/Modules/ModParser.lua | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index e4c3287fda..840eb152fb 100644 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -3316,7 +3316,7 @@ c["Abyssal Wasting also applies % to Lightning Resistance Projectiles have 50% c c["Abyssal Wasting you inflict has Infinite Duration"]={nil,"Abyssal Wasting you inflict has Infinite Duration "} c["Abyssal Wasting you inflict has Infinite Duration Abyssal Wasting also applies % to Fire Resistance"]={nil,"Abyssal Wasting you inflict has Infinite Duration Abyssal Wasting also applies % to Fire Resistance "} c["Accuracy Rating is Doubled"]={{[1]={[1]={globalLimit=100,globalLimitKey="AccuracyDoubledLimit",type="Multiplier",var="AccuracyDoubled"},flags=0,keywordFlags=0,name="Accuracy",type="MORE",value=100},[2]={flags=0,keywordFlags=0,name="Multiplier:AccuracyDoubled",type="OVERRIDE",value=1}},nil} -c["Adapt to the highest Elemental Damage Type of each Hit you take"]={{[1]={flags=0,keywordFlags=0,name="ElementalAdaptation",type="FLAG",value=true}},nil} +c["Adapt to the highest Elemental Damage Type of each Hit you take"]={{[1]={flags=0,keywordFlags=0,name="Condition:ElementalAdaptation",type="FLAG",value=true}},nil} c["Adaptations have a duration of 5 seconds"]={nil,"Adaptations have a duration of 5 seconds "} c["Adaptations have a duration of 5 seconds Double Adaptation Effect"]={{[1]={[1]={globalLimit=100,globalLimitKey="DurationDoubledLimit",type="Multiplier",var="DurationDoubled"},flags=0,keywordFlags=0,name="Duration",type="MORE",value=100},[2]={flags=0,keywordFlags=0,name="Multiplier:DurationDoubled",type="OVERRIDE",value=1}},"Adaptations have a of 5 seconds Adaptation Effect "} c["Adds 1 to 10 Lightning Damage to Attacks per 20 Intelligence"]={{[1]={[1]={div=20,stat="Int",type="PerStat"},flags=0,keywordFlags=65536,name="LightningMin",type="BASE",value=1},[2]={[1]={div=20,stat="Int",type="PerStat"},flags=0,keywordFlags=65536,name="LightningMax",type="BASE",value=10}},nil} diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index c7d0d7006b..246a243f4e 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1201,14 +1201,14 @@ Huge sets the radius to 11. modList:NewMod("Multiplier:StunnedRecently", "BASE", m_min(val, 100), "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "StunnedRecently" } ) end }, - { var = "FireAdaptation", type = "countAllowZero", label = "# of fire adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) - modList:NewMod("FireDamageTaken", "MORE", -val*10, "Config") + { var = "FireAdaptation", type = "countAllowZero", label = "# of fire adaptation:", ifCond = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + modList:NewMod("FireDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "ElementalAdaptation"}) end }, - { var = "ColdAdaptation", type = "countAllowZero", label = "# of cold adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) - modList:NewMod("ColdDamageTaken", "MORE", -val*10, "Config") + { var = "ColdAdaptation", type = "countAllowZero", label = "# of cold adaptation:", ifCond = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + modList:NewMod("ColdDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "ElementalAdaptation"}) end }, - { var = "LightningAdaptation", type = "countAllowZero", label = "# of lightning adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) - modList:NewMod("LightningDamageTaken", "MORE", -val*10, "Config") + { var = "LightningAdaptation", type = "countAllowZero", label = "# of lightning adaptation:", ifCond = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + modList:NewMod("LightningDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "ElementalAdaptation"}) end }, { var = "conditionBeenHitRecently", type = "check", label = "Have you been Hit Recently?", ifCond = "BeenHitRecently", apply = function(val, modList, enemyModList) diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 25569178da..038caf45a1 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -3275,7 +3275,7 @@ local specialModList = { flag("Condition:CanUseBondedModifiers"), }, -- Druid -- Shaman - ["adapt to the highest elemental damage type of each hit you take"] = { flag("ElementalAdaptation") } , + ["adapt to the highest elemental damage type of each hit you take"] = { flag("Condition:ElementalAdaptation") } , ["each adaptation grants (%d+)%% less damage taken of that adaptation's type"] = { }, -- Item local modifiers ["has no sockets"] = { flag("NoSockets") }, From 1810d7e11e00759a9fc517d06246deaca150091a Mon Sep 17 00:00:00 2001 From: MrHB212 Date: Mon, 15 Dec 2025 19:50:45 +0100 Subject: [PATCH 3/3] added double adaptation effect --- src/Data/ModCache.lua | 4 ++-- src/Modules/ConfigOptions.lua | 11 +++++++---- src/Modules/ModParser.lua | 7 ++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 840eb152fb..ef3b31791d 100644 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -3316,7 +3316,7 @@ c["Abyssal Wasting also applies % to Lightning Resistance Projectiles have 50% c c["Abyssal Wasting you inflict has Infinite Duration"]={nil,"Abyssal Wasting you inflict has Infinite Duration "} c["Abyssal Wasting you inflict has Infinite Duration Abyssal Wasting also applies % to Fire Resistance"]={nil,"Abyssal Wasting you inflict has Infinite Duration Abyssal Wasting also applies % to Fire Resistance "} c["Accuracy Rating is Doubled"]={{[1]={[1]={globalLimit=100,globalLimitKey="AccuracyDoubledLimit",type="Multiplier",var="AccuracyDoubled"},flags=0,keywordFlags=0,name="Accuracy",type="MORE",value=100},[2]={flags=0,keywordFlags=0,name="Multiplier:AccuracyDoubled",type="OVERRIDE",value=1}},nil} -c["Adapt to the highest Elemental Damage Type of each Hit you take"]={{[1]={flags=0,keywordFlags=0,name="Condition:ElementalAdaptation",type="FLAG",value=true}},nil} +c["Adapt to the highest Elemental Damage Type of each Hit you take"]={{[1]={flags=0,keywordFlags=0,name="ElementalAdaptation",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="Condition:ElementalAdaptation",type="FLAG",value=true}},nil} c["Adaptations have a duration of 5 seconds"]={nil,"Adaptations have a duration of 5 seconds "} c["Adaptations have a duration of 5 seconds Double Adaptation Effect"]={{[1]={[1]={globalLimit=100,globalLimitKey="DurationDoubledLimit",type="Multiplier",var="DurationDoubled"},flags=0,keywordFlags=0,name="Duration",type="MORE",value=100},[2]={flags=0,keywordFlags=0,name="Multiplier:DurationDoubled",type="OVERRIDE",value=1}},"Adaptations have a of 5 seconds Adaptation Effect "} c["Adds 1 to 10 Lightning Damage to Attacks per 20 Intelligence"]={{[1]={[1]={div=20,stat="Int",type="PerStat"},flags=0,keywordFlags=65536,name="LightningMin",type="BASE",value=1},[2]={[1]={div=20,stat="Int",type="PerStat"},flags=0,keywordFlags=65536,name="LightningMax",type="BASE",value=10}},nil} @@ -4747,7 +4747,7 @@ c["Dodge Roll cannot Avoid Damage"]={nil,"Dodge Roll cannot Avoid Damage "} c["Dodge Roll cannot Avoid Damage Take 30% less Damage from Hits while Dodge Rolling"]={nil,"Dodge Roll cannot Avoid Damage Take 30% less Damage from Hits while Dodge Rolling "} c["Dodge Roll passes through Enemies"]={nil,"Dodge Roll passes through Enemies "} c["Double Activation Delay of Curses"]={{[1]={flags=0,keywordFlags=0,name="CurseDelay",type="MORE",value=100}},nil} -c["Double Adaptation Effect"]={{[1]={[1]={globalLimit=100,globalLimitKey="LocalEffectDoubledLimit",type="Multiplier",var="LocalEffectDoubled"},flags=0,keywordFlags=0,name="LocalEffect",type="MORE",value=100},[2]={flags=0,keywordFlags=0,name="Multiplier:LocalEffectDoubled",type="OVERRIDE",value=1}}," Adaptation "} +c["Double Adaptation Effect"]={{[1]={flags=0,keywordFlags=0,name="Condition:DoubleElementalAdaptation",type="FLAG",value=true}},nil} c["Double Stun Threshold while Shield is Raised"]={{[1]={[1]={globalLimit=100,globalLimitKey="StunThresholdDoubledLimit",type="Multiplier",var="StunThresholdDoubled"},flags=0,keywordFlags=0,name="StunThreshold",type="MORE",value=100},[2]={flags=0,keywordFlags=0,name="Multiplier:StunThresholdDoubled",type="OVERRIDE",value=1}}," while Shield is Raised "} c["Double the number of your Poisons that targets can be affected by at the same time"]={{[1]={flags=0,keywordFlags=0,name="PoisonCanStack",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="PoisonStacks",type="MORE",value=100}},nil} c["Doubles Mana Costs"]={{[1]={flags=0,keywordFlags=0,name="ManaCost",type="MORE",value=100}},nil} diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 246a243f4e..53dd94d5ab 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1201,14 +1201,17 @@ Huge sets the radius to 11. modList:NewMod("Multiplier:StunnedRecently", "BASE", m_min(val, 100), "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "StunnedRecently" } ) end }, - { var = "FireAdaptation", type = "countAllowZero", label = "# of fire adaptation:", ifCond = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + { var = "FireAdaptationCount", type = "countAllowZero", label = "# of fire adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) modList:NewMod("FireDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "ElementalAdaptation"}) + modList:NewMod("FireDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "DoubleElementalAdaptation"}) end }, - { var = "ColdAdaptation", type = "countAllowZero", label = "# of cold adaptation:", ifCond = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + { var = "ColdAdaptationCount", type = "countAllowZero", label = "# of cold adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) modList:NewMod("ColdDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "ElementalAdaptation"}) + modList:NewMod("ColdDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "DoubleElementalAdaptation"}) end }, - { var = "LightningAdaptation", type = "countAllowZero", label = "# of lightning adaptation:", ifCond = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) - modList:NewMod("LightningDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "ElementalAdaptation"}) + { var = "LightningAdaptationCount", type = "countAllowZero", label = "# of lightning adaptation:", ifFlag = "ElementalAdaptation", tooltip = "You can only have 3 Adaptations in total", apply = function(val, modList, enemyModList) + modList:NewMod("LightningDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "ElementalAdaptation"}) + modList:NewMod("LightningDamageTaken", "MORE", -val*10, "Config", { type = "Condition", var = "DoubleElementalAdaptation"}) end }, { var = "conditionBeenHitRecently", type = "check", label = "Have you been Hit Recently?", ifCond = "BeenHitRecently", apply = function(val, modList, enemyModList) diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 038caf45a1..8b165a0e80 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -3275,8 +3275,13 @@ local specialModList = { flag("Condition:CanUseBondedModifiers"), }, -- Druid -- Shaman - ["adapt to the highest elemental damage type of each hit you take"] = { flag("Condition:ElementalAdaptation") } , + ["adapt to the highest elemental damage type of each hit you take"] = { + flag("ElementalAdaptation"), + flag("Condition:ElementalAdaptation"), + + }, ["each adaptation grants (%d+)%% less damage taken of that adaptation's type"] = { }, + ["double adaptation effect"] = { flag("Condition:DoubleElementalAdaptation") }, -- Item local modifiers ["has no sockets"] = { flag("NoSockets") }, ["reflects your other ring"] = {