Close combat and multi strike correct damage values
Adds pantheons from temmings' pull request Adds partial Impale support from baranio's pull request Adds updated uniques from PJacek's pull request and my own Adds more tree highlighting options for node power from coldino's pull request Adds support for fossil mods in the crafting window. Including correct parsing for some mods that previously didn't work
This commit is contained in:
@@ -23,6 +23,7 @@ local formList = {
|
||||
["^([%+%-]?[%d%.]+)%%? of"] = "BASE",
|
||||
["^([%+%-][%d%.]+)%%? base"] = "BASE",
|
||||
["^([%+%-]?[%d%.]+)%%? additional"] = "BASE",
|
||||
["(%d+) additional hits"] = "BASE",
|
||||
["^you gain ([%d%.]+)"] = "BASE",
|
||||
["^gains? ([%d%.]+)%% of"] = "BASE",
|
||||
["^([%+%-]?%d+)%% chance"] = "CHANCE",
|
||||
@@ -139,6 +140,7 @@ local modNameList = {
|
||||
["physical damage from hits taken"] = "PhysicalDamageTaken",
|
||||
["physical damage taken when hit"] = "PhysicalDamageTakenWhenHit",
|
||||
["physical damage taken over time"] = "PhysicalDamageTakenOverTime",
|
||||
["physical damage over time damage taken"] = "PhysicalDamageTakenOverTime",
|
||||
["lightning damage taken"] = "LightningDamageTaken",
|
||||
["lightning damage from hits taken"] = "LightningDamageTaken",
|
||||
["lightning damage taken when hit"] = "LightningDamageTakenWhenHit",
|
||||
@@ -155,6 +157,7 @@ local modNameList = {
|
||||
["chaos damage from hits taken"] = "ChaosDamageTaken",
|
||||
["chaos damage taken when hit"] = "ChaosDamageTakenWhenHit",
|
||||
["chaos damage taken over time"] = "ChaosDamageTakenOverTime",
|
||||
["chaos damage over time taken"] = "ChaosDamageTakenOverTime",
|
||||
["elemental damage taken"] = "ElementalDamageTaken",
|
||||
["elemental damage taken when hit"] = "ElementalDamageTakenWhenHit",
|
||||
["elemental damage taken over time"] = "ElementalDamageTakenOverTime",
|
||||
@@ -188,6 +191,7 @@ local modNameList = {
|
||||
["to avoid elemental ailments"] = { "AvoidShock", "AvoidFrozen", "AvoidChilled", "AvoidIgnite" },
|
||||
["to avoid elemental status ailments"] = { "AvoidShock", "AvoidFrozen", "AvoidChilled", "AvoidIgnite" },
|
||||
["to avoid bleeding"] = "AvoidBleed",
|
||||
["to avoid being poisoned"] = "AvoidPoison",
|
||||
["damage is taken from mana before life"] = "DamageTakenFromManaBeforeLife",
|
||||
["damage taken from mana before life"] = "DamageTakenFromManaBeforeLife",
|
||||
["effect of curses on you"] = "CurseEffectOnSelf",
|
||||
@@ -281,6 +285,8 @@ local modNameList = {
|
||||
["maximum total recovery per second from life leech"] = "MaxLifeLeechRate",
|
||||
["maximum total recovery per second from energy shield leech"] = "MaxEnergyShieldLeechRate",
|
||||
["maximum total recovery per second from mana leech"] = "MaxManaLeechRate",
|
||||
["to impale enemies on hit"] = "ImpaleChance",
|
||||
["impale effect"] = "ImpaleEffect",
|
||||
-- Projectile modifiers
|
||||
["projectile"] = "ProjectileCount",
|
||||
["projectiles"] = "ProjectileCount",
|
||||
@@ -436,6 +442,7 @@ local modNameList = {
|
||||
["effect of flasks on you"] = "FlaskEffect",
|
||||
["amount recovered"] = "FlaskRecovery",
|
||||
["life recovered"] = "FlaskRecovery",
|
||||
["life recovery from flasks used"] = "FlaskLifeRecovery",
|
||||
["mana recovered"] = "FlaskRecovery",
|
||||
["life recovery from flasks"] = "FlaskLifeRecovery",
|
||||
["mana recovery from flasks"] = "FlaskManaRecovery",
|
||||
@@ -452,6 +459,7 @@ local modNameList = {
|
||||
["flask charges used"] = "FlaskChargesUsed",
|
||||
["flask charges gained"] = "FlaskChargesGained",
|
||||
["charge recovery"] = "FlaskChargeRecovery",
|
||||
["impales you inflict last"] = "ImpaleStacksMax",
|
||||
}
|
||||
|
||||
-- List of modifier flags
|
||||
@@ -575,6 +583,8 @@ local preFlagList = {
|
||||
["^animated weapons [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Animate Weapon" } },
|
||||
["^animated guardians [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Animate Guardian" } },
|
||||
["^summoned holy relics [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Holy Relic" } },
|
||||
["^agony crawler deals "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Herald of Agony" } },
|
||||
["^sentinels of purity deal "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Herald of Purity" } },
|
||||
["^raised zombies' slam attack has "] = { addToMinion = true, tag = { type = "SkillId", skillId = "ZombieSlam" } },
|
||||
["^attacks used by totems have "] = { keywordFlags = KeywordFlag.Totem },
|
||||
["^spells cast by totems have "] = { keywordFlags = KeywordFlag.Totem },
|
||||
@@ -685,6 +695,7 @@ local modTagList = {
|
||||
["per green socket"] = { tag = { type = "Multiplier", var = "GreenSocketIn{SlotName}" } },
|
||||
["per blue socket"] = { tag = { type = "Multiplier", var = "BlueSocketIn{SlotName}" } },
|
||||
["per white socket"] = { tag = { type = "Multiplier", var = "WhiteSocketIn{SlotName}" } },
|
||||
["for each impale on enemy"] = { tag = { type = "Multiplier", var = "ImpaleStack", actor = "enemy" }},
|
||||
-- Per stat
|
||||
["per (%d+) strength"] = function(num) return { tag = { type = "PerStat", stat = "Str", div = num } } end,
|
||||
["per (%d+) dexterity"] = function(num) return { tag = { type = "PerStat", stat = "Dex", div = num } } end,
|
||||
@@ -694,6 +705,7 @@ local modTagList = {
|
||||
["per (%d+) evasion rating"] = function(num) return { tag = { type = "PerStat", stat = "Evasion", div = num } } end,
|
||||
["per (%d+) evasion rating, up to (%d+)%%"] = function(num, _, limit) return { tag = { type = "PerStat", stat = "Evasion", div = num, limit = tonumber(limit), limitTotal = true } } end,
|
||||
["per (%d+) maximum energy shield"] = function(num) return { tag = { type = "PerStat", stat = "EnergyShield", div = num } } end,
|
||||
["per (%d+) maximum life"] = function(num) return { tag = { type = "PerStat", stat = "Life", div = num } } end,
|
||||
["per (%d+) maximum mana, up to (%d+)%%"] = function(num, _, limit) return { tag = { type = "PerStat", stat = "Mana", div = num, limit = tonumber(limit), limitTotal = true } } end,
|
||||
["per (%d+) accuracy rating"] = function(num) return { tag = { type = "PerStat", stat = "Accuracy", div = num } } end,
|
||||
["per (%d+)%% block chance"] = function(num) return { tag = { type = "PerStat", stat = "BlockChance", div = num } } end,
|
||||
@@ -715,6 +727,8 @@ local modTagList = {
|
||||
["w?h?i[lf]e? you have at least (%d+) dexterity"] = function(num) return { tag = { type = "StatThreshold", stat = "Dex", threshold = num } } end,
|
||||
["w?h?i[lf]e? you have at least (%d+) intelligence"] = function(num) return { tag = { type = "StatThreshold", stat = "Int", threshold = num } } end,
|
||||
["at least (%d+) intelligence"] = function(num) return { tag = { type = "StatThreshold", stat = "Int", threshold = num } } end, -- lol
|
||||
["if dexterity is higher than intelligence"] = { tag = { type = "StatThreshold", var = "DexHigherThanInt" } },
|
||||
["if strength is higher than intelligence"] = { tag = { type = "StatThreshold", var = "StrHigherThanInt" } },
|
||||
["w?h?i[lf]e? you have at least (%d+) maximum energy shield"] = function(num) return { tag = { type = "StatThreshold", stat = "EnergyShield", threshold = num } } end,
|
||||
["against targets they pierce"] = { tag = { type = "StatThreshold", stat = "PierceCount", threshold = 1 } },
|
||||
["against pierced targets"] = { tag = { type = "StatThreshold", stat = "PierceCount", threshold = 1 } },
|
||||
@@ -804,8 +818,10 @@ local modTagList = {
|
||||
["during any flask effect"] = { tag = { type = "Condition", var = "UsingFlask" } },
|
||||
["while on consecrated ground"] = { tag = { type = "Condition", var = "OnConsecratedGround" } },
|
||||
["on burning ground"] = { tag = { type = "Condition", var = "OnBurningGround" } },
|
||||
["while on burning ground"] = { tag = { type = "Condition", var = "OnBurningGround" } },
|
||||
["on chilled ground"] = { tag = { type = "Condition", var = "OnChilledGround" } },
|
||||
["on shocked ground"] = { tag = { type = "Condition", var = "OnShockedGround" } },
|
||||
["while in a caustic cloud"] = { tag = { type = "Condition", var = "OnCausticCloud" } },
|
||||
["while ignited"] = { tag = { type = "Condition", var = "Ignited" } },
|
||||
["while frozen"] = { tag = { type = "Condition", var = "Frozen" } },
|
||||
["while shocked"] = { tag = { type = "Condition", var = "Shocked" } },
|
||||
@@ -814,6 +830,7 @@ local modTagList = {
|
||||
["while poisoned"] = { tag = { type = "Condition", var = "Poisoned" } },
|
||||
["while cursed"] = { tag = { type = "Condition", var = "Cursed" } },
|
||||
["while not cursed"] = { tag = { type = "Condition", var = "Cursed", neg = true } },
|
||||
["against damage over time"] = { tag = { type = "Condition", varList = { "AgainstDamageOverTime" } } },
|
||||
["while there is only one nearby enemy"] = { tag = { type = "Condition", var = "OnlyOneNearbyEnemy" } },
|
||||
["while t?h?e?r?e? ?i?s? ?a rare or unique enemy i?s? ?nearby"] = { tag = { type = "ActorCondition", actor = "enemy", var = "RareOrUnique" } },
|
||||
["if you[' ]h?a?ve hit recently"] = { tag = { type = "Condition", var = "HitRecently" } },
|
||||
@@ -868,12 +885,15 @@ local modTagList = {
|
||||
["if you[' ]h?a?ve used a minion skill recently"] = { tag = { type = "Condition", var = "UsedMinionSkillRecently" } },
|
||||
["if you[' ]h?a?ve used a movement skill recently"] = { tag = { type = "Condition", var = "UsedMovementSkillRecently" } },
|
||||
["if you[' ]h?a?ve used a vaal skill recently"] = { tag = { type = "Condition", var = "UsedVaalSkillRecently" } },
|
||||
["if you've impaled an enemy recently"] = { tag = { type = "Condition", var = "ImpaledRecently" } },
|
||||
["during soul gain prevention"] = { tag = { type = "Condition", var = "SoulGainPrevention" } },
|
||||
["if you detonated mines recently"] = { tag = { type = "Condition", var = "DetonatedMinesRecently" } },
|
||||
["if energy shield recharge has started recently"] = { tag = { type = "Condition", var = "EnergyShieldRechargeRecently" } },
|
||||
["when cast on frostbolt"] = { tag = { type = "Condition", var = "CastOnFrostbolt" } },
|
||||
["branded enemy's"] = { tag = { type = "Condition", var = "BrandAttachedToEnemy" } },
|
||||
["to enemies they're attached to"] = { tag = { type = "Condition", var = "BrandAttachedToEnemy" } },
|
||||
["for each hit you've taken recently up to a maximum of (%d+)%%"] = function(num) return { tag = { type = "Multiplier", var = "BeenHitRecently", limit = num, limitTotal = true } } end,
|
||||
["for each nearby enemy, up to (%d+)%%"] = function(num) return { tag = { type = "Multiplier", var = "NearbyEnemies", limit = num, limitTotal = true } } end,
|
||||
-- Enemy status conditions
|
||||
["at close range"] = { tag = { type = "Condition", var = "AtCloseRange" }, flags = ModFlag.Hit },
|
||||
["against rare and unique enemies"] = { tag = { type = "ActorCondition", actor = "enemy", var = "RareOrUnique" }, keywordFlags = KeywordFlag.Hit },
|
||||
@@ -1019,6 +1039,7 @@ local specialModList = {
|
||||
["cannot be stunned while you have fortify"] = { mod("AvoidStun", "BASE", 100, { type = "Condition", var = "Fortify" }) },
|
||||
["enemies taunted by you take (%d+)%% increased damage"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num, { type = "Condition", var = "Taunted" }) }) } end,
|
||||
["enemies taunted by you cannot evade attacks"] = { mod("EnemyModifier", "LIST", { mod = flag("CannotEvade", { type = "Condition", var = "Taunted" }) }) },
|
||||
["if you've impaled an enemy recently, you and nearby allies have %+(%d+) to armour"] = function (num) return { mod("ExtraAura", "LIST", { mod = mod("Armour", "BASE", num) }, { type = "Condition", var = "ImpaledRecently" }) } end,
|
||||
-- Chieftain
|
||||
["enemies near your totems take (%d+)%% increased physical and fire damage"] = function(num) return {
|
||||
mod("EnemyModifier", "LIST", { mod = mod("PhysicalDamageTaken", "INC", num) }),
|
||||
@@ -1085,7 +1106,7 @@ local specialModList = {
|
||||
-- Inquisitor
|
||||
["critical strikes ignore enemy monster elemental resistances"] = { flag("IgnoreElementalResistances", { type = "Condition", var = "CriticalStrike" }) },
|
||||
["non%-critical strikes penetrate (%d+)%% of enemy elemental resistances"] = function(num) return { mod("ElementalPenetration", "BASE", num, { type = "Condition", var = "CriticalStrike", neg = true }) } end,
|
||||
["consecrated ground you create grants (%d+)%% increased damage to you and allies"] = function(num) return { mod("Damage", "INC", num, { type = "Condition", var = "OnConsecratedGround" }) } end,
|
||||
["consecrated ground you create applies (%d+)%% increased damage taken to enemies"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num) }, { type = "ActorCondition", actor = "enemy", var = "OnConsecratedGround" }) } end,
|
||||
["nearby enemies take (%d+)%% increased elemental damage"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("ElementalDamageTaken", "INC", num) }) } end,
|
||||
-- Juggernaut
|
||||
["armour received from body armour is doubled"] = { flag("Unbreakable") },
|
||||
@@ -1169,6 +1190,7 @@ local specialModList = {
|
||||
["trigger level (%d+) (.+) when you hit an enemy while cursed"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["trigger level (%d+) (.+) when you kill a frozen enemy"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["trigger level (%d+) (.+) when you consume a corpse"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["trigger level (%d+) (.+) when you attack with a bow"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["%d+%% chance to attack with level (%d+) (.+) on melee hit"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["%d+%% chance to trigger level (%d+) (.+) on melee hit"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["%d+%% chance to trigger level (%d+) (.+) [ow][nh]e?n? ?y?o?u? kill ?a?n? ?e?n?e?m?y?"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
@@ -1211,6 +1233,8 @@ local specialModList = {
|
||||
["modifiers to claw critical strike chance also apply to unarmed"] = { flag("ClawCritChanceAppliesToUnarmed") },
|
||||
["modifiers to claw critical strike chance also apply to unarmed attack critical strike chance"] = { flag("ClawCritChanceAppliesToUnarmed") },
|
||||
["increases and reductions to light radius also apply to accuracy"] = { flag("LightRadiusAppliesToAccuracy") },
|
||||
["increases and reductions to light radius also apply to area of effect at 50%% of their value"] = { flag("LightRadiusAppliesToAreaOfEffect") },
|
||||
["increases and reductions to light radius also apply to damage"] = { flag("LightRadiusAppliesToDamage") },
|
||||
["increases and reductions to cast speed also apply to trap throwing speed"] = { flag("CastSpeedAppliesToTrapThrowingSpeed") },
|
||||
["gain (%d+)%% of bow physical damage as extra damage of each element"] = function(num) return {
|
||||
mod("PhysicalDamageGainAsLightning", "BASE", num, nil, ModFlag.Bow),
|
||||
@@ -1230,6 +1254,7 @@ local specialModList = {
|
||||
["critical strike chance is increased by uncapped lightning resistance"] = { mod("CritChance", "INC", 1, { type = "PerStat", stat = "LightningResistTotal", div = 1 }) },
|
||||
["critical strike chance is increased by lightning resistance"] = { mod("CritChance", "INC", 1, { type = "PerStat", stat = "LightningResist", div = 1 }) },
|
||||
["non%-critical strikes deal (%d+)%% damage"] = function(num) return { mod("Damage", "MORE", -100+num, nil, ModFlag.Hit, { type = "Condition", var = "CriticalStrike", neg = true }) } end,
|
||||
["critical strikes penetrate (%d+)%% of enemy elemental resistances while affected by zealotry"] = function(num) return { mod("ElementalPenetration", "BASE", num, { type = "Condition", var = "CriticalStrike"}, { type = "Condition", var = "AffectedByZealotry" }) } end,
|
||||
-- Generic Ailments
|
||||
["enemies take (%d+)%% increased damage for each type of ailment you have inflicted on them"] = function(num) return {
|
||||
mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num) }, { type = "ActorCondition", actor = "enemy", var = "Frozen"}),
|
||||
@@ -1271,6 +1296,7 @@ local specialModList = {
|
||||
["you have crimson dance while you have cat's stealth"] = { mod("Keystone", "LIST", "Crimson Dance", { type = "Condition", var = "AffectedByCat'sStealth" }) },
|
||||
["you have crimson dance if you have dealt a critical strike recently"] = { mod("Keystone", "LIST", "Crimson Dance", { type = "Condition", var = "CritRecently" }) },
|
||||
["bleeding you inflict deals damage (%d+)%% faster"] = function(num) return { mod("BleedFaster", "INC", num) } end,
|
||||
["(%d+)%% chance for bleeding inflicted with this weapon to deal (%d+)%% more damage"] = function(num, _, more) return { mod("Damage", "MORE", tonumber(more) * num / 100, nil, 0, KeywordFlag.Bleed) } end,
|
||||
-- Poison
|
||||
["y?o?u?r? ?fire damage can poison"] = { flag("FireCanPoison") },
|
||||
["y?o?u?r? ?cold damage can poison"] = { flag("ColdCanPoison") },
|
||||
@@ -1284,6 +1310,7 @@ local specialModList = {
|
||||
["wh[ie][ln]e? at maximum frenzy charges, attacks poison enemies"] = { mod("PoisonChance", "BASE", 100, nil, ModFlag.Attack, { type = "StatThreshold", stat = "FrenzyCharges", thresholdStat = "FrenzyChargesMax" }) },
|
||||
["traps and mines have a (%d+)%% chance to poison on hit"] = function(num) return { mod("PoisonChance", "BASE", num, nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)) } end,
|
||||
["poisons you inflict deal damage (%d+)%% faster"] = function(num) return { mod("PoisonFaster", "INC", num) } end,
|
||||
["(%d+)%% chance for poisons inflicted with this weapon to deal (%d+)%% more damage"] = function(num, _, more) return { mod("Damage", "MORE", tonumber(more) * num / 100, nil, 0, KeywordFlag.Poison) } end,
|
||||
-- Buffs/debuffs
|
||||
["phasing"] = { flag("Condition:Phasing") },
|
||||
["onslaught"] = { flag("Condition:Onslaught") },
|
||||
@@ -1326,6 +1353,7 @@ local specialModList = {
|
||||
mod("ElementalDamageTaken", "MORE", -20, { type = "Condition", var = "Divinity" }),
|
||||
},
|
||||
["your maximum endurance charges is equal to your maximum frenzy charges"] = { flag("MaximumEnduranceChargesIsMaximumFrenzyCharges") },
|
||||
["consecrated ground you create while affected by zealotry causes enemies to take (%d+)%% increased damage"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num) }, { type = "ActorCondition", actor = "enemy", var = "OnConsecratedGround" }, { type = "Condition", var = "AffectedByZealotry" }) } end,
|
||||
-- Traps, Mines and Totems
|
||||
["traps and mines deal (%d+)%-(%d+) additional physical damage"] = function(_, min, max) return { mod("PhysicalMin", "BASE", tonumber(min), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)), mod("PhysicalMax", "BASE", tonumber(max), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)) } end,
|
||||
["traps and mines deal (%d+) to (%d+) additional physical damage"] = function(_, min, max) return { mod("PhysicalMin", "BASE", tonumber(min), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)), mod("PhysicalMax", "BASE", tonumber(max), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)) } end,
|
||||
@@ -1443,6 +1471,7 @@ local specialModList = {
|
||||
["cannot be ignited if strength is higher than dexterity"] = { mod("AvoidIgnite", "BASE", 100, { type = "Condition", var = "StrHigherThanDex" }) },
|
||||
["cannot be inflicted with bleeding"] = { mod("AvoidBleed", "BASE", 100) },
|
||||
["you are immune to bleeding"] = { mod("AvoidBleed", "BASE", 100) },
|
||||
["immune to poison"] = { mod("AvoidPoison", "BASE", 100) },
|
||||
["immunity to shock during flask effect"] = { mod("AvoidShock", "BASE", 100, { type = "Condition", var = "UsingFlask" }) },
|
||||
["immunity to freeze and chill during flask effect"] = {
|
||||
mod("AvoidFreeze", "BASE", 100, { type = "Condition", var = "UsingFlask" }),
|
||||
@@ -1489,8 +1518,7 @@ local specialModList = {
|
||||
["(%d+)%% of maximum life taken as chaos damage per second"] = function(num) return { mod("ChaosDegen", "BASE", num/100, { type = "PerStat", stat = "Life", div = 1 }) } end,
|
||||
["your critical strikes do not deal extra damage during flask effect"] = { flag("NoCritMultiplier", { type = "Condition", var = "UsingFlask" }) },
|
||||
["grants perfect agony during flask effect"] = { mod("Keystone", "LIST", "Perfect Agony", { type = "Condition", var = "UsingFlask" }) },
|
||||
["enemies on consecrated ground you create during effect take (%d+)%% increased damage"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num, { type = "Condition", var = "OnConsecratedGround" }) }, { type = "Condition", var = "UsingFlask" }) } end,
|
||||
-- Jewels
|
||||
["consecrated ground created during effect applies (%d+)%% increased damage taken to enemies"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num, { type = "Condition", var = "OnConsecratedGround" }) }, { type = "Condition", var = "UsingFlask" }) } end, -- Jewels
|
||||
["passives in radius can be allocated without being connected to your tree"] = { mod("JewelData", "LIST", { key = "intuitiveLeap", value = true }) },
|
||||
["(%d+)%% increased elemental damage per grand spectrum"] = function(num) return {
|
||||
mod("ElementalDamage", "INC", num, { type = "Multiplier", var = "GrandSpectrum" }),
|
||||
@@ -1512,6 +1540,7 @@ local specialModList = {
|
||||
["you have zealot's oath if you haven't been hit recently"] = { mod("Keystone", "LIST", "Zealot's Oath", { type = "Condition", var = "BeenHitRecently", neg = true }) },
|
||||
["deal no physical damage"] = { flag("DealNoPhysical") },
|
||||
["deal no elemental damage"] = { flag("DealNoLightning"), flag("DealNoCold"), flag("DealNoFire") },
|
||||
["deal no chaos damage"] = { flag("DealNoChaos") },
|
||||
["deal no non%-elemental damage"] = { flag("DealNoPhysical"), flag("DealNoChaos") },
|
||||
["attacks have blood magic"] = { flag("SkillBloodMagic", nil, ModFlag.Attack) },
|
||||
["(%d+)%% chance to cast a? ?socketed lightning spells? on hit"] = function(num) return { mod("ExtraSupport", "LIST", { name = "SupportUniqueMjolnerLightningSpellsCastOnHit", level = 1 }, { type = "SocketedIn", slotName = "{SlotName}" }) } end,
|
||||
@@ -1543,6 +1572,12 @@ local specialModList = {
|
||||
["with a ghastly eye jewel socketed, minions have %+(%d+) to accuracy rating"] = function(num) return { mod("MinionModifier", "LIST", { mod = mod("Accuracy", "BASE", num) }, { type = "Condition", var = "HaveGhastlyEyeJewelIn{SlotName}" }) } end,
|
||||
["hits ignore enemy monster chaos resistance if all equipped items are shaper items"] = { flag("IgnoreChaosResistance", { type = "MultiplierThreshold", var = "NonShaperItem", upper = true, threshold = 0 }) },
|
||||
["base critical strike chance for attacks with weapons is (%d)%%"] = function(num) return { mod("WeaponBaseCritChance", "OVERRIDE", num) } end,
|
||||
["gain %d+ rage on critical hit with attacks, no more than once every [%d%.]+ seconds"] = {
|
||||
flag("Condition:CanGainRage"),
|
||||
mod("Dummy", "DUMMY", 1, { type = "Condition", var = "CanGainRage" }) -- Make the Configuration option appear
|
||||
},
|
||||
["warcry skills' cooldown time is (%d+) seconds"] = function(num) return { mod("CooldownRecovery", "OVERRIDE", 2, nil, 0, KeywordFlag.Warcry) } end,
|
||||
["your critical strike multiplier is (%d+)%%"] = function(num) return { mod("CritMultiplier", "OVERRIDE", num) } end,
|
||||
-- Skill-specific enchantment modifiers
|
||||
["(%d+)%% increased decoy totem life"] = function(num) return { mod("TotemLife", "INC", num, { type = "SkillName", skillName = "Decoy Totem" }) } end,
|
||||
["(%d+)%% increased ice spear critical strike chance in second form"] = function(num) return { mod("CritChance", "INC", num, { type = "SkillName", skillName = "Ice Spear" }, { type = "SkillPart", skillPart = 2 }) } end,
|
||||
@@ -1696,6 +1731,7 @@ for gemId, gemData in pairs(data["3_0"].gems) do
|
||||
end
|
||||
if gemData.tags.aura or gemData.tags.herald then
|
||||
skillNameList["while affected by "..skillName:lower()] = { tag = { type = "Condition", var = "AffectedBy"..skillName:gsub(" ","") } }
|
||||
skillNameList["while using "..skillName:lower()] = { tag = { type = "Condition", var = "AffectedBy"..skillName:gsub(" ","") } }
|
||||
end
|
||||
if gemData.tags.chaining then
|
||||
specialModList["^"..skillName:lower().." chains an additional time"] = { mod("ExtraSkillMod", "LIST", { mod = mod("ChainCountMax", "BASE", 1) }, { type = "SkillName", skillName = skillName }) }
|
||||
@@ -1906,6 +1942,8 @@ local jewelThresholdFuncs = {
|
||||
["With 40 total Intelligence and Dexterity in Radius, Elemental Hit deals 50% less Fire Damage"] = getThreshold({"Int","Dex"}, "FireDamage", "MORE", -50, { type = "SkillName", skillName = "Elemental Hit" }),
|
||||
["With 40 total Strength and Intelligence in Radius, Elemental Hit deals 50% less Cold Damage"] = getThreshold({"Str","Int"}, "ColdDamage", "MORE", -50, { type = "SkillName", skillName = "Elemental Hit" }),
|
||||
["With 40 total Dexterity and Strength in Radius, Elemental Hit deals 50% less Lightning Damage"] = getThreshold({"Dex","Str"}, "LightningDamage", "MORE", -50, { type = "SkillName", skillName = "Elemental Hit" }),
|
||||
["With 40 total Dexterity and Strength in Radius, Spectral Shield Throw Chains +4 times"] = getThreshold({"Dex","Str"}, "ChainCountMax", "BASE", 4, { type = "SkillName", skillName = "Spectral Shield Throw" }),
|
||||
["With 40 total Dexterity and Strength in Radius, Spectral Shield Throw fires 75% less Shard Projectiles"] = getThreshold({"Dex","Str"}, "ProjectileCount", "MORE", -75, { type = "SkillName", skillName = "Spectral Shield Throw" }),
|
||||
--[""] = getThreshold("", "", "", , { type = "SkillName", skillName = "" }),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user