Release 1.2.23

- Added/updated more uniques
- Added "Relase at 6 Stages" part to Blade Flurry
- Added CoMK and CwC supports
This commit is contained in:
Openarl
2016-12-10 03:45:07 +10:00
parent 7de11e9031
commit eda1319662
16 changed files with 428 additions and 59 deletions

View File

@@ -346,6 +346,16 @@ function CalcBreakdownClass:AddModSection(sectionData)
end
elseif tag.type == "SkillName" then
desc = "Skill: "..tag.skillName
elseif tag.type == "SkillType" then
for name, type in pairs(SkillType) do
if type == tag.skillType then
desc = "Skill type: "..self:FormatModName(name)
break
end
end
if not desc then
desc = "Skill type: ?"
end
elseif tag.type == "SlotNumber" then
desc = "When in slot #"..tag.num
elseif tag.type == "GlobalEffect" then

View File

@@ -51,7 +51,7 @@ local CalcsTabClass = common.NewClass("CalcsTab", "UndoHandler", "ControlHost",
end)
}, },
{ label = "Skill Part", flag = "multiPart", { controlName = "mainSkillPart",
control = common.New("DropDownControl", nil, 0, 0, 100, 16, nil, function(index)
control = common.New("DropDownControl", nil, 0, 0, 130, 16, nil, function(index)
self.input.skill_part = index
self:AddUndoState()
self.build.buildFlag = true

View File

@@ -82,13 +82,14 @@ end
function ModDBClass:Sum(modType, cfg, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
local flags, keywordFlags = 0, 0
local skillName, skillGem, skillPart, slotName, source, tabulate
local skillName, skillGem, skillPart, skillTypes, slotName, source, tabulate
if cfg then
flags = cfg.flags or 0
keywordFlags = cfg.keywordFlags or 0
skillName = cfg.skillName
skillGem = cfg.skillGem
skillPart = cfg.skillPart
skillTypes = cfg.skillTypes
slotName = cfg.slotName
source = cfg.source
tabulate = cfg.tabulate
@@ -187,6 +188,11 @@ function ModDBClass:Sum(modType, cfg, arg1, arg2, arg3, arg4, arg5, arg6, arg7,
value = nullValue
break
end
elseif tag.type == "SkillType" then
if not skillTypes or not skillTypes[tag.skillType] then
value = nullValue
break
end
elseif tag.type == "SlotName" then
if tag.slotName ~= slotName then
value = nullValue

View File

@@ -54,13 +54,14 @@ end
function ModListClass:Sum(modType, cfg, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
local flags, keywordFlags = 0, 0
local skillName, skillGem, skillPart, slotName, source, tabulate
local skillName, skillGem, skillPart, skillTypes, slotName, source, tabulate
if cfg then
flags = cfg.flags or 0
keywordFlags = cfg.keywordFlags or 0
skillName = cfg.skillName
skillGem = cfg.skillGem
skillPart = cfg.skillPart
skillTypes = cfg.skillTypes
slotName = cfg.slotName
source = cfg.source
tabulate = cfg.tabulate
@@ -157,6 +158,11 @@ function ModListClass:Sum(modType, cfg, arg1, arg2, arg3, arg4, arg5, arg6, arg7
value = nullValue
break
end
elseif tag.type == "SkillType" then
if not skillTypes or not skillTypes[tag.skillType] then
value = nullValue
break
end
elseif tag.type == "SlotName" then
if tag.slotName ~= slotName then
value = nullValue

View File

@@ -210,6 +210,9 @@ gems["Blade Flurry"] = {
{
name = "6 Stages",
},
{
name = "Release at 6 Stages",
},
},
color = 2,
baseFlags = {
@@ -226,8 +229,8 @@ gems["Blade Flurry"] = {
--"is_area_damage" = ?
nil, --"base_skill_show_average_damage_instead_of_dps" = ?
--"skill_can_add_multiple_charges_per_action" = ?
mod("Damage", "MORE", 20, ModFlag.Attack, 0, { type = "SkillPart", skillPart = 1 }),
mod("Damage", "MORE", 120, ModFlag.Attack, 0, { type = "SkillPart", skillPart = 2 }),
mod("Damage", "MORE", 100, ModFlag.Attack, 0, { type = "SkillPart", skillPart = 2 }),
skill("dpsMultiplier", 3, { type = "SkillPart", skillPart = 3 }),
},
qualityMods = {
mod("Speed", "INC", 0.5, ModFlag.Attack, 0, nil), --"attack_speed_+%" = 0.5

View File

@@ -89,6 +89,34 @@ gems["Portal"] = {
[10] = { },
},
}
gems["Envy"] = {
hidden = true,
color = 3,
baseFlags = {
spell = true,
aura = true,
area = true,
chaos = true,
},
skillTypes = { [2] = true, [11] = true, [5] = true, [15] = true, [27] = true, [16] = true, [18] = true, [44] = true, [50] = true, },
baseMods = {
skill("castTime", 1.2),
skill("manaCost", 50),
mod("ChaosMin", "BASE", 58, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Aura" }), --"attack_minimum_added_chaos_damage" = 58
mod("ChaosMax", "BASE", 81, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Aura" }), --"attack_maximum_added_chaos_damage" = 81
mod("AreaRadius", "INC", 0), --"base_skill_area_of_effect_+%" = 0
mod("ChaosMin", "BASE", 52, ModFlag.Spell, 0, { type = "GlobalEffect", effectType = "Aura" }), --"spell_minimum_added_chaos_damage" = 52
mod("ChaosMax", "BASE", 69, ModFlag.Spell, 0, { type = "GlobalEffect", effectType = "Aura" }), --"spell_maximum_added_chaos_damage" = 69
--"base_deal_no_damage" = ?
},
qualityMods = {
},
levelMods = {
},
levels = {
[15] = { },
},
}
gems["Gluttony of Elements"] = {
hidden = true,
color = 4,

View File

@@ -216,7 +216,53 @@ gems["Cast while Channelling"] = {
support = true,
channelling = true,
spell = true,
unsupported = true,
color = 3,
requireSkillTypes = { 58, 36, },
addSkillTypes = { },
excludeSkillTypes = { 30, },
baseMods = {
mod("ManaCost", "MORE", 40),
--"spell_uncastable_if_triggerable" = ?
},
qualityMods = {
mod("Damage", "INC", 0.5, 0, 0, nil), --"damage_+%" = 0.5
},
levelMods = {
--[1] = "cast_while_channelling_time_ms"
[2] = mod("Damage", "MORE", nil, 0, 0, { type = "SkillType", skillType = SkillType.TriggerableSpell }), --"support_cast_while_channelling_triggered_skill_damage_+%_final"
},
levels = {
[1] = { 450, 0, },
[2] = { 440, 0, },
[3] = { 440, 1, },
[4] = { 430, 1, },
[5] = { 430, 2, },
[6] = { 420, 2, },
[7] = { 420, 3, },
[8] = { 410, 3, },
[9] = { 410, 4, },
[10] = { 400, 4, },
[11] = { 400, 5, },
[12] = { 390, 5, },
[13] = { 390, 6, },
[14] = { 380, 6, },
[15] = { 380, 7, },
[16] = { 370, 7, },
[17] = { 370, 8, },
[18] = { 360, 8, },
[19] = { 360, 9, },
[20] = { 350, 9, },
[21] = { 350, 10, },
[22] = { 340, 10, },
[23] = { 340, 11, },
[24] = { 330, 11, },
[25] = { 330, 12, },
[26] = { 320, 12, },
[27] = { 320, 13, },
[28] = { 310, 13, },
[29] = { 310, 14, },
[30] = { 300, 14, },
},
}
gems["Chance to Ignite"] = {
fire = true,

View File

@@ -163,7 +163,53 @@ gems["Cast on Melee Kill"] = {
attack = true,
spell = true,
trigger = true,
unsupported = true,
color = 1,
requireSkillTypes = { 24, 36, },
addSkillTypes = { 42, },
excludeSkillTypes = { 37, 41, 30, 44, },
baseMods = {
mod("ManaCost", "MORE", 40),
--"cast_linked_spells_on_melee_kill_%" = 100
--"spell_uncastable_if_triggerable" = ?
},
qualityMods = {
mod("Damage", "INC", 0.5, 0, 0, nil), --"damage_+%" = 0.5
},
levelMods = {
[1] = mod("Damage", "MORE", nil, ModFlag.Spell), --"support_cast_on_melee_kill_spell_damage_+%_final"
},
levels = {
[1] = { 20, },
[2] = { 21, },
[3] = { 22, },
[4] = { 23, },
[5] = { 24, },
[6] = { 25, },
[7] = { 26, },
[8] = { 27, },
[9] = { 28, },
[10] = { 29, },
[11] = { 30, },
[12] = { 31, },
[13] = { 32, },
[14] = { 33, },
[15] = { 34, },
[16] = { 35, },
[17] = { 36, },
[18] = { 37, },
[19] = { 38, },
[20] = { 39, },
[21] = { 40, },
[22] = { 41, },
[23] = { 42, },
[24] = { 43, },
[25] = { 44, },
[26] = { 45, },
[27] = { 46, },
[28] = { 47, },
[29] = { 48, },
[30] = { 49, },
},
}
gems["Cast when Damage Taken"] = {
strength = true,

View File

@@ -48,9 +48,9 @@ Armour: 140
Energy Shield: 63
Requires Level 68, 62 Str, 91 Int
Adds (13-17) to (29-37) Chaos Damage
+226 to maximum Energy Shield
+32% to Cold Resistance
+20% to Lightning Resistance
+(200-250) to maximum Energy Shield
+(30-50)% to Cold Resistance
+(15-20)% to Lightning Resistance
Regenerate 100 Energy Shield per second if all worn items are Corrupted
Regenerate 35 Mana per second if all worn items are Corrupted
Corrupted
@@ -107,6 +107,22 @@ Requires Level 28, 71 Int
+1% to Critical Strike Multiplier per 1% Block Chance
+25% to Critical Strike Multiplier if you've dealt a Non-Critical Strike Recently
]],[[
Duskdawn
Maelström Staff
Staves
Physical Damage: 57119
Critical Strike Chance: 6.40%
Attacks per Second: 1.20
Weapon Range: 11
Requires Level 64, 113 Str, 113 Int
18% Chance to Block
4% Chance to Block
(60-80)% increased Critical Strike Chance for Spells
Gain (10-20)% of Elemental Damage as Extra Chaos Damage
+1% to Critical Strike Multiplier per 1% Block Chance
+60% to Critical Strike Multiplier if you've dealt a Non-Critical Strike Recently
120% increased Spell Damage if you've dealt a Critical Strike Recently
]],[[
The Brine Crown
Prophet Crown
Armour: (390 to 429)
@@ -153,13 +169,37 @@ Splintered Tower Shield
Chance to Block: (27% to 29%)
Armour: (128 to 168)
Requires 10 Str
3% reduced Movement Speed (Hidden)
+(120-160) to Armour
+(30-40) to maximum Life
Your hits can't be Evaded
+(3-5)% Chance to Block
Adds 250 to 300 Cold Damage to Counterattacks
]],[[
Perseverance
Vanguard Belt
Requires Level 78
+(260-320) to Armour and Evasion Rating
(4-8)% increased maximum Life
+(20-40)% to Cold Resistance
1% increased Attack Damage per 300 of the lowest of Armour and Evasion Rating
(14-20)% chance to gain Fortify on Melee Stun
You have Onslaught while you have Fortify
]],[[
Kitava's Feast
Void Axe
Two Hand Axes
Physical Damage: (266 to 304)(399 to 456)
Critical Strike Chance: 5.00%
Attacks per Second: 1.25
Weapon Range: 11
Requires Level 68, 149 Str, 76 Dex
Socketed Gems are supported by level 25 Melee Splash
(250-300)% increased Physical Damage
1% of Physical Attack Damage Leeched as Life
1% of Physical Attack Damage Leeched as Mana
Recover 5% of Maximum Life on Kill
Enemies you hit are destroyed on Kill
]],[[
Primordial Might
Crimson Jewel
(25-30)% increased Damage if you Summoned a Golem in the past 8 seconds
@@ -221,26 +261,26 @@ Armour is increased by Uncapped Fire Resistance
The Formless Inferno
Royal Burgonet
League: Breach
Armour: (590 to 721)
Requires Level 65, 148 Str
(157)% increased Armour
-20 Fire Damage taken when Hit
(80-120)% increased Armour
+(40-50) to maximum Life
-30% to Fire Resistance
8% of Physical Damage taken as Fire Damage
-30% to Cold Resistance
-30% to Lightning Resistance
Armour is increased by Uncapped Fire Resistance
]],[[
Xoph'ethakk's Heart
Xoph's Heart
Amber Amulet
League: Breach
Requires Level 40
Requires Level 35
+(20-30) to Strength
+(20-30) to Strength
(18-22)% increased Fire Damage
25% increased Fire Damage
+(25-35) to maximum Life
+(20-40)% to Fire Resistance
Cover Enemies in Ash when they Hit you
]],[[
Xoph'ethula's Heart
Xoph's Blood
Amber Amulet
League: Breach
Requires Level 64
@@ -393,6 +433,20 @@ Requires Level 49, 122 Str, 53 Dex
25% chance to Curse Enemies with level 10 Vulnerability on Hit
Attacks Cause Bleeding when Hitting Cursed Enemies
]],[[
Uul-Netol's Embrace
Vaal Axe
Two Hand Axes
League: Breach
Physical Damage: (300.2 to 331.8)(497.8 to 550.2)
Critical Strike Chance: 5.00%
Attacks per Second: (0.84 to 0.90)
Weapon Range: 11
Requires Level 64, 158 Str, 76 Dex
(280-320)% increased Physical Damage
(30-25)% reduced Attack Speed
Attacks Cause Bleeding when Hitting Cursed Enemies
Attack with level 20 Bone Nova when you Kill a Bleeding Enemy
]],[[
The Infinite Pursuit
Goliath Greaves
League: Breach
@@ -408,7 +462,7 @@ Titan Greaves
League: Breach
Requires Level 68, 120 Str
(60-80)% increased Armour
+67 to maximum Life
+(50-70) to maximum Life
25% increased Movement Speed
Gain a Frenzy Charge on Hit while Bleeding
15% increased Movement Speed while Bleeding
@@ -447,6 +501,22 @@ Minions have +17% to Chaos Resistance
Minions Poison Enemies on Hit
Minions Recover 20% of Maximum Life on Killing a Poisoned Enemy
]],[[
United in Dream
Cutlass
League: Breach
One Hand Swords
Physical Damage: 1144
Critical Strike Chance: 5.00%
Attacks per Second: 1.55
Weapon Range: 9
Requires Level 69, 55 Str, 79 Dex
18% increased Accuracy Rating
Grants level 15 Envy Skill
Minions deal (30-40)% increased Damage
Minions have +29% to Chaos Resistance
Minions Poison Enemies on Hit
Minions Leech 5% of Damage as Life against Poisoned Enemies
]],[[
Skin of the Loyal
Simple Robe
League: Breach
@@ -454,6 +524,56 @@ Sockets cannot be modified
+1 to Level of Socketed Gems
100% increased Global Defences
]],[[
Skin of the Lords
Simple Robe
League: Breach
Variant: Acrobatics
Variant: Ancestral Bond
Variant: Arrow Dancing
Variant: Avatar of Fire
Variant: Blood Magic
Variant: Conduit
Variant: Eldritch Battery
Variant: Elemental Equilibrium
Variant: Elemental Overload
Variant: Ghost Reaver
Variant: Iron Grip
Variant: Iron Reflexes
Variant: Mind Over Matter
Variant: Minion Instability
Variant: Pain Attunement
Variant: Phase Acrobatics
Variant: Point Blank
Variant: Resolute Technique
Variant: Unwavering Stance
Variant: Vaal Pact
Variant: Zealot's Oath
Sockets cannot be modified
+1 to Level of Socketed Gems
100% increased Global Defences
You can only Socket Corrupted Gems in this item
{variant:1}Acrobatics
{variant:2}Ancestral Bond
{variant:3}Arrow Dancing
{variant:4}Avatar of Fire
{variant:5}Blood Magic
{variant:6}Conduit
{variant:7}Eldritch Battery
{variant:8}Elemental Equilibrium
{variant:9}Elemental Overload
{variant:10}Ghost Reaver
{variant:11}Iron Grip
{variant:12}Iron Reflexes
{variant:13}Mind Over Matter
{variant:14}Minion Instability
{variant:15}Pain Attunement
{variant:16}Phase Acrobatics
{variant:17}Point Blank
{variant:18}Resolute Technique
{variant:19}Unwavering Stance
{variant:20}Vaal Pact
{variant:21}Zealot's Oath
]],[[
The Red Dream
Crimson Jewel
League: Breach
@@ -462,6 +582,17 @@ Gain 5% of Fire Damage as Extra Chaos Damage
Passives granting Fire Resistance or all Elemental Resistances in Radius
also grant an equal chance to gain an Endurance Charge on Kill
]],[[
The Red Nightmare
Crimson Jewel
League: Breach
Limited to: 1
Radius: Large
Gain 5% of Fire Damage as Extra Chaos Damage
Passives granting Fire Resistance or all Elemental Resistances in Radius
also grant Chance to Block at 35% of its value
Passives granting Fire Resistance or all Elemental Resistances in Radius
also grant an equal chance to gain an Endurance Charge on Kill
]],[[
The Green Dream
Viridian Jewel
League: Breach
@@ -470,6 +601,17 @@ Gain 5% of Cold Damage as Extra Chaos Damage
Passives granting Cold Resistance or all Elemental Resistances in Radius
also grant an equal chance to gain a Frenzy Charge on Kill
]],[[
The Green Nightmare
Viridian Jewel
League: Breach
Limited to: 1
Radius: Large
Gain 5% of Cold Damage as Extra Chaos Damage
Passives granting Cold Resistance or all Elemental Resistances in Radius
also grant Chance to Dodge Attacks at 35% of its value
Passives granting Cold Resistance or all Elemental Resistances in Radius
also grant an equal chance to gain a Frenzy Charge on Kill
]],[[
The Blue Dream
Cobalt Jewel
League: Breach
@@ -477,5 +619,26 @@ Radius: Large
Gain 5% of Lightning Damage as Extra Chaos Damage
Passives granting Lightning Resistance or all Elemental Resistances in Radius
also grant an equal chance to gain a Power Charge on Kill
]]
]],[[
The Blue Nightmare
Cobalt Jewel
League: Breach
Limited to: 1
Radius: Large
Gain 5% of Lightning Damage as Extra Chaos Damage
Passives granting Lightning Resistance or all Elemental Resistances in Radius
also grant Chance to Block Spells at 35% of its value
Passives granting Lightning Resistance or all Elemental Resistances in Radius
also grant an equal chance to gain a Power Charge on Kill
]],[[
Presence of Chayula
Onyx Amulet
League: Breach
Requires Level 60
+(10-16) to all Attributes
30% increased Rarity of Items found
+60% to Chaos Resistance
Cannot be Stunned
20% of Maximum Life Converted to Energy Shield
]],
}

View File

@@ -361,7 +361,7 @@ Requires Level 58, 45 Dex, 45 Int
2% increased Attack Speed per Frenzy Charge
6% increased Accuracy Rating per Frenzy Charge
10% reduced Frenzy Charge Duration per Frenzy Charge
When at Maximum Frenzy Charges, Attacks Poison Enemies
While at Maximum Frenzy Charges, Attacks Poison Enemies
]],[[
Thunderfist
Murder Mitts

View File

@@ -203,7 +203,7 @@ function buildMode:Init(dbFileName, buildName)
self.modFlag = true
self.buildFlag = true
end)
self.controls.mainSkillPart = common.New("DropDownControl", {"TOPLEFT",self.controls.mainSocketGroup,"BOTTOMLEFT"}, 0, 20, 100, 18, nil, function(index)
self.controls.mainSkillPart = common.New("DropDownControl", {"TOPLEFT",self.controls.mainSocketGroup,"BOTTOMLEFT"}, 0, 20, 150, 18, nil, function(index)
local mainSocketGroup = self.skillsTab.socketGroupList[self.mainSocketGroup]
mainSocketGroup.displaySkillList[mainSocketGroup.mainActiveSkill].activeGem.srcGem.skillPart = index
self.modFlag = true

View File

@@ -303,6 +303,7 @@ local function buildActiveSkillModList(env, activeSkill)
skillName = activeSkill.activeGem.name:gsub("^Vaal ",""), -- This allows modifiers that target specific skills to also apply to their Vaal counterpart
skillGem = activeSkill.activeGem,
skillPart = activeSkill.skillPart,
skillTypes = activeSkill.skillTypes,
slotName = activeSkill.slotName,
}
@@ -1229,14 +1230,14 @@ local function performCalcs(env)
}
end
end
slotBreakdown = function(source, sourceName, cfg, base, ...)
slotBreakdown = function(source, sourceName, cfg, base, total, ...)
local inc = modDB:Sum("INC", cfg, ...)
local more = modDB:Sum("MORE", cfg, ...)
t_insert(breakdown[...].slots, {
base = base,
inc = (inc ~= 0) and s_format(" x %.2f", 1 + inc/100),
more = (more ~= 1) and s_format(" x %.2f", more),
total = s_format("%.2f", base * (1 + inc / 100) * more),
total = s_format("%.2f", total or (base * (1 + inc / 100) * more)),
source = source,
sourceName = sourceName,
item = env.itemList[source],
@@ -1305,9 +1306,26 @@ local function performCalcs(env)
output.Life = 1
condList["FullLife"] = true
else
output.Life = round(calcVal(modDB, "Life"))
local base = modDB:Sum("BASE", cfg, "Life")
local inc = modDB:Sum("INC", cfg, "Life")
local more = modDB:Sum("MORE", cfg, "Life")
local conv = modDB:Sum("BASE", nil, "LifeConvertToEnergyShield")
output.Life = round(base * (1 + inc/100) * more * (1 - conv/100))
if breakdown then
simpleBreakdown(nil, nil, "Life")
if inc ~= 0 or more ~= 1 or conv ~= 0 then
breakdown.Life = { }
breakdown.Life[1] = s_format("%g ^8(base)", base)
if inc ~= 0 then
t_insert(breakdown.Life, s_format("x %.2f ^8(increased/reduced)", 1 + inc/100))
end
if more ~= 1 then
t_insert(breakdown.Life, s_format("x %.2f ^8(more/less)", more))
end
if conv ~= 0 then
t_insert(breakdown.Life, s_format("x %.2f ^8(converted to Energy Shield)", 1 - conv/100))
end
t_insert(breakdown.Life, s_format("= %g", output.Life))
end
end
end
output.Mana = round(calcVal(modDB, "Mana"))
@@ -1370,14 +1388,14 @@ local function performCalcs(env)
if energyShieldBase > 0 then
energyShield = energyShield + energyShieldBase * calcMod(modDB, nil, "EnergyShield", "Defences")
if breakdown then
slotBreakdown("Global", nil, nil, energyShieldBase, "EnergyShield", "Defences")
slotBreakdown("Global", nil, nil, energyShieldBase, nil, "EnergyShield", "Defences")
end
end
local armourBase = modDB:Sum("BASE", nil, "Armour", "ArmourAndEvasion")
if armourBase > 0 then
armour = armour + armourBase * calcMod(modDB, nil, "Armour", "ArmourAndEvasion", "Defences")
if breakdown then
slotBreakdown("Global", nil, nil, armourBase, "Armour", "ArmourAndEvasion", "Defences")
slotBreakdown("Global", nil, nil, armourBase, nil, "Armour", "ArmourAndEvasion", "Defences")
end
end
local evasionBase = modDB:Sum("BASE", nil, "Evasion", "ArmourAndEvasion")
@@ -1385,12 +1403,12 @@ local function performCalcs(env)
if ironReflexes then
armour = armour + evasionBase * calcMod(modDB, nil, "Armour", "Evasion", "ArmourAndEvasion", "Defences")
if breakdown then
slotBreakdown("Conversion", "Evasion to Armour", nil, evasionBase, "Armour", "Evasion", "ArmourAndEvasion", "Defences")
slotBreakdown("Conversion", "Evasion to Armour", nil, evasionBase, nil, "Armour", "Evasion", "ArmourAndEvasion", "Defences")
end
else
evasion = evasion + evasionBase * calcMod(modDB, nil, "Evasion", "ArmourAndEvasion", "Defences")
if breakdown then
slotBreakdown("Global", nil, nil, evasionBase, "Evasion", "ArmourAndEvasion", "Defences")
slotBreakdown("Global", nil, nil, evasionBase, nil, "Evasion", "ArmourAndEvasion", "Defences")
end
end
end
@@ -1407,7 +1425,7 @@ local function performCalcs(env)
energyShield = energyShield + energyShieldBase * calcMod(modDB, slotCfg, "EnergyShield", "Defences")
gearEnergyShield = gearEnergyShield + energyShieldBase
if breakdown then
slotBreakdown(slot, nil, slotCfg, energyShieldBase, "EnergyShield", "Defences")
slotBreakdown(slot, nil, slotCfg, energyShieldBase, nil, "EnergyShield", "Defences")
end
end
armourBase = armourData.Armour or 0
@@ -1418,7 +1436,7 @@ local function performCalcs(env)
armour = armour + armourBase * calcMod(modDB, slotCfg, "Armour", "ArmourAndEvasion", "Defences")
gearArmour = gearArmour + armourBase
if breakdown then
slotBreakdown(slot, nil, slotCfg, armourBase, "Armour", "ArmourAndEvasion", "Defences")
slotBreakdown(slot, nil, slotCfg, armourBase, nil, "Armour", "ArmourAndEvasion", "Defences")
end
end
evasionBase = armourData.Evasion or 0
@@ -1427,13 +1445,13 @@ local function performCalcs(env)
armour = armour + evasionBase * calcMod(modDB, slotCfg, "Armour", "Evasion", "ArmourAndEvasion", "Defences")
gearArmour = gearArmour + evasionBase
if breakdown then
slotBreakdown(slot, nil, slotCfg, evasionBase, "Armour", "Evasion", "ArmourAndEvasion", "Defences")
slotBreakdown(slot, nil, slotCfg, evasionBase, nil, "Armour", "Evasion", "ArmourAndEvasion", "Defences")
end
else
evasion = evasion + evasionBase * calcMod(modDB, slotCfg, "Evasion", "ArmourAndEvasion", "Defences")
gearEvasion = gearEvasion + evasionBase
if breakdown then
slotBreakdown(slot, nil, slotCfg, evasionBase, "Evasion", "ArmourAndEvasion", "Defences")
slotBreakdown(slot, nil, slotCfg, evasionBase, nil, "Evasion", "ArmourAndEvasion", "Defences")
end
end
end
@@ -1444,12 +1462,27 @@ local function performCalcs(env)
energyShieldBase = modDB:Sum("BASE", nil, "Mana") * convManaToES / 100
energyShield = energyShield + energyShieldBase * calcMod(modDB, nil, "Mana", "EnergyShield", "Defences")
if breakdown then
slotBreakdown("Conversion", "Mana to Energy Shield", nil, energyShieldBase, "EnergyShield", "Defences", "Mana")
slotBreakdown("Conversion", "Mana to Energy Shield", nil, energyShieldBase, nil, "EnergyShield", "Defences", "Mana")
end
end
local convLifeToES = modDB:Sum("BASE", nil, "LifeConvertToEnergyShield")
if convLifeToES > 0 then
energyShieldBase = modDB:Sum("BASE", nil, "Life") * convLifeToES / 100
local total
if modDB:Sum("FLAG", nil, "ChaosInoculation") then
total = 1
else
total = energyShieldBase * calcMod(modDB, nil, "Life", "EnergyShield", "Defences")
end
energyShield = energyShield + total
if breakdown then
slotBreakdown("Conversion", "Life to Energy Shield", nil, energyShieldBase, total, "EnergyShield", "Defences", "Life")
end
end
output.EnergyShield = round(energyShield)
output.Armour = round(armour)
output.Evasion = round(evasion)
output.LowestOfArmourAndEvasion = m_min(output.Armour, output.Evasion)
output["Gear:EnergyShield"] = gearEnergyShield
output["Gear:Armour"] = gearArmour
output["Gear:Evasion"] = gearEvasion

View File

@@ -322,6 +322,7 @@ local modTagList = {
["per (%d+) evasion rating"] = function(num) return { tag = { type = "PerStat", stat = "Evasion", div = num } } end,
["per (%d+) accuracy rating"] = function(num) return { tag = { type = "PerStat", stat = "Accuracy", div = num } } end,
["per (%d+)%% block chance"] = function(num) return { tag = { type = "PerStat", stat = "BlockChance", div = num } } end,
["per (%d+) of the lowest of armour and evasion rating"] = function(num) return { tag = { type = "PerStat", stat = "LowestOfArmourAndEvasion", div = num } } end,
-- Slot conditions
["in main hand"] = { tag = { type = "SlotNumber", num = 1 } },
["when in main hand"] = { tag = { type = "SlotNumber", num = 1 } },
@@ -367,6 +368,7 @@ local modTagList = {
["if you've killed recently"] = { tag = { type = "Condition", var = "KilledRecently" } },
["if you haven't killed recently"] = { tag = { type = "Condition", var = "NotKilledRecently" } },
["if you or your totems have killed recently"] = { tag = { type = "Condition", varList = {"KilledRecently","TotemsKilledRecently"} } },
["if you've killed a maimed enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "Condition", var = "EnemyMaimed" } } },
["if you've been hit recently"] = { tag = { type = "Condition", var = "BeenHitRecently" } },
["if you were hit recently"] = { tag = { type = "Condition", var = "BeenHitRecently" } },
["if you were damaged by a hit recently"] = { tag = { type = "Condition", var = "BeenHitRecently" } },
@@ -538,6 +540,7 @@ local specialModList = {
["gain (%d+)%% of bow physical damage as extra damage of each element"] = function(num) return { mod("PhysicalDamageGainAsLightning", "BASE", num, nil, ModFlag.Bow), mod("PhysicalDamageGainAsCold", "BASE", num, nil, ModFlag.Bow), mod("PhysicalDamageGainAsFire", "BASE", num, nil, ModFlag.Bow) } end,
["totems fire (%d+) additional projectiles"] = function(num) return { mod("ProjectileCount", "BASE", num, nil, 0, KeywordFlag.Totem) } end,
["when at maximum frenzy charges, attacks poison enemies"] = { mod("PoisonChance", "BASE", 100, nil, ModFlag.Attack, { type = "Condition", var = "AtMaxFrenzyCharges" }) },
["while at maximum frenzy charges, attacks poison enemies"] = { mod("PoisonChance", "BASE", 100, nil, ModFlag.Attack, { type = "Condition", var = "AtMaxFrenzyCharges" }) },
["skills chain an additional time while at maximum frenzy charges"] = { mod("ChainCount", "BASE", 1, { type = "Condition", var = "AtMaxFrenzyCharges" }) },
["you cannot be shocked while at maximum endurance charges"] = { mod("AvoidShock", "BASE", 100, { type = "Condition", var = "AtMaxEnduranceCharges" }) },
["you have no life regeneration"] = { flag("NoLifeRegen") },
@@ -551,19 +554,31 @@ local specialModList = {
["critical strikes deal no damage"] = { flag("NoCritDamage") },
["enemies chilled by you take (%d+)%% increased burning damage"] = function(num) return { mod("Misc", "LIST", { type = "EnemyModifier", mod = mod("BurningDamageTaken", "INC", num) }, { type = "Condition", var = "EnemyChilled" }) } end,
["attacks with this weapon penetrate (%d+)%% elemental resistances"] = function(num) return { mod("ElementalPenetration", "BASE", num, nil, ModFlag.Weapon) } end,
["(%d+)%% of maximum life converted to energy shield"] = function(num) return { mod("LifeConvertToEnergyShield", "BASE", num) } end,
}
local keystoneList = {
-- List of keystones that can be found on uniques
"Zealot's Oath",
"Pain Attunement",
"Blood Magic",
"Unwavering Stance",
"Ghost Reaver",
"Conduit",
"Mind Over Matter",
"Acrobatics",
"Phase Acrobatics",
"Ancestral Bond",
"Arrow Dancing",
"Avatar of Fire",
"Blood Magic",
"Conduit",
"Eldritch Battery",
"Elemental Equilibrium",
"Elemental Overload",
"Ghost Reaver",
"Iron Grip",
"Iron Reflexes",
"Mind Over Matter",
"Minion Instability",
"Pain Attunement",
"Phase Acrobatics",
"Point Blank",
"Resolute Technique",
"Unwavering Stance",
"Vaal Pact",
"Zealot's Oath",
}
for _, name in pairs(keystoneList) do
specialModList[name:lower()] = { mod("Keystone", "LIST", name) }
@@ -855,6 +870,10 @@ local function parseMod(line)
keywordFlags = bor(keywordFlags, data.keywordFlags or 0)
if data.tag then
t_insert(tagList, copyTable(data.tag))
elseif data.tagList then
for _, tag in ipairs(data.tagList) do
t_insert(tagList, copyTable(tag))
end
end
end
end

View File

@@ -49,6 +49,11 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)
![ss3](https://cloud.githubusercontent.com/assets/19189971/18089780/f0ff234a-6f04-11e6-8c88-6193fe59a5c4.png)
## Changelog
### 1.2.23 - 2016/12/10
* Added and updated more uniques from 2.5.0
* Added a new skill part to Blade Flurry that approximates the DPS from releasing every time you hit 6 stages
* Added support for the Cast on Melee Kill and Cast while Channelling support gems
### 1.2.22 - 2016/12/04
* Added many more uniques from 2.5.0, and updated mods on others
* Updated existing uniques that were changed in 2.5.0

View File

@@ -1,3 +1,7 @@
VERSION[1.2.23][2016/12/10]
* Added and updated more uniques from 2.5.0
* Added a new skill part to Blade Flurry that approximates the DPS from releasing every time you hit 6 stages
* Added support for the Cast on Melee Kill and Cast while Channelling support gems
VERSION[1.2.22][2016/12/04]
* Added many more uniques from 2.5.0, and updated mods on others
* Updated existing uniques that were changed in 2.5.0

View File

@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<PoBVersion>
<Version number="1.2.22"/>
<Version number="1.2.23"/>
<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="46a39bc720b0339359fe598ea2828a9a43ecbcea" name="Launch.lua" part="program"/>
<File sha1="d8e42beeb38baabcc197d658e4c0af33419eeff3" name="UpdateCheck.lua" part="program"/>
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
<File sha1="9c0caabb3582a76a30dabbf4d2e6df5e2f18dc46" name="changelog.txt" part="program"/>
<File sha1="6c606b431419234b808b2e3df6df4507454f2f65" 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="441d881e7e7ad3512aedb50bec8fa811b268a4db" name="Classes/CalcBreakdownControl.lua" part="program"/>
<File sha1="5a4b4930533a97f4d87231a6024b7f48ff0bad89" 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="dc4757d15d64014827827948ee803dcb8c955c6a" name="Classes/CalcsTab.lua" part="program"/>
<File sha1="5d30e33c23cabf22917c02eb7df1963a5a27cb6a" name="Classes/CheckBoxControl.lua" part="program"/>
<File sha1="9513e7419c7f84ca372e3c3b441c135982e7f4a0" name="Classes/ConfigTab.lua" part="program"/>
<File sha1="bbb08f183746d6ec023e2bd08fb7a89d365381da" name="Classes/Control.lua" part="program"/>
@@ -26,8 +26,8 @@
<File sha1="dc4977d3ac5655af1c0f6c56bc0b6c3318b19426" name="Classes/ItemSlotControl.lua" part="program"/>
<File sha1="8244d99b5c75d7ff762b69d949fab724c3972bc8" name="Classes/ItemsTab.lua" part="program"/>
<File sha1="62138c7db82d57d638a16610a26acd0de75d3486" name="Classes/LabelControl.lua" part="program"/>
<File sha1="b2e424a04c0a46f007af659c967af9eecc79820c" name="Classes/ModDB.lua" part="program"/>
<File sha1="fcba5bf3b3da6c74976480c65b8cc0e6a34302e2" name="Classes/ModList.lua" part="program"/>
<File sha1="3fe34963c1a07ce31ee01d664356f0343cb744d1" name="Classes/ModDB.lua" part="program"/>
<File sha1="e05ce1e68c54b49e3218bc088da531ea5b503af5" name="Classes/ModList.lua" part="program"/>
<File sha1="9bc0d8791e7825e52070e96e7894d29fad70cf98" name="Classes/NotesTab.lua" part="program"/>
<File sha1="013f8761ad15f6e500b1d05ae868b61551bb8937" name="Classes/PassiveSpec.lua" part="program"/>
<File sha1="9a6bce38a62d9c07851cdd095e91f088e37cea4e" name="Classes/PassiveTree.lua" part="program"/>
@@ -42,27 +42,27 @@
<File sha1="a4f9cc96ba474d0a75c768a0eabec92837e027cf" name="Classes/TextListControl.lua" part="program"/>
<File sha1="74e2261bb0803451c80e4eeef83834a7c3930b92" name="Classes/TreeTab.lua" part="program"/>
<File sha1="4b7675c8b4fe71cade7dd3d70793df1ed8022d01" name="Classes/UndoHandler.lua" part="program"/>
<File sha1="8e8563899b7f4d6b59f5fd5e3459aef791ac4dec" name="Modules/Build.lua" part="program"/>
<File sha1="2a571ebca5ac07e4cbe68927f50ffff28b61f447" name="Modules/Build.lua" part="program"/>
<File sha1="8a07fe01c53b785ebb6256236e781fbaabd36c0e" name="Modules/BuildList.lua" part="program"/>
<File sha1="75bb644f8a76a45f2137550ed23ccd616f849eb7" name="Modules/Calcs.lua" part="program"/>
<File sha1="44191326068f2805c89dcbb3402959332d61374b" 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="2b393e960721c36dc4c99645a507d7232cbd6f0e" name="Modules/Data.lua" part="program"/>
<File sha1="3a102f9c6a0a4cdb04d549c38939fbdae07add28" name="Modules/ItemTools.lua" part="program"/>
<File sha1="6165a0baf0c7d1cb6adf9bef68bfa9d9d3ad67ec" name="Modules/Main.lua" part="program"/>
<File sha1="e57060e270aaef999e79e367ad13a6710c25611e" name="Modules/ModParser.lua" part="program"/>
<File sha1="95c33fe68d9a0db9251f46e5c9ffe4504ea46c89" 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="58d6c84bdd807975297d243991a0f09a53dd0b4f" name="Data/New.lua" part="program"/>
<File sha1="d27b4b9d03af76a769db60c574dc65c16c5ff8e0" name="Data/New.lua" part="program"/>
<File sha1="209c868db01f0d47065fcae27da12e06fd997456" name="Data/Rares.lua" part="program"/>
<File sha1="c8932fc5bf4e8c8f0d4fcf5ba7d05a93ab18d143" name="Data/Gems/act_dex.lua" part="program"/>
<File sha1="7bb4f76b0777497c8ca82f8f66d7561d4c4bf6f2" name="Data/Gems/act_dex.lua" part="program"/>
<File sha1="70e0589dc2370e5431c041e6e35e8c94558d3983" name="Data/Gems/act_int.lua" part="program"/>
<File sha1="98b8169677b3fd87c464b6bd412b0baabf3bb9de" name="Data/Gems/act_str.lua" part="program"/>
<File sha1="f6d7bc0e523b7d97fd3f2a8d2f09476716757ce1" name="Data/Gems/other.lua" part="program"/>
<File sha1="36c05ce68e9649c969e25afacb784a96c49182ab" name="Data/Gems/other.lua" part="program"/>
<File sha1="b2f6b177821de87288760644f2ecdbde07a9c4c9" name="Data/Gems/sup_dex.lua" part="program"/>
<File sha1="8399aba7ef9cb3162a3132c8a346c7153a9f8616" name="Data/Gems/sup_int.lua" part="program"/>
<File sha1="da99fcdf4bdea0919e8338ad6f410c1c5d08179b" name="Data/Gems/sup_str.lua" part="program"/>
<File sha1="6e01888d12cbde3a5a2eca91e4be6e3e81a89a78" name="Data/Gems/sup_int.lua" part="program"/>
<File sha1="7256813ed37a2a995d61ceabd320adf8bf332232" name="Data/Gems/sup_str.lua" part="program"/>
<File sha1="48d916e1cf089c292b2c614805f80ce85cff55d9" name="Data/Bases/amulet.lua" part="program"/>
<File sha1="78410a8a3ee33ad331fee2abd83e235fe5b702f6" name="Data/Bases/axe.lua" part="program"/>
<File sha1="48b7831da9941b9d8f296d0b094bcb19d2f33f5e" name="Data/Bases/belt.lua" part="program"/>
@@ -89,7 +89,7 @@
<File sha1="daec44ec8f1d684814c4bdafde783aec6beddbe3" name="Data/Uniques/bow.lua" part="program"/>
<File sha1="848e81b370e793cf36ed13e7cc1059f9de1bceca" name="Data/Uniques/claw.lua" part="program"/>
<File sha1="e37c3fe13513a8a9917e0ed2eb9cdecbcea79566" name="Data/Uniques/dagger.lua" part="program"/>
<File sha1="7287e7c23374cdf070da9ef9aae877d9cfd73bb9" name="Data/Uniques/gloves.lua" part="program"/>
<File sha1="e0d201ffe0c8d9b308cd956673ce8098f9c5f662" name="Data/Uniques/gloves.lua" part="program"/>
<File sha1="a721049dadcdbfcb2ed82787edf704c45ec4e429" name="Data/Uniques/helmet.lua" part="program"/>
<File sha1="6c5fc615f4712d447d957b7b7b802838a3a9d38e" name="Data/Uniques/jewel.lua" part="program"/>
<File sha1="86cbfeea1b96753947811cd3d95d8f2f28d1cb5e" name="Data/Uniques/mace.lua" part="program"/>