Release 1.0.25
- Various updates to uniques - Resistances now always show in sidebar even if their value is 0 - Elemental Focus now disables status effects
This commit is contained in:
@@ -26,7 +26,16 @@ local SkillListClass = common.NewClass("SkillList", "Control", "ControlHost", fu
|
||||
self.controls.delete.enabled = function()
|
||||
return self.selSkill ~= nil
|
||||
end
|
||||
self.controls.new = common.New("ButtonControl", {"RIGHT",self.controls.delete,"LEFT"}, -4, 0, 60, 18, "New", function()
|
||||
self.controls.paste = common.New("ButtonControl", {"RIGHT",self.controls.delete,"LEFT"}, -4, 0, 60, 18, "Paste", function()
|
||||
self.skillsTab:PasteSkill()
|
||||
end)
|
||||
self.controls.copy = common.New("ButtonControl", {"RIGHT",self.controls.paste,"LEFT"}, -4, 0, 60, 18, "Copy", function()
|
||||
self.skillsTab:CopySkill(self.selSkill)
|
||||
end)
|
||||
self.controls.copy.enabled = function()
|
||||
return self.selSkill ~= nil
|
||||
end
|
||||
self.controls.new = common.New("ButtonControl", {"RIGHT",self.controls.copy,"LEFT"}, -4, 0, 60, 18, "New", function()
|
||||
local newSkill = { label = "", active = true, gemList = { } }
|
||||
t_insert(self.skillsTab.list, newSkill)
|
||||
self.selSkill = newSkill
|
||||
@@ -185,18 +194,8 @@ function SkillListClass:OnKeyDown(key, doubleClick)
|
||||
self.selDragActive = false
|
||||
end
|
||||
elseif key == "c" and IsKeyDown("CTRL") then
|
||||
if self.selSkill then
|
||||
local skillText = ""
|
||||
if self.selSkill.label:match("%S") then
|
||||
skillText = skillText .. "Label: "..self.selSkill.label.."\r\n"
|
||||
end
|
||||
if self.selSkill.slot then
|
||||
skillText = skillText .. "Slot: "..self.selSkill.slot.."\r\n"
|
||||
end
|
||||
for _, gem in ipairs(self.selSkill.gemList) do
|
||||
skillText = skillText .. string.format("%s %d/%d\r\n", gem.nameSpec, gem.level, gem.quality)
|
||||
end
|
||||
Copy(skillText)
|
||||
if self.selSkill then
|
||||
self.skillsTab:CopySkill(self.selSkill)
|
||||
end
|
||||
elseif #self.skillsTab.list > 0 then
|
||||
if key == "UP" then
|
||||
|
||||
@@ -118,29 +118,7 @@ function SkillsTabClass:Draw(viewPort, inputEvents)
|
||||
self:Redo()
|
||||
self.build.buildFlag = true
|
||||
elseif event.key == "v" and IsKeyDown("CTRL") then
|
||||
local skillText = Paste()
|
||||
if skillText then
|
||||
local newSkill = { label = "", active = true, gemList = { } }
|
||||
local label = skillText:match("Label: (%C+)")
|
||||
if label then
|
||||
newSkill.label = label
|
||||
end
|
||||
local slot = skillText:match("Slot: (%C+)")
|
||||
if slot then
|
||||
newSkill.slot = slot
|
||||
end
|
||||
for nameSpec, level, quality in skillText:gmatch("([ %a']+) (%d+)/(%d+)") do
|
||||
t_insert(newSkill.gemList, { nameSpec = nameSpec, level = tonumber(level) or 1, quality = tonumber(quality) or 0 })
|
||||
end
|
||||
if #newSkill.gemList > 0 then
|
||||
t_insert(self.list, newSkill)
|
||||
self.controls.skillList.selSkill = newSkill
|
||||
self.controls.skillList.selIndex = #self.list
|
||||
self:SetDisplaySkill(newSkill)
|
||||
self:AddUndoState()
|
||||
self.build.buildFlag = true
|
||||
end
|
||||
end
|
||||
self:PasteSkill()
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -153,6 +131,46 @@ function SkillsTabClass:Draw(viewPort, inputEvents)
|
||||
self:DrawControls(viewPort)
|
||||
end
|
||||
|
||||
function SkillsTabClass:CopySkill(skill)
|
||||
local skillText = ""
|
||||
if skill.label:match("%S") then
|
||||
skillText = skillText .. "Label: "..skill.label.."\r\n"
|
||||
end
|
||||
if skill.slot then
|
||||
skillText = skillText .. "Slot: "..skill.slot.."\r\n"
|
||||
end
|
||||
for _, gem in ipairs(skill.gemList) do
|
||||
skillText = skillText .. string.format("%s %d/%d\r\n", gem.nameSpec, gem.level, gem.quality)
|
||||
end
|
||||
Copy(skillText)
|
||||
end
|
||||
|
||||
function SkillsTabClass:PasteSkill()
|
||||
local skillText = Paste()
|
||||
if skillText then
|
||||
local newSkill = { label = "", active = true, gemList = { } }
|
||||
local label = skillText:match("Label: (%C+)")
|
||||
if label then
|
||||
newSkill.label = label
|
||||
end
|
||||
local slot = skillText:match("Slot: (%C+)")
|
||||
if slot then
|
||||
newSkill.slot = slot
|
||||
end
|
||||
for nameSpec, level, quality in skillText:gmatch("([ %a']+) (%d+)/(%d+)") do
|
||||
t_insert(newSkill.gemList, { nameSpec = nameSpec, level = tonumber(level) or 1, quality = tonumber(quality) or 0 })
|
||||
end
|
||||
if #newSkill.gemList > 0 then
|
||||
t_insert(self.list, newSkill)
|
||||
self.controls.skillList.selSkill = newSkill
|
||||
self.controls.skillList.selIndex = #self.list
|
||||
self:SetDisplaySkill(newSkill)
|
||||
self:AddUndoState()
|
||||
self.build.buildFlag = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Create the controls for editing the gem at a given index
|
||||
function SkillsTabClass:CreateGemSlot(index)
|
||||
local slot = { }
|
||||
|
||||
@@ -830,7 +830,7 @@ gems["Flame Surge"] = {
|
||||
skill_damageEffectiveness = 1,
|
||||
skill_critChanceBase = 6,
|
||||
CondMod_EnemyBurning_spell_damageMore = 1.5,
|
||||
fireCannotIgnite = true,
|
||||
cannotIgnite = true,
|
||||
},
|
||||
quality = {
|
||||
castSpeedInc = 0.5,
|
||||
|
||||
@@ -357,6 +357,10 @@ gems["Elemental Focus"] = {
|
||||
support = true,
|
||||
base = {
|
||||
manaCostMore = 1.3,
|
||||
cannotShock = true,
|
||||
cannotChill = true,
|
||||
cannotFreeze = true,
|
||||
cannotIgnite = true,
|
||||
},
|
||||
quality = {
|
||||
elementalInc = 0.5,
|
||||
|
||||
17
Data/New.lua
17
Data/New.lua
@@ -74,7 +74,7 @@ The Brass Dome
|
||||
Gladiator Plate
|
||||
Requires Level 65, 177 Str
|
||||
30% reduced Chance to Block Attacks and Spells
|
||||
647% increased Armour
|
||||
(600-650)% increased Armour
|
||||
10% reduced Movement Speed
|
||||
50% increased Shock Duration on You
|
||||
Take no Extra Damage from Critical Strikes
|
||||
@@ -226,19 +226,18 @@ Praxis
|
||||
Paua Ring
|
||||
Requires Level 22
|
||||
+(20–25) to maximum Mana
|
||||
+(44–48) to maximum Mana
|
||||
(4.3–5.3) Mana Regenerated per second
|
||||
−(4–7) to Mana Cost of Skills
|
||||
+(30–60) to maximum Mana
|
||||
(3–6) Mana Regenerated per second
|
||||
−(4–8) to Mana Cost of Skills
|
||||
8% of Damage taken gained as Mana when Hit
|
||||
]],[[
|
||||
Valyrium
|
||||
Moonstone Ring
|
||||
Unreleased: true
|
||||
Requires Level 38
|
||||
+(15 to 25) to maximum Energy Shield
|
||||
+(10 to 20) to maximum Energy Shield
|
||||
+(20 to 30)% to Fire Resistance
|
||||
-40% to Cold Resistance
|
||||
+(15–25) to maximum Energy Shield
|
||||
+(10–20) to maximum Energy Shield
|
||||
+(20–30)% to Fire Resistance
|
||||
−40% to Cold Resistance
|
||||
Stun Threshold is based on Energy Shield instead of Life
|
||||
]],[[
|
||||
Shaper's Touch
|
||||
|
||||
@@ -34,7 +34,6 @@ You gain 100 Evasion Rating when on Low Life
|
||||
]],[[
|
||||
The Ascetic
|
||||
Gold Amulet
|
||||
League: Prophecy
|
||||
Requires Level 8
|
||||
(12 to 20)% increased Rarity of Items found
|
||||
(80 to 100)% increased Rarity of Items found with a Normal Item equipped
|
||||
@@ -144,7 +143,6 @@ Cannot be Stunned
|
||||
]],[[
|
||||
Hinekora's Sight
|
||||
Onyx Amulet
|
||||
League: Prophecy
|
||||
Requires Level 20
|
||||
+(10 to 16) to all Attributes
|
||||
+1000 to Accuracy Rating
|
||||
@@ -164,7 +162,6 @@ Adds 12 to 24 Fire Damage to Attacks
|
||||
]],[[
|
||||
Karui Charge
|
||||
Jade Amulet
|
||||
League: Prophecy
|
||||
Requires Level 24
|
||||
+(20 to 30) to Dexterity
|
||||
+(20 to 30) to Strength
|
||||
@@ -217,7 +214,6 @@ Corrupted
|
||||
]],[[
|
||||
Ngamahu Tiki
|
||||
Coral Amulet
|
||||
League: Prophecy
|
||||
Requires Level 36
|
||||
(2 to 4) Life Regenerated per second
|
||||
(50 to 70)% increased Fire Damage
|
||||
|
||||
@@ -35,7 +35,6 @@ Enemies Chilled by you take 40% increased Burning Damage
|
||||
]],[[
|
||||
The Gryphon
|
||||
Jade Hatchet
|
||||
League: Prophecy
|
||||
One Handed Axe
|
||||
Physical Damage: (49-67 to 103-125)
|
||||
Critical Strike Chance: 5.00%
|
||||
@@ -169,7 +168,6 @@ Causes Bleeding on Hit
|
||||
]],[[
|
||||
The Cauteriser
|
||||
Woodsplitter
|
||||
League: Prophecy
|
||||
Two Handed Axe
|
||||
Physical Damage: (94-118 to 207-250)
|
||||
Critical Strike Chance: 5%
|
||||
|
||||
@@ -5,7 +5,6 @@ return {
|
||||
[[
|
||||
Ascent From Flesh
|
||||
Chain Belt
|
||||
League: Prophecy
|
||||
Requires Level 44
|
||||
+(9 to 20) to maximum Energy Shield
|
||||
+300 to Evasion Rating
|
||||
|
||||
@@ -73,7 +73,6 @@ Chaos Damage does not bypass Energy Shield
|
||||
]],[[
|
||||
Wall of Brambles
|
||||
Plate Vest
|
||||
League: Prophecy
|
||||
Armour: 2014
|
||||
Requires Level 30
|
||||
Adds 2 to 4 Physical Damage to Attacks
|
||||
@@ -159,7 +158,6 @@ Adds 13 to 24 Cold Damage to Attacks
|
||||
]],[[
|
||||
Kintsugi
|
||||
Exquisite Leather
|
||||
League: Prophecy
|
||||
Evasion: (1004 to 1104)
|
||||
Requires Level 62, 170 Dex
|
||||
(100 to 120)% increased Evasion Rating
|
||||
|
||||
@@ -143,7 +143,6 @@ Requires Level 53, 94 Int
|
||||
]],[[
|
||||
Shavronne's Gambit
|
||||
Scholar Boots
|
||||
League: Prophecy
|
||||
Energy Shield: (56 to 67)
|
||||
Requires Level 32, 54 Int
|
||||
+10 to Dexterity
|
||||
|
||||
@@ -61,7 +61,6 @@ Adds an additional Arrow
|
||||
]],[[
|
||||
Death's Opus
|
||||
Death Bow
|
||||
League: Prophecy
|
||||
Bow
|
||||
Physical Damage: (60-90 to 166-198)
|
||||
Critical Strike Chance: (6.50 to 7.50)%
|
||||
@@ -92,7 +91,6 @@ Gain 110% of Bow Physical Damage as Extra Damage of an Element
|
||||
]],[[
|
||||
Doomfletch's Prism
|
||||
Royal Bow
|
||||
League: Prophecy
|
||||
Bow
|
||||
Physical Damage: (18-22 to 57-61)
|
||||
Critical Strike Chance: (6.50 to 7.00)%
|
||||
@@ -229,7 +227,6 @@ Skills Chain +1 times
|
||||
]],[[
|
||||
Silverbough
|
||||
Crude Bow
|
||||
League: Prophecy
|
||||
Bow
|
||||
Physical Damage: (36-60 to 113-146)
|
||||
Critical Strike Chance: 5.00%
|
||||
@@ -274,7 +271,6 @@ No Physical Damage
|
||||
]],[[
|
||||
The Tempest
|
||||
Long Bow
|
||||
League: Prophecy
|
||||
Bow
|
||||
Elemental Damage: 1<>85
|
||||
Critical Strike Chance: 6.00%
|
||||
|
||||
@@ -77,7 +77,6 @@ Requires Level 47, 68 Str
|
||||
[[
|
||||
Hrimburn
|
||||
Goathide Gloves
|
||||
League: Prophecy
|
||||
Evasion: 42
|
||||
Requires Level 24, 17 Dex
|
||||
+(20 to 30) to Strength
|
||||
@@ -132,7 +131,6 @@ Requires Level 12, 21 Int
|
||||
]],[[
|
||||
Grip of the Council
|
||||
Arcanist Gloves
|
||||
League: Prophecy
|
||||
Energy Shield: 56
|
||||
Requires Level 60, 95 Int
|
||||
+30 to Strength
|
||||
|
||||
@@ -18,7 +18,6 @@ Adds 40 to 60 Physical Damage to Attacks
|
||||
]],[[
|
||||
Ezomyte Hold
|
||||
Iron Hat
|
||||
League: Prophecy
|
||||
Armour: (23 to 33)
|
||||
20% increased Physical Damage
|
||||
+(15 to 25) to Armour
|
||||
@@ -171,7 +170,6 @@ Requires Level 39, 83 Int
|
||||
]],[[
|
||||
Martyr's Crown
|
||||
Vine Circlet
|
||||
League: Prophecy
|
||||
Energy Shield: (267 to 307)
|
||||
Requires Level 52
|
||||
+(260 to 300) to maximum Energy Shield
|
||||
@@ -261,7 +259,6 @@ Cannot Leech when on Low Life
|
||||
]],[[
|
||||
Deidbellow
|
||||
Gilded Sallet
|
||||
League: Prophecy
|
||||
Armour: (278 to 378)
|
||||
Evasion: 78
|
||||
Requires Level 33, 38 Str, 38 Dex
|
||||
@@ -437,7 +434,6 @@ Blood Magic
|
||||
]],[[
|
||||
Mind of the Council
|
||||
Harlequin Mask
|
||||
League: Prophecy
|
||||
Evasion: (452 to 493)
|
||||
Energy Shield: (132 to 144)
|
||||
Requires Level 57, 64 Dex, 64 Int
|
||||
|
||||
@@ -182,7 +182,6 @@ Socketed Gems are Supported by level 1 Reduced Mana
|
||||
]],[[
|
||||
Breath of the Council
|
||||
Carnal Sceptre
|
||||
League: Prophecy
|
||||
One Handed Mace
|
||||
Physical Damage: (122-139 to 281-320)
|
||||
Critical Strike Chance: 6.00%
|
||||
@@ -423,7 +422,6 @@ Never deal Critical Strikes
|
||||
]],[[
|
||||
Hrimnor's Dirge
|
||||
Sledgehammer
|
||||
League: Prophecy
|
||||
Two Handed Mace
|
||||
Physical Damage: (74-123 to 148-216)
|
||||
Critical Strike Chance: 5.00%
|
||||
|
||||
@@ -30,7 +30,6 @@ Adds 5 to 10 Fire Damage to Attacks with Bows
|
||||
]],[[
|
||||
Cragfall
|
||||
Serrated Arrow Quiver
|
||||
League: Prophecy
|
||||
Requires Level 5
|
||||
Adds 1 to 4 Physical Damage to Attacks with Bows
|
||||
(20 to 25)% reduced Enemy Stun Threshold
|
||||
@@ -116,7 +115,6 @@ Requires Level 45
|
||||
]],[[
|
||||
The Signal Fire
|
||||
Fire Arrow Quiver
|
||||
League: Prophecy
|
||||
Requires Level 24
|
||||
Adds 4 to 8 Fire Damage to Attacks with Bows
|
||||
10% increased Attack Speed
|
||||
|
||||
@@ -163,7 +163,6 @@ Variant: Current
|
||||
]],[[
|
||||
Kaom's Way
|
||||
Coral Ring
|
||||
League: Prophecy
|
||||
Requires Level 32
|
||||
+(20 to 30) to maximum Life
|
||||
+(10 to 20) to Strength
|
||||
@@ -449,7 +448,6 @@ Adds 1 to 3 Chaos Damage to Attacks
|
||||
10% chance to Cause Monsters to Flee
|
||||
{variant:1}Melee Attacks cause Bleeding
|
||||
{variant:2}(30 to 50)% chance to cause Bleeding on Hit with Melee Attacks
|
||||
{variant:1}Melee Attacks Poison on Hit
|
||||
{variant:2}(20 to 40)% chance to Poison on Hit with Melee Attacks
|
||||
Melee Attacks Poison on Hit
|
||||
]],
|
||||
}
|
||||
@@ -129,7 +129,6 @@ Requires Level 16, 44 Dex
|
||||
]],[[
|
||||
Kaltensoul
|
||||
Painted Buckler
|
||||
League: Prophecy
|
||||
Chance to Block: 29%
|
||||
Evasion: (152 to 190)
|
||||
Requires Level 16, 44 Dex
|
||||
@@ -154,7 +153,6 @@ You gain Onslaught for 2 seconds on Killing Taunted Enemies
|
||||
]],[[
|
||||
Thirst for Horrors
|
||||
War Buckler
|
||||
League: Prophecy
|
||||
Chance to Block: 31%
|
||||
Evasion: (164 to 189)
|
||||
Requires Level 32, 74 Dex
|
||||
@@ -330,7 +328,6 @@ Gain (5 to 10)% of Physical Damage as Extra Chaos Damage
|
||||
]],[[
|
||||
The Oak
|
||||
Plank Kite Shield
|
||||
League: Prophecy
|
||||
Chance to Block: 22%
|
||||
Armour: (27 to 33)
|
||||
Energy Shield: (9 to 11)
|
||||
@@ -368,6 +365,7 @@ Chance to Block: 24%
|
||||
Armour: (229 to 254)
|
||||
Energy Shield: (67 to 74)
|
||||
Requires Level 65, 85 Str, 85 Int
|
||||
Implicits: 2
|
||||
{variant:1}+16% to all Elemental Resistances
|
||||
{variant:2}+8% to all Elemental Resistances
|
||||
(80 to 100)% increased Armour and Energy Shield
|
||||
|
||||
@@ -159,7 +159,6 @@ Socketed Gems are Supported by level 30 Spell Echo
|
||||
]],[[
|
||||
Realm Ender
|
||||
Iron Staff
|
||||
League: Prophecy
|
||||
Staff
|
||||
Physical Damage: 16<31>47
|
||||
Elemental Damage: (10-15 to 20-25), (10-15 to 20-25)
|
||||
|
||||
@@ -464,7 +464,6 @@ Minions deal (10 to 15)% increased Damage
|
||||
]],[[
|
||||
Queen's Escape
|
||||
Ornate Sword
|
||||
League: Prophecy
|
||||
Two Handed Sword
|
||||
Physical Damage: 31<33>52
|
||||
Critical Strike Chance: 5.00%
|
||||
|
||||
@@ -23,7 +23,6 @@ Adds (4-6 to 8-12) Fire Damage to Spells
|
||||
]],[[
|
||||
Amplification Rod
|
||||
Spiraled Wand
|
||||
League: Prophecy
|
||||
Wand
|
||||
Physical Damage: 8<>24
|
||||
Critical Strike Chance: 8.00%
|
||||
|
||||
@@ -220,10 +220,10 @@ function buildMode:Init(dbFileName, buildName)
|
||||
{ mod = "total_dodgeAttacks", label = "Attack Dodge Chance", fmt = "d%%", pc = true },
|
||||
{ mod = "total_dodgeSpells", label = "Spell Dodge Chance", fmt = "d%%", pc = true },
|
||||
{ },
|
||||
{ mod = "total_fireResist", label = "Fire Resistance", fmt = "d%%" },
|
||||
{ mod = "total_coldResist", label = "Cold Resistance", fmt = "d%%" },
|
||||
{ mod = "total_lightningResist", label = "Lightning Resistance", fmt = "d%%" },
|
||||
{ mod = "total_chaosResist", label = "Chaos Resistance", fmt = "d%%" },
|
||||
{ mod = "total_fireResist", label = "Fire Resistance", fmt = "d%%", condFunc = function() return true end },
|
||||
{ mod = "total_coldResist", label = "Cold Resistance", fmt = "d%%", condFunc = function() return true end },
|
||||
{ mod = "total_lightningResist", label = "Lightning Resistance", fmt = "d%%", condFunc = function() return true end },
|
||||
{ mod = "total_chaosResist", label = "Chaos Resistance", fmt = "d%%", condFunc = function() return true end },
|
||||
{ mod = "total_fireResistOverCap", label = "Fire Res. Over Max", fmt = "d%%" },
|
||||
{ mod = "total_coldResistOverCap", label = "Cold Res. Over Max", fmt = "d%%" },
|
||||
{ mod = "total_lightningResistOverCap", label = "Lightning Res. Over Max", fmt = "d%%" },
|
||||
|
||||
@@ -1557,75 +1557,89 @@ local function performCalcs(env, output)
|
||||
-- Calculate ignite chance and damage
|
||||
env.skillFlags.ignite = false
|
||||
if startWatch(env, "ignite", "canDeal", "fire", "cold", "dps_crit", "enemyResist") then
|
||||
output.ignite_chance = m_min(100, sumMods(modDB, false, "igniteChance")) / 100
|
||||
local sourceDmg = 0
|
||||
if canDeal.fire and not getMiscVal(modDB, nil, "fireCannotIgnite", false) then
|
||||
sourceDmg = sourceDmg + output.total_fireAvg
|
||||
end
|
||||
if canDeal.cold and getMiscVal(modDB, nil, "coldCanIgnite", false) then
|
||||
sourceDmg = sourceDmg + output.total_coldAvg
|
||||
end
|
||||
if canDeal.fire and output.ignite_chance > 0 and sourceDmg > 0 then
|
||||
env.skillFlags.dot = true
|
||||
env.skillFlags.ignite = true
|
||||
buildSpaceTable(modDB, {
|
||||
dot = true,
|
||||
debuff = true,
|
||||
spell = getMiscVal(modDB, "skill", "dotIsSpell", false),
|
||||
ignite = true,
|
||||
projectile = env.skillSpaceFlags.projectile,
|
||||
aoe = env.skillSpaceFlags.aoe,
|
||||
totem = env.skillSpaceFlags.totem,
|
||||
trap = env.skillSpaceFlags.trap,
|
||||
mine = env.skillSpaceFlags.mine,
|
||||
})
|
||||
local baseVal = sourceDmg * output.total_critEffect * 0.2
|
||||
local effMult = 1
|
||||
if env.mode_effective then
|
||||
local taken = getMiscVal(modDB, "effective", "fireTakenInc", 0) + getMiscVal(modDB, "effective", "elementalTakenInc", 0) + getMiscVal(modDB, "effective", "damageTakenInc", 0) + getMiscVal(modDB, "effective", "dotTakenInc", 0)
|
||||
effMult = (1 - output["enemy_fireResist"] / 100) * (1 + taken / 100)
|
||||
if getMiscVal(modDB, nil, "cannotIgnite", false) then
|
||||
output.ignite_chance = 0
|
||||
else
|
||||
output.ignite_chance = m_min(100, sumMods(modDB, false, "igniteChance")) / 100
|
||||
local sourceDmg = 0
|
||||
if canDeal.fire and not getMiscVal(modDB, nil, "fireCannotIgnite", false) then
|
||||
sourceDmg = sourceDmg + output.total_fireAvg
|
||||
end
|
||||
if canDeal.cold and getMiscVal(modDB, nil, "coldCanIgnite", false) then
|
||||
sourceDmg = sourceDmg + output.total_coldAvg
|
||||
end
|
||||
if canDeal.fire and output.ignite_chance > 0 and sourceDmg > 0 then
|
||||
env.skillFlags.dot = true
|
||||
env.skillFlags.ignite = true
|
||||
buildSpaceTable(modDB, {
|
||||
dot = true,
|
||||
debuff = true,
|
||||
spell = getMiscVal(modDB, "skill", "dotIsSpell", false),
|
||||
ignite = true,
|
||||
projectile = env.skillSpaceFlags.projectile,
|
||||
aoe = env.skillSpaceFlags.aoe,
|
||||
totem = env.skillSpaceFlags.totem,
|
||||
trap = env.skillSpaceFlags.trap,
|
||||
mine = env.skillSpaceFlags.mine,
|
||||
})
|
||||
local baseVal = sourceDmg * output.total_critEffect * 0.2
|
||||
local effMult = 1
|
||||
if env.mode_effective then
|
||||
local taken = getMiscVal(modDB, "effective", "fireTakenInc", 0) + getMiscVal(modDB, "effective", "elementalTakenInc", 0) + getMiscVal(modDB, "effective", "damageTakenInc", 0) + getMiscVal(modDB, "effective", "dotTakenInc", 0)
|
||||
effMult = (1 - output["enemy_fireResist"] / 100) * (1 + taken / 100)
|
||||
end
|
||||
output.ignite_dps = baseVal * (1 + sumMods(modDB, false, "damageInc", "fireInc", "elementalInc") / 100) * sumMods(modDB, true, "damageMore", "fireMore", "elementalMore") * effMult
|
||||
output.ignite_duration = 4 * (1 + getMiscVal(modDB, "ignite", "durationInc", 0) / 100)
|
||||
buildSpaceTable(modDB, env.skillSpaceFlags)
|
||||
end
|
||||
output.ignite_dps = baseVal * (1 + sumMods(modDB, false, "damageInc", "fireInc", "elementalInc") / 100) * sumMods(modDB, true, "damageMore", "fireMore", "elementalMore") * effMult
|
||||
output.ignite_duration = 4 * (1 + getMiscVal(modDB, "ignite", "durationInc", 0) / 100)
|
||||
buildSpaceTable(modDB, env.skillSpaceFlags)
|
||||
end
|
||||
endWatch(env, "ignite")
|
||||
end
|
||||
|
||||
-- Calculate shock and freeze chance + duration modifier
|
||||
if startWatch(env, "shock", "canDeal", "lightning", "fire", "chaos") then
|
||||
output.shock_chance = m_min(100, sumMods(modDB, false, "shockChance")) / 100
|
||||
local sourceDmg = 0
|
||||
if canDeal.lightning and not getMiscVal(modDB, nil, "lightningCannotShock", false) then
|
||||
sourceDmg = sourceDmg + output.total_lightningAvg
|
||||
if getMiscVal(modDB, nil, "cannotShock", false) then
|
||||
output.shock_chance = 0
|
||||
else
|
||||
output.shock_chance = m_min(100, sumMods(modDB, false, "shockChance")) / 100
|
||||
local sourceDmg = 0
|
||||
if canDeal.lightning and not getMiscVal(modDB, nil, "lightningCannotShock", false) then
|
||||
sourceDmg = sourceDmg + output.total_lightningAvg
|
||||
end
|
||||
if canDeal.physical and getMiscVal(modDB, nil, "physicalCanShock", false) then
|
||||
sourceDmg = sourceDmg + output.total_physicalAvg
|
||||
end
|
||||
if canDeal.fire and getMiscVal(modDB, nil, "fireCanShock", false) then
|
||||
sourceDmg = sourceDmg + output.total_fireAvg
|
||||
end
|
||||
if canDeal.chaos and getMiscVal(modDB, nil, "chaosCanShock", false) then
|
||||
sourceDmg = sourceDmg + output.total_chaosAvg
|
||||
end
|
||||
if output.shock_chance > 0 and sourceDmg > 0 then
|
||||
env.skillFlags.shock = true
|
||||
output.shock_durationMod = 1 + getMiscVal(modDB, "shock", "durationInc", 0) / 100
|
||||
end
|
||||
end
|
||||
if canDeal.physical and getMiscVal(modDB, nil, "physicalCanShock", false) then
|
||||
sourceDmg = sourceDmg + output.total_physicalAvg
|
||||
end
|
||||
if canDeal.fire and getMiscVal(modDB, nil, "fireCanShock", false) then
|
||||
sourceDmg = sourceDmg + output.total_fireAvg
|
||||
end
|
||||
if canDeal.chaos and getMiscVal(modDB, nil, "chaosCanShock", false) then
|
||||
sourceDmg = sourceDmg + output.total_chaosAvg
|
||||
end
|
||||
if output.shock_chance > 0 and sourceDmg > 0 then
|
||||
env.skillFlags.shock = true
|
||||
output.shock_durationMod = 1 + getMiscVal(modDB, "shock", "durationInc", 0) / 100
|
||||
end
|
||||
endWatch(env, "shock")
|
||||
end
|
||||
if startWatch(env, "freeze", "canDeal", "cold", "lightning") then
|
||||
output.freeze_chance = m_min(100, sumMods(modDB, false, "freezeChance")) / 100
|
||||
local sourceDmg = 0
|
||||
if canDeal.cold and not getMiscVal(modDB, nil, "coldCannotFreeze", false) then
|
||||
sourceDmg = sourceDmg + output.total_coldAvg
|
||||
end
|
||||
if canDeal.lightning and getMiscVal(modDB, nil, "lightningCanFreeze", false) then
|
||||
sourceDmg = sourceDmg + output.total_lightningAvg
|
||||
end
|
||||
if output.freeze_chance > 0 and sourceDmg > 0 then
|
||||
env.skillFlags.freeze = true
|
||||
output.freeze_durationMod = 1 + getMiscVal(modDB, "freeze", "durationInc", 0) / 100
|
||||
if getMiscVal(modDB, nil, "cannotFreeze", false) then
|
||||
output.freeze_chance = 0
|
||||
else
|
||||
output.freeze_chance = m_min(100, sumMods(modDB, false, "freezeChance")) / 100
|
||||
local sourceDmg = 0
|
||||
if canDeal.cold and not getMiscVal(modDB, nil, "coldCannotFreeze", false) then
|
||||
sourceDmg = sourceDmg + output.total_coldAvg
|
||||
end
|
||||
if canDeal.lightning and getMiscVal(modDB, nil, "lightningCanFreeze", false) then
|
||||
sourceDmg = sourceDmg + output.total_lightningAvg
|
||||
end
|
||||
if output.freeze_chance > 0 and sourceDmg > 0 then
|
||||
env.skillFlags.freeze = true
|
||||
output.freeze_durationMod = 1 + getMiscVal(modDB, "freeze", "durationInc", 0) / 100
|
||||
end
|
||||
end
|
||||
endWatch(env, "freeze")
|
||||
end
|
||||
|
||||
-- Calculate combined DPS estimate, including DoTs
|
||||
|
||||
@@ -48,6 +48,13 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)
|
||||

|
||||
|
||||
## Changelog
|
||||
### 1.0.25 - 2016/09/06
|
||||
* More updates to 2.4.0 uniques
|
||||
* Removed Prophecy league tag from all uniques
|
||||
* Updated Voidheart to account for the non-nerf (poison chance is still 100%)
|
||||
* Fixed resistances disappearing from the sidebar when the values are exactly 0
|
||||
* Elemental Focus now correctly disables ignite/shock/freeze
|
||||
|
||||
### 1.0.24 - 2016/09/05
|
||||
* Added/updated more 2.4.0 uniques
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
VERSION[1.0.25][2016/09/06]
|
||||
* More updates to 2.4.0 uniques
|
||||
* Removed Prophecy league tag from all uniques
|
||||
* Updated Voidheart to account for the non-nerf (poison chance is still 100%)
|
||||
* Fixed resistances disappearing from the sidebar when the values are exactly 0
|
||||
* Elemental Focus now correctly disables ignite/shock/freeze
|
||||
VERSION[1.0.24][2016/09/05]
|
||||
* Added/updated more 2.4.0 uniques
|
||||
VERSION[1.0.23][2016/09/03]
|
||||
|
||||
48
manifest.xml
48
manifest.xml
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<PoBVersion>
|
||||
<Version number="1.0.24"/>
|
||||
<Version number="1.0.25"/>
|
||||
<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="7ebf2b5d0d580e334023fa2ae23cc36b8d4c6f9c" name="Launch.lua" part="program"/>
|
||||
<File sha1="cb07c8d4819eb81df9e98ab9039e0c9adf74c150" name="UpdateCheck.lua" part="program"/>
|
||||
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
|
||||
<File sha1="1515bf5c45cb4ff6a3aa6e103871c2af4fd3c51e" name="changelog.txt" part="program"/>
|
||||
<File sha1="c67e7e478c0a68a410afcab8e533b2803765ed27" name="changelog.txt" part="program"/>
|
||||
<File sha1="aef7145f378d0a1d5dc6f5f2d3c08d2a1b6ef264" name="Classes/BuildListControl.lua" part="program"/>
|
||||
<File sha1="34fdf53db3b3231ce446749227e178847b982771" name="Classes/ButtonControl.lua" part="program"/>
|
||||
<File sha1="ffe8c54a8006cb7acc34ba5c6e50772081a0a694" name="Classes/CalcsTab.lua" part="program"/>
|
||||
@@ -29,16 +29,16 @@
|
||||
<File sha1="b5d4e4e7cedcabefa029cdefc74db5ac0a82d87f" name="Classes/PopupDialog.lua" part="program"/>
|
||||
<File sha1="f2f2bda4a5a26e54cce51614e3ad48b6f7182671" name="Classes/ScrollBarControl.lua" part="program"/>
|
||||
<File sha1="261dcf54a4542e6160fd7024d8edf4fc095d9c71" name="Classes/SectionControl.lua" part="program"/>
|
||||
<File sha1="11b13d1c5cb4de24f969a92042eb600a7716b655" name="Classes/SkillListControl.lua" part="program"/>
|
||||
<File sha1="a0423380234b5414ec24371c8e035fd7c9e090b1" name="Classes/SkillsTab.lua" part="program"/>
|
||||
<File sha1="4903e6dedf251e1cef5aba47229b1d6d02e5b806" name="Classes/SkillListControl.lua" part="program"/>
|
||||
<File sha1="53da7cb269ca0e20bb7f314e42abb317d5915849" name="Classes/SkillsTab.lua" part="program"/>
|
||||
<File sha1="6317bd9ba391832dccafcb62409a5ce2988d1928" name="Classes/SliderControl.lua" part="program"/>
|
||||
<File sha1="80527e0e05c986355ce7af2ba026538aec99a63a" name="Classes/SlotSelectControl.lua" part="program"/>
|
||||
<File sha1="844b8915ca0f2e6af82f2d15978af131a33ad50e" name="Classes/TextListControl.lua" part="program"/>
|
||||
<File sha1="787ac0d738443206c15ec36544089465eec87048" name="Classes/TreeTab.lua" part="program"/>
|
||||
<File sha1="4b7675c8b4fe71cade7dd3d70793df1ed8022d01" name="Classes/UndoHandler.lua" part="program"/>
|
||||
<File sha1="e7964ce5353a63baf04f4c38e7a1c0e9e82cc7dc" name="Modules/Build.lua" part="program"/>
|
||||
<File sha1="b62de829c5f1deb139dd1f8b74236c79b6025a71" name="Modules/Build.lua" part="program"/>
|
||||
<File sha1="c03a7796aea3e9aa832fbb92c1f674ef5af690ca" name="Modules/BuildList.lua" part="program"/>
|
||||
<File sha1="f3f4a8909da5545eacca84c6cfc4eb2d1c4cce13" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="dfa4c5a0c889f3583554e3e204e66a4e595076b0" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="d4439a94dda4c3d3aa23ac123ba378a35174e425" name="Modules/CalcsView.lua" part="program"/>
|
||||
<File sha1="3fd280d8abfa60264495daad42f8ccaa92cdcd46" name="Modules/Common.lua" part="program"/>
|
||||
<File sha1="cb25bd581587ba5b35f77ca7b245334be1e5186a" name="Modules/Data.lua" part="program"/>
|
||||
@@ -47,14 +47,14 @@
|
||||
<File sha1="ef98a3a67e3019fdaa12862ba233db2088871843" name="Modules/ModParser.lua" part="program"/>
|
||||
<File sha1="bc49ce1b5e15da40476a9c99c4c690b323c0e7ad" name="Modules/ModTools.lua" part="program"/>
|
||||
<File sha1="e7ee7e5b6388facb7bf568517ecc401590757df7" name="Assets/ring.png" part="program"/>
|
||||
<File sha1="6fa99572906ac8e5f83cf5714a25abdc5c141d31" name="Data/New.lua" part="program"/>
|
||||
<File sha1="53e30631a9b001b2efb3cff7148f59061dea215d" name="Data/New.lua" part="program"/>
|
||||
<File sha1="ff7f59651abe103cbacda138210e4e2f6b35f0c2" name="Data/Rares.lua" part="program"/>
|
||||
<File sha1="ce2d294cf8e25a8ea400bdf50e19bb09f52dc430" name="Data/Gems/act_dex.lua" part="program"/>
|
||||
<File sha1="49850b6619f1274eb10116cbeae60aba52c5ff51" name="Data/Gems/act_int.lua" part="program"/>
|
||||
<File sha1="92e26ae3e528074fd71719cc08b56ce518fa3a94" name="Data/Gems/act_int.lua" part="program"/>
|
||||
<File sha1="a4543e78ef0dba1f1a6ffe396a1432e2473bd2c0" name="Data/Gems/act_str.lua" part="program"/>
|
||||
<File sha1="997177289512d8d107f45b440cddcd8ccea890fd" name="Data/Gems/other.lua" part="program"/>
|
||||
<File sha1="00bc6c49f33707e5a02bec0b463da2e632d2d478" name="Data/Gems/sup_dex.lua" part="program"/>
|
||||
<File sha1="a7684a043d5b448a50d87fcbc4339cc290777515" name="Data/Gems/sup_int.lua" part="program"/>
|
||||
<File sha1="6b8404bb706b805600aca6f602f90f7e70dc0610" name="Data/Gems/sup_int.lua" part="program"/>
|
||||
<File sha1="1b8b4655e1fb258170eb4091589f24bfb70fb8da" name="Data/Gems/sup_str.lua" part="program"/>
|
||||
<File sha1="e2bfaf8d42553867fff91aa7267dbae4e3ca460e" name="Data/Bases/amulet.lua" part="program"/>
|
||||
<File sha1="4fcd6a8fcd07137dc641b3d690f1d7f10cced81a" name="Data/Bases/axe.lua" part="program"/>
|
||||
@@ -74,24 +74,24 @@
|
||||
<File sha1="5e891ba850d0a0137c7533b9e2848f67ceb64a34" name="Data/Bases/staff.lua" part="program"/>
|
||||
<File sha1="2dcf60c634646074bcb9794c110d7083ab74034c" name="Data/Bases/sword.lua" part="program"/>
|
||||
<File sha1="23db9109ec01ec9358863de987108ca5bd63439c" name="Data/Bases/wand.lua" part="program"/>
|
||||
<File sha1="91edb2f78aa7c47c9c024a7273fe4d22bad3ff05" name="Data/Uniques/amulet.lua" part="program"/>
|
||||
<File sha1="bb591adc1f31e181f3e4cbfe61d36e0094b8b591" name="Data/Uniques/axe.lua" part="program"/>
|
||||
<File sha1="a310778e3f40ad33633646eeaa1be8f4e797ad27" name="Data/Uniques/belt.lua" part="program"/>
|
||||
<File sha1="4b972cbe39c404b42992c2e7c4fde028224d96a9" name="Data/Uniques/body.lua" part="program"/>
|
||||
<File sha1="2175f4c98ea51c13b8781e0f44ea65f0229c1cfd" name="Data/Uniques/boots.lua" part="program"/>
|
||||
<File sha1="4914d473a53877123e4ea60355053e3a06d4c2ba" name="Data/Uniques/bow.lua" part="program"/>
|
||||
<File sha1="583d410f4d475211ce6bdfd4ae8c6798ee29717a" name="Data/Uniques/amulet.lua" part="program"/>
|
||||
<File sha1="50f6fd76f91f24ee7242cd12ef98bcdb0e35d0ee" name="Data/Uniques/axe.lua" part="program"/>
|
||||
<File sha1="610887f513f7c7d5fb99153de72d4e7b64456322" name="Data/Uniques/belt.lua" part="program"/>
|
||||
<File sha1="0091f9fb8f118c97039de04391db2e83a5407c0e" name="Data/Uniques/body.lua" part="program"/>
|
||||
<File sha1="e842b68bec43f7e24913fd5684dbc31b2121c84e" name="Data/Uniques/boots.lua" part="program"/>
|
||||
<File sha1="e2d8865b9d3d194dd7e4577c5fb13aca34f71875" name="Data/Uniques/bow.lua" part="program"/>
|
||||
<File sha1="156b55263c58a93e0d100dc57a19aa81eea78326" name="Data/Uniques/claw.lua" part="program"/>
|
||||
<File sha1="e37c3fe13513a8a9917e0ed2eb9cdecbcea79566" name="Data/Uniques/dagger.lua" part="program"/>
|
||||
<File sha1="951837f4067a00f47fb85dd0c704918fc9c9f7d4" name="Data/Uniques/gloves.lua" part="program"/>
|
||||
<File sha1="16f75fd8070a546bea17757872cf735884b51580" name="Data/Uniques/helmet.lua" part="program"/>
|
||||
<File sha1="be037e9c7dd77bd040f6da18c3d6d69224990448" name="Data/Uniques/gloves.lua" part="program"/>
|
||||
<File sha1="eb2c474419dc7dafd1392d2e384780c0f11f593d" name="Data/Uniques/helmet.lua" part="program"/>
|
||||
<File sha1="9afd2f7b3b83e7433bbee56a71779e36e42644f7" name="Data/Uniques/jewel.lua" part="program"/>
|
||||
<File sha1="bd67ce59a34a5a4a04d058c900ec91d6114245ab" name="Data/Uniques/mace.lua" part="program"/>
|
||||
<File sha1="437e307db21ff13e639b95195e451ed2b9b45005" name="Data/Uniques/quiver.lua" part="program"/>
|
||||
<File sha1="50a0ec48f5b9a99acbecb4ca3c7036be4218293f" name="Data/Uniques/ring.lua" part="program"/>
|
||||
<File sha1="1ddfc7eb2d5852a397b1f488d5860953c201ab72" name="Data/Uniques/shield.lua" part="program"/>
|
||||
<File sha1="1baa948abcea507f6493ac0679c1553429f10a38" name="Data/Uniques/staff.lua" part="program"/>
|
||||
<File sha1="6e3ecd4b8c2cceb57be999ba4626dfb279fd99b2" name="Data/Uniques/sword.lua" part="program"/>
|
||||
<File sha1="f30c7cd2537f1b53335612c47ebf68682fdc33cd" name="Data/Uniques/wand.lua" part="program"/>
|
||||
<File sha1="32faba71bd84caca6c63a83ad9166d880658a1d9" name="Data/Uniques/mace.lua" part="program"/>
|
||||
<File sha1="23a8cd22b1d20b6af442978c57eb800c88f2006d" name="Data/Uniques/quiver.lua" part="program"/>
|
||||
<File sha1="9d9e7ad570fc2515f6fe0696aabb80cc5f49f856" name="Data/Uniques/ring.lua" part="program"/>
|
||||
<File sha1="6991300b610dd76cbaba826e450a7ac601cd8881" name="Data/Uniques/shield.lua" part="program"/>
|
||||
<File sha1="5fa6696ce2be10a120bbfdcc290d0821a3b80176" name="Data/Uniques/staff.lua" part="program"/>
|
||||
<File sha1="37ebbf3b10093591d6273a8a2cddc2af14c1f4b5" name="Data/Uniques/sword.lua" part="program"/>
|
||||
<File sha1="3054ba5a1cdc0720a39e4f69496564b9ad9b9dc8" name="Data/Uniques/wand.lua" part="program"/>
|
||||
<File platform="win32" sha1="e8581e70cefa0b68583be298483418c004c8152f" name="Path of Building.exe" part="runtime"/>
|
||||
<File platform="win32" sha1="914d42ca1836c5152a5f60aad23020a86bcb46d9" name="lua51.dll" part="runtime"/>
|
||||
<File platform="win32" sha1="d80db7cc56859541ac2e10db51da44cfc5709cb2" name="SimpleGraphic.dll" part="runtime"/>
|
||||
|
||||
Reference in New Issue
Block a user