diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 28da845876..fcba17f0de 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -7652,11 +7652,8 @@ c["Animated and Manifested Minions' Melee Strikes deal 50% less Splash Damage Yo c["Animated and Manifested Minions' Melee Strikes deal Splash"]={nil,"Animated and Manifested Minions' Melee Strikes deal Splash "} c["Animated and Manifested Minions' Melee Strikes deal Splash Damage to surrounding targets"]={nil,"Animated and Manifested Minions' Melee Strikes deal Splash Damage to surrounding targets "} c["Arcane Surge also grants 10% more Spell Damage to you"]={{[1]={flags=0,keywordFlags=0,name="ArcaneSurgeDamage",type="MAX",value=10}},nil} -c["Arcane Surge also grants 15% increased Life Regeneration Rate to you"]={{[1]={flags=0,keywordFlags=0,name="ArcaneSurgeAlsoLifeRegen",type="BASE",value=15}},nil} -c["Arcane Surge also grants 20% increased Mana Cost Efficiency to you"]={nil,"Arcane Surge also grants 20% increased Mana Cost Efficiency to you "} +c["Arcane Surge also grants 15% increased Life Regeneration Rate to you"]={{[1]={flags=0,keywordFlags=0,name="ArcaneSurgeAlsoLifeRegen",type="INC",value=15}},nil} c["Arcane Surge also grants 20% more Spell Damage to you"]={{[1]={flags=0,keywordFlags=0,name="ArcaneSurgeDamage",type="MAX",value=20}},nil} -c["Arcane Surge also grants 20% of Damage taken Recouped as Mana to you"]={nil,"Arcane Surge also grants 20% of Damage taken Recouped as Mana to you "} -c["Arcane Surge also grants 20% of Damage taken Recouped as Mana to you Arcane Surge also grants 20% increased Mana Cost Efficiency to you"]={nil,"Arcane Surge also grants 20% of Damage taken Recouped as Mana to you Arcane Surge also grants 20% increased Mana Cost Efficiency to you "} c["Arctic Armour has no Reservation"]={{[1]={[1]={skillId="ArcticArmour",type="SkillId"},[2]={neg=true,skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="manaReservationFlat",value=0}},[2]={[1]={skillId="ArcticArmour",type="SkillId"},[2]={neg=true,skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="lifeReservationFlat",value=0}},[3]={[1]={skillId="ArcticArmour",type="SkillId"},[2]={neg=true,skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="manaReservationPercent",value=0}},[4]={[1]={skillId="ArcticArmour",type="SkillId"},[2]={neg=true,skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="lifeReservationPercent",value=0}}},nil} c["Area Skills have 10% chance to Knock Enemies Back on Hit"]={{[1]={[1]={skillType=8,type="SkillType"},flags=0,keywordFlags=0,name="EnemyKnockbackChance",type="BASE",value=10}},nil} c["Armour also applies to Chaos Damage taken from Hits"]={{[1]={flags=0,keywordFlags=0,name="ArmourAppliesToChaosDamageTaken",type="BASE",value=100}},nil} @@ -9672,9 +9669,6 @@ c["Intelligence provides no inherent bonus to Maximum Mana"]={{[1]={flags=0,keyw c["Intimidate Enemies for 4 seconds on Block while holding a Shield"]={{[1]={[1]={type="Condition",var="BlockedRecently"},[2]={type="Condition",var="UsingShield"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="Condition:Intimidated",type="FLAG",value=true}}}},nil} c["Intimidate Enemies for 4 seconds on Hit with Attacks while at maximum Endurance Charges"]={{[1]={[1]={stat="EnduranceCharges",thresholdStat="EnduranceChargesMax",type="StatThreshold"},[2]={type="Condition",var="HitRecently"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="Condition:Intimidated",type="FLAG",value=true}}}},nil} c["Intimidate Enemies on Hit if you've cast Punishment in the past 10 seconds"]={{[1]={[1]={type="Condition",var="SelfCastPunishment"},flags=4,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="Condition:Intimidated",type="FLAG",value=true}}}},nil} -c["Intimidate you inflict applies an extra +15% increased Attack Damage taken"]={nil,"Intimidate you inflict applies an extra +15% increased Attack Damage taken "} -c["Intimidate you inflict applies an extra +15% increased Attack Damage taken Intimidate you inflict causes targets to deal 10% less Damage"]={nil,"Intimidate you inflict applies an extra +15% increased Attack Damage taken Intimidate you inflict causes targets to deal 10% less Damage "} -c["Intimidate you inflict causes targets to deal 10% less Damage"]={nil,"Intimidate you inflict causes targets to deal 10% less Damage "} c["Iron Flasks gain 2 charges when your Ward Breaks"]={{[1]={flags=0,keywordFlags=0,name="IronFlaskChargesGeneratedOnWardBreak",type="BASE",value=2}},nil} c["Iron Grip"]={{[1]={flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Iron Grip"},[2]={flags=0,keywordFlags=0,name="Condition:HaveIronGrip",type="FLAG",value=true}},nil} c["Iron Reflexes"]={{[1]={flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Iron Reflexes"},[2]={flags=0,keywordFlags=0,name="Condition:HaveIronReflexes",type="FLAG",value=true}},nil} @@ -9903,7 +9897,6 @@ c["Magic Utility Flasks applied to you have 15% increased Effect"]={{[1]={[1]={a c["Magic Utility Flasks applied to you have 30% increased Effect"]={{[1]={[1]={actor="player",type="ActorCondition"},flags=0,keywordFlags=0,name="MagicUtilityFlaskEffect",type="INC",value=30}},nil} c["Magic Utility Flasks cannot be Used"]={nil,"Magic Utility Flasks cannot be Used "} c["Magic Utility Flasks cannot be Used Leftmost 4 Magic Utility Flasks constantly apply their Flask Effects to you"]={nil,"Magic Utility Flasks cannot be Used Leftmost 4 Magic Utility Flasks constantly apply their Flask Effects to you "} -c["Maim you inflict causes Hits against the target to have 20% more Critical Strike Chance"]={nil,"Maim you inflict causes Hits against the target to have 20% more Critical Strike Chance "} c["Malevolence has 50% increased Mana Reservation Efficiency"]={{[1]={[1]={includeTransfigured=true,skillName="Malevolence",type="SkillName"},flags=0,keywordFlags=0,name="ManaReservationEfficiency",type="INC",value=50}},nil} c["Malevolence has 60% increased Aura Effect"]={{[1]={[1]={includeTransfigured=true,skillName="Malevolence",type="SkillName"},flags=0,keywordFlags=0,name="AuraEffect",type="INC",value=60}},nil} c["Malevolence has no Reservation"]={{[1]={[1]={skillId="Malevolence",type="SkillId"},[2]={neg=true,skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="manaReservationFlat",value=0}},[2]={[1]={skillId="Malevolence",type="SkillId"},[2]={neg=true,skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="lifeReservationFlat",value=0}},[3]={[1]={skillId="Malevolence",type="SkillId"},[2]={neg=true,skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="manaReservationPercent",value=0}},[4]={[1]={skillId="Malevolence",type="SkillId"},[2]={neg=true,skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="lifeReservationPercent",value=0}}},nil} @@ -12314,8 +12307,6 @@ c["Take no Extra Damage from Critical Strikes if you have Equipped Gloves with n c["Take no Extra Damage from Critical Strikes if you have a Magic Ring in left slot"]={{[1]={[1]={effectType="Global",type="GlobalEffect",unscalable=true},[2]={type="Condition",var="MagicItemInRing 1"},flags=0,keywordFlags=0,name="ReduceCritExtraDamage",type="BASE",value=100}},nil} c["Take no Extra Damage from Critical Strikes if you've cast Enfeeble in the past 10 seconds"]={{[1]={[1]={effectType="Global",type="GlobalEffect",unscalable=true},[2]={type="Condition",var="SelfCastEnfeeble"},flags=0,keywordFlags=0,name="ReduceCritExtraDamage",type="BASE",value=100}},nil} c["Taking Chaos Damage over Time heals you instead while Leeching Life"]={nil,"Taking Chaos Damage over Time heals you instead while Leeching Life "} -c["Targets affected by Maim you inflict cannot deal Critical Strikes"]={nil,"Targets affected by Maim you inflict cannot deal Critical Strikes "} -c["Targets affected by Maim you inflict cannot deal Critical Strikes Maim you inflict causes Hits against the target to have 20% more Critical Strike Chance"]={nil,"Targets affected by Maim you inflict cannot deal Critical Strikes Maim you inflict causes Hits against the target to have 20% more Critical Strike Chance "} c["Targets are Unaffected by your Hexes"]={{[1]={[1]={skillType=97,type="SkillType"},flags=0,keywordFlags=0,name="CurseEffect",type="MORE",value=-100}},nil} c["Taunt on Hit"]={nil,"Taunt on Hit "} c["Taunt on Hit 15% increased effect of Non-Curse Auras from your Skills"]={nil,"Taunt on Hit 15% increased effect of Non-Curse Auras from your Skills "} @@ -12554,9 +12545,6 @@ c["Unattached Brands gain 20% increased Brand Attachment Range per"]={nil,"Unatt c["Unattached Brands gain 20% increased Brand Attachment Range per second, up to a maximum of 100%"]={nil,"Unattached Brands gain 20% increased Brand Attachment Range per second, up to a maximum of 100% "} c["Unholy Might"]={{[1]={flags=0,keywordFlags=0,name="Condition:UnholyMight",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="Condition:CanWither",type="FLAG",value=true}},nil} c["Unholy Might during Effect"]={{[1]={[1]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:UnholyMight",type="FLAG",value=true},[2]={[1]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="Condition:CanWither",type="FLAG",value=true}},nil} -c["Unholy Might you grant also applies 20% Increased Effect of Withered"]={nil,"Unholy Might you grant also applies 20% Increased Effect of Withered "} -c["Unholy Might you grant also causes target's Damage to Penetrate 10% Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="ChaosPenetration",type="BASE",value=10}}," you grant also causes target's Damage to "} -c["Unholy Might you grant also causes target's Damage to Penetrate 10% Chaos Resistance Unholy Might you grant also applies 20% Increased Effect of Withered"]={{[1]={flags=0,keywordFlags=0,name="ChaosPenetration",type="BASE",value=10}}," you grant also causes target's Damage to Unholy Might you grant also applies 20% Increased Effect of Withered "} c["Unsealed Spells gain 5% more Damage each time their effects Reoccur"]={{[1]={flags=0,keywordFlags=0,name="MaxSealDamage",type="MORE",value=5}},nil} c["Unwavering Stance"]={{[1]={flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Unwavering Stance"},[2]={flags=0,keywordFlags=0,name="Condition:HaveUnwaveringStance",type="FLAG",value=true}},nil} c["Used when Charges reach full"]={nil,"Used when Charges reach full "} @@ -12662,16 +12650,16 @@ c["While there are at least five nearby Allies, you and nearby Allies have Onsla 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"]={{[1]={[1]={percent=25,stat="Ward",type="PercentStat"},[2]={neg=true,skillType=48,type="SkillType"},[3]={skillType=1,type="SkillType"},[4]={neg=true,type="Condition",var="WardNotBreak"},[5]={type="Condition",var="UnbrokenWard"},flags=0,keywordFlags=0,name="ColdMin",type="BASE",value=1},[2]={[1]={percent=25,stat="Ward",type="PercentStat"},[2]={neg=true,skillType=48,type="SkillType"},[3]={skillType=1,type="SkillType"},[4]={neg=true,type="Condition",var="WardNotBreak"},[5]={type="Condition",var="UnbrokenWard"},flags=0,keywordFlags=0,name="ColdMax",type="BASE",value=1}},nil} c["While you have at least 3 Ghastly Eye Jewels socketed:"]={nil,"While you have at least 3 Ghastly Eye Jewels socketed: "} c["While you have at least 3 Ghastly Eye Jewels socketed: Unholy Might you grant also causes target's Damage to Penetrate 10% Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="ChaosPenetration",type="BASE",value=10}},"While you have at least 3 Ghastly Eye Jewels socketed: you grant also causes target's Damage to "} -c["While you have at least 3 Ghastly Eye Jewels socketed: Unholy Might you grant also causes target's Damage to Penetrate 10% Chaos Resistance Unholy Might you grant also applies 20% Increased Effect of Withered"]={{[1]={flags=0,keywordFlags=0,name="ChaosPenetration",type="BASE",value=10}},"While you have at least 3 Ghastly Eye Jewels socketed: you grant also causes target's Damage to Unholy Might you grant also applies 20% Increased Effect of Withered "} +c["While you have at least 3 Ghastly Eye Jewels socketed: Unholy Might you grant also causes target's Damage to Penetrate 10% Chaos Resistance Unholy Might you grant also applies 20% Increased Effect of Withered"]={{[1]={[1]={threshold=3,type="MultiplierThreshold",var="GhastlyEyeJewel"},flags=0,keywordFlags=0,name="UnholyMightAlsoChaosPenetration",type="BASE",value=10},[2]={[1]={threshold=3,type="MultiplierThreshold",var="GhastlyEyeJewel"},flags=0,keywordFlags=0,name="UnholyMightAlsoWitherEffect",type="INC",value=20},[3]={[1]={threshold=3,type="MultiplierThreshold",var="GhastlyEyeJewel"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="UnholyMightAlsoChaosPenetration",type="BASE",value=10}}},[4]={[1]={threshold=3,type="MultiplierThreshold",var="GhastlyEyeJewel"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="UnholyMightAlsoWitherEffect",type="INC",value=20}}}},nil} c["While you have at least 3 Hypnotic Eye Jewels socketed:"]={nil,"While you have at least 3 Hypnotic Eye Jewels socketed: "} c["While you have at least 3 Hypnotic Eye Jewels socketed: Arcane Surge also grants 20% of Damage taken Recouped as Mana to you"]={nil,"While you have at least 3 Hypnotic Eye Jewels socketed: Arcane Surge also grants 20% of Damage taken Recouped as Mana to you "} -c["While you have at least 3 Hypnotic Eye Jewels socketed: Arcane Surge also grants 20% of Damage taken Recouped as Mana to you Arcane Surge also grants 20% increased Mana Cost Efficiency to you"]={nil,"While you have at least 3 Hypnotic Eye Jewels socketed: Arcane Surge also grants 20% of Damage taken Recouped as Mana to you Arcane Surge also grants 20% increased Mana Cost Efficiency to you "} +c["While you have at least 3 Hypnotic Eye Jewels socketed: Arcane Surge also grants 20% of Damage taken Recouped as Mana to you Arcane Surge also grants 20% increased Mana Cost Efficiency to you"]={{[1]={[1]={threshold=3,type="MultiplierThreshold",var="HypnoticEyeJewel"},flags=0,keywordFlags=0,name="ArcaneSurgeAlsoManaRecoup",type="BASE",value=20},[2]={[1]={threshold=3,type="MultiplierThreshold",var="HypnoticEyeJewel"},flags=0,keywordFlags=0,name="ArcaneSurgeAlsoManaCostEfficiency",type="INC",value=20}},nil} c["While you have at least 3 Murderous Eye Jewels socketed:"]={nil,"While you have at least 3 Murderous Eye Jewels socketed: "} c["While you have at least 3 Murderous Eye Jewels socketed: Intimidate you inflict applies an extra +15% increased Attack Damage taken"]={nil,"While you have at least 3 Murderous Eye Jewels socketed: Intimidate you inflict applies an extra +15% increased Attack Damage taken "} -c["While you have at least 3 Murderous Eye Jewels socketed: Intimidate you inflict applies an extra +15% increased Attack Damage taken Intimidate you inflict causes targets to deal 10% less Damage"]={nil,"While you have at least 3 Murderous Eye Jewels socketed: Intimidate you inflict applies an extra +15% increased Attack Damage taken Intimidate you inflict causes targets to deal 10% less Damage "} +c["While you have at least 3 Murderous Eye Jewels socketed: Intimidate you inflict applies an extra +15% increased Attack Damage taken Intimidate you inflict causes targets to deal 10% less Damage"]={{[1]={[1]={threshold=3,type="MultiplierThreshold",var="MurderousEyeJewel"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Intimidated"},flags=65536,keywordFlags=0,name="DamageTaken",type="INC",value=15}}},[2]={[1]={threshold=3,type="MultiplierThreshold",var="MurderousEyeJewel"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Intimidated"},flags=0,keywordFlags=0,name="Damage",type="MORE",value=-10}}}},nil} c["While you have at least 3 Searching Eye Jewels socketed:"]={nil,"While you have at least 3 Searching Eye Jewels socketed: "} c["While you have at least 3 Searching Eye Jewels socketed: Targets affected by Maim you inflict cannot deal Critical Strikes"]={nil,"While you have at least 3 Searching Eye Jewels socketed: Targets affected by Maim you inflict cannot deal Critical Strikes "} -c["While you have at least 3 Searching Eye Jewels socketed: Targets affected by Maim you inflict cannot deal Critical Strikes Maim you inflict causes Hits against the target to have 20% more Critical Strike Chance"]={nil,"While you have at least 3 Searching Eye Jewels socketed: Targets affected by Maim you inflict cannot deal Critical Strikes Maim you inflict causes Hits against the target to have 20% more Critical Strike Chance "} +c["While you have at least 3 Searching Eye Jewels socketed: Targets affected by Maim you inflict cannot deal Critical Strikes Maim you inflict causes Hits against the target to have 20% more Critical Strike Chance"]={{[1]={[1]={threshold=3,type="MultiplierThreshold",var="SearchingEyeJewel"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Maimed"},flags=0,keywordFlags=0,name="NeverCrit",type="FLAG",value=true}}},[2]={[1]={threshold=3,type="MultiplierThreshold",var="SearchingEyeJewel"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Maimed"},flags=0,keywordFlags=0,name="SelfCritChance",type="MORE",value=20}}}},nil} c["While your Passive Skill Tree connects to a class' starting location, you gain:"]={{},nil} c["Wicked Ward"]={{[1]={flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Wicked Ward"},[2]={flags=0,keywordFlags=0,name="Condition:HaveWickedWard",type="FLAG",value=true}},nil} c["Wind Dancer"]={{[1]={flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Wind Dancer"},[2]={flags=0,keywordFlags=0,name="Condition:HaveWindDancer",type="FLAG",value=true}},nil} diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index 3fd3f028e3..f18321c249 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -322,7 +322,9 @@ end -- Performs all offensive calculations function calcs.offence(env, actor, activeSkill) + ---@type ModDB local modDB = actor.modDB + ---@type ModDB local enemyDB = actor.enemy.modDB local output = actor.output local breakdown = actor.breakdown @@ -3015,7 +3017,7 @@ function calcs.offence(env, actor, activeSkill) if not critOverride then base = skillModList:Sum("BASE", cfg, "CritChance") + (env.mode_effective and enemyDB:Sum("BASE", nil, "SelfCritChance") or 0) inc = skillModList:Sum("INC", cfg, "CritChance") + (env.mode_effective and enemyDB:Sum("INC", nil, "SelfCritChance") or 0) - more = skillModList:More(cfg, "CritChance") + more = skillModList:More(cfg, "CritChance") * (env.mode_effective and enemyDB:More(nil, "SelfCritChance") or 1) end output.CritChance = (baseCrit + base) * (1 + inc / 100) * more local preCapCritChance = output.CritChance diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 95e90c3825..a2d560af3d 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -611,6 +611,7 @@ end -- Process enemy modifiers and other buffs local function doActorMisc(env, actor) + ---@type ModDB local modDB = actor.modDB local enemyDB = actor.enemy.modDB local output = actor.output @@ -698,9 +699,13 @@ local function doActorMisc(env, actor) if arcaneSurgeDamage ~= 0 then modDB:NewMod("Damage", "MORE", arcaneSurgeDamage * effect, "Arcane Surge", ModFlag.Spell) end - local arcaneSurgeLifeRegen = modDB:Sum("BASE", nil, "ArcaneSurgeAlsoLifeRegen") - if arcaneSurgeLifeRegen > 0 then - modDB:NewMod("LifeRegen", "INC", arcaneSurgeLifeRegen * effect, "Arcane Surge") + local prefix = "ArcaneSurgeAlso" + local additionalMods = { LifeRegen = "INC", ManaRecoup = "BASE", ManaCostEfficiency = "INC" } + for mod, modType in pairs(additionalMods) do + local value = modDB:Sum(modType, nil, prefix .. mod) + if value ~= 0 then + modDB:NewMod(mod, modType, value * effect, "Arcane Surge") + end end end if modDB:Flag(nil, "Fanaticism") and actor.mainSkill and actor.mainSkill.skillFlags.selfCast then @@ -722,6 +727,15 @@ local function doActorMisc(env, actor) local effect = 1 + modDB:Sum("INC", nil, "BuffEffectOnSelf") / 100 modDB:NewMod("PhysicalDamageConvertToChaos", "BASE", m_floor(100 * effect), "Unholy Might") modDB:NewMod("Condition:CanWither", "FLAG", true, "Unholy Might") + local value = modDB:Sum("BASE", nil, "UnholyMightAlsoChaosPenetration") + if value ~= 0 then + modDB:NewMod("ChaosPenetration", "BASE", value * effect, "Unholy Might") + end + local witherValue = modDB:Sum("INC", nil, "UnholyMightAlsoWitherEffect") + local currentMax = modDB:Max(nil, "WitherEffectStack") + if witherValue ~= 0 and currentMax then + modDB:NewMod("WitherEffectStack", "MAX", math.floor(currentMax * (1 + witherValue / 100)), "Unholy Might") + end end if modDB:Flag(nil, "ShepherdOfSouls") then modDB:NewMod("SoulCost", "MORE", -80, "Shepherd of Souls", { type = "SkillType", skillType = SkillType.Vaal }, { type = "SkillType", skillType = SkillType.Aura, neg = true }) diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 0b582014d4..210eacf2cb 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -2417,7 +2417,7 @@ local specialModList = { } end, ["life recovery from flasks also applies to energy shield"] = { flag("LifeFlaskAppliesToEnergyShield") }, ["increase to cast speed from arcane surge also applies to movement speed"] = { flag("ArcaneSurgeCastSpeedToMovementSpeed") }, - ["arcane surge also grants (%d+)%% increased life regeneration rate to you"] = function(num) return { mod("ArcaneSurgeAlsoLifeRegen", "BASE", num) } end, + ["arcane surge also grants (%d+)%% increased life regeneration rate to you"] = function(num) return { mod("ArcaneSurgeAlsoLifeRegen", "INC", num) } end, ["increases and reductions to effect of flasks applied to you also applies to effect of arcane surge on you at (%d+)%% of their value"] = function(num) return { mod("FlaskEffectToArcaneSurgeEffect", "BASE", num) } end, ["non%-instant mana recovery from flasks is also recovered as life"] = { flag("ManaFlaskAppliesToLife") }, ["life leech effects recover energy shield instead while on full life"] = { flag("ImmortalAmbition", { type = "Condition", var = "FullLife" }, { type = "Condition", var = "LeechingLife" }) }, @@ -3056,6 +3056,39 @@ local specialModList = { ["can't use belts"] = { mod("CanNotUseItem", "Flag", 1, { type = "DisablesItem", slotName = "Belt" }) }, ["%+1 ring slot"] = { flag("AdditionalRingSlot") }, ["utility flasks are disabled"] = { flag("UtilityFlasksDoNotApplyToPlayer") }, + -- Abyssal Bloodline + ["while you have at least (%d+) hypnotic eye jewels socketed: arcane surge also grants (%d+)%% of damage taken recouped as mana to you arcane surge also grants (%d+)%% increased mana cost efficiency to you"] = function(jewels, _, recoup, costEfficiency) + return { + mod("ArcaneSurgeAlsoManaRecoup", "BASE", tonumber(recoup), { type = "MultiplierThreshold", var = "HypnoticEyeJewel", threshold = jewels }), + mod("ArcaneSurgeAlsoManaCostEfficiency", "INC", tonumber(costEfficiency), { type = "MultiplierThreshold", var = "HypnoticEyeJewel", threshold = jewels }), + } + end, + ["while you have at least (%d+) ghastly eye jewels socketed: unholy might you grant also causes target's damage to penetrate (%d+)%% chaos resistance unholy might you grant also applies (%d+)%% increased effect of withered"] = function(jewels, _, pen, wither) + return { + mod("UnholyMightAlsoChaosPenetration", "BASE", tonumber(pen), { type = "MultiplierThreshold", var = "GhastlyEyeJewel", threshold = jewels }), + mod("UnholyMightAlsoWitherEffect", "INC", tonumber(wither), { type = "MultiplierThreshold", var = "GhastlyEyeJewel", threshold = jewels }), + mod("MinionModifier", "LIST", { mod = mod("UnholyMightAlsoChaosPenetration", "BASE", tonumber(pen)) }, { type = "MultiplierThreshold", var = "GhastlyEyeJewel", threshold = jewels }), + mod("MinionModifier", "LIST", { mod = mod("UnholyMightAlsoWitherEffect", "INC", tonumber(wither)) }, { type = "MultiplierThreshold", var = "GhastlyEyeJewel", threshold = jewels }), + } + end, + ["while you have at least (%d+) searching eye jewels socketed: targets affected by maim you inflict cannot deal critical strikes maim you inflict causes hits against the target to have (%d+)%% more critical strike chance"] = function(jewels, _, crit) + return { + -- maim effect increases and decreases should affect this, but none exist yet + mod("EnemyModifier", "LIST", { mod = flag("NeverCrit", { type = "Condition", var = "Maimed" }) }, { type = "MultiplierThreshold", var = "SearchingEyeJewel", threshold = jewels }), + mod("EnemyModifier", "LIST", { mod = mod("SelfCritChance", "MORE", tonumber(crit), { type = "Condition", var = "Maimed" }) }, { type = "MultiplierThreshold", var = "SearchingEyeJewel", threshold = jewels }), + } + end, + ["while you have at least (%d+) murderous eye jewels socketed: intimidate you inflict applies an extra %+(%d+)%% increased attack damage taken intimidate you inflict causes targets to deal (%d+)%% less damage"] = function(jewels, _, attackDam, lessDam) + return { + -- intimidate effect increases and decreases should affect this, but none exist yet + mod("EnemyModifier", "LIST", + { mod = mod("DamageTaken", "INC", tonumber(attackDam), 0, KeywordFlag.Attack, { type = "Condition", var = "Intimidated", }), }, + { type = "MultiplierThreshold", var = "MurderousEyeJewel", threshold = jewels }), + mod("EnemyModifier", "LIST", + { mod = mod("Damage", "MORE", -tonumber(lessDam), { type = "Condition", var = "Intimidated", }), }, + { type = "MultiplierThreshold", var = "MurderousEyeJewel", threshold = jewels }), + } + end, -- Aul Bloodline ["action speed cannot be modified to below base value if you have equipped boots with no socketed gems"] = { mod("MinimumActionSpeed", "MAX", 100, { type = "GlobalEffect", effectType = "Global", unscalable = true }, { type = "MultiplierThreshold", var = "SocketedGemsInBoots", threshold = 0, upper = true }, { type = "Condition", var = "UsingBoots" }) }, ["cannot be stunned if you have an equipped helmet with no socketed gems"] = { flag("StunImmune", { type = "MultiplierThreshold", var = "SocketedGemsInHelmet", threshold = 0, upper = true }, { type = "Condition", var = "UsingHelmet" }) },