diff --git a/Classes/BuildListControl.lua b/Classes/BuildListControl.lua
index c963a575..e85ad21c 100644
--- a/Classes/BuildListControl.lua
+++ b/Classes/BuildListControl.lua
@@ -45,13 +45,7 @@ function BuildListClass:IsMouseOver()
if not self:IsShown() then
return
end
- if self:GetMouseOverControl() then
- return true
- end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds() or self:GetMouseOverControl()
end
function BuildListClass:Draw(viewPort)
diff --git a/Classes/ButtonControl.lua b/Classes/ButtonControl.lua
index e9621b99..bdd66e71 100644
--- a/Classes/ButtonControl.lua
+++ b/Classes/ButtonControl.lua
@@ -15,10 +15,7 @@ function ButtonClass:IsMouseOver()
if not self:IsShown() then
return false
end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds()
end
function ButtonClass:Draw()
diff --git a/Classes/CalcBreakdownControl.lua b/Classes/CalcBreakdownControl.lua
index b085b6d9..7d0f342a 100644
--- a/Classes/CalcBreakdownControl.lua
+++ b/Classes/CalcBreakdownControl.lua
@@ -23,13 +23,7 @@ function CalcBreakdownClass:IsMouseOver()
if not self:IsShown() then
return
end
- if self:GetMouseOverControl() then
- return true
- end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds() or self:GetMouseOverControl()
end
function CalcBreakdownClass:SetBreakdownData(displayData, pinned)
@@ -354,6 +348,8 @@ function CalcBreakdownClass:FormatModValue(value, modType)
else
return -value.."% less"
end
+ elseif modType == "FLAG" then
+ return value and "True" or "False"
else
return value
end
diff --git a/Classes/CalcSectionControl.lua b/Classes/CalcSectionControl.lua
index b13c22e5..0cb2ddac 100644
--- a/Classes/CalcSectionControl.lua
+++ b/Classes/CalcSectionControl.lua
@@ -50,11 +50,9 @@ function CalcSectionClass:IsMouseOver()
if self:GetMouseOverControl() then
return true
end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- local mOver = cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ local mOver = self:IsMouseInBounds()
if mOver and not self.collapsed and self.enabled then
+ local cursorX, cursorY = GetCursorPos()
for _, data in ipairs(self.data) do
if data.enabled then
for _, colData in ipairs(data) do
diff --git a/Classes/CheckBoxControl.lua b/Classes/CheckBoxControl.lua
index 55b2d84e..aa286ca8 100644
--- a/Classes/CheckBoxControl.lua
+++ b/Classes/CheckBoxControl.lua
@@ -15,10 +15,7 @@ function CheckBoxClass:IsMouseOver()
if not self:IsShown() then
return false
end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds()
end
function CheckBoxClass:Draw(viewPort)
diff --git a/Classes/Control.lua b/Classes/Control.lua
index 360efdc9..7e095d14 100644
--- a/Classes/Control.lua
+++ b/Classes/Control.lua
@@ -85,6 +85,13 @@ function ControlClass:IsEnabled()
return self:GetProperty("enabled")
end
+function ControlClass:IsMouseInBounds()
+ local x, y = self:GetPos()
+ local width, height = self:GetSize()
+ local cursorX, cursorY = GetCursorPos()
+ return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+end
+
function ControlClass:SetFocus(focus)
if focus ~= self.hasFocus then
if focus and self.OnFocusGained then
diff --git a/Classes/EditControl.lua b/Classes/EditControl.lua
index ba9bc68f..04ed2914 100644
--- a/Classes/EditControl.lua
+++ b/Classes/EditControl.lua
@@ -49,13 +49,7 @@ function EditClass:IsMouseOver()
if not self:IsShown() then
return false
end
- if self:GetMouseOverControl() then
- return true
- end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds() or self:GetMouseOverControl()
end
function EditClass:SelectAll()
diff --git a/Classes/ItemDBControl.lua b/Classes/ItemDBControl.lua
index 2aa30c63..1a35be7f 100644
--- a/Classes/ItemDBControl.lua
+++ b/Classes/ItemDBControl.lua
@@ -164,13 +164,7 @@ function ItemDBClass:IsMouseOver()
if not self:IsShown() then
return
end
- if self:GetMouseOverControl() then
- return true
- end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds() or self:GetMouseOverControl()
end
function ItemDBClass:Draw(viewPort)
diff --git a/Classes/ItemListControl.lua b/Classes/ItemListControl.lua
index 87121e23..47cad556 100644
--- a/Classes/ItemListControl.lua
+++ b/Classes/ItemListControl.lua
@@ -32,13 +32,7 @@ function ItemListClass:IsMouseOver()
if not self:IsShown() then
return
end
- if self:GetMouseOverControl() then
- return true
- end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds() or self:GetMouseOverControl()
end
function ItemListClass:Draw(viewPort)
diff --git a/Classes/ModList.lua b/Classes/ModList.lua
index 4053b4a0..17ef3b4f 100644
--- a/Classes/ModList.lua
+++ b/Classes/ModList.lua
@@ -172,4 +172,3 @@ function ModListClass:Print()
ConPrintf("%s|%s", modLib.formatMod(mod), mod.source or "?")
end
end
-
diff --git a/Classes/PassiveTreeView.lua b/Classes/PassiveTreeView.lua
index fafddef9..f7ee42da 100644
--- a/Classes/PassiveTreeView.lua
+++ b/Classes/PassiveTreeView.lua
@@ -59,13 +59,14 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
local spec = build.spec
local cursorX, cursorY = GetCursorPos()
+ local mOver = cursorX >= viewPort.x and cursorX < viewPort.x + viewPort.width and cursorY >= viewPort.y and cursorY < viewPort.y + viewPort.height
-- Process input events
local treeClick
for id, event in ipairs(inputEvents) do
if event.type == "KeyDown" then
if event.key == "LEFTBUTTON" then
- if cursorX >= viewPort.x and cursorX < viewPort.x + viewPort.width and cursorY >= viewPort.y and cursorY < viewPort.y + viewPort.height then
+ if mOver then
-- Record starting coords of mouse drag
-- Dragging won't actually commence unless the cursor moves far enough
self.dragX, self.dragY = cursorX, cursorY
@@ -79,13 +80,15 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
-- Mouse button went down, but didn't move far enough to trigger drag, so register a normal click
treeClick = "LEFT"
end
- elseif event.key == "RIGHTBUTTON" then
- treeClick = "RIGHT"
- elseif event.key == "WHEELUP" then
- self:Zoom(IsKeyDown("SHIFT") and 3 or 1, viewPort)
- elseif event.key == "WHEELDOWN" then
- self:Zoom(IsKeyDown("SHIFT") and -3 or -1, viewPort)
- end
+ elseif mOver then
+ if event.key == "RIGHTBUTTON" then
+ treeClick = "RIGHT"
+ elseif event.key == "WHEELUP" then
+ self:Zoom(IsKeyDown("SHIFT") and 3 or 1, viewPort)
+ elseif event.key == "WHEELDOWN" then
+ self:Zoom(IsKeyDown("SHIFT") and -3 or -1, viewPort)
+ end
+ end
end
end
@@ -130,7 +133,7 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
end
local hoverNode
- if cursorX >= viewPort.x and cursorX < viewPort.x + viewPort.width and cursorY >= viewPort.y and cursorY < viewPort.y + viewPort.height then
+ if mOver then
-- Cursor is over the tree, check if it is over a node
local curTreeX, curTreeY = screenToTree(cursorX, cursorY)
for nodeId, node in pairs(spec.nodes) do
diff --git a/Classes/SkillListControl.lua b/Classes/SkillListControl.lua
index cb559287..68b73067 100644
--- a/Classes/SkillListControl.lua
+++ b/Classes/SkillListControl.lua
@@ -51,13 +51,7 @@ function SkillListClass:IsMouseOver()
if not self:IsShown() then
return
end
- if self:GetMouseOverControl() then
- return true
- end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds() or self:GetMouseOverControl()
end
function SkillListClass:Draw(viewPort)
diff --git a/Classes/TextListControl.lua b/Classes/TextListControl.lua
index 0b6a8257..520961be 100644
--- a/Classes/TextListControl.lua
+++ b/Classes/TextListControl.lua
@@ -21,13 +21,7 @@ function TextListClass:IsMouseOver()
if not self:IsShown() then
return
end
- if self:GetMouseOverControl() then
- return true
- end
- local x, y = self:GetPos()
- local width, height = self:GetSize()
- local cursorX, cursorY = GetCursorPos()
- return cursorX >= x and cursorY >= y and cursorX < x + width and cursorY < y + height
+ return self:IsMouseInBounds() or self:GetMouseOverControl()
end
function TextListClass:Draw(viewPort)
diff --git a/Data/Gems/act_int.lua b/Data/Gems/act_int.lua
index 19014d82..9aaf2736 100644
--- a/Data/Gems/act_int.lua
+++ b/Data/Gems/act_int.lua
@@ -3218,7 +3218,11 @@ gems["Righteous Fire"] = {
area = true,
fire = true,
setupFunc = function(env, output)
- env.mainSkill.skillData.FireDot = (output.Life + output.EnergyShield) * 0.5
+ if env.mainSkill.skillFlags.totem then
+ env.mainSkill.skillData.FireDot = output.TotemLife * 0.5
+ else
+ env.mainSkill.skillData.FireDot = (output.Life + output.EnergyShield) * 0.5
+ end
end,
color = 3,
baseFlags = {
diff --git a/Modules/Build.lua b/Modules/Build.lua
index 241aa8f3..797b2566 100644
--- a/Modules/Build.lua
+++ b/Modules/Build.lua
@@ -9,6 +9,7 @@ local pairs = pairs
local ipairs = ipairs
local t_insert = table.insert
local m_min = math.min
+local m_max = math.max
local buildMode = common.New("ControlHost")
@@ -83,6 +84,12 @@ function buildMode:Init(dbFileName, buildName)
DrawImage(nil, x + 1, y + 1, strW, 18)
SetDrawColor(1, 1, 1)
DrawString(x + 4, y + 2, "LEFT", 16, "FIXED", str)
+ if control:IsMouseInBounds() then
+ SetDrawLayer(nil, 10)
+ main:AddTooltipLine(16, "Required level: "..m_max(1, (100 + used - usedMax)))
+ main:DrawTooltip(x, y, control.width, control.height, main.viewPort)
+ SetDrawLayer(nil, 0)
+ end
end
self.controls.characterLevel = common.New("EditControl", {"LEFT",self.anchorTopBarRight,"RIGHT"}, 0, 0, 106, 20, "", "Level", "[%d]", 3, function(buf)
self.characterLevel = tonumber(buf) or 1
diff --git a/Modules/CalcSections.lua b/Modules/CalcSections.lua
index 49bd9344..65e75996 100644
--- a/Modules/CalcSections.lua
+++ b/Modules/CalcSections.lua
@@ -280,7 +280,7 @@ return {
{ label = "Total Increased", { format = "{0:mod:1}%", { modName = { "Evasion", "ArmourAndEvasion", "Defences" }, modType = "INC" }, }, },
{ label = "Total More", { format = "{0:mod:1}%", { modName = { "Evasion", "ArmourAndEvasion", "Defences" }, modType = "MORE" }, }, },
{ label = "Total", { format = "{0:output:Evasion}", { breakdown = "Evasion" }, }, },
- { label = "Evade Chance", { format = "{0:output:EvadeChance}%", { breakdown = "EvadeChance" }, { label = "Enemy Accuracy modifiers", modName = "Accuracy", enemy = true }, }, },
+ { label = "Evade Chance", { format = "{0:output:EvadeChance}%", { breakdown = "EvadeChance" }, { modName = { "CannotEvade" } }, { label = "Enemy Accuracy modifiers", modName = "Accuracy", enemy = true }, }, },
} },
{ 1, "Resist", 3, "Resists", data.colorCodes.DEFENCE, {
extra = data.colorCodes.FIRE.."{0:output:FireResist}+{0:output:FireResistOverCap}^7/"..data.colorCodes.COLD.."{0:output:ColdResist}+{0:output:ColdResistOverCap}^7/"..data.colorCodes.LIGHTNING.."{0:output:LightningResist}+{0:output:LightningResistOverCap}",
diff --git a/Modules/Calcs.lua b/Modules/Calcs.lua
index 0708f49f..d692e364 100644
--- a/Modules/Calcs.lua
+++ b/Modules/Calcs.lua
@@ -3,7 +3,7 @@
-- Module: Calcs
-- Performs all the offense and defense calculations.
-- Here be dragons!
--- This file is 2500 lines long, over half of which is in one function...
+-- This file is 2400 lines long, over half of which is in one function...
--
local pairs = pairs
@@ -916,7 +916,7 @@ local function mergeMainMods(env, repSlotName, repItem)
end
-- Finalise environment and perform the calculations
--- This function is 1400 lines long. Enjoy!
+-- This function is 1300 lines long. Enjoy!
local function performCalcs(env)
local modDB = env.modDB
local enemyDB = env.enemyDB
@@ -1036,7 +1036,7 @@ local function performCalcs(env)
-- Merge auxillary modifiers
if env.mode_buffs then
- if activeSkill.buffModList then
+ if activeSkill.buffModList and not activeSkill.skillFlags.totem then
if activeSkill.activeGem.data.golem and modDB:Sum("FLAG", skillCfg, "LiegeOfThePrimordial") and (activeSkill.activeGem.data.fire or activeSkill.activeGem.data.cold or activeSkill.activeGem.data.lightning) then
modDB:ScaleAddList(activeSkill.buffModList, 2)
else
@@ -1167,9 +1167,9 @@ local function performCalcs(env)
if inc ~= 0 or more ~= 1 or (base ~= 0 and extraBase ~= 0) then
local out = { }
if base ~= 0 and extraBase ~= 0 then
- out[1] = "("..round(extraBase, 2).." + "..round(base, 2)..") ^8(base)"
+ out[1] = s_format("(%g + %g) ^8(base)", extraBase, base)
else
- out[1] = round(base + extraBase, 2).." ^8(base)"
+ out[1] = s_format("%g ^8(base)", base + extraBase)
end
if inc ~= 0 then
t_insert(out, s_format("x %.2f", 1 + inc/100).." ^8(increased/reduced)")
@@ -1177,7 +1177,7 @@ local function performCalcs(env)
if more ~= 1 then
t_insert(out, s_format("x %.2f", more).." ^8(more/less)")
end
- t_insert(out, "= "..output[...])
+ t_insert(out, s_format("= %g", output[...]))
breakdown[...] = out
end
end
@@ -1210,18 +1210,18 @@ local function performCalcs(env)
local out = { }
local resistForm = (damageType == "Physical") and "physical damage reduction" or "resistance"
if resist ~= 0 then
- t_insert(out, "Enemy "..resistForm..": "..resist.."%")
+ t_insert(out, s_format("Enemy %s: %d%%", resistForm, resist))
end
if pen ~= 0 then
t_insert(out, "Effective resistance:")
- t_insert(out, resist.."% ^8(resistance)")
- t_insert(out, "- "..pen.."% ^8(penetration)")
- t_insert(out, "= "..(resist-pen).."%")
+ t_insert(out, s_format("%d%% ^8(resistance)", resist))
+ t_insert(out, s_format("- %d%% ^8(penetration)", pen))
+ t_insert(out, s_format("= %d%%", resist - pen))
end
if (resist - pen) ~= 0 and taken ~= 0 then
t_insert(out, "Effective DPS modifier:")
- t_insert(out, (1 - (resist - pen) / 100).." ^8("..resistForm..")")
- t_insert(out, "x "..(1 + taken / 100).." ^8(increased/reduced damage taken)")
+ t_insert(out, s_format("%.2f ^8(%s)", 1 - (resist - pen) / 100, resistForm))
+ t_insert(out, s_format("x %.2f ^8(increased/reduced damage taken)", 1 + taken / 100))
t_insert(out, s_format("= %.3f", mult))
end
return out
@@ -1251,7 +1251,7 @@ local function performCalcs(env)
-- Add attribute bonuses
modDB:NewMod("Life", "BASE", m_floor(output.Str / 2), "Strength")
- local strDmgBonus = round((output.Str + modDB:Sum("BASE", nil, "DexIntToMeleeBonus", 0)) / 5)
+ local strDmgBonus = round((output.Str + modDB:Sum("BASE", nil, "DexIntToMeleeBonus")) / 5)
modDB:NewMod("PhysicalDamage", "INC", strDmgBonus, "Strength", ModFlag.Melee)
modDB:NewMod("Accuracy", "BASE", output.Dex * 2, "Dexterity")
if not modDB:Sum("FLAG", nil, "IronReflexes") then
@@ -1414,9 +1414,9 @@ local function performCalcs(env)
output.EvadeChance = 100 - calcHitChance(output.Evasion, enemyAccuracy)
if breakdown then
breakdown.EvadeChance = {
- "Enemy level: "..env.enemyLevel..(env.configInput.enemyLevel and " ^8(overridden from the Configuration tab" or " ^8(can be overridden in the Configuration tab)"),
- "Average enemy accuracy: "..enemyAccuracy,
- "Approximate evade chance: "..output.EvadeChance.."%",
+ s_format("Enemy level: %d ^8(%s the Configuration tab)", env.enemyLevel, env.configInput.enemyLevel and "overridden from" or "can be overridden in"),
+ s_format("Average enemy accuracy: %d", enemyAccuracy),
+ s_format("Approximate evade chance: %d%%", output.EvadeChance),
}
end
end
@@ -1806,9 +1806,9 @@ local function performCalcs(env)
local convMult = env.conversionTable[damageType].mult
if breakdown then
t_insert(breakdown[damageType], "Hit damage:")
- t_insert(breakdown[damageType], ""..min.." to "..max.." ^8(total damage)")
+ t_insert(breakdown[damageType], s_format("%d to %d ^8(total damage)", min, max))
if convMult ~= 1 then
- t_insert(breakdown[damageType], "x "..convMult.." ^8("..((1-convMult)*100).."% converted to other damage types)")
+ t_insert(breakdown[damageType], s_format("x %g ^8(%g%% converted to other damage types)", convMult, (1-convMult)*100))
end
end
min = min * convMult
@@ -1843,7 +1843,7 @@ local function performCalcs(env)
end
end
if breakdown then
- t_insert(breakdown[damageType], "= "..round(min).." to "..round(max))
+ t_insert(breakdown[damageType], s_format("= %d to %d", min, max))
end
else
min, max = 0, 0
@@ -1910,28 +1910,29 @@ local function performCalcs(env)
do
local more = m_floor(modDB:Sum("MORE", skillCfg, "ManaCost") * 100 + 0.0001) / 100
local inc = modDB:Sum("INC", skillCfg, "ManaCost")
- output.ManaCost = m_floor(m_max(0, (skillData.manaCost or 0) * more * (1 + inc / 100) - modDB:Sum("BASE", skillCfg, "ManaCost")))
+ local base = modDB:Sum("BASE", skillCfg, "ManaCost")
+ output.ManaCost = m_floor(m_max(0, (skillData.manaCost or 0) * more * (1 + inc / 100) - base))
if breakdown and output.ManaCost ~= (skillData.manaCost or 0) then
breakdown.ManaCost = {
- (skillData.manaCost or 0).." ^8(base mana cost)",
+ s_format("%d ^8(base mana cost)", skillData.manaCost or 0)
}
if more ~= 1 then
- t_insert(breakdown.ManaCost, "x "..more.." ^8(mana cost multiplier)")
+ t_insert(breakdown.ManaCost, s_format("x %.2f ^8(mana cost multiplier)", more))
end
if inc ~= 0 then
- t_insert(breakdown.ManaCost, "x "..(1 + inc/100).." ^8(increased/reduced mana cost)")
- end
- local base = modDB:Sum("BASE", skillCfg, "ManaCost")
+ t_insert(breakdown.ManaCost, s_format("x %.2f ^8(increased/reduced mana cost)", 1 + inc/100))
+ end
if base ~= 0 then
- t_insert(breakdown.ManaCost, "- "..base.." ^8(- mana cost)")
+ t_insert(breakdown.ManaCost, s_format("- %d ^8(- mana cost)", base))
end
- t_insert(breakdown.ManaCost, "= " .. output.ManaCost)
+ t_insert(breakdown.ManaCost, s_format("= %d", output.ManaCost))
end
end
-- Calculate skill DOT components
local dotCfg = {
skillName = skillCfg.skillName,
+ slotName = skillCfg.slotName,
flags = bor(band(skillCfg.flags, ModFlag.SourceMask), ModFlag.Dot, skillData.dotIsSpell and ModFlag.Spell or 0),
keywordFlags = skillCfg.keywordFlags
}
@@ -1966,13 +1967,14 @@ local function performCalcs(env)
end
local inc = modDB:Sum("INC", dotCfg, "Damage", damageType.."Damage", isElemental[damageType] and "ElementalDamage" or nil)
local more = round(modDB:Sum("MORE", dotCfg, "Damage", damageType.."Damage", isElemental[damageType] and "ElementalDamage" or nil), 2)
- output[damageType.."Dot"] = baseVal * (1 + inc/100) * more * effMult
+ local total = baseVal * (1 + inc/100) * more * effMult
+ output[damageType.."Dot"] = total
+ output.TotalDot = output.TotalDot + total
if breakdown then
breakdown[damageType.."Dot"] = { }
- dotBreakdown(breakdown[damageType.."Dot"], baseVal, inc, more, effMult, output[damageType.."Dot"])
+ dotBreakdown(breakdown[damageType.."Dot"], baseVal, inc, more, effMult, total)
end
end
- output.TotalDot = output.TotalDot + (output[damageType.."Dot"] or 0)
end
-- Calculate bleeding chance and damage
@@ -1982,6 +1984,7 @@ local function performCalcs(env)
skillFlags.bleed = true
skillFlags.duration = true
local dotCfg = {
+ slotName = skillCfg.slotName,
flags = bor(band(skillCfg.flags, ModFlag.SourceMask), ModFlag.Dot, skillData.dotIsSpell and ModFlag.Spell or 0),
keywordFlags = bor(skillCfg.keywordFlags, KeywordFlag.Bleed)
}
@@ -2035,6 +2038,7 @@ local function performCalcs(env)
skillFlags.poison = true
skillFlags.duration = true
local dotCfg = {
+ slotName = skillCfg.slotName,
flags = bor(band(skillCfg.flags, ModFlag.SourceMask), ModFlag.Dot, skillData.dotIsSpell and ModFlag.Spell or 0),
keywordFlags = bor(skillCfg.keywordFlags, KeywordFlag.Poison)
}
@@ -2109,6 +2113,7 @@ local function performCalcs(env)
if canDeal.Fire and output.IgniteChance > 0 and sourceDmg > 0 then
skillFlags.ignite = true
local dotCfg = {
+ slotName = skillCfg.slotName,
flags = bor(band(skillCfg.flags, ModFlag.SourceMask), ModFlag.Dot, skillData.dotIsSpell and ModFlag.Spell or 0),
keywordFlags = skillCfg.keywordFlags,
}
@@ -2373,7 +2378,7 @@ function calcs.buildOutput(build, mode)
end
elseif mode == "CALCS" then
-- Calculate XP modifier
- --[[ FIXME
+ --[[ FIXME?
if input.monster_level and input.monster_level > 0 then
local playerLevel = build.characterLevel
local diff = m_abs(playerLevel - input.monster_level) - 3 - m_floor(playerLevel / 16)
diff --git a/README.md b/README.md
index 143168cc..e971953b 100644
--- a/README.md
+++ b/README.md
@@ -49,7 +49,7 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)

## Changelog
-### 1.2.0 - 2016/11/01
+### 1.2.0 - 2016/11/02
With this update, the program's internal modifier system has been completely overhauled.
On its own this overhaul doesn't change much from the user's perspective, but it has opened the way for some
significant upgrades:
@@ -82,6 +82,7 @@ Other changes:
* Some options now have tooltips that explain aspects of their function
* The new class background artworks have been added to the passive skill tree
* Unsupported modifiers are now shown in red instead of white to help convey the fact that they won't work
+ * The required level for a build's passive tree is now shown when hovering over the points display
* Support gem compatability is now determined using the same data the game itself uses, and should now be 100% accurate
### 1.1.11 - 2016/10/25
diff --git a/changelog.txt b/changelog.txt
index d5575c82..962016d0 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,4 +1,4 @@
-VERSION[1.2.0][2016/11/01]
+VERSION[1.2.0][2016/11/02]
With this update, the program's internal modifier system has been completely overhauled.
On its own this overhaul doesn't change much from the user's perspective, but it has opened the way for some
significant upgrades:
@@ -31,6 +31,7 @@ Other changes:
* Some options now have tooltips that explain aspects of their function
* The new class background artworks have been added to the passive skill tree
* Unsupported modifiers are now shown in red instead of white to help convey the fact that they won't work
+ * The required level for a build's passive tree is now shown when hovering over the points display
* Support gem compatability is now determined using the same data the game itself uses, and should now be 100% accurate
VERSION[1.1.11][2016/10/25]
* Added flat mana to ES armour rare templates
diff --git a/manifest.xml b/manifest.xml
index ff460a4a..22664f41 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -7,44 +7,44 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -56,7 +56,7 @@
-
+