diff --git a/Classes/BuildListControl.lua b/Classes/BuildListControl.lua index d6138bfa..d72f7a66 100644 --- a/Classes/BuildListControl.lua +++ b/Classes/BuildListControl.lua @@ -23,7 +23,7 @@ local BuildListClass = common.NewClass("BuildList", "Control", "ControlHost", fu self.controls.scrollBar.locked = function() return self.listMode.edit end - self.controls.nameEdit = common.New("EditControl", {"TOPLEFT",self,"TOPLEFT"}, 0, 0, 0, 20, nil, nil, "\\/:%*%?\"<>|", 50) + self.controls.nameEdit = common.New("EditControl", {"TOPLEFT",self,"TOPLEFT"}, 0, 0, 0, 20, nil, nil, "\\/:%*%?\"<>|%c", 50) self.controls.nameEdit.shown = function() return self.listMode.edit end diff --git a/Classes/ImportTab.lua b/Classes/ImportTab.lua index c9e3f489..a622507b 100644 --- a/Classes/ImportTab.lua +++ b/Classes/ImportTab.lua @@ -150,7 +150,7 @@ You can get this from your web browser's cookies while logged into the Path of E self.controls.importCodeMode.enabled = function() return self.importCodeState == "VALID" and self.build.dbFileName end - self.controls.importCodeBuildName = common.New("EditControl", {"LEFT",self.controls.importCodeMode,"RIGHT"}, 4, 0, 400, 20, "", "New build name", "\\/:%*%?\"<>|", 50) + self.controls.importCodeBuildName = common.New("EditControl", {"LEFT",self.controls.importCodeMode,"RIGHT"}, 4, 0, 400, 20, "", "New build name", "\\/:%*%?\"<>|%c", 50) self.controls.importCodeBuildName.enabled = function() return self.importCodeState == "VALID" and self.controls.importCodeMode.sel == 2 end @@ -388,7 +388,7 @@ function ImportTabClass:DownloadItems() end, sessionID and "POESESSID="..sessionID) end -local rarityMap = { [0] = "NORMAL", "MAGIC", "RARE", "UNIQUE" } +local rarityMap = { [0] = "NORMAL", "MAGIC", "RARE", "UNIQUE", [9] = "RELIC" } local colorMap = { S = "R", D = "G", I = "B", G = "W" } local slotMap = { ["Weapon"] = "Weapon 1", ["Offhand"] = "Weapon 2", ["Helm"] = "Helmet", ["BodyArmour"] = "Body Armour", ["Gloves"] = "Gloves", ["Boots"] = "Boots", ["Amulet"] = "Amulet", ["Ring"] = "Ring 1", ["Ring2"] = "Ring 2", ["Belt"] = "Belt" } diff --git a/Classes/ItemsTab.lua b/Classes/ItemsTab.lua index b4cdb436..d22d5e5d 100644 --- a/Classes/ItemsTab.lua +++ b/Classes/ItemsTab.lua @@ -417,7 +417,7 @@ function ItemsTabClass:EditDisplayItemText() end end popup = main:OpenPopup(500, 500, self.displayItem and "Edit Item Text" or "Create Custom Item from Text", { - rarity = common.New("DropDownControl", nil, -190, 10, 100, 18, { {val = "NORMAL",label=data.colorCodes.NORMAL.."Normal"},{val="MAGIC",label=data.colorCodes.MAGIC.."Magic"},{val="RARE",label=data.colorCodes.RARE.."Rare"},{val="UNIQUE",label=data.colorCodes.UNIQUE.."Unique"} }), + rarity = common.New("DropDownControl", nil, -190, 10, 100, 18, { {val="NORMAL",label=data.colorCodes.NORMAL.."Normal"},{val="MAGIC",label=data.colorCodes.MAGIC.."Magic"},{val="RARE",label=data.colorCodes.RARE.."Rare"},{val="UNIQUE",label=data.colorCodes.UNIQUE.."Unique"},{val="RELIC",label=data.colorCodes.RELIC.."Relic"} }), edit = common.New("EditControl", nil, 0, 40, 480, 420, "", nil, "^%C\t\n", nil, nil, 14), save = common.New("ButtonControl", nil, -45, 470, 80, 20, self.displayItem and "Save" or "Create", function() local id = self.displayItem and self.displayItem.id diff --git a/Classes/ModDB.lua b/Classes/ModDB.lua index 477c6ade..2c70dddb 100644 --- a/Classes/ModDB.lua +++ b/Classes/ModDB.lua @@ -69,7 +69,7 @@ function ModDBClass:ScaleAddList(modList, scale) for i = 1, #modList do local scaledMod = copyTable(modList[i]) if type(scaledMod.value) == "number" then - scaledMod.value = (m_floor(scaledMod.value) == scaledMod.value) and m_floor(scaledMod.value * scale) or scaledMod.value * scale + scaledMod.value = (m_floor(scaledMod.value) == scaledMod.value) and m_floor(scaledMod.value * scale + 0.5) or scaledMod.value * scale end self:AddMod(scaledMod) end diff --git a/Classes/ModList.lua b/Classes/ModList.lua index 9c2d50e9..f00aff57 100644 --- a/Classes/ModList.lua +++ b/Classes/ModList.lua @@ -39,12 +39,16 @@ function ModListClass:CopyList(modList) end function ModListClass:ScaleAddList(modList, scale) - for i = 1, #modList do - local scaledMod = copyTable(modList[i]) - if type(scaledMod.value) == "number" then - scaledMod.value = (m_floor(scaledMod.value) == scaledMod.value) and m_floor(scaledMod.value * scale) or scaledMod.value * scale + if scale == 1 then + self:AddList(modList) + else + for i = 1, #modList do + local scaledMod = copyTable(modList[i]) + if type(scaledMod.value) == "number" then + scaledMod.value = (m_floor(scaledMod.value) == scaledMod.value) and m_floor(scaledMod.value * scale + 0.5) or scaledMod.value * scale + end + self:AddMod(scaledMod) end - self:AddMod(scaledMod) end end diff --git a/Classes/PassiveTree.lua b/Classes/PassiveTree.lua index efe158be..0714f09d 100644 --- a/Classes/PassiveTree.lua +++ b/Classes/PassiveTree.lua @@ -313,7 +313,7 @@ local PassiveTreeClass = common.NewClass("PassiveTree", function(self) local other = nodeMap[otherId] t_insert(node.linkedId, otherId) t_insert(other.linkedId, node.id) - if node.type ~= "classStart" and other.type ~= "classStart" and node.ascendancyName == other.ascendancyName then + if node.type ~= "classStart" and other.type ~= "classStart" and node.type ~= "mastery" and other.type ~= "mastery" and node.ascendancyName == other.ascendancyName then t_insert(self.connectors, self:BuildConnector(node, other)) end end diff --git a/Data/Bases/mace.lua b/Data/Bases/mace.lua index f73f1792..247b261e 100644 --- a/Data/Bases/mace.lua +++ b/Data/Bases/mace.lua @@ -219,7 +219,7 @@ itemBases["Grinning Fetish"] = { itemBases["Horned Sceptre"] = { type = "One Handed Mace", subType = "Sceptre", - implicit = "Damage Penetrates 1% Elemental Resistances", + implicit = "Damage Penetrates 4% Elemental Resistances", weapon = { PhysicalMin = 27, PhysicalMax = 50, critChanceBase = 6, attackRateBase = 1.3, }, req = { level = 36, str = 66, int = 66, }, } @@ -268,7 +268,7 @@ itemBases["Abyssal Sceptre"] = { itemBases["Stag Sceptre"] = { type = "One Handed Mace", subType = "Sceptre", - implicit = "Damage Penetrates 1% Elemental Resistances", + implicit = "Damage Penetrates 4% Elemental Resistances", weapon = { PhysicalMin = 39, PhysicalMax = 72, critChanceBase = 6, attackRateBase = 1.3, }, req = { level = 55, str = 98, int = 98, }, } @@ -324,7 +324,7 @@ itemBases["Void Sceptre"] = { itemBases["Sambar Sceptre"] = { type = "One Handed Mace", subType = "Sceptre", - implicit = "Damage Penetrates 2% Elemental Resistances", + implicit = "Damage Penetrates 6% Elemental Resistances", weapon = { PhysicalMin = 42, PhysicalMax = 78, critChanceBase = 6, attackRateBase = 1.3, }, req = { level = 70, str = 121, int = 112, }, } diff --git a/Data/Gems/act_dex.lua b/Data/Gems/act_dex.lua index 2ffcb57b..ef443578 100644 --- a/Data/Gems/act_dex.lua +++ b/Data/Gems/act_dex.lua @@ -2461,7 +2461,7 @@ gems["Lacerate"] = { skill("manaCost", 8), mod("Speed", "MORE", -25, ModFlag.Attack), --"active_skill_attack_speed_+%_final" = -25 --"is_area_damage" = ? - skill("doubleHitsWhenDualWielding", true, { type = "SkillPart", skillPart = 2 }), + skill("dpsMultiplier", 2, { type = "SkillPart", skillPart = 2 }), }, qualityMods = { mod("AreaOfEffect", "INC", 0.5), --"base_skill_area_of_effect_+%" = 0.5 diff --git a/Data/Gems/other.lua b/Data/Gems/other.lua index 251d73ea..65ac5a56 100644 --- a/Data/Gems/other.lua +++ b/Data/Gems/other.lua @@ -172,6 +172,7 @@ gems["Create Lesser Shrine"] = { color = 4, baseFlags = { spell = true, + duration = true, }, skillTypes = { [2] = true, [36] = true, [42] = true, [61] = true, [12] = true, }, baseMods = { diff --git a/Data/Uniques/shield.lua b/Data/Uniques/shield.lua index 04bf4b86..00b70eca 100644 --- a/Data/Uniques/shield.lua +++ b/Data/Uniques/shield.lua @@ -469,6 +469,7 @@ Variant: Pre 2.0.0 Variant: Pre 2.6.0 Variant: Current Requires Level 7 +Implicits: 2 {variant:1}+8% to all Elemental Resistances {variant:2,3,4}+4% to all Elemental Resistances (80-120)% increased Armour and Energy Shield diff --git a/Modules/Build.lua b/Modules/Build.lua index 2791b664..729393c8 100644 --- a/Modules/Build.lua +++ b/Modules/Build.lua @@ -572,7 +572,7 @@ function buildMode:OpenSaveAsPopup() local popup popup = main:OpenPopup(370, 100, self.dbFileName and "Save As" or "Save", { common.New("LabelControl", nil, 0, 20, 0, 16, "^7Enter new build name:"), - edit = common.New("EditControl", nil, 0, 40, 350, 20, self.dbFileName and self.buildName, nil, "\\/:%*%?\"<>|", 50, function(buf) + edit = common.New("EditControl", nil, 0, 40, 350, 20, self.dbFileName and self.buildName, nil, "\\/:%*%?\"<>|%c", 50, function(buf) newFileName = main.buildPath..buf..".xml" newBuildName = buf popup.controls.save.enabled = false diff --git a/Modules/Calcs.lua b/Modules/Calcs.lua index 29d52ce5..29d51754 100644 --- a/Modules/Calcs.lua +++ b/Modules/Calcs.lua @@ -761,7 +761,7 @@ local function initEnv(build, mode, override) if item.type ~= "Jewel" and item.type ~= "Flask" then -- Update item counts local key - if item.rarity == "UNIQUE" then + if item.rarity == "UNIQUE" or item.rarity == "RELIC" then key = "UniqueItem" elseif item.rarity == "RARE" then key = "RareItem" @@ -2586,7 +2586,7 @@ local function performCalcs(env) output.FreezeChanceOnCrit = output.FreezeChanceOnHit end end - if skillFlags.attack and modDB:Sum("FLAG", cfg, "ArrowsThatPierceCauseBleeding") then + if skillFlags.attack and skillFlags.projectile and modDB:Sum("FLAG", cfg, "ArrowsThatPierceCauseBleeding") then output.BleedChanceOnHit = 100 - (1 - output.BleedChanceOnHit / 100) * (1 - globalOutput.PierceChance / 100) * 100 output.BleedChanceOnCrit = 100 - (1 - output.BleedChanceOnCrit / 100) * (1 - globalOutput.PierceChance / 100) * 100 end diff --git a/Modules/Data.lua b/Modules/Data.lua index e774a32b..62649eff 100644 --- a/Modules/Data.lua +++ b/Modules/Data.lua @@ -170,6 +170,7 @@ data.colorCodes = { MAGIC = "^x8888FF", RARE = "^xFFFF77", UNIQUE = "^xAF6025", + RELIC = "^x60C060", CRAFTED = "^xB8DAF1", UNSUPPORTED = "^xF05050", --FIRE = "^x960000", diff --git a/Modules/ItemTools.lua b/Modules/ItemTools.lua index 96039ab5..ef4c51fe 100644 --- a/Modules/ItemTools.lua +++ b/Modules/ItemTools.lua @@ -73,6 +73,15 @@ function itemLib.parseItemRaw(item) if data.colorCodes[rarity:upper()] then item.rarity = rarity:upper() end + if item.rarity == "NORMAL" then + -- Hack for relics + for _, line in ipairs(item.rawLines) do + if line == "Relic Unique" then + item.rarity = "RELIC" + break + end + end + end l = l + 1 end end diff --git a/README.md b/README.md index 30264dce..d5e12854 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,13 @@ 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.19 - 2017/03/09 + * Changed the rounding method for flask/aura/buff/curse effect to reflect the change in 2.6 + * Relics can now be imported, and copied from in-game + * Fixed behaviour of the "Both slashes" skill part of Lacerate when only using one weapon + * Corrected the implicits of Maraketh sceptres + * Various minor tweaks and fixes + ### 1.3.18 - 2017/03/05 * Added support for threshold jewels: * Most of the relevant modifiers from threshold jewels should now be supported diff --git a/changelog.txt b/changelog.txt index 49c4b770..d71ea752 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,9 @@ +VERSION[1.3.19][2017/03/09] + * Changed the rounding method for flask/aura/buff/curse effect to reflect the change in 2.6 + * Relics can now be imported, and copied from in-game + * Fixed behaviour of the "Both slashes" skill part of Lacerate when only using one weapon + * Corrected the implicits of Maraketh sceptres + * Various minor tweaks and fixes VERSION[1.3.18][2017/03/05] * Added support for threshold jewels: * Most of the relevant modifiers from threshold jewels should now be supported diff --git a/manifest.xml b/manifest.xml index a8c86069..0b96ea9b 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,14 +1,14 @@ - + - - + + @@ -20,18 +20,18 @@ - + - + - - + + - + @@ -42,13 +42,13 @@ - + - + - - + + @@ -58,10 +58,10 @@ - + - + @@ -77,7 +77,7 @@ - + @@ -99,7 +99,7 @@ - +