From 1184f1328da0e05f59373e47aedde98dd8abd042 Mon Sep 17 00:00:00 2001 From: Openarl Date: Thu, 2 Mar 2017 21:33:59 +1000 Subject: [PATCH] Release 1.3.15 - Added gem tag search mode to gem list control - Updated Vaal Discipline to remove bonus ES - Fixed node location displays - Fixed "invalid pattern" error in search fields --- Classes/CalcBreakdownControl.lua | 1 + Classes/GemSelectControl.lua | 17 +++++++++++++++-- Classes/ItemDBControl.lua | 6 +++--- Classes/ItemSlotControl.lua | 3 ++- Classes/PassiveTreeView.lua | 14 ++++++-------- Data/Gems/act_int.lua | 2 +- README.md | 6 ++++++ changelog.txt | 5 +++++ manifest.xml | 16 ++++++++-------- 9 files changed, 47 insertions(+), 23 deletions(-) diff --git a/Classes/CalcBreakdownControl.lua b/Classes/CalcBreakdownControl.lua index 30cfed54..e186625f 100644 --- a/Classes/CalcBreakdownControl.lua +++ b/Classes/CalcBreakdownControl.lua @@ -468,6 +468,7 @@ function CalcBreakdownClass:DrawBreakdownTable(viewPort, x, y, section) viewer.zoomY = -ttNode.y / 11.85 SetViewport(viewerX + 2, viewerY + 2, 300, 300) viewer:Draw(self.calcsTab.build, { x = 0, y = 0, width = 300, height = 300 }, { }) + SetDrawLayer(nil, 30) SetDrawColor(1, 0, 0) DrawImage(viewer.highlightRing, 135, 135, 30, 30) SetViewport() diff --git a/Classes/GemSelectControl.lua b/Classes/GemSelectControl.lua index f3498a7b..485e32a0 100644 --- a/Classes/GemSelectControl.lua +++ b/Classes/GemSelectControl.lua @@ -13,7 +13,7 @@ local m_max = math.max local m_floor = math.floor local GemSelectClass = common.NewClass("GemSelectControl", "EditControl", function(self, anchor, x, y, width, height, skillsTab, index, changeFunc) - self.EditControl(anchor, x, y, width, height) + self.EditControl(anchor, x, y, width, height, nil, nil, "^ %a'") self.controls.scrollBar = common.New("ScrollBarControl", {"TOPRIGHT",self,"TOPRIGHT"}, -1, 0, 18, 0, (height - 4) * 4) self.controls.scrollBar.y = function() local width, height = self:GetSize() @@ -29,7 +29,6 @@ local GemSelectClass = common.NewClass("GemSelectControl", "EditControl", functi self.index = index self.gemChangeFunc = changeFunc self.list = { } - self.filter = "^ %a'" self.changeFunc = function() self.dropped = true self.selIndex = 0 @@ -64,6 +63,20 @@ function GemSelectClass:BuildList(buf) t_insert(self.list, name) end end + local tagName = self.searchStr:match("^%s*(%a+)%s*$") + if tagName then + local matchList = { } + for name, data in pairs(data.gems) do + if not data.hidden and not added[name] and data[tagName:lower()] == true then + t_insert(matchList, name) + added[name] = true + end + end + t_sort(matchList) + for _, name in ipairs(matchList) do + t_insert(self.list, name) + end + end else for name, data in pairs(data.gems) do if not data.hidden then diff --git a/Classes/ItemDBControl.lua b/Classes/ItemDBControl.lua index c0881358..bdaff6e7 100644 --- a/Classes/ItemDBControl.lua +++ b/Classes/ItemDBControl.lua @@ -92,13 +92,13 @@ function ItemDBClass:DoesItemMatchFilters(item) local found = false local mode = self.controls.searchMode.sel if mode == 1 or mode == 2 then - if item.name:lower():match(searchStr) then + if item.name:lower():find(searchStr, 1, true) then found = true end end if mode == 1 or mode == 3 then for _, line in pairs(item.modLines) do - if line.line:lower():match(searchStr) then + if line.line:lower():find(searchStr, 1, true) then found = true break end @@ -106,7 +106,7 @@ function ItemDBClass:DoesItemMatchFilters(item) if not found then searchStr = searchStr:gsub(" ","") for i, mod in pairs(item.baseModList) do - if mod.name:lower():match(searchStr) then + if mod.name:lower():find(searchStr, 1, true) then found = true break end diff --git a/Classes/ItemSlotControl.lua b/Classes/ItemSlotControl.lua index 2a4106d2..44cd8308 100644 --- a/Classes/ItemSlotControl.lua +++ b/Classes/ItemSlotControl.lua @@ -92,7 +92,7 @@ function ItemSlotClass:Draw(viewPort) end end if self.nodeId and (self.dropped or (self:IsMouseOver() and (highlight or not self.itemsTab.selControl))) then - SetDrawLayer(nil, 10) + SetDrawLayer(nil, 15) local viewerX = x + width + 5 local viewerY = m_min(y, viewPort.y + viewPort.height - 304) SetDrawColor(1, 1, 1) @@ -104,6 +104,7 @@ function ItemSlotClass:Draw(viewPort) viewer.zoomY = -node.y / 11.85 SetViewport(viewerX + 2, viewerY + 2, 300, 300) viewer:Draw(self.itemsTab.build, { x = 0, y = 0, width = 300, height = 300 }, { }) + SetDrawLayer(nil, 30) SetDrawColor(1, 1, 1, 0.2) DrawImage(nil, 149, 0, 2, 300) DrawImage(nil, 0, 149, 300, 2) diff --git a/Classes/PassiveTreeView.lua b/Classes/PassiveTreeView.lua index 8c95844c..5335c64c 100644 --- a/Classes/PassiveTreeView.lua +++ b/Classes/PassiveTreeView.lua @@ -280,7 +280,7 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents) end -- Draw the connecting lines between nodes - SetDrawLayer(nil, 1) + SetDrawLayer(nil, 20) for _, connector in pairs(tree.connectors) do local node1, node2 = spec.nodes[connector.nodeId1], spec.nodes[connector.nodeId2] @@ -321,14 +321,14 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents) for nodeId, node in pairs(spec.nodes) do -- Determine the base and overlay images for this node based on type and state local base, overlay - SetDrawLayer(nil, 1) + SetDrawLayer(nil, 25) if node.type == "classStart" then overlay = node.alloc and node.startArt or "PSStartNodeBackgroundInactive" elseif node.type == "ascendClassStart" then overlay = "PassiveSkillScreenAscendancyMiddle" elseif node.type == "mastery" then -- This is the icon that appears in the center of many groups - SetDrawLayer(nil, 0) + SetDrawLayer(nil, 15) base = node.sprites.mastery else local state @@ -422,24 +422,22 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents) end if #self.searchStr > 0 and self:DoesNodeMatchSearchStr(node) then -- Node matches the search string, show the highlight circle - SetDrawLayer(nil, 5) + SetDrawLayer(nil, 30) SetDrawColor(1, 0, 0) local size = 175 * scale / self.zoom ^ 0.4 DrawImage(self.highlightRing, scrX - size, scrY - size, size * 2, size * 2) - SetDrawLayer(nil, 0) end if node == hoverNode and (node.type ~= "socket" or not IsKeyDown("SHIFT")) then -- Draw tooltip - SetDrawLayer(nil, 10) + SetDrawLayer(nil, 100) local size = m_floor(hoverNode.size * scale) self:AddNodeTooltip(hoverNode, build) main:DrawTooltip(m_floor(scrX - size), m_floor(scrY - size), size * 2, size * 2, viewPort) - SetDrawLayer(nil, 0) end end -- Draw ring overlays for jewel sockets - SetDrawLayer(nil, 1) + SetDrawLayer(nil, 25) for nodeId, slot in pairs(build.itemsTab.sockets) do local node = spec.nodes[nodeId] if node == hoverNode then diff --git a/Data/Gems/act_int.lua b/Data/Gems/act_int.lua index aea916e1..22113f32 100644 --- a/Data/Gems/act_int.lua +++ b/Data/Gems/act_int.lua @@ -993,7 +993,7 @@ gems["Vaal Discipline"] = { mod("AreaOfEffect", "INC", 1), --"base_skill_area_of_effect_+%" = 1 }, levelMods = { - [1] = mod("EnergyShield", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Aura" }), --"base_maximum_energy_shield" + nil, --"base_maximum_energy_shield" [2] = mod("AreaOfEffect", "INC", nil), --"base_skill_area_of_effect_+%" }, levels = { diff --git a/README.md b/README.md index 86ad534a..f85e2b90 100644 --- a/README.md +++ b/README.md @@ -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.15 - 2017/03/02 + * The skill gem search field can now search by gem tag (e.g 'support' or 'aura') + * Removed the bonus Energy Shield from Vaal Discipline + * Node location displays in the Items and Calcs tabs will now render correctly + * Fixed error that resulted from entering certain characters into search fields + ### 1.3.14 - 2017/03/02 This update implements the AoE changes for 2.6: * Changed the Area Radius Modifier output in the Calcs tab to Area of Effect Modifier diff --git a/changelog.txt b/changelog.txt index 42da0f72..d7372939 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,8 @@ +VERSION[1.3.15][2017/03/02] + * The skill gem search field can now search by gem tag (e.g 'support' or 'aura') + * Removed the bonus Energy Shield from Vaal Discipline + * Node location displays in the Items and Calcs tabs will now render correctly + * Fixed error that resulted from entering certain characters into search fields VERSION[1.3.14][2017/03/02] This update implements the AoE changes for 2.6: * Changed the Area Radius Modifier output in the Calcs tab to Area of Effect Modifier diff --git a/manifest.xml b/manifest.xml index 67ca1231..656f072c 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,16 +1,16 @@ - + - + - + @@ -19,11 +19,11 @@ - + - + - + @@ -32,7 +32,7 @@ - + @@ -59,7 +59,7 @@ - +