Skip to content

Commit 3eba273

Browse files
committed
Add support for Gem Notables
Crystalline Resistance Gem Enthusiast Crystallised Immunities
1 parent 5046395 commit 3eba273

3 files changed

Lines changed: 30 additions & 18 deletions

File tree

src/Data/ModCache.lua

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ c["+1% to Maximum Lightning Resistance"]={{[1]={flags=0,keywordFlags=0,name="Lig
130130
c["+1% to Maximum Lightning Resistance per 4 Green Support Gems Socketed"]={{[1]={[1]={div=4,type="Multiplier",var="GreenSupportGems"},flags=0,keywordFlags=0,name="LightningResistMax",type="BASE",value=1}},nil}
131131
c["+1% to all Maximum Elemental Resistances"]={{[1]={flags=0,keywordFlags=0,name="ElementalResistMax",type="BASE",value=1}},nil}
132132
c["+1% to all Maximum Elemental Resistances if you have at"]={{[1]={flags=0,keywordFlags=0,name="ElementalResistMax",type="BASE",value=1}}," if you have at "}
133-
c["+1% to all Maximum Elemental Resistances if you have at least 5 Red, Green and Blue Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="ElementalResistMax",type="BASE",value=1}}," if you have at least 5 Red, Green and Blue Support Gems Socketed "}
133+
c["+1% to all Maximum Elemental Resistances if you have at least 5 Red, Green and Blue Support Gems Socketed"]={{[1]={[1]={threshold=5,type="MultiplierThreshold",var="RedSupportGems"},[2]={threshold=5,type="MultiplierThreshold",var="GreenSupportGems"},[3]={threshold=5,type="MultiplierThreshold",var="BlueSupportGems"},flags=0,keywordFlags=0,name="ElementalResistMax",type="BASE",value=1}},nil}
134134
c["+1% to all maximum Resistances if you have at least 150 Devotion"]={{[1]={[1]={stat="Devotion",threshold=150,type="StatThreshold"},flags=0,keywordFlags=0,name="ElementalResistMax",type="BASE",value=1},[2]={[1]={stat="Devotion",threshold=150,type="StatThreshold"},flags=0,keywordFlags=0,name="ChaosResistMax",type="BASE",value=1}},nil}
135135
c["+1% to maximum Block chance"]={{[1]={flags=0,keywordFlags=0,name="BlockChanceMax",type="BASE",value=1}},nil}
136136
c["+1.1% to Unarmed Melee Attack Critical Hit Chance"]={{[1]={flags=16777477,keywordFlags=0,name="CritChance",type="BASE",value=1.1}},nil}
@@ -274,12 +274,12 @@ c["+2 to Maximum Rage"]={{[1]={flags=0,keywordFlags=0,name="MaximumRage",type="B
274274
c["+2 to Melee Strike Range"]={{[1]={flags=0,keywordFlags=0,name="MeleeWeaponRange",type="BASE",value=2},[2]={flags=0,keywordFlags=0,name="UnarmedRange",type="BASE",value=2}},nil}
275275
c["+2% chance to Suppress Spell Damage"]={{[1]={flags=0,keywordFlags=0,name="SpellSuppressionChance",type="BASE",value=2}},nil}
276276
c["+2% to Maximum Cold Resistance"]={{[1]={flags=0,keywordFlags=0,name="ColdResistMax",type="BASE",value=2}},nil}
277-
c["+2% to Maximum Cold Resistance if you have at least 5 Blue Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="ColdResistMax",type="BASE",value=2}}," if you have at least 5 Blue Support Gems Socketed "}
277+
c["+2% to Maximum Cold Resistance if you have at least 5 Blue Support Gems Socketed"]={{[1]={[1]={threshold=5,type="MultiplierThreshold",var="BlueSupportGems"},flags=0,keywordFlags=0,name="ColdResistMax",type="BASE",value=2}},nil}
278278
c["+2% to Maximum Fire Resistance"]={{[1]={flags=0,keywordFlags=0,name="FireResistMax",type="BASE",value=2}},nil}
279-
c["+2% to Maximum Fire Resistance if you have at least 5 Red Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="FireResistMax",type="BASE",value=2}}," if you have at least 5 Red Support Gems Socketed "}
279+
c["+2% to Maximum Fire Resistance if you have at least 5 Red Support Gems Socketed"]={{[1]={[1]={threshold=5,type="MultiplierThreshold",var="RedSupportGems"},flags=0,keywordFlags=0,name="FireResistMax",type="BASE",value=2}},nil}
280280
c["+2% to Maximum Fire Resistance while Ignited"]={{[1]={[1]={type="Condition",var="Ignited"},flags=0,keywordFlags=0,name="FireResistMax",type="BASE",value=2}},nil}
281281
c["+2% to Maximum Lightning Resistance"]={{[1]={flags=0,keywordFlags=0,name="LightningResistMax",type="BASE",value=2}},nil}
282-
c["+2% to Maximum Lightning Resistance if you have at least 5 Green Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="LightningResistMax",type="BASE",value=2}}," if you have at least 5 Green Support Gems Socketed "}
282+
c["+2% to Maximum Lightning Resistance if you have at least 5 Green Support Gems Socketed"]={{[1]={[1]={threshold=5,type="MultiplierThreshold",var="GreenSupportGems"},flags=0,keywordFlags=0,name="LightningResistMax",type="BASE",value=2}},nil}
283283
c["+2% to Quality of all Skills"]={{[1]={flags=0,keywordFlags=0,name="GemProperty",type="LIST",value={key="quality",keyOfScaledMod="value",keyword="all",value=2}}},nil}
284284
c["+2% to maximum Block chance"]={{[1]={flags=0,keywordFlags=0,name="BlockChanceMax",type="BASE",value=2}},nil}
285285
c["+2.4% to Critical Hit Chance"]={{[1]={flags=0,keywordFlags=0,name="CritChance",type="BASE",value=2.4}},nil}
@@ -2691,15 +2691,12 @@ c["5% increased Life Regeneration rate"]={{[1]={flags=0,keywordFlags=0,name="Lif
26912691
c["5% increased Lightning Damage"]={{[1]={flags=0,keywordFlags=0,name="LightningDamage",type="INC",value=5}},nil}
26922692
c["5% increased Magnitude of Ailments you inflict"]={{[1]={flags=0,keywordFlags=0,name="AilmentMagnitude",type="INC",value=5}},nil}
26932693
c["5% increased Mana Regeneration Rate"]={{[1]={flags=0,keywordFlags=0,name="ManaRegen",type="INC",value=5}},nil}
2694-
c["5% increased Maximum Life if you have at least 10 Red Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="Life",type="INC",value=5}}," if you have at least 10 Red Support Gems Socketed "}
2695-
c["5% increased Maximum Life if you have at least 10 Red Support Gems Socketed 5% increased Maximum Mana if you have at least 10 Blue Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="Life",type="INC",value=5}}," if you have at least 10 Red Support Gems Socketed 5% increased Maximum Mana if you have at least 10 Blue Support Gems Socketed "}
2696-
c["5% increased Maximum Life if you have at least 10 Red Support Gems Socketed 5% increased Maximum Mana if you have at least 10 Blue Support Gems Socketed 5% increased Movement Speed if you have at least 10 Green Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="Life",type="INC",value=5}}," if you have at least 10 Red Support Gems Socketed 5% increased Maximum Mana if you have at least 10 Blue Support Gems Socketed 5% increased Movement Speed if you have at least 10 Green Support Gems Socketed "}
2694+
c["5% increased Maximum Life if you have at least 10 Red Support Gems Socketed"]={{[1]={[1]={threshold=10,type="MultiplierThreshold",var="RedSupportGems"},flags=0,keywordFlags=0,name="Life",type="INC",value=5}},nil}
26972695
c["5% increased Maximum Life per Socket filled"]={{[1]={[1]={type="Multiplier",var="RunesSocketedIn{SlotName}"},flags=0,keywordFlags=0,name="Life",type="INC",value=5}},nil}
2698-
c["5% increased Maximum Mana if you have at least 10 Blue Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="Mana",type="INC",value=5}}," if you have at least 10 Blue Support Gems Socketed "}
2699-
c["5% increased Maximum Mana if you have at least 10 Blue Support Gems Socketed 5% increased Movement Speed if you have at least 10 Green Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="Mana",type="INC",value=5}}," if you have at least 10 Blue Support Gems Socketed 5% increased Movement Speed if you have at least 10 Green Support Gems Socketed "}
2696+
c["5% increased Maximum Mana if you have at least 10 Blue Support Gems Socketed"]={{[1]={[1]={threshold=10,type="MultiplierThreshold",var="BlueSupportGems"},flags=0,keywordFlags=0,name="Mana",type="INC",value=5}},nil}
27002697
c["5% increased Maximum Mana per Socket filled"]={{[1]={[1]={type="Multiplier",var="RunesSocketedIn{SlotName}"},flags=0,keywordFlags=0,name="Mana",type="INC",value=5}},nil}
27012698
c["5% increased Movement Speed"]={{[1]={flags=0,keywordFlags=0,name="MovementSpeed",type="INC",value=5}},nil}
2702-
c["5% increased Movement Speed if you have at least 10 Green Support Gems Socketed"]={{[1]={flags=0,keywordFlags=0,name="MovementSpeed",type="INC",value=5}}," if you have at least 10 Green Support Gems Socketed "}
2699+
c["5% increased Movement Speed if you have at least 10 Green Support Gems Socketed"]={{[1]={[1]={threshold=10,type="MultiplierThreshold",var="GreenSupportGems"},flags=0,keywordFlags=0,name="MovementSpeed",type="INC",value=5}},nil}
27032700
c["5% increased Movement Speed if you've Pinned an Enemy Recently"]={{[1]={[1]={type="Condition",var="PinnedEnemyRecently"},flags=0,keywordFlags=0,name="MovementSpeed",type="INC",value=5}},nil}
27042701
c["5% increased Movement Speed per Frenzy Charge"]={{[1]={[1]={type="Multiplier",var="FrenzyCharge"},flags=0,keywordFlags=0,name="MovementSpeed",type="INC",value=5}},nil}
27052702
c["5% increased Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamage",type="INC",value=5}},nil}
@@ -4978,9 +4975,7 @@ c["Immobilise enemies at 50% buildup instead of 100%"]={nil,"Immobilise enemies
49784975
c["Immobilise enemies at 50% buildup instead of 100% Enemies Immobilised by you take 25% less Damage"]={nil,"Immobilise enemies at 50% buildup instead of 100% Enemies Immobilised by you take 25% less Damage "}
49794976
c["Immune to Bleeding if Equipped Helmet has higher Armour than Evasion Rating"]={{[1]={[1]={type="Condition",var="HelmetArmourHigherThanEvasion"},flags=0,keywordFlags=0,name="BleedImmune",type="FLAG",value=true}},nil}
49804977
c["Immune to Chaos Damage and Bleeding"]={{[1]={flags=0,keywordFlags=0,name="ChaosInoculation",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ChaosDamageTaken",type="MORE",value=-100},[3]={flags=0,keywordFlags=0,name="BleedImmune",type="FLAG",value=true}},nil}
4981-
c["Immune to Chill if a majority of your Socketed Support Gems are Blue"]={nil,"Immune to Chill if a majority of your Socketed Support Gems are Blue "}
4982-
c["Immune to Chill if a majority of your Socketed Support Gems are Blue Immune to Ignite if a majority of your Socketed Support Gems are Red"]={nil,"Immune to Chill if a majority of your Socketed Support Gems are Blue Immune to Ignite if a majority of your Socketed Support Gems are Red "}
4983-
c["Immune to Chill if a majority of your Socketed Support Gems are Blue Immune to Ignite if a majority of your Socketed Support Gems are Red Immune to Shock if a majority of your Socketed Support Gems are Green"]={nil,"Immune to Chill if a majority of your Socketed Support Gems are Blue Immune to Ignite if a majority of your Socketed Support Gems are Red Immune to Shock if a majority of your Socketed Support Gems are Green "}
4978+
c["Immune to Chill if a majority of your Socketed Support Gems are Blue"]={{[1]={[1]={type="Condition",var="MajorityBlueSocketedSupports"},flags=0,keywordFlags=0,name="ChillImmune",type="FLAG",value=true}},nil}
49844979
c["Immune to Corrupted Blood"]={nil,"Immune to Corrupted Blood "}
49854980
c["Immune to Corrupted Blood 40% reduced Duration of Bleeding on You"]={nil,"Immune to Corrupted Blood 40% reduced Duration of Bleeding on You "}
49864981
c["Immune to Elemental Ailments while on Consecrated Ground if you have at least 150 Devotion"]={{[1]={[1]={type="Condition",var="OnConsecratedGround"},[2]={stat="Devotion",threshold=150,type="StatThreshold"},flags=0,keywordFlags=0,name="ElementalAilmentImmune",type="FLAG",value=true}},nil}
@@ -4989,14 +4984,13 @@ c["Immune to Freeze and Chill while affected by Ice Archon"]={nil,"Immune to Fre
49894984
c["Immune to Hinder"]={nil,"Immune to Hinder "}
49904985
c["Immune to Hinder Immune to Maim"]={nil,"Immune to Hinder Immune to Maim "}
49914986
c["Immune to Ignite"]={{[1]={flags=0,keywordFlags=0,name="IgniteImmune",type="FLAG",value=true}},nil}
4992-
c["Immune to Ignite if a majority of your Socketed Support Gems are Red"]={nil,"Immune to Ignite if a majority of your Socketed Support Gems are Red "}
4993-
c["Immune to Ignite if a majority of your Socketed Support Gems are Red Immune to Shock if a majority of your Socketed Support Gems are Green"]={nil,"Immune to Ignite if a majority of your Socketed Support Gems are Red Immune to Shock if a majority of your Socketed Support Gems are Green "}
4987+
c["Immune to Ignite if a majority of your Socketed Support Gems are Red"]={{[1]={[1]={type="Condition",var="MajorityRedSocketedSupports"},flags=0,keywordFlags=0,name="IgniteImmune",type="FLAG",value=true}},nil}
49944988
c["Immune to Ignite while affected by Flame Archon"]={nil,"Immune to Ignite while affected by Flame Archon "}
49954989
c["Immune to Maim"]={nil,"Immune to Maim "}
49964990
c["Immune to Poison"]={{[1]={flags=0,keywordFlags=0,name="PoisonImmune",type="FLAG",value=true}},nil}
49974991
c["Immune to Poison if Equipped Helmet has higher Evasion Rating than Armour"]={{[1]={[1]={type="Condition",var="HelmetEvasionHigherThanArmour"},flags=0,keywordFlags=0,name="PoisonImmune",type="FLAG",value=true}},nil}
49984992
c["Immune to Shock"]={{[1]={flags=0,keywordFlags=0,name="ShockImmune",type="FLAG",value=true}},nil}
4999-
c["Immune to Shock if a majority of your Socketed Support Gems are Green"]={nil,"Immune to Shock if a majority of your Socketed Support Gems are Green "}
4993+
c["Immune to Shock if a majority of your Socketed Support Gems are Green"]={{[1]={[1]={type="Condition",var="MajorityGreenSocketedSupports"},flags=0,keywordFlags=0,name="ShockImmune",type="FLAG",value=true}},nil}
50004994
c["Immune to Shock while affected by Lightning Archon"]={nil,"Immune to Shock while affected by Lightning Archon "}
50014995
c["Increases and Reductions to Armour also apply to Energy Shield"]={nil,"Increases and Reductions to Armour also apply to Energy Shield "}
50024996
c["Increases and Reductions to Armour also apply to Energy Shield Recharge Rate at 40% of their value"]={{[1]={flags=0,keywordFlags=0,name="ArmourAppliesToEnergyShieldRecharge",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ImprovedArmourAppliesToEnergyShieldRecharge",type="MAX",value=40}},nil}
@@ -5790,7 +5784,6 @@ c["contributes to Flammability and Ignite Magnitudes"]={nil,"contributes to Flam
57905784
c["every different Grenade fired in the past 8 seconds"]={nil,"every different Grenade fired in the past 8 seconds "}
57915785
c["for 4 seconds, every 0.25 seconds while raised"]={nil,"for 4 seconds, every 0.25 seconds while raised "}
57925786
c["gain 6 Cold Surges or 6 Fire Surges"]={{}," Cold Surges or 6 Fire Surges "}
5793-
c["least 5 Red, Green and Blue Support Gems Socketed"]={nil,"least 5 Red, Green and Blue Support Gems Socketed "}
57945787
c["the enemy's Power for 6 seconds, up to a total of 500"]={nil,"the enemy's Power for 6 seconds, up to a total of 500 "}
57955788
c["the same damage to enemies within 1.8 metres"]={nil,"the same damage to enemies within 1.8 metres "}
57965789
c["until you take no Damage to Life for 5 seconds"]={nil,"until you take no Damage to Life for 5 seconds "}

src/Modules/CalcSetup.lua

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1821,6 +1821,15 @@ function calcs.initEnv(build, mode, override, specEnv)
18211821
env.modDB.multipliers.RedSupportGems = (env.modDB.multipliers.RedSupportGems or 0) + slotSupportGemSocketsCount.R
18221822
env.modDB.multipliers.GreenSupportGems = (env.modDB.multipliers.GreenSupportGems or 0) + slotSupportGemSocketsCount.G
18231823
env.modDB.multipliers.BlueSupportGems = (env.modDB.multipliers.BlueSupportGems or 0) + slotSupportGemSocketsCount.B
1824-
1824+
1825+
-- Crystallised Immunity notable support
1826+
if (slotSupportGemSocketsCount.R > slotSupportGemSocketsCount.G) and (slotSupportGemSocketsCount.R > slotSupportGemSocketsCount.B) then
1827+
env.modDB.conditions["MajorityRedSocketedSupports"] = true;
1828+
elseif (slotSupportGemSocketsCount.G > slotSupportGemSocketsCount.R) and (slotSupportGemSocketsCount.G > slotSupportGemSocketsCount.B) then
1829+
env.modDB.conditions["MajorityGreenSocketedSupports"] = true;
1830+
elseif (slotSupportGemSocketsCount.B > slotSupportGemSocketsCount.R) and (slotSupportGemSocketsCount.B > slotSupportGemSocketsCount.G) then
1831+
env.modDB.conditions["MajorityBlueSocketedSupports"] = true;
1832+
end
1833+
18251834
return env, cachedPlayerDB, cachedEnemyDB, cachedMinionDB
18261835
end

src/Modules/ModParser.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1537,6 +1537,13 @@ local modTagList = {
15371537
["while affected by a normal abyss jewel"] = { tag = { type = "MultiplierThreshold", var = "NormalAbyssJewels", threshold = 1 } },
15381538
["while an enemy with an open weakness is in your presence"] = { tag = { type = "Condition", var = "OpenWeaknessEnemyPresence" } }, -- This one means there's an enemy that has open weakness "nearby"
15391539
["against enemies with an open weakness"] = { tag = { type = "Condition", var = "EnemyHasOpenWeakness" } }, -- This one means the enemy you're targeting has open weakness
1540+
-- Gem conditions
1541+
["if you have at least (%d+) (%a+) support gems socketed"] = function(count, _, color) return { tag = { type = "MultiplierThreshold", var = firstToUpper(color) .. "SupportGems", threshold = count } } end,
1542+
["if you have at least (%d+) red, green and blue support gems socketed"] = function(count)
1543+
return { tagList = {
1544+
{ type = "MultiplierThreshold", var = "RedSupportGems", threshold = count },
1545+
{ type = "MultiplierThreshold", var = "GreenSupportGems", threshold = count },
1546+
{ type = "MultiplierThreshold", var = "BlueSupportGems", threshold = count } } } end,
15401547
-- Slot conditions
15411548
["when in main hand"] = { tag = { type = "SlotNumber", num = 1 } },
15421549
["when in off hand"] = { tag = { type = "SlotNumber", num = 2 } },
@@ -4720,6 +4727,9 @@ local specialModList = {
47204727
flag("CurseImmune", { type = "Condition", var = "UsingFlask" }),
47214728
flag("StunImmune", { type = "Condition", var = "UsingFlask" }),
47224729
},
4730+
["immun[ei]t?y? to (%a+) if a majority of your socketed support gems are (%a+)"] = function(_, ailment, color)
4731+
return { flag(firstToUpper(ailment) .. "Immune", {type = "Condition", var = "Majority" .. firstToUpper(color) .. "SocketedSupports"})}
4732+
end,
47234733
["gain (%d+)%% of maximum energy shield as additional (%a+) threshold"] = function(num, _, statType)
47244734
return { mod(firstToUpper(statType) .. "Threshold", "BASE", 1, { type = "PercentStat", stat = "EnergyShield", percent = num }) }
47254735
end,

0 commit comments

Comments
 (0)