Merge remote-tracking branch 'origin/dev'
This commit is contained in:
@@ -513,7 +513,7 @@ function PassiveTreeViewClass:Zoom(level, viewPort)
|
||||
end
|
||||
|
||||
function PassiveTreeViewClass:DoesNodeMatchSearchStr(node)
|
||||
if node.type == "mastery" then
|
||||
if node.type == "classStart" or node.type == "mastery" then
|
||||
return
|
||||
end
|
||||
|
||||
@@ -540,6 +540,12 @@ function PassiveTreeViewClass:DoesNodeMatchSearchStr(node)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Check node type
|
||||
local errMsg, match = PCall(string.match, node.type:lower(), self.searchStr:lower())
|
||||
if match then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
function PassiveTreeViewClass:AddNodeName(tooltip, node)
|
||||
|
||||
@@ -327,14 +327,15 @@ function SkillsTabClass:CreateGemSlot(index)
|
||||
self.build.buildFlag = true
|
||||
end)
|
||||
slot.enabled.tooltipFunc = function(tooltip)
|
||||
tooltip:Clear()
|
||||
if self.displayGroup.gemList[index] then
|
||||
local calcFunc, calcBase = self.build.calcsTab:GetMiscCalculator(self.build)
|
||||
if calcFunc then
|
||||
self.displayGroup.gemList[index].enabled = not self.displayGroup.gemList[index].enabled
|
||||
local output = calcFunc()
|
||||
self.displayGroup.gemList[index].enabled = not self.displayGroup.gemList[index].enabled
|
||||
self.build:AddStatComparesToTooltip(tooltip, calcBase, output, self.displayGroup.gemList[index].enabled and "^7Disabling this gem will give you:" or "^7Enabling this gem will give you:")
|
||||
if tooltip:CheckForUpdate(self.build.outputRevision) then
|
||||
if self.displayGroup.gemList[index] then
|
||||
local calcFunc, calcBase = self.build.calcsTab:GetMiscCalculator(self.build)
|
||||
if calcFunc then
|
||||
self.displayGroup.gemList[index].enabled = not self.displayGroup.gemList[index].enabled
|
||||
local output = calcFunc()
|
||||
self.displayGroup.gemList[index].enabled = not self.displayGroup.gemList[index].enabled
|
||||
self.build:AddStatComparesToTooltip(tooltip, calcBase, output, self.displayGroup.gemList[index].enabled and "^7Disabling this gem will give you:" or "^7Enabling this gem will give you:")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
1
Data/2_6/ModCache.lua
Normal file
1
Data/2_6/ModCache.lua
Normal file
File diff suppressed because one or more lines are too long
1
Data/3_0/ModCache.lua
Normal file
1
Data/3_0/ModCache.lua
Normal file
File diff suppressed because one or more lines are too long
@@ -94,13 +94,13 @@ Has 1 Socket
|
||||
{variant:1}+2 to Level of Socketed Golem Gems
|
||||
{variant:2}+3 to Level of Socketed Golem Gems
|
||||
{variant:1}Socketed Gems are Supported by level 15 Concentrated Effect
|
||||
{variant:2}Socketed Golem Gems have 25% increased Buff Effect
|
||||
{variant:2}25% increased Effect of Buffs granted by Socketed Golem Skills
|
||||
{variant:2}Socketed Golem Skills gain 20% of Maximum Life as Extra Maximum Energy Shield
|
||||
{variant:1}(10-25)% increased Spell Damage
|
||||
{variant:2}(20-25)% increased Spell Damage
|
||||
+(15-25) to maximum Energy Shield
|
||||
+(20-40)% to Lightning Resistance
|
||||
{variant:1}Socketed Gems are Supported by level 15 Increased Minion Life
|
||||
{variant:2}Socketed Golem Gems have 20% of Golem Life added as Energy Shield
|
||||
]],[[
|
||||
Call of the Brotherhood
|
||||
Two-Stone Ring
|
||||
@@ -316,7 +316,7 @@ Has 1 Socket
|
||||
{variant:1}+2 to Level of Socketed Golem Gems
|
||||
{variant:2}+3 to Level of Socketed Golem Gems
|
||||
{variant:1}Socketed Gems are Supported by level 13 Faster Attacks
|
||||
{variant:2}Socketed Golem Gems have 20% increased Attack and Cast Speed
|
||||
{variant:2}Socketed Golem Skills have 20% increased Attack and Cast Speed
|
||||
Adds (5-10) to (11-15) Physical Damage to Attacks
|
||||
(5-10)% increased Attack Speed
|
||||
{variant:1}(1-2)% chance to Dodge Attacks
|
||||
@@ -403,9 +403,9 @@ Has 1 Socket
|
||||
{variant:1}Adds (8-12) to (20-30) Fire Damage to Attacks
|
||||
(20-30)% increased Fire Damage
|
||||
{variant:1}Socketed Gems are Supported by level 12 Lesser Multiple Projectiles
|
||||
{variant:2}Socketed Golem Gems have a 25% chance to Taunt on Hit
|
||||
{variant:2}Socketed Golem Skills have 25% chance to Taunt on Hit
|
||||
{variant:1}Socketed Gems are Supported by level 17 Increased Minion Damage
|
||||
{variant:2}Socketed Golem Gems have 5% of Life Regenerated per second
|
||||
{variant:2}Socketed Golem Skills have 5% Life Regenerated per second
|
||||
]],[[
|
||||
Rigwald's Crest
|
||||
Two-Stone Ring
|
||||
|
||||
@@ -382,8 +382,10 @@ function calcs.buildActiveSkillModList(env, actor, activeSkill)
|
||||
calcs.mergeGemMods(skillModList, activeGem)
|
||||
|
||||
-- Add extra modifiers
|
||||
activeSkill.extraSkillModList = { }
|
||||
for _, value in ipairs(env.modDB:Sum("LIST", activeSkill.skillCfg, "ExtraSkillMod")) do
|
||||
skillModList:AddMod(value.mod)
|
||||
t_insert(activeSkill.extraSkillModList, value.mod)
|
||||
end
|
||||
|
||||
-- Extract skill data
|
||||
|
||||
@@ -1400,7 +1400,7 @@ function calcs.offence(env, actor)
|
||||
if output.ChaosPoisonChance > 0 and output.PoisonChaosMax > 0 then
|
||||
-- Additional chance for chaos; adjust Physical damage and inflict chance
|
||||
local chance = (pass == 1) and "PoisonChanceOnCrit" or "PoisonChanceOnHit"
|
||||
local chaosChance = m_min(100, chance + output.ChaosPoisonChance)
|
||||
local chaosChance = m_min(100, output[chance] + output.ChaosPoisonChance)
|
||||
min = min * output[chance] / chaosChance
|
||||
max = max * output[chance] / chaosChance
|
||||
output[chance] = chaosChance
|
||||
|
||||
@@ -331,6 +331,9 @@ function calcs.perform(env)
|
||||
for _, mod in ipairs(env.minion.minionData.modList) do
|
||||
env.minion.modDB:AddMod(mod)
|
||||
end
|
||||
for _, mod in ipairs(env.player.mainSkill.extraSkillModList) do
|
||||
env.minion.modDB:AddMod(mod)
|
||||
end
|
||||
if env.aegisModList then
|
||||
env.minion.itemList["Weapon 3"] = env.player.itemList["Weapon 2"]
|
||||
env.minion.modDB:AddList(env.aegisModList)
|
||||
|
||||
@@ -595,8 +595,10 @@ function calcs.initEnv(build, mode, override)
|
||||
socketGroup.mainActiveSkillCalcs = m_min(#socketGroupSkillList, socketGroup.mainActiveSkillCalcs or 1)
|
||||
activeSkillIndex = socketGroup.mainActiveSkillCalcs
|
||||
else
|
||||
socketGroup.mainActiveSkill = m_min(#socketGroupSkillList, socketGroup.mainActiveSkill or 1)
|
||||
activeSkillIndex = socketGroup.mainActiveSkill
|
||||
activeSkillIndex = m_min(#socketGroupSkillList, socketGroup.mainActiveSkill or 1)
|
||||
if env.mode == "MAIN" then
|
||||
socketGroup.mainActiveSkill = activeSkillIndex
|
||||
end
|
||||
end
|
||||
env.player.mainSkill = socketGroupSkillList[activeSkillIndex]
|
||||
end
|
||||
|
||||
@@ -144,6 +144,50 @@ function isMouseInRegion(region)
|
||||
return cursorX >= region.x and cursorX < region.x + region.width and cursorY >= region.y and cursorY < region.y + region.height
|
||||
end
|
||||
|
||||
-- Write a Lua table to file
|
||||
local function qFmt(s)
|
||||
return '"'..s:gsub("\n","\\n"):gsub("\"","\\\"")..'"'
|
||||
end
|
||||
function writeLuaTable(out, t, indent)
|
||||
out:write('{')
|
||||
if indent then
|
||||
out:write('\n')
|
||||
end
|
||||
for k, v in pairs(t) do
|
||||
if indent then
|
||||
out:write(string.rep("\t", indent))
|
||||
end
|
||||
if type(k) == "string" and k:match("^%a+$") then
|
||||
out:write(k, '=')
|
||||
else
|
||||
out:write('[')
|
||||
if type(k) == "number" then
|
||||
out:write(k)
|
||||
else
|
||||
out:write(qFmt(k))
|
||||
end
|
||||
out:write(']=')
|
||||
end
|
||||
if type(v) == "table" then
|
||||
writeLuaTable(out, v, indent and indent + 1)
|
||||
elseif type(v) == "string" then
|
||||
out:write(qFmt(v))
|
||||
else
|
||||
out:write(tostring(v))
|
||||
end
|
||||
if next(t, k) ~= nil then
|
||||
out:write(',')
|
||||
end
|
||||
if indent then
|
||||
out:write('\n')
|
||||
end
|
||||
end
|
||||
if indent then
|
||||
out:write(string.rep("\t", indent-1))
|
||||
end
|
||||
out:write('}')
|
||||
end
|
||||
|
||||
-- Make a copy of a table and all subtables
|
||||
do
|
||||
local subTableMap = { }
|
||||
|
||||
@@ -111,6 +111,15 @@ function main:Init()
|
||||
self.defaultBuildPath = self.userPath.."Builds/"
|
||||
self.buildPath = self.defaultBuildPath
|
||||
MakeDir(self.buildPath)
|
||||
|
||||
if launch.devMode and IsKeyDown("CTRL") then
|
||||
self.rebuildModCache = true
|
||||
else
|
||||
-- Load mod caches
|
||||
for _, targetVersion in ipairs(targetVersionList) do
|
||||
LoadModule("Data/"..targetVersion.."/ModCache", modLib.parseModCache[targetVersion])
|
||||
end
|
||||
end
|
||||
|
||||
self.tree = { }
|
||||
for _, targetVersion in ipairs(targetVersionList) do
|
||||
@@ -156,6 +165,30 @@ function main:Init()
|
||||
end
|
||||
end
|
||||
|
||||
if self.rebuildModCache then
|
||||
-- Update mod caches
|
||||
for _, targetVersion in ipairs(targetVersionList) do
|
||||
local out = io.open("Data/"..targetVersion.."/ModCache.lua", "w")
|
||||
out:write('local c=...')
|
||||
for line, dat in pairs(modLib.parseModCache[targetVersion]) do
|
||||
if not dat[1] or not dat[1][1] or dat[1][1].name ~= "JewelFunc" then
|
||||
out:write('c["', line, '"]={')
|
||||
if dat[1] then
|
||||
writeLuaTable(out, dat[1])
|
||||
else
|
||||
out:write('nil')
|
||||
end
|
||||
if dat[2] then
|
||||
out:write(',"', dat[2], '"}')
|
||||
else
|
||||
out:write(',nil}')
|
||||
end
|
||||
end
|
||||
end
|
||||
out:close()
|
||||
end
|
||||
end
|
||||
|
||||
self.sharedItemList = { }
|
||||
self.sharedItemSetList = { }
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ local formList = {
|
||||
["penetrates (%d+)%% of"] = "PEN",
|
||||
["penetrates (%d+)%% of enemy"] = "PEN",
|
||||
["^([%d%.]+) (.+) regenerated per second"] = "REGENFLAT",
|
||||
["^([%d%.]+)%% (.+) regenerated per second"] = "REGENPERCENT",
|
||||
["^([%d%.]+)%% of (.+) regenerated per second"] = "REGENPERCENT",
|
||||
["^regenerate ([%d%.]+) (.+) per second"] = "REGENFLAT",
|
||||
["^regenerate ([%d%.]+)%% (.+) per second"] = "REGENPERCENT",
|
||||
@@ -166,6 +167,7 @@ local modNameList = {
|
||||
["buff effect"] = "BuffEffect",
|
||||
["effect of buffs on you"] = "BuffEffectOnSelf",
|
||||
["effect of buffs granted by your golems"] = { "BuffEffect", tag = { type = "SkillType", skillType = SkillType.Golem } },
|
||||
["effect of buffs granted by socketed golem skills"] = { "BuffEffect", addToSkill = { type = "SocketedIn", keyword = "golem" } },
|
||||
["effect of the buff granted by your stone golems"] = { "BuffEffect", tag = { type = "SkillName", skillName = "Summon Stone Golem" } },
|
||||
["effect of the buff granted by your lightning golems"] = { "BuffEffect", tag = { type = "SkillName", skillName = "Summon Lightning Golem" } },
|
||||
["effect of the buff granted by your ice golems"] = { "BuffEffect", tag = { type = "SkillName", skillName = "Summon Ice Golem" } },
|
||||
@@ -382,6 +384,7 @@ local modFlagList = {
|
||||
["zombie"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie" } },
|
||||
["raised zombie"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie" } },
|
||||
["raised spectre"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Spectre" } },
|
||||
["golem"] = { },
|
||||
["chaos golem"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Chaos Golem" } },
|
||||
["flame golem"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Flame Golem" } },
|
||||
["increased flame golem"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Flame Golem" } },
|
||||
@@ -426,11 +429,11 @@ local preFlagList = {
|
||||
["^trap and mine damage "] = { keywordFlags = bor(KeywordFlag.Trap, KeywordFlag.Mine) },
|
||||
["^left ring slot: "] = { tag = { type = "SlotNumber", num = 1 } },
|
||||
["^right ring slot: "] = { tag = { type = "SlotNumber", num = 2 } },
|
||||
["^socketed gems have "] = { tag = { type = "SocketedIn" } },
|
||||
["^socketed gems deal "] = { tag = { type = "SocketedIn" } },
|
||||
["^socketed curse gems have "] = { tag = { type = "SocketedIn", keyword = "curse" } },
|
||||
["^socketed melee gems have "] = { tag = { type = "SocketedIn", keyword = "melee" } },
|
||||
["^socketed golem gems have "] = { tag = { type = "SocketedIn", keyword = "golem" } },
|
||||
["^socketed gems [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn" } },
|
||||
["^socketed curse gems [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn", keyword = "curse" } },
|
||||
["^socketed melee gems [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn", keyword = "melee" } },
|
||||
["^socketed golem gems [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn", keyword = "golem" } },
|
||||
["^socketed golem skills [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn", keyword = "golem" } },
|
||||
["^your flasks grant "] = { },
|
||||
["^when hit, "] = { },
|
||||
["^you and allies [hgd][ae][via][enl] "] = { },
|
||||
@@ -687,10 +690,10 @@ local specialModList = {
|
||||
} end,
|
||||
["grants armour equal to (%d+)%% of your reserved life to you and nearby allies"] = function(num) return { mod("GrantReservedLifeAsAura", "LIST", { mod = mod("Armour", "BASE", num / 100) }) } end,
|
||||
["grants maximum energy shield equal to (%d+)%% of your reserved mana to you and nearby allies"] = function(num) return { mod("GrantReservedManaAsAura", "LIST", { mod = mod("EnergyShield", "BASE", num / 100) }) } end,
|
||||
["skills from your helmet penetrate (%d+)%% elemental resistances"] = function(num) return { mod("ElementalPenetration", "BASE", num, { type = "SocketedIn", slotName = "Helmet" }) } end,
|
||||
["skills from your gloves have (%d+)%% increased area of effect"] = function(num) return { mod("AreaOfEffect", "INC", num, { type = "SocketedIn", slotName = "Gloves" }) } end,
|
||||
["skills from your boots leech (%d+)%% of damage as life"] = function(num) return { mod("DamageLifeLeech", "BASE", num, { type = "SocketedIn", slotName = "Boots" }) } end,
|
||||
["skills in your helm can have up to (%d+) additional totems? summoned at a time"] = function(num) return { mod("ActiveTotemLimit", "BASE", num, { type = "SocketedIn", slotName = "Helmet" }) } end,
|
||||
["skills from your helmet penetrate (%d+)%% elemental resistances"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("ElementalPenetration", "BASE", num) }, { type = "SocketedIn", slotName = "Helmet" }) } end,
|
||||
["skills from your gloves have (%d+)%% increased area of effect"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("AreaOfEffect", "INC", num) }, { type = "SocketedIn", slotName = "Gloves" }) } end,
|
||||
["skills from your boots leech (%d+)%% of damage as life"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("DamageLifeLeech", "BASE", num) }, { type = "SocketedIn", slotName = "Boots" }) } end,
|
||||
["skills in your helm can have up to (%d+) additional totems? summoned at a time"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("ActiveTotemLimit", "BASE", num) }, { type = "SocketedIn", slotName = "Helmet" }) } end,
|
||||
["(%d+)%% less totem damage per totem"] = function(num) return { mod("Damage", "MORE", -num, nil, 0, KeywordFlag.Totem, { type = "PerStat", stat = "ActiveTotemLimit", div = 1 }) } end,
|
||||
["poison you inflict with critical strikes deals (%d+)%% more damage"] = function(num) return { mod("PoisonDamageOnCrit", "MORE", 100) } end,
|
||||
["bleeding you inflict on maimed enemies deals (%d+)%% more damage"] = function(num) return { mod("Damage", "MORE", num, nil, 0, KeywordFlag.Bleed, { type = "EnemyCondition", var = "Maimed"}) } end,
|
||||
@@ -745,13 +748,13 @@ local specialModList = {
|
||||
["%+(%d+) to level of socketed (%a+) gems"] = function(num, _, type) return { mod("GemProperty", "LIST", { keyword = type, key = "level", value = num }, { type = "SocketedIn" }) } end,
|
||||
["%+(%d+)%% to quality of socketed (%a+) gems"] = function(num, _, type) return { mod("GemProperty", "LIST", { keyword = type, key = "quality", value = num }, { type = "SocketedIn" }) } end,
|
||||
["%+(%d+) to level of active socketed skill gems"] = function(num) return { mod("GemProperty", "LIST", { keyword = "active_skill", key = "level", value = num }, { type = "SocketedIn" }) } end,
|
||||
["socketed gems fire an additional projectile"] = { mod("ProjectileCount", "BASE", 1, { type = "SocketedIn" }) },
|
||||
["socketed gems fire (%d+) additional projectiles"] = function(num) return { mod("ProjectileCount", "BASE", num, { type = "SocketedIn" }) } end,
|
||||
["socketed gems fire an additional projectile"] = { mod("ExtraSkillMod", "LIST", { mod = mod("ProjectileCount", "BASE", 1) }, { type = "SocketedIn" }) },
|
||||
["socketed gems fire (%d+) additional projectiles"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("ProjectileCount", "BASE", num) }, { type = "SocketedIn" }) } end,
|
||||
["socketed gems reserve no mana"] = { mod("ManaReserved", "MORE", -100, { type = "SocketedIn" }) },
|
||||
["socketed skill gems get a (%d+)%% mana multiplier"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("ManaCost", "MORE", num - 100) }, { type = "SocketedIn" }) } end,
|
||||
["socketed gems have blood magic"] = { flag("SkillBloodMagic", { type = "SocketedIn" }) },
|
||||
["socketed gems gain (%d+)%% of physical damage as extra lightning damage"] = function(num) return { mod("PhysicalDamageGainAsLightning", "BASE", num, { type = "SocketedIn" }) } end,
|
||||
["socketed red gems get (%d+)%% physical damage as extra fire damage"] = function(num) return { mod("PhysicalDamageGainAsFire", "BASE", num, { type = "SocketedIn", keyword = "strength" }) } end,
|
||||
["socketed gems gain (%d+)%% of physical damage as extra lightning damage"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("PhysicalDamageGainAsLightning", "BASE", num) }, { type = "SocketedIn" }) } end,
|
||||
["socketed red gems get (%d+)%% physical damage as extra fire damage"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("PhysicalDamageGainAsFire", "BASE", num) }, { type = "SocketedIn", keyword = "strength" }) } end,
|
||||
-- Extra skill/support
|
||||
["grants level (%d+) (.+)"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["casts level (%d+) (.+) when equipped"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
@@ -1010,6 +1013,7 @@ local suffixTypes = {
|
||||
["converted to cold damage"] = "ConvertToCold",
|
||||
["converted to fire damage"] = "ConvertToFire",
|
||||
["converted to chaos damage"] = "ConvertToChaos",
|
||||
["added as energy shield"] = "GainAsEnergyShield",
|
||||
["as extra maximum energy shield"] = "GainAsEnergyShield",
|
||||
["converted to energy shield"] = "ConvertToEnergyShield",
|
||||
["as physical damage"] = "AsPhysical",
|
||||
@@ -1240,8 +1244,8 @@ local function parseMod(line, order)
|
||||
end
|
||||
|
||||
-- Check for a flag/tag specification at the start of the line
|
||||
local modFlag
|
||||
modFlag, line = scan(line, preFlagList)
|
||||
local preFlag
|
||||
preFlag, line = scan(line, preFlagList)
|
||||
|
||||
-- Check for skill name at the start of the line
|
||||
local skillTag
|
||||
@@ -1287,10 +1291,9 @@ local function parseMod(line, order)
|
||||
skillTag, line = scan(line, skillNameList, true)
|
||||
end
|
||||
|
||||
-- Scan for flags if one hasn't been found already
|
||||
if not modFlag then
|
||||
modFlag, line = scan(line, modFlagList, true)
|
||||
end
|
||||
-- Scan for flags
|
||||
local modFlag
|
||||
modFlag, line = scan(line, modFlagList, true)
|
||||
|
||||
-- Find modifier value and type according to form
|
||||
local modValue = num
|
||||
@@ -1354,7 +1357,7 @@ local function parseMod(line, order)
|
||||
local keywordFlags = 0
|
||||
local tagList = { }
|
||||
local misc = { }
|
||||
for _, data in pairs({ modName, modFlag, modTag, modTag2, skillTag }) do
|
||||
for _, data in pairs({ modName, preFlag, modFlag, modTag, modTag2, skillTag }) do
|
||||
if type(data) == "table" then
|
||||
flags = bor(flags, data.flags or 0)
|
||||
keywordFlags = bor(keywordFlags, data.keywordFlags or 0)
|
||||
@@ -1409,7 +1412,7 @@ local function parseMod(line, order)
|
||||
modList[i] = mod("MinionModifier", "LIST", { mod = effectMod }, misc.addToMinionTag)
|
||||
end
|
||||
elseif misc.addToSkill then
|
||||
-- Skill enchants that add additional effects
|
||||
-- Skill enchants or socketed gem modifiers that add additional effects
|
||||
for i, effectMod in ipairs(modList) do
|
||||
modList[i] = mod("ExtraSkillMod", "LIST", { mod = effectMod }, misc.addToSkill)
|
||||
end
|
||||
@@ -1438,4 +1441,4 @@ return function(line)
|
||||
end]]
|
||||
end
|
||||
return unpack(copyTable(cache[line]))
|
||||
end
|
||||
end, cache
|
||||
@@ -32,6 +32,7 @@ local formList = {
|
||||
["penetrates (%d+)%% of"] = "PEN",
|
||||
["penetrates (%d+)%% of enemy"] = "PEN",
|
||||
["^([%d%.]+) (.+) regenerated per second"] = "REGENFLAT",
|
||||
["^([%d%.]+)%% (.+) regenerated per second"] = "REGENPERCENT",
|
||||
["^([%d%.]+)%% of (.+) regenerated per second"] = "REGENPERCENT",
|
||||
["^regenerate ([%d%.]+) (.+) per second"] = "REGENFLAT",
|
||||
["^regenerate ([%d%.]+)%% (.+) per second"] = "REGENPERCENT",
|
||||
@@ -167,6 +168,7 @@ local modNameList = {
|
||||
["buff effect"] = "BuffEffect",
|
||||
["effect of buffs on you"] = "BuffEffectOnSelf",
|
||||
["effect of buffs granted by your golems"] = { "BuffEffect", tag = { type = "SkillType", skillType = SkillType.Golem } },
|
||||
["effect of buffs granted by socketed golem skills"] = { "BuffEffect", addToSkill = { type = "SocketedIn", keyword = "golem" } },
|
||||
["effect of the buff granted by your stone golems"] = { "BuffEffect", tag = { type = "SkillName", skillName = "Summon Stone Golem" } },
|
||||
["effect of the buff granted by your lightning golems"] = { "BuffEffect", tag = { type = "SkillName", skillName = "Summon Lightning Golem" } },
|
||||
["effect of the buff granted by your ice golems"] = { "BuffEffect", tag = { type = "SkillName", skillName = "Summon Ice Golem" } },
|
||||
@@ -386,6 +388,7 @@ local modFlagList = {
|
||||
["zombie"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie" } },
|
||||
["raised zombie"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie" } },
|
||||
["raised spectre"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Spectre" } },
|
||||
["golem"] = { },
|
||||
["chaos golem"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Chaos Golem" } },
|
||||
["flame golem"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Flame Golem" } },
|
||||
["increased flame golem"] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Flame Golem" } },
|
||||
@@ -430,11 +433,11 @@ local preFlagList = {
|
||||
["^trap and mine damage "] = { keywordFlags = bor(KeywordFlag.Trap, KeywordFlag.Mine) },
|
||||
["^left ring slot: "] = { tag = { type = "SlotNumber", num = 1 } },
|
||||
["^right ring slot: "] = { tag = { type = "SlotNumber", num = 2 } },
|
||||
["^socketed gems have "] = { tag = { type = "SocketedIn" } },
|
||||
["^socketed gems deal "] = { tag = { type = "SocketedIn" } },
|
||||
["^socketed curse gems have "] = { tag = { type = "SocketedIn", keyword = "curse" } },
|
||||
["^socketed melee gems have "] = { tag = { type = "SocketedIn", keyword = "melee" } },
|
||||
["^socketed golem gems have "] = { tag = { type = "SocketedIn", keyword = "golem" } },
|
||||
["^socketed gems [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn" } },
|
||||
["^socketed curse gems [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn", keyword = "curse" } },
|
||||
["^socketed melee gems [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn", keyword = "melee" } },
|
||||
["^socketed golem gems [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn", keyword = "golem" } },
|
||||
["^socketed golem skills [hgd][ae][via][enl] "] = { addToSkill = { type = "SocketedIn", keyword = "golem" } },
|
||||
["^your flasks grant "] = { },
|
||||
["^when hit, "] = { },
|
||||
["^you and allies [hgd][ae][via][enl] "] = { },
|
||||
@@ -695,10 +698,10 @@ local specialModList = {
|
||||
} end,
|
||||
["grants armour equal to (%d+)%% of your reserved life to you and nearby allies"] = function(num) return { mod("GrantReservedLifeAsAura", "LIST", { mod = mod("Armour", "BASE", num / 100) }) } end,
|
||||
["grants maximum energy shield equal to (%d+)%% of your reserved mana to you and nearby allies"] = function(num) return { mod("GrantReservedManaAsAura", "LIST", { mod = mod("EnergyShield", "BASE", num / 100) }) } end,
|
||||
["skills from your helmet penetrate (%d+)%% elemental resistances"] = function(num) return { mod("ElementalPenetration", "BASE", num, { type = "SocketedIn", slotName = "Helmet" }) } end,
|
||||
["skills from your gloves have (%d+)%% increased area of effect"] = function(num) return { mod("AreaOfEffect", "INC", num, { type = "SocketedIn", slotName = "Gloves" }) } end,
|
||||
["skills from your boots leech (%d+)%% of damage as life"] = function(num) return { mod("DamageLifeLeech", "BASE", num, { type = "SocketedIn", slotName = "Boots" }) } end,
|
||||
["skills in your helm can have up to (%d+) additional totems? summoned at a time"] = function(num) return { mod("ActiveTotemLimit", "BASE", num, { type = "SocketedIn", slotName = "Helmet" }) } end,
|
||||
["skills from your helmet penetrate (%d+)%% elemental resistances"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("ElementalPenetration", "BASE", num) }, { type = "SocketedIn", slotName = "Helmet" }) } end,
|
||||
["skills from your gloves have (%d+)%% increased area of effect"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("AreaOfEffect", "INC", num) }, { type = "SocketedIn", slotName = "Gloves" }) } end,
|
||||
["skills from your boots leech (%d+)%% of damage as life"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("DamageLifeLeech", "BASE", num) }, { type = "SocketedIn", slotName = "Boots" }) } end,
|
||||
["skills in your helm can have up to (%d+) additional totems? summoned at a time"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("ActiveTotemLimit", "BASE", num) }, { type = "SocketedIn", slotName = "Helmet" }) } end,
|
||||
["(%d+)%% less totem damage per totem"] = function(num) return { mod("Damage", "MORE", -num, nil, 0, KeywordFlag.Totem, { type = "PerStat", stat = "ActiveTotemLimit", div = 1 }) } end,
|
||||
["poison you inflict with critical strikes deals (%d+)%% more damage"] = function(num) return { mod("Damage", "MORE", num, nil, 0, KeywordFlag.Poison, { type = "Condition", var = "CriticalStrike" }) } end,
|
||||
["bleeding you inflict on maimed enemies deals (%d+)%% more damage"] = function(num) return { mod("Damage", "MORE", num, nil, 0, KeywordFlag.Bleed, { type = "EnemyCondition", var = "Maimed"}) } end,
|
||||
@@ -754,13 +757,13 @@ local specialModList = {
|
||||
["%+(%d+) to level of socketed (%a+) gems"] = function(num, _, type) return { mod("GemProperty", "LIST", { keyword = type, key = "level", value = num }, { type = "SocketedIn" }) } end,
|
||||
["%+(%d+)%% to quality of socketed (%a+) gems"] = function(num, _, type) return { mod("GemProperty", "LIST", { keyword = type, key = "quality", value = num }, { type = "SocketedIn" }) } end,
|
||||
["%+(%d+) to level of active socketed skill gems"] = function(num) return { mod("GemProperty", "LIST", { keyword = "active_skill", key = "level", value = num }, { type = "SocketedIn" }) } end,
|
||||
["socketed gems fire an additional projectile"] = { mod("ProjectileCount", "BASE", 1, { type = "SocketedIn" }) },
|
||||
["socketed gems fire (%d+) additional projectiles"] = function(num) return { mod("ProjectileCount", "BASE", num, { type = "SocketedIn" }) } end,
|
||||
["socketed gems fire an additional projectile"] = { mod("ExtraSkillMod", "LIST", { mod = mod("ProjectileCount", "BASE", 1) }, { type = "SocketedIn" }) },
|
||||
["socketed gems fire (%d+) additional projectiles"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("ProjectileCount", "BASE", num) }, { type = "SocketedIn" }) } end,
|
||||
["socketed gems reserve no mana"] = { mod("ManaReserved", "MORE", -100, { type = "SocketedIn" }) },
|
||||
["socketed skill gems get a (%d+)%% mana multiplier"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("ManaCost", "MORE", num - 100) }, { type = "SocketedIn" }) } end,
|
||||
["socketed gems have blood magic"] = { flag("SkillBloodMagic", { type = "SocketedIn" }) },
|
||||
["socketed gems gain (%d+)%% of physical damage as extra lightning damage"] = function(num) return { mod("PhysicalDamageGainAsLightning", "BASE", num, { type = "SocketedIn" }) } end,
|
||||
["socketed red gems get (%d+)%% physical damage as extra fire damage"] = function(num) return { mod("PhysicalDamageGainAsFire", "BASE", num, { type = "SocketedIn", keyword = "strength" }) } end,
|
||||
["socketed gems gain (%d+)%% of physical damage as extra lightning damage"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("PhysicalDamageGainAsLightning", "BASE", num) }, { type = "SocketedIn" }) } end,
|
||||
["socketed red gems get (%d+)%% physical damage as extra fire damage"] = function(num) return { mod("ExtraSkillMod", "LIST", { mod = mod("PhysicalDamageGainAsFire", "BASE", num) }, { type = "SocketedIn", keyword = "strength" }) } end,
|
||||
-- Extra skill/support
|
||||
["grants level (%d+) (.+)"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["casts level (%d+) (.+) when equipped"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
@@ -1030,6 +1033,7 @@ local suffixTypes = {
|
||||
["converted to cold damage"] = "ConvertToCold",
|
||||
["converted to fire damage"] = "ConvertToFire",
|
||||
["converted to chaos damage"] = "ConvertToChaos",
|
||||
["added as energy shield"] = "GainAsEnergyShield",
|
||||
["as extra maximum energy shield"] = "GainAsEnergyShield",
|
||||
["converted to energy shield"] = "ConvertToEnergyShield",
|
||||
["as physical damage"] = "AsPhysical",
|
||||
@@ -1430,7 +1434,7 @@ local function parseMod(line, order)
|
||||
modList[i] = mod("MinionModifier", "LIST", { mod = effectMod }, misc.addToMinionTag)
|
||||
end
|
||||
elseif misc.addToSkill then
|
||||
-- Skill enchants that add additional effects
|
||||
-- Skill enchants or socketed gem modifiers that add additional effects
|
||||
for i, effectMod in ipairs(modList) do
|
||||
modList[i] = mod("ExtraSkillMod", "LIST", { mod = effectMod }, misc.addToSkill)
|
||||
end
|
||||
@@ -1463,4 +1467,4 @@ return function(line, isComb)
|
||||
end
|
||||
end
|
||||
return unpack(copyTable(cache[line]))
|
||||
end
|
||||
end, cache
|
||||
@@ -3,6 +3,7 @@
|
||||
-- Module: Mod Tools
|
||||
-- Various functions for dealing with modifiers
|
||||
--
|
||||
local launch = ...
|
||||
|
||||
local pairs = pairs
|
||||
local t_insert = table.insert
|
||||
@@ -42,8 +43,9 @@ function modLib.createMod(modName, modType, modVal, ...)
|
||||
end
|
||||
|
||||
modLib.parseMod = { }
|
||||
modLib.parseModCache = { }
|
||||
for _, targetVersion in pairs(targetVersionList) do
|
||||
modLib.parseMod[targetVersion] = LoadModule("Modules/ModParser-"..targetVersion)
|
||||
modLib.parseMod[targetVersion], modLib.parseModCache[targetVersion] = LoadModule("Modules/ModParser-"..targetVersion, launch)
|
||||
end
|
||||
|
||||
function modLib.formatFlags(flags, src)
|
||||
|
||||
@@ -53,6 +53,13 @@ If you'd like to help support the development of Path of Building, I have a [Pat
|
||||

|
||||
|
||||
## Changelog
|
||||
### 1.4.46 - 2017/04/18
|
||||
* The passive tree search field can now also match node type (keystone/notable/normal)
|
||||
* Modifiers that apply to gems socketed in items can now apply to minions summoned by those gems
|
||||
* Improved the program's startup time
|
||||
For 3.0 builds:
|
||||
* Fixed error when using The Consuming Dark
|
||||
|
||||
### 1.4.45 - 2017/04/17
|
||||
* Fixed issue causing tooltips in the Shared Items list to display modifier ranges instead of specific values
|
||||
* Fixed the node location display in the Items tab covering jewel tooltips
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
VERSION[1.4.46][2017/04/18]
|
||||
* The passive tree search field can now also match node type (keystone/notable/normal)
|
||||
* Modifiers that apply to gems socketed in items can now apply to minions summoned by those gems
|
||||
* Improved the program's startup time
|
||||
For 3.0 builds:
|
||||
* Fixed error when using The Consuming Dark
|
||||
VERSION[1.4.45][2017/04/17]
|
||||
* Fixed issue causing tooltips in the Shared Items list to display modifier ranges instead of specific values
|
||||
* Fixed the node location display in the Items tab covering jewel tooltips
|
||||
|
||||
30
manifest.xml
30
manifest.xml
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<PoBVersion>
|
||||
<Version number="1.4.45"/>
|
||||
<Version number="1.4.46"/>
|
||||
<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="d678fe3c8097828ee4f1513a792c1b3a9780f536" name="Launch.lua" part="program"/>
|
||||
<File sha1="72b9bea1871e94a643e4471fd84bbedbc7810336" name="UpdateCheck.lua" part="program"/>
|
||||
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
|
||||
<File sha1="459ab6b0067cc9addf1bacedcb0810bb0d000bad" name="changelog.txt" part="program"/>
|
||||
<File sha1="5386eaba71b158c1881be59c79ff44fc3de0bbed" name="changelog.txt" part="program"/>
|
||||
<File sha1="3558da442f2fc18c3e1ea751b301be863dee56e8" name="Classes/BuildListControl.lua" part="program"/>
|
||||
<File sha1="0e4b2d4a291f26213d81761e3ac0f7525e31f950" name="Classes/ButtonControl.lua" part="program"/>
|
||||
<File sha1="b2eb6794c0a54a295ed9652afaee2c65fbe4e742" name="Classes/CalcBreakdownControl.lua" part="program"/>
|
||||
@@ -36,7 +36,7 @@
|
||||
<File sha1="ca94b201ae873829e7be39075150ee6bc79be0c3" name="Classes/PassiveSpec.lua" part="program"/>
|
||||
<File sha1="1080dfd1b2ff05b367e7da76e4223d13746ed5e6" name="Classes/PassiveSpecListControl.lua" part="program"/>
|
||||
<File sha1="7716fe69aa6d142fa02aed47d63f9c956e6f93ce" name="Classes/PassiveTree.lua" part="program"/>
|
||||
<File sha1="d1eac652f15101dd4fbd9a6200c7a35d8647c5f3" name="Classes/PassiveTreeView.lua" part="program"/>
|
||||
<File sha1="9e362f147fc0e5cef11d172b04242fc632fe0487" name="Classes/PassiveTreeView.lua" part="program"/>
|
||||
<File sha1="2f369b35d2319ea8ae1c7ba3b59c012553936a4f" name="Classes/PathControl.lua" part="program"/>
|
||||
<File sha1="9d91ef81ac4fd8d5a1e16be17bdf199545209d87" name="Classes/PopupDialog.lua" part="program"/>
|
||||
<File sha1="40aca5f791124ed944cded4e45fb90001c657ca6" name="Classes/ScrollBarControl.lua" part="program"/>
|
||||
@@ -44,7 +44,7 @@
|
||||
<File sha1="0d7d2eaf3efb1ec40eada321331fbc248a68d8be" name="Classes/SharedItemListControl.lua" part="program"/>
|
||||
<File sha1="b3bf0b096a9348900c926aef1b7a822a40df0480" name="Classes/SharedItemSetListControl.lua" part="program"/>
|
||||
<File sha1="6e7435c7d65c4b7994b491af27579c5ba2ec47e1" name="Classes/SkillListControl.lua" part="program"/>
|
||||
<File sha1="28c156e087e2dde94de7c3f14b70f7809caf1703" name="Classes/SkillsTab.lua" part="program"/>
|
||||
<File sha1="f3550bfd017924bcd75bd443ab2c2d95ba952b9a" name="Classes/SkillsTab.lua" part="program"/>
|
||||
<File sha1="a28a04692f0b244ac648620618a1c43ed13d946a" name="Classes/SliderControl.lua" part="program"/>
|
||||
<File sha1="eeff0df56df68c5942ba632d2862bc38cff346a9" name="Classes/TextListControl.lua" part="program"/>
|
||||
<File sha1="2b16b2485f25462f129c575d9c8574cd2308938a" name="Classes/Tooltip.lua" part="program"/>
|
||||
@@ -53,25 +53,25 @@
|
||||
<File sha1="4b7675c8b4fe71cade7dd3d70793df1ed8022d01" name="Classes/UndoHandler.lua" part="program"/>
|
||||
<File sha1="e5863dd79238ffd0a4c2f12b3b15c252933da453" name="Modules/Build.lua" part="program"/>
|
||||
<File sha1="44fab56072de8e555ff7e20ee32628230511d1d6" name="Modules/BuildList.lua" part="program"/>
|
||||
<File sha1="4967d7e8aa9adc3c1917cf46dcbce05667ecb5af" name="Modules/CalcActiveSkill.lua" part="program"/>
|
||||
<File sha1="d56a4bb075bdfed509252ae9f360320f71919494" name="Modules/CalcActiveSkill.lua" part="program"/>
|
||||
<File sha1="b2b8d55258d9763d7c7a4a9ca1f99be3973528a8" name="Modules/CalcBreakdown.lua" part="program"/>
|
||||
<File sha1="f6abff3650f2ba313232c2edeec474b68bf1c83f" name="Modules/CalcDefence-2_6.lua" part="program"/>
|
||||
<File sha1="acd2aacff9c45ab880e0d7b3d3309fbf12dd4ecb" name="Modules/CalcDefence-3_0.lua" part="program"/>
|
||||
<File sha1="69cae921c21f45c18b3875a76b35f33958490b7e" name="Modules/CalcOffence-2_6.lua" part="program"/>
|
||||
<File sha1="e67ffbe1a61f8e22c78d8b36825a34130d849e70" name="Modules/CalcOffence-3_0.lua" part="program"/>
|
||||
<File sha1="e3ccc7447e549bafb911eec0cf713736c45965ab" name="Modules/CalcPerform.lua" part="program"/>
|
||||
<File sha1="c5e3b8119036d679adccc3e7ce2608ed5156f4f2" name="Modules/CalcOffence-3_0.lua" part="program"/>
|
||||
<File sha1="4bef807b99bace9fa535f01cb5fd8027b765f728" name="Modules/CalcPerform.lua" part="program"/>
|
||||
<File sha1="db07750d45df48737f29fc7b0f90c61a95c18359" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="1171d2e39c3027e9aeb88935c1973930eec229cf" name="Modules/CalcSections-2_6.lua" part="program"/>
|
||||
<File sha1="a9ec3ad4c1f4bdf2f2d337f6551ecc39e1fc71a9" name="Modules/CalcSections-3_0.lua" part="program"/>
|
||||
<File sha1="10f994f575f7f835a0a9a0044317b044af86ceca" name="Modules/CalcSetup.lua" part="program"/>
|
||||
<File sha1="50460a77f1c036acd3c85201e55b5ac0f0ed4091" name="Modules/CalcSetup.lua" part="program"/>
|
||||
<File sha1="fb664a2a257ec307cabafe97ca98d95fb1bd63c4" name="Modules/CalcTools.lua" part="program"/>
|
||||
<File sha1="e7cc0cab4e1e373f780bf9c26d5f7265bcd4ee8c" name="Modules/Common.lua" part="program"/>
|
||||
<File sha1="e0b177c6205ceedd50ebcb5b1ccc549d6fe29150" name="Modules/Common.lua" part="program"/>
|
||||
<File sha1="081909fbc9a19fe359848277116c44fa5415c58e" name="Modules/Data.lua" part="program"/>
|
||||
<File sha1="afc69f0c78a39a448e47432c429c8a9395758d0a" name="Modules/ItemTools.lua" part="program"/>
|
||||
<File sha1="149bdb985e7cf2a6859248aa8350c701418f03e8" name="Modules/Main.lua" part="program"/>
|
||||
<File sha1="da775ad2244dbd757cff100fd6904c8ad4c29a86" name="Modules/ModParser-2_6.lua" part="program"/>
|
||||
<File sha1="28f434d2aec869bb9c4e70944bcd905596070397" name="Modules/ModParser-3_0.lua" part="program"/>
|
||||
<File sha1="4e1067e5444062686cd06783034537e7ff4fbfe1" name="Modules/ModTools.lua" part="program"/>
|
||||
<File sha1="04443dfdc31048451224f8adc92b4318fa9309b8" name="Modules/Main.lua" part="program"/>
|
||||
<File sha1="30c8f0aa6ce613e5dcc348704703eb6e079970c4" name="Modules/ModParser-2_6.lua" part="program"/>
|
||||
<File sha1="333b3b068835606afadf74d8d985a65aed5cc962" name="Modules/ModParser-3_0.lua" part="program"/>
|
||||
<File sha1="84906d6bcb280c882eb4dfafb4ec520c61027d04" name="Modules/ModTools.lua" part="program"/>
|
||||
<File sha1="c345cdcf374d271411aa424ab150c0edbb5a362d" name="Assets/game_ui_small.png" part="program"/>
|
||||
<File sha1="97b020d8213e09c313536a91528ba5d5ebc4ca0a" name="Assets/patreon_logo.png" part="program"/>
|
||||
<File sha1="4ebea5031fd03771a9b637a3fdccf394344e4782" name="Assets/range_guide.png" part="program"/>
|
||||
@@ -94,7 +94,7 @@
|
||||
<File sha1="24b171f438c83560f2ecc151a4de72f50f6085d4" name="Data/Uniques/jewel.lua" part="program"/>
|
||||
<File sha1="97fdb8e588bbdef804d74c3f2db1d5e5e7170ae8" name="Data/Uniques/mace.lua" part="program"/>
|
||||
<File sha1="a126e38939d92d737b63859fe52170d836013104" name="Data/Uniques/quiver.lua" part="program"/>
|
||||
<File sha1="264f9286944de6ac7c9099b3f048bedf656d2993" name="Data/Uniques/ring.lua" part="program"/>
|
||||
<File sha1="7c1ec650759d2c91aee7797c131ad09e084cb727" name="Data/Uniques/ring.lua" part="program"/>
|
||||
<File sha1="441ac2409a6abe91efc9f4724b18cd2cb227dfa3" name="Data/Uniques/shield.lua" part="program"/>
|
||||
<File sha1="b7aa5bd684ef32cb30c3378a9ffe7a752a6767c5" name="Data/Uniques/staff.lua" part="program"/>
|
||||
<File sha1="8d8858d83a338e703152a2ac79f0f0b8c417feda" name="Data/Uniques/sword.lua" part="program"/>
|
||||
@@ -104,6 +104,7 @@
|
||||
<File sha1="b305198cafc6800aa5556da07a5eea699c718d3b" name="Data/2_6/EnchantmentHelmet.lua" part="program"/>
|
||||
<File sha1="170d14d9176a1d7425d4bfa1b3bcc08c5f4fe73c" name="Data/2_6/Essence.lua" part="program"/>
|
||||
<File sha1="2611aa555e5793e7c1de36c7bc0e7a3fe17f6e5e" name="Data/2_6/Minions.lua" part="program"/>
|
||||
<File sha1="97af805d1cf426c1eb4ca3af1be842fb8fdafd61" name="Data/2_6/ModCache.lua" part="program"/>
|
||||
<File sha1="3a83e6bf5e9648edd6a01e57525a771d501d1a37" name="Data/2_6/ModCorrupted.lua" part="program"/>
|
||||
<File sha1="d96fc1e31349cb8aba1336c1f356b69ff436269b" name="Data/2_6/ModFlask.lua" part="program"/>
|
||||
<File sha1="c7d3bda476aa6c11a3ea45d93b077b82d61c5dd4" name="Data/2_6/ModItem.lua" part="program"/>
|
||||
@@ -145,6 +146,7 @@
|
||||
<File sha1="ca3017638e691f9832adb88cba78e48730204a8a" name="Data/3_0/EnchantmentHelmet.lua" part="program"/>
|
||||
<File sha1="05bf7be7aa8219e16fba64aca2cdb7bd262c4339" name="Data/3_0/Essence.lua" part="program"/>
|
||||
<File sha1="f761b485bb9c46c9d76514cae3a66823184b98c2" name="Data/3_0/Minions.lua" part="program"/>
|
||||
<File sha1="b7095b4a91b0dd3c5ed898b477d5dd0229d38bcc" name="Data/3_0/ModCache.lua" part="program"/>
|
||||
<File sha1="a594cca6f7ec0c86bce89ee79740ade372ef3d7b" name="Data/3_0/ModCorrupted.lua" part="program"/>
|
||||
<File sha1="061514fc3ca4b3b2fb6f962659de0bc6284b7f90" name="Data/3_0/ModFlask.lua" part="program"/>
|
||||
<File sha1="eee385544a178a48834b508542136b0f2ab885a0" name="Data/3_0/ModItem.lua" part="program"/>
|
||||
|
||||
Reference in New Issue
Block a user