Release 1.2.39

- Added full dual wielding support
- Added Dual Strike support
- Fixed PoEPlanner link import
This commit is contained in:
Openarl
2017-02-08 02:42:33 +10:00
parent ff7a1a3b48
commit 41693c28d0
17 changed files with 1385 additions and 739 deletions

View File

@@ -33,8 +33,8 @@ local formList = {
["^([%d%.]+) (.+) regenerated per second"] = "REGENFLAT",
["^regenerate ([%d%.]+) (.+) per second"] = "REGENFLAT",
["(%d+) to (%d+) additional (%a+) damage"] = "DMG",
["adds (%d+)%-(%d+) (%a+) damage"] = "DMGATTACKS",
["adds (%d+) to (%d+) (%a+) damage"] = "DMGATTACKS",
["adds (%d+)%-(%d+) (%a+) damage"] = "DMG",
["adds (%d+) to (%d+) (%a+) damage"] = "DMG",
["adds (%d+)%-(%d+) (%a+) damage to attacks"] = "DMGATTACKS",
["adds (%d+) to (%d+) (%a+) damage to attacks"] = "DMGATTACKS",
["adds (%d+)%-(%d+) (%a+) damage to spells"] = "DMGSPELLS",
@@ -114,6 +114,7 @@ local modNameList = {
["block recovery"] = "BlockRecovery",
["enemy stun threshold"] = "EnemyStunThreshold",
["stun duration on enemies"] = "EnemyStunDuration",
["stun duration"] = "EnemyStunDuration",
-- Auras/curses
["effect of non-curse auras you cast"] = "AuraEffect",
["effect of your curses"] = "CurseEffect",
@@ -310,6 +311,7 @@ local preFlagList = {
-- List of modifier tags
local modTagList = {
["on enemies"] = { },
-- Multipliers
["per power charge"] = { tag = { type = "Multiplier", var = "PowerCharge" } },
["per frenzy charge"] = { tag = { type = "Multiplier", var = "FrenzyCharge" } },
@@ -329,10 +331,10 @@ local modTagList = {
["per (%d+)%% block chance"] = function(num) return { tag = { type = "PerStat", stat = "BlockChance", div = num } } end,
["per (%d+) of the lowest of armour and evasion rating"] = function(num) return { tag = { type = "PerStat", stat = "LowestOfArmourAndEvasion", div = num } } end,
-- Slot conditions
["in main hand"] = { tag = { type = "SlotNumber", num = 1 } },
["when in main hand"] = { tag = { type = "SlotNumber", num = 1 } },
["in off hand"] = { tag = { type = "SlotNumber", num = 2 } },
["when in off hand"] = { tag = { type = "SlotNumber", num = 2 } },
["in main hand"] = { tag = { type = "InSlot", num = 1 } },
["in off hand"] = { tag = { type = "InSlot", num = 2 } },
-- Equipment conditions
["while holding a shield"] = { tag = { type = "Condition", var = "UsingShield" } },
["with shields"] = { tag = { type = "Condition", var = "UsingShield" } },
@@ -376,9 +378,9 @@ local modTagList = {
["if you have hit recently"] = { tag = { type = "Condition", var = "HitRecently" } },
["if you've crit recently"] = { tag = { type = "Condition", var = "CritRecently" } },
["if you've dealt a critical strike recently"] = { tag = { type = "Condition", var = "CritRecently" } },
["if you haven't crit recently"] = { tag = { type = "Condition", var = "NotCritRecently" } },
["if you haven't crit recently"] = { tag = { type = "Condition", var = "CritRecently", neg = true } },
["if you've killed recently"] = { tag = { type = "Condition", var = "KilledRecently" } },
["if you haven't killed recently"] = { tag = { type = "Condition", var = "NotKilledRecently" } },
["if you haven't killed recently"] = { tag = { type = "Condition", var = "KilledRecently", neg = true } },
["if you or your totems have killed recently"] = { tag = { type = "Condition", varList = {"KilledRecently","TotemsKilledRecently"} } },
["if you've killed a maimed enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "Condition", var = "EnemyMaimed" } } },
["if you've been hit recently"] = { tag = { type = "Condition", var = "BeenHitRecently" } },
@@ -386,8 +388,8 @@ local modTagList = {
["if you were damaged by a hit recently"] = { tag = { type = "Condition", var = "BeenHitRecently" } },
["if you've taken a savage hit recently"] = { tag = { type = "Condition", var = "BeenSavageHitRecently" } },
["if you've blocked recently"] = { tag = { type = "Condition", var = "BlockedRecently" } },
["if you haven't been hit recently"] = { tag = { type = "Condition", var = "NotBeenHitRecently" } },
["if you've taken no damage from hits recently"] = { tag = { type = "Condition", var = "NotBeenHitRecently" } },
["if you haven't been hit recently"] = { tag = { type = "Condition", var = "BeenHitRecently", neg = true } },
["if you've taken no damage from hits recently"] = { tag = { type = "Condition", var = "BeenHitRecently", neg = true } },
["if you've blocked a hit from a unique enemy recently"] = { tag = { type = "Condition", var = "BlockedHitFromUniqueEnemyRecently" } },
["if you've attacked recently"] = { tag = { type = "Condition", var = "AttackedRecently" } },
["if you've cast a spell recently"] = { tag = { type = "Condition", var = "CastSpellRecently" } },
@@ -555,7 +557,7 @@ local specialModList = {
["melee critical strikes cause bleeding"] = { mod("BleedChance", "BASE", 100, nil, ModFlag.Melee, { type = "Condition", var = "CriticalStrike" }) },
["melee critical strikes have (%d+)%% chance to cause bleeding"] = function(num) return { mod("BleedChance", "BASE", num, nil, ModFlag.Melee, { type = "Condition", var = "CriticalStrike" }) } end,
["melee critical strikes have (%d+)%% chance to poison the enemy"] = function(num) return { mod("PoisonChance", "BASE", num, nil, ModFlag.Melee, { type = "Condition", var = "CriticalStrike" }) } end,
["causes bleeding on melee critical strike"] = { mod("BleedChance", "BASE", num, nil, ModFlag.Melee, { type = "Condition", var = "CriticalStrike" }) },
["causes bleeding on melee critical strike"] = { mod("BleedChance", "BASE", 100, nil, ModFlag.Melee, { type = "Condition", var = "CriticalStrike" }) },
["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,
["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,
@@ -564,7 +566,7 @@ local specialModList = {
["gain (%d+) armour per grand spectrum"] = function(num) return { mod("Armour", "BASE", num, { type = "Multiplier", var = "GrandSpectrum" }), mod("Misc", "LIST", { type = "Multiplier", var = "GrandSpectrum", value = 1}) } end,
["gain (%d+) mana per grand spectrum"] = function(num) return { mod("Mana", "BASE", num, { type = "Multiplier", var = "GrandSpectrum" }), mod("Misc", "LIST", { type = "Multiplier", var = "GrandSpectrum", value = 1}) } end,
["(%d+)%% increased elemental damage per grand spectrum"] = function(num) return { mod("ElementalDamage", "INC", num, { type = "Multiplier", var = "GrandSpectrum" }), mod("Misc", "LIST", { type = "Multiplier", var = "GrandSpectrum", value = 1}) } end,
["counts as dual wielding"] = { mod("Misc", "LIST", { type = "Condition", var = "DualWielding"}) },
["counts as dual wielding"] = { mod("Misc", "LIST", { type = "WeaponData", key = "countsAsDualWielding", value = true}) },
["counts as all one handed melee weapon types"] = { mod("Misc", "LIST", { type = "WeaponData", key = "countsAsAll1H", value = true }) },
["gain (%d+)%% of bow physical damage as extra damage of each element"] = function(num) return { mod("PhysicalDamageGainAsLightning", "BASE", num, nil, ModFlag.Bow), mod("PhysicalDamageGainAsCold", "BASE", num, nil, ModFlag.Bow), mod("PhysicalDamageGainAsFire", "BASE", num, nil, ModFlag.Bow) } end,
["totems fire (%d+) additional projectiles"] = function(num) return { mod("ProjectileCount", "BASE", num, nil, 0, KeywordFlag.Totem) } end,