diff --git a/Data/Gems/act_str.lua b/Data/Gems/act_str.lua index 509ef6a7..dbe21f85 100644 --- a/Data/Gems/act_str.lua +++ b/Data/Gems/act_str.lua @@ -1733,6 +1733,7 @@ gems["Vitality"] = { } } gems["Warlord's Mark"] = { + strength = true, curse = true, spell = true, aoe = true, diff --git a/Launch.lua b/Launch.lua index cc537fc3..4c46bec7 100644 --- a/Launch.lua +++ b/Launch.lua @@ -89,8 +89,6 @@ function launch:OnFrame() end SetDrawLayer(1000) SetViewport() - local screenW, screenH = GetScreenSize() - DrawString(116, screenH - 16, "LEFT", 14, "VAR", "^8Version: "..self.versionNumber..(self.versionBranch == "dev" and " (Dev Branch)" or "")) if self.promptMsg then local r, g, b = unpack(self.promptCol) self:DrawPopup(r, g, b, "^0%s", self.promptMsg) @@ -98,6 +96,7 @@ function launch:OnFrame() self:DrawPopup(0, 0.5, 0, "^0%s", self.updateMsg) end if self.doRestart then + local screenW, screenH = GetScreenSize() SetDrawColor(0, 0, 0, 0.75) DrawImage(nil, 0, 0, screenW, screenH) SetDrawColor(1, 1, 1) @@ -182,7 +181,7 @@ function launch:OnSubFinished(...) elseif ret == "none" then self:ShowPrompt(0, 0, 0, "No update available.", function(key) return true end) else - self:ShowPrompt(0.2, 0.8, 0.2, "An update has been downloaded.\n\nClick 'Apply Update' at bottom left when you are ready.", function(key) return true end) + self:ShowPrompt(0.2, 0.8, 0.2, "An update has been downloaded.\n\nClick 'Update Ready' at bottom left when you are ready to update.", function(key) return true end) end self.updateChecking = false end diff --git a/Modules/Calcs.lua b/Modules/Calcs.lua index e230804c..0e826127 100644 --- a/Modules/Calcs.lua +++ b/Modules/Calcs.lua @@ -816,9 +816,13 @@ local function finaliseMods(env, output) end end if baseVal then - local cost = m_floor(baseVal * (skillModList.manaCostMore or 1)) - cost = m_ceil(cost * sumMods(modDB, true, "manaReservedMore") * (skillModList.manaReservedMore or 1)) - cost = m_ceil(cost * (1 + sumMods(modDB, false, "manaReservedInc") / 100 + (skillModList.manaReservedInc or 0) / 100)) + local more = sumMods(modDB, true, "manaReservedMore") * (skillModList.manaReservedMore or 1) + local inc = sumMods(modDB, false, "manaReservedInc") + (skillModList.manaReservedInc or 0) + if skill.baseFlags.curse then + -- Special case for Heretic's Veil, needs a general solution though + inc = inc + (skillModList.curse_manaReservedInc or 0) + end + local cost = m_ceil(m_ceil(m_floor(baseVal * (skillModList.manaCostMore or 1)) * more) * (1 + inc / 100)) if getMiscVal(modDB, nil, "bloodMagic", false) or skillModList.skill_bloodMagic then mod_dbMerge(modDB, "reserved", "life"..suffix, cost) else diff --git a/Modules/Main.lua b/Modules/Main.lua index 97b37863..d3eb70ca 100644 --- a/Modules/Main.lua +++ b/Modules/Main.lua @@ -101,8 +101,32 @@ function main:Init() self.anchorUpdate.y = function() return self.screenH - 2 end - self.controls.applyUpdate = common.New("ButtonControl", {"BOTTOMLEFT",self.anchorUpdate,"BOTTOMLEFT"}, 0, 0, 110, 20, "^x50E050Apply Update", function() - launch:ApplyUpdate(launch.updateAvailable) + self.controls.applyUpdate = common.New("ButtonControl", {"BOTTOMLEFT",self.anchorUpdate,"BOTTOMLEFT"}, 0, 0, 110, 20, "^x50E050Update Ready", function() + local changeList = { } + for line in io.lines("changelog.txt") do + local ver, date = line:match("^VERSION%[(.+)%]%[(.+)%]$") + if ver then + if ver == launch.versionNumber then + break + end + if #changeList > 0 then + t_insert(changeList, { height = 12 }) + end + t_insert(changeList, { height = 20, "^7Version "..ver.." ("..date..")" }) + else + t_insert(changeList, { height = 14, "^7"..line }) + end + end + self:OpenPopup(800, 250, "Update Available", { + common.New("TextListControl", nil, 0, 20, 780, 190, nil, changeList), + common.New("ButtonControl", nil, -45, 220, 80, 20, "Update", function() + launch:ApplyUpdate(launch.updateAvailable) + main:ClosePopup() + end), + common.New("ButtonControl", nil, 45, 220, 80, 20, "Cancel", function() + main:ClosePopup() + end), + }) end) self.controls.applyUpdate.shown = function() return launch.updateAvailable and launch.updateAvailable ~= "none" @@ -119,6 +143,42 @@ function main:Init() self.controls.checkUpdate.enabled = function() return not IsSubScriptRunning() end + self.controls.versionLabel = common.New("LabelControl", {"BOTTOMLEFT",self.anchorUpdate,"BOTTOMLEFT"}, 114, 0, 0, 14, "") + self.controls.versionLabel.label = function() + return "^8Version: "..launch.versionNumber..(launch.versionBranch == "dev" and " (Dev)" or "") + end + self.controls.about = common.New("ButtonControl", {"BOTTOMLEFT",self.anchorUpdate,"BOTTOMLEFT"}, 240, 0, 60, 20, "About", function() + local changeList = { } + for line in io.lines("changelog.txt") do + local ver, date = line:match("^VERSION%[(.+)%]%[(.+)%]$") + if ver then + if #changeList > 0 then + t_insert(changeList, { height = 10 }) + end + t_insert(changeList, { height = 18, "^7Version "..ver.." ("..date..")" }) + else + t_insert(changeList, { height = 12, "^7"..line }) + end + end + self:OpenPopup(650, 400, "About", { + common.New("ButtonControl", {"TOPRIGHT",nil,"TOPRIGHT"}, -10, 10, 50, 20, "Close", function() + main:ClosePopup() + end), + common.New("LabelControl", nil, 0, 18, 0, 18, "Path of Building v"..launch.versionNumber.." by Openarl"), + common.New("ButtonControl", nil, 0, 42, 420, 18, "Forum Thread: ^x4040FFhttps://www.pathofexile.com/forum/view-thread/1716360", function(control) + if OpenURL then + OpenURL("https://www.pathofexile.com/forum/view-thread/1716360") + end + end), + common.New("ButtonControl", nil, 0, 64, 340, 18, "GitHub page: ^x4040FFhttps://github.com/Openarl/PathOfBuilding", function(control) + if OpenURL then + OpenURL("https://github.com/Openarl/PathOfBuilding") + end + end), + common.New("LabelControl", {"TOPLEFT",nil,"TOPLEFT"}, 10, 82, 0, 18, "^7Version history:"), + common.New("TextListControl", nil, 0, 100, 630, 290, nil, changeList), + }) + end) self.controls.devMode = common.New("LabelControl", {"BOTTOMLEFT",self.anchorUpdate,"BOTTOMLEFT"}, 0, 0, 0, 18, "^1Dev Mode") self.controls.devMode.shown = function() return launch.devMode diff --git a/Modules/ModParser.lua b/Modules/ModParser.lua index a790e661..059a69f6 100644 --- a/Modules/ModParser.lua +++ b/Modules/ModParser.lua @@ -276,6 +276,7 @@ local preSpaceList = { ["^left ring slot: "] = "IfSlot:1_", ["^right ring slot: "] = "IfSlot:2_", ["^socketed gems have "] = "SocketedIn:X_", + ["^socketed curse gems have "] = "SocketedIn:X_curse_", } -- List of special namespaces diff --git a/README.md b/README.md index 20d2a106..27153a64 100644 --- a/README.md +++ b/README.md @@ -48,13 +48,20 @@ 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.0.21 - 2016/09/02 + * Added support for the reservation mod on Heretic's Veil + * Added the missing Strength tag to Warlord's Mark + * You can now view the changelog before applying an update + * Also added an about screen. Hi! + ### 1.0.20 - 2016/09/02 * Added Str/Dex/Int to side bar stat list (which also now has a scroll bar for users running low resolutions) * Skill gems list in the skills tab now colours the gem name according to the gem's colour * Now shows "Removing this item will give you" section for all items, not just jewels * You can now equip items from both the "All Items" list and the uniques/templates list by Control+Clicking the item * If there's two slots the item can go in, holding Shift as well will equip it in the second slot instead - * Jewels cannot be equipped in this way (since it'll probably put them in the wrong socket) but they will still be added to your build if you Ctrl-Click them in the uniques or templates lists + * Jewels cannot be equipped in this way (since it'll probably put them in the wrong socket) but they will + still be added to your build if you Ctrl-Click them in the uniques or templates lists * You can also now drag items from the databases straight into item slots to add and equip them in one go! * And also drag items from the databases into the main items list diff --git a/UpdateCheck.lua b/UpdateCheck.lua index 8ebfbf56..6475906f 100644 --- a/UpdateCheck.lua +++ b/UpdateCheck.lua @@ -164,6 +164,9 @@ end MakeDir("Update") ConPrintf("Downloading update...") +-- Download changelog +downloadFile(localSource.."changelog.txt", scriptPath.."/changelog.txt") + -- Download files that need updating local failedFile = false local zipFiles = { } diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 00000000..5228f18c --- /dev/null +++ b/changelog.txt @@ -0,0 +1,50 @@ +VERSION[1.0.21][2016/09/02] + * Added support for the reservation mod on Heretic's Veil + * Added the missing Strength tag to Warlord's Mark + * You can now view the changelog before applying an update + * Also added an about screen. Hi! +VERSION[1.0.20][2016/09/02] + * Added Str/Dex/Int to side bar stat list (which also now has a scroll bar for users running low resolutions) + * Skill gems list in the skills tab now colours the gem name according to the gem's colour + * Now shows "Removing this item will give you" section for all items, not just jewels + * You can now equip items from both the "All Items" list and the uniques/templates list by Control+Clicking the item + * If there's two slots the item can go in, holding Shift as well will equip it in the second slot instead + * Jewels cannot be equipped in this way (since it'll probably put them in the wrong socket) but they will + still be added to your build if you Ctrl-Click them in the uniques or templates lists + * You can also now drag items from the databases straight into item slots to add and equip them in one go! + * And also drag items from the databases into the main items list +VERSION[1.0.19][2016/09/02] + * Fixed error that would occur if you set your character level to 0 + * Added support for "while Unarmed" modifiers + * Added latest patch changes + * Gem name input is a bit more lenient (it's somewhat case-insensitive now) +VERSION[1.0.18][2016/09/02] + * Items now automatically equip when added to the build if there is an empty slot which the item can go in + * Automatically focus the edit control in the tree import/export popups + * Added attack speed to the spell dagger template. Whirling Blades yo! +VERSION[1.0.17][2016/09/02] + * Added support for skill DPS multipliers; currently only Lightning Tendrils uses it (it has a 4x mutliplier) + * Fixed Lioneye's Fall not converting One Handed Melee and Two Handed Melee modifiers + * Added Accuracy Rating to helm and glove templates + * Side bar now shows you how far over the resistance caps you are +VERSION[1.0.16][2016/09/02] + * Emergency fix for the passive tree controls +VERSION[1.0.15][2016/09/02] + * Added support for Cast when Damage Taken, Cast when Stunned and Cast on Death (yes, really!) + * Added support for Radiant Faith + * Enabled mousewheel support on number edits, and added +/- buttons (character level, gem level etc) + * Clarified many of the field labels in the Calcs tab + * Added some tree %inc stats to the side bar +VERSION[1.0.14][2016/09/01] + * Fixed tags on certain multipart skills not correctly applying + * Fixed energy shield not showing up on Sin Trek + * Dual Wielding modifiers will now apply + * Skills that can use both weapons still only use the main hand at the moment; that requires a bit more work to implement +VERSION[1.0.13][2016/09/01] + * Added a scroll bar to the Items tab to fix the issue with low screen resolutions + * The scroll bar will automatically jump to the right when you start editing an item, then jump back when you save it + * This might be a little disorienting; need feedback on this + * Also fixed some minor issues with scroll bars (mouse wheel should now work on all of them) +VERSION[1.0.12][2016/09/01] + * Updated tree to 2.4.0 + * Added latest patch note changes diff --git a/manifest.xml b/manifest.xml index 4fc6384f..b6ea3831 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,11 +1,11 @@ - + - - + + @@ -37,20 +37,20 @@ - + - - + + - + @@ -93,7 +93,7 @@ - + diff --git a/runtime-win32.zip b/runtime-win32.zip index f22ef1e4..ae7a8a04 100644 Binary files a/runtime-win32.zip and b/runtime-win32.zip differ