Added support for various unique stats

This commit is contained in:
Openarl
2019-03-10 00:53:52 +13:00
parent 84aae38616
commit c1faf9bf18
8 changed files with 28 additions and 18 deletions

View File

@@ -270,13 +270,14 @@ local modNameList = {
["life leeched per second"] = "LifeLeechRate",
["mana leeched per second"] = "ManaLeechRate",
["total recovery per second from life leech"] = "LifeLeechRate",
["total recovery per second from mana leech"] = "ManaLeechRate",
["total recovery per second from energy shield leech"] = "EnergyShieldLeechRate",
["maximum life per second to maximum life leech rate"] = "MaxLifeLeechRate",
["maximum mana per second to maximum mana leech rate"] = "MaxManaLeechRate",
["total recovery per second from mana leech"] = "ManaLeechRate",
["maximum recovery per life leech"] = "MaxLifeLeechInstance",
["maximum recovery per energy shield leech"] = "MaxEnergyShieldLeechInstance",
["maximum recovery per mana leech"] = "MaxManaLeechInstance",
["maximum total recovery per second from life leech"] = "MaxLifeLeechRate",
["maximum total recovery per second from mana leech"] = "MaxManaLeechRate",
["maximum total recovery per second from energy shield leech"] = "MaxEnergyShieldLeechRate",
["maximum total recovery per second from mana leech"] = "MaxManaLeechRate",
-- Projectile modifiers
["projectile"] = "ProjectileCount",
["projectiles"] = "ProjectileCount",
@@ -421,6 +422,7 @@ local modNameList = {
["strength requirement"] = "StrRequirement",
["dexterity requirement"] = "DexRequirement",
["intelligence requirement"] = "IntRequirement",
["strength and intelligence requirement"] = { "StrRequirement", "IntRequirement" },
["attribute requirements"] = { "StrRequirement", "DexRequirement", "IntRequirement" },
["effect of socketed jewels"] = "SocketedJewelEffect",
-- Flask modifiers
@@ -1292,6 +1294,10 @@ local specialModList = {
["nearby allies have (%d+)%% increased defences per (%d+) strength you have"] = function(num, _, div) return { mod("ExtraAura", "LIST", { onlyAllies = true, mod = mod("Defences", "INC", num) }, { type = "PerStat", stat = "Str", div = tonumber(div) }) } end,
["nearby allies have %+(%d+)%% to critical strike multiplier per (%d+) dexterity you have"] = function(num, _, div) return { mod("ExtraAura", "LIST", { onlyAllies = true, mod = mod("CritMultiplier", "BASE", num) }, { type = "PerStat", stat = "Dex", div = tonumber(div) }) } end,
["nearby allies have (%d+)%% increased cast speed per (%d+) intelligence you have"] = function(num, _, div) return { mod("ExtraAura", "LIST", { onlyAllies = true, mod = mod("Speed", "INC", num, nil, ModFlag.Cast ) }, { type = "PerStat", stat = "Int", div = tonumber(div) }) } end,
["you gain divinity for %d+ seconds on reaching maximum divine charges"] = {
mod("ElementalDamage", "MORE", 50, { type = "Condition", var = "Divinity" }),
mod("ElementalDamageTaken", "MORE", -20, { type = "Condition", var = "Divinity" }),
},
-- 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,
@@ -1507,6 +1513,7 @@ local specialModList = {
["strength provides no bonus to maximum life"] = { flag("NoStrBonusToLife") },
["intelligence provides no bonus to maximum mana"] = { flag("NoIntBonusToMana") },
["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 }) },
-- 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,