Release 1.2.18
- Added jewel templates - Added Tulfall - Creating a new build opens an unnamed build instead of prompting for a build name - Support for EE
This commit is contained in:
@@ -331,7 +331,7 @@ function CalcBreakdownClass:AddModSection(sectionData)
|
||||
for _, tag in ipairs(row.mod.tagList) do
|
||||
local desc
|
||||
if tag.type == "Condition" then
|
||||
desc = "Condition: "..(tag.varList and table.concat(tag.varList, "/") or self:FormatModName(tag.var))
|
||||
desc = "Condition: "..(tag.neg and "Not " or "")..(tag.varList and table.concat(tag.varList, "/") or self:FormatModName(tag.var))
|
||||
elseif tag.type == "Multiplier" then
|
||||
if tag.base then
|
||||
desc = (row.mod.type == "BASE" and string.format("%+g", tag.base) or tag.base.."%").." + "..math.abs(row.mod.value).." per "..self:FormatModName(tag.var)
|
||||
|
||||
@@ -126,6 +126,15 @@ local varList = {
|
||||
{ var = "enemyChaosResist", type = "number", label = "Enemy Chaos Resistance:", apply = function(val, modList, enemyModList)
|
||||
enemyModList:NewMod("ChaosResist", "BASE", val, "Config")
|
||||
end },
|
||||
{ var = "enemyConditionHitByFireDamage", type = "check", label = "Enemy was Hit by Fire Damage?", ifNode = 39085, apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("Misc", "LIST", { type = "EnemyCondition", var = "HitByFireDamage" }, "Config")
|
||||
end },
|
||||
{ var = "enemyConditionHitByColdDamage", type = "check", label = "Enemy was Hit by Cold Damage?", ifNode = 39085, apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("Misc", "LIST", { type = "EnemyCondition", var = "HitByColdDamage" }, "Config")
|
||||
end },
|
||||
{ var = "enemyConditionHitByLightningDamage", type = "check", label = "Enemy was Hit by Light. Damage?", ifNode = 39085, apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("Misc", "LIST", { type = "EnemyCondition", var = "HitByLightningDamage" }, "Config")
|
||||
end },
|
||||
}
|
||||
|
||||
local ConfigTabClass = common.NewClass("ConfigTab", "UndoHandler", "ControlHost", "Control", function(self, build)
|
||||
|
||||
@@ -165,6 +165,9 @@ function ModDBClass:Sum(modType, cfg, arg1, arg2, arg3, arg4, arg5, arg6, arg7,
|
||||
else
|
||||
match = self.conditions[tag.var]
|
||||
end
|
||||
if tag.neg then
|
||||
match = not match
|
||||
end
|
||||
if not match then
|
||||
value = nullValue
|
||||
end
|
||||
|
||||
@@ -135,6 +135,9 @@ function ModListClass:Sum(modType, cfg, arg1, arg2, arg3, arg4, arg5, arg6, arg7
|
||||
else
|
||||
match = self.conditions[tag.var]
|
||||
end
|
||||
if tag.neg then
|
||||
match = not match
|
||||
end
|
||||
if not match then
|
||||
value = nullValue
|
||||
end
|
||||
|
||||
10
Data/New.lua
10
Data/New.lua
@@ -178,5 +178,15 @@ League: Breach
|
||||
50% chance to gain a Power Charge on Killing a Frozen Enemy
|
||||
Adds 10 to 20 Cold Damage to Spells per Power Charge
|
||||
+21 Mana gained on Killing a Frozen Enemy
|
||||
]],[[
|
||||
Tulfall
|
||||
Tornado Wand
|
||||
(35-39)% increased Spell Damage
|
||||
11% increased Cast Speed
|
||||
50% chance to gain a Power Charge on Killing a Frozen Enemy
|
||||
Adds 15 to 25 Cold Damage to Spells per Power Charge
|
||||
Lose all Power Charges on reaching Maximum Power Charges
|
||||
Gain a Frenzy Charge on reaching Maximum Power Charges
|
||||
11% increased Cold Damage per Frenzy Charge
|
||||
]],
|
||||
}
|
||||
@@ -182,6 +182,23 @@ Prefixes:
|
||||
{range:0}Adds (0-60 to 0-104) Cold Damage to Spells
|
||||
{range:0}Adds (0-15 to 0-200) Lightning Damage to Spells
|
||||
{spell suf}]],
|
||||
["jewel pre"] = [[
|
||||
Prefixes:
|
||||
{range:0}(0 to 16)% increased Physical Damage
|
||||
{range:0}(0 to 16)% increased Fire Damage
|
||||
{range:0}(0 to 16)% increased Cold Damage
|
||||
{range:0}(0 to 16)% increased Lightning Damage
|
||||
{range:0}(0 to 16)% increased Chaos Damage
|
||||
{range:0}(0 to 16)% increased Totem Damage
|
||||
{range:0}(0 to 7)% increased maximum Life]],
|
||||
["jewel suf"] = [[
|
||||
Suffixes:
|
||||
{range:0}(0 to 10)% increased Damage
|
||||
{range:0}(0 to 12)% increased Projectile Damage
|
||||
{range:0}(0 to 12)% increased Damage over Time
|
||||
{range:0}(0 to 12)% increased Area Damage
|
||||
{range:0}(0 to 4)% increased Attack and Cast Speed
|
||||
{range:0}(0 to 5)% increased Attack Speed]],
|
||||
}
|
||||
|
||||
local rares = {
|
||||
@@ -1030,6 +1047,74 @@ Prophecy Wand
|
||||
(16 to 20)% increased Spell Damage
|
||||
{spell 1h}
|
||||
]],
|
||||
-- Jewels
|
||||
[[
|
||||
Jewel
|
||||
Crimson Jewel
|
||||
{jewel pre}
|
||||
{range:0}(0 to 18)% increased Armour
|
||||
{range:0}(0 to 14)% increased Physical Damage with One Handed Melee Weapons
|
||||
{range:0}(0 to 14)% increased Physical Damage with Two Handed Melee Weapons
|
||||
{range:0}(0 to 6)% increased Attack Speed with One Handed Melee Weapons
|
||||
{range:0}(0 to 6)% increased Attack Speed with Two Handed Melee Weapons
|
||||
{range:0}(0 to 18)% increased Critical Strike Chance with One Handed Melee Weapons
|
||||
{range:0}(0 to 18)% increased Critical Strike Chance with Two Handed Melee Weapons
|
||||
{range:0}+(0 to 12)% to Critical Strike Multiplier with One Handed Melee Weapons
|
||||
{range:0}+(0 to 12)% to Critical Strike Multiplier with Two Handed Melee Weapons
|
||||
{jewel suf}
|
||||
{range:0}(0 to 12)% increased Melee Damage
|
||||
{range:0}(0 to 12)% increased Global Critical Strike Chance
|
||||
{range:0}(0 to 14)% increased Melee Critical Strike Chance
|
||||
{range:0}+(0 to 8)% to Global Critical Strike Multiplier
|
||||
{range:0}+(0 to 10)% to Melee Critical Strike Multiplier
|
||||
]],
|
||||
[[
|
||||
Jewel
|
||||
Viridian Jewel
|
||||
{jewel pre}
|
||||
{range:0}(0 to 18)% increased Evasion Rating
|
||||
{range:0}(0 to 16)% increased Trap Damage
|
||||
{range:0}(0 to 16)% increased Mine Damage
|
||||
{range:0}(0 to 16)% increased Physical Damage with Bows
|
||||
{range:0}(0 to 14)% increased Physical Damage with One Handed Melee Weapons
|
||||
{range:0}(0 to 14)% increased Physical Damage with Two Handed Melee Weapons
|
||||
{range:0}(0 to 8)% increased Attack Speed with Bows
|
||||
{range:0}(0 to 6)% increased Attack Speed with One Handed Melee Weapons
|
||||
{range:0}(0 to 6)% increased Attack Speed with Two Handed Melee Weapons
|
||||
{range:0}(0 to 18)% increased Critical Strike Chance with One Handed Melee Weapons
|
||||
{range:0}(0 to 18)% increased Critical Strike Chance with Two Handed Melee Weapons
|
||||
{range:0}+(0 to 12)% to Critical Strike Multiplier with One Handed Melee Weapons
|
||||
{range:0}+(0 to 12)% to Critical Strike Multiplier with Two Handed Melee Weapons
|
||||
{jewel suf}
|
||||
{range:0}(0 to 12)% increased Melee Damage
|
||||
{range:0}(0 to 12)% increased Global Critical Strike Chance
|
||||
{range:0}(0 to 14)% increased Melee Critical Strike Chance
|
||||
{range:0}+(0 to 8)% to Global Critical Strike Multiplier
|
||||
{range:0}+(0 to 10)% to Melee Critical Strike Multiplier
|
||||
]],
|
||||
[[
|
||||
Jewel
|
||||
Cobalt Jewel
|
||||
{jewel pre}
|
||||
{range:0}(0 to 8)% increased maximum Energy Shield
|
||||
{range:0}(0 to 6)% faster start of Energy Shield Recharge
|
||||
{range:0}(0 to 16)% increased Trap Damage
|
||||
{range:0}(0 to 16)% increased Mine Damage
|
||||
{range:0}(0 to 16)% increased Minion Damage
|
||||
{range:0}(0 to 16)% increased Physical Damage with Wands
|
||||
{range:0}(0 to 8)% increased Attack Speed with Wands
|
||||
{range:0}(0 to 16)% increased Spell Damage while wielding a Staff
|
||||
{range:0}(0 to 16)% increased Spell Damage while holding a Shield
|
||||
{range:0}(0 to 5)% increased Cast Speed while wielding a Staff
|
||||
{range:0}(0 to 5)% increased Cast Speed while holding a Shield
|
||||
{jewel suf}
|
||||
{range:0}(0 to 4)% increased Cast Speed
|
||||
{range:0}(0 to 12)% increased Spell Damage
|
||||
{range:0}(0 to 12)% increased Global Critical Strike Chance
|
||||
{range:0}(0 to 14)% increased Critical Strike Chance for Spells
|
||||
{range:0}+(0 to 8)% to Global Critical Strike Multiplier
|
||||
{range:0}+(0 to 10)% to Critical Strike Multiplier for Spells
|
||||
]],
|
||||
}
|
||||
|
||||
for i, rare in pairs(rares) do
|
||||
|
||||
@@ -32,23 +32,9 @@ function buildMode:Init(dbFileName, buildName)
|
||||
self.anchorTopBarLeft = common.New("Control", nil, 4, 4, 0, 20)
|
||||
self.controls.back = common.New("ButtonControl", {"LEFT",self.anchorTopBarLeft,"RIGHT"}, 0, 0, 60, 20, "<< Back", function()
|
||||
if self.unsaved then
|
||||
main:OpenPopup(280, 100, "Save Changes", {
|
||||
common.New("LabelControl", nil, 0, 20, 0, 16, "^7This build has unsaved changes.\nDo you want to save them now?"),
|
||||
common.New("ButtonControl", nil, -90, 70, 80, 20, "Save", function()
|
||||
self:SaveDBFile()
|
||||
main:ClosePopup()
|
||||
main:SetMode("LIST", self.buildName)
|
||||
end),
|
||||
common.New("ButtonControl", nil, 0, 70, 80, 20, "Don't Save", function()
|
||||
main:ClosePopup()
|
||||
main:SetMode("LIST", self.buildName)
|
||||
end),
|
||||
common.New("ButtonControl", nil, 90, 70, 80, 20, "Cancel", function()
|
||||
main:ClosePopup()
|
||||
end),
|
||||
})
|
||||
self:OpenSavePopup(false)
|
||||
else
|
||||
main:SetMode("LIST", self.buildName)
|
||||
main:SetMode("LIST", self.dbFileName and self.buildName)
|
||||
end
|
||||
end)
|
||||
self.controls.buildName = common.New("Control", {"LEFT",self.controls.back,"RIGHT"}, 8, 0, 0, 20)
|
||||
@@ -67,40 +53,14 @@ function buildMode:Init(dbFileName, buildName)
|
||||
self:SaveDBFile()
|
||||
end)
|
||||
self.controls.save.enabled = function()
|
||||
return self.unsaved
|
||||
return not self.dbFileName or self.unsaved
|
||||
end
|
||||
self.controls.saveAs = common.New("ButtonControl", {"LEFT",self.controls.save,"RIGHT"}, 8, 0, 70, 20, "Save As", function()
|
||||
local newFileName, newBuildName
|
||||
local popup
|
||||
popup = main:OpenPopup(370, 100, "Save As", {
|
||||
common.New("LabelControl", nil, 0, 20, 0, 16, "^7Enter new build name:"),
|
||||
edit = common.New("EditControl", nil, 0, 40, 350, 20, self.buildName, nil, "\\/:%*%?\"<>|", 50, function(buf)
|
||||
newFileName = main.buildPath..buf..".xml"
|
||||
newBuildName = buf
|
||||
popup.controls.save.enabled = false
|
||||
if not buf:match("%S") then
|
||||
return
|
||||
end
|
||||
local out = io.open(newFileName, "r")
|
||||
if out then
|
||||
out:close()
|
||||
return
|
||||
end
|
||||
popup.controls.save.enabled = true
|
||||
end),
|
||||
save = common.New("ButtonControl", nil, -45, 70, 80, 20, "Save", function()
|
||||
self.dbFileName = newFileName
|
||||
self.buildName = newBuildName
|
||||
main.modeArgs = { newFileName, newBuildName }
|
||||
self:SaveDBFile()
|
||||
main:ClosePopup()
|
||||
end),
|
||||
common.New("ButtonControl", nil, 45, 70, 80, 20, "Cancel", function()
|
||||
main:ClosePopup()
|
||||
end),
|
||||
}, "save", "edit")
|
||||
popup.controls.save.enabled = false
|
||||
self:OpenSaveAsPopup()
|
||||
end)
|
||||
self.controls.saveAs.enabled = function()
|
||||
return self.dbFileName
|
||||
end
|
||||
|
||||
-- Controls: top bar, right side
|
||||
self.anchorTopBarRight = common.New("Control", nil, function() return main.screenW / 2 + 6 end, 4, 0, 20)
|
||||
@@ -325,6 +285,7 @@ function buildMode:Init(dbFileName, buildName)
|
||||
self.buildName = buildName
|
||||
|
||||
self.characterLevel = 1
|
||||
self.controls.characterLevel:SetText(tostring(self.characterLevel))
|
||||
self.banditNormal = "None"
|
||||
self.banditCruel = "None"
|
||||
self.banditMerciless = "None"
|
||||
@@ -344,7 +305,7 @@ function buildMode:Init(dbFileName, buildName)
|
||||
|
||||
ConPrintf("Loading '%s'...", dbFileName)
|
||||
if self:LoadDBFile() then
|
||||
main:SetMode("LIST", dbFileName)
|
||||
main:SetMode("LIST", buildName)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -385,26 +346,12 @@ function buildMode:CanExit()
|
||||
if not self.unsaved then
|
||||
return true
|
||||
end
|
||||
main:OpenPopup(280, 100, "Save Changes", {
|
||||
common.New("LabelControl", nil, 0, 20, 0, 16, "^7This build has unsaved changes.\nDo you want to save them before exiting?"),
|
||||
common.New("ButtonControl", nil, -90, 70, 80, 20, "Save", function()
|
||||
self:SaveDBFile()
|
||||
main:ClosePopup()
|
||||
Exit()
|
||||
end),
|
||||
common.New("ButtonControl", nil, 0, 70, 80, 20, "Don't Save", function()
|
||||
main:ClosePopup()
|
||||
Exit()
|
||||
end),
|
||||
common.New("ButtonControl", nil, 90, 70, 80, 20, "Cancel", function()
|
||||
main:ClosePopup()
|
||||
end),
|
||||
})
|
||||
self:OpenSavePopup(true)
|
||||
return false
|
||||
end
|
||||
|
||||
function buildMode:Shutdown()
|
||||
if launch.devMode and not self.abortSave then
|
||||
if launch.devMode and not self.abortSave and self.dbFileName then
|
||||
self:SaveDBFile()
|
||||
end
|
||||
self.abortSave = nil
|
||||
@@ -445,6 +392,12 @@ function buildMode:OnFrame(inputEvents)
|
||||
if event.key == "s" then
|
||||
self:SaveDBFile()
|
||||
inputEvents[id] = nil
|
||||
elseif event.key == "w" then
|
||||
if self.unsaved then
|
||||
self:OpenSavePopup(false)
|
||||
else
|
||||
main:SetMode("LIST", self.dbFileName and self.buildName)
|
||||
end
|
||||
elseif event.key == "1" then
|
||||
self.viewMode = "TREE"
|
||||
elseif event.key == "2" then
|
||||
@@ -559,6 +512,61 @@ function buildMode:OnFrame(inputEvents)
|
||||
self:DrawControls(main.viewPort)
|
||||
end
|
||||
|
||||
function buildMode:OpenSavePopup(exit)
|
||||
main:OpenPopup(280, 100, "Save Changes", {
|
||||
common.New("LabelControl", nil, 0, 20, 0, 16, "^7This build has unsaved changes.\nDo you want to save them "..(exit and "before exiting?" or "now?")),
|
||||
common.New("ButtonControl", nil, -90, 70, 80, 20, "Save", function()
|
||||
main:ClosePopup()
|
||||
self.actionOnSave = exit and "EXIT" or "LIST"
|
||||
self:SaveDBFile()
|
||||
end),
|
||||
common.New("ButtonControl", nil, 0, 70, 80, 20, "Don't Save", function()
|
||||
main:ClosePopup()
|
||||
if exit then
|
||||
Exit()
|
||||
else
|
||||
main:SetMode("LIST", self.dbFileName and self.buildName)
|
||||
end
|
||||
end),
|
||||
common.New("ButtonControl", nil, 90, 70, 80, 20, "Cancel", function()
|
||||
main:ClosePopup()
|
||||
end),
|
||||
})
|
||||
end
|
||||
|
||||
function buildMode:OpenSaveAsPopup()
|
||||
local newFileName, newBuildName
|
||||
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)
|
||||
newFileName = main.buildPath..buf..".xml"
|
||||
newBuildName = buf
|
||||
popup.controls.save.enabled = false
|
||||
if not buf:match("%S") then
|
||||
return
|
||||
end
|
||||
local out = io.open(newFileName, "r")
|
||||
if out then
|
||||
out:close()
|
||||
return
|
||||
end
|
||||
popup.controls.save.enabled = true
|
||||
end),
|
||||
save = common.New("ButtonControl", nil, -45, 70, 80, 20, "Save", function()
|
||||
self.dbFileName = newFileName
|
||||
self.buildName = newBuildName
|
||||
main.modeArgs = { newFileName, newBuildName }
|
||||
self:SaveDBFile()
|
||||
main:ClosePopup()
|
||||
end),
|
||||
common.New("ButtonControl", nil, 45, 70, 80, 20, "Cancel", function()
|
||||
main:ClosePopup()
|
||||
end),
|
||||
}, "save", "edit")
|
||||
popup.controls.save.enabled = false
|
||||
end
|
||||
|
||||
function buildMode:RefreshStatList()
|
||||
-- Build list of side bar stats
|
||||
wipeTable(self.controls.statBox.list)
|
||||
@@ -626,6 +634,9 @@ function buildMode:LoadDB(xmlText, fileName)
|
||||
end
|
||||
|
||||
function buildMode:LoadDBFile()
|
||||
if not self.dbFileName then
|
||||
return
|
||||
end
|
||||
local file = io.open(self.dbFileName, "r")
|
||||
if not file then
|
||||
return true
|
||||
@@ -655,6 +666,10 @@ function buildMode:SaveDB(fileName)
|
||||
end
|
||||
|
||||
function buildMode:SaveDBFile()
|
||||
if not self.dbFileName then
|
||||
self:OpenSaveAsPopup()
|
||||
return
|
||||
end
|
||||
local xmlText = self:SaveDB(self.dbFileName)
|
||||
if not xmlText then
|
||||
return true
|
||||
@@ -665,6 +680,11 @@ function buildMode:SaveDBFile()
|
||||
end
|
||||
file:write(xmlText)
|
||||
file:close()
|
||||
if self.actionOnSave == "LIST" then
|
||||
main:SetMode("LIST", self.buildName)
|
||||
elseif self.actionOnSave == "EXIT" then
|
||||
Exit()
|
||||
end
|
||||
end
|
||||
|
||||
return buildMode
|
||||
@@ -18,7 +18,8 @@ function listMode:Init(selBuildName)
|
||||
end
|
||||
|
||||
self.controls.new = common.New("ButtonControl", {"TOP",self.anchor,"TOP"}, -210, 0, 60, 20, "New", function()
|
||||
self:New()
|
||||
main:SetMode("BUILD", false, "Unnamed build")
|
||||
--self:New()
|
||||
end)
|
||||
self.controls.open = common.New("ButtonControl", {"LEFT",self.controls.new,"RIGHT"}, 8, 0, 60, 20, "Open", function()
|
||||
self:LoadSel()
|
||||
|
||||
@@ -1113,6 +1113,8 @@ local function performCalcs(env)
|
||||
for _, value in ipairs(modDB:Sum("LIST", nil, "Misc")) do
|
||||
if value.type == "Condition" then
|
||||
condList[value.var] = true
|
||||
elseif value.type == "EnemyCondition" then
|
||||
enemyDB.conditions[value.var] = true
|
||||
elseif value.type == "Multiplier" then
|
||||
modDB.multipliers[value.var] = (modDB.multipliers[value.var] or 0) + value.value
|
||||
end
|
||||
@@ -1940,6 +1942,17 @@ local function performCalcs(env)
|
||||
output.TotalMin = totalMin
|
||||
output.TotalMax = totalMax
|
||||
|
||||
-- Update enemy hit-by-damage-type conditions
|
||||
if output.FireAverage > 0 then
|
||||
enemyDB.conditions.HitByFireDamage = true
|
||||
end
|
||||
if output.ColdAverage > 0 then
|
||||
enemyDB.conditions.HitByColdDamage = true
|
||||
end
|
||||
if output.LightningAverage > 0 then
|
||||
enemyDB.conditions.HitByLightningDamage = true
|
||||
end
|
||||
|
||||
-- Calculate average damage and final DPS
|
||||
output.AverageHit = (totalMin + totalMax) / 2 * output.CritEffect
|
||||
output.AverageDamage = output.AverageHit * output.HitChance / 100
|
||||
|
||||
@@ -198,7 +198,7 @@ function main:Init()
|
||||
|
||||
self.buildSortMode = "NAME"
|
||||
|
||||
self:SetMode("LIST")
|
||||
self:SetMode("BUILD", false, "Unnamed build")
|
||||
|
||||
self:LoadSettings()
|
||||
end
|
||||
|
||||
@@ -417,6 +417,17 @@ local specialModList = {
|
||||
["life leech applies instantly%. life regeneration has no effect%."] = { flag("VaalPact"), flag("NoLifeRegen") },
|
||||
["deal no non%-fire damage"] = { flag("DealNoPhysical"), flag("DealNoLightning"), flag("DealNoCold"), flag("DealNoChaos") },
|
||||
["removes all mana%. spend life instead of mana for skills"] = { mod("Mana", "MORE", -100), flag("BloodMagic") },
|
||||
["enemies you hit with elemental damage temporarily get (%+%d+)%% resistance to those elements and (%-%d+)%% resistance to other elements"] = function(plus, _, minus)
|
||||
minus = tonumber(minus)
|
||||
return {
|
||||
mod("Misc", "LIST", { type = "EnemyModifier", mod = mod("FireResist", "BASE", plus, { type = "Condition", var = "HitByFireDamage" }) }),
|
||||
mod("Misc", "LIST", { type = "EnemyModifier", mod = mod("FireResist", "BASE", minus, { type = "Condition", var = "HitByFireDamage", neg = true }, { type = "Condition", varList={"HitByColdDamage","HitByLightningDamage"} }) }),
|
||||
mod("Misc", "LIST", { type = "EnemyModifier", mod = mod("ColdResist", "BASE", plus, { type = "Condition", var = "HitByColdDamage" }) }),
|
||||
mod("Misc", "LIST", { type = "EnemyModifier", mod = mod("ColdResist", "BASE", minus, { type = "Condition", var = "HitByColdDamage", neg = true }, { type = "Condition", varList={"HitByFireDamage","HitByLightningDamage"} }) }),
|
||||
mod("Misc", "LIST", { type = "EnemyModifier", mod = mod("LightningResist", "BASE", plus, { type = "Condition", var = "HitByLightningDamage" }) }),
|
||||
mod("Misc", "LIST", { type = "EnemyModifier", mod = mod("LightningResist", "BASE", minus, { type = "Condition", var = "HitByLightningDamage", neg = true }, { type = "Condition", varList={"HitByFireDamage","HitByColdDamage"} }) }),
|
||||
}
|
||||
end,
|
||||
-- Ascendancy notables
|
||||
["movement skills cost no mana"] = { mod("ManaCost", "MORE", -100, nil, 0, KeywordFlag.Movement) },
|
||||
["projectiles have 100%% additional chance to pierce targets at the start of their movement, losing this chance as the projectile travels farther"] = { mod("PierceChance", "BASE", 100) },
|
||||
|
||||
15
README.md
15
README.md
@@ -49,10 +49,21 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)
|
||||

|
||||
|
||||
## Changelog
|
||||
### 1.2.18 - 2016/11/29
|
||||
* Added 3 new Jewel templates
|
||||
* Added 'Tulfall'
|
||||
* Creating a new build now opens an unnamed build rather than asking for a build name
|
||||
* You will be prompted to name the build when saving
|
||||
* The program now opens a new build when run for the first time
|
||||
* Added support for Elemental Equilibrium; when this passive is allocated, new options will appear in the Configuration tab
|
||||
to allow you to indicate which damage types the enemy has been hit by before being hit by your main skill
|
||||
* The enemy's resistances will update after the skill's hit damage is calculated, so that any damage over time effects are
|
||||
calculated correctly
|
||||
|
||||
### 1.2.17 - 2016/11/28
|
||||
* Added 'Tulborn' and 'Voice of the Storm'
|
||||
* Added support for Mastermind of Discord; when this passive is allocated, new options will appear in the
|
||||
Configuration tab to allow you to indicate which skill types you are using
|
||||
* Added support for Mastermind of Discord; when this passive is allocated, new options will appear in the Configuration tab
|
||||
to allow you to indicate which skill types you are using
|
||||
* Conversion modifiers are now listed in the breakdowns for hit damage in the Calcs tab
|
||||
* Added 2x multiplier to Cyclone's DPS to match the in-game tooltip
|
||||
* Fixed bug preventing the buff from Summon Lightning Golem from applying correctly
|
||||
|
||||
@@ -1,7 +1,17 @@
|
||||
VERSION[1.2.18][2016/11/29]
|
||||
* Added 3 new Jewel templates
|
||||
* Added 'Tulfall'
|
||||
* Creating a new build now opens an unnamed build rather than asking for a build name
|
||||
* You will be prompted to name the build when saving
|
||||
* The program now opens a new build when run for the first time
|
||||
* Added support for Elemental Equilibrium; when this passive is allocated, new options will appear in the Configuration tab
|
||||
to allow you to indicate which damage types the enemy has been hit by before being hit by your main skill
|
||||
* The enemy's resistances will update after the skill's hit damage is calculated, so that any damage over time effects are
|
||||
calculated correctly
|
||||
VERSION[1.2.17][2016/11/28]
|
||||
* Added 'Tulborn' and 'Voice of the Storm'
|
||||
* Added support for Mastermind of Discord; when this passive is allocated, new options will appear in the
|
||||
Configuration tab to allow you to indicate which skill types you are using
|
||||
* Added support for Mastermind of Discord; when this passive is allocated, new options will appear in the Configuration tab
|
||||
to allow you to indicate which skill types you are using
|
||||
* Conversion modifiers are now listed in the breakdowns for hit damage in the Calcs tab
|
||||
* Added 2x multiplier to Cyclone's DPS to match the in-game tooltip
|
||||
* Fixed bug preventing the buff from Summon Lightning Golem from applying correctly
|
||||
|
||||
26
manifest.xml
26
manifest.xml
@@ -1,20 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<PoBVersion>
|
||||
<Version number="1.2.17"/>
|
||||
<Version number="1.2.18"/>
|
||||
<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="d4d8e00d3ecc2ffb3d0c2df0876c009bfe0937d2" name="Launch.lua" part="program"/>
|
||||
<File sha1="93e19c2a160eb49993d50d9e2b47ea79962373d9" name="UpdateCheck.lua" part="program"/>
|
||||
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
|
||||
<File sha1="fe91e91eca24d495f3cd5468b59af3d70d30a357" name="changelog.txt" part="program"/>
|
||||
<File sha1="bf83aba6f87fe6c9b457a2dc94dc379ca1d27b5b" name="changelog.txt" part="program"/>
|
||||
<File sha1="231a4fe264d84294427edacbf3e29ec4b301712e" name="Classes/BuildListControl.lua" part="program"/>
|
||||
<File sha1="47c28993f5653955c9e76714775d87ac22b077da" name="Classes/ButtonControl.lua" part="program"/>
|
||||
<File sha1="4c9854308faeac5a7f874a00a1e507b91ad1bcea" name="Classes/CalcBreakdownControl.lua" part="program"/>
|
||||
<File sha1="441d881e7e7ad3512aedb50bec8fa811b268a4db" name="Classes/CalcBreakdownControl.lua" part="program"/>
|
||||
<File sha1="23171916fa590c5344b17e67bd8d378574922388" name="Classes/CalcSectionControl.lua" part="program"/>
|
||||
<File sha1="57ac3bdfbe1fe07539326e983a6df92a60c2cb78" name="Classes/CalcsTab.lua" part="program"/>
|
||||
<File sha1="5d30e33c23cabf22917c02eb7df1963a5a27cb6a" name="Classes/CheckBoxControl.lua" part="program"/>
|
||||
<File sha1="86c0beac5c2b6c9af922301a9c9c70812565524b" name="Classes/ConfigTab.lua" part="program"/>
|
||||
<File sha1="6b968ed6c82f6d2c3380f919ef2afa61cd938734" name="Classes/ConfigTab.lua" part="program"/>
|
||||
<File sha1="bbb08f183746d6ec023e2bd08fb7a89d365381da" name="Classes/Control.lua" part="program"/>
|
||||
<File sha1="ae55fe1093e727872bc01cc94fa987395f944313" name="Classes/ControlHost.lua" part="program"/>
|
||||
<File sha1="8305ea8d306a13160c369c474d19b05024a1f5ef" name="Classes/DropDownControl.lua" part="program"/>
|
||||
@@ -26,8 +26,8 @@
|
||||
<File sha1="ed4927d018a38cbe1581ca2345bc8fae8a49a78a" name="Classes/ItemSlotControl.lua" part="program"/>
|
||||
<File sha1="e239a39a838d0a4a1d50bfb419be839d190c4039" name="Classes/ItemsTab.lua" part="program"/>
|
||||
<File sha1="62138c7db82d57d638a16610a26acd0de75d3486" name="Classes/LabelControl.lua" part="program"/>
|
||||
<File sha1="47003cfea8cdb4444ac1379090ae4986d95982b7" name="Classes/ModDB.lua" part="program"/>
|
||||
<File sha1="b9cab9764c39db175ee4123366b23ea9cfd035b8" name="Classes/ModList.lua" part="program"/>
|
||||
<File sha1="b878a447554368870c3ee1ec5abcba084435cf2a" name="Classes/ModDB.lua" part="program"/>
|
||||
<File sha1="9075716e219fb25d917e83e3e3362d22c63d648c" name="Classes/ModList.lua" part="program"/>
|
||||
<File sha1="9bc0d8791e7825e52070e96e7894d29fad70cf98" name="Classes/NotesTab.lua" part="program"/>
|
||||
<File sha1="6f8f98d6ee505af53441c1fe9ad74fbff86d56ad" name="Classes/PassiveSpec.lua" part="program"/>
|
||||
<File sha1="9a6bce38a62d9c07851cdd095e91f088e37cea4e" name="Classes/PassiveTree.lua" part="program"/>
|
||||
@@ -42,20 +42,20 @@
|
||||
<File sha1="a4f9cc96ba474d0a75c768a0eabec92837e027cf" name="Classes/TextListControl.lua" part="program"/>
|
||||
<File sha1="aa9975d9b7e6fe56df19a5ada400da6b6e718478" name="Classes/TreeTab.lua" part="program"/>
|
||||
<File sha1="4b7675c8b4fe71cade7dd3d70793df1ed8022d01" name="Classes/UndoHandler.lua" part="program"/>
|
||||
<File sha1="c927eb267a13720de07d5c768151d748af54274c" name="Modules/Build.lua" part="program"/>
|
||||
<File sha1="8888e736942ad025f3f81ceec2e1c433a9866942" name="Modules/BuildList.lua" part="program"/>
|
||||
<File sha1="1865c2bc3c390b7ca2bc6dcedba7dbfbff979b39" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="72ddc63155ed183be89b0f7226a4dace58b4a3d1" name="Modules/Build.lua" part="program"/>
|
||||
<File sha1="8a07fe01c53b785ebb6256236e781fbaabd36c0e" name="Modules/BuildList.lua" part="program"/>
|
||||
<File sha1="e9f5cf6c4f45010b552fce937ac06e159aea2a2d" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="2a3ddc6fef06339cd06614fe032694a4e57bf878" name="Modules/CalcSections.lua" part="program"/>
|
||||
<File sha1="f207df4010cb3c7bc6cce98be2529a3b8a708b8f" name="Modules/Common.lua" part="program"/>
|
||||
<File sha1="bad785f71247b99ff76d9a359f725968aa71da5f" name="Modules/Data.lua" part="program"/>
|
||||
<File sha1="592e5ab3048528b8c9f689f18663b9657a8a78b0" name="Modules/ItemTools.lua" part="program"/>
|
||||
<File sha1="524318a7986bf14ed2cdddf055b9d829d521b871" name="Modules/Main.lua" part="program"/>
|
||||
<File sha1="674dd0caeff9f08c19195ce4a74d81f601f205ad" name="Modules/ModParser.lua" part="program"/>
|
||||
<File sha1="6165a0baf0c7d1cb6adf9bef68bfa9d9d3ad67ec" name="Modules/Main.lua" part="program"/>
|
||||
<File sha1="ff99c0f6ebb3c6a6ce14005326726b60412eb34d" 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"/>
|
||||
<File sha1="14487004d713f93791fc9958e2c9de4afb834ee2" name="Data/New.lua" part="program"/>
|
||||
<File sha1="e56e6892b3f0559ba22644695de9b785dd7842d1" name="Data/Rares.lua" part="program"/>
|
||||
<File sha1="5c338eb5766e531528b377a944b0b1881bc581f8" name="Data/New.lua" part="program"/>
|
||||
<File sha1="69b07ade5dbfa9c2e9cd8421d858e3d60a58a3a0" name="Data/Rares.lua" part="program"/>
|
||||
<File sha1="4719bd0eb7b999372a219fe6f9c419d280867512" name="Data/Gems/act_dex.lua" part="program"/>
|
||||
<File sha1="0b0026bdb9342999eda1890965e3b548c49f7b4d" name="Data/Gems/act_int.lua" part="program"/>
|
||||
<File sha1="4949ff400b5529fd1530d24c658b57732e367f19" name="Data/Gems/act_str.lua" part="program"/>
|
||||
|
||||
Reference in New Issue
Block a user