Release 1.3.7

- Added new boss mode options
- Fixed various interactions with Witchfire Brew
This commit is contained in:
Openarl
2017-02-22 03:21:19 +10:00
parent aa192f7bcd
commit abd3800b50
7 changed files with 64 additions and 26 deletions

View File

@@ -182,10 +182,19 @@ local varList = {
{ var = "conditionEnemyCoveredInAsh", type = "check", label = "Is the enemy covered in Ash?", tooltip = "This adds the following modifiers:\n20% less enemy Movement Speed\n20% increased Fire Damage Taken by enemy", apply = function(val, modList, enemyModList)
enemyModList:NewMod("FireDamageTaken", "INC", 20, "Ash")
end },
{ var = "enemyIsBoss", type = "check", label = "Is the enemy a Boss?", tooltip = "This adds the following modifiers:\n60% less Effect of your Curses\n+30% to enemy Elemental Resistances\n+15% to enemy Chaos Resistance", apply = function(val, modList, enemyModList)
enemyModList:NewMod("CurseEffect", "MORE", -60, "Boss")
enemyModList:NewMod("ElementalResist", "BASE", 30, "Boss")
enemyModList:NewMod("ChaosResist", "BASE", 15, "Boss")
{ var = "enemyIsBoss", type = "list", label = "Is the enemy a Boss?", tooltip = "Standard Boss adds the following modifiers:\n60% less Effect of your Curses\n+30% to enemy Elemental Resistances\n+15% to enemy Chaos Resistance\n\nShaper/Guardian adds the following modifiers:\n80% less Effect of your Curses\n+40% to enemy Elemental Resistances\n+25% to enemy Chaos Resistance\n50% less Duration of Bleed\n50% less Duration of Poison\n50% less Duration of Ignite", list = {{val="NONE",label="No"},{val=true,label="Standard Boss"},{val="SHAPER",label="Shaper/Guardian"}}, apply = function(val, modList, enemyModList)
if val == true then
enemyModList:NewMod("CurseEffect", "MORE", -60, "Boss")
enemyModList:NewMod("ElementalResist", "BASE", 30, "Boss")
enemyModList:NewMod("ChaosResist", "BASE", 15, "Boss")
elseif val == "SHAPER" then
enemyModList:NewMod("CurseEffect", "MORE", -80, "Boss")
enemyModList:NewMod("ElementalResist", "BASE", 40, "Boss")
enemyModList:NewMod("ChaosResist", "BASE", 25, "Boss")
enemyModList:NewMod("SelfBleedDuration", "MORE", -50, "Boss")
enemyModList:NewMod("SelfPoisonDuration", "MORE", -50, "Boss")
enemyModList:NewMod("SelfIgniteDuration", "MORE", -50, "Boss")
end
end },
{ var = "enemyPhysicalReduction", type = "number", label = "Enemy Phys. Damage Reduction:", apply = function(val, modList, enemyModList)
enemyModList:NewMod("PhysicalDamageReduction", "INC", val, "Config")
@@ -416,6 +425,10 @@ function ConfigTabClass:BuildModList()
if input[varData.var] and input[varData.var] ~= 0 then
varData.apply(input[varData.var], modList, enemyModList)
end
elseif varData.type == "list" then
if input[varData.var] then
varData.apply(input[varData.var], modList, enemyModList)
end
end
end
end

View File

@@ -400,16 +400,18 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
for id, node in pairs(self.nodes) do
node.depends = wipeTable(node.depends)
node.dependsOnIntuitiveLeap = false
for nodeId, itemId in pairs(self.jewels) do
if self.allocNodes[nodeId] and self.nodes[nodeId].nodesInRadius[1][node.id] then
if itemId ~= 0 and self.build.itemsTab.list[itemId] and self.build.itemsTab.list[itemId].jewelData and self.build.itemsTab.list[itemId].jewelData.intuitiveLeap then
-- This node depends on Intuitive Leap
-- This flag:
-- 1. Prevents generation of paths from this node
-- 2. Prevents this node from being deallocted via dependancy
-- 3. Prevents allocation of path nodes when this node is being allocated
node.dependsOnIntuitiveLeap = true
break
if node.type ~= "classStart" then
for nodeId, itemId in pairs(self.jewels) do
if self.allocNodes[nodeId] and self.nodes[nodeId].nodesInRadius[1][node.id] then
if itemId ~= 0 and self.build.itemsTab.list[itemId] and self.build.itemsTab.list[itemId].jewelData and self.build.itemsTab.list[itemId].jewelData.intuitiveLeap then
-- This node depends on Intuitive Leap
-- This flag:
-- 1. Prevents generation of paths from this node
-- 2. Prevents this node from being deallocted via dependancy
-- 3. Prevents allocation of path nodes when this node is being allocated
node.dependsOnIntuitiveLeap = true
break
end
end
end
end

View File

@@ -414,7 +414,11 @@ return {
{ label = "Total More", { format = "{0:mod:1}%", { modName = { "Damage", "PhysicalDamage" }, modType = "MORE", cfg = "bleed" }, }, },
{ label = "Effective DPS Mod", flag = "effective", { format = "x {3:output:BleedEffMult}", { breakdown = "BleedEffMult" }, { label = "Enemy modifiers", modName = { "DamageTaken", "DotTaken", "PhysicalDamageTaken", "PhysicalDamageReduction" }, enemy = true }, }, },
{ label = "Bleed DPS", { format = "{1:output:BleedDPS}", { breakdown = "BleedDPS" }, { breakdown = "MainHand.BleedDPS" }, { breakdown = "OffHand.BleedDPS" }, }, },
{ label = "Bleed Duration", { format = "{2:output:BleedDuration}s", { breakdown = "BleedDuration" }, { modName = "Duration", cfg = "bleed" }, }, },
{ label = "Bleed Duration", { format = "{2:output:BleedDuration}s",
{ breakdown = "BleedDuration" },
{ label = "Player modifiers", modName = "Duration", cfg = "bleed" },
{ label = "Enemy modifiers", modName = "SelfBleedDuration", enemy = true },
}, },
} },
{ 1, "Poison", 1, "Poison", data.colorCodes.OFFENCE, {
extra = "{0:output:PoisonChance}% {1:output:PoisonDPS} {2:output:PoisonDuration}s",
@@ -440,7 +444,8 @@ return {
}, },
{ label = "Poison Duration", { format = "{2:output:PoisonDuration}s",
{ breakdown = "PoisonDuration" },
{ modName = "Duration", cfg = "poison" },
{ label = "Player modifiers", modName = "Duration", cfg = "poison" },
{ label = "Enemy modifiers", modName = "SelfPoisonDuration", enemy = true },
}, },
{ label = "Dmg. per Poison", { format = "{1:output:PoisonDamage}",
{ breakdown = "MainHand.PoisonDamage" },

View File

@@ -1122,14 +1122,17 @@ local function performCalcs(env)
quality = 0,
data = data.gems[value.name],
})
modDB.multipliers["CurseOnEnemy"] = (modDB.multipliers["CurseOnEnemy"] or 0) + 1
local curseModList = { }
for _, mod in ipairs(modList) do
for _, tag in ipairs(mod.tagList) do
if tag.type == "GlobalEffect" and tag.effectType == "Curse" then
enemyDB:AddMod(mod)
t_insert(curseModList, mod)
break
end
end
end
enemyDB:ScaleAddList(curseModList, (1 + enemyDB:Sum("INC", nil, "CurseEffect") / 100) * enemyDB:Sum("MORE", nil, "CurseEffect"))
end
-- Check for extra modifiers to apply to aura skills
@@ -2553,7 +2556,7 @@ local function performCalcs(env)
local inc = modDB:Sum("INC", dotCfg, "Damage", "PhysicalDamage")
local more = round(modDB:Sum("MORE", dotCfg, "Damage", "PhysicalDamage"), 2)
output.BleedDPS = baseVal * (1 + inc/100) * more * effMult
local durationMod = calcMod(modDB, dotCfg, "Duration")
local durationMod = calcMod(modDB, dotCfg, "Duration") * calcMod(enemyDB, nil, "SelfBleedDuration")
globalOutput.BleedDuration = 5 * durationMod * debuffDurationMult
if breakdown then
t_insert(breakdown.BleedDPS, "x 0.1 ^8(bleed deals 10% per second)")
@@ -2611,7 +2614,7 @@ local function performCalcs(env)
else
durationBase = 2
end
local durationMod = calcMod(modDB, dotCfg, "Duration")
local durationMod = calcMod(modDB, dotCfg, "Duration") * calcMod(enemyDB, nil, "SelfPoisonDuration")
globalOutput.PoisonDuration = durationBase * durationMod * debuffDurationMult
output.PoisonDamage = output.PoisonDPS * globalOutput.PoisonDuration
if env.mode_average then
@@ -2694,7 +2697,8 @@ local function performCalcs(env)
local burnRateMod = calcMod(modDB, cfg, "IgniteBurnRate")
output.IgniteDPS = baseVal * (1 + inc/100) * more * burnRateMod * effMult
local incDur = modDB:Sum("INC", dotCfg, "EnemyIgniteDuration") + enemyDB:Sum("INC", nil, "SelfIgniteDuration")
globalOutput.IgniteDuration = 4 * (1 + incDur / 100) / burnRateMod * debuffDurationMult
local moreDur = enemyDB:Sum("MORE", nil, "SelfIgniteDuration")
globalOutput.IgniteDuration = 4 * (1 + incDur / 100) * moreDur / burnRateMod * debuffDurationMult
if skillFlags.igniteCanStack then
output.IgniteDamage = output.IgniteDPS * globalOutput.IgniteDuration
if env.mode_average then
@@ -2724,6 +2728,9 @@ local function performCalcs(env)
if incDur ~= 0 then
t_insert(globalBreakdown.IgniteDuration, s_format("x %.2f ^8(increased/reduced duration)", 1 + incDur/100))
end
if moreDur ~= 1 then
t_insert(globalBreakdown.IgniteDuration, s_format("x %.2f ^8(more/less duration)", moreDur))
end
if burnRateMod ~= 1 then
t_insert(globalBreakdown.IgniteDuration, s_format("/ %.2f ^8(rate modifier)", burnRateMod))
end

View File

@@ -47,6 +47,12 @@ 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.3.7 - 2017/02/22
* The "enemy is a Boss" option in the Configuration tab now has 2 modes: Standard Boss, and Shaper/Guardian
* Standard Boss is equivelant to the old boss setting (30/30/30/15 resists, -60% curse effect)
* Shaper/Guardian applies: 40/40/40/25 resists, -80% curse effect, 50% less Bleed/Poison/Ignite Duration
* Witchfire Brew's Vulnerability aura now correctly accounts for less curse effect on bosses, and now counts for Malediction
### 1.3.6 - 2017/02/21
* Added a skill part for Barrage that calculates the DPS from all projectiles hitting the target
* The breakdown for Crit Chance in the Calcs tab now shows how far overcapped your crit chance is

View File

@@ -1,3 +1,8 @@
VERSION[1.3.7][2017/02/22]
* The "enemy is a Boss" option in the Configuration tab now has 2 modes: Standard Boss, and Shaper/Guardian
* Standard Boss is equivelant to the old boss setting (30/30/30/15 resists, -60% curse effect)
* Shaper/Guardian applies: 40/40/40/25 resists, -80% curse effect, 50% less Bleed/Poison/Ignite Duration
* Witchfire Brew's Vulnerability aura now correctly accounts for less curse effect on bosses, and now counts for Malediction
VERSION[1.3.6][2017/02/21]
* Added a skill part for Barrage that calculates the DPS from all projectiles hitting the target
* The breakdown for Crit Chance in the Calcs tab now shows how far overcapped your crit chance is

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<PoBVersion>
<Version number="1.3.6"/>
<Version number="1.3.7"/>
<Source part="program" url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/"/>
<Source part="tree" url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/tree.zip"/>
<Source url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/runtime-win32.zip" part="runtime" platform="win32"/>
<File sha1="8a7163c306feb866be7f8d66c71b282c9f99be94" name="Launch.lua" part="program"/>
<File sha1="d8e42beeb38baabcc197d658e4c0af33419eeff3" name="UpdateCheck.lua" part="program"/>
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
<File sha1="6ec9011287848f0e6db82fdcff744f93106c3a42" name="changelog.txt" part="program"/>
<File sha1="14003f5ca8b2f46f62ad053caebf5f676ff829d9" name="changelog.txt" part="program"/>
<File sha1="231a4fe264d84294427edacbf3e29ec4b301712e" name="Classes/BuildListControl.lua" part="program"/>
<File sha1="deffd663ba726d938fcbe2870aab8a4e982587fa" name="Classes/ButtonControl.lua" part="program"/>
<File sha1="412639a254d0e275d9cc2286c5d76d3b0a9a0e8e" name="Classes/CalcBreakdownControl.lua" part="program"/>
<File sha1="e30db9887e852afc1b149e2ee34cc124bc6d7a0a" name="Classes/CalcSectionControl.lua" part="program"/>
<File sha1="0177c313de6d62cc53c7dfff20a055b26de7c1b7" name="Classes/CalcsTab.lua" part="program"/>
<File sha1="05bb6f2625f647454990605d6c2e20c786c992b4" name="Classes/CheckBoxControl.lua" part="program"/>
<File sha1="16af68d2eee83d3e2d4b3d429da119ad994e2554" name="Classes/ConfigTab.lua" part="program"/>
<File sha1="f41cf7732765c5ca12b5b2072e18cd7f07c398a8" name="Classes/ConfigTab.lua" part="program"/>
<File sha1="bbb08f183746d6ec023e2bd08fb7a89d365381da" name="Classes/Control.lua" part="program"/>
<File sha1="ae55fe1093e727872bc01cc94fa987395f944313" name="Classes/ControlHost.lua" part="program"/>
<File sha1="9f05f72260f896eea09c1a8fb28f58973ce4d3ff" name="Classes/DropDownControl.lua" part="program"/>
@@ -29,7 +29,7 @@
<File sha1="62a5a9ce8e3bc3000c9c0445e2fca60c0b2e9e8d" name="Classes/ModDB.lua" part="program"/>
<File sha1="c2cc7ad12754df03ec5401df02bce45894bbe3bd" name="Classes/ModList.lua" part="program"/>
<File sha1="9bc0d8791e7825e52070e96e7894d29fad70cf98" name="Classes/NotesTab.lua" part="program"/>
<File sha1="473fe598609787eaabf1d3320c99b8334d1e84bc" name="Classes/PassiveSpec.lua" part="program"/>
<File sha1="cf400bb69d6668bdb44f595572b84194ac728b72" name="Classes/PassiveSpec.lua" part="program"/>
<File sha1="178c1dcab43b126240b029d3d29721f0af6cd84c" name="Classes/PassiveSpecListControl.lua" part="program"/>
<File sha1="6af967e88e1675c4ae76022620cede256b09a160" name="Classes/PassiveTree.lua" part="program"/>
<File sha1="7430ab7d866c0540af4020d06730d57a195cb5ec" name="Classes/PassiveTreeView.lua" part="program"/>
@@ -44,8 +44,8 @@
<File sha1="4b7675c8b4fe71cade7dd3d70793df1ed8022d01" name="Classes/UndoHandler.lua" part="program"/>
<File sha1="06cef31ee7a133da6a9c4b8b4b9e859901c4a4a4" name="Modules/Build.lua" part="program"/>
<File sha1="8a07fe01c53b785ebb6256236e781fbaabd36c0e" name="Modules/BuildList.lua" part="program"/>
<File sha1="087da25b6dc053b434d0fdda7b331ee83eeb0acf" name="Modules/Calcs.lua" part="program"/>
<File sha1="c745848cd1fe1f399f557c100c361989d5084955" name="Modules/CalcSections.lua" part="program"/>
<File sha1="20bbdf7643e2826b8d23cda331c2f1ba1bb2ab0f" name="Modules/Calcs.lua" part="program"/>
<File sha1="4b63cbb3c691c6f6ea69b59006ebdeb1b1474430" name="Modules/CalcSections.lua" part="program"/>
<File sha1="761af85f3e1c5601fdb790356a09aefe2f5a64e3" name="Modules/Common.lua" part="program"/>
<File sha1="cc9721ab97b5cfb9c707f4523168b9df618db083" name="Modules/Data.lua" part="program"/>
<File sha1="2f9c8616dda0319ca22456e2f31e9ad8ffeb81e3" name="Modules/ItemTools.lua" part="program"/>