@@ -282,8 +282,8 @@ local modNameList = {
282282 [" to avoid being frozen" ] = " AvoidFreeze" ,
283283 [" to avoid being chilled" ] = " AvoidChill" ,
284284 [" to avoid being ignited" ] = " AvoidIgnite" ,
285- [" to avoid elemental ailments" ] = { " AvoidShock" , " AvoidFreeze" , " AvoidChill" , " AvoidIgnite" },
286- [" to avoid elemental status ailments" ] = { " AvoidShock" , " AvoidFreeze" , " AvoidChill" , " AvoidIgnite" },
285+ [" to avoid elemental ailments" ] = { " AvoidShock" , " AvoidFreeze" , " AvoidChill" , " AvoidIgnite" , " AvoidSap " , " AvoidBrittle " , " AvoidScorch " },
286+ [" to avoid elemental status ailments" ] = { " AvoidShock" , " AvoidFreeze" , " AvoidChill" , " AvoidIgnite" , " AvoidSap " , " AvoidBrittle " , " AvoidScorch " },
287287 [" to avoid bleeding" ] = " AvoidBleed" ,
288288 [" to avoid being poisoned" ] = " AvoidPoison" ,
289289 [" damage is taken from mana before life" ] = " DamageTakenFromManaBeforeLife" ,
@@ -1671,12 +1671,13 @@ local specialModList = {
16711671 [" (%d+)%% chance to gain elusive on kill" ] = {
16721672 flag (" Condition:CanBeElusive" ),
16731673 },
1674- [" immune to elemental ailments while on consecrated ground" ] = {
1675- mod (" AvoidChill" , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" }),
1676- mod (" AvoidFreeze" , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" }),
1677- mod (" AvoidIgnite" , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" }),
1678- mod (" AvoidShock" , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" }),
1679- },
1674+ [" immune to elemental ailments while on consecrated ground" ] = function ()
1675+ local mods = { }
1676+ for i , ailment in ipairs (data .elementalAilmentTypeList ) do
1677+ mods [i ] = mod (" Avoid" .. ailment , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" })
1678+ end
1679+ return mods
1680+ end ,
16801681 -- Assassin
16811682 [" poison you inflict with critical strikes deals (%d+)%% more damage" ] = function (num ) return { mod (" Damage" , " MORE" , num , nil , 0 , KeywordFlag .Poison , { type = " Condition" , var = " CriticalStrike" }) } end ,
16821683 [" (%d+)%% chance to gain elusive on critical strike" ] = {
@@ -1812,12 +1813,13 @@ local specialModList = {
18121813 flag (" FireCanShock" , { type = " Condition" , var = " AffectedByGloriousMadness" }),
18131814 flag (" ChaosCanShock" , { type = " Condition" , var = " AffectedByGloriousMadness" }),
18141815 },
1815- [" immune to elemental ailments while affected by glorious madness" ] = {
1816- mod (" AvoidChill" , " BASE" , 100 , { type = " Condition" , var = " AffectedByGloriousMadness" }),
1817- mod (" AvoidFreeze" , " BASE" , 100 , { type = " Condition" , var = " AffectedByGloriousMadness" }),
1818- mod (" AvoidIgnite" , " BASE" , 100 , { type = " Condition" , var = " AffectedByGloriousMadness" }),
1819- mod (" AvoidShock" , " BASE" , 100 , { type = " Condition" , var = " AffectedByGloriousMadness" }),
1820- },
1816+ [" immune to elemental ailments while affected by glorious madness" ] = function ()
1817+ local mods = { }
1818+ for i , ailment in ipairs (data .elementalAilmentTypeList ) do
1819+ mods [i ] = mod (" Avoid" .. ailment , " BASE" , 100 , { type = " Condition" , var = " AffectedByGloriousMadness" })
1820+ end
1821+ return mods
1822+ end ,
18211823 [" summoned golems are immune to elemental damage" ] = {
18221824 mod (" MinionModifier" , " LIST" , { mod = mod (" FireResist" , " OVERRIDE" , 100 ) }, { type = " SkillType" , skillType = SkillType .Golem }),
18231825 mod (" MinionModifier" , " LIST" , { mod = mod (" FireResistMax" , " OVERRIDE" , 100 ) }, { type = " SkillType" , skillType = SkillType .Golem }),
@@ -1912,24 +1914,26 @@ local specialModList = {
19121914 mod (" LifeRegenPercent" , " BASE" , num , { type = " PerStat" , stat = " TotemsSummoned" }, 0 , KeywordFlag .Totem ),
19131915 } end ,
19141916 [" enemies take (%d+)%% increased damage for each of your brands attached to them" ] = function (num ) return { mod (" EnemyModifier" , " LIST" , { mod = mod (" DamageTaken" , " INC" , num , { type = " Multiplier" , var = " BrandsAttached" }) }) } end ,
1915- [" immune to elemental ailments while you have arcane surge" ] = {
1916- mod (" AvoidChill" , " BASE" , 100 , { type = " Condition" , var = " AffectedByArcaneSurge" }),
1917- mod (" AvoidFreeze" , " BASE" , 100 , { type = " Condition" , var = " AffectedByArcaneSurge" }),
1918- mod (" AvoidIgnite" , " BASE" , 100 , { type = " Condition" , var = " AffectedByArcaneSurge" }),
1919- mod (" AvoidShock" , " BASE" , 100 , { type = " Condition" , var = " AffectedByArcaneSurge" }),
1920- },
1917+ [" immune to elemental ailments while you have arcane surge" ] = function ()
1918+ local mods = { }
1919+ for i , ailment in ipairs (data .elementalAilmentTypeList ) do
1920+ mods [i ] = mod (" Avoid" .. ailment , " BASE" , 100 , { type = " Condition" , var = " AffectedByArcaneSurge" })
1921+ end
1922+ return mods
1923+ end ,
19211924 [" brands have (%d+)%% more activation frequency if (%d+)%% of attached duration expired" ] = function (num ) return { mod (" BrandActivationFrequency" , " MORE" , num , { type = " Condition" , var = " BrandLastQuarter" } ) } end ,
19221925 -- Inquisitor
19231926 [" critical strikes ignore enemy monster elemental resistances" ] = { flag (" IgnoreElementalResistances" , { type = " Condition" , var = " CriticalStrike" }) },
19241927 [" non%-critical strikes penetrate (%d+)%% of enemy elemental resistances" ] = function (num ) return { mod (" ElementalPenetration" , " BASE" , num , { type = " Condition" , var = " CriticalStrike" , neg = true }) } end ,
19251928 [" consecrated ground you create applies (%d+)%% increased damage taken to enemies" ] = function (num ) return { mod (" EnemyModifier" , " LIST" , { mod = mod (" DamageTakenConsecratedGround" , " INC" , num , { type = " Condition" , var = " OnConsecratedGround" }) }) } end ,
19261929 [" you have consecrated ground around you while stationary" ] = { flag (" Condition:OnConsecratedGround" , { type = " Condition" , var = " Stationary" }) },
1927- [" consecrated ground you create grants immunity to elemental ailments to you and allies" ] = {
1928- mod (" AvoidChill" , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" }),
1929- mod (" AvoidFreeze" , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" }),
1930- mod (" AvoidIgnite" , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" }),
1931- mod (" AvoidShock" , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" }),
1932- },
1930+ [" consecrated ground you create grants immunity to elemental ailments to you and allies" ] = function ()
1931+ local mods = { }
1932+ for i , ailment in ipairs (data .elementalAilmentTypeList ) do
1933+ mods [i ] = mod (" Avoid" .. ailment , " BASE" , 100 , { type = " Condition" , var = " OnConsecratedGround" })
1934+ end
1935+ return mods
1936+ end ,
19331937 [" gain fanaticism for 4 seconds on reaching maximum fanatic charges" ] = function () return {
19341938 flag (" Condition:CanGainFanaticism" ),
19351939 } end ,
@@ -1978,20 +1982,22 @@ local specialModList = {
19781982 -- Pathfinder
19791983 [" always poison on hit while using a flask" ] = { mod (" PoisonChance" , " BASE" , 100 , { type = " Condition" , var = " UsingFlask" }) },
19801984 [" poisons you inflict during any flask effect have (%d+)%% chance to deal (%d+)%% more damage" ] = function (num , _ , more ) return { mod (" Damage" , " MORE" , tonumber (more ) * num / 100 , nil , 0 , KeywordFlag .Poison , { type = " Condition" , var = " UsingFlask" }) } end ,
1981- [" immune to elemental ailments during any flask effect" ] = {
1982- mod (" AvoidChill" , " BASE" , 100 , { type = " Condition" , var = " UsingFlask" }),
1983- mod (" AvoidFreeze" , " BASE" , 100 , { type = " Condition" , var = " UsingFlask" }),
1984- mod (" AvoidIgnite" , " BASE" , 100 , { type = " Condition" , var = " UsingFlask" }),
1985- mod (" AvoidShock" , " BASE" , 100 , { type = " Condition" , var = " UsingFlask" }),
1986- },
1985+ [" immune to elemental ailments during any flask effect" ] = function ()
1986+ local mods = { }
1987+ for i , ailment in ipairs (data .elementalAilmentTypeList ) do
1988+ mods [i ] = mod (" Avoid" .. ailment , " BASE" , 100 , { type = " Condition" , var = " UsingFlask" })
1989+ end
1990+ return mods
1991+ end ,
19871992 -- Raider
19881993 [" nearby enemies have (%d+)%% less accuracy rating while you have phasing" ] = function (num ) return { mod (" EnemyModifier" , " LIST" , { mod = mod (" Accuracy" , " MORE" , - num ) }, { type = " Condition" , var = " Phasing" } )} end ,
1989- [" immune to elemental ailments while phasing" ] = {
1990- mod (" AvoidChill" , " BASE" , 100 , { type = " Condition" , var = " Phasing" }),
1991- mod (" AvoidFreeze" , " BASE" , 100 , { type = " Condition" , var = " Phasing" }),
1992- mod (" AvoidIgnite" , " BASE" , 100 , { type = " Condition" , var = " Phasing" }),
1993- mod (" AvoidShock" , " BASE" , 100 , { type = " Condition" , var = " Phasing" }),
1994- },
1994+ [" immune to elemental ailments while phasing" ] = function ()
1995+ local mods = { }
1996+ for i , ailment in ipairs (data .elementalAilmentTypeList ) do
1997+ mods [i ] = mod (" Avoid" .. ailment , " BASE" , 100 , { type = " Condition" , var = " Phasing" })
1998+ end
1999+ return mods
2000+ end ,
19952001 [" nearby enemies have fire, cold and lightning exposure while you have phasing, applying %-(%d+)%% to those resistances" ] = function (num ) return {
19962002 mod (" EnemyModifier" , " LIST" , { mod = mod (" FireExposure" , " BASE" , - num ) }, { type = " Condition" , var = " Phasing" } ),
19972003 mod (" EnemyModifier" , " LIST" , { mod = mod (" ColdExposure" , " BASE" , - num ) }, { type = " Condition" , var = " Phasing" } ),
0 commit comments