From db8ac3456aadb62c2e4e800afc8bd69e4d657f1c Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Thu, 11 Sep 2025 06:59:49 +1000 Subject: [PATCH] Add support for many Rune mods Wither Magnitude Minions gain 10% of their Physical Damage as Extra Lightning Damage Minions take 10% of Physical Damage as Lightning Damage Minions deal 40% increased Damage with Command Skills Attacks with this Weapon have 10% chance to inflict Lightning Exposure Gain 5% of Damage as Extra Damage of all Elements --- src/Data/ModCache.lua | 4 ++-- src/Modules/ModParser.lua | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 0100226c02..31fe0042ad 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -1124,7 +1124,7 @@ c["10% increased Thorns damage"]={{[1]={flags=0,keywordFlags=0,name="ThornsDamag c["10% increased Trap Damage"]={{[1]={flags=0,keywordFlags=4096,name="Damage",type="INC",value=10}},nil} c["10% increased Warcry Cooldown Recovery Rate"]={{[1]={flags=0,keywordFlags=4,name="CooldownRecovery",type="INC",value=10}},nil} c["10% increased Weapon Damage per 10 Strength"]={{[1]={[1]={div=10,stat="Str",type="PerStat"},flags=8192,keywordFlags=0,name="Damage",type="INC",value=10}},nil} -c["10% increased Withered Magnitude"]={{}," Withered Magnitude "} +c["10% increased Withered Magnitude"]={{[1]={flags=0,keywordFlags=0,name="WitherEffect",type="INC",value=10}},nil} c["10% increased amount of Life Leeched"]={{[1]={flags=0,keywordFlags=0,name="MaxLifeLeechRate",type="INC",value=10}},nil} c["10% increased amount of Mana Leeched"]={{[1]={flags=0,keywordFlags=0,name="MaxManaLeechRate",type="INC",value=10}},nil} c["10% increased chance to Shock"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockChance",type="INC",value=10}},nil} @@ -1832,7 +1832,7 @@ c["20% increased Totem Life"]={{[1]={flags=0,keywordFlags=0,name="TotemLife",typ c["20% increased Totem Placement range"]={{[1]={flags=0,keywordFlags=16384,name="WeaponRange",type="INC",value=20}}," Placement "} c["20% increased Totem Placement speed"]={{[1]={flags=0,keywordFlags=0,name="TotemPlacementSpeed",type="INC",value=20}},nil} c["20% increased Warcry Speed"]={{[1]={flags=0,keywordFlags=4,name="WarcrySpeed",type="INC",value=20}},nil} -c["20% increased Withered Magnitude"]={{}," Withered Magnitude "} +c["20% increased Withered Magnitude"]={{[1]={flags=0,keywordFlags=0,name="WitherEffect",type="INC",value=20}},nil} c["20% increased amount of Life Leeched"]={{[1]={flags=0,keywordFlags=0,name="MaxLifeLeechRate",type="INC",value=20}},nil} c["20% increased bonuses gained from Equipped Quiver"]={{[1]={flags=0,keywordFlags=0,name="EffectOfBonusesFromQuiver",type="INC",value=20}},nil} c["20% increased chance to Shock"]={{[1]={flags=0,keywordFlags=0,name="EnemyShockChance",type="INC",value=20}},nil} diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index c67e68674b..a4a9765985 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -69,6 +69,7 @@ local formList = { ["(%d+) additional hits?"] = "BASE", ["^throw up to (%d+)"] = "BASE", ["^you gain ([%d%.]+)"] = "GAIN", + ["^gains? ([%d%.]+)%% of their"] = "GAIN", ["^gains? ([%d%.]+)%% of"] = "GAIN", ["^gains? ([%d%.]+)"] = "GAIN", ["^gain %+(%d+)%% to"] = "GAIN", @@ -470,6 +471,7 @@ local modNameList = { ["effect of buffs your ancestor totems grant "] = { "BuffEffect", tag = { type = "SkillName", skillNameList = { "Ancestral Warchief", "Ancestral Protector", "Earthbreaker" } } }, ["effect of shrine buffs on you"] = "ShrineBuffEffect", ["effect of withered"] = "WitherEffect", + ["withered magnitude"] = "WitherEffect", ["warcry effect"] = { "BuffEffect", keywordFlags = KeywordFlag.Warcry }, ["aspect of the avian buff effect"] = { "BuffEffect", tag = { type = "SkillName", skillName = "Aspect of the Avian" } }, ["maximum rage"] = "MaximumRage", @@ -836,6 +838,7 @@ local modNameList = { ["to inflict cold exposure on hit"] = "ColdExposureChance", ["to apply cold exposure on hit"] = "ColdExposureChance", ["to inflict lightning exposure on hit"] = "LightningExposureChance", + ["to inflict lightning exposure"] = "LightningExposureChance", ["to apply lightning exposure on hit"] = "LightningExposureChance", ["to ignore enemy physical damage reduction"] = "ChanceToIgnoreEnemyPhysicalDamageReduction", ["weapon swap speed"] = "WeaponSwapSpeed", @@ -1065,6 +1068,7 @@ local modFlagList = { ["of mark skills"] = { tag = { type = "SkillType", skillType = SkillType.Mark } }, ["of your mark skills"] = { tag = { type = "SkillType", skillType = SkillType.Mark } }, ["with skills that cost life"] = { tag = { type = "StatThreshold", stat = "LifeCost", threshold = 1 } }, + ["with command skills"] = { tag = { type = "Condition", var = "CommandableSkill" } }, ["minion"] = { addToMinion = true }, ["zombie"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie", includeTransfigured = true } }, ["raised zombie"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie", includeTransfigured = true } }, @@ -1130,7 +1134,7 @@ local preFlagList = { ["^poisons you inflict with critical hits have "] = { keywordFlags = bor(KeywordFlag.Poison, KeywordFlag.MatchAll), tag = { type = "Condition", var = "CriticalStrike" } }, -- Add to minion ["^minions "] = { addToMinion = true }, - ["^minions [hd][ae][va][el] "] = { addToMinion = true }, + ["^minions [thd][ae][kva][el] "] = { addToMinion = true }, ["^while a unique enemy is in your presence, minions [hd][ae][va][el] "] = { addToMinion = true, playerTag = { type = "ActorCondition", actor = "enemy", var = "RareOrUnique" } }, ["^while a pinnacle atlas boss is in your presence, minions [hd][ae][va][el] "] = { addToMinion = true, playerTag = { type = "ActorCondition", actor = "enemy", var = "PinnacleBoss" } }, ["^minions leech "] = { addToMinion = true }, @@ -3364,6 +3368,11 @@ local specialModList = { mod("PhysicalDamageGainAsCold", "BASE", num, { type = "Multiplier", var = "SpiritCharge" }), mod("PhysicalDamageGainAsFire", "BASE", num, { type = "Multiplier", var = "SpiritCharge" }), } end, + ["gain (%d+)%% of damage as extra damage of all elements"] = function(num) return { + mod("DamageGainAsLightning", "BASE", num), + mod("DamageGainAsCold", "BASE", num), + mod("DamageGainAsFire", "BASE", num), + } end, ["gain (%d+)%% of weapon physical damage as extra damage of an? r?a?n?d?o?m? ?element"] = function(num) return { mod("PhysicalDamageGainAsRandom", "BASE", num, nil, ModFlag.Weapon) } end, ["gain (%d+)%% of physical damage as extra damage of a random element"] = function(num) return { mod("PhysicalDamageGainAsRandom", "BASE", num ) } end, ["(%d+)%% chance for hits to deal (%d+)%% of physical damage as extra damage of a random element"] = function(num, _, physPercent) return { mod("PhysicalDamageGainAsRandom", "BASE", (num*physPercent/100) ) } end,