Release 1.3.6
- Added skill part to Barrage - Added crit overcap info to crit breakdown - Default gem level now varies according to the gem's max level - Fixed quality bug introduced in 1.3.5
This commit is contained in:
@@ -145,7 +145,7 @@ function GemSelectClass:Draw(viewPort)
|
||||
SetDrawLayer(nil, 5)
|
||||
local cursorX, cursorY = GetCursorPos()
|
||||
self.hoverSel = mOverComp == "DROP" and math.floor((cursorY - y - height + scrollBar.offset) / (height - 4)) + 1
|
||||
if self.hoverSel and self.hoverSel < 1 then
|
||||
if self.hoverSel and not data.gems[self.list[self.hoverSel]] then
|
||||
self.hoverSel = nil
|
||||
end
|
||||
SetViewport(x + 2, y + height + 2, width - 4, dropHeight)
|
||||
@@ -190,6 +190,13 @@ function GemSelectClass:Draw(viewPort)
|
||||
gemList[self.index] = copyTable(oldGem or { level = 20, quality = 0, enabled = true }, true)
|
||||
gemList[self.index].name = self.list[self.hoverSel]
|
||||
gemList[self.index].data = data.gems[self.list[self.hoverSel]]
|
||||
if gemList[self.index].data.low_max_level and not gemList[self.index].data.levels[gemList[self.index].level] then
|
||||
if gemList[self.index].data.levels[3][1] then
|
||||
gemList[self.index].level = 3
|
||||
else
|
||||
gemList[self.index].level = 1
|
||||
end
|
||||
end
|
||||
local output = calcFunc()
|
||||
gemList[self.index] = oldGem
|
||||
self.skillsTab.build:AddStatComparesToTooltip(calcBase, output, "^7Selecting this gem will give you:")
|
||||
|
||||
@@ -371,7 +371,9 @@ function ImportTabClass:ImportItem(itemData, sockets)
|
||||
if itemData.ilvl > 0 then
|
||||
item.itemLevel = itemData.ilvl
|
||||
end
|
||||
item.quality = 0
|
||||
if item.base.weapon or item.base.armour or item.base.flask then
|
||||
item.quality = 0
|
||||
end
|
||||
if itemData.properties then
|
||||
for _, property in pairs(itemData.properties) do
|
||||
if property.name == "Quality" then
|
||||
|
||||
@@ -230,8 +230,21 @@ function SkillsTabClass:CreateGemSlot(index)
|
||||
slot.quality:SetText("0")
|
||||
slot.enabled.state = true
|
||||
end
|
||||
self.displayGroup.gemList[index].nameSpec = buf
|
||||
local gem = self.displayGroup.gemList[index]
|
||||
local prevDefaultLevel
|
||||
if gem.data then
|
||||
prevDefaultLevel = (gem.data.levels[20] and 20) or (gem.data.levels[3][1] and 3) or 1
|
||||
end
|
||||
gem.nameSpec = buf
|
||||
self:ProcessSocketGroup(self.displayGroup)
|
||||
if gem.data then
|
||||
local defaultLevel = (gem.data.levels[20] and 20) or (gem.data.levels[3][1] and 3) or 1
|
||||
gem.defaultLevel = defaultLevel
|
||||
if prevDefaultLevel ~= defaultLevel then
|
||||
gem.level = defaultLevel
|
||||
slot.level:SetText(tostring(gem.level))
|
||||
end
|
||||
end
|
||||
if addUndo then
|
||||
self:AddUndoState()
|
||||
end
|
||||
@@ -403,7 +416,7 @@ function SkillsTabClass:ProcessSocketGroup(socketGroup)
|
||||
else
|
||||
gem.errMsg, gem.name, gem.data = nil
|
||||
end
|
||||
if gem.nameSpec:match("%S") or gem.level ~= 20 or gem.quality ~= 0 or gem.enabled ~= true or (socketGroup == self.displayGroup and self.gemSlots[index] and self.gemSlots[index].nameSpec.dropped) then
|
||||
if gem.nameSpec:match("%S") or gem.level ~= (gem.defaultLevel or 20) or gem.quality ~= 0 or gem.enabled ~= true or (socketGroup == self.displayGroup and self.gemSlots[index] and self.gemSlots[index].nameSpec.dropped) then
|
||||
index = index + 1
|
||||
else
|
||||
-- Empty gem, remove it
|
||||
|
||||
@@ -77,6 +77,19 @@ gems["Barrage"] = {
|
||||
active_skill = true,
|
||||
attack = true,
|
||||
bow = true,
|
||||
parts = {
|
||||
{
|
||||
name = "1 Arrow",
|
||||
},
|
||||
{
|
||||
name = "All Arrows",
|
||||
},
|
||||
},
|
||||
setupFunc = function(env, output)
|
||||
if env.mainSkill.skillPart == 2 then
|
||||
env.mainSkill.skillData.dpsMultiplier = output.ProjectileCount
|
||||
end
|
||||
end,
|
||||
color = 2,
|
||||
baseFlags = {
|
||||
attack = true,
|
||||
|
||||
@@ -1246,7 +1246,7 @@ gems["Fire Nova Mine"] = {
|
||||
skill("damageEffectiveness", 0.3),
|
||||
skill("critChance", 5),
|
||||
--"base_mine_duration" = 16000
|
||||
--"base_spell_repeat_count" = 3
|
||||
skill("repeatCount", 3), --"base_spell_repeat_count" = 3
|
||||
--"base_skill_is_mined" = ?
|
||||
skill("showAverage", true), --"base_skill_show_average_damage_instead_of_dps" = ?
|
||||
--"is_remote_mine" = ?
|
||||
|
||||
@@ -1255,7 +1255,7 @@ gems["Spell Echo"] = {
|
||||
excludeSkillTypes = { 30, 37, 41, 42, 15, },
|
||||
baseMods = {
|
||||
mod("ManaCost", "MORE", 40),
|
||||
--"base_spell_repeat_count" = 1
|
||||
skill("repeatCount", 1), --"base_spell_repeat_count" = 1
|
||||
mod("Damage", "MORE", -10), --"support_echo_damage_+%_final" = -10
|
||||
},
|
||||
qualityMods = {
|
||||
|
||||
@@ -2095,10 +2095,13 @@ local function performCalcs(env)
|
||||
output.CritChance = 100
|
||||
else
|
||||
local base = modDB:Sum("BASE", cfg, "CritChance")
|
||||
output.CritChance = (baseCrit + base) * calcMod(modDB, cfg, "CritChance")
|
||||
local inc = modDB:Sum("INC", cfg, "CritChance")
|
||||
local more = modDB:Sum("MORE", cfg, "CritChance")
|
||||
output.CritChance = (baseCrit + base) * (1 + inc / 100) * more
|
||||
if env.mode_effective then
|
||||
output.CritChance = output.CritChance + enemyDB:Sum("BASE", nil, "SelfExtraCritChance")
|
||||
end
|
||||
local preCapCritChance = output.CritChance
|
||||
output.CritChance = m_min(output.CritChance, 95)
|
||||
if (baseCrit + base) > 0 then
|
||||
output.CritChance = m_max(output.CritChance, 5)
|
||||
@@ -2112,8 +2115,6 @@ local function performCalcs(env)
|
||||
output.CritChance = output.CritChance * output.HitChance / 100
|
||||
end
|
||||
if breakdown and output.CritChance ~= baseCrit then
|
||||
local inc = modDB:Sum("INC", cfg, "CritChance")
|
||||
local more = modDB:Sum("MORE", cfg, "CritChance")
|
||||
local enemyExtra = enemyDB:Sum("BASE", nil, "SelfExtraCritChance")
|
||||
breakdown.CritChance = { }
|
||||
if base ~= 0 then
|
||||
@@ -2131,6 +2132,10 @@ local function performCalcs(env)
|
||||
t_insert(breakdown.CritChance, s_format("+ %g ^8(extra chance for enemy to be crit)", enemyExtra))
|
||||
end
|
||||
t_insert(breakdown.CritChance, s_format("= %g", preLuckyCritChance))
|
||||
if preCapCritChance > 95 then
|
||||
local overCap = preCapCritChance - 95
|
||||
t_insert(breakdown.CritChance, s_format("Crit is overcapped by %.2f%% (%d%% increased Critical Strike Chance)", overCap, overCap / more / (baseCrit + base) * 100))
|
||||
end
|
||||
if env.mode_effective and modDB:Sum("FLAG", cfg, "CritChanceLucky") then
|
||||
t_insert(breakdown.CritChance, "Crit Chance is Lucky:")
|
||||
t_insert(breakdown.CritChance, s_format("1 - (1 - %.4f) x (1 - %.4f)", preLuckyCritChance / 100, preLuckyCritChance / 100))
|
||||
|
||||
@@ -56,7 +56,7 @@ end
|
||||
function itemLib.parseItemRaw(item)
|
||||
item.name = "?"
|
||||
item.rarity = "UNIQUE"
|
||||
item.quality = 0
|
||||
item.quality = nil
|
||||
item.rawLines = { }
|
||||
for line in string.gmatch(item.raw .. "\r\n", "([^\r\n]*)\r?\n") do
|
||||
line = line:gsub("^%s+",""):gsub("%s+$","")
|
||||
@@ -260,12 +260,19 @@ function itemLib.parseItemRaw(item)
|
||||
if item.variantList then
|
||||
item.variant = m_min(#item.variantList, item.variant or #item.variantList)
|
||||
end
|
||||
if not item.quality then
|
||||
itemLib.normaliseQuality(item)
|
||||
end
|
||||
itemLib.buildItemModList(item)
|
||||
end
|
||||
|
||||
function itemLib.normaliseQuality(item)
|
||||
if not item.corrupted and not item.uniqueID and item.base and (item.base.armour or item.base.weapon or item.base.flask) then
|
||||
item.quality = 20
|
||||
if item.base and (item.base.armour or item.base.weapon or item.base.flask) then
|
||||
if not item.quality then
|
||||
item.quality = item.corrupted and 0 or 20
|
||||
elseif not item.uniqueID and not item.corrupted then
|
||||
item.quality = 20
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -306,7 +313,7 @@ function itemLib.createItemRaw(item)
|
||||
end
|
||||
t_insert(rawLines, "Selected Variant: "..item.variant)
|
||||
end
|
||||
if item.quality > 0 then
|
||||
if item.quality then
|
||||
t_insert(rawLines, "Quality: "..item.quality)
|
||||
end
|
||||
if item.sockets then
|
||||
|
||||
@@ -275,6 +275,7 @@ local modFlagList = {
|
||||
["with ranged weapons"] = { flags = ModFlag.WeaponRanged },
|
||||
-- Skill types
|
||||
["spell"] = { flags = ModFlag.Spell },
|
||||
["with spells"] = { flags = ModFlag.Spell },
|
||||
["for spells"] = { flags = ModFlag.Spell },
|
||||
["with attacks"] = { flags = ModFlag.Attack },
|
||||
["for attacks"] = { flags = ModFlag.Attack },
|
||||
|
||||
@@ -47,6 +47,12 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)
|
||||

|
||||
|
||||
## Changelog
|
||||
### 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
|
||||
* Empower/Enhance/Enlighten now default to level 3; Portal/Detonate Mines default to level 1
|
||||
* Fixed issue that caused some existing items to lose quality; all affected items will be fixed automatically
|
||||
|
||||
### 1.3.5 - 2017/02/21
|
||||
* Added support for the extra Chaos Damage from Malediction
|
||||
* The bonus only applies with "Have you killed Recently?" enabled, and scales based on the number of active curse skills
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
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
|
||||
* Empower/Enhance/Enlighten now default to level 3; Portal/Detonate Mines default to level 1
|
||||
* Fixed issue that caused some existing items to lose quality; all affected items will be fixed automatically
|
||||
VERSION[1.3.5][2017/02/21]
|
||||
* Added support for the extra Chaos Damage from Malediction
|
||||
* The bonus only applies with "Have you killed Recently?" enabled, and scales based on the number of active curse skills
|
||||
|
||||
22
manifest.xml
22
manifest.xml
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<PoBVersion>
|
||||
<Version number="1.3.5"/>
|
||||
<Version number="1.3.6"/>
|
||||
<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="8159f9399bbf94b81716a0f4ca8114449b1e58bc" name="changelog.txt" part="program"/>
|
||||
<File sha1="6ec9011287848f0e6db82fdcff744f93106c3a42" 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"/>
|
||||
@@ -19,8 +19,8 @@
|
||||
<File sha1="ae55fe1093e727872bc01cc94fa987395f944313" name="Classes/ControlHost.lua" part="program"/>
|
||||
<File sha1="9f05f72260f896eea09c1a8fb28f58973ce4d3ff" name="Classes/DropDownControl.lua" part="program"/>
|
||||
<File sha1="19f25ed4278994079fe43eaedbecaf2b486aae91" name="Classes/EditControl.lua" part="program"/>
|
||||
<File sha1="062b89dfbef58b3473db6bd9712af3de53dd5200" name="Classes/GemSelectControl.lua" part="program"/>
|
||||
<File sha1="f2e6303d1717e18d334a7e4c3522ff5be6b62d6c" name="Classes/ImportTab.lua" part="program"/>
|
||||
<File sha1="46d4a7135256090c726653854fd4c028dee6bcfe" name="Classes/GemSelectControl.lua" part="program"/>
|
||||
<File sha1="3351ac6c10dea6db61e4a6ebd0296c14d26069dc" name="Classes/ImportTab.lua" part="program"/>
|
||||
<File sha1="0e89284fecdbe76d276de30ede6ec251c775c8cb" name="Classes/ItemDBControl.lua" part="program"/>
|
||||
<File sha1="5ecb01b4b82c19420b15a116027e00530f673045" name="Classes/ItemListControl.lua" part="program"/>
|
||||
<File sha1="3e1063c0ccb7b4ec5c76e9f40174c2c39d1d8c77" name="Classes/ItemSlotControl.lua" part="program"/>
|
||||
@@ -37,20 +37,20 @@
|
||||
<File sha1="86fee3127d9520144fc741f6fccc3c1d9f1aa532" name="Classes/ScrollBarControl.lua" part="program"/>
|
||||
<File sha1="261dcf54a4542e6160fd7024d8edf4fc095d9c71" name="Classes/SectionControl.lua" part="program"/>
|
||||
<File sha1="a29cf1ce2135742b3182143de40d291056ccaef5" name="Classes/SkillListControl.lua" part="program"/>
|
||||
<File sha1="35e3e64c8f3da5512b8b9513f87f731a62bdd600" name="Classes/SkillsTab.lua" part="program"/>
|
||||
<File sha1="4e5a47e5416ea563200759865fc99fd991be4998" name="Classes/SkillsTab.lua" part="program"/>
|
||||
<File sha1="6317bd9ba391832dccafcb62409a5ce2988d1928" name="Classes/SliderControl.lua" part="program"/>
|
||||
<File sha1="a4f9cc96ba474d0a75c768a0eabec92837e027cf" name="Classes/TextListControl.lua" part="program"/>
|
||||
<File sha1="663a364da08feb5116874f3ab087cc8e7443d3bf" name="Classes/TreeTab.lua" part="program"/>
|
||||
<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="bd26c62326f763ca16fbd35c23e24bedb1f644a9" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="087da25b6dc053b434d0fdda7b331ee83eeb0acf" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="c745848cd1fe1f399f557c100c361989d5084955" 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="9d115de26ddb7a480d46f5d59603e4b48c239b12" name="Modules/ItemTools.lua" part="program"/>
|
||||
<File sha1="2f9c8616dda0319ca22456e2f31e9ad8ffeb81e3" name="Modules/ItemTools.lua" part="program"/>
|
||||
<File sha1="cc69e5d4f5cbc8739340820314629245f317b555" name="Modules/Main.lua" part="program"/>
|
||||
<File sha1="245b203edc713eaae023465db9af073a6750cc06" name="Modules/ModParser.lua" part="program"/>
|
||||
<File sha1="620fff155f9a547b2b7a03493dbcd12bec2f2c53" name="Modules/ModParser.lua" part="program"/>
|
||||
<File sha1="5f93a9d8f58e0d5990a1f84e1ab1d53fbd35fb56" name="Modules/ModTools.lua" part="program"/>
|
||||
<File sha1="e7ee7e5b6388facb7bf568517ecc401590757df7" name="Assets/ring.png" part="program"/>
|
||||
<File sha1="9a320bfe629b1cf3f14fc77fbbf2508d0a5b2841" name="Assets/small_ring.png" part="program"/>
|
||||
@@ -58,12 +58,12 @@
|
||||
<File sha1="15664631a501d837c5c6796217c663457f115bb1" name="Data/ModJewel.lua" part="program"/>
|
||||
<File sha1="24596d013ecc9170990670c4e02f1b38c326db9e" name="Data/New.lua" part="program"/>
|
||||
<File sha1="1e6951cb616701529d9cca9d320fc24b441c1d5c" name="Data/Rares.lua" part="program"/>
|
||||
<File sha1="bfbb2f85884ae85a34efba541b712db9f7beca87" name="Data/Gems/act_dex.lua" part="program"/>
|
||||
<File sha1="0d3a56eb1f71c292926fefa1029397dcbeb8078f" name="Data/Gems/act_int.lua" part="program"/>
|
||||
<File sha1="b67ead5bb7fd2f59d6607d5e13e583b99155e0b0" name="Data/Gems/act_dex.lua" part="program"/>
|
||||
<File sha1="ec6151e69c6f1bd61cbae1ed3b2f972a3cc6c4f9" name="Data/Gems/act_int.lua" part="program"/>
|
||||
<File sha1="647f42dd7f410c28d5d7f50c331b66d6a514aaee" name="Data/Gems/act_str.lua" part="program"/>
|
||||
<File sha1="9fc931dae9bd0e8a4bd442b59f287225165a2fce" name="Data/Gems/other.lua" part="program"/>
|
||||
<File sha1="f9a472c52c60975b8f1f98ed67a105e72c2134a0" name="Data/Gems/sup_dex.lua" part="program"/>
|
||||
<File sha1="cea776c47fe0a0c433072fa73fdf1843ae47c890" name="Data/Gems/sup_int.lua" part="program"/>
|
||||
<File sha1="79a46ff897053f791811c7665a87abc8942fd4d1" name="Data/Gems/sup_int.lua" part="program"/>
|
||||
<File sha1="a4d002a6321501bc66c965ca1eab51b6f9e0afa2" name="Data/Gems/sup_str.lua" part="program"/>
|
||||
<File sha1="3d323c97113005d6a8886d8bd46bf09d4b2f87b3" name="Data/Bases/amulet.lua" part="program"/>
|
||||
<File sha1="78410a8a3ee33ad331fee2abd83e235fe5b702f6" name="Data/Bases/axe.lua" part="program"/>
|
||||
|
||||
Reference in New Issue
Block a user