From d8d74060f69bfb4977faa8a90b4d671ad9e2d016 Mon Sep 17 00:00:00 2001 From: DS-Koala Date: Sun, 8 Nov 2026 14:36:05 -0500 Subject: [PATCH] Added Remnants and Infusions to Calcs --- src/Data/ModCache.lua | 58 ++++++++++++++++-------------------- src/Modules/CalcPerform.lua | 13 ++++++++ src/Modules/CalcSections.lua | 20 +++++++++++++ src/Modules/CalcSetup.lua | 1 + src/Modules/ModParser.lua | 12 ++++++++ 5 files changed, 72 insertions(+), 32 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 50484e61c0..f070beece7 100644 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -154,10 +154,10 @@ c["+1 to Minimum Power Charges while you have at least 150 Devotion"]={{[1]={[1] c["+1 to Spirit for every 20 Evasion Rating on Equipped Body Armour"]={{[1]={[1]={div=20,stat="EvasionOnBody Armour",type="PerStat"},flags=0,keywordFlags=0,name="Spirit",type="BASE",value=1}},nil} c["+1 to Spirit for every 8 Item Energy Shield on Equipped Body Armour"]={{[1]={[1]={div=8,stat="EnergyShieldOnBody Armour",type="PerStat"},flags=0,keywordFlags=0,name="Spirit",type="BASE",value=1}},nil} c["+1 to Stun Threshold per Dexterity"]={{[1]={[1]={stat="Dex",type="PerStat"},flags=0,keywordFlags=0,name="StunThreshold",type="BASE",value=1}},nil} -c["+1 to maximum Cold Infusions"]={{}," maximum Cold Infusions "} -c["+1 to maximum Fire Infusions"]={{}," maximum Fire Infusions "} -c["+1 to maximum Lightning Infusions"]={{}," maximum Lightning Infusions "} -c["+1 to maximum number of Elemental Infusions"]={{}," maximum number of Elemental Infusions "} +c["+1 to maximum Cold Infusions"]={{[1]={flags=0,keywordFlags=0,name="ColdInfusionsMax",type="BASE",value=1}},nil} +c["+1 to maximum Fire Infusions"]={{[1]={flags=0,keywordFlags=0,name="FireInfusionsMax",type="BASE",value=1}},nil} +c["+1 to maximum Lightning Infusions"]={{[1]={flags=0,keywordFlags=0,name="LightningInfusionsMax",type="BASE",value=1}},nil} +c["+1 to maximum number of Elemental Infusions"]={{[1]={flags=0,keywordFlags=0,name="ElementalInfusionsMax",type="BASE",value=1}},nil} c["+1 to maximum number of Raised Zombies per 500 Strength"]={{[1]={[1]={div=500,stat="Str",type="PerStat"},flags=0,keywordFlags=0,name="ActiveZombieLimit",type="BASE",value=1}},nil} c["+1 to maximum number of Skeletons"]={{[1]={flags=0,keywordFlags=0,name="ActiveSkeletonLimit",type="BASE",value=1}},nil} c["+1 to maximum number of Spectres"]={{[1]={flags=0,keywordFlags=0,name="ActiveSpectreLimit",type="BASE",value=1}},nil} @@ -482,7 +482,7 @@ c["+2 to Maximum Power Charges"]={{[1]={flags=0,keywordFlags=0,name="PowerCharge c["+2 to Maximum Rage"]={{[1]={flags=0,keywordFlags=0,name="MaximumRage",type="BASE",value=2}},nil} c["+2 to Strength per 25 Tribute"]={{[1]={[1]={actor="parent",div=25,stat="Tribute",type="PerStat"},flags=0,keywordFlags=0,name="Str",type="BASE",value=2}},nil} c["+2 to Weapon Range"]={{[1]={flags=0,keywordFlags=0,name="WeaponRange",type="BASE",value=2}},nil} -c["+2 to maximum number of Elemental Infusions"]={{}," maximum number of Elemental Infusions "} +c["+2 to maximum number of Elemental Infusions"]={{[1]={flags=0,keywordFlags=0,name="ElementalInfusionsMax",type="BASE",value=2}},nil} c["+2 to maximum number of Spectres"]={{[1]={flags=0,keywordFlags=0,name="ActiveSpectreLimit",type="BASE",value=2}},nil} c["+2% to Cold Resistance"]={{[1]={flags=0,keywordFlags=0,name="ColdResist",type="BASE",value=2}},nil} c["+2% to Lightning Resistance"]={{[1]={flags=0,keywordFlags=0,name="LightningResist",type="BASE",value=2}},nil} @@ -1476,8 +1476,7 @@ c["10% chance to Pierce an Enemy"]={{[1]={flags=0,keywordFlags=0,name="PierceCha c["10% chance to Poison on Hit"]={{[1]={flags=0,keywordFlags=0,name="PoisonChance",type="BASE",value=10}},nil} c["10% chance to Shock"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockChance",type="BASE",value=10}},nil} c["10% chance to Steal Power, Frenzy, and Endurance Charges on Hit"]={{[1]={flags=4,keywordFlags=0,name="FlaskCharges",type="BASE",value=10}}," to Steal Power, Frenzy, and Endurance "} -c["10% chance to create an additional Remnant"]={{}," to create an additional Remnant "} -c["10% chance to create an additional Remnant Remnants can be collected from 50% further away"]={{}," to create an additional Remnant Remnants can be collected from 50% further away "} +c["10% chance to create an additional Remnant"]={{[1]={flags=0,keywordFlags=0,name="AdditionalRemnantChance",type="BASE",value=10}},nil} c["10% chance to gain Onslaught for 10 seconds on kill"]={{[1]={[1]={type="Condition",var="KilledRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} c["10% chance to gain Onslaught for 4 seconds on Hit"]={{[1]={flags=4,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} c["10% chance to gain Volatility on Kill"]={nil,"Volatility "} @@ -1497,7 +1496,7 @@ c["10% chance to revive one of your Persistent Minions when you kill an"]={{}," c["10% chance to revive one of your Persistent Minions when you kill an enemy affected by Abyssal Wasting"]={{}," to revive one of your Persistent s when you kill an enemy affected by Abyssal Wasting "} c["10% chance when a Charm is used to use another Charm without consuming Charges"]={{[1]={flags=0,keywordFlags=0,name="FlaskCharges",type="BASE",value=10}}," when a Charm is used to use another Charm without consuming "} c["10% chance when collecting an Elemental Infusion to gain an"]={{}," when collecting an Elemental Infusion to gain an "} -c["10% chance when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type"]={{}," when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type "} +c["10% chance when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type"]={{[1]={flags=0,keywordFlags=0,name="AdditionalInfusionChance",type="BASE",value=10}},nil} c["10% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge"]={{}," when you gain a Frenzy Charge to gain an additional Frenzy Charge "} c["10% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge +1 to Maximum Frenzy Charges"]={{[1]={flags=0,keywordFlags=0,name="FrenzyChargesMax",type="BASE",value=10}}," when you gain a Frenzy Charge to gain an additional Frenzy Charge +1 to "} c["10% chance when you gain a Power Charge to gain an additional Power Charge"]={{}," when you gain a Power Charge to gain an additional Power Charge "} @@ -1604,7 +1603,7 @@ c["10% increased Effect of your Mark Skills"]={{[1]={[1]={skillType=99,type="Ski c["10% increased Electrocute Buildup"]={{[1]={flags=0,keywordFlags=0,name="EnemyElectrocuteBuildup",type="INC",value=10}},nil} c["10% increased Elemental Ailment Threshold"]={{[1]={flags=0,keywordFlags=0,name="AilmentThreshold",type="INC",value=10}},nil} c["10% increased Elemental Damage"]={{[1]={flags=0,keywordFlags=0,name="ElementalDamage",type="INC",value=10}},nil} -c["10% increased Elemental Infusion duration"]={{[1]={flags=0,keywordFlags=0,name="Duration",type="INC",value=10}}," Elemental Infusion "} +c["10% increased Elemental Infusion duration"]={{[1]={flags=0,keywordFlags=0,name="ElementalInfusionDuration",type="INC",value=10}},nil} c["10% increased Endurance Charge Duration"]={{[1]={flags=0,keywordFlags=0,name="EnduranceChargesDuration",type="INC",value=10}},nil} c["10% increased Endurance, Frenzy and Power Charge Duration"]={{[1]={flags=0,keywordFlags=0,name="PowerChargesDuration",type="INC",value=10},[2]={flags=0,keywordFlags=0,name="FrenzyChargesDuration",type="INC",value=10},[3]={flags=0,keywordFlags=0,name="EnduranceChargesDuration",type="INC",value=10}},nil} c["10% increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",type="INC",value=10}},nil} @@ -2195,7 +2194,7 @@ c["15 Life Regeneration per second"]={{[1]={flags=0,keywordFlags=0,name="LifeReg c["15 to 25 Physical Thorns damage"]={{[1]={flags=32,keywordFlags=0,name="PhysicalMin",type="BASE",value=15},[2]={flags=32,keywordFlags=0,name="PhysicalMax",type="BASE",value=25}},nil} c["15% Surpassing Chance to gain a Puppet Master stack whenever you use a Command Skill"]={{},"% Surpassing Chance to gain a Puppet Master stack whenever you use a Command Skill "} c["15% additional Physical Damage Reduction"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageReduction",type="BASE",value=15}},nil} -c["15% chance for Remnants you create to grant their effects twice"]={{[1]={flags=0,keywordFlags=0,name="LocalEffect",type="BASE",value=15}}," for Remnants you create to grant their s twice "} +c["15% chance for Remnants you create to grant their effects twice"]={{[1]={flags=0,keywordFlags=0,name="RemnantDoubleEffectChance",type="BASE",value=15}},nil} c["15% chance for Shapeshift Slam Skills you use yourself to cause an additional Aftershock"]={{}," for Shapeshift Slam Skills you use yourself to cause an additional Aftershock "} c["15% chance that if you would gain Endurance Charges, you instead gain up to maximum Endurance Charges"]={{[1]={flags=0,keywordFlags=0,name="FlaskCharges",type="BASE",value=15}}," that if you would gain Endurance , you instead gain up to maximum Endurance Charges "} c["15% chance that if you would gain Frenzy Charges, you instead gain up to your maximum number of Frenzy Charges"]={{[1]={flags=0,keywordFlags=0,name="FlaskCharges",type="BASE",value=15}}," that if you would gain Frenzy , you instead gain up to your maximum number of Frenzy Charges "} @@ -2784,7 +2783,7 @@ c["20% chance to inflict Bleeding on Hit"]={{[1]={flags=0,keywordFlags=0,name="B c["20% chance to load a bolt into all Crossbow skills on Kill"]={{}," to load a bolt into all skills "} c["20% chance to load a bolt into all Crossbow skills on Kill Sacrifice 300 Life to not consume the last bolt when firing"]={{[1]={[1]={type="Condition",var="KilledRecently"},[2]={includeTransfigured=true,skillName="Sacrifice",type="SkillName"},flags=67108864,keywordFlags=0,name="Life",type="BASE",value=20}}," to load a bolt into all skills 300 to not consume the last bolt when firing "} c["20% chance to spread Tar when Hit"]={{}," to spread Tar when Hit "} -c["20% chance when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type"]={{}," when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type "} +c["20% chance when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type"]={{[1]={flags=0,keywordFlags=0,name="AdditionalInfusionChance",type="BASE",value=20}},nil} c["20% faster Curse Activation"]={{[1]={flags=0,keywordFlags=0,name="CurseActivation",type="INC",value=20}},nil} c["20% faster start of Energy Shield Recharge"]={{[1]={flags=0,keywordFlags=0,name="EnergyShieldRechargeFaster",type="INC",value=20}},nil} c["20% faster start of Energy Shield Recharge when not on Full Life"]={{[1]={[1]={neg=true,type="Condition",var="FullLife"},flags=0,keywordFlags=0,name="EnergyShieldRechargeFaster",type="INC",value=20}},nil} @@ -3694,8 +3693,7 @@ c["30% increased Elemental Damage if you've Chilled an Enemy Recently"]={{[1]={[ c["30% increased Elemental Damage if you've Ignited an Enemy Recently"]={{[1]={[1]={type="Condition",var="IgnitedEnemyRecently"},flags=0,keywordFlags=0,name="ElementalDamage",type="INC",value=30}},nil} c["30% increased Elemental Damage if you've Shocked an Enemy Recently"]={{[1]={[1]={type="Condition",var="ShockedEnemyRecently"},flags=0,keywordFlags=0,name="ElementalDamage",type="INC",value=30}},nil} c["30% increased Elemental Damage with Attack Skills during any Flask Effect"]={{[1]={[1]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=65536,name="ElementalDamage",type="INC",value=30}},nil} -c["30% increased Elemental Infusion duration"]={{[1]={flags=0,keywordFlags=0,name="Duration",type="INC",value=30}}," Elemental Infusion "} -c["30% increased Elemental Infusion duration Remnants can be collected from 30% further away"]={{[1]={flags=0,keywordFlags=0,name="Duration",type="INC",value=30}}," Elemental Infusion Remnants can be collected from 30% further away "} +c["30% increased Elemental Infusion duration"]={{[1]={flags=0,keywordFlags=0,name="ElementalInfusionDuration",type="INC",value=30}},nil} c["30% increased Endurance Charge Duration"]={{[1]={flags=0,keywordFlags=0,name="EnduranceChargesDuration",type="INC",value=30}},nil} c["30% increased Energy Shield Recharge Rate"]={{[1]={flags=0,keywordFlags=0,name="EnergyShieldRecharge",type="INC",value=30}},nil} c["30% increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",type="INC",value=30}},nil} @@ -4351,14 +4349,14 @@ c["5% chance to Daze on Hit"]={{[1]={flags=4,keywordFlags=0,name="DazeChance",ty c["5% chance to Freeze"]={{[1]={flags=0,keywordFlags=0,name="EnemyFreezeChance",type="BASE",value=5}},nil} c["5% chance to Gain Arcane Surge when you deal a Critical Hit"]={{[1]={[1]={type="Condition",var="CritRecently"},flags=0,keywordFlags=0,name="Condition:ArcaneSurge",type="FLAG",value=true}},nil} c["5% chance to Knock Enemies Back on hit"]={{[1]={flags=0,keywordFlags=0,name="EnemyKnockbackChance",type="BASE",value=5}},nil} -c["5% chance to create an additional Remnant"]={{}," to create an additional Remnant "} +c["5% chance to create an additional Remnant"]={{[1]={flags=0,keywordFlags=0,name="AdditionalRemnantChance",type="BASE",value=5}},nil} c["5% chance to gain Volatility on Kill"]={nil,"Volatility "} c["5% chance to grant Onslaught to nearby Enemies on Kill"]={{[1]={[1]={type="Condition",var="KilledRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="BASE",value=5}}," to grant to nearby Enemies "} c["5% chance to grant a Frenzy Charge to Allies in your Presence on Hit"]={{}," to grant a Frenzy Charge to "} c["5% chance to inflict Bleeding on Hit"]={{[1]={flags=0,keywordFlags=0,name="BleedChance",type="BASE",value=5}},nil} c["5% chance to not destroy Corpses when Consuming Corpses"]={{}," to not destroy Corpses when Consuming Corpses "} c["5% chance when collecting an Elemental Infusion to gain an"]={{}," when collecting an Elemental Infusion to gain an "} -c["5% chance when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type"]={{}," when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type "} +c["5% chance when collecting an Elemental Infusion to gain an additional Elemental Infusion of the same type"]={{[1]={flags=0,keywordFlags=0,name="AdditionalInfusionChance",type="BASE",value=5}},nil} c["5% faster start of Energy Shield Recharge"]={{[1]={flags=0,keywordFlags=0,name="EnergyShieldRechargeFaster",type="INC",value=5}},nil} c["5% increased Accuracy Rating"]={{[1]={flags=0,keywordFlags=0,name="Accuracy",type="INC",value=5}},nil} c["5% increased Area Damage"]={{[1]={flags=512,keywordFlags=0,name="Damage",type="INC",value=5}},nil} @@ -4774,7 +4772,7 @@ c["6% increased Duration of Damaging Ailments on Enemies"]={{[1]={flags=0,keywor c["6% increased Effect of your Mark Skills"]={{[1]={[1]={skillType=99,type="SkillType"},flags=0,keywordFlags=0,name="LocalEffect",type="INC",value=6}},nil} c["6% increased Elemental Damage"]={{[1]={flags=0,keywordFlags=0,name="ElementalDamage",type="INC",value=6}},nil} c["6% increased Elemental Damage per Frenzy Charge"]={{[1]={[1]={type="Multiplier",var="FrenzyCharge"},flags=0,keywordFlags=0,name="ElementalDamage",type="INC",value=6}},nil} -c["6% increased Elemental Infusion duration"]={{[1]={flags=0,keywordFlags=0,name="Duration",type="INC",value=6}}," Elemental Infusion "} +c["6% increased Elemental Infusion duration"]={{[1]={flags=0,keywordFlags=0,name="ElementalInfusionDuration",type="INC",value=6}},nil} c["6% increased Exposure Effect"]={{[1]={flags=0,keywordFlags=0,name="FireExposureEffect",type="INC",value=6},[2]={flags=0,keywordFlags=0,name="ColdExposureEffect",type="INC",value=6},[3]={flags=0,keywordFlags=0,name="LightningExposureEffect",type="INC",value=6}},nil} c["6% increased Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="FireDamage",type="INC",value=6}},nil} c["6% increased Flask Charges gained"]={{[1]={flags=0,keywordFlags=0,name="FlaskChargesGained",type="INC",value=6}},nil} @@ -5001,9 +4999,9 @@ c["75% increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",t c["75% increased Mana Regeneration Rate"]={{[1]={flags=0,keywordFlags=0,name="ManaRegen",type="INC",value=75}},nil} c["75% increased Melee Damage with Spears while Surrounded"]={{[1]={[1]={type="Condition",var="Surrounded"},flags=268435716,keywordFlags=0,name="Damage",type="INC",value=75}},nil} c["75% increased Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamage",type="INC",value=75}},nil} -end)();(function() c["75% increased Spell Damage"]={{[1]={flags=2,keywordFlags=0,name="Damage",type="INC",value=75}},nil} c["75% increased Spirit"]={{[1]={flags=0,keywordFlags=0,name="Spirit",type="INC",value=75}},nil} +end)();(function() c["75% increased Thorns damage if you've Blocked Recently"]={{[1]={[1]={type="Condition",var="BlockedRecently"},flags=32,keywordFlags=0,name="Damage",type="INC",value=75}},nil} c["75% increased chance to Shock"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockChance",type="INC",value=75}},nil} c["75% increased effect of Socketed Augment Items"]={{[1]={flags=0,keywordFlags=0,name="SocketedAugmentItemEffect",type="INC",value=75}},nil} @@ -5092,7 +5090,7 @@ c["8% increased Duration of Ignite, Shock and Chill on Enemies"]={{[1]={flags=0, c["8% increased Effect of your Mark Skills"]={{[1]={[1]={skillType=99,type="SkillType"},flags=0,keywordFlags=0,name="LocalEffect",type="INC",value=8}},nil} c["8% increased Elemental Ailment Threshold"]={{[1]={flags=0,keywordFlags=0,name="AilmentThreshold",type="INC",value=8}},nil} c["8% increased Elemental Damage"]={{[1]={flags=0,keywordFlags=0,name="ElementalDamage",type="INC",value=8}},nil} -c["8% increased Elemental Infusion duration"]={{[1]={flags=0,keywordFlags=0,name="Duration",type="INC",value=8}}," Elemental Infusion "} +c["8% increased Elemental Infusion duration"]={{[1]={flags=0,keywordFlags=0,name="ElementalInfusionDuration",type="INC",value=8}},nil} c["8% increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",type="INC",value=8}},nil} c["8% increased Evasion Rating per Frenzy Charge"]={{[1]={[1]={type="Multiplier",var="FrenzyCharge"},flags=0,keywordFlags=0,name="Evasion",type="INC",value=8}},nil} c["8% increased Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="FireDamage",type="INC",value=8}},nil} @@ -9111,8 +9109,8 @@ c["Recover 25 Life when your Trap is triggered by an Enemy"]={nil,"Recover 25 Li c["Recover 25% of Missing Life before being Hit by an Enemy"]={nil,"Recover 25% of Missing Life before being Hit by an Enemy "} c["Recover 258 Life when Used"]={nil,"Recover 258 Life when Used "} c["Recover 265 Mana when Used"]={nil,"Recover 265 Mana when Used "} -c["Recover 3% of Maximum Life when you collect a Remnant"]={nil,"Recover 3% of Maximum Life when you collect a Remnant "} -c["Recover 3% of Maximum Mana when you collect a Remnant"]={nil,"Recover 3% of Maximum Mana when you collect a Remnant "} +c["Recover 3% of Maximum Life when you collect a Remnant"]={{[1]={flags=0,keywordFlags=0,name="LifeOnRemnantPercent",type="BASE",value=3}},nil} +c["Recover 3% of Maximum Mana when you collect a Remnant"]={{[1]={flags=0,keywordFlags=0,name="ManaOnRemnantPercent",type="BASE",value=3}},nil} c["Recover 3% of maximum Energy Shield when you lose a Spirit Charge"]={nil,"Recover 3% of maximum Energy Shield when you lose a Spirit Charge "} c["Recover 3% of maximum Life for each Endurance Charge consumed"]={nil,"Recover 3% of maximum Life for each Endurance Charge consumed "} c["Recover 3% of maximum Life for each Endurance Charge consumed +1 to Maximum Endurance Charges"]={nil,"Recover 3% of maximum Life for each Endurance Charge consumed +1 to Maximum Endurance Charges "} @@ -9280,14 +9278,10 @@ c["Remembrancing 4050 songworthy deeds by the line of Vorana Passives in radius c["Remembrancing 8000 songworthy deeds by the line of Medved"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=2,type="kalguur"},id=8000}}}},nil} c["Remembrancing 8000 songworthy deeds by the line of Olroth"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=3,type="kalguur"},id=8000}}}},nil} c["Remembrancing 8000 songworthy deeds by the line of Vorana"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=1,type="kalguur"},id=8000}}}},nil} -c["Remnants can be collected from 20% further away"]={nil,"Remnants can be collected from 20% further away "} -c["Remnants can be collected from 25% further away"]={nil,"Remnants can be collected from 25% further away "} -c["Remnants can be collected from 30% further away"]={nil,"Remnants can be collected from 30% further away "} -c["Remnants can be collected from 50% further away"]={nil,"Remnants can be collected from 50% further away "} -c["Remnants can be collected from 50% further away All Flames of Chayula that you manifest are Blue"]={nil,"Remnants can be collected from 50% further away All Flames of Chayula that you manifest are Blue "} -c["Remnants can be collected from 50% further away All Flames of Chayula that you manifest are Purple"]={nil,"Remnants can be collected from 50% further away All Flames of Chayula that you manifest are Purple "} -c["Remnants can be collected from 50% further away All Flames of Chayula that you manifest are Red"]={nil,"Remnants can be collected from 50% further away All Flames of Chayula that you manifest are Red "} -c["Remnants can be collected from 50% further away Remnants you create reappear once, 3 seconds after being collected"]={nil,"Remnants can be collected from 50% further away Remnants you create reappear once, 3 seconds after being collected "} +c["Remnants can be collected from 20% further away"]={{[1]={flags=0,keywordFlags=0,name="RemnantPickupRange",type="INC",value=20}},nil} +c["Remnants can be collected from 25% further away"]={{[1]={flags=0,keywordFlags=0,name="RemnantPickupRange",type="INC",value=25}},nil} +c["Remnants can be collected from 30% further away"]={{[1]={flags=0,keywordFlags=0,name="RemnantPickupRange",type="INC",value=30}},nil} +c["Remnants can be collected from 50% further away"]={{[1]={flags=0,keywordFlags=0,name="RemnantPickupRange",type="INC",value=50}},nil} c["Remnants you create affect Allies in your Presence as well as you when collected"]={nil,"Remnants you create affect as well as you when collected "} c["Remnants you create affect Allies in your Presence as well as you when collected 100% increased Reservation Efficiency of Remnant Skills"]={nil,"Remnants you create affect as well as you when collected 100% increased Reservation Efficiency of Remnant Skills "} c["Remnants you create have 10% increased effect"]={{[1]={flags=0,keywordFlags=0,name="RemnantEffect",type="INC",value=10}},nil} @@ -9388,16 +9382,16 @@ c["Skills have -1 seconds to Cooldown"]={{[1]={flags=0,keywordFlags=0,name="Cool c["Skills have -1.5 seconds to Cooldown"]={{[1]={flags=0,keywordFlags=0,name="CooldownRecoveryFromTemporalis",type="BASE",value=-1.5}},nil} c["Skills have -2 seconds to Cooldown"]={{[1]={flags=0,keywordFlags=0,name="CooldownRecoveryFromTemporalis",type="BASE",value=-2}},nil} c["Skills have 10% chance to not remove Charges but still count as consuming them"]={{[1]={flags=0,keywordFlags=0,name="FlaskCharges",type="BASE",value=10}}," to not remove but still count as consuming them "} -c["Skills have 10% chance to not remove Elemental Infusions but still count as consuming them"]={{}," to not remove Elemental Infusions but still count as consuming them "} +c["Skills have 10% chance to not remove Elemental Infusions but still count as consuming them"]={{[1]={flags=0,keywordFlags=0,name="InfusionRetentionChance",type="BASE",value=10}},nil} c["Skills have 100% longer Perfect Timing window during effect"]={{},"% longer Perfect Timing window "} c["Skills have 120% longer Perfect Timing window during effect"]={{},"% longer Perfect Timing window "} c["Skills have 120% longer Perfect Timing window during effect 150% increased Amount Recovered"]={{[1]={[1]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="FlaskRecovery",type="BASE",value=120}},"% longer Perfect Timing window 150% increased "} c["Skills have 13% chance to not remove Charges but still count as consuming them"]={{[1]={flags=0,keywordFlags=0,name="FlaskCharges",type="BASE",value=13}}," to not remove but still count as consuming them "} c["Skills have 20% increased Critical Hit Chance per Connected Blue Support Gem"]={{[1]={flags=0,keywordFlags=0,name="SkillCritChanceIncreasedPerBlueSupport",type="FLAG",value=20}},nil} c["Skills have 45% chance to not remove Elemental Infusions but still count as consuming them if you've lost an Archon Buff in the past 6 seconds"]={{}," to not remove Elemental Infusions but still count as consuming them if you've lost an Archon Buff in the past 6 seconds "} -c["Skills have 5% chance to not remove Elemental Infusions but still count as consuming them"]={{}," to not remove Elemental Infusions but still count as consuming them "} +c["Skills have 5% chance to not remove Elemental Infusions but still count as consuming them"]={{[1]={flags=0,keywordFlags=0,name="InfusionRetentionChance",type="BASE",value=5}},nil} c["Skills have 6% increased Skill Speed per Connected Green Support Gem"]={{[1]={flags=0,keywordFlags=0,name="SkillSpeedIncreasedPerGreenSupport",type="FLAG",value=6}},nil} -c["Skills have 8% chance to not remove Elemental Infusions but still count as consuming them"]={{}," to not remove Elemental Infusions but still count as consuming them "} +c["Skills have 8% chance to not remove Elemental Infusions but still count as consuming them"]={{[1]={flags=0,keywordFlags=0,name="InfusionRetentionChance",type="BASE",value=8}},nil} c["Skills have a 125% longer Perfect Timing window"]={{[1]={flags=0,keywordFlags=0,name="PerfectTiming",type="INC",value=125}},nil} c["Skills have a 15% chance to not consume Glory"]={{}," to not consume Glory "} c["Skills have a 150% longer Perfect Timing window"]={{[1]={flags=0,keywordFlags=0,name="PerfectTiming",type="INC",value=150}},nil} @@ -10003,13 +9997,13 @@ c["Your speed is Unaffected by Slows while Sprinting"]={nil,"Your speed is Unaff c["Your speed is Unaffected by Slows while Sprinting 10% less Movement and Skill Speed per Dodge Roll in the past 20 seconds"]={nil,"Your speed is Unaffected by Slows while Sprinting 10% less Movement and Skill Speed per Dodge Roll in the past 20 seconds "} c["Your speed is unaffected by Slows"]={{[1]={flags=0,keywordFlags=0,name="UnaffectedBySlows",type="FLAG",value=true}},nil} c["Your spells have 100% chance to Shock against Frozen Enemies"]={nil,"Your spells have 100% chance to Shock against Frozen Enemies "} -end)();(function() c["Zealot's Oath"]={{[1]={flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Zealot's Oath"},[2]={flags=0,keywordFlags=0,name="Condition:HaveZealot'sOath",type="FLAG",value=true}},nil} c["Zealot's Oath during Effect"]={{[1]={[1]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="ZealotsOath",type="FLAG",value=true}},nil} c["additional Elemental Infusion of the same type"]={nil,"additional Elemental Infusion of the same type "} c["additional Rune-only sockets:"]={{},nil} c["as being boosted by Chilled Ground"]={nil,"as being boosted by Chilled Ground "} c["as being boosted by Ignited Ground"]={nil,"as being boosted by Ignited Ground "} +end)();(function() c["as being boosted by Ignited, Shocked, and Chilled Ground"]={nil,"as being boosted by Ignited, Shocked, and Chilled Ground "} c["as being boosted by Shocked Ground"]={nil,"as being boosted by Shocked Ground "} c["being Shapeshifted for at least 8 seconds"]={nil,"being Shapeshifted for at least 8 seconds "} diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index b0fe494a77..462b49316c 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -3270,6 +3270,19 @@ function calcs.perform(env, skipEHP) doActorMisc(env, env.minion) end + output.ColdInfusionsMax = m_max(0, modDB:Sum("BASE", nil, "ElementalInfusionsMax", "ColdInfusionsMax")) + output.FireInfusionsMax = m_max(0, modDB:Sum("BASE", nil, "ElementalInfusionsMax", "FireInfusionsMax")) + output.LightningInfusionsMax = m_max(0, modDB:Sum("BASE", nil, "ElementalInfusionsMax", "LightningInfusionsMax")) + output.VerisiumInfusionsMax = m_max(output.ColdInfusionsMax, output.FireInfusionsMax, output.LightningInfusionsMax) + if breakdown then + breakdown.VerisiumInfusionsMax = { + s_format("%d ^8(maximum Cold Infusions)", output.ColdInfusionsMax), + s_format("%d ^8(maximum Fire Infusions)", output.FireInfusionsMax), + s_format("%d ^8(maximum Lightning Infusions)", output.LightningInfusionsMax), + s_format("= %d ^8(highest Elemental Infusion maximum)", output.VerisiumInfusionsMax), + } + end + -- Calculate maximum and apply the strongest non-damaging ailments local ailmentData = data.nonDamagingAilment local ailments = { diff --git a/src/Modules/CalcSections.lua b/src/Modules/CalcSections.lua index 787ffca96b..a30e25c705 100644 --- a/src/Modules/CalcSections.lua +++ b/src/Modules/CalcSections.lua @@ -2010,6 +2010,26 @@ return { { label = "Duration", { format = "{0:output:PowerChargesDuration}s", { modName = { "PowerChargesDuration", "ChargeDuration" } } }, }, } }, } }, +{ 1, "Remnants", 3, colorCodes.RAGE, {{ defaultCollapsed = true, label = "Remnants", data = { + { label = "Double Effect", { format = "{1:mod:1}%", { modName = "RemnantDoubleEffectChance", modType = "BASE" }, }, }, + { label = "Extra Remnant", { format = "{1:mod:1}%", { modName = "AdditionalRemnantChance", modType = "BASE" }, }, }, + { label = "Increased Effect", { format = "{1:mod:1}%", { modName = "RemnantEffect", modType = "INC" }, }, }, + { label = "Pickup Range", { format = "{1:mod:1}% increased", { modName = "RemnantPickupRange", modType = "INC" }, }, }, + { label = "Life on Pickup", { format = "{1:mod:1}% of max", { modName = "LifeOnRemnantPercent", modType = "BASE" }, }, }, + { label = "Mana on Pickup", { format = "{1:mod:1}% of max", { modName = "ManaOnRemnantPercent", modType = "BASE" }, }, }, +} } +} }, +{ 1, "Infusions", 3, colorCodes.NORMAL, {{ defaultCollapsed = true, label = "Infusions", data = { + extra = colorCodes.COLD.."{0:output:ColdInfusionsMax}^7, "..colorCodes.FIRE.."{0:output:FireInfusionsMax}^7, "..colorCodes.LIGHTNING.."{0:output:LightningInfusionsMax}^7, {0:output:VerisiumInfusionsMax}", + { label = "Extra on Pickup", { format = "{1:mod:1}%", { modName = "AdditionalInfusionChance", modType = "BASE" }, }, }, + { label = "Increased Duration", { format = "{1:mod:1}%", { modName = "ElementalInfusionDuration", modType = "INC" }, }, }, + { label = "Chance to Retain", { format = "{1:mod:1}%", { modName = "InfusionRetentionChance", modType = "BASE" }, }, }, + { label = "Max Cold", { format = "{0:output:ColdInfusionsMax}", { modName = { "ElementalInfusionsMax", "ColdInfusionsMax" } }, }, }, + { label = "Max Fire", { format = "{0:output:FireInfusionsMax}", { modName = { "ElementalInfusionsMax", "FireInfusionsMax" } }, }, }, + { label = "Max Lightning", { format = "{0:output:LightningInfusionsMax}", { modName = { "ElementalInfusionsMax", "LightningInfusionsMax" } }, }, }, + { label = "Max Verisium", { format = "{0:output:VerisiumInfusionsMax}", { breakdown = "VerisiumInfusionsMax" }, }, }, +} } +} }, -- misc defense { 1, "MiscDefences", 3, colorCodes.DEFENCE, {{ defaultCollapsed = false, label = "Other Defences", data = { { label = "Movement Speed", { format = "x {3:output:EffectiveMovementSpeedMod}", { breakdown = "EffectiveMovementSpeedMod" }, { modName = { "MovementSpeed", "MovementSpeedEqualHighestLinkedPlayers" } }, }, }, diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index 95b78f6bc9..187abd15bd 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -39,6 +39,7 @@ function calcs.initModDB(env, modDB) modDB:NewMod("PowerChargesMax", "BASE", data.characterConstants["max_power_charges"], "Base") modDB:NewMod("FrenzyChargesMax", "BASE", data.characterConstants["max_frenzy_charges"], "Base") modDB:NewMod("EnduranceChargesMax", "BASE", data.characterConstants["max_endurance_charges"], "Base") + modDB:NewMod("ElementalInfusionsMax", "BASE", data.gameConstants["BaseMaximumInfusionCount"], "Base") modDB:NewMod("MaximumRage", "BASE", data.gameConstants["BaseMaximumRage"], "Base") modDB:NewMod("SiphoningChargesMax", "BASE", 0, "Base") modDB:NewMod("ChallengerChargesMax", "BASE", 0, "Base") diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index ff8a00f8fa..a43961a1e7 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -519,6 +519,10 @@ local modNameList = { -- Charges ["maximum power charge"] = "PowerChargesMax", ["maximum power charges"] = "PowerChargesMax", + ["maximum number of elemental infusions"] = "ElementalInfusionsMax", + ["maximum cold infusions"] = "ColdInfusionsMax", + ["maximum fire infusions"] = "FireInfusionsMax", + ["maximum lightning infusions"] = "LightningInfusionsMax", ["minimum power charge"] = "PowerChargesMin", ["minimum power charges"] = "PowerChargesMin", ["power charge duration"] = "PowerChargesDuration", @@ -661,6 +665,7 @@ local modNameList = { ["presence radius"] = "PresenceRadius", ["surrounded area of effect"] = "SurroundedArea", ["duration"] = "Duration", + ["elemental infusion duration"] = "ElementalInfusionDuration", ["skill effect duration"] = "Duration", ["fuse duration"] = "Duration", ["detonation time"] = "DetonationTime", @@ -5627,6 +5632,13 @@ local specialModList = { ["flasks applied to you have (%d+)%% reduced effect"] = function(num) return { mod("FlaskEffect", "INC", -num, { type = "ActorCondition", actor = "player"}) } end, ["remnants have (%d+)%% increased effect"] = function(num) return { mod("RemnantEffect", "INC", num) } end, ["remnants you create have (%d+)%% increased effect"] = function(num) return { mod("RemnantEffect", "INC", num) } end, + ["remnants can be collected from (%d*%.?%d+)%% further away"] = function(num) return { mod("RemnantPickupRange", "INC", num) } end, + ["(%d*%.?%d+)%% chance for remnants you create to grant their effects twice"] = function(num) return { mod("RemnantDoubleEffectChance", "BASE", num) } end, + ["(%d*%.?%d+)%% chance to create an additional remnant"] = function(num) return { mod("AdditionalRemnantChance", "BASE", num) } end, + ["recover (%d*%.?%d+)%% of maximum life when you collect a remnant"] = function(num) return { mod("LifeOnRemnantPercent", "BASE", num) } end, + ["recover (%d*%.?%d+)%% of maximum mana when you collect a remnant"] = function(num) return { mod("ManaOnRemnantPercent", "BASE", num) } end, + ["(%d*%.?%d+)%% chance when collecting an elemental infusion to gain an%s+additional elemental infusion of the same type"] = function(num) return { mod("AdditionalInfusionChance", "BASE", num) } end, + ["skills have (%d*%.?%d+)%% chance to not remove elemental infusions but still count as consuming them"] = function(num) return { mod("InfusionRetentionChance", "BASE", num) } end, ["(%d+)%% increased charm cooldown recovery rate"] = function(num) return { mod("CharmCooldownRecovery", "INC", num) } end, ["adds (%d+) passive skills"] = function(num) return { mod("JewelData", "LIST", { key = "clusterJewelNodeCount", value = num }) } end, ["1 added passive skill is a jewel socket"] = { mod("JewelData", "LIST", { key = "clusterJewelSocketCount", value = 1 }) },