From 84239516fc4002427910229c85a819264d0e95a7 Mon Sep 17 00:00:00 2001 From: vaisest <4550061+vaisest@users.noreply.github.com> Date: Sat, 15 Aug 2026 22:56:28 +0300 Subject: [PATCH 1/3] Add support for Gaze of the Lich --- src/Data/ModCache.lua | 20 ++++---------------- src/Modules/CalcPerform.lua | 20 +++++++++++++++++--- src/Modules/ModParser.lua | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 19 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 28da845876..530ed96f81 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -7653,10 +7653,7 @@ c["Animated and Manifested Minions' Melee Strikes deal Splash"]={nil,"Animated a 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 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=0,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/CalcPerform.lua b/src/Modules/CalcPerform.lua index 95e90c3825..381d1f0e3d 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 = "BASE", 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", currentMax * (1 + witherValue / 100)) + 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..d102c17efc 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -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), { 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" }) }, From c937d1b0e444497e03a85604545c754ecf21816a Mon Sep 17 00:00:00 2001 From: vaisest <4550061+vaisest@users.noreply.github.com> Date: Mon, 17 Aug 2026 18:20:31 +0300 Subject: [PATCH 2/3] Fix selfcrit not counting more mods, liferegen giving base regen, intimidate damagetaken not having attack flag --- src/Data/ModCache.lua | 4 ++-- src/Modules/CalcOffence.lua | 4 +++- src/Modules/CalcPerform.lua | 4 ++-- src/Modules/ModParser.lua | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 530ed96f81..fcba17f0de 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -7652,7 +7652,7 @@ 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 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["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} @@ -12656,7 +12656,7 @@ c["While you have at least 3 Hypnotic Eye Jewels socketed: Arcane Surge also gra 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"]={{[1]={[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="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 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"]={{[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} 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 381d1f0e3d..a2d560af3d 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -700,7 +700,7 @@ local function doActorMisc(env, actor) modDB:NewMod("Damage", "MORE", arcaneSurgeDamage * effect, "Arcane Surge", ModFlag.Spell) end local prefix = "ArcaneSurgeAlso" - local additionalMods = { LifeRegen = "BASE", ManaRecoup = "BASE", ManaCostEfficiency = "INC" } + 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 @@ -734,7 +734,7 @@ local function doActorMisc(env, actor) local witherValue = modDB:Sum("INC", nil, "UnholyMightAlsoWitherEffect") local currentMax = modDB:Max(nil, "WitherEffectStack") if witherValue ~= 0 and currentMax then - modDB:NewMod("WitherEffectStack", "MAX", currentMax * (1 + witherValue / 100)) + modDB:NewMod("WitherEffectStack", "MAX", math.floor(currentMax * (1 + witherValue / 100)), "Unholy Might") end end if modDB:Flag(nil, "ShepherdOfSouls") then diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index d102c17efc..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" }) }, @@ -3082,7 +3082,7 @@ local specialModList = { return { -- intimidate effect increases and decreases should affect this, but none exist yet mod("EnemyModifier", "LIST", - { mod = mod("DamageTaken", "INC", tonumber(attackDam), { type = "Condition", var = "Intimidated", }), }, + { 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", }), }, From 0fc920c4676dd858b31affbe556796da52bbcc17 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 24 Aug 2026 01:23:45 +1000 Subject: [PATCH 3/3] Fix issues The damage taken mod for intimidate was using KeywordFlag instead of ModFlag The unholy might lines were being applied to minions The Wither effect was not addative with existing wither effect --- src/Data/ModCache.lua | 4 ++-- src/Modules/CalcPerform.lua | 11 +++++------ src/Modules/ModParser.lua | 4 +--- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index fcba17f0de..002c66d4c1 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -12650,13 +12650,13 @@ 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]={[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 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}},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"]={{[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"]={{[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 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=1,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"]={{[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} diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index a2d560af3d..2578dd5817 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -731,11 +731,6 @@ local function doActorMisc(env, actor) 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 }) @@ -2717,7 +2712,11 @@ function calcs.perform(env, skipEHP) end end if activeSkill.skillModList:Flag(nil, "Condition:CanWither") or (activeSkill.minion and env.minion and env.minion.modDB:Flag(nil, "Condition:CanWither")) then - local effect = activeSkill.minion and m_floor(6 * (1 + modDB:Sum("INC", nil, "MinionWitherEffect") / 100)) or m_floor(6 * (1 + modDB:Sum("INC", nil, "WitherEffect") / 100)) + local witherEffect = modDB:Sum("INC", nil, activeSkill.minion and "MinionWitherEffect" or "WitherEffect") + if not activeSkill.minion and modDB:Flag(nil, "UnholyMight") then + witherEffect = witherEffect + modDB:Sum("INC", nil, "UnholyMightAlsoWitherEffect") + end + local effect = m_floor(6 * (1 + witherEffect / 100)) modDB:NewMod("WitherEffectStack", "MAX", effect) end --Handle combustion diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 210eacf2cb..0d56f81660 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -3067,8 +3067,6 @@ local specialModList = { 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) @@ -3082,7 +3080,7 @@ local specialModList = { 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", }), }, + { mod = mod("DamageTaken", "INC", tonumber(attackDam), 0, ModFlag.Attack, { type = "Condition", var = "Intimidated", }), }, { type = "MultiplierThreshold", var = "MurderousEyeJewel", threshold = jewels }), mod("EnemyModifier", "LIST", { mod = mod("Damage", "MORE", -tonumber(lessDam), { type = "Condition", var = "Intimidated", }), },