Release 1.3.6

- Added skill part to Barrage
- Added crit overcap info to crit breakdown
- Default gem level now varies according to the gem's max level
- Fixed quality bug introduced in 1.3.5
This commit is contained in:
Openarl
2017-02-21 22:19:12 +10:00
parent fa8e32ab13
commit aa192f7bcd
12 changed files with 83 additions and 24 deletions

View File

@@ -2095,10 +2095,13 @@ local function performCalcs(env)
output.CritChance = 100
else
local base = modDB:Sum("BASE", cfg, "CritChance")
output.CritChance = (baseCrit + base) * calcMod(modDB, cfg, "CritChance")
local inc = modDB:Sum("INC", cfg, "CritChance")
local more = modDB:Sum("MORE", cfg, "CritChance")
output.CritChance = (baseCrit + base) * (1 + inc / 100) * more
if env.mode_effective then
output.CritChance = output.CritChance + enemyDB:Sum("BASE", nil, "SelfExtraCritChance")
end
local preCapCritChance = output.CritChance
output.CritChance = m_min(output.CritChance, 95)
if (baseCrit + base) > 0 then
output.CritChance = m_max(output.CritChance, 5)
@@ -2112,8 +2115,6 @@ local function performCalcs(env)
output.CritChance = output.CritChance * output.HitChance / 100
end
if breakdown and output.CritChance ~= baseCrit then
local inc = modDB:Sum("INC", cfg, "CritChance")
local more = modDB:Sum("MORE", cfg, "CritChance")
local enemyExtra = enemyDB:Sum("BASE", nil, "SelfExtraCritChance")
breakdown.CritChance = { }
if base ~= 0 then
@@ -2131,6 +2132,10 @@ local function performCalcs(env)
t_insert(breakdown.CritChance, s_format("+ %g ^8(extra chance for enemy to be crit)", enemyExtra))
end
t_insert(breakdown.CritChance, s_format("= %g", preLuckyCritChance))
if preCapCritChance > 95 then
local overCap = preCapCritChance - 95
t_insert(breakdown.CritChance, s_format("Crit is overcapped by %.2f%% (%d%% increased Critical Strike Chance)", overCap, overCap / more / (baseCrit + base) * 100))
end
if env.mode_effective and modDB:Sum("FLAG", cfg, "CritChanceLucky") then
t_insert(breakdown.CritChance, "Crit Chance is Lucky:")
t_insert(breakdown.CritChance, s_format("1 - (1 - %.4f) x (1 - %.4f)", preLuckyCritChance / 100, preLuckyCritChance / 100))

View File

@@ -56,7 +56,7 @@ end
function itemLib.parseItemRaw(item)
item.name = "?"
item.rarity = "UNIQUE"
item.quality = 0
item.quality = nil
item.rawLines = { }
for line in string.gmatch(item.raw .. "\r\n", "([^\r\n]*)\r?\n") do
line = line:gsub("^%s+",""):gsub("%s+$","")
@@ -260,12 +260,19 @@ function itemLib.parseItemRaw(item)
if item.variantList then
item.variant = m_min(#item.variantList, item.variant or #item.variantList)
end
if not item.quality then
itemLib.normaliseQuality(item)
end
itemLib.buildItemModList(item)
end
function itemLib.normaliseQuality(item)
if not item.corrupted and not item.uniqueID and item.base and (item.base.armour or item.base.weapon or item.base.flask) then
item.quality = 20
if item.base and (item.base.armour or item.base.weapon or item.base.flask) then
if not item.quality then
item.quality = item.corrupted and 0 or 20
elseif not item.uniqueID and not item.corrupted then
item.quality = 20
end
end
end
@@ -306,7 +313,7 @@ function itemLib.createItemRaw(item)
end
t_insert(rawLines, "Selected Variant: "..item.variant)
end
if item.quality > 0 then
if item.quality then
t_insert(rawLines, "Quality: "..item.quality)
end
if item.sockets then

View File

@@ -275,6 +275,7 @@ local modFlagList = {
["with ranged weapons"] = { flags = ModFlag.WeaponRanged },
-- Skill types
["spell"] = { flags = ModFlag.Spell },
["with spells"] = { flags = ModFlag.Spell },
["for spells"] = { flags = ModFlag.Spell },
["with attacks"] = { flags = ModFlag.Attack },
["for attacks"] = { flags = ModFlag.Attack },