From 713e05b485fda59274d0f926e9a194b7a96a3110 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sat, 14 Mar 2026 20:20:17 +1100 Subject: [PATCH 1/5] Add new 3.28 Uniques Adds the new uniques and support for some of their mods Updates the pre-release uniques with their mod rolls --- src/Data/ModCache.lua | 51 ++++++-- src/Data/Uniques/Special/New.lua | 206 ++++++++++++++++++++++++------- src/Modules/ConfigOptions.lua | 3 + src/Modules/ModParser.lua | 1 + 4 files changed, 206 insertions(+), 55 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 35a99d1926..87abfb8568 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -857,13 +857,13 @@ c["+27% to Lightning Resistance"]={{[1]={flags=0,keywordFlags=0,name="LightningR c["+270 to maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="BASE",value=270}},nil} c["+28 to Dexterity"]={{[1]={flags=0,keywordFlags=0,name="Dex",type="BASE",value=28}},nil} c["+28 to Dexterity and Intelligence"]={{[1]={flags=0,keywordFlags=0,name="Dex",type="BASE",value=28},[2]={flags=0,keywordFlags=0,name="Int",type="BASE",value=28},[3]={flags=0,keywordFlags=0,name="DexInt",type="BASE",value=28}},nil} +c["+28 to Intelligence"]={{[1]={flags=0,keywordFlags=0,name="Int",type="BASE",value=28}},nil} c["+28 to Strength and Dexterity"]={{[1]={flags=0,keywordFlags=0,name="Str",type="BASE",value=28},[2]={flags=0,keywordFlags=0,name="Dex",type="BASE",value=28},[3]={flags=0,keywordFlags=0,name="StrDex",type="BASE",value=28}},nil} c["+28 to Strength and Intelligence"]={{[1]={flags=0,keywordFlags=0,name="Str",type="BASE",value=28},[2]={flags=0,keywordFlags=0,name="Int",type="BASE",value=28},[3]={flags=0,keywordFlags=0,name="StrInt",type="BASE",value=28}},nil} c["+28 to all Attributes"]={{[1]={flags=0,keywordFlags=0,name="Str",type="BASE",value=28},[2]={flags=0,keywordFlags=0,name="Dex",type="BASE",value=28},[3]={flags=0,keywordFlags=0,name="Int",type="BASE",value=28},[4]={flags=0,keywordFlags=0,name="All",type="BASE",value=28}},nil} c["+28 to maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="BASE",value=28}},nil} c["+28 to maximum Mana"]={{[1]={flags=0,keywordFlags=0,name="Mana",type="BASE",value=28}},nil} c["+28% to Chaos Damage over Time Multiplier"]={{[1]={flags=0,keywordFlags=0,name="ChaosDotMultiplier",type="BASE",value=28}},nil} -c["+28% to Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=28}},nil} c["+28% to Cold Damage over Time Multiplier"]={{[1]={flags=0,keywordFlags=0,name="ColdDotMultiplier",type="BASE",value=28}},nil} c["+28% to Cold Resistance"]={{[1]={flags=0,keywordFlags=0,name="ColdResist",type="BASE",value=28}},nil} c["+28% to Fire Damage over Time Multiplier"]={{[1]={flags=0,keywordFlags=0,name="FireDotMultiplier",type="BASE",value=28}},nil} @@ -1285,10 +1285,12 @@ c["+3000 to Armour during Soul Gain Prevention"]={{[1]={[1]={type="Condition",va c["+305 to Accuracy Rating"]={{[1]={flags=0,keywordFlags=0,name="Accuracy",type="BASE",value=305}},nil} c["+31 to maximum Mana"]={{[1]={flags=0,keywordFlags=0,name="Mana",type="BASE",value=31}},nil} c["+31% to Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=31}},nil} +c["+32 to Intelligence"]={{[1]={flags=0,keywordFlags=0,name="Int",type="BASE",value=32}},nil} c["+32 to maximum Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EnergyShield",type="BASE",value=32}},nil} c["+32% chance to Suppress Spell Damage"]={{[1]={flags=0,keywordFlags=0,name="SpellSuppressionChance",type="BASE",value=32}},nil} c["+32% to Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=32}},nil} c["+32% to Fire Resistance"]={{[1]={flags=0,keywordFlags=0,name="FireResist",type="BASE",value=32}},nil} +c["+32% to Physical Damage over Time Multiplier"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDotMultiplier",type="BASE",value=32}},nil} c["+320 to Armour and Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="ArmourAndEvasion",type="BASE",value=320}},nil} c["+325 to Accuracy Rating"]={{[1]={flags=0,keywordFlags=0,name="Accuracy",type="BASE",value=325}},nil} c["+325 to Armour"]={{[1]={flags=0,keywordFlags=0,name="Armour",type="BASE",value=325}},nil} @@ -1322,6 +1324,7 @@ c["+35% to Damage over Time Multiplier for Bleeding from Hits with this Weapon"] c["+35% to Fire Resistance"]={{[1]={flags=0,keywordFlags=0,name="FireResist",type="BASE",value=35}},nil} c["+35% to Global Critical Strike Multiplier"]={{[1]={[1]={type="Global"},flags=0,keywordFlags=0,name="CritMultiplier",type="BASE",value=35}},nil} c["+35% to Lightning Resistance"]={{[1]={flags=0,keywordFlags=0,name="LightningResist",type="BASE",value=35}},nil} +c["+35% to Physical Damage over Time Multiplier"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDotMultiplier",type="BASE",value=35}},nil} c["+35% to all Elemental Resistances"]={{[1]={flags=0,keywordFlags=0,name="ElementalResist",type="BASE",value=35}},nil} c["+350 to Accuracy Rating"]={{[1]={flags=0,keywordFlags=0,name="Accuracy",type="BASE",value=350}},nil} c["+350 to Armour"]={{[1]={flags=0,keywordFlags=0,name="Armour",type="BASE",value=350}},nil} @@ -1559,7 +1562,6 @@ c["+50% to Global Critical Strike Multiplier while you have a Frenzy Charge"]={{ c["+50% to Lightning Resistance"]={{[1]={flags=0,keywordFlags=0,name="LightningResist",type="BASE",value=50}},nil} c["+50% to Quality of Socketed Gems"]={{[1]={[1]={slotName="{SlotName}",type="SocketedIn"},flags=0,keywordFlags=0,name="GemProperty",type="LIST",value={key="quality",keyword="all",value=50}}},nil} c["+50% to all Elemental Resistances"]={{[1]={flags=0,keywordFlags=0,name="ElementalResist",type="BASE",value=50}},nil} -c["+50% to global critical strike chance"]={{[1]={[1]={type="Global"},flags=0,keywordFlags=0,name="CritChance",type="BASE",value=50}},nil} c["+500 to Accuracy Rating"]={{[1]={flags=0,keywordFlags=0,name="Accuracy",type="BASE",value=500}},nil} c["+500 to Accuracy Rating while at Maximum Frenzy Charges"]={{[1]={[1]={stat="FrenzyCharges",thresholdStat="FrenzyChargesMax",type="StatThreshold"},flags=0,keywordFlags=0,name="Accuracy",type="BASE",value=500}},nil} c["+500 to Accuracy against Bleeding Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Bleeding"},flags=0,keywordFlags=0,name="AccuracyVsEnemy",type="BASE",value=500}},nil} @@ -1658,6 +1660,7 @@ c["+600 Strength and Intelligence Requirement"]={{[1]={flags=0,keywordFlags=0,na c["+600 to Armour"]={{[1]={flags=0,keywordFlags=0,name="Armour",type="BASE",value=600}},nil} c["+61% to Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=61}},nil} c["+62 to maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="BASE",value=62}},nil} +c["+63 to maximum Mana"]={{[1]={flags=0,keywordFlags=0,name="Mana",type="BASE",value=63}},nil} c["+63% to Cold Resistance"]={{[1]={flags=0,keywordFlags=0,name="ColdResist",type="BASE",value=63}},nil} c["+63% to Fire Resistance"]={{[1]={flags=0,keywordFlags=0,name="FireResist",type="BASE",value=63}},nil} c["+63% to Lightning Resistance"]={{[1]={flags=0,keywordFlags=0,name="LightningResist",type="BASE",value=63}},nil} @@ -1772,7 +1775,6 @@ c["+88 to maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="BASE",v c["+88% to Cold Resistance when Socketed with a Green Gem"]={{[1]={[1]={keyword="dexterity",slotName="{SlotName}",sockets={[1]=1},type="SocketedIn"},flags=0,keywordFlags=0,name="SocketProperty",type="LIST",value={value={flags=0,keywordFlags=0,name="ColdResist",type="BASE",value=88}}}},nil} c["+88% to Fire Resistance when Socketed with a Red Gem"]={{[1]={[1]={keyword="strength",slotName="{SlotName}",sockets={[1]=1},type="SocketedIn"},flags=0,keywordFlags=0,name="SocketProperty",type="LIST",value={value={flags=0,keywordFlags=0,name="FireResist",type="BASE",value=88}}}},nil} c["+88% to Lightning Resistance when Socketed with a Blue Gem"]={{[1]={[1]={keyword="intelligence",slotName="{SlotName}",sockets={[1]=1},type="SocketedIn"},flags=0,keywordFlags=0,name="SocketProperty",type="LIST",value={value={flags=0,keywordFlags=0,name="LightningResist",type="BASE",value=88}}}},nil} -c["+89 to maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="BASE",value=89}},nil} c["+9 to maximum Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EnergyShield",type="BASE",value=9}},nil} c["+9% Chance to Block Spell Damage"]={{[1]={flags=0,keywordFlags=0,name="SpellBlockChance",type="BASE",value=9}},nil} c["+9% to Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=9}},nil} @@ -1903,6 +1905,7 @@ c["0% increased Rarity of Items found"]={{[1]={flags=0,keywordFlags=0,name="Loot c["0% increased Skill Effect Duration"]={{[1]={flags=0,keywordFlags=0,name="Duration",type="INC",value=0}},nil} c["0% increased maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="INC",value=0}},nil} c["0% of Attack Damage Leeched as Mana"]={{[1]={flags=1,keywordFlags=0,name="DamageManaLeech",type="BASE",value=0}},nil} +c["0% of Chaos Damage Leeched as Life"]={{[1]={flags=0,keywordFlags=0,name="ChaosDamageLifeLeech",type="BASE",value=0}},nil} c["0% of Physical Attack Damage Leeched as Life"]={{[1]={flags=1,keywordFlags=0,name="PhysicalDamageLifeLeech",type="BASE",value=0}},nil} c["0% reduced Charges per use"]={{[1]={flags=0,keywordFlags=0,name="FlaskChargesUsed",type="INC",value=-0}},nil} c["0.2% of Attack Damage Leeched as Mana per Power Charge"]={{[1]={[1]={type="Multiplier",var="PowerCharge"},flags=1,keywordFlags=0,name="DamageManaLeech",type="BASE",value=0.2}},nil} @@ -1929,6 +1932,7 @@ c["0.4% of Fire Damage Leeched as Life"]={{[1]={flags=0,keywordFlags=0,name="Fir c["0.4% of Physical Attack Damage Leeched as Life"]={{[1]={flags=1,keywordFlags=0,name="PhysicalDamageLifeLeech",type="BASE",value=0.4}},nil} c["0.4% of Physical Attack Damage Leeched as Mana"]={{[1]={flags=1,keywordFlags=0,name="PhysicalDamageManaLeech",type="BASE",value=0.4}},nil} c["0.4% of Physical Attack Damage Leeched as Mana per Blue Socket"]={{[1]={[1]={type="Multiplier",var="BlueSocketIn{SlotName}"},flags=1,keywordFlags=0,name="PhysicalDamageManaLeech",type="BASE",value=0.4}},nil} +c["0.45% of Chaos Damage Leeched as Life"]={{[1]={flags=0,keywordFlags=0,name="ChaosDamageLifeLeech",type="BASE",value=0.45}},nil} c["0.5% of Attack Damage Leeched as Life"]={{[1]={flags=1,keywordFlags=0,name="DamageLifeLeech",type="BASE",value=0.5}},nil} c["0.5% of Attack Damage Leeched as Life against Maimed Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Maimed"},flags=1,keywordFlags=0,name="DamageLifeLeech",type="BASE",value=0.5}},nil} c["0.5% of Attack Damage Leeched as Life per Frenzy Charge"]={{[1]={[1]={type="Multiplier",var="FrenzyCharge"},flags=1,keywordFlags=0,name="DamageLifeLeech",type="BASE",value=0.5}},nil} @@ -2320,6 +2324,7 @@ c["1% of Attack Damage Leeched as Life against Chilled enemies"]={{[1]={[1]={act c["1% of Attack Damage Leeched as Life on Critical Strike"]={{[1]={[1]={type="Condition",var="CriticalStrike"},flags=1,keywordFlags=0,name="DamageLifeLeech",type="BASE",value=1}},nil} c["1% of Attack Damage Leeched as Mana"]={{[1]={flags=1,keywordFlags=0,name="DamageManaLeech",type="BASE",value=1}},nil} c["1% of Attack Damage leeched as Life against Bleeding Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Bleeding"},flags=1,keywordFlags=0,name="DamageLifeLeech",type="BASE",value=1}},nil} +c["1% of Chaos Damage Leeched as Life"]={{[1]={flags=0,keywordFlags=0,name="ChaosDamageLifeLeech",type="BASE",value=1}},nil} c["1% of Cold Damage Leeched as Life"]={{[1]={flags=0,keywordFlags=0,name="ColdDamageLifeLeech",type="BASE",value=1}},nil} c["1% of Damage Dealt by your Minions is Leeched to you as Life"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="Damage",type="BASE",value=1}}}}," Dealt by your s is Leeched to you as Life "} c["1% of Damage Dealt by your Minions is Leeched to you as Life Minions gain 40% of Maximum Life as Extra Maximum Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="DamageGainAsEnergyShield",type="BASE",value=1}}}}," Dealt by your s is Leeched to you as Life Minions gain 40% of Maximum Life "} @@ -2533,7 +2538,6 @@ c["10% increased Cast Speed while Dual Wielding"]={{[1]={[1]={type="Condition",v c["10% increased Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="ChaosDamage",type="INC",value=10}},nil} c["10% increased Cold Damage"]={{[1]={flags=0,keywordFlags=0,name="ColdDamage",type="INC",value=10}},nil} c["10% increased Cold Damage taken"]={{[1]={flags=0,keywordFlags=0,name="ColdDamageTaken",type="INC",value=10}},nil} -c["10% increased Cooldown Recovery Rate"]={{[1]={flags=0,keywordFlags=0,name="CooldownRecovery",type="INC",value=10}},nil} c["10% increased Cooldown Recovery Rate for Stance Skills"]={{[1]={[1]={skillType=104,type="SkillType"},flags=0,keywordFlags=0,name="CooldownRecovery",type="INC",value=10}},nil} c["10% increased Cooldown Recovery Rate for throwing Traps"]={{[1]={flags=0,keywordFlags=4096,name="CooldownRecovery",type="INC",value=10}},nil} c["10% increased Cooldown Recovery of Travel Skills per Frenzy Charge"]={{[1]={[1]={skillType=90,type="SkillType"},[2]={type="Multiplier",var="FrenzyCharge"},flags=0,keywordFlags=0,name="CooldownRecovery",type="INC",value=10}},nil} @@ -2930,6 +2934,7 @@ c["110% increased Critical Strike Chance with Traps"]={{[1]={flags=0,keywordFlag c["110% increased Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EnergyShield",type="INC",value=110}},nil} c["110% increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",type="INC",value=110}},nil} c["110% increased Evasion and Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EvasionAndEnergyShield",type="INC",value=110}},nil} +c["110% increased Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="FireDamage",type="INC",value=110}},nil} c["110% increased Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamage",type="INC",value=110}},nil} c["113% increased Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamage",type="INC",value=113}},nil} c["113% increased Physical Damage with Ranged Weapons"]={{[1]={flags=134217732,keywordFlags=0,name="PhysicalDamage",type="INC",value=113}},nil} @@ -3119,6 +3124,7 @@ c["13% increased Attack and Cast Speed"]={{[1]={flags=0,keywordFlags=0,name="Spe c["13% increased Cast Speed"]={{[1]={flags=16,keywordFlags=0,name="Speed",type="INC",value=13}},nil} c["13% increased Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="ChaosDamage",type="INC",value=13}},nil} c["13% increased Cold Damage"]={{[1]={flags=0,keywordFlags=0,name="ColdDamage",type="INC",value=13}},nil} +c["13% increased Cooldown Recovery Rate"]={{[1]={flags=0,keywordFlags=0,name="CooldownRecovery",type="INC",value=13}},nil} c["13% increased Cooldown Recovery Rate for throwing Traps"]={{[1]={flags=0,keywordFlags=4096,name="CooldownRecovery",type="INC",value=13}},nil} c["13% increased Dexterity"]={{[1]={flags=0,keywordFlags=0,name="Dex",type="INC",value=13}},nil} c["13% increased Duration of Elemental Ailments on Enemies"]={{[1]={flags=0,keywordFlags=0,name="EnemyElementalAilmentDuration",type="INC",value=13}},nil} @@ -3184,7 +3190,6 @@ c["14% increased Damage with One Handed Weapons"]={{[1]={flags=268435460,keyword c["14% increased Elemental Damage"]={{[1]={flags=0,keywordFlags=0,name="ElementalDamage",type="INC",value=14}},nil} c["14% increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",type="INC",value=14}},nil} c["14% increased Evasion Rating and Armour"]={{[1]={flags=0,keywordFlags=0,name="ArmourAndEvasion",type="INC",value=14}},nil} -c["14% increased Light Radius"]={{[1]={flags=0,keywordFlags=0,name="LightRadius",type="INC",value=14}},nil} c["14% increased Mine Damage"]={{[1]={flags=0,keywordFlags=8192,name="Damage",type="INC",value=14}},nil} c["14% increased Physical Attack Damage while holding a Shield"]={{[1]={[1]={type="Condition",varList={[1]="UsingShield"}},flags=1,keywordFlags=0,name="PhysicalDamage",type="INC",value=14}},nil} c["14% increased Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamage",type="INC",value=14}},nil} @@ -3640,6 +3645,7 @@ c["18% increased Global Accuracy Rating"]={{[1]={[1]={type="Global"},flags=0,key c["18% increased Global Defences"]={{[1]={[1]={type="Global"},flags=0,keywordFlags=0,name="Defences",type="INC",value=18}},nil} c["18% increased Global Physical Damage"]={{[1]={[1]={type="Global"},flags=0,keywordFlags=0,name="PhysicalDamage",type="INC",value=18}},nil} c["18% increased Golem Damage for each Type of Golem you have Summoned"]={{[1]={[1]={skillType=61,type="SkillType"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="ActorCondition",var="HavePhysicalGolem"},flags=0,keywordFlags=0,name="Damage",type="INC",value=18}}},[2]={[1]={skillType=61,type="SkillType"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="ActorCondition",var="HaveLightningGolem"},flags=0,keywordFlags=0,name="Damage",type="INC",value=18}}},[3]={[1]={skillType=61,type="SkillType"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="ActorCondition",var="HaveColdGolem"},flags=0,keywordFlags=0,name="Damage",type="INC",value=18}}},[4]={[1]={skillType=61,type="SkillType"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="ActorCondition",var="HaveFireGolem"},flags=0,keywordFlags=0,name="Damage",type="INC",value=18}}},[5]={[1]={skillType=61,type="SkillType"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="ActorCondition",var="HaveChaosGolem"},flags=0,keywordFlags=0,name="Damage",type="INC",value=18}}},[6]={[1]={skillType=61,type="SkillType"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="ActorCondition",var="HaveCarrionGolem"},flags=0,keywordFlags=0,name="Damage",type="INC",value=18}}}},nil} +c["18% increased Ignite Duration on Enemies"]={{[1]={flags=0,keywordFlags=0,name="EnemyIgniteDuration",type="INC",value=18}},nil} c["18% increased Intelligence"]={{[1]={flags=0,keywordFlags=0,name="Int",type="INC",value=18}},nil} c["18% increased Life Recovery rate"]={{[1]={flags=0,keywordFlags=0,name="LifeRecoveryRate",type="INC",value=18}},nil} c["18% increased Light Radius"]={{[1]={flags=0,keywordFlags=0,name="LightRadius",type="INC",value=18}},nil} @@ -4244,6 +4250,7 @@ c["23% chance to Avoid Elemental Ailments"]={{[1]={flags=0,keywordFlags=0,name=" c["23% chance to Freeze"]={{[1]={flags=0,keywordFlags=0,name="EnemyFreezeChance",type="BASE",value=23}},nil} c["23% chance to Freeze, Shock and Ignite"]={{[1]={flags=0,keywordFlags=0,name="EnemyFreezeChance",type="BASE",value=23},[2]={flags=0,keywordFlags=0,name="EnemyShockChance",type="BASE",value=23},[3]={flags=0,keywordFlags=0,name="EnemyIgniteChance",type="BASE",value=23}},nil} c["23% chance to Ignite"]={{[1]={flags=0,keywordFlags=0,name="EnemyIgniteChance",type="BASE",value=23}},nil} +c["23% chance to Impale Enemies on Hit with Attacks"]={{[1]={flags=0,keywordFlags=65536,name="ImpaleChance",type="BASE",value=23}},nil} c["23% chance to Shock"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockChance",type="BASE",value=23}},nil} c["23% chance to Suppress Spell Damage"]={{[1]={flags=0,keywordFlags=0,name="SpellSuppressionChance",type="BASE",value=23}},nil} c["23% chance to gain 25% of Non-Chaos Damage with Hits as Extra Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="NonChaosDamageGainAsChaos",type="BASE",value=5.75}},nil} @@ -4767,6 +4774,7 @@ c["30% chance to Hinder Enemies on Hit with Spells +15% chance to Suppress Spell c["30% chance to Ignite"]={{[1]={flags=0,keywordFlags=0,name="EnemyIgniteChance",type="BASE",value=30}},nil} c["30% chance to Ignite during any Flask Effect"]={{[1]={[1]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="EnemyIgniteChance",type="BASE",value=30}},nil} c["30% chance to Ignore Stuns while Casting"]={{[1]={flags=0,keywordFlags=0,name="AvoidInterruptStun",type="BASE",value=30}},nil} +c["30% chance to Impale Enemies on Hit with Attacks"]={{[1]={flags=0,keywordFlags=65536,name="ImpaleChance",type="BASE",value=30}},nil} c["30% chance to Poison on Melee Hit"]={{[1]={flags=260,keywordFlags=0,name="PoisonChance",type="BASE",value=30}},nil} c["30% chance to Sap Enemies in Chilling Areas"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="InChillingArea"},flags=0,keywordFlags=0,name="EnemySapChance",type="BASE",value=30}},nil} c["30% chance to Shock"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockChance",type="BASE",value=30}},nil} @@ -5069,7 +5077,6 @@ c["300% increased Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="Physical c["305% increased Armour, Evasion and Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="Defences",type="INC",value=305}},nil} c["31% increased Cast Speed"]={{[1]={flags=16,keywordFlags=0,name="Speed",type="INC",value=31}},nil} c["31% increased Cost of Skills"]={{[1]={flags=0,keywordFlags=0,name="Cost",type="INC",value=31}},nil} -c["31% increased Global Critical Strike Chance"]={{[1]={[1]={type="Global"},flags=0,keywordFlags=0,name="CritChance",type="INC",value=31}},nil} c["31% increased Light Radius"]={{[1]={flags=0,keywordFlags=0,name="LightRadius",type="INC",value=31}},nil} c["31% increased Minion Duration"]={{[1]={[1]={skillType=88,type="SkillType"},[2]={skillType=9,type="SkillType"},flags=0,keywordFlags=0,name="Duration",type="INC",value=31}},nil} c["31% increased Spell Damage"]={{[1]={flags=2,keywordFlags=0,name="Damage",type="INC",value=31}},nil} @@ -5155,6 +5162,7 @@ c["35% increased Physical Damage with Maces or Sceptres"]={{[1]={flags=1048580,k c["35% increased Physical Damage with Swords"]={{[1]={flags=4194308,keywordFlags=0,name="PhysicalDamage",type="INC",value=35}},nil} c["35% increased Projectile Damage"]={{[1]={flags=1024,keywordFlags=0,name="Damage",type="INC",value=35}},nil} c["35% increased Projectile Speed"]={{[1]={flags=0,keywordFlags=0,name="ProjectileSpeed",type="INC",value=35}},nil} +c["35% increased Quantity of Gold Dropped by Slain Enemies"]={{}," Quantity of Gold Dropped by Slain Enemies "} c["35% increased Rarity of Items found"]={{[1]={flags=0,keywordFlags=0,name="LootRarity",type="INC",value=35}},nil} c["35% increased Spell Damage"]={{[1]={flags=2,keywordFlags=0,name="Damage",type="INC",value=35}},nil} c["35% increased Stun Duration on Enemies"]={{[1]={flags=0,keywordFlags=0,name="EnemyStunDuration",type="INC",value=35}},nil} @@ -5555,7 +5563,6 @@ c["47% chance to Blind Enemies on hit 264% increased Physical Damage"]={{[1]={fl c["47% chance to Impale Enemies on Hit with Attacks"]={{[1]={flags=0,keywordFlags=65536,name="ImpaleChance",type="BASE",value=47}},nil} c["47% chance to Poison on Hit"]={{[1]={flags=0,keywordFlags=0,name="PoisonChance",type="BASE",value=47}},nil} c["47% chance to cause Bleeding on Hit"]={{[1]={flags=0,keywordFlags=0,name="BleedChance",type="BASE",value=47}},nil} -c["47% increased Rarity of Items Dropped by Enemies killed with a Critical Strike"]={{[1]={[1]={type="Condition",var="CritRecently"},[2]={type="Condition",var="KilledRecently"},flags=0,keywordFlags=0,name="LootRarity",type="INC",value=47}},nil} c["475% increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",type="INC",value=475}},nil} c["48 Life gained when you Block"]={{[1]={flags=0,keywordFlags=0,name="LifeOnBlock",type="BASE",value=48}},nil} c["48% increased Cooldown Recovery Rate of Movement Skills"]={{[1]={flags=0,keywordFlags=8,name="CooldownRecovery",type="INC",value=48}},nil} @@ -6263,6 +6270,7 @@ c["70% increased Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="FireDamage",t c["70% increased Global Critical Strike Chance"]={{[1]={[1]={type="Global"},flags=0,keywordFlags=0,name="CritChance",type="INC",value=70}},nil} c["70% increased Global Critical Strike Chance when in Main Hand"]={{[1]={[1]={type="Global"},[2]={num=1,type="SlotNumber"},flags=0,keywordFlags=0,name="CritChance",type="INC",value=70}},nil} c["70% increased Life Recovery from Flasks while affected by Vitality"]={{[1]={[1]={type="Condition",var="AffectedByVitality"},flags=0,keywordFlags=0,name="FlaskLifeRecovery",type="INC",value=70}},nil} +c["70% increased Mana Regeneration Rate"]={{[1]={flags=0,keywordFlags=0,name="ManaRegen",type="INC",value=70}},nil} c["70% increased Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamage",type="INC",value=70}},nil} c["70% increased Rarity of Items found"]={{[1]={flags=0,keywordFlags=0,name="LootRarity",type="INC",value=70}},nil} c["70% increased Spell Damage"]={{[1]={flags=2,keywordFlags=0,name="Damage",type="INC",value=70}},nil} @@ -6895,6 +6903,7 @@ c["Adds 20 to 55 Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalM c["Adds 200 to 350 Cold Damage"]={{[1]={flags=0,keywordFlags=0,name="ColdMin",type="BASE",value=200},[2]={flags=0,keywordFlags=0,name="ColdMax",type="BASE",value=350}},nil} c["Adds 200 to 400 Fire Damage in Main Hand"]={{[1]={[1]={num=1,type="InSlot"},flags=0,keywordFlags=0,name="FireMin",type="BASE",value=200},[2]={[1]={num=1,type="InSlot"},flags=0,keywordFlags=0,name="FireMax",type="BASE",value=400}},nil} c["Adds 204 to 300 Cold Damage"]={{[1]={flags=0,keywordFlags=0,name="ColdMin",type="BASE",value=204},[2]={flags=0,keywordFlags=0,name="ColdMax",type="BASE",value=300}},nil} +c["Adds 205 to 335 Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="FireMin",type="BASE",value=205},[2]={flags=0,keywordFlags=0,name="FireMax",type="BASE",value=335}},nil} c["Adds 21 to 33 Cold Damage to Spells and Attacks"]={{[1]={flags=0,keywordFlags=196608,name="ColdMin",type="BASE",value=21},[2]={flags=0,keywordFlags=196608,name="ColdMax",type="BASE",value=33}},nil} c["Adds 21 to 33 Fire Damage to Spells and Attacks"]={{[1]={flags=0,keywordFlags=196608,name="FireMin",type="BASE",value=21},[2]={flags=0,keywordFlags=196608,name="FireMax",type="BASE",value=33}},nil} c["Adds 21 to 36 Chaos Damage to Spells"]={{[1]={flags=0,keywordFlags=131072,name="ChaosMin",type="BASE",value=21},[2]={flags=0,keywordFlags=131072,name="ChaosMax",type="BASE",value=36}},nil} @@ -6925,6 +6934,7 @@ c["Adds 23 to 40 Cold Damage to Spells and Attacks"]={{[1]={flags=0,keywordFlags c["Adds 23 to 40 Fire Damage to Spells and Attacks"]={{[1]={flags=0,keywordFlags=196608,name="FireMin",type="BASE",value=23},[2]={flags=0,keywordFlags=196608,name="FireMax",type="BASE",value=40}},nil} c["Adds 23 to 45 Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalMin",type="BASE",value=23},[2]={flags=0,keywordFlags=0,name="PhysicalMax",type="BASE",value=45}},nil} c["Adds 230 to 285 Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalMin",type="BASE",value=230},[2]={flags=0,keywordFlags=0,name="PhysicalMax",type="BASE",value=285}},nil} +c["Adds 230 to 360 Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="FireMin",type="BASE",value=230},[2]={flags=0,keywordFlags=0,name="FireMax",type="BASE",value=360}},nil} c["Adds 235 to 290 Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalMin",type="BASE",value=235},[2]={flags=0,keywordFlags=0,name="PhysicalMax",type="BASE",value=290}},nil} c["Adds 237 to 272 Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="FireMin",type="BASE",value=237},[2]={flags=0,keywordFlags=0,name="FireMax",type="BASE",value=272}},nil} c["Adds 24 to 35 Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="ChaosMin",type="BASE",value=24},[2]={flags=0,keywordFlags=0,name="ChaosMax",type="BASE",value=35}},nil} @@ -7944,7 +7954,7 @@ c["Can't use Chest armour"]={{[1]={[1]={slotName="Body Armour",type="DisablesIte c["Can't use Flask in Fifth Slot"]={{[1]={[1]={excludeItemType="Tincture",slotName="Flask 5",type="DisablesItem"},flags=0,keywordFlags=0,name="CanNotUseItem",type="Flag",value=1}},nil} c["Can't use Helmets"]={{[1]={[1]={slotName="Helmet",type="DisablesItem"},flags=0,keywordFlags=0,name="CanNotUseItem",type="Flag",value=1}},nil} c["Can't use Life Flasks"]={nil,"Can't use Life Flasks "} -c["Can't use Life Flasks +65 to maximum Mana"]={nil,"Can't use Life Flasks +65 to maximum Mana "} +c["Can't use Life Flasks +70 to maximum Mana"]={nil,"Can't use Life Flasks +70 to maximum Mana "} c["Can't use Mana Flasks"]={nil,"Can't use Mana Flasks "} c["Can't use Mana Flasks On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50%"]={nil,"Can't use Mana Flasks On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% "} c["Can't use other Rings"]={{[1]={[1]={slotName="Ring 2",type="DisablesItem"},[2]={num=1,type="SlotNumber"},flags=0,keywordFlags=0,name="CanNotUseItem",type="Flag",value=1},[2]={[1]={slotName="Ring 1",type="DisablesItem"},[2]={num=2,type="SlotNumber"},flags=0,keywordFlags=0,name="CanNotUseItem",type="Flag",value=1}},nil} @@ -7966,6 +7976,7 @@ c["Cannot Leech Life from Critical Strikes"]={{[1]={[1]={type="Condition",var="C c["Cannot Leech Mana"]={{[1]={flags=0,keywordFlags=0,name="CannotLeechMana",type="FLAG",value=true}},nil} c["Cannot Leech or Regenerate Mana"]={{[1]={flags=0,keywordFlags=0,name="NoManaRegen",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="CannotLeechMana",type="FLAG",value=true}},nil} c["Cannot Leech when on Low Life"]={{[1]={[1]={type="Condition",var="LowLife"},flags=0,keywordFlags=0,name="CannotLeechLife",type="FLAG",value=true},[2]={[1]={type="Condition",var="LowLife"},flags=0,keywordFlags=0,name="CannotLeechMana",type="FLAG",value=true}},nil} +c["Cannot Poison Enemies with at least 12 Poisons on them"]={{[1]={flags=0,keywordFlags=0,name="PoisonStackLimit",type="MIN",value=12}},nil} c["Cannot Recharge Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="NoEnergyShieldRecharge",type="FLAG",value=true}},nil} c["Cannot Recharge or Regenerate Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="NoEnergyShieldRecharge",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="NoEnergyShieldRegen",type="FLAG",value=true}},nil} c["Cannot Recover Energy Shield to above Armour"]={{[1]={flags=0,keywordFlags=0,name="ArmourESRecoveryCap",type="FLAG",value=true}},nil} @@ -8471,6 +8482,8 @@ c["Elusive's Effect on you is increased instead for the first 2 seconds"]={nil," c["Elusive's Effect on you is increased instead for the first 2 seconds Limited to 1 Runegraft of the Agile"]={nil,"Elusive's Effect on you is increased instead for the first 2 seconds Limited to 1 Runegraft of the Agile "} c["Enemies Become Chilled as they Unfreeze, causing 30% reduced Action Speed"]={nil,"Enemies Become Chilled as they Unfreeze, causing 30% reduced Action Speed "} c["Enemies Become Chilled as they Unfreeze, causing 30% reduced Action Speed 30% chance to Freeze Enemies which are Chilled"]={nil,"Enemies Become Chilled as they Unfreeze, causing 30% reduced Action Speed 30% chance to Freeze Enemies which are Chilled "} +c["Enemies Blinded by you cannot inflict Damaging Ailments"]={nil,"you cannot inflict Damaging Ailments "} +c["Enemies Blinded by you cannot inflict Damaging Ailments Grants Level 20 Blazing Glare"]={nil,"you cannot inflict Damaging Ailments Grants Level 20 Blazing Glare "} c["Enemies Blinded by you have Malediction"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Blinded"},flags=0,keywordFlags=0,name="HasMalediction",type="FLAG",value=true}}}},nil} c["Enemies Cannot Leech Life From You"]={nil,"Enemies Cannot Leech Life From You "} c["Enemies Cannot Leech Life From you"]={nil,"Enemies Cannot Leech Life From you "} @@ -8935,7 +8948,10 @@ c["Gain 40 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKil c["Gain 40% increased Area of Effect for 2 seconds after Spending a total of 800 Mana"]={{[1]={[1]={threshold=800,type="MultiplierThreshold",var="ManaSpentRecently"},flags=0,keywordFlags=0,name="AreaOfEffect",type="BASE",value=40}},"% increased "} c["Gain 40% of Physical Attack Damage as Extra Fire Damage"]={{[1]={flags=1,keywordFlags=0,name="PhysicalDamageGainAsFire",type="BASE",value=40}},nil} c["Gain 40% of Physical Damage as Extra Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsChaos",type="BASE",value=40}},nil} +c["Gain 40% of Physical Damage as Extra Cold Damage if you've used a Sapphire Flask Recently"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsCold",type="BASE",value=40}}," if you've used a Sapphire Flask Recently "} +c["Gain 40% of Physical Damage as Extra Cold Damage if you've used a Sapphire Flask Recently Gain 40% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsCold",type="BASE",value=40}}," if you've used a Sapphire Flask Recently Gain 40% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently "} c["Gain 40% of Physical Damage as Extra Damage of a random Element while you are Ignited"]={{[1]={[1]={type="Condition",var="Ignited"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=40}},nil} +c["Gain 40% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsLightning",type="BASE",value=40}}," if you've used a Topaz Flask Recently "} c["Gain 40% of Physical Damage as a Random Element if you've cast Elemental Weakness in the past 10 seconds"]={{[1]={[1]={type="Condition",var="SelfCastElementalWeakness"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=40}},nil} c["Gain 5 Life for each Ignited Enemy hit with Attacks"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Ignited"},flags=5,keywordFlags=0,name="LifeOnHit",type="BASE",value=5}},nil} c["Gain 5 Life per Enemy Hit with Attacks"]={{[1]={flags=4,keywordFlags=65536,name="LifeOnHit",type="BASE",value=5}},nil} @@ -8967,6 +8983,7 @@ c["Gain 50% of Physical Damage as Extra Fire Damage"]={{[1]={flags=0,keywordFlag c["Gain 50% of Physical Damage as Extra Lightning Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsLightning",type="BASE",value=50}},nil} c["Gain 50% of Weapon Physical Damage as Extra Damage of a Random Element"]={{[1]={flags=8192,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=50}},nil} c["Gain 51 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKill",type="BASE",value=51}},nil} +c["Gain 58% of Physical Damage as Extra Chaos Damage if you've used an Amethyst Flask Recently"]={{[1]={[1]={type="Condition",var="HaveAmethystFlask"},[2]={type="Condition",var="UsedAmethystFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsChaos",type="BASE",value=58}},nil} c["Gain 6 Life per Enemy Hit with Attacks"]={{[1]={flags=4,keywordFlags=65536,name="LifeOnHit",type="BASE",value=6}},nil} c["Gain 6 Life per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="LifeOnKill",type="BASE",value=6}},nil} c["Gain 6% of Maximum Life as Extra Maximum Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="LifeGainAsEnergyShield",type="BASE",value=6}},nil} @@ -8983,6 +9000,7 @@ c["Gain 70% of Physical Damage as Extra Fire Damage"]={{[1]={flags=0,keywordFlag c["Gain 700% of Weapon Physical Damage as Extra Damage of a random Element"]={{[1]={flags=8192,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=700}},nil} c["Gain 75 Armour per Grand Spectrum"]={{[1]={[1]={type="Multiplier",var="GrandSpectrum"},flags=0,keywordFlags=0,name="Armour",type="BASE",value=75}},nil} c["Gain 75 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKill",type="BASE",value=75}},nil} +c["Gain 75% of Physical Damage as Extra Chaos Damage if you've used an Amethyst Flask Recently"]={{[1]={[1]={type="Condition",var="HaveAmethystFlask"},[2]={type="Condition",var="UsedAmethystFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsChaos",type="BASE",value=75}},nil} c["Gain 8 Life per Enemy Hit with Attacks"]={{[1]={flags=4,keywordFlags=65536,name="LifeOnHit",type="BASE",value=8}},nil} c["Gain 8 Life per Enemy Hit with Spells"]={{[1]={flags=4,keywordFlags=131072,name="LifeOnHit",type="BASE",value=8}},nil} c["Gain 8 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKill",type="BASE",value=8}},nil} @@ -9240,7 +9258,9 @@ c["Grants Level 20 Aspect of the Crab Skill"]={{[1]={flags=0,keywordFlags=0,name c["Grants Level 20 Aspect of the Spider Skill"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="AspectOfTheSpider"}}},nil} c["Grants Level 20 Barkskin Skill"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="Barkskin"}}},nil} c["Grants Level 20 Bear Trap Skill"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="BearTrap"}}},nil} +c["Grants Level 20 Blazing Glare"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SolartwineBlindingNova"}}},nil} c["Grants Level 20 Brandsurge Skill"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="Brandsurge"}}},nil} +c["Grants Level 20 Caustic Retribution"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="BitingBraidNova"}}},nil} c["Grants Level 20 Death Wish Skill"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="DeathWish"}}},nil} c["Grants Level 20 Doryani's Touch Skill"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="DoryanisTouch"}}},nil} c["Grants Level 20 Hatred Skill"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="Hatred"}}},nil} @@ -9528,7 +9548,8 @@ c["Increases and Reductions to Chaos Damage also apply to Effect of Auras from C c["Increases and Reductions to Chaos Damage also apply to Effect of Auras from Chaos Skills at 15% of their value, up to a maximum of 150%"]={{[1]={flags=0,keywordFlags=0,name="ChaosDamageAppliesToChaosAuraEffect",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ImprovedChaosDamageAppliesToChaosAuraEffect",type="BASE",value=15},[3]={flags=0,keywordFlags=0,name="ChaosDamageAppliesToChaosAuraEffectLimit",type="MAX",value=150}},nil} c["Increases and Reductions to Cold Damage also apply to Effect of Auras from Cold Skills at 13% of their value, up to a maximum of 150%"]={{[1]={flags=0,keywordFlags=0,name="ColdDamageAppliesToColdAuraEffect",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ImprovedColdDamageAppliesToColdAuraEffect",type="BASE",value=13},[3]={flags=0,keywordFlags=0,name="ColdDamageAppliesToColdAuraEffectLimit",type="MAX",value=150}},nil} c["Increases and Reductions to Cold Damage also apply to Effect of Auras from Cold Skills at 15% of their value, up to a maximum of 150%"]={{[1]={flags=0,keywordFlags=0,name="ColdDamageAppliesToColdAuraEffect",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ImprovedColdDamageAppliesToColdAuraEffect",type="BASE",value=15},[3]={flags=0,keywordFlags=0,name="ColdDamageAppliesToColdAuraEffectLimit",type="MAX",value=150}},nil} -c["Increases and Reductions to Effect of Flasks applied to you also applies to Effect of Arcane Surge on you at 210% of their value"]={{[1]={flags=0,keywordFlags=0,name="FlaskEffectToArcaneSurgeEffect",type="BASE",value=210}},nil} +c["Increases and Reductions to Effect of Flasks applied to you also applies to Effect of Arcane Surge on you at 225% of their value"]={{[1]={flags=0,keywordFlags=0,name="FlaskEffectToArcaneSurgeEffect",type="BASE",value=225}},nil} +c["Increases and Reductions to Effect of Flasks applied to you also applies to Effect of Arcane Surge on you at 250% of their value"]={{[1]={flags=0,keywordFlags=0,name="FlaskEffectToArcaneSurgeEffect",type="BASE",value=250}},nil} c["Increases and Reductions to Fire Damage also apply to Effect of Auras from Fire Skills at 13% of their value, up to a maximum of 150%"]={{[1]={flags=0,keywordFlags=0,name="FireDamageAppliesToFireAuraEffect",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ImprovedFireDamageAppliesToFireAuraEffect",type="BASE",value=13},[3]={flags=0,keywordFlags=0,name="FireDamageAppliesToFireAuraEffectLimit",type="MAX",value=150}},nil} c["Increases and Reductions to Fire Damage also apply to Effect of Auras from Fire Skills at 15% of their value, up to a maximum of 150%"]={{[1]={flags=0,keywordFlags=0,name="FireDamageAppliesToFireAuraEffect",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ImprovedFireDamageAppliesToFireAuraEffect",type="BASE",value=15},[3]={flags=0,keywordFlags=0,name="FireDamageAppliesToFireAuraEffectLimit",type="MAX",value=150}},nil} c["Increases and Reductions to Light Radius also apply to Accuracy"]={{[1]={flags=0,keywordFlags=0,name="LightRadiusAppliesToAccuracy",type="FLAG",value=true}},nil} @@ -9548,12 +9569,16 @@ c["Increases and Reductions to Projectile Speed also apply to Damage with Bows"] c["Increases and Reductions to Spell Damage also apply to Attacks at 150% of their value"]={{[1]={flags=0,keywordFlags=0,name="SpellDamageAppliesToAttacks",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ImprovedSpellDamageAppliesToAttacks",type="MAX",value=150}},nil} c["Increases and Reductions to Spell Damage also apply to Attacks while wielding a Wand"]={{[1]={[1]={type="Condition",var="UsingWand"},flags=0,keywordFlags=0,name="SpellDamageAppliesToAttacks",type="FLAG",value=true}},nil} c["Increases and reductions to Maximum Mana also apply to Shock Effect at 30% of their value"]={{[1]={flags=0,keywordFlags=0,name="ManaAppliesToShockEffect",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ImprovedManaAppliesToShockEffect",type="MAX",value=30}},nil} +c["Inflict 3 additional Poisons on the same Target"]={nil,"Inflict 3 additional Poisons on the same Target "} +c["Inflict 3 additional Poisons on the same Target when you inflict Poison with this weapon"]={{[1]={[1]={type="Condition",var="{Hand}Attack"},flags=0,keywordFlags=0,name="AdditionalPoisonStacks",type="BASE",value=3}},nil} c["Inflict 5 additional Impales on Enemies you Impale"]={nil,"Inflict 5 additional Impales on Enemies you Impale "} c["Inflict 5 additional Impales on Enemies you Impale For 5 seconds after you Impale Enemies, they cannot be Impaled again, and Impales cannot be Called from them"]={nil,"Inflict 5 additional Impales on Enemies you Impale For 5 seconds after you Impale Enemies, they cannot be Impaled again, and Impales cannot be Called from them "} c["Inflict 5 additional Impales on Enemies you Impale For 5 seconds after you Impale Enemies, they cannot be Impaled again, and Impales cannot be Called from them Limited to 1 Keystone Tattoo"]={nil,"Inflict 5 additional Impales on Enemies you Impale For 5 seconds after you Impale Enemies, they cannot be Impaled again, and Impales cannot be Called from them Limited to 1 Keystone Tattoo "} c["Inflict Brittle on Enemies when you Block their Damage"]={nil,"Inflict Brittle on Enemies when you Block their Damage "} c["Inflict Brittle on Enemies when you Block their Damage 67% increased Chance to Block"]={nil,"Inflict Brittle on Enemies when you Block their Damage 67% increased Chance to Block "} c["Inflict Decay on Enemies you Curse with Hex Skills, dealing 700 Chaos Damage per Second for 8 Seconds"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="decay",merge="MAX",value=700}}},nil} +c["Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance"]={nil,"Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance "} +c["Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance Trigger Level 20 Cinders when Equipped"]={nil,"Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance Trigger Level 20 Cinders when Equipped "} c["Inflict Fire Exposure on Hit if you've cast Flammability in the past 10 seconds"]={{[1]={[1]={type="Condition",var="SelfCastFlammability"},[2]={type="Condition",var="Effective"},flags=4,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="FireExposure",type="BASE",value=-10}}}},nil} c["Inflict Fire, Cold and Lightning Exposure on Enemies when you Suppress their Spell Damage"]={{[1]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="SuppressedRecently"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="FireExposure",type="BASE",value=-10}}},[2]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="SuppressedRecently"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ColdExposure",type="BASE",value=-10}}},[3]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="SuppressedRecently"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="LightningExposure",type="BASE",value=-10}}}},nil} c["Inflict Fire, Cold and Lightning Exposure on nearby Enemies when used"]={{[1]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="FireExposure",type="BASE",value=-10}}},[2]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ColdExposure",type="BASE",value=-10}}},[3]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="LightningExposure",type="BASE",value=-10}}}},nil} @@ -12271,6 +12296,7 @@ c["Trigger Level 20 Animate Guardian's Weapon when Animated Guardian Kills an En c["Trigger Level 20 Arcane Wake after Spending a total of 200 Mana"]={{},nil} c["Trigger Level 20 Bone Nova when you Hit a Bleeding Enemy"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="BoneNova",triggered=true}}},nil} c["Trigger Level 20 Bone Offering, Flesh Offering or Spirit Offering every 5 seconds"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="BoneOffering",triggered=true}},[2]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="FleshOffering",triggered=true}},[3]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SpiritOffering",triggered=true}}},nil} +c["Trigger Level 20 Cinders when Equipped"]={{},nil} c["Trigger Level 20 Death Aura when Equipped"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="DeathAura",triggered=true}}},nil} c["Trigger Level 20 Elemental Warding on Melee Hit while Cursed"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ElementalWarding",triggered=true}}},nil} c["Trigger Level 20 Fiery Impact on Melee Hit with this Weapon"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="FieryImpactHeistMaceImplicit",triggered=true}}},nil} @@ -12288,6 +12314,7 @@ c["Trigger Level 20 Summon Phantasm Skill when you Consume a Corpse"]={{[1]={fla c["Trigger Level 20 Summon Spectral Tiger on Critical Strike"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SummonSpectralTiger",triggered=true}},[2]={[1]={skillId="SummonSpectralTiger",type="SkillId"},flags=0,keywordFlags=0,name="ExtraSkillMod",type="LIST",value={mod={flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="triggerOnCrit",value=true}}}}},nil} c["Trigger Level 20 Summon Void Spawn every 4 seconds"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SummonVoidSpawn",triggered=true}}},nil} c["Trigger Level 20 Tawhoa's Chosen when you Attack with a Non-Vaal Slam or Strike Skill near an Enemy"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SummonMirageChieftain",triggered=true}}},nil} +c["Trigger Level 20 Tears of Rot when Equipped"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="AnimosityUniqueSkill",triggered=true}}},nil} c["Trigger Level 20 Twister when you gain Avian's Might or Avian's Flight"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="Twister",triggered=true}}},nil} c["Trigger Level 20 Unseen Strike every 0.5 seconds while Phasing"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="UnseenStrike",triggered=true}}},nil} c["Trigger Level 20 Ward Shatter when your Ward Breaks"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="WardShatter",triggered=true}}},nil} @@ -12337,7 +12364,7 @@ c["Trigger level 1 Summon Spirit of Tawhanuku Skill when Energy Shield Recharge c["Trigger level 1 Summon Spirit of Utula Skill on taking a Savage Hit from a Unique Enemy"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="TriggerSummonedAncestorUtula",triggered=true}}},nil} c["Trigger level 10 Consecrate when you deal a Critical Strike"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=10,skillId="TriggeredConsecrate",triggered=true}}},nil} c["Trigger level 20 Suspend in Time on Casting a Spell"]={nil,"Trigger level 20 Suspend in Time on Casting a Spell "} -c["Trigger level 20 Suspend in Time on Casting a Spell 60% increased Spell Damage"]={nil,"Trigger level 20 Suspend in Time on Casting a Spell 60% increased Spell Damage "} +c["Trigger level 20 Suspend in Time on Casting a Spell 80% increased Spell Damage"]={nil,"Trigger level 20 Suspend in Time on Casting a Spell 80% increased Spell Damage "} c["Trigger level 25 Ceaseless Flesh once every second"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=25,skillId="CeaselessFleshUnique",triggered=true}}},nil} c["Triggered Spells Poison on Hit"]={{[1]={[1]={skillType=41,type="SkillType"},flags=0,keywordFlags=131072,name="PoisonChance",type="BASE",value=100}},nil} c["Triggers Level 15 Manifest Dancing Dervishes on Rampage"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=15,skillId="ManifestDancingDervishes",triggered=true}}},nil} @@ -12500,7 +12527,8 @@ c["While affected by Glorious Madness, inflict Mania on nearby Enemies every sec c["While at Maximum Frenzy Charges, Attacks Poison Enemies"]={{[1]={[1]={stat="FrenzyCharges",thresholdStat="FrenzyChargesMax",type="StatThreshold"},flags=1,keywordFlags=0,name="PoisonChance",type="BASE",value=100}},nil} c["While in Her Embrace, take 0.5% of your total Maximum Life and Energy Shield as Fire Damage per second per Level"]={{[1]={[1]={percent=0.5,stat="Life",type="PercentStat"},[2]={type="Multiplier",var="Level"},[3]={type="Condition",var="HerEmbrace"},flags=0,keywordFlags=0,name="FireDegen",type="BASE",value=1},[2]={[1]={percent=0.5,stat="EnergyShield",type="PercentStat"},[2]={type="Multiplier",var="Level"},[3]={type="Condition",var="HerEmbrace"},flags=0,keywordFlags=0,name="FireDegen",type="BASE",value=1}},nil} c["While not on Full Life, Sacrifice 20% of Mana per Second to Recover that much Life"]={{[1]={[1]={neg=true,type="Condition",var="FullLife"},flags=0,keywordFlags=0,name="ManaDegenPercent",type="BASE",value=20},[2]={[1]={percent=20,stat="Mana",type="PercentStat"},[2]={neg=true,type="Condition",var="FullLife"},flags=0,keywordFlags=0,name="LifeRecovery",type="BASE",value=1}},nil} -c["While on Low Life, Life Flasks gain 4 Charges every 3 seconds"]={{[1]={[1]={type="Condition",var="LowLife"},flags=0,keywordFlags=0,name="LifeFlaskChargesGenerated",type="BASE",value=1.3333333333333}},nil} +c["While on Low Life, Life Flasks gain 5 Charges every 3 seconds"]={{[1]={[1]={type="Condition",var="LowLife"},flags=0,keywordFlags=0,name="LifeFlaskChargesGenerated",type="BASE",value=1.6666666666667}},nil} +c["While on Low Life, Life Flasks gain 6 Charges every 3 seconds"]={{[1]={[1]={type="Condition",var="LowLife"},flags=0,keywordFlags=0,name="LifeFlaskChargesGenerated",type="BASE",value=2}},nil} c["While there are at least five nearby Allies, you and nearby Allies have Onslaught"]={{[1]={[1]={threshold=5,type="MultiplierThreshold",var="NearbyAlly"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="Onslaught",type="FLAG",value=true}}}},nil} c["While you have Unbroken Ward, your next non-channelling Attack you Use yourself breaks your Ward to gain Added Cold Damage equal to 25% of Ward"]={nil,"While you have Unbroken Ward, your next non-channelling Attack you Use yourself breaks your Ward to gain Added Cold Damage equal to 25% of Ward "} c["While your Passive Skill Tree connects to a class' starting location, you gain:"]={{},nil} @@ -12613,6 +12641,7 @@ c["With at least 40 Strength in Radius, Molten Strike Projectiles Chain on impac c["With at least 40 Strength in Radius, Molten Strike Projectiles Chain on impacting ground With at least 40 Strength in Radius, Molten Strike Projectiles Chain +1 time"]={nil,"With at least 40 Strength in Radius, Molten Strike Projectiles Chain on impacting ground With at least 40 Strength in Radius, Molten Strike Projectiles Chain +1 time "} c["With at least one nearby corpse, nearby Enemies deal 10% reduced Damage"]={{[1]={[1]={threshold=1,type="MultiplierThreshold",var="NearbyCorpse"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="Damage",type="INC",value=-10}}}},nil} c["With at least one nearby corpse, you and nearby Allies deal 10% more Damage"]={{[1]={[1]={threshold=1,type="MultiplierThreshold",var="NearbyCorpse"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="Damage",type="MORE",value=10}}}},nil} +c["Wither on Hit with this weapon against Enemies with at least 12 Poisons on them"]={{[1]={flags=0,keywordFlags=0,name="Condition:CanWither",type="FLAG",value=true}},nil} c["Withered does not expire on Enemies Ignited by you"]={nil,"Withered does not expire on Enemies Ignited by you "} c["Withered does not expire on Enemies Ignited by you +25% to Fire and Chaos Resistances"]={nil,"Withered does not expire on Enemies Ignited by you +25% to Fire and Chaos Resistances "} c["Withered you Inflict expires 10% slower"]={nil,"Withered you Inflict expires 10% slower "} diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index c45d21e75b..4df4008cd0 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -5,84 +5,146 @@ data.uniques.new = { -- New [[ -Screams of the desiccated -Leather Belt -LevelReq: 56 -Implicits: 1 -{tags:life}+(25-40) to maximum Life -You have Diamond Shrine Buff while affected by no Flasks -You have Resistance Shrine Buff while affected by no Flasks -+30 to Intelligence -+28% to Chaos Resistance -]], -[[ -Skysunder +Fleshrender Exquisite Blade League: Mirage Source: Obtained by using a Coin of Restoration on unique{Fleshrender} Implicits: 1 -+50% to global critical strike chance -(130-160)% increased Physical Damage ++50% to Global Critical Strike Multiplier +(180-240)% increased Physical Damage +(20-40)% to Damage over Time Multiplier (20-40)% increased Critical Strike Chance -100% of Physical Damage Converted to Fire Damage -Ignites you cause are reflected back to you -50% less Duration of Ignites you inflict -Ignites you inflict with this weapon spread to other Enemies within 2.8 metres -Unaffected by Ignite -]], -[[ -The Sands of Time -Tyrant's Sekhem -Requires Level 58, 99 Str, 99 Int -Implicits: 1 -26% increased Elemental Damage -Trigger level 20 Suspend in Time on Casting a Spell -60% increased Spell Damage -65% increased Mana Regeneration Rate -10% increased Cooldown Recovery Rate -10% increased Cast Speed for each different Non-Instant Spell you've Cast Recently +Cannot Poison Enemies with at least 12 Poisons on them +Inflict (2-3) additional Poisons on the same Target +when you inflict Poison with this weapon +Wither on Hit with this weapon against Enemies with at least 12 Poisons on them ]], [[ Khatal's Geyser Lapis Amulet +League: Mirage +Source: Obtained by using a Coin of Restoration on unique{Khatal's Weeping} LevelReq: 56 Implicits: 1 {tags:jewellery_attribute}+(20-30) to Intelligence Can't use Life Flasks -+65 to maximum Mana -Increases and Reductions to Effect of Flasks applied to you also applies to Effect of Arcane Surge on you at 210% of their value ++(55-70) to maximum Mana +Increases and Reductions to Effect of Flasks applied to you also applies to Effect of Arcane Surge on you at (200-250)% of their value You have Arcane Surge during Effect of any Mana Flask Mana Flask Effects are not removed when Unreserved Mana is Filled Mana Flask Effects do not Queue ]], [[ +Khatal's Weeping +Lapis Amulet +League: Mirage +Source: Drops from Mirage encounter +LevelReq: 56 +Implicits: 1 +{tags:jewellery_attribute}+(20-30) to Intelligence +{tags:life}+(80-100) to maximum Life +Can't use Mana Flasks +On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% +For each Charge removed this way, that Attack gains +2% to Damage over time Multiplier +{tags:life}While on Low Life, Life Flasks gain (3-6) Charges every 3 seconds +]], +[[ Replica Gifts from Above +League: Heist +Source: Steal from a unique{Curio Display} during a Grand Heist Diamond Ring Requires Level 28 Implicits: 1 {tags:critical}(20-30)% increased Global Critical Strike Chance Trigger level 10 Consecrate when you deal a Critical Strike -31% increased Global Critical Strike Chance -14% increased Light Radius -47% increased Rarity of Items Dropped by Enemies killed with a Critical Strike +{tags:critical}(30-35)% increased Global Critical Strike Chance +(10-15)% increased Light Radius +{tags:critical}(40-50)% increased Rarity of Items Dropped by Enemies killed with a Critical Strike Inflict Hallowing Flame on Hit while on Consecrated Ground ]], [[ -Khatal's Weeping -Lapis Amulet +Saresh's Darkness +Chain Belt +League: Mirage +Source: Drops from unique{Saresh, of the Weeping Black} +LevelReq: 24 +Implicits: 1 +{tags:jewellery_defense}+(9-20) to maximum Energy Shield +{tags:jewellery_resistance}+(23-37)% to Chaos Resistance +(10-25)% increased Poison Duration +Enemies Poisoned by you cannot deal Critical Strikes +Grants Level 20 Caustic Retribution +]], +[[ +Screams of the Desiccated +Leather Belt +League: Mirage +Source: Drops from unique{Saresh, of the Weeping Black} LevelReq: 56 Implicits: 1 -{tags:jewellery_attribute}+(20-30) to Intelligence -+89 to maximum Life -Can't use Mana Flasks -On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% -For each Charge removed this way, that Attack gains +2% to Damage over time Multiplier -While on Low Life, Life Flasks gain 4 Charges every 3 seconds +{tags:life}+(25-40) to maximum Life +You have Diamond Shrine Buff while affected by no Flasks +You have Resistance Shrine Buff while affected by no Flasks +{tags:jewellery_attribute}+(23-32) to Intelligence +{tags:jewellery_resistance}+(23-37)% to Chaos Resistance +]], +[[ +Skysunder +Exquisite Blade +League: Mirage +Source: Obtained by using a Coin of Restoration on unique{Fleshrender} +Implicits: 1 ++50% to Global Critical Strike Multiplier +(130-160)% increased Physical Damage ++(20-40)% to Damage over Time Multiplier +(20-40)% increased Critical Strike Chance +100% of Physical Damage Converted to Fire Damage +Ignites you cause are reflected back to you +50% less Duration of Ignites you inflict +Ignites you inflict with this weapon spread to other Enemies within 2.8 metres +Unaffected by Ignite +]], +[[ +Solerai's Radiance +Chain Belt +League: Mirage +Source: Obtained by using a Coin of Restoration on unique{Saresh's Darkness} +LevelReq: 24 +Implicits: 1 +{tags:jewellery_defense}+(9-20) to maximum Energy Shield +{tags:jewellery_resistance}+(35-50)% to Fire Resistance +(10-25)% increased Ignite Duration on Enemies +Enemies Blinded by you cannot inflict Damaging Ailments +Grants Level 20 Blazing Glare +]], +[[ +The Bandit Lord's Band +Gold Ring +League: Settlers +Source: Drops from unique{Sasan, the Bandit Lord} +Requires Level 44 +Implicits: 1 +(6-15)% increased Rarity of Items found +(25-35)% increased Quantity of Gold Dropped by Slain Enemies +]], +[[ +The Bane of Hope +Maraketh Bow +League: Mirage +Source: Drops from Mirage encounter +Requires Level 71 +Implicits: 1 +10% increased Movement Speed +(90-130)% increased Physical Damage ++(28-35)% to Physical Damage over Time Multiplier +Adds (20-30) to (40-50) Physical Damage +(15-30)% chance to Impale Enemies on Hit with Attacks +Trigger Level 20 Tears of Rot when Equipped ]], [[ The Broken Elegy Foul Staff +League: Mirage Source: Drops from unique{Saresh, of the Weeping Black} LevelReq: 64 Implicits: 1 @@ -92,5 +154,61 @@ Minions deal (113-157)% increased Damage (17-31)% increased Minion Duration When a nearby Minion dies, gain Rotten Bulwark equal to (7-9)% of its maximum Life Minions gain (59-83)% of Physical Damage as Extra Chaos Damage +]], +[[ +The Desecrated Chalice +Coronal Maul +League: Mirage +Source: Drops from Mirage encounter +Requires Level 69 +Implicits: 1 +20% increased Area of Effect +(120-160)% increased Physical Damage +(20-30)% increased Critical Strike Chance +(0.4-0.5)% of Chaos Damage Leeched as Life +Gain a Flask Charge when you deal a Critical Strike +Gain (40-75)% of Physical Damage as Extra Chaos Damage if you've used an Amethyst Flask Recently +]], +[[ +The Flame of Hope +Maraketh Bow +League: Mirage +Source: Obtained by using a Coin of Restoration on unique{The Bane of Hope} +Requires Level 71 +Implicits: 1 +10% increased Movement Speed +(90-110)% increased Fire Damage +Adds (180-230) to (310-360) Fire Damage +(14-18)% increased Attack Speed +Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance +Trigger Level 20 Cinders when Equipped +]], +[[ +The Sacred Chalice +Coronal Maul +League: Mirage +Source: Obtained by using a Coin of Restoration on unique{The Desecrated Chalice} +Requires Level 69 +Implicits: 1 +20% increased Area of Effect +(120-160)% increased Physical Damage +(20-30)% increased Critical Strike Chance +Gain a Flask Charge when you deal a Critical Strike +Gain (20-40)% of Physical Damage as Extra Cold Damage if you've used a Sapphire Flask Recently +Gain (20-40)% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently +]], +[[ +The Sands of Time +Tyrant's Sekhem +League: Mirage +Source: Drops from unique{Saresh, of the Weeping Black} +Requires Level 58, 99 Str, 99 Int +Implicits: 1 +26% increased Elemental Damage +Trigger level 20 Suspend in Time on Casting a Spell +(60-80)% increased Spell Damage +(60-80)% increased Mana Regeneration Rate +(10-15)% increased Cooldown Recovery Rate +10% increased Cast Speed for each different Non-Instant Spell you've Cast Recently ]] } \ No newline at end of file diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 52ea0343ae..1e672efd6b 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1068,6 +1068,9 @@ Huge sets the radius to 11. { var = "conditionUsingFlask", type = "check", label = "Do you have a Flask active?", ifCond = "UsingFlask", tooltip = "This is automatically enabled if you have a flask active,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) modList:NewMod("Condition:UsingFlask", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, + { var = "conditionUsedAmethystFlaskRecently", type = "check", label = "Used an Amethyst Flask recently?", ifCond = "UsedAmethystFlaskRecently", ifCond = "HaveAmethystFlask", tooltip = "This is automatically enabled if you have a flask active,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) + modList:NewMod("Condition:UsedAmethystFlaskRecently", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) + end }, { var = "conditionUsingTincture", type = "check", label = "Do you have a Tincture active?", ifCond = "UsingTincture", tooltip = "This is automatically enabled if you have a tincture active,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) modList:NewMod("Condition:UsingTincture", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index d198243984..0d2a3ad6eb 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -1811,6 +1811,7 @@ local modTagList = { ["if you haven't gained a power charge recently"] = { tag = { type = "Condition", var = "GainedPowerChargeRecently", neg = true } }, ["if you haven't gained a frenzy charge recently"] = { tag = { type = "Condition", var = "GainedFrenzyChargeRecently", neg = true } }, ["if you've stopped taking damage over time recently"] = { tag = { type = "Condition", var = "StoppedTakingDamageOverTimeRecently" } }, + ["if you've used an amethyst flask recently"] = { tagList = { { type = "Condition", var = "HaveAmethystFlask" }, { type = "Condition", var = "UsedAmethystFlaskRecently" } } }, ["during soul gain prevention"] = { tag = { type = "Condition", var = "SoulGainPrevention" } }, ["if you detonated mines recently"] = { tag = { type = "Condition", var = "DetonatedMinesRecently" } }, ["if you detonated a mine recently"] = { tag = { type = "Condition", var = "DetonatedMinesRecently" } }, From b4cea21a56abbe6a63f85c86e372536012ec381e Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sat, 14 Mar 2026 23:18:32 +1100 Subject: [PATCH 2/5] Desecrated Chalice and Desecrated Chalice flask mods Adds a new config option to only show if a condition is true already Moves the flask conditions for HaveAmethystFlask or other base types to CalcSetup as the previous handling in CalcPerform only enabled the condition if the flask was active instead of in the item slot which is what is meant to be for --- src/Classes/ConfigTab.lua | 12 ++++++++++++ src/Data/ModCache.lua | 11 ++++++----- src/Modules/CalcPerform.lua | 4 ---- src/Modules/CalcSetup.lua | 1 + src/Modules/ConfigOptions.lua | 10 ++++++++-- src/Modules/ModParser.lua | 4 +++- 6 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/Classes/ConfigTab.lua b/src/Classes/ConfigTab.lua index 28de4d9598..54192fd4c8 100644 --- a/src/Classes/ConfigTab.lua +++ b/src/Classes/ConfigTab.lua @@ -330,6 +330,18 @@ local ConfigTabClass = newClass("ConfigTab", "UndoHandler", "ControlHost", "Cont return out end)) end + if varData.ifCondTrue then + t_insert(shownFuncs, listOrSingleIfOption(varData.ifCondTrue, function(ifOption) + return self.build.calcsTab.mainEnv.player.modDB.conditions[ifOption] + end)) + t_insert(tooltipFuncs, listOrSingleIfTooltip(varData.ifCondTrue, function(ifOption) + if not launch.devModeAlt then + return + end + local out = "Condition state: " .. ifOption .. "=" .. tostring(self.build.calcsTab.mainEnv.player.modDB.conditions[ifOption]) + return out + end)) + end if varData.ifMult then t_insert(shownFuncs, listOrSingleIfOption(varData.ifMult, function(ifOption) if implyCond(varData) then diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 87abfb8568..9e3af634f3 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -8929,8 +8929,10 @@ c["Gain 30% of Cold Damage as Extra Fire Damage against Frozen Enemies"]={{[1]={ c["Gain 30% of Physical Attack Damage as Extra Fire Damage"]={{[1]={flags=1,keywordFlags=0,name="PhysicalDamageGainAsFire",type="BASE",value=30}},nil} c["Gain 30% of Physical Damage as Extra Cold Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsCold",type="BASE",value=30}},nil} c["Gain 30% of Physical Damage as Extra Cold Damage during effect"]={{[1]={[1]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsCold",type="BASE",value=30}},nil} +c["Gain 30% of Physical Damage as Extra Cold Damage if you've used a Sapphire Flask Recently"]={{[1]={[1]={type="Condition",var="UsedSapphireFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsCold",type="BASE",value=30}},nil} c["Gain 30% of Physical Damage as Extra Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsFire",type="BASE",value=30}},nil} c["Gain 30% of Physical Damage as Extra Lightning Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsLightning",type="BASE",value=30}},nil} +c["Gain 30% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently"]={{[1]={[1]={type="Condition",var="UsedTopazFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsLightning",type="BASE",value=30}},nil} c["Gain 300 Life per Ignited Enemy Killed"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Ignited"},flags=0,keywordFlags=0,name="LifeOnKill",type="BASE",value=300}},nil} c["Gain 300% of Weapon Physical Damage as Extra Damage of a random Element"]={{[1]={flags=8192,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=300}},nil} c["Gain 35% of Missing Unreserved Life before being Hit by an Enemy"]={{[1]={flags=0,keywordFlags=0,name="MissingLifeBeforeEnemyHit",type="BASE",value=35}},nil} @@ -8948,10 +8950,9 @@ c["Gain 40 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKil c["Gain 40% increased Area of Effect for 2 seconds after Spending a total of 800 Mana"]={{[1]={[1]={threshold=800,type="MultiplierThreshold",var="ManaSpentRecently"},flags=0,keywordFlags=0,name="AreaOfEffect",type="BASE",value=40}},"% increased "} c["Gain 40% of Physical Attack Damage as Extra Fire Damage"]={{[1]={flags=1,keywordFlags=0,name="PhysicalDamageGainAsFire",type="BASE",value=40}},nil} c["Gain 40% of Physical Damage as Extra Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsChaos",type="BASE",value=40}},nil} -c["Gain 40% of Physical Damage as Extra Cold Damage if you've used a Sapphire Flask Recently"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsCold",type="BASE",value=40}}," if you've used a Sapphire Flask Recently "} -c["Gain 40% of Physical Damage as Extra Cold Damage if you've used a Sapphire Flask Recently Gain 40% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsCold",type="BASE",value=40}}," if you've used a Sapphire Flask Recently Gain 40% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently "} +c["Gain 40% of Physical Damage as Extra Cold Damage if you've used a Sapphire Flask Recently"]={{[1]={[1]={type="Condition",var="UsedSapphireFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsCold",type="BASE",value=40}},nil} c["Gain 40% of Physical Damage as Extra Damage of a random Element while you are Ignited"]={{[1]={[1]={type="Condition",var="Ignited"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=40}},nil} -c["Gain 40% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsLightning",type="BASE",value=40}}," if you've used a Topaz Flask Recently "} +c["Gain 40% of Physical Damage as Extra Lightning Damage if you've used a Topaz Flask Recently"]={{[1]={[1]={type="Condition",var="UsedTopazFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsLightning",type="BASE",value=40}},nil} c["Gain 40% of Physical Damage as a Random Element if you've cast Elemental Weakness in the past 10 seconds"]={{[1]={[1]={type="Condition",var="SelfCastElementalWeakness"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=40}},nil} c["Gain 5 Life for each Ignited Enemy hit with Attacks"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Ignited"},flags=5,keywordFlags=0,name="LifeOnHit",type="BASE",value=5}},nil} c["Gain 5 Life per Enemy Hit with Attacks"]={{[1]={flags=4,keywordFlags=65536,name="LifeOnHit",type="BASE",value=5}},nil} @@ -8983,7 +8984,7 @@ c["Gain 50% of Physical Damage as Extra Fire Damage"]={{[1]={flags=0,keywordFlag c["Gain 50% of Physical Damage as Extra Lightning Damage"]={{[1]={flags=0,keywordFlags=0,name="PhysicalDamageGainAsLightning",type="BASE",value=50}},nil} c["Gain 50% of Weapon Physical Damage as Extra Damage of a Random Element"]={{[1]={flags=8192,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=50}},nil} c["Gain 51 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKill",type="BASE",value=51}},nil} -c["Gain 58% of Physical Damage as Extra Chaos Damage if you've used an Amethyst Flask Recently"]={{[1]={[1]={type="Condition",var="HaveAmethystFlask"},[2]={type="Condition",var="UsedAmethystFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsChaos",type="BASE",value=58}},nil} +c["Gain 58% of Physical Damage as Extra Chaos Damage if you've used an Amethyst Flask Recently"]={{[1]={[1]={type="Condition",var="UsedAmethystFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsChaos",type="BASE",value=58}},nil} c["Gain 6 Life per Enemy Hit with Attacks"]={{[1]={flags=4,keywordFlags=65536,name="LifeOnHit",type="BASE",value=6}},nil} c["Gain 6 Life per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="LifeOnKill",type="BASE",value=6}},nil} c["Gain 6% of Maximum Life as Extra Maximum Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="LifeGainAsEnergyShield",type="BASE",value=6}},nil} @@ -9000,7 +9001,7 @@ c["Gain 70% of Physical Damage as Extra Fire Damage"]={{[1]={flags=0,keywordFlag c["Gain 700% of Weapon Physical Damage as Extra Damage of a random Element"]={{[1]={flags=8192,keywordFlags=0,name="PhysicalDamageGainAsRandom",type="BASE",value=700}},nil} c["Gain 75 Armour per Grand Spectrum"]={{[1]={[1]={type="Multiplier",var="GrandSpectrum"},flags=0,keywordFlags=0,name="Armour",type="BASE",value=75}},nil} c["Gain 75 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKill",type="BASE",value=75}},nil} -c["Gain 75% of Physical Damage as Extra Chaos Damage if you've used an Amethyst Flask Recently"]={{[1]={[1]={type="Condition",var="HaveAmethystFlask"},[2]={type="Condition",var="UsedAmethystFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsChaos",type="BASE",value=75}},nil} +c["Gain 75% of Physical Damage as Extra Chaos Damage if you've used an Amethyst Flask Recently"]={{[1]={[1]={type="Condition",var="UsedAmethystFlaskRecently"},flags=0,keywordFlags=0,name="PhysicalDamageGainAsChaos",type="BASE",value=75}},nil} c["Gain 8 Life per Enemy Hit with Attacks"]={{[1]={flags=4,keywordFlags=65536,name="LifeOnHit",type="BASE",value=8}},nil} c["Gain 8 Life per Enemy Hit with Spells"]={{[1]={flags=4,keywordFlags=131072,name="LifeOnHit",type="BASE",value=8}},nil} c["Gain 8 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKill",type="BASE",value=8}},nil} diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 50041da89b..8bd3742204 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1590,7 +1590,6 @@ function calcs.perform(env, skipEHP) flaskConditions["UsingFlask"] = true flaskConditionsNonUtility["UsingFlask"] = true flaskConditions["Using"..item.baseName:gsub("%s+", "")] = true - haveFlask["Have"..item.baseName:gsub("%s+", "")] = true if item.base.flask.life or item.base.flask.mana then flaskConditionsNonUtility["Using"..item.baseName:gsub("%s+", "")] = true end @@ -1617,9 +1616,6 @@ function calcs.perform(env, skipEHP) calcFlaskMods(item, item.baseName, item.buffModList, item.modList) end end - for haveFlask, status in pairs(haveFlask) do - modDB.conditions[haveFlask] = status - end if modDB:Flag(nil, "UtilityFlasksDoNotApplyToPlayer") then for flaskCond, status in pairs(flaskConditionsNonUtility) do modDB.conditions[flaskCond] = status diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index 43af65c78c..d4bc5d40e0 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -882,6 +882,7 @@ function calcs.initEnv(build, mode, override, specEnv) local slotName = slot.slotName local item = items[slotName] if item and item.type == "Flask" then + env.itemModDB.conditions["Have"..item.baseName:gsub("%s+", "")] = true if slot.active then env.flasks[item] = true end diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 1e672efd6b..a4d9684478 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1068,8 +1068,14 @@ Huge sets the radius to 11. { var = "conditionUsingFlask", type = "check", label = "Do you have a Flask active?", ifCond = "UsingFlask", tooltip = "This is automatically enabled if you have a flask active,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) modList:NewMod("Condition:UsingFlask", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, - { var = "conditionUsedAmethystFlaskRecently", type = "check", label = "Used an Amethyst Flask recently?", ifCond = "UsedAmethystFlaskRecently", ifCond = "HaveAmethystFlask", tooltip = "This is automatically enabled if you have a flask active,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) - modList:NewMod("Condition:UsedAmethystFlaskRecently", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) + { var = "conditionUsedAmethystFlaskRecently", type = "check", label = "Used an Amethyst Flask recently?", ifCond = "UsedAmethystFlaskRecently", ifCondTrue = "HaveAmethystFlask", apply = function(val, modList, enemyModList) + modList:NewMod("Condition:UsedAmethystFlaskRecently", "FLAG", true, "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "HaveAmethystFlask" }) + end }, + { var = "conditionUsedSapphireFlaskRecently", type = "check", label = "Used a Sapphire Flask recently?", ifCond = "UsedSapphireFlaskRecently", ifCondTrue = "HaveSapphireFlask", apply = function(val, modList, enemyModList) + modList:NewMod("Condition:UsedSapphireFlaskRecently", "FLAG", true, "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "HaveSapphireFlask" }) + end }, + { var = "conditionUsedTopazFlaskRecently", type = "check", label = "Used a Topaz Flask recently?", ifCond = "UsedTopazFlaskRecently", ifCondTrue = "HaveTopazFlask", apply = function(val, modList, enemyModList) + modList:NewMod("Condition:UsedTopazFlaskRecently", "FLAG", true, "Config", { type = "Condition", var = "Combat" }, { type = "Condition", var = "HaveTopazFlask" }) end }, { var = "conditionUsingTincture", type = "check", label = "Do you have a Tincture active?", ifCond = "UsingTincture", tooltip = "This is automatically enabled if you have a tincture active,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) modList:NewMod("Condition:UsingTincture", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 0d2a3ad6eb..7cccc088c2 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -1811,7 +1811,9 @@ local modTagList = { ["if you haven't gained a power charge recently"] = { tag = { type = "Condition", var = "GainedPowerChargeRecently", neg = true } }, ["if you haven't gained a frenzy charge recently"] = { tag = { type = "Condition", var = "GainedFrenzyChargeRecently", neg = true } }, ["if you've stopped taking damage over time recently"] = { tag = { type = "Condition", var = "StoppedTakingDamageOverTimeRecently" } }, - ["if you've used an amethyst flask recently"] = { tagList = { { type = "Condition", var = "HaveAmethystFlask" }, { type = "Condition", var = "UsedAmethystFlaskRecently" } } }, + ["if you've used an amethyst flask recently"] = { tag = { type = "Condition", var = "UsedAmethystFlaskRecently" } }, + ["if you've used a sapphire flask recently"] = { tag = { type = "Condition", var = "UsedSapphireFlaskRecently" } }, + ["if you've used a topaz flask recently"] = { tag = { type = "Condition", var = "UsedTopazFlaskRecently" } }, ["during soul gain prevention"] = { tag = { type = "Condition", var = "SoulGainPrevention" } }, ["if you detonated mines recently"] = { tag = { type = "Condition", var = "DetonatedMinesRecently" } }, ["if you detonated a mine recently"] = { tag = { type = "Condition", var = "DetonatedMinesRecently" } }, From e71ba923734d5c53d658030a88df4611b984e008 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 15 Mar 2026 00:10:40 +1100 Subject: [PATCH 3/5] Flame of Hope --- src/Data/ModCache.lua | 5 ++--- src/Data/Skills/act_str.lua | 12 ++++++------ src/Data/Skills/other.lua | 32 ++++++++++++++++++++++++++++++++ src/Export/Skills/other.txt | 11 +++++++++++ src/Modules/ConfigOptions.lua | 4 +++- src/Modules/ModParser.lua | 4 ++++ 6 files changed, 58 insertions(+), 10 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 9e3af634f3..977b67a4cc 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -9578,8 +9578,7 @@ c["Inflict 5 additional Impales on Enemies you Impale For 5 seconds after you Im c["Inflict Brittle on Enemies when you Block their Damage"]={nil,"Inflict Brittle on Enemies when you Block their Damage "} c["Inflict Brittle on Enemies when you Block their Damage 67% increased Chance to Block"]={nil,"Inflict Brittle on Enemies when you Block their Damage 67% increased Chance to Block "} c["Inflict Decay on Enemies you Curse with Hex Skills, dealing 700 Chaos Damage per Second for 8 Seconds"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="decay",merge="MAX",value=700}}},nil} -c["Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance"]={nil,"Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance "} -c["Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance Trigger Level 20 Cinders when Equipped"]={nil,"Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance Trigger Level 20 Cinders when Equipped "} +c["Inflict Fire Exposure on Hit against Enemies with 5 Cinderflame, applying -25% to Fire Resistance"]={{[1]={[1]={type="Condition",var="Effective"},[2]={threshold=5,type="MultiplierThreshold",var="CinderflameStacks"},flags=0,keywordFlags=0,name="FireExposureChance",type="BASE",value=100},[2]={[1]={type="Condition",var="Effective"},[2]={threshold=5,type="MultiplierThreshold",var="CinderflameStacks"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="FireExposure",type="BASE",value=-25}}}},nil} c["Inflict Fire Exposure on Hit if you've cast Flammability in the past 10 seconds"]={{[1]={[1]={type="Condition",var="SelfCastFlammability"},[2]={type="Condition",var="Effective"},flags=4,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="FireExposure",type="BASE",value=-10}}}},nil} c["Inflict Fire, Cold and Lightning Exposure on Enemies when you Suppress their Spell Damage"]={{[1]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="SuppressedRecently"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="FireExposure",type="BASE",value=-10}}},[2]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="SuppressedRecently"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ColdExposure",type="BASE",value=-10}}},[3]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="SuppressedRecently"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="LightningExposure",type="BASE",value=-10}}}},nil} c["Inflict Fire, Cold and Lightning Exposure on nearby Enemies when used"]={{[1]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="FireExposure",type="BASE",value=-10}}},[2]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ColdExposure",type="BASE",value=-10}}},[3]={[1]={type="Condition",var="Effective"},[2]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="LightningExposure",type="BASE",value=-10}}}},nil} @@ -12297,7 +12296,7 @@ c["Trigger Level 20 Animate Guardian's Weapon when Animated Guardian Kills an En c["Trigger Level 20 Arcane Wake after Spending a total of 200 Mana"]={{},nil} c["Trigger Level 20 Bone Nova when you Hit a Bleeding Enemy"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="BoneNova",triggered=true}}},nil} c["Trigger Level 20 Bone Offering, Flesh Offering or Spirit Offering every 5 seconds"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="BoneOffering",triggered=true}},[2]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="FleshOffering",triggered=true}},[3]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SpiritOffering",triggered=true}}},nil} -c["Trigger Level 20 Cinders when Equipped"]={{},nil} +c["Trigger Level 20 Cinders when Equipped"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ResentmentUniqueSkill",triggered=true}}},nil} c["Trigger Level 20 Death Aura when Equipped"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="DeathAura",triggered=true}}},nil} c["Trigger Level 20 Elemental Warding on Melee Hit while Cursed"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ElementalWarding",triggered=true}}},nil} c["Trigger Level 20 Fiery Impact on Melee Hit with this Weapon"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="FieryImpactHeistMaceImplicit",triggered=true}}},nil} diff --git a/src/Data/Skills/act_str.lua b/src/Data/Skills/act_str.lua index 2afac98c26..b10c41a132 100644 --- a/src/Data/Skills/act_str.lua +++ b/src/Data/Skills/act_str.lua @@ -6173,12 +6173,6 @@ skills["HolyStrike"] = { ["Staff"] = true, ["Two Handed Mace"] = true, }, - statMap = { - ["skill_physical_damage_%_to_convert_to_lightning"] = { - mod("SkillPhysicalDamageConvertToLightning", "BASE", nil), - mod("MinionModifier", "LIST", { mod = mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0) }) - }, - }, statDescriptionScope = "minion_attack_skill_stat_descriptions", castTime = 1, minionList = { @@ -6187,6 +6181,12 @@ skills["HolyStrike"] = { minionUses = { ["Weapon 1"] = true, }, + statMap = { + ["skill_physical_damage_%_to_convert_to_lightning"] = { + mod("SkillPhysicalDamageConvertToLightning", "BASE", nil), + mod("MinionModifier", "LIST", { mod = mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0) }) + }, + }, baseFlags = { attack = true, minion = true, diff --git a/src/Data/Skills/other.lua b/src/Data/Skills/other.lua index 6f23e0cdfb..811029d846 100644 --- a/src/Data/Skills/other.lua +++ b/src/Data/Skills/other.lua @@ -704,6 +704,38 @@ skills["CeaselessFleshUnique"] = { [25] = { 80, levelRequirement = 72, statInterpolation = { 1, }, }, }, } +skills["ResentmentUniqueSkill"] = { + name = "Cinders", + hidden = true, + color = 2, + description = "While active, your bow attacks inflict Cinderflame. Cinderflame deals fire damage over time, and can stack up to ten times. This skill cannot be cast by Totems.", + skillTypes = { [SkillType.Spell] = true, [SkillType.Buff] = true, [SkillType.Duration] = true, [SkillType.Triggerable] = true, [SkillType.Triggered] = true, [SkillType.Instant] = true, [SkillType.Cooldown] = true, [SkillType.DamageOverTime] = true, [SkillType.Fire] = true, [SkillType.CausesBurning] = true, }, + statDescriptionScope = "skill_stat_descriptions", + castTime = 0, + fromItem = true, + statMap = { + ["base_fire_damage_to_deal_per_minute"] = { + skill("FireDot", nil, { type = "Multiplier", var = "CinderflameStacks", limit = 10 }), + div = 60, + }, + }, + baseFlags = { + spell = true, + duration = true, + }, + constantStats = { + { "base_skill_effect_duration", 3000 }, + { "base_fire_damage_to_deal_per_minute", 20000 }, + }, + stats = { + "cast_on_gain_skill", + "spell_uncastable_if_triggerable", + "no_cost", + }, + levels = { + [20] = { cooldown = 1, levelRequirement = 0, storedUses = 1, }, + }, +} skills["ColdAegis"] = { name = "Cold Aegis", hidden = true, diff --git a/src/Export/Skills/other.txt b/src/Export/Skills/other.txt index cf9f7fbd47..933f914f6e 100644 --- a/src/Export/Skills/other.txt +++ b/src/Export/Skills/other.txt @@ -246,6 +246,17 @@ local skills, mod, flag, skill = ... }, #mods +#skill ResentmentUniqueSkill +#flags spell duration + fromItem = true, + statMap = { + ["base_fire_damage_to_deal_per_minute"] = { + skill("FireDot", nil, { type = "Multiplier", var = "CinderflameStacks", limit = 10 }), + div = 60, + }, + }, +#mods + #skill ColdAegis #flags spell fromItem = true, diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index a4d9684478..3183524ffa 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -335,6 +335,9 @@ return { { var = "chaosGolemEqualsStoneGolem", type = "check", label = "# Chaos Golem = # Stone Golem:", ifCond = "ChaosEqualStoneGolem", ifSkill = "Summon Stone Golem", includeTransfigured = true, apply = function(val, modList, enemyModList) modList:NewMod("Condition:ChaosEqualStoneGolem", "FLAG", true, "Config") end }, + { var = "cinderflameStacks", type = "count", label = "# of Cinderflame stacks on enemy:", ifSkill = "Cinders", apply = function(val, modList, enemyModList) + modList:NewMod("Multiplier:CinderflameStacks", "BASE", val, "Config") + end }, { var = "stoneGolemEqualsCarrionGolem", type = "check", label = "# Stone Golem = # Carrion Golem:", ifCond = "StoneEqualCarrionGolem", ifSkill = "Summon Carrion Golem", includeTransfigured = true, apply = function(val, modList, enemyModList) modList:NewMod("Condition:StoneEqualCarrionGolem", "FLAG", true, "Config") end }, @@ -674,7 +677,6 @@ return { { var = "summonReaperConsumeRecently", type = "check", label = "Reaper Consumed recently?", ifSkill = "Summon Reaper", includeTransfigured = true, apply = function(val, modList, enemyModList) modList:NewMod("SkillData", "LIST", { key = "enable", value = true }, "Config", { type = "SkillId", skillId = "ReaperConsumeMinionForBuff" }) end }, - { label = "Tears of Rot:", ifSkill = "Tears of Rot" }, { var = "weepingBlackStacks", type = "count", label = "# of Weeping Black stacks on enemy:", ifSkill = "Tears of Rot", apply = function(val, modList, enemyModList) modList:NewMod("Multiplier:WeepingBlackStacks", "BASE", val, "Config") end }, diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 7cccc088c2..778b556c97 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4073,6 +4073,10 @@ local specialModList = { mod( firstToUpper(element1).."ExposureChance", "BASE", 100, { type = "ActorCondition", actor = "enemy", var = "PinnacleBoss" }, { type = "Condition", var = "Effective" }), mod("EnemyModifier", "LIST", { mod = mod(firstToUpper(element2).."Exposure", "BASE", -num, { type = "Condition", var = "PinnacleBoss" }) }, { type = "Condition", var = "Effective" }), } end, + ["inflict fire exposure on hit against enemies with (%d+) cinderflame, applying %-(%d+)%% to (%w+) resistance"] = function(cinderflame, _, num, element) return { + mod( "FireExposureChance", "BASE", 100, { type = "Condition", var = "Effective" }, { type = "MultiplierThreshold", var = "CinderflameStacks", threshold = cinderflame }), + mod("EnemyModifier", "LIST", { mod = mod(firstToUpper(element).."Exposure", "BASE", -num) }, { type = "Condition", var = "Effective" }, { type = "MultiplierThreshold", var = "CinderflameStacks", threshold = cinderflame }), + } end, ["fire exposure you inflict applies an extra (%-?%d+)%% to fire resistance"] = function(num) return { mod("ExtraFireExposure", "BASE", num) } end, ["cold exposure you inflict applies an extra (%-?%d+)%% to cold resistance"] = function(num) return { mod("ExtraColdExposure", "BASE", num) } end, ["lightning exposure you inflict applies an extra (%-?%d+)%% to lightning resistance"] = function(num) return { mod("ExtraLightningExposure", "BASE", num) } end, From f0ad4a90031a11f730105733edbb74f447be1444 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 15 Mar 2026 00:57:22 +1100 Subject: [PATCH 4/5] Screams of the Desiccated Adds support for all the shrine mods and also the greater freezing / shocking / skeletal shrine buffs --- src/Data/ModCache.lua | 12 +++++++++++ src/Data/Uniques/Special/New.lua | 34 ++++++++++++++++++++++++++++++-- src/Modules/CalcPerform.lua | 9 +++++++++ src/Modules/CalcSetup.lua | 3 +++ src/Modules/Calcs.lua | 9 +++++++++ src/Modules/ConfigOptions.lua | 9 +++++++++ src/Modules/ModParser.lua | 24 ++++++++++++++++++++-- 7 files changed, 96 insertions(+), 4 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 977b67a4cc..edb7024138 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -3967,6 +3967,7 @@ c["20% increased Effect of Impales you inflict on non-Impaled Enemies"]={{[1]={f c["20% increased Effect of Lightning Ailments"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockEffect",type="INC",value=20},[2]={flags=0,keywordFlags=0,name="EnemySapEffect",type="INC",value=20}},nil} c["20% increased Effect of Non-Damaging Ailments"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockEffect",type="INC",value=20},[2]={flags=0,keywordFlags=0,name="EnemyChillEffect",type="INC",value=20},[3]={flags=0,keywordFlags=0,name="EnemyFreezeEffect",type="INC",value=20},[4]={flags=0,keywordFlags=0,name="EnemyScorchEffect",type="INC",value=20},[5]={flags=0,keywordFlags=0,name="EnemyBrittleEffect",type="INC",value=20},[6]={flags=0,keywordFlags=0,name="EnemySapEffect",type="INC",value=20}},nil} c["20% increased Effect of Shock"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockEffect",type="INC",value=20}},nil} +c["20% increased Effect of Shrine Buffs on you"]={{[1]={flags=0,keywordFlags=0,name="ShrineBuffEffect",type="INC",value=20}},nil} c["20% increased Effect of Withered"]={{[1]={flags=0,keywordFlags=0,name="WitherEffect",type="INC",value=20}},nil} c["20% increased Effect of non-Damaging Ailments you inflict with Critical Strikes"]={{[1]={[1]={type="Condition",var="CriticalStrike"},flags=0,keywordFlags=0,name="EnemyShockEffect",type="INC",value=20},[2]={[1]={type="Condition",var="CriticalStrike"},flags=0,keywordFlags=0,name="EnemyChillEffect",type="INC",value=20},[3]={[1]={type="Condition",var="CriticalStrike"},flags=0,keywordFlags=0,name="EnemyFreezeEffect",type="INC",value=20},[4]={[1]={type="Condition",var="CriticalStrike"},flags=0,keywordFlags=0,name="EnemyScorchEffect",type="INC",value=20},[5]={[1]={type="Condition",var="CriticalStrike"},flags=0,keywordFlags=0,name="EnemyBrittleEffect",type="INC",value=20},[6]={[1]={type="Condition",var="CriticalStrike"},flags=0,keywordFlags=0,name="EnemySapEffect",type="INC",value=20}},nil} c["20% increased Effect of your Curses"]={{[1]={flags=0,keywordFlags=0,name="CurseEffect",type="INC",value=20}},nil} @@ -12788,7 +12789,9 @@ c["You gain Phasing for 3 seconds on using a Vaal Skill You gain Phasing for 10 c["You gain an Endurance Charge on Kill"]={nil,"an Endurance Charge "} c["You gain an Endurance Charge on Kill You gain Onslaught for 1 seconds per Endurance Charge when Hit"]={{[1]={[1]={type="Condition",var="KilledRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},"an Endurance Charge You gain per Endurance Charge when Hit "} c["You grant 6 Frenzy Charges to allies on Death"]={nil,"You grant 6 Frenzy Charges to allies on Death "} +c["You have Acceleration Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:AccelerationShrine",type="FLAG",value=true}},nil} c["You have Arcane Surge during Effect of any Mana Flask"]={{[1]={[1]={type="Condition",var="UsingManaFlask"},flags=0,keywordFlags=0,name="Condition:ArcaneSurge",type="FLAG",value=true}},nil} +c["You have Brutal Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:BrutalShrine",type="FLAG",value=true}},nil} c["You have Consecrated Ground around you while"]={nil,"Consecrated Ground around you while "} c["You have Consecrated Ground around you while stationary"]={{[1]={[1]={type="Condition",var="Stationary"},flags=0,keywordFlags=0,name="Condition:OnConsecratedGround",type="FLAG",value=true}},nil} c["You have Consecrated Ground around you while stationary if Strength is your highest Attribute"]={{[1]={[1]={type="Condition",var="StrHighestAttribute"},[2]={type="Condition",var="Stationary"},flags=0,keywordFlags=0,name="Condition:OnConsecratedGround",type="FLAG",value=true}},nil} @@ -12796,14 +12799,21 @@ c["You have Crimson Dance if you have dealt a Critical Strike Recently"]={{[1]={ c["You have Crimson Dance while you have Cat's Stealth"]={{[1]={[1]={type="Condition",var="AffectedByCat'sStealth"},flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Crimson Dance"}},nil} c["You have Culling Strike against Cursed Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="CullPercent",type="MAX",value=10}},nil} c["You have Diamond Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:DiamondShrine",type="FLAG",value=true}},nil} +c["You have Echoing Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:EchoingShrine",type="FLAG",value=true}},nil} c["You have Elemental Conflux if the stars are aligned"]={{[1]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="PhysicalCanChill",type="FLAG",value=true},[2]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="LightningCanChill",type="FLAG",value=true},[3]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="FireCanChill",type="FLAG",value=true},[4]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="ChaosCanChill",type="FLAG",value=true},[5]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="EnemyShockChance",type="BASE",value=100},[6]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="PhysicalCanShock",type="FLAG",value=true},[7]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="ColdCanShock",type="FLAG",value=true},[8]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="FireCanShock",type="FLAG",value=true},[9]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="ChaosCanShock",type="FLAG",value=true},[10]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="EnemyIgniteChance",type="BASE",value=100},[11]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="PhysicalCanIgnite",type="FLAG",value=true},[12]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="LightningCanIgnite",type="FLAG",value=true},[13]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="ColdCanIgnite",type="FLAG",value=true},[14]={[1]={type="Condition",var="StarsAreAligned"},flags=0,keywordFlags=0,name="ChaosCanIgnite",type="FLAG",value=true}},nil} c["You have Everlasting Sacrifice if at least 6 Corrupted Items are Equipped"]={{[1]={[1]={threshold=6,type="MultiplierThreshold",var="CorruptedItem"},flags=0,keywordFlags=0,name="Condition:EverlastingSacrifice",type="FLAG",value=true}},nil} c["You have Far Shot while you do not have Iron Reflexes"]={{[1]={[1]={neg=true,type="Condition",var="HaveIronReflexes"},flags=0,keywordFlags=0,name="FarShot",type="FLAG",value=true}},nil} c["You have Fungal Ground around you while stationary"]={{[1]={[1]={type="Condition",varList={[1]="OnFungalGround",[2]="Stationary"}},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=25}}},[2]={[1]={actor="enemy",type="ActorCondition",varList={[1]="OnFungalGround",[2]="Stationary"}},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=-10}}},[3]={[1]={actor="enemy",type="ActorCondition",varList={[1]="OnFungalGround",[2]="Stationary"}},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ElementalResist",type="BASE",value=-10}}}},nil} +c["You have Gloom Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:GloomShrine",type="FLAG",value=true}},nil} +c["You have Greater Freezing Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:GreaterFreezingShrine",type="FLAG",value=true}},nil} +c["You have Greater Shocking Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:GreaterShockingShrine",type="FLAG",value=true}},nil} +c["You have Greater Skeletal Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:GreaterSkeletalShrine",type="FLAG",value=true}},nil} c["You have Igniting, Chilling and Shocking Conflux while affected by Glorious Madness"]={{[1]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="PhysicalCanChill",type="FLAG",value=true},[2]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="LightningCanChill",type="FLAG",value=true},[3]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="FireCanChill",type="FLAG",value=true},[4]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="ChaosCanChill",type="FLAG",value=true},[5]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="EnemyIgniteChance",type="BASE",value=100},[6]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="PhysicalCanIgnite",type="FLAG",value=true},[7]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="LightningCanIgnite",type="FLAG",value=true},[8]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="ColdCanIgnite",type="FLAG",value=true},[9]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="ChaosCanIgnite",type="FLAG",value=true},[10]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="EnemyShockChance",type="BASE",value=100},[11]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="PhysicalCanShock",type="FLAG",value=true},[12]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="ColdCanShock",type="FLAG",value=true},[13]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="FireCanShock",type="FLAG",value=true},[14]={[1]={type="Condition",var="AffectedByGloriousMadness"},flags=0,keywordFlags=0,name="ChaosCanShock",type="FLAG",value=true}},nil} +c["You have Impenetrable Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:ImpenetrableShrine",type="FLAG",value=true}},nil} c["You have Iron Reflexes while at maximum Frenzy Charges"]={{[1]={[1]={stat="FrenzyCharges",thresholdStat="FrenzyChargesMax",type="StatThreshold"},flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Iron Reflexes"}},nil} c["You have Lesser Brutal Shrine Buff"]={{[1]={flags=0,keywordFlags=0,name="Condition:LesserBrutalShrine",type="FLAG",value=true}},nil} c["You have Lesser Massive Shrine Buff"]={{[1]={flags=0,keywordFlags=0,name="Condition:LesserMassiveShrine",type="FLAG",value=true}},nil} +c["You have Massive Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:MassiveShrine",type="FLAG",value=true}},nil} c["You have Mind over Matter while at maximum Power Charges"]={{[1]={[1]={stat="PowerCharges",thresholdStat="PowerChargesMax",type="StatThreshold"},flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Mind Over Matter"}},nil} c["You have Onslaught if you've Summoned a Totem Recently"]={{[1]={[1]={type="Condition",var="SummonedTotemRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} c["You have Onslaught if you've changed Stance Recently"]={{[1]={[1]={type="Condition",var="ChangedStanceRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} @@ -12820,8 +12830,10 @@ c["You have Phasing if you've Killed Recently"]={{[1]={[1]={type="Condition",var c["You have Phasing while affected by Haste"]={{[1]={[1]={type="Condition",var="AffectedByHaste"},flags=0,keywordFlags=0,name="Condition:Phasing",type="FLAG",value=true}},nil} c["You have Phasing while on Low Life"]={{[1]={[1]={type="Condition",var="LowLife"},flags=0,keywordFlags=0,name="Condition:Phasing",type="FLAG",value=true}},nil} c["You have Phasing while you have Cat's Stealth"]={{[1]={[1]={type="Condition",var="AffectedByCat'sStealth"},flags=0,keywordFlags=0,name="Condition:Phasing",type="FLAG",value=true}},nil} +c["You have Replenishing Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:ReplenishingShrine",type="FLAG",value=true}},nil} c["You have Resistance Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:ResistanceShrine",type="FLAG",value=true}},nil} c["You have Resolute Technique while you do not have Elemental Overload"]={{[1]={[1]={neg=true,type="Condition",var="HaveElementalOverload"},flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Resolute Technique"}},nil} +c["You have Resonating Shrine Buff while affected by no Flasks"]={{[1]={[1]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:ResonatingShrine",type="FLAG",value=true}},nil} c["You have Sacrifice of Blood if at least 8 Corrupted Items are Equipped"]={nil,"Sacrifice of Blood if at least 8 Corrupted Items are Equipped "} c["You have Scorching Conflux, Brittle Conflux and Sapping Conflux while your two highest Attributes are equal"]={{[1]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="EnemyScorchChance",type="BASE",value=100},[2]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="EnemyBrittleChance",type="BASE",value=100},[3]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="EnemySapChance",type="BASE",value=100},[4]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="PhysicalCanScorch",type="FLAG",value=true},[5]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="LightningCanScorch",type="FLAG",value=true},[6]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="ColdCanScorch",type="FLAG",value=true},[7]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="ChaosCanScorch",type="FLAG",value=true},[8]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="PhysicalCanBrittle",type="FLAG",value=true},[9]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="LightningCanBrittle",type="FLAG",value=true},[10]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="FireCanBrittle",type="FLAG",value=true},[11]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="ChaosCanBrittle",type="FLAG",value=true},[12]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="PhysicalCanSap",type="FLAG",value=true},[13]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="ColdCanSap",type="FLAG",value=true},[14]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="FireCanSap",type="FLAG",value=true},[15]={[1]={type="Condition",var="TwoHighestAttributesEqual"},flags=0,keywordFlags=0,name="ChaosCanSap",type="FLAG",value=true}},nil} c["You have Shepherd of Souls if at least 4 Corrupted Items are Equipped"]={{[1]={[1]={threshold=4,type="MultiplierThreshold",var="CorruptedItem"},flags=0,keywordFlags=0,name="ShepherdOfSouls",type="FLAG",value=true}},nil} diff --git a/src/Data/Uniques/Special/New.lua b/src/Data/Uniques/Special/New.lua index 4df4008cd0..e643c8382f 100644 --- a/src/Data/Uniques/Special/New.lua +++ b/src/Data/Uniques/Special/New.lua @@ -80,13 +80,43 @@ Screams of the Desiccated Leather Belt League: Mirage Source: Drops from unique{Saresh, of the Weeping Black} +Has Alt Variant: true +Selected Variant: 1 +Selected Alt Variant: 1 +Variant: Acceleration +Variant: Brutal +Variant: Diamond +Variant: Echoing +Variant: Gloom +Variant: Greater Freezing +Variant: Greater Shocking +Variant: Greater Skeletal +Variant: Impenetrable +Variant: Massive +Variant: Replenishing +Variant: Resistance +Variant: Resonating LevelReq: 56 Implicits: 1 {tags:life}+(25-40) to maximum Life -You have Diamond Shrine Buff while affected by no Flasks -You have Resistance Shrine Buff while affected by no Flasks {tags:jewellery_attribute}+(23-32) to Intelligence {tags:jewellery_resistance}+(23-37)% to Chaos Resistance +{variant:1}You have Acceleration Shrine Buff while affected by no Flasks +{variant:2}You have Brutal Shrine Buff while affected by no Flasks +{variant:3}You have Diamond Shrine Buff while affected by no Flasks +{variant:4}You have Echoing Shrine Buff while affected by no Flasks +{variant:5}You have Gloom Shrine Buff while affected by no Flasks +{variant:6}You have Greater Freezing Shrine Buff while affected by no Flasks +{variant:6}(15—20)% increased Effect of Shrine Buffs on you +{variant:7}You have Greater Shocking Shrine Buff while affected by no Flasks +{variant:7}(15—20)% increased Effect of Shrine Buffs on you +{variant:8}You have Greater Skeletal Shrine Buff while affected by no Flasks +{variant:8}(15—20)% increased Effect of Shrine Buffs on you +{variant:9}You have Impenetrable Shrine Buff while affected by no Flasks +{variant:10}You have Massive Shrine Buff while affected by no Flasks +{variant:11}You have Replenishing Shrine Buff while affected by no Flasks +{variant:12}You have Resistance Shrine Buff while affected by no Flasks +{variant:13}You have Resonating Shrine Buff while affected by no Flasks ]], [[ Skysunder diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 8bd3742204..5037543dba 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -305,6 +305,15 @@ local function doActorAttribsConditions(env, actor) if modDB:Flag(nil, "GloomShrine") then modDB:NewMod("NonChaosDamageGainAsChaos", "BASE", m_floor(10 * shrineEffectMod), "Gloom Shrine") end + if modDB:Flag(nil, "GreaterFreezingShrine") then + modDB:NewMod("PhysicalDamageGainAsCold", "BASE", m_floor(30 * shrineEffectMod), "Greater Freezing Shrine") + end + if modDB:Flag(nil, "GreaterShockingShrine") then + modDB:NewMod("PhysicalDamageGainAsLightning", "BASE", m_floor(30 * shrineEffectMod), "Greater Shocking Shrine") + end + if modDB:Flag(nil, "GreaterSkeletalShrine") then + modDB:NewMod("PhysicalDamageGainAsChaos", "BASE", m_floor(30 * shrineEffectMod), "Greater Skeletal Shrine") + end if modDB:Flag(nil, "ImpenetrableShrine") then modDB:NewMod("Armour", "INC", m_floor(100 * shrineEffectMod), "Impenetrable Shrine") modDB:NewMod("Evasion", "INC", m_floor(100 * shrineEffectMod), "Impenetrable Shrine") diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index d4bc5d40e0..933eb2d0d8 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -86,6 +86,9 @@ function calcs.initModDB(env, modDB) modDB:NewMod("DivineShrine", "FLAG", true, "Base", { type = "Condition", var = "DivineShrine" }) modDB:NewMod("EchoingShrine", "FLAG", true, "Base", { type = "Condition", var = "EchoingShrine" }) modDB:NewMod("GloomShrine", "FLAG", true, "Base", { type = "Condition", var = "GloomShrine" }) + modDB:NewMod("GreaterFreezingShrine", "FLAG", true, "Base", { type = "Condition", var = "GreaterFreezingShrine" }) + modDB:NewMod("GreaterShockingShrine", "FLAG", true, "Base", { type = "Condition", var = "GreaterShockingShrine" }) + modDB:NewMod("GreaterSkeletalShrine", "FLAG", true, "Base", { type = "Condition", var = "GreaterSkeletalShrine" }) modDB:NewMod("ImpenetrableShrine", "FLAG", true, "Base", { type = "Condition", var = "ImpenetrableShrine" }) modDB:NewMod("MassiveShrine", "FLAG", true, "Base", { type = "Condition", var = "MassiveShrine" }) modDB:NewMod("ReplenishingShrine", "FLAG", true, "Base", { type = "Condition", var = "ReplenishingShrine" }) diff --git a/src/Modules/Calcs.lua b/src/Modules/Calcs.lua index daaf130572..0ada179200 100644 --- a/src/Modules/Calcs.lua +++ b/src/Modules/Calcs.lua @@ -722,6 +722,15 @@ function calcs.buildOutput(build, mode) if env.modDB:Flag(nil, "GloomShrine") then t_insert(combatList, "Gloom Shrine") end + if env.modDB:Flag(nil, "GreaterFreezingShrine") then + t_insert(combatList, "Greater Freezing Shrine") + end + if env.modDB:Flag(nil, "GreaterShockingShrine") then + t_insert(combatList, "Greater Shocking Shrine") + end + if env.modDB:Flag(nil, "GreaterSkeletalShrine") then + t_insert(combatList, "Greater Skeletal Shrine") + end if env.modDB:Flag(nil, "ImpenetrableShrine") then t_insert(combatList, "Impenetrable Shrine") end diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 3183524ffa..198ab5f316 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1674,6 +1674,15 @@ Huge sets the radius to 11. { var = "buffGloomShrine", type = "check", label = "Have Gloom Shrine?", ifFlag = "Condition:CanHaveRegularShrines", tooltip = "This will enable the Gloom Shrine buff.\n\tGain 10% of Non-^xD02090Chaos ^7Damage as extra ^xD02090Chaos ^7Damage\n\tEnemies you Kill have a 40% chance to Explode, dealing a quarter of their maximum ^xE05030Life ^7as ^xD02090Chaos ^7Damage", apply = function(val, modList, enemyModList) modList:NewMod("Condition:GloomShrine", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, + { var = "buffGreaterFreezingShrine", type = "check", label = "Have Greater Freezing Shrine?", ifFlag = "Condition:CanHaveRegularShrines", tooltip = "This will enable the Greater Freezing Shrine buff.\n\tGain 30% of Physical Damage as Extra ^x3F6DB3Cold ^7Damage\n\tIce Novas happen around you", apply = function(val, modList, enemyModList) + modList:NewMod("Condition:GreaterFreezingShrine", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) + end }, + { var = "buffGreaterShockingShrine", type = "check", label = "Have Greater Shocking Shrine?", ifFlag = "Condition:CanHaveRegularShrines", tooltip = "This will enable the Greater Shocking Shrine buff.\n\tGain 30% of Physical Damage as Extra ^xADAA47Lightning ^7Damage\n\tShock Novas happen around you", apply = function(val, modList, enemyModList) + modList:NewMod("Condition:GreaterShockingShrine", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) + end }, + { var = "buffGreaterSkeletalShrine", type = "check", label = "Have Greater Skeletal Shrine?", ifFlag = "Condition:CanHaveRegularShrines", tooltip = "This will enable the Greater Skeletal Shrine buff.\n\tGain 30% of Physical Damage as Extra ^xD02090Chaos ^7Damage\n\tSkeletons are summoned to you", apply = function(val, modList, enemyModList) + modList:NewMod("Condition:GreaterSkeletalShrine", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) + end }, { var = "buffImpenetrableShrine", type = "check", label = "Have Impenetrable Shrine?", ifFlag = "Condition:CanHaveRegularShrines", tooltip = "This will enable the Impenetrable Shrine buff.\n\t100% increased Armour\n\t100% increased ^x33FF77Evasion Rating^7\n\t100% increased maximum ^x88FFFFEnergy Shield", apply = function(val, modList, enemyModList) modList:NewMod("Condition:ImpenetrableShrine", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) end }, diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 778b556c97..3cac4cb316 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -851,9 +851,19 @@ local modNameList = { ["chaotic might"] = "Condition:ChaoticMight", ["lesser brutal shrine buff"] = "Condition:LesserBrutalShrine", ["lesser massive shrine buff"] = "Condition:LesserMassiveShrine", + ["acceleration shrine buff"] = "Condition:AccelerationShrine", + ["brutal shrine buff"] = "Condition:BrutalShrine", ["diamond shrine buff"] = "Condition:DiamondShrine", + ["echoing shrine buff"] = "Condition:EchoingShrine", + ["gloom shrine buff"] = "Condition:GloomShrine", + ["greater freezing shrine buff"] = "Condition:GreaterFreezingShrine", + ["greater shocking shrine buff"] = "Condition:GreaterShockingShrine", + ["greater skeletal shrine buff"] = "Condition:GreaterSkeletalShrine", + ["impenetrable shrine buff"] = "Condition:ImpenetrableShrine", ["massive shrine buff"] = "Condition:MassiveShrine", - ["resistance shrine buff"] = "Condition:ResistanceShrine" + ["replenishing shrine buff"] = "Condition:ReplenishingShrine", + ["resistance shrine buff"] = "Condition:ResistanceShrine", + ["resonating shrine buff"] = "Condition:ResonatingShrine", } -- List of modifier flags @@ -5797,9 +5807,19 @@ local flagTypes = { ["debilitated"] = "Condition:Debilitated", ["lesser brutal shrine buff"] = "Condition:LesserBrutalShrine", ["lesser massive shrine buff"] = "Condition:LesserMassiveShrine", + ["acceleration shrine buff"] = "Condition:AccelerationShrine", + ["brutal shrine buff"] = "Condition:BrutalShrine", ["diamond shrine buff"] = "Condition:DiamondShrine", + ["echoing shrine buff"] = "Condition:EchoingShrine", + ["gloom shrine buff"] = "Condition:GloomShrine", + ["greater freezing shrine buff"] = "Condition:GreaterFreezingShrine", + ["greater shocking shrine buff"] = "Condition:GreaterShockingShrine", + ["greater skeletal shrine buff"] = "Condition:GreaterSkeletalShrine", + ["impenetrable shrine buff"] = "Condition:ImpenetrableShrine", ["massive shrine buff"] = "Condition:MassiveShrine", - ["resistance shrine buff"] = "Condition:ResistanceShrine" + ["replenishing shrine buff"] = "Condition:ReplenishingShrine", + ["resistance shrine buff"] = "Condition:ResistanceShrine", + ["resonating shrine buff"] = "Condition:ResonatingShrine", } -- Build active skill name lookup From 426090131f9251aa95bd3e6233855c4cdbc2565e Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 15 Mar 2026 04:09:48 +1100 Subject: [PATCH 5/5] Fix while affected by no flasks when using instant flasks The Screams of the Desiccated belt only grants you the shrine effects when you do not have any active flask effects Mana and Life flasks with instant effects do not ever count as being under the effect of a flask Same with having a utility flask but having the Bloodline for utility flasks are disabled Added support flasks are instant while on low life and made a helper function in CalcPerform as there are 2 different spots where instPerc are used Tested Vaal Pact and the mana flask mod for effect is instant at end of duration and those both disable the shrine The life flask mod for additional recovery over x seconds does not count as being under a flask effect however --- src/Classes/Item.lua | 1 + src/Modules/CalcPerform.lua | 45 +++++++++++++++++++++++++------------ src/Modules/ModParser.lua | 5 +++-- 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/Classes/Item.lua b/src/Classes/Item.lua index ae3c0acd93..4597dde52b 100644 --- a/src/Classes/Item.lua +++ b/src/Classes/Item.lua @@ -1568,6 +1568,7 @@ function ItemClass:BuildModListForSlotNum(baseList, slotNum) if self.base.flask.life or self.base.flask.mana then -- Recovery flask flaskData.instantPerc = calcLocal(modList, "FlaskInstantRecovery", "BASE", 0) + flaskData.instantLowLifePerc = calcLocal(modList, "FlaskLowLifeInstantRecovery", "BASE", 0) local recoveryMod = 1 + calcLocal(modList, "FlaskRecovery", "INC", 0) / 100 local rateMod = 1 + calcLocal(modList, "FlaskRecoveryRate", "INC", 0) / 100 flaskData.duration = round(self.base.flask.duration * (1 + durationInc / 100) / rateMod * durationMore, 1) diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 5037543dba..130dac3a77 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1480,6 +1480,20 @@ function calcs.perform(env, skipEHP) end -- Merge flask modifiers + local function getFlaskInstantRecovery(item) + local instantPerc = item.flaskData.instantPerc or 0 + if modDB:Flag(nil, "Condition:LowLife") then + instantPerc = instantPerc + (item.flaskData.instantLowLifePerc or 0) + end + if item.base.flask.life then + instantPerc = instantPerc + modDB:Sum("BASE", nil, "LifeFlaskInstantRecovery") + end + if item.base.flask.mana then + instantPerc = instantPerc + modDB:Sum("BASE", nil, "ManaFlaskInstantRecovery") + end + return m_min(100, instantPerc) + end + local function calcFlaskRecovery(type, item) local out = {} local lType = type:lower() @@ -1491,7 +1505,7 @@ function calcs.perform(env, skipEHP) local name = item.name local base = item.flaskData[lType.."Base"] local dur = item.flaskData.duration - local instPerc = item.flaskData.instantPerc + local instPerc = getFlaskInstantRecovery(item) local flaskRecInc = modDB:Sum("INC", nil, "Flask"..type.."Recovery") local flaskRecMore = modDB:More(nil, "Flask"..type.."Recovery") local flaskRateInc = modDB:Sum("INC", nil, "Flask"..type.."RecoveryRate") @@ -1596,19 +1610,22 @@ function calcs.perform(env, skipEHP) for item in pairs(flasks) do flaskBuffsPerBase[item.baseName] = flaskBuffsPerBase[item.baseName] or {} flaskBuffsPerBaseNonPlayer[item.baseName] = flaskBuffsPerBaseNonPlayer[item.baseName] or {} - flaskConditions["UsingFlask"] = true - flaskConditionsNonUtility["UsingFlask"] = true - flaskConditions["Using"..item.baseName:gsub("%s+", "")] = true - if item.base.flask.life or item.base.flask.mana then - flaskConditionsNonUtility["Using"..item.baseName:gsub("%s+", "")] = true - end - if item.base.flask.life and not modDB:Flag(nil, "CannotRecoverLifeOutsideLeech") then - flaskConditions["UsingLifeFlask"] = true - flaskConditionsNonUtility["UsingLifeFlask"] = true - end - if item.base.flask.mana then - flaskConditions["UsingManaFlask"] = true - flaskConditionsNonUtility["UsingManaFlask"] = true + local instantPerc = getFlaskInstantRecovery(item) + if instantPerc < 100 then + flaskConditions["UsingFlask"] = true + flaskConditions["Using"..item.baseName:gsub("%s+", "")] = true + if item.base.flask.life or item.base.flask.mana then + flaskConditionsNonUtility["UsingFlask"] = true + flaskConditionsNonUtility["Using"..item.baseName:gsub("%s+", "")] = true + end + if item.base.flask.life and not modDB:Flag(nil, "CannotRecoverLifeOutsideLeech") then + flaskConditions["UsingLifeFlask"] = true + flaskConditionsNonUtility["UsingLifeFlask"] = true + end + if item.base.flask.mana then + flaskConditions["UsingManaFlask"] = true + flaskConditionsNonUtility["UsingManaFlask"] = true + end end if onlyRecovery then diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 3cac4cb316..bc60578368 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -2993,10 +2993,11 @@ local specialModList = { mod("InstantManaLeech", "BASE", num, nil, ModFlag.Hit, { type = "Condition", var = "{Hand}Attack" }, { type = "SkillType", skillType = SkillType.Attack }, { type = "Multiplier", var = "EnemyPower"}), mod("InstantEnergyShieldLeech", "BASE", num, nil, ModFlag.Hit, { type = "Condition", var = "{Hand}Attack" }, { type = "SkillType", skillType = SkillType.Attack }, { type = "Multiplier", var = "EnemyPower"}), } end, - ["instant recovery"] = { mod("FlaskInstantRecovery", "BASE", 100) }, + ["instant recovery"] = { mod("FlaskInstantRecovery", "BASE", 100) }, + ["(%d+)%% of recovery applied instantly"] = function(num) return { mod("FlaskInstantRecovery", "BASE", num) } end, + ["instant recovery when on low life"] = { mod("FlaskLowLifeInstantRecovery", "BASE", 100), mod("Dummy", "DUMMY", 1, "", { type = "Condition", var = "LowLife" }) }, ["life flasks used while on low life apply recovery instantly"] = { mod("LifeFlaskInstantRecovery", "BASE", 100, { type = "Condition", var = "LowLife" }) }, ["mana flasks used while on low mana apply recovery instantly"] = { mod("ManaFlaskInstantRecovery", "BASE", 100, { type = "Condition", var = "LowMana" }) }, - ["(%d+)%% of recovery applied instantly"] = function(num) return { mod("FlaskInstantRecovery", "BASE", num) } end, ["has no attribute requirements"] = { flag("NoAttributeRequirements") }, ["trigger a socketed spell when you attack with this weapon"] = { mod("ExtraSupport", "LIST", { skillId = "SupportTriggerSpellOnAttack", level = 1 }, { type = "SocketedIn", slotName = "{SlotName}" }) }, ["trigger a socketed spell when you attack with this weapon, with a ([%d%.]+) second cooldown"] = { mod("ExtraSupport", "LIST", { skillId = "SupportTriggerSpellOnAttack", level = 1 }, { type = "SocketedIn", slotName = "{SlotName}" }) },