diff --git a/Classes/PassiveSpec.lua b/Classes/PassiveSpec.lua index f1b9e826..260b9457 100644 --- a/Classes/PassiveSpec.lua +++ b/Classes/PassiveSpec.lua @@ -315,7 +315,7 @@ end -- Count the number of allocated nodes and allocated ascendancy nodes function PassiveSpecClass:CountAllocNodes() - local used, ascUsed = 0, 0 + local used, ascUsed, sockets = 0, 0, 0 for _, node in pairs(self.allocNodes) do if node.type ~= "classStart" and node.type ~= "ascendClassStart" then if node.ascendancyName then @@ -325,9 +325,12 @@ function PassiveSpecClass:CountAllocNodes() else used = used + 1 end + if node.type == "socket" then + sockets = sockets + 1 + end end end - return used, ascUsed + return used, ascUsed, sockets end -- Perform a breadth-first search of the tree, starting from this node, and determine if it is the closest node to any other nodes diff --git a/Classes/TreeTab.lua b/Classes/TreeTab.lua index 979f19fe..41fb3691 100644 --- a/Classes/TreeTab.lua +++ b/Classes/TreeTab.lua @@ -33,10 +33,13 @@ local TreeTabClass = common.NewClass("TreeTab", "ControlHost", function(self, bu if mode ~= "OUT" then local spec = self.specList[sel] if spec then - local used = spec:CountAllocNodes() + local used, ascUsed, sockets = spec:CountAllocNodes() main:AddTooltipLine(16, "Class: "..spec.curClassName) main:AddTooltipLine(16, "Ascendancy: "..spec.curAscendClassName) main:AddTooltipLine(16, "Points used: "..used) + if sockets > 0 then + main:AddTooltipLine(16, "Jewel sockets: "..sockets) + end if sel ~= self.activeSpec then local calcFunc, calcBase = self.build.calcsTab:GetMiscCalculator() if calcFunc then diff --git a/Data/Gems/act_int.lua b/Data/Gems/act_int.lua index 3b402910..a45809be 100644 --- a/Data/Gems/act_int.lua +++ b/Data/Gems/act_int.lua @@ -1600,7 +1600,7 @@ gems["Flameblast"] = { --"is_area_damage" = ? skill("showAverage", true), --"base_skill_show_average_damage_instead_of_dps" = ? mod("Damage", "MORE", 990, 0, 0, { type = "SkillPart", skillPart = 2 }), - mod("Speed", "MORE", -90, 0, 0, { type = "SkillPart", skillPart = 2 }), + skill("dpsMultiplier", 0.1, { type = "SkillPart", skillPart = 2 }), skill("showAverage", false), }, qualityMods = { diff --git a/Modules/Build.lua b/Modules/Build.lua index 0a284e53..a66f8972 100644 --- a/Modules/Build.lua +++ b/Modules/Build.lua @@ -621,11 +621,16 @@ function buildMode:AddStatComparesToTooltip(baseOutput, compareOutput, header, n end local color = ((statData.lowerIsBetter and diff < 0) or (not statData.lowerIsBetter and diff > 0)) and data.colorCodes.POSITIVE or data.colorCodes.NEGATIVE local line = string.format("%s%+"..statData.fmt.." %s", color, diff * ((statData.pc or statData.mod) and 100 or 1), statData.label) + local pcPerPt = "" if statData.compPercent and (baseOutput[statData.stat] or 0) ~= 0 and (compareOutput[statData.stat] or 0) ~= 0 then - line = line .. string.format(" (%+.1f%%)", (compareOutput[statData.stat] or 0) / (baseOutput[statData.stat] or 0) * 100 - 100) + local pc = (compareOutput[statData.stat] or 0) / (baseOutput[statData.stat] or 0) * 100 - 100 + line = line .. string.format(" (%+.1f%%)", pc) + if nodeCount then + pcPerPt = string.format(" (%+.1f%%)", pc / nodeCount) + end end if nodeCount then - line = line .. string.format(" ^8(%+"..statData.fmt.." per point)", diff * ((statData.pc or statData.mod) and 100 or 1) / nodeCount) + line = line .. string.format(" ^8[%+"..statData.fmt.."%s per point]", diff * ((statData.pc or statData.mod) and 100 or 1) / nodeCount, pcPerPt) end main:AddTooltipLine(14, line) count = count + 1 @@ -658,6 +663,12 @@ function buildMode:LoadDB(xmlText, fileName) end end end + + for _, saver in pairs(self.savers) do + if saver.PostLoad then + saver:PostLoad() + end + end end function buildMode:LoadDBFile() diff --git a/Modules/Calcs.lua b/Modules/Calcs.lua index 208007b6..72100e51 100644 --- a/Modules/Calcs.lua +++ b/Modules/Calcs.lua @@ -235,13 +235,15 @@ local function buildActiveSkillModList(env, activeSkill) skillFlags.disable = true end if skillTypes[SkillType.DualWield] or skillTypes[SkillType.CanDualWield] then - local weapon2Flags = getWeaponFlags(env.weaponData2, weaponTypes) - if weapon2Flags then - activeSkill.weapon2Flags = weapon2Flags - skillFlags.weapon2Attack = true - elseif skillTypes[SkillType.DualWield] or not skillFlags.weapon1Attack then - -- Skill requires a compatible off hand weapon - skillFlags.disable = true + if not skillTypes[SkillType.MainHandOnly] then + local weapon2Flags = getWeaponFlags(env.weaponData2, weaponTypes) + if weapon2Flags then + activeSkill.weapon2Flags = weapon2Flags + skillFlags.weapon2Attack = true + elseif skillTypes[SkillType.DualWield] or not skillFlags.weapon1Attack then + -- Skill requires a compatible off hand weapon + skillFlags.disable = true + end end elseif env.weaponData2.type then -- Skill cannot be used while dual wielding @@ -2326,7 +2328,7 @@ local function performCalcs(env) } end if skillData.dpsMultiplier then - t_insert(breakdown.TotalDPS, s_format("x %d ^8(DPS multiplier for this skill)", skillData.dpsMultiplier)) + t_insert(breakdown.TotalDPS, s_format("x %g ^8(DPS multiplier for this skill)", skillData.dpsMultiplier)) end t_insert(breakdown.TotalDPS, s_format("= %.1f", output.TotalDPS)) end diff --git a/README.md b/README.md index a10569f6..ff745ce3 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,6 @@ Welcome to Path of Building, an offline build planner for Path of Exile! * Supports most skills, support gems, passives and item modifiers * Throughout the program, supported modifiers will show in blue and unsupported ones in red * Most minion skill are unsupported at present (except for golems, which can provide buffs to you) - * No support for flasks yet * Passive skill tree planner: * Support for jewels including most radius/conversion jewels * Features alternate path tracing (mouse over a sequence of nodes while holding shift, then click to allocate them all) @@ -48,7 +47,15 @@ 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.0 - 2017/02/15 +### 1.3.1 - 2017/02/18 + * Added socket count to the tooltips in the passive tree selection dropdown menu + * Added percentage values to the per-point stat differences for passive nodes + * Flameblast's 10 Stages skill part now uses a x0.1 DPS multiplier instead of a 90% less Cast Speed modifier + * The cast rate will now reflect the time taken to build each stage, rather than the total time to build 10 stages + * This change will prevent an issue where adding increased cast speed would have no effect under some conditions + * Skills that only use the main-hand when dual wielding will now be handled correctly + +### 1.3.0 - 2017/02/16 This update adds support for Flasks: * Flask slots have been added to the Items tab. Checkboxes next to each slot allow the flasks to be individually activated. * All flask-related modifiers are now supported diff --git a/changelog.txt b/changelog.txt index 7abf088d..b686f4ff 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,11 @@ -VERSION[1.3.0][2017/02/15] +VERSION[1.3.1][2017/02/18] + * Added socket count to the tooltips in the passive tree selection dropdown menu + * Added percentage values to the per-point stat differences for passive nodes + * Flameblast's 10 Stages skill part now uses a x0.1 DPS multiplier instead of a 90% less Cast Speed modifier + * The cast rate will now reflect the time taken to build each stage, rather than the total time to build 10 stages + * This change will prevent an issue where adding increased cast speed would have no effect under some conditions + * Skills that only use the main-hand when dual wielding will now be handled correctly +VERSION[1.3.0][2017/02/16] This update adds support for Flasks: * Flask slots have been added to the Items tab. Checkboxes next to each slot allow the flasks to be individually activated. * All flask-related modifiers are now supported diff --git a/manifest.xml b/manifest.xml index ea393871..a1b9d296 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,13 +1,13 @@ - + - + @@ -29,7 +29,7 @@ - + @@ -40,11 +40,11 @@ - + - + - + @@ -59,7 +59,7 @@ - +