From ce0389cd4e3efd5d6f3bfea8084a016d80291282 Mon Sep 17 00:00:00 2001 From: Openarl Date: Tue, 22 Nov 2016 00:15:00 +1000 Subject: [PATCH] Release 1.2.11 - Added support for The Scourge's minion damage modifiers - Fixed error caused by nil block chance --- Classes/ConfigTab.lua | 7 +++++++ Modules/Build.lua | 11 +++++++++++ Modules/Calcs.lua | 16 +++++++++++++++- Modules/ModParser.lua | 5 ++++- README.md | 4 ++++ changelog.txt | 3 +++ manifest.xml | 12 ++++++------ 7 files changed, 50 insertions(+), 8 deletions(-) diff --git a/Classes/ConfigTab.lua b/Classes/ConfigTab.lua index 9dcbd3a9..311673b9 100644 --- a/Classes/ConfigTab.lua +++ b/Classes/ConfigTab.lua @@ -39,6 +39,12 @@ local varList = { { var = "buffPendulum", type = "check", label = "Is Pendulum of Destruction active?", ifNode = 57197, apply = function(val, modList, enemyModList) modList:NewMod("Misc", "LIST", { type = "Condition", var = "PendulumOfDestruction" }, "Config", { type = "Condition", var = "Combat" }) end }, + { var = "conditionHitRecently", type = "check", label = "Have you Hit Recently?", tooltip = "You will automatically be considered to have Hit Recently if your main skill is self-cast,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) + modList:NewMod("Misc", "LIST", { type = "Condition", var = "HitRecently" }, "Config", { type = "Condition", var = "Combat" }) + end }, + { var = "conditionKilledRecently", type = "check", label = "Have you Killed Recently?", apply = function(val, modList, enemyModList) + modList:NewMod("Misc", "LIST", { type = "Condition", var = "KilledRecently" }, "Config", { type = "Condition", var = "Combat" }) + end }, { section = "For Effective DPS" }, { var = "conditionEnemyCursed", type = "check", label = "Is the enemy Cursed?", tooltip = "Your enemy will automatically be considered to be Cursed if you have at least one curse enabled,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) modList:NewMod("Misc", "LIST", { type = "Condition", var = "EnemyCursed" }, "Config", { type = "Condition", var = "Effective" }) @@ -305,4 +311,5 @@ function ConfigTabClass:RestoreUndoState(state) self.input[k] = v end self:UpdateControls() + self:BuildModList() end diff --git a/Modules/Build.lua b/Modules/Build.lua index a995f47c..f0b579f5 100644 --- a/Modules/Build.lua +++ b/Modules/Build.lua @@ -321,6 +321,17 @@ function buildMode:Init(dbFileName, buildName) self.calcsTab:BuildOutput() self:RefreshStatList() + --[[ + for _, item in pairs(main.uniqueDB.list) do + ConPrintf("%s", item.name) + self.itemsTab:AddItemTooltip(item) + end + for _, item in pairs(main.rareDB.list) do + ConPrintf("%s", item.name) + self.itemsTab:AddItemTooltip(item) + end + --]] + --[[ local start = GetTime() SetProfiling(true) diff --git a/Modules/Calcs.lua b/Modules/Calcs.lua index 782ebf71..1657c6dc 100644 --- a/Modules/Calcs.lua +++ b/Modules/Calcs.lua @@ -269,7 +269,9 @@ local function buildActiveSkillModList(env, activeSkill) if skillFlags.chaos then skillKeywordFlags = bor(skillKeywordFlags, KeywordFlag.Chaos) end - if skillFlags.totem then + if skillFlags.minion then + skillKeywordFlags = bor(skillKeywordFlags, KeywordFlag.Minion) + elseif skillFlags.totem then skillKeywordFlags = bor(skillKeywordFlags, KeywordFlag.Totem) elseif skillFlags.trap then skillKeywordFlags = bor(skillKeywordFlags, KeywordFlag.Trap) @@ -1011,6 +1013,9 @@ local function performCalcs(env) elseif env.mainSkill.skillFlags.spell then condList["CastSpellRecently"] = true end + if not env.mainSkill.skillFlags.trap and not env.mainSkill.skillFlags.mine and not env.mainSkill.skillFlags.totem then + condList["HitRecently"] = true + end if env.mainSkill.skillFlags.movement then condList["UsedMovementSkillRecently"] = true end @@ -1569,6 +1574,15 @@ local function performCalcs(env) modDB:NewMod("Damage", "INC", strDmgBonus, "Strength", ModFlag.Spell) end + if modDB:Sum("FLAG", nil, "MinionDamageAppliesToPlayer") then + -- Minion Damage conversion from The Scourge + for _, mod in ipairs(modDB.mods.Damage or { }) do + if mod.type == "INC" and mod.keywordFlags == KeywordFlag.Minion then + modDB:NewMod("Damage", "INC", mod.value, mod.source, 0, 0, unpack(mod.tagList)) + end + end + end + -- Calculate skill type stats if skillFlags.projectile then output.ProjectileCount = modDB:Sum("BASE", skillCfg, "ProjectileCount") diff --git a/Modules/ModParser.lua b/Modules/ModParser.lua index d6f6f676..9a163ff5 100644 --- a/Modules/ModParser.lua +++ b/Modules/ModParser.lua @@ -261,6 +261,7 @@ local modFlagList = { ["with traps"] = { keywordFlags = KeywordFlag.Trap }, ["totem"] = { keywordFlags = KeywordFlag.Totem }, ["with totem skills"] = { keywordFlags = KeywordFlag.Totem }, + ["minion"] = { keywordFlags = KeywordFlag.Minion }, ["of aura skills"] = { keywordFlags = KeywordFlag.Aura }, ["of curse skills"] = { keywordFlags = KeywordFlag.Curse }, ["for curses"] = { keywordFlags = KeywordFlag.Curse }, @@ -346,6 +347,7 @@ local modTagList = { ["while using a flask"] = { tag = { type = "Condition", var = "UsingFlask" } }, ["during flask effect"] = { tag = { type = "Condition", var = "UsingFlask" } }, ["while on consecrated ground"] = { tag = { type = "Condition", var = "OnConsecratedGround" } }, + ["if you have hit recently"] = { tag = { type = "Condition", var = "HitRecently" } }, ["if you've killed recently"] = { tag = { type = "Condition", var = "KilledRecently" } }, ["if you haven't killed recently"] = { tag = { type = "Condition", var = "NotKilledRecently" } }, ["if you've attacked recently"] = { tag = { type = "Condition", var = "AttackedRecently" } }, @@ -444,7 +446,7 @@ local specialModList = { ["no physical damage"] = { mod("Misc", "LIST", { type = "WeaponData", key = "PhysicalMin" }), mod("Misc", "LIST", { type = "WeaponData", key = "PhysicalMax" }), mod("Misc", "LIST", { type = "WeaponData", key = "PhysicalDPS" }) }, ["all attacks with this weapon are critical strikes"] = { mod("Misc", "LIST", { type = "WeaponData", key = "critChance", value = 100 }) }, ["hits can't be evaded"] = { mod("Misc", "LIST", { type = "WeaponData", key = "CannotBeEvaded", value = true }) }, - ["no block chance"] = { mod("Misc", "LIST", { type = "ArmourData", key = "BlockChance" }) }, + ["no block chance"] = { mod("Misc", "LIST", { type = "ArmourData", key = "BlockChance", value = 0 }) }, ["causes bleeding on hit"] = { mod("BleedChance", "BASE", 100, nil, ModFlag.Attack) }, ["poisonous hit"] = { mod("PoisonChance", "BASE", 100, nil, ModFlag.Attack) }, ["has no sockets"] = { }, @@ -494,6 +496,7 @@ local specialModList = { ["you have no life regeneration"] = { flag("NoLifeRegen") }, ["cannot block attacks"] = { flag("CannotBlockAttacks") }, ["projectiles pierce while phasing"] = { mod("PierceChance", "BASE", 100, { type = "Condition", var = "Phasing" }) }, + ["increases and reductions to minion damage also affects you"] = { flag("MinionDamageAppliesToPlayer") }, } local keystoneList = { -- List of keystones that can be found on uniques diff --git a/README.md b/README.md index 7c9ef3fa..af534dba 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,10 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases) ![ss3](https://cloud.githubusercontent.com/assets/19189971/18089780/f0ff234a-6f04-11e6-8c88-6193fe59a5c4.png) ## Changelog +### 1.2.11 - 2016/11/22 + * Added support for the Minion Damage-related modifiers on The Scourge + * Fixed error when hovering over Kongming's Stratagem + ### 1.2.10 - 2016/11/21 * Added support for Unholy Might; you can enable it in the Configuration tab in the Combat section * Added a Sort button to the "All items" list in the Items tab diff --git a/changelog.txt b/changelog.txt index 4053dd1b..a008f95f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,6 @@ +VERSION[1.2.11][2016/11/22] + * Added support for the Minion Damage-related modifiers on The Scourge + * Fixed error when hovering over Kongming's Stratagem VERSION[1.2.10][2016/11/21] * Added support for Unholy Might; you can enable it in the Configuration tab in the Combat section * Added a Sort button to the "All items" list in the Items tab diff --git a/manifest.xml b/manifest.xml index 695a9be2..fb335361 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,20 +1,20 @@ - + - + - + @@ -41,15 +41,15 @@ - + - + - +