Release 1.4.39
- Added glove enchantment support
This commit is contained in:
@@ -40,7 +40,7 @@ If possible, change the game version in the Configuration tab before importing.]
|
||||
self.controls.accountNameHeader.shown = function()
|
||||
return self.charImportMode == "GETACCOUNTNAME"
|
||||
end
|
||||
self.controls.accountName = common.New("EditControl", {"TOPLEFT",self.controls.accountNameHeader,"BOTTOMLEFT"}, 0, 4, 200, 20, main.lastAccountName or "", nil, "%c", 50)
|
||||
self.controls.accountName = common.New("EditControl", {"TOPLEFT",self.controls.accountNameHeader,"BOTTOMLEFT"}, 0, 4, 200, 20, main.lastAccountName or "", nil, "%c")
|
||||
self.controls.accountName.pasteFilter = function(text)
|
||||
return text:gsub("[\128-\255]",function(c)
|
||||
return codePointToUTF8(c:byte(1)):gsub(".",function(c)
|
||||
|
||||
@@ -85,7 +85,7 @@ local PassiveTreeClass = common.NewClass("PassiveTree", function(self, targetVer
|
||||
|
||||
ConPrintf("Loading passive tree assets...")
|
||||
for name, data in pairs(self.assets) do
|
||||
self:LoadImage(name..".png", data[0.3835] or data[1], data)
|
||||
self:LoadImage(name..".png", data[0.3835] or data[1], data, not name:match("[OL][ri][bn][ie][tC]") and "MIPMAP" or nil)
|
||||
end
|
||||
|
||||
-- Load sprite sheets and build sprite map
|
||||
@@ -96,7 +96,7 @@ local PassiveTreeClass = common.NewClass("PassiveTree", function(self, targetVer
|
||||
local sheet = spriteSheets[maxZoom.filename]
|
||||
if not sheet then
|
||||
sheet = { }
|
||||
self:LoadImage(maxZoom.filename:gsub("%?%x+$",""), self.imageRoot.."build-gen/passive-skill-sprite/"..maxZoom.filename, sheet, "CLAMP")
|
||||
self:LoadImage(maxZoom.filename:gsub("%?%x+$",""), self.imageRoot.."build-gen/passive-skill-sprite/"..maxZoom.filename, sheet, "CLAMP", "MIPMAP")
|
||||
spriteSheets[maxZoom.filename] = sheet
|
||||
end
|
||||
for name, coords in pairs(maxZoom.coords) do
|
||||
@@ -244,7 +244,7 @@ local PassiveTreeClass = common.NewClass("PassiveTree", function(self, targetVer
|
||||
for ci = i + 1, endI do
|
||||
comb = comb .. " " .. node.sd[ci]
|
||||
end
|
||||
list, extra = modLib.parseMod[targetVersion](comb)
|
||||
list, extra = modLib.parseMod[targetVersion](comb, true)
|
||||
if list and not extra then
|
||||
-- Success, add dummy mod lists to the other lines that were combined with this one
|
||||
for ci = i + 1, endI do
|
||||
|
||||
72
Data/2_6/EnchantmentGloves.lua
Normal file
72
Data/2_6/EnchantmentGloves.lua
Normal file
@@ -0,0 +1,72 @@
|
||||
-- Item data (c) Grinding Gear Games
|
||||
|
||||
return {
|
||||
["NORMAL"] = {
|
||||
"Cast Word of Blades on Hit",
|
||||
"Cast Word of Flames on Hit",
|
||||
"Attack with Word of Force on Hit",
|
||||
"Cast Word of Frost on Kill",
|
||||
"Attack with Word of Fury on Hit",
|
||||
"Cast Word of Inferno on Kill",
|
||||
"Attack with Word of Ire when Hit",
|
||||
"Attack with Word of Light when you take a Critical Strike",
|
||||
"Cast Word of Reflection when Hit",
|
||||
"Attack with Word of Spite when Hit",
|
||||
"Cast Word of the Tempest on Hit",
|
||||
"Cast Word of the Grave when your Skills or Minions Kill",
|
||||
"Cast Word of Thunder on Kill",
|
||||
"Attack with Word of War on Kill",
|
||||
"Cast Word of Winter when Hit",
|
||||
},
|
||||
["CRUEL"] = {
|
||||
"Cast Edict of Blades on Hit",
|
||||
"Cast Edict of Flames on Hit",
|
||||
"Attack with Edict of Force on Hit",
|
||||
"Cast Edict of Frost on Kill",
|
||||
"Attack with Edict of Fury on Hit",
|
||||
"Cast Edict of Inferno on Kill",
|
||||
"Attack with Edict of Ire when Hit",
|
||||
"Attack with Edict of Light when you take a Critical Strike",
|
||||
"Cast Edict of Reflection when Hit",
|
||||
"Attack with Edict of Spite when Hit",
|
||||
"Cast Edict of the Tempest on Hit",
|
||||
"Cast Edict of the Grave when your Skills or Minions Kill",
|
||||
"Cast Edict of Thunder on Kill",
|
||||
"Attack with Edict of War on Kill",
|
||||
"Cast Edict of Winter when Hit",
|
||||
},
|
||||
["MERCILESS"] = {
|
||||
"Cast Decree of Blades on Hit",
|
||||
"Cast Decree of Flames on Hit",
|
||||
"Attack with Decree of Force on Hit",
|
||||
"Cast Decree of Frost on Kill",
|
||||
"Attack with Decree of Fury on Hit",
|
||||
"Cast Decree of Inferno on Kill",
|
||||
"Attack with Decree of Ire when Hit",
|
||||
"Attack with Decree of Light when you take a Critical Strike",
|
||||
"Cast Decree of Reflection when Hit",
|
||||
"Attack with Decree of Spite when Hit",
|
||||
"Cast Decree of the Tempest on Hit",
|
||||
"Cast Decree of the Grave when your Skills or Minions Kill",
|
||||
"Cast Decree of Thunder on Kill",
|
||||
"Attack with Decree of War on Kill",
|
||||
"Cast Decree of Winter when Hit",
|
||||
},
|
||||
["ENDGAME"] = {
|
||||
"Cast Commandment of Blades on Hit",
|
||||
"Cast Commandment of Flames on Hit",
|
||||
"Attack with Commandment of Force on Hit",
|
||||
"Cast Commandment of Frost on Kill",
|
||||
"Attack with Commandment of Fury on Hit",
|
||||
"Cast Commandment of Inferno on Kill",
|
||||
"Attack with Commandment of Ire when Hit",
|
||||
"Attack with Commandment of Light when you take a Critical Strike",
|
||||
"Cast Commandment of Reflection when Hit",
|
||||
"Attack with Commandment of Spite when Hit",
|
||||
"Cast Commandment of the Tempest on Hit",
|
||||
"Cast Commandment of the Grave when your Skills or Minions Kill",
|
||||
"Cast Commandment of Thunder on Kill",
|
||||
"Attack with Commandment of War on Kill",
|
||||
"Cast Commandment of Winter when Hit",
|
||||
},
|
||||
}
|
||||
@@ -329,4 +329,23 @@ minions["AnimatedArmour"] = {
|
||||
},
|
||||
modList = {
|
||||
},
|
||||
}
|
||||
minions["IcyRagingSpirit"] = {
|
||||
name = "Grave Spirit",
|
||||
life = 3,
|
||||
fireResist = 40,
|
||||
coldResist = 40,
|
||||
lightningResist = 40,
|
||||
chaosResist = 20,
|
||||
damage = 2,
|
||||
damageSpread = 0.2,
|
||||
attackTime = 0.855,
|
||||
attackRange = 6,
|
||||
skillList = {
|
||||
"RagingSpiritMeleeAttack",
|
||||
},
|
||||
modList = {
|
||||
mod("PhysicalDamageConvertToCold", "BASE", 50),
|
||||
mod("Speed", "MORE", 40, ModFlag.Attack),
|
||||
},
|
||||
}
|
||||
2256
Data/2_6/Skills/glove.lua
Normal file
2256
Data/2_6/Skills/glove.lua
Normal file
File diff suppressed because it is too large
Load Diff
72
Data/3_0/EnchantmentGloves.lua
Normal file
72
Data/3_0/EnchantmentGloves.lua
Normal file
@@ -0,0 +1,72 @@
|
||||
-- Item data (c) Grinding Gear Games
|
||||
|
||||
return {
|
||||
["NORMAL"] = {
|
||||
"Cast Word of Blades on Hit",
|
||||
"Cast Word of Flames on Hit",
|
||||
"Attack with Word of Force on Hit",
|
||||
"Cast Word of Frost on Kill",
|
||||
"Attack with Word of Fury on Hit",
|
||||
"Cast Word of Inferno on Kill",
|
||||
"Attack with Word of Ire when Hit",
|
||||
"Attack with Word of Light when you take a Critical Strike",
|
||||
"Cast Word of Reflection when Hit",
|
||||
"Attack with Word of Spite when Hit",
|
||||
"Cast Word of the Tempest on Hit",
|
||||
"Cast Word of the Grave when your Skills or Minions Kill",
|
||||
"Cast Word of Thunder on Kill",
|
||||
"Attack with Word of War on Kill",
|
||||
"Cast Word of Winter when Hit",
|
||||
},
|
||||
["CRUEL"] = {
|
||||
"Cast Edict of Blades on Hit",
|
||||
"Cast Edict of Flames on Hit",
|
||||
"Attack with Edict of Force on Hit",
|
||||
"Cast Edict of Frost on Kill",
|
||||
"Attack with Edict of Fury on Hit",
|
||||
"Cast Edict of Inferno on Kill",
|
||||
"Attack with Edict of Ire when Hit",
|
||||
"Attack with Edict of Light when you take a Critical Strike",
|
||||
"Cast Edict of Reflection when Hit",
|
||||
"Attack with Edict of Spite when Hit",
|
||||
"Cast Edict of the Tempest on Hit",
|
||||
"Cast Edict of the Grave when your Skills or Minions Kill",
|
||||
"Cast Edict of Thunder on Kill",
|
||||
"Attack with Edict of War on Kill",
|
||||
"Cast Edict of Winter when Hit",
|
||||
},
|
||||
["MERCILESS"] = {
|
||||
"Cast Decree of Blades on Hit",
|
||||
"Cast Decree of Flames on Hit",
|
||||
"Attack with Decree of Force on Hit",
|
||||
"Cast Decree of Frost on Kill",
|
||||
"Attack with Decree of Fury on Hit",
|
||||
"Cast Decree of Inferno on Kill",
|
||||
"Attack with Decree of Ire when Hit",
|
||||
"Attack with Decree of Light when you take a Critical Strike",
|
||||
"Cast Decree of Reflection when Hit",
|
||||
"Attack with Decree of Spite when Hit",
|
||||
"Cast Decree of the Tempest on Hit",
|
||||
"Cast Decree of the Grave when your Skills or Minions Kill",
|
||||
"Cast Decree of Thunder on Kill",
|
||||
"Attack with Decree of War on Kill",
|
||||
"Cast Decree of Winter when Hit",
|
||||
},
|
||||
["ENDGAME"] = {
|
||||
"Cast Commandment of Blades on Hit",
|
||||
"Cast Commandment of Flames on Hit",
|
||||
"Attack with Commandment of Force on Hit",
|
||||
"Cast Commandment of Frost on Kill",
|
||||
"Attack with Commandment of Fury on Hit",
|
||||
"Cast Commandment of Inferno on Kill",
|
||||
"Attack with Commandment of Ire when Hit",
|
||||
"Attack with Commandment of Light when you take a Critical Strike",
|
||||
"Cast Commandment of Reflection when Hit",
|
||||
"Attack with Commandment of Spite when Hit",
|
||||
"Cast Commandment of the Tempest on Hit",
|
||||
"Cast Commandment of the Grave when your Skills or Minions Kill",
|
||||
"Cast Commandment of Thunder on Kill",
|
||||
"Attack with Commandment of War on Kill",
|
||||
"Cast Commandment of Winter when Hit",
|
||||
},
|
||||
}
|
||||
@@ -329,4 +329,23 @@ minions["AnimatedArmour"] = {
|
||||
},
|
||||
modList = {
|
||||
},
|
||||
}
|
||||
minions["IcyRagingSpirit"] = {
|
||||
name = "Grave Spirit",
|
||||
life = 3,
|
||||
fireResist = 40,
|
||||
coldResist = 40,
|
||||
lightningResist = 40,
|
||||
chaosResist = 20,
|
||||
damage = 2,
|
||||
damageSpread = 0.2,
|
||||
attackTime = 0.855,
|
||||
attackRange = 6,
|
||||
skillList = {
|
||||
"RagingSpiritMeleeAttack",
|
||||
},
|
||||
modList = {
|
||||
mod("PhysicalDamageConvertToCold", "BASE", 50),
|
||||
mod("Speed", "MORE", 40, ModFlag.Attack),
|
||||
},
|
||||
}
|
||||
2276
Data/3_0/Skills/glove.lua
Normal file
2276
Data/3_0/Skills/glove.lua
Normal file
File diff suppressed because it is too large
Load Diff
@@ -12,7 +12,7 @@ Adds (5-15) to (20-25) Physical Damage
|
||||
Adds (5-15) to (20-25) Fire Damage
|
||||
5% increased Movement Speed
|
||||
(7-10)% Increased Attack Speed
|
||||
(15-25)% to Fire Resistance
|
||||
+(15-25)% to Fire Resistance
|
||||
{variant:1}Curse Enemies with Flammability on Hit
|
||||
{variant:2}Curse Enemies with level 10 Flammability on Hit
|
||||
]],[[
|
||||
|
||||
342
Export/Skills/glove.txt
Normal file
342
Export/Skills/glove.txt
Normal file
@@ -0,0 +1,342 @@
|
||||
-- Path of Building
|
||||
--
|
||||
-- Glove enchantment skills
|
||||
-- Skill data (c) Grinding Gear Games
|
||||
--
|
||||
local skills, mod, flag, skill = ...
|
||||
|
||||
#skill EnchantmentOfBladesOnHit
|
||||
#flags spell projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfBladesOnHit2
|
||||
#flags spell projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfBladesOnHit3
|
||||
#flags spell projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfBladesOnHit4
|
||||
#flags spell projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFlamesOnHit
|
||||
#flags spell area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFlamesOnHit2
|
||||
#flags spell area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFlamesOnHit3
|
||||
#flags spell area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFlamesOnHit4
|
||||
#flags spell area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfForceOnHit
|
||||
#flags attack area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfForceOnHit2
|
||||
#flags attack area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfForceOnHit3
|
||||
#flags attack area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfForceOnHit4
|
||||
#flags attack area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFrostOnKill
|
||||
#flags spell projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFrostOnKill2
|
||||
#flags spell projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFrostOnKill3
|
||||
#flags spell projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFrostOnKill4
|
||||
#flags spell projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFuryOnHit
|
||||
#flags attack projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFuryOnHit2
|
||||
#flags attack projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFuryOnHit3
|
||||
#flags attack projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfFuryOnHit4
|
||||
#flags attack projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfInfernoOnKill
|
||||
#flags spell area hit
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfInfernoOnKill2
|
||||
#flags spell area hit
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfInfernoOnKill3
|
||||
#flags spell area hit
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfInfernoOnKill4
|
||||
#flags spell area hit
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfIreWhenHit
|
||||
#flags attack area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfIreWhenHit2
|
||||
#flags attack area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfIreWhenHit3
|
||||
#flags attack area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfIreWhenHit4
|
||||
#flags attack area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfLightWhenCrit
|
||||
#flags attack area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfLightWhenCrit2
|
||||
#flags attack area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfLightWhenCrit3
|
||||
#flags attack area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfLightWhenCrit4
|
||||
#flags attack area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfReflectionWhenHit
|
||||
#flags spell minion duration
|
||||
minionList = {
|
||||
"Clone",
|
||||
},
|
||||
minionUses = {
|
||||
["Weapon 1"] = true,
|
||||
},
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfReflectionWhenHit2
|
||||
#flags spell minion duration
|
||||
minionList = {
|
||||
"Clone",
|
||||
},
|
||||
minionUses = {
|
||||
["Weapon 1"] = true,
|
||||
},
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfReflectionWhenHit3
|
||||
#flags spell minion duration
|
||||
minionList = {
|
||||
"Clone",
|
||||
},
|
||||
minionUses = {
|
||||
["Weapon 1"] = true,
|
||||
},
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfReflectionWhenHit4
|
||||
#flags spell minion duration
|
||||
minionList = {
|
||||
"Clone",
|
||||
},
|
||||
minionUses = {
|
||||
["Weapon 1"] = true,
|
||||
},
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfSpiteWhenHit
|
||||
#flags attack projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfSpiteWhenHit2
|
||||
#flags attack projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfSpiteWhenHit3
|
||||
#flags attack projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfSpiteWhenHit4
|
||||
#flags attack projectile
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfTempestOnHit
|
||||
#flags spell area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfTempestOnHit2
|
||||
#flags spell area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfTempestOnHit3
|
||||
#flags spell area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfTempestOnHit4
|
||||
#flags spell area duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfTheGraveOnKill
|
||||
#flags spell minion duration
|
||||
minionList = {
|
||||
"IcyRagingSpirit",
|
||||
},
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfTheGraveOnKill2
|
||||
#flags spell minion duration
|
||||
minionList = {
|
||||
"IcyRagingSpirit",
|
||||
},
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfTheGraveOnKill3
|
||||
#flags spell minion duration
|
||||
minionList = {
|
||||
"IcyRagingSpirit",
|
||||
},
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfTheGraveOnKill4
|
||||
#flags spell minion duration
|
||||
minionList = {
|
||||
"IcyRagingSpirit",
|
||||
},
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfThunderOnKill
|
||||
#flags spell area hit
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfThunderOnKill2
|
||||
#flags spell area hit
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfThunderOnKill3
|
||||
#flags spell area hit
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfThunderOnKill4
|
||||
#flags spell area hit
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfWarOnKill
|
||||
#flags attack duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfWarOnKill2
|
||||
#flags attack duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfWarOnKill3
|
||||
#flags attack duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfWarOnKill4
|
||||
#flags attack duration
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfWinterWhenHit
|
||||
#flags spell projectile area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfWinterWhenHit2
|
||||
#flags spell projectile area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfWinterWhenHit3
|
||||
#flags spell projectile area
|
||||
fromItem = true,
|
||||
#mods
|
||||
|
||||
#skill EnchantmentOfWinterWhenHit4
|
||||
#flags spell projectile area
|
||||
fromItem = true,
|
||||
#mods
|
||||
@@ -162,6 +162,9 @@ directiveTable.skill = function(state, args, out)
|
||||
out:write('\tgemDex = ', skillGem.Dex, ',\n')
|
||||
out:write('\tgemInt = ', skillGem.Int, ',\n')
|
||||
else
|
||||
if displayName == args and not granted.IsSupport then
|
||||
displayName = ActiveSkills[granted.ActiveSkillsKey].DisplayedName
|
||||
end
|
||||
out:write('\tname = "', displayName, '",\n')
|
||||
out:write('\thidden = true,\n')
|
||||
end
|
||||
@@ -439,12 +442,13 @@ directiveTable.mods = function(state, args, out)
|
||||
state.gem = nil
|
||||
end
|
||||
|
||||
for _, name in pairs({"act_str","act_dex","act_int","other","minion","spectre","sup_str","sup_dex","sup_int"}) do
|
||||
for _, name in pairs({"act_str","act_dex","act_int","other","glove","minion","spectre","sup_str","sup_dex","sup_int"}) do
|
||||
processTemplateFile("Skills/"..name, directiveTable)
|
||||
end
|
||||
|
||||
os.execute("xcopy Skills\\act_*.lua ..\\Data\\3_0\\Skills\\ /Y /Q")
|
||||
os.execute("xcopy Skills\\sup_*.lua ..\\Data\\3_0\\Skills\\ /Y /Q")
|
||||
os.execute("xcopy Skills\\other.lua ..\\Data\\3_0\\Skills\\ /Y /Q")
|
||||
os.execute("xcopy Skills\\glove.lua ..\\Data\\3_0\\Skills\\ /Y /Q")
|
||||
|
||||
print("Skill data exported.")
|
||||
@@ -102,7 +102,7 @@ function calcs.createActiveSkill(activeGem, supportList, summonSkill)
|
||||
-- Initialise skill flag set ('attack', 'projectile', etc)
|
||||
local skillFlags = copyTable(activeGem.grantedEffect.baseFlags)
|
||||
activeSkill.skillFlags = skillFlags
|
||||
skillFlags.hit = activeSkill.skillTypes[SkillType.Attack] or activeSkill.skillTypes[SkillType.Hit] or activeSkill.skillTypes[SkillType.Projectile]
|
||||
skillFlags.hit = skillFlags.hit or activeSkill.skillTypes[SkillType.Attack] or activeSkill.skillTypes[SkillType.Hit] or activeSkill.skillTypes[SkillType.Projectile]
|
||||
|
||||
-- Process support skills
|
||||
activeSkill.gemList = { activeGem }
|
||||
@@ -415,6 +415,7 @@ function calcs.buildActiveSkillModList(env, actor, activeSkill)
|
||||
minion.minionData = env.data.minions[minionType]
|
||||
minion.level = activeSkill.skillData.minionLevelIsEnemyLevel and env.enemyLevel or activeSkill.skillData.minionLevel or activeSkill.skillData.levelRequirement
|
||||
minion.itemList = { }
|
||||
minion.uses = activeGem.grantedEffect.minionUses
|
||||
local attackTime = minion.minionData.attackTime * (1 - (minion.minionData.damageFixup or 0))
|
||||
local damage = env.data.monsterDamageTable[minion.level] * minion.minionData.damage * attackTime
|
||||
if activeGem.grantedEffect.minionHasItemSet then
|
||||
@@ -443,17 +444,25 @@ function calcs.buildActiveSkillModList(env, actor, activeSkill)
|
||||
}
|
||||
end
|
||||
minion.weaponData2 = { }
|
||||
if minion.itemSet then
|
||||
if activeGem.grantedEffect.minionUses["Weapon 1"] then
|
||||
local item = env.build.itemsTab.items[minion.itemSet[minion.itemSet.useSecondWeaponSet and "Weapon 1 Swap" or "Weapon 1"].selItemId]
|
||||
if item then
|
||||
minion.weaponData1 = item.weaponData[1]
|
||||
if minion.uses then
|
||||
if minion.uses["Weapon 1"] then
|
||||
if minion.itemSet then
|
||||
local item = env.build.itemsTab.items[minion.itemSet[minion.itemSet.useSecondWeaponSet and "Weapon 1 Swap" or "Weapon 1"].selItemId]
|
||||
if item then
|
||||
minion.weaponData1 = item.weaponData[1]
|
||||
end
|
||||
else
|
||||
minion.weaponData1 = env.player.weaponData1
|
||||
end
|
||||
end
|
||||
if activeGem.grantedEffect.minionUses["Weapon 2"] then
|
||||
local item = env.build.itemsTab.items[minion.itemSet[minion.itemSet.useSecondWeaponSet and "Weapon 2 Swap" or "Weapon 2"].selItemId]
|
||||
if item and item.weaponData then
|
||||
minion.weaponData2 = item.weaponData[2]
|
||||
if minion.uses["Weapon 2"] then
|
||||
if minion.itemSet then
|
||||
local item = env.build.itemsTab.items[minion.itemSet[minion.itemSet.useSecondWeaponSet and "Weapon 2 Swap" or "Weapon 2"].selItemId]
|
||||
if item and item.weaponData then
|
||||
minion.weaponData2 = item.weaponData[2]
|
||||
end
|
||||
else
|
||||
minion.weaponData2 = env.player.weaponData2
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -344,13 +344,18 @@ function calcs.perform(env)
|
||||
env.minion.modDB:AddList(env.player.itemList["Weapon 2"].modList)
|
||||
end
|
||||
end
|
||||
if env.minion.itemSet then
|
||||
if env.minion.itemSet or env.minion.uses then
|
||||
for slotName, slot in pairs(env.build.itemsTab.slots) do
|
||||
if env.player.mainSkill.activeGem.grantedEffect.minionUses[slotName] then
|
||||
if slot.weaponSet == 1 and env.minion.itemSet.useSecondWeaponSet then
|
||||
slotName = slotName .. " Swap"
|
||||
if env.minion.uses[slotName] then
|
||||
local item
|
||||
if env.minion.itemSet then
|
||||
if slot.weaponSet == 1 and env.minion.itemSet.useSecondWeaponSet then
|
||||
slotName = slotName .. " Swap"
|
||||
end
|
||||
item = env.build.itemsTab.items[env.minion.itemSet[slotName].selItemId]
|
||||
else
|
||||
item = env.player.itemList[slotName]
|
||||
end
|
||||
local item = env.build.itemsTab.items[env.minion.itemSet[slotName].selItemId]
|
||||
if item then
|
||||
env.minion.itemList[slotName] = item
|
||||
env.minion.modDB:AddList(item.modList or item.slotModList[slot.slotNum])
|
||||
|
||||
@@ -12,6 +12,7 @@ local skillTypes = {
|
||||
"act_dex",
|
||||
"act_int",
|
||||
"other",
|
||||
"glove",
|
||||
"minion",
|
||||
"spectre",
|
||||
"sup_str",
|
||||
@@ -140,6 +141,7 @@ for _, targetVersion in ipairs(targetVersionList) do
|
||||
data[targetVersion].enchantments = {
|
||||
Helmet = dataModule("EnchantmentHelmet"),
|
||||
Boots = dataModule("EnchantmentBoots"),
|
||||
Gloves = dataModule("EnchantmentGloves"),
|
||||
}
|
||||
data[targetVersion].essences = dataModule("Essence")
|
||||
|
||||
|
||||
@@ -303,7 +303,7 @@ function itemLib.parseItemRaw(item)
|
||||
local modList, extra = modLib.parseMod[item.targetVersion](rangedLine or line)
|
||||
if (not modList or extra) and item.rawLines[l+1] then
|
||||
-- Try to combine it with the next line
|
||||
modList, extra = modLib.parseMod[item.targetVersion](line.." "..item.rawLines[l+1])
|
||||
modList, extra = modLib.parseMod[item.targetVersion](line.." "..item.rawLines[l+1], true)
|
||||
if modList and not extra then
|
||||
line = line.."\n"..item.rawLines[l+1]
|
||||
l = l + 1
|
||||
|
||||
@@ -137,6 +137,7 @@ local modNameList = {
|
||||
["to avoid being frozen"] = "AvoidFrozen",
|
||||
["to avoid being chilled"] = "AvoidChilled",
|
||||
["to avoid being ignited"] = "AvoidIgnite",
|
||||
["to avoid elemental ailments"] = { "AvoidShock", "AvoidFrozen", "AvoidChilled", "AvoidIgnite" },
|
||||
["to avoid elemental status ailments"] = { "AvoidShock", "AvoidFrozen", "AvoidChilled", "AvoidIgnite" },
|
||||
["damage is taken from mana before life"] = "DamageTakenFromManaBeforeLife",
|
||||
["effect of curses on you"] = "CurseEffectOnSelf",
|
||||
@@ -418,6 +419,7 @@ local preFlagList = {
|
||||
["^attacks with this weapon have "] = { tag = { type = "Condition", var = "XHandAttack" } },
|
||||
["^attacks have "] = { flags = ModFlag.Attack },
|
||||
["^melee attacks have "] = { flags = ModFlag.Melee },
|
||||
["^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" } },
|
||||
@@ -432,6 +434,7 @@ local preFlagList = {
|
||||
["^you and nearby allies [hgd][ae][via][enl] "] = { newAura = true },
|
||||
["^nearby allies [hgd][ae][via][enl] "] = { newAura = true, newAuraOnlyAllies = true },
|
||||
["^you and allies affected by your auras have "] = { affectedByAura = true },
|
||||
["^take "] = { modSuffix = "Taken" },
|
||||
}
|
||||
|
||||
-- List of modifier tags
|
||||
@@ -517,41 +520,45 @@ local modTagList = {
|
||||
["while frozen"] = { tag = { type = "Condition", var = "Frozen" } },
|
||||
["while shocked"] = { tag = { type = "Condition", var = "Shocked" } },
|
||||
["while not ignited, frozen or shocked"] = { tag = { type = "Condition", varList = { "Ignited", "Frozen", "Shocked" }, neg = true } },
|
||||
["if you have hit recently"] = { tag = { type = "Condition", var = "HitRecently" } },
|
||||
["if you've crit recently"] = { tag = { type = "Condition", var = "CritRecently" } },
|
||||
["if you've dealt a critical strike recently"] = { tag = { type = "Condition", var = "CritRecently" } },
|
||||
["if you[' ]h?a?ve hit recently"] = { tag = { type = "Condition", var = "HitRecently" } },
|
||||
["if you[' ]h?a?ve crit recently"] = { tag = { type = "Condition", var = "CritRecently" } },
|
||||
["if you[' ]h?a?ve dealt a critical strike recently"] = { tag = { type = "Condition", var = "CritRecently" } },
|
||||
["if you haven't crit recently"] = { tag = { type = "Condition", var = "CritRecently", neg = true } },
|
||||
["if you've dealt a non%-critical strike recently"] = { tag = { type = "Condition", var = "NonCritRecently" } },
|
||||
["if you've killed recently"] = { tag = { type = "Condition", var = "KilledRecently" } },
|
||||
["if you[' ]h?a?ve dealt a non%-critical strike recently"] = { tag = { type = "Condition", var = "NonCritRecently" } },
|
||||
["if you[' ]h?a?ve killed recently"] = { tag = { type = "Condition", var = "KilledRecently" } },
|
||||
["if you haven't killed recently"] = { tag = { type = "Condition", var = "KilledRecently", neg = true } },
|
||||
["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 killed an enemy affected by your damage over time recently"] = { tag = { type = "Condition", var = "KilledAffectedByDotRecently" } },
|
||||
["if you've frozen an enemy recently"] = { tag = { type = "Condition", var = "FrozenEnemyRecently" } },
|
||||
["if you've ignited an enemy recently"] = { tag = { type = "Condition", var = "IgnitedEnemyRecently" } },
|
||||
["if you[' ]h?a?ve killed a maimed enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "EnemyCondition", var = "Maimed" } } },
|
||||
["if you[' ]h?a?ve killed a cursed enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "EnemyCondition", var = "Cursed" } } },
|
||||
["if you[' ]h?a?ve killed a bleeding enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "EnemyCondition", var = "Bleeding" } } },
|
||||
["if you[' ]h?a?ve killed an enemy affected by your damage over time recently"] = { tag = { type = "Condition", var = "KilledAffectedByDotRecently" } },
|
||||
["if you[' ]h?a?ve frozen an enemy recently"] = { tag = { type = "Condition", var = "FrozenEnemyRecently" } },
|
||||
["if you[' ]h?a?ve ignited an enemy recently"] = { tag = { type = "Condition", var = "IgnitedEnemyRecently" } },
|
||||
["if you[' ]h?a?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" } },
|
||||
["if you've taken a critical strike recently"] = { tag = { type = "Condition", var = "BeenCritRecently" } },
|
||||
["if you've taken a savage hit recently"] = { tag = { type = "Condition", var = "BeenSavageHitRecently" } },
|
||||
["if you[' ]h?a?ve taken a critical strike recently"] = { tag = { type = "Condition", var = "BeenCritRecently" } },
|
||||
["if you[' ]h?a?ve taken a savage hit recently"] = { tag = { type = "Condition", var = "BeenSavageHitRecently" } },
|
||||
["if you have ?n[o']t been hit recently"] = { tag = { type = "Condition", var = "BeenHitRecently", neg = true } },
|
||||
["if you've taken no damage from hits recently"] = { tag = { type = "Condition", var = "BeenHitRecently", neg = true } },
|
||||
["if you[' ]h?a?ve taken no damage from hits recently"] = { tag = { type = "Condition", var = "BeenHitRecently", neg = true } },
|
||||
["if you[' ]h?a?ve blocked recently"] = { tag = { type = "Condition", varList = { "BlockedAttackRecently", "BlockedSpellRecently" } } },
|
||||
["if you've blocked an attack recently"] = { tag = { type = "Condition", var = "BlockedAttackRecently" } },
|
||||
["if you've blocked a spell recently"] = { tag = { type = "Condition", var = "BlockedSpellRecently" } },
|
||||
["if you've blocked a hit from a unique enemy recently"] = { tag = { type = "Condition", var = "BlockedHitFromUniqueEnemyRecently" } },
|
||||
["if you've attacked recently"] = { tag = { type = "Condition", var = "AttackedRecently" } },
|
||||
["if you've cast a spell recently"] = { tag = { type = "Condition", var = "CastSpellRecently" } },
|
||||
["if you have consumed a corpse recently"] = { tag = { type = "Condition", var = "ConsumedCorpseRecently" } },
|
||||
["if you've taunted an enemy recently"] = { tag = { type = "Condition", var = "TauntedEnemyRecently" } },
|
||||
["if you've used a warcry recently"] = { tag = { type = "Condition", var = "UsedWarcryRecently" } },
|
||||
["if you've used a fire skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedFireSkillInPast10Sec" } },
|
||||
["if you've used a cold skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedColdSkillInPast10Sec" } },
|
||||
["if you've used a lightning skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedLightningSkillInPast10Sec" } },
|
||||
["if you've summoned a totem recently"] = { tag = { type = "Condition", var = "SummonedTotemRecently" } },
|
||||
["if you've used a movement skill recently"] = { tag = { type = "Condition", var = "UsedMovementSkillRecently" } },
|
||||
["if you[' ]h?a?ve blocked an attack recently"] = { tag = { type = "Condition", var = "BlockedAttackRecently" } },
|
||||
["if you[' ]h?a?ve blocked a spell recently"] = { tag = { type = "Condition", var = "BlockedSpellRecently" } },
|
||||
["if you[' ]h?a?ve blocked a hit from a unique enemy recently"] = { tag = { type = "Condition", var = "BlockedHitFromUniqueEnemyRecently" } },
|
||||
["if you[' ]h?a?ve attacked recently"] = { tag = { type = "Condition", var = "AttackedRecently" } },
|
||||
["if you[' ]h?a?ve cast a spell recently"] = { tag = { type = "Condition", var = "CastSpellRecently" } },
|
||||
["if you[' ]h?a?ve consumed a corpse recently"] = { tag = { type = "Condition", var = "ConsumedCorpseRecently" } },
|
||||
["if you[' ]h?a?ve taunted an enemy recently"] = { tag = { type = "Condition", var = "TauntedEnemyRecently" } },
|
||||
["if you[' ]h?a?ve used a warcry recently"] = { tag = { type = "Condition", var = "UsedWarcryRecently" } },
|
||||
["if you[' ]h?a?ve used a fire skill recently"] = { tag = { type = "Condition", var = "UsedFireSkillRecently" } },
|
||||
["if you[' ]h?a?ve used a cold skill recently"] = { tag = { type = "Condition", var = "UsedColdSkillRecently" } },
|
||||
["if you[' ]h?a?ve used a fire skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedFireSkillInPast10Sec" } },
|
||||
["if you[' ]h?a?ve used a cold skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedColdSkillInPast10Sec" } },
|
||||
["if you[' ]h?a?ve used a lightning skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedLightningSkillInPast10Sec" } },
|
||||
["if you[' ]h?a?ve summoned a totem recently"] = { tag = { type = "Condition", var = "SummonedTotemRecently" } },
|
||||
["if you[' ]h?a?ve used a movement skill recently"] = { tag = { type = "Condition", var = "UsedMovementSkillRecently" } },
|
||||
["if you detonated mines recently"] = { tag = { type = "Condition", var = "DetonatedMinesRecently" } },
|
||||
["if you've crit in the past 8 seconds"] = { tag = { type = "Condition", var = "CritInPast8Sec" } },
|
||||
["if you[' ]h?a?ve crit in the past 8 seconds"] = { tag = { type = "Condition", var = "CritInPast8Sec" } },
|
||||
["if energy shield recharge has started recently"] = { tag = { type = "Condition", var = "EnergyShieldRechargeRecently" } },
|
||||
-- Enemy status conditions
|
||||
["at close range"] = { tag = { type = "Condition", var = "AtCloseRange" }, flags = ModFlag.Hit },
|
||||
@@ -637,6 +644,7 @@ local specialModList = {
|
||||
["spend energy shield before mana for skill costs"] = { },
|
||||
["energy shield protects mana instead of life"] = { flag("EnergyShieldProtectsMana") },
|
||||
-- Ascendancy notables
|
||||
["can allocate passives from the %a+'s starting point"] = { },
|
||||
["movement skills cost no mana"] = { mod("ManaCost", "MORE", -100, nil, 0, KeywordFlag.Movement) },
|
||||
["projectiles have (%d+)%% additional chance to pierce targets at the start of their movement, losing this chance as the projectile travels farther"] = function(num) return { mod("PierceChance", "BASE", num, { type = "DistanceRamp", ramp = {{10,1},{120,0}} }) } end,
|
||||
["projectile critical strike chance increased by arrow pierce chance"] = { mod("CritChance", "INC", 1, nil, ModFlag.Projectile, 0, { type = "PerStat", stat = "PierceChance", div = 1 }) },
|
||||
@@ -670,6 +678,7 @@ local specialModList = {
|
||||
["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,
|
||||
["(%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,
|
||||
@@ -731,6 +740,14 @@ local specialModList = {
|
||||
["cast level (%d+) (.+) when you deal a critical strike"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast level (%d+) (.+) when hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast level (%d+) (.+) when you kill an enemy"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast (.+) on hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) on hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) when hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) when hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) on kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) on kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) when your skills or minions kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) when you take a critical strike"] = function( _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["%d+%% chance to attack with level (%d+) (.+) on melee hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["%d+%% chance to cast level (%d+) (.+) on hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["%d+%% chance to cast level (%d+) (.+) on kill"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
@@ -900,6 +917,8 @@ local specialModList = {
|
||||
["you have onslaught while you have fortify"] = { flag("Condition:Onslaught", { type = "Condition", var = "Fortify" }) },
|
||||
["reserves (%d+)%% of life"] = function(num) return { mod("ExtraLifeReserved", "BASE", num) } end,
|
||||
["items and gems have (%d+)%% reduced attribute requirements"] = function(num) return { mod("GlobalAttributeRequirements", "INC", -num) } end,
|
||||
["prefixes:"] = { },
|
||||
["suffixes:"] = { },
|
||||
-- Skill-specific enchantment modifiers
|
||||
["(%d+)%% increased decoy totem life"] = function(num) return { mod("TotemLife", "INC", num, { type = "SkillName", skillName = "Decoy Totem" }) } end,
|
||||
["(%d+)%% increased ice spear critical strike chance in second form"] = function(num) return { mod("CritChance", "INC", num, { type = "SkillName", skillName = "Ice Spear" }, { type = "SkillPart", skillPart = 2 }) } end,
|
||||
@@ -1329,7 +1348,7 @@ local function parseMod(line, order)
|
||||
local modList = { }
|
||||
for i, name in ipairs(type(nameList) == "table" and nameList or { nameList }) do
|
||||
modList[i] = {
|
||||
name = name .. (modSuffix or ""),
|
||||
name = name .. (modSuffix or misc.modSuffix or ""),
|
||||
type = modType,
|
||||
value = type(modValue) == "table" and modValue[i] or modValue,
|
||||
flags = flags,
|
||||
|
||||
@@ -399,7 +399,7 @@ local modFlagList = {
|
||||
|
||||
-- List of modifier flags/tags that appear at the start of a line
|
||||
local preFlagList = {
|
||||
["^hits deal "] = { flags = ModFlag.Hit },
|
||||
["^hits deal "] = { keywordFlags = KeywordFlag.Hit },
|
||||
["^critical strikes deal "] = { tag = { type = "Condition", var = "CriticalStrike" } },
|
||||
["^minions "] = { addToMinion = true },
|
||||
["^minions [hd][ae][va][el] "] = { addToMinion = true },
|
||||
@@ -426,6 +426,7 @@ local preFlagList = {
|
||||
["^attacks with this weapon have "] = { tag = { type = "Condition", var = "XHandAttack" } },
|
||||
["^attacks have "] = { flags = ModFlag.Attack },
|
||||
["^melee attacks have "] = { flags = ModFlag.Melee },
|
||||
["^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" } },
|
||||
@@ -440,6 +441,7 @@ local preFlagList = {
|
||||
["^you and nearby allies [hgd][ae][via][enl] "] = { newAura = true },
|
||||
["^nearby allies [hgd][ae][via][enl] "] = { newAura = true, newAuraOnlyAllies = true },
|
||||
["^you and allies affected by your auras have "] = { affectedByAura = true },
|
||||
["^take "] = { modSuffix = "Taken" },
|
||||
}
|
||||
|
||||
-- List of modifier tags
|
||||
@@ -527,7 +529,7 @@ local modTagList = {
|
||||
["while not ignited, frozen or shocked"] = { tag = { type = "Condition", varList = { "Ignited", "Frozen", "Shocked" }, neg = true } },
|
||||
["while cursed"] = { tag = { type = "Condition", var = "Cursed" } },
|
||||
["while not cursed"] = { tag = { type = "Condition", var = "Cursed", neg = true } },
|
||||
["if you have hit recently"] = { tag = { type = "Condition", var = "HitRecently" } },
|
||||
["if you[' ]h?a?ve hit recently"] = { tag = { type = "Condition", var = "HitRecently" } },
|
||||
["if you[' ]h?a?ve crit recently"] = { tag = { type = "Condition", var = "CritRecently" } },
|
||||
["if you[' ]h?a?ve dealt a critical strike recently"] = { tag = { type = "Condition", var = "CritRecently" } },
|
||||
["if you haven't crit recently"] = { tag = { type = "Condition", var = "CritRecently", neg = true } },
|
||||
@@ -535,7 +537,9 @@ local modTagList = {
|
||||
["if you[' ]h?a?ve killed recently"] = { tag = { type = "Condition", var = "KilledRecently" } },
|
||||
["if you haven't killed recently"] = { tag = { type = "Condition", var = "KilledRecently", neg = true } },
|
||||
["if you or your totems have killed recently"] = { tag = { type = "Condition", varList = {"KilledRecently","TotemsKilledRecently"} } },
|
||||
["if you[' ]h?a?ve killed a maimed enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "Condition", var = "EnemyMaimed" } } },
|
||||
["if you[' ]h?a?ve killed a maimed enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "EnemyCondition", var = "Maimed" } } },
|
||||
["if you[' ]h?a?ve killed a cursed enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "EnemyCondition", var = "Cursed" } } },
|
||||
["if you[' ]h?a?ve killed a bleeding enemy recently"] = { tagList = { { type = "Condition", var = "KilledRecently" }, { type = "EnemyCondition", var = "Bleeding" } } },
|
||||
["if you[' ]h?a?ve killed an enemy affected by your damage over time recently"] = { tag = { type = "Condition", var = "KilledAffectedByDotRecently" } },
|
||||
["if you[' ]h?a?ve frozen an enemy recently"] = { tag = { type = "Condition", var = "FrozenEnemyRecently" } },
|
||||
["if you[' ]h?a?ve ignited an enemy recently"] = { tag = { type = "Condition", var = "IgnitedEnemyRecently" } },
|
||||
@@ -552,7 +556,7 @@ local modTagList = {
|
||||
["if you[' ]h?a?ve blocked a hit from a unique enemy recently"] = { tag = { type = "Condition", var = "BlockedHitFromUniqueEnemyRecently" } },
|
||||
["if you[' ]h?a?ve attacked recently"] = { tag = { type = "Condition", var = "AttackedRecently" } },
|
||||
["if you[' ]h?a?ve cast a spell recently"] = { tag = { type = "Condition", var = "CastSpellRecently" } },
|
||||
["if you have consumed a corpse recently"] = { tag = { type = "Condition", var = "ConsumedCorpseRecently" } },
|
||||
["if you[' ]h?a?ve consumed a corpse recently"] = { tag = { type = "Condition", var = "ConsumedCorpseRecently" } },
|
||||
["if you[' ]h?a?ve taunted an enemy recently"] = { tag = { type = "Condition", var = "TauntedEnemyRecently" } },
|
||||
["if you[' ]h?a?ve used a warcry recently"] = { tag = { type = "Condition", var = "UsedWarcryRecently" } },
|
||||
["if you[' ]h?a?ve used a fire skill recently"] = { tag = { type = "Condition", var = "UsedFireSkillRecently" } },
|
||||
@@ -651,6 +655,7 @@ local specialModList = {
|
||||
["energy shield protects mana instead of life"] = { flag("EnergyShieldProtectsMana") },
|
||||
["modifiers to critical strike multiplier also apply to damage multiplier for ailments from critical strikes at (%d+)%% of their value"] = function(num) return { mod("CritMultiplierAppliesToDegen", "BASE", num) } end,
|
||||
-- Ascendancy notables
|
||||
["can allocate passives from the %a+'s starting point"] = { },
|
||||
["movement skills cost no mana"] = { mod("ManaCost", "MORE", -100, nil, 0, KeywordFlag.Movement) },
|
||||
["projectiles have (%d+)%% additional chance to pierce targets at the start of their movement, losing this chance as the projectile travels farther"] = function(num) return { mod("PierceChance", "BASE", num, { type = "DistanceRamp", ramp = {{10,1},{120,0}} }) } end,
|
||||
["projectile critical strike chance increased by arrow pierce chance"] = { mod("CritChance", "INC", 1, nil, ModFlag.Projectile, 0, { type = "PerStat", stat = "PierceChance", div = 1 }) },
|
||||
@@ -684,6 +689,7 @@ local specialModList = {
|
||||
["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,
|
||||
["(%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,
|
||||
@@ -746,6 +752,14 @@ local specialModList = {
|
||||
["cast level (%d+) (.+) when you deal a critical strike"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast level (%d+) (.+) when hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast level (%d+) (.+) when you kill an enemy"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast (.+) on hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) on hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) when hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) when hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) on kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) on kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) when your skills or minions kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) when you take a critical strike"] = function( _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["%d+%% chance to attack with level (%d+) (.+) on melee hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["%d+%% chance to cast level (%d+) (.+) on hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["%d+%% chance to cast level (%d+) (.+) on kill"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
@@ -916,6 +930,8 @@ local specialModList = {
|
||||
["you have onslaught while you have fortify"] = { flag("Condition:Onslaught", { type = "Condition", var = "Fortify" }) },
|
||||
["reserves (%d+)%% of life"] = function(num) return { mod("ExtraLifeReserved", "BASE", num) } end,
|
||||
["items and gems have (%d+)%% reduced attribute requirements"] = function(num) return { mod("GlobalAttributeRequirements", "INC", -num) } end,
|
||||
["prefixes:"] = { },
|
||||
["suffixes:"] = { },
|
||||
-- Skill-specific enchantment modifiers
|
||||
["(%d+)%% increased decoy totem life"] = function(num) return { mod("TotemLife", "INC", num, { type = "SkillName", skillName = "Decoy Totem" }) } end,
|
||||
["(%d+)%% increased ice spear critical strike chance in second form"] = function(num) return { mod("CritChance", "INC", num, { type = "SkillName", skillName = "Ice Spear" }, { type = "SkillPart", skillPart = 2 }) } end,
|
||||
@@ -1211,8 +1227,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
|
||||
@@ -1258,10 +1274,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
|
||||
@@ -1326,7 +1341,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)
|
||||
@@ -1348,7 +1363,7 @@ local function parseMod(line, order)
|
||||
local modList = { }
|
||||
for i, name in ipairs(type(nameList) == "table" and nameList or { nameList }) do
|
||||
modList[i] = {
|
||||
name = name .. (modSuffix or ""),
|
||||
name = name .. (modSuffix or misc.modSuffix or ""),
|
||||
type = modType,
|
||||
value = type(modValue) == "table" and modValue[i] or modValue,
|
||||
flags = flags,
|
||||
@@ -1393,21 +1408,25 @@ end
|
||||
local cache = { }
|
||||
local unsupported = { }
|
||||
local count = 0
|
||||
return function(line)
|
||||
--local foo = io.open("../unsupported.txt", "w")
|
||||
--foo:close()
|
||||
return function(line, isComb)
|
||||
if not cache[line] then
|
||||
local modList, extra = parseMod(line, 1)
|
||||
if modList and extra then
|
||||
modList, extra = parseMod(line, 2)
|
||||
end
|
||||
cache[line] = { modList, extra }
|
||||
--[[if not cache[line][1] then
|
||||
if foo and not isComb and not cache[line][1] then
|
||||
local form = line:gsub("[%+%-]?%d+%.?%d*","{num}")
|
||||
if not unsupported[form] then
|
||||
unsupported[form] = true
|
||||
count = count + 1
|
||||
ConPrintf("%d %s", count, form)
|
||||
foo = io.open("../unsupported.txt", "a+")
|
||||
foo:write(count, ': ', form, '\n')
|
||||
foo:close()
|
||||
end
|
||||
end]]
|
||||
end
|
||||
end
|
||||
return unpack(copyTable(cache[line]))
|
||||
end
|
||||
@@ -114,6 +114,7 @@ EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2.6", "2.6", "{C67A4D0E-AF9E-45AB-9900-0D72C974B6A5}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
Data\2_6\EnchantmentBoots.lua = Data\2_6\EnchantmentBoots.lua
|
||||
Data\2_6\EnchantmentGloves.lua = Data\2_6\EnchantmentGloves.lua
|
||||
Data\2_6\EnchantmentHelmet.lua = Data\2_6\EnchantmentHelmet.lua
|
||||
Data\2_6\Essence.lua = Data\2_6\Essence.lua
|
||||
Data\2_6\Minions.lua = Data\2_6\Minions.lua
|
||||
@@ -129,6 +130,7 @@ EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3.0", "3.0", "{E58DF0B8-3886-4CF7-B6F7-5EC094049DCF}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
Data\3_0\EnchantmentBoots.lua = Data\3_0\EnchantmentBoots.lua
|
||||
Data\3_0\EnchantmentGloves.lua = Data\3_0\EnchantmentGloves.lua
|
||||
Data\3_0\EnchantmentHelmet.lua = Data\3_0\EnchantmentHelmet.lua
|
||||
Data\3_0\Essence.lua = Data\3_0\Essence.lua
|
||||
Data\3_0\Minions.lua = Data\3_0\Minions.lua
|
||||
|
||||
@@ -53,6 +53,11 @@ If you'd like to help support the development of Path of Building, I have a [Pat
|
||||

|
||||
|
||||
## Changelog
|
||||
### 1.4.39 - 2017/06/30
|
||||
* You can now apply enchantments to Gloves
|
||||
* Added support for all Glove enchantment skills
|
||||
* Various minor tweaks and fixes
|
||||
|
||||
### 1.4.38 - 2017/06/29
|
||||
* Added support for Devouring Totem
|
||||
* Added basic support for Conversion Trap (calculations for mana cost, cooldown and duration)
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
VERSION[1.4.39][2017/06/30]
|
||||
* You can now apply enchantments to Gloves
|
||||
* Added support for all Glove enchantment skills
|
||||
* Various minor tweaks and fixes
|
||||
VERSION[1.4.38][2017/06/29]
|
||||
* Added support for Devouring Totem
|
||||
* Added basic support for Conversion Trap (calculations for mana cost, cooldown and duration)
|
||||
|
||||
30
manifest.xml
30
manifest.xml
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<PoBVersion>
|
||||
<Version number="1.4.38"/>
|
||||
<Version number="1.4.39"/>
|
||||
<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="2fb719ed2a9648b2dd13a137f650b3c0e48705fa" name="Launch.lua" part="program"/>
|
||||
<File sha1="72b9bea1871e94a643e4471fd84bbedbc7810336" name="UpdateCheck.lua" part="program"/>
|
||||
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
|
||||
<File sha1="eb7c749e814c764fc485684b361f46f22b824530" name="changelog.txt" part="program"/>
|
||||
<File sha1="d4ba67e567a41b640a2e7843ebc1344b2ac69dc3" name="changelog.txt" part="program"/>
|
||||
<File sha1="3558da442f2fc18c3e1ea751b301be863dee56e8" name="Classes/BuildListControl.lua" part="program"/>
|
||||
<File sha1="dc2ffb55b4aae04b86886b25bbf219a301b21340" name="Classes/ButtonControl.lua" part="program"/>
|
||||
<File sha1="c2dcdfa14d43f1c2452d9abbd34979e67291ae19" name="Classes/CalcBreakdownControl.lua" part="program"/>
|
||||
@@ -21,7 +21,7 @@
|
||||
<File sha1="276512f60a6634a1c4febd475fe1e280b81b23b4" name="Classes/EditControl.lua" part="program"/>
|
||||
<File sha1="afa58b85c876e107edcd49e4a01c06a981843ff8" name="Classes/FolderListControl.lua" part="program"/>
|
||||
<File sha1="ee93a66305ba95fa95bb0c5659a5bab8871c96db" name="Classes/GemSelectControl.lua" part="program"/>
|
||||
<File sha1="6ce66aec09c905cb3a1fd9a4014b2d14167ccec6" name="Classes/ImportTab.lua" part="program"/>
|
||||
<File sha1="fcb3122575ce628dd8db190453d707cb8f6944d8" name="Classes/ImportTab.lua" part="program"/>
|
||||
<File sha1="532e37fb829a9c87bf26c676d1f773e9fa09323f" name="Classes/ItemDBControl.lua" part="program"/>
|
||||
<File sha1="6db5f76dcc2b41cd62900be8c11be79997e2160f" name="Classes/ItemListControl.lua" part="program"/>
|
||||
<File sha1="627de0e59c5b1f68f9d0c0913a0a84d564660a8d" name="Classes/ItemSetListControl.lua" part="program"/>
|
||||
@@ -35,7 +35,7 @@
|
||||
<File sha1="9bc0d8791e7825e52070e96e7894d29fad70cf98" name="Classes/NotesTab.lua" part="program"/>
|
||||
<File sha1="ca94b201ae873829e7be39075150ee6bc79be0c3" name="Classes/PassiveSpec.lua" part="program"/>
|
||||
<File sha1="2802110b05a2ebdf39e62c1e9cfcf72d9538f359" name="Classes/PassiveSpecListControl.lua" part="program"/>
|
||||
<File sha1="eb83c39c7598c5534458036cf870ca0a31e767b1" name="Classes/PassiveTree.lua" part="program"/>
|
||||
<File sha1="59116e062d54eeb8c9247465699e8b5de5a38a20" name="Classes/PassiveTree.lua" part="program"/>
|
||||
<File sha1="fefeaac2e396b46f0b6935a6ac3117c59e909157" name="Classes/PassiveTreeView.lua" part="program"/>
|
||||
<File sha1="824082f62de7fa5fbe9ea95ee59db8bb6e378b5f" name="Classes/PathControl.lua" part="program"/>
|
||||
<File sha1="9d91ef81ac4fd8d5a1e16be17bdf199545209d87" name="Classes/PopupDialog.lua" part="program"/>
|
||||
@@ -51,24 +51,24 @@
|
||||
<File sha1="4b7675c8b4fe71cade7dd3d70793df1ed8022d01" name="Classes/UndoHandler.lua" part="program"/>
|
||||
<File sha1="cbed5fe9dd5909c21ca58c123623a1b8159147b3" name="Modules/Build.lua" part="program"/>
|
||||
<File sha1="44fab56072de8e555ff7e20ee32628230511d1d6" name="Modules/BuildList.lua" part="program"/>
|
||||
<File sha1="762f6393caf2cb625ee496e50fc0cb422eeecc70" name="Modules/CalcActiveSkill.lua" part="program"/>
|
||||
<File sha1="2161d63e451c6eea1e78e7f927783bc65ef3e69a" 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="bdaa9a0244cec4d7b1ddeb016ec89db32e5ffb04" name="Modules/CalcOffence-2_6.lua" part="program"/>
|
||||
<File sha1="df92843da3e7ebf7c9dfff8f85ad15512fecf7bd" name="Modules/CalcOffence-3_0.lua" part="program"/>
|
||||
<File sha1="3e7811afe317e90a00a4c2a652c081131881703a" name="Modules/CalcPerform.lua" part="program"/>
|
||||
<File sha1="783a485f6d5674f45b06cf003eee7405c84a751b" name="Modules/CalcPerform.lua" part="program"/>
|
||||
<File sha1="db07750d45df48737f29fc7b0f90c61a95c18359" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="e767209f276dab7c562bebd967bbc0f3c2ffc104" name="Modules/CalcSections-2_6.lua" part="program"/>
|
||||
<File sha1="94dcc219aa0bc7764cc2d750113174ed08568819" name="Modules/CalcSections-3_0.lua" part="program"/>
|
||||
<File sha1="7e0ac24ecd5ce1b4f73327bf193588f54b5ba1d4" 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="54de4b28bbf5bcb0244a4c21b7d191ae5b1eb812" name="Modules/Data.lua" part="program"/>
|
||||
<File sha1="14dd025972312387df9aaf2c80b22fd96a4a8939" name="Modules/ItemTools.lua" part="program"/>
|
||||
<File sha1="081909fbc9a19fe359848277116c44fa5415c58e" name="Modules/Data.lua" part="program"/>
|
||||
<File sha1="440f1615282a6270e89a3ef2b941994b758a6eac" name="Modules/ItemTools.lua" part="program"/>
|
||||
<File sha1="7b7c9db9660a2d3c158114382a4d717b6a16bbe7" name="Modules/Main.lua" part="program"/>
|
||||
<File sha1="7eda7b837135fcc68898332ea4414a4258e1bda4" name="Modules/ModParser-2_6.lua" part="program"/>
|
||||
<File sha1="5c5d589dd59553fca51a240c1c41e7ae010e07da" name="Modules/ModParser-3_0.lua" part="program"/>
|
||||
<File sha1="8f0799de4fb80b939927efdf99fc18e4f4bb48de" name="Modules/ModParser-2_6.lua" part="program"/>
|
||||
<File sha1="6fc2e9d8c0841ce68dc6d3d254a7610301fbe330" name="Modules/ModParser-3_0.lua" part="program"/>
|
||||
<File sha1="4e1067e5444062686cd06783034537e7ff4fbfe1" 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"/>
|
||||
@@ -79,7 +79,7 @@
|
||||
<File sha1="a725cc402e3b8bbac143ca49695eeabbc1e2ae19" name="Data/Misc.lua" part="program"/>
|
||||
<File sha1="f4d68a2c4e5ddedc8930baab8ab65201e997fefc" name="Data/New.lua" part="program"/>
|
||||
<File sha1="99a868a0d4b20ebab0440c24ae60f3e8d4b45905" name="Data/Uniques/amulet.lua" part="program"/>
|
||||
<File sha1="6713f4b7d5ff0881fca1b9762912928ebca3ec30" name="Data/Uniques/axe.lua" part="program"/>
|
||||
<File sha1="f72ab0b613aa5286aa015bc2114552ad2a736e43" name="Data/Uniques/axe.lua" part="program"/>
|
||||
<File sha1="d6ec42ab465b327e611b01c10139034928a5c1de" name="Data/Uniques/belt.lua" part="program"/>
|
||||
<File sha1="28ad97db08e6b811562186692e2263e0904566c1" name="Data/Uniques/body.lua" part="program"/>
|
||||
<File sha1="8fae06c1955f32ba2fd4b14b0591b781cab403fa" name="Data/Uniques/boots.lua" part="program"/>
|
||||
@@ -98,9 +98,10 @@
|
||||
<File sha1="af3b08c75f819a14b41d93826fa53f3fa04bca5b" name="Data/Uniques/sword.lua" part="program"/>
|
||||
<File sha1="dbb5de009ec1e08dc50e2feefa4593962ff5f463" name="Data/Uniques/wand.lua" part="program"/>
|
||||
<File sha1="4a2651bfcb3beb6fe8b9acab18a6792072f7e9b4" name="Data/2_6/EnchantmentBoots.lua" part="program"/>
|
||||
<File sha1="cc36a59b04a69c76ef76f5b6bc6899fd0ee1666e" name="Data/2_6/EnchantmentGloves.lua" part="program"/>
|
||||
<File sha1="b305198cafc6800aa5556da07a5eea699c718d3b" name="Data/2_6/EnchantmentHelmet.lua" part="program"/>
|
||||
<File sha1="170d14d9176a1d7425d4bfa1b3bcc08c5f4fe73c" name="Data/2_6/Essence.lua" part="program"/>
|
||||
<File sha1="6ecfff08cb71f674f6db4f34d2cbc398af7a767b" name="Data/2_6/Minions.lua" part="program"/>
|
||||
<File sha1="09c1accc335b4f523e1367966f4c6984b8c8bd84" name="Data/2_6/Minions.lua" part="program"/>
|
||||
<File sha1="a3273a42111d427166dbab2b54fbe4552ab41b36" name="Data/2_6/ModCorrupted.lua" part="program"/>
|
||||
<File sha1="1cb3a531266b5c6994a2e82d39d5ac81c52d142d" name="Data/2_6/ModFlask.lua" part="program"/>
|
||||
<File sha1="842827163ff536bca1eadc10f45d00069439da2d" name="Data/2_6/ModItem.lua" part="program"/>
|
||||
@@ -130,6 +131,7 @@
|
||||
<File sha1="ca5062f19c4cabe4dad6eb09ca3b49cca18b7e96" name="Data/2_6/Skills/act_dex.lua" part="program"/>
|
||||
<File sha1="8a896b6627bc009b1a68f80777117a8287b5a295" name="Data/2_6/Skills/act_int.lua" part="program"/>
|
||||
<File sha1="72a881445713534431475e529c6018ca863337ab" name="Data/2_6/Skills/act_str.lua" part="program"/>
|
||||
<File sha1="6b68feb650596bdcc8f68a5679a7bdd5f946ce54" name="Data/2_6/Skills/glove.lua" part="program"/>
|
||||
<File sha1="baad32910788078f40e7d32a36cdf2ea2762763f" name="Data/2_6/Skills/minion.lua" part="program"/>
|
||||
<File sha1="76e85fd0461be6583e03f8c9e7ee8f4676740ef3" name="Data/2_6/Skills/other.lua" part="program"/>
|
||||
<File sha1="31fd0bc92c961dfac0860cbb94d3630f6d9d6426" name="Data/2_6/Skills/spectre.lua" part="program"/>
|
||||
@@ -137,9 +139,10 @@
|
||||
<File sha1="55368373e42507db72c603c5039dbbcc68febd57" name="Data/2_6/Skills/sup_int.lua" part="program"/>
|
||||
<File sha1="f087dc24aa2c67b6e81b18966a9f08f3da17b195" name="Data/2_6/Skills/sup_str.lua" part="program"/>
|
||||
<File sha1="4a2651bfcb3beb6fe8b9acab18a6792072f7e9b4" name="Data/3_0/EnchantmentBoots.lua" part="program"/>
|
||||
<File sha1="cc36a59b04a69c76ef76f5b6bc6899fd0ee1666e" name="Data/3_0/EnchantmentGloves.lua" part="program"/>
|
||||
<File sha1="b305198cafc6800aa5556da07a5eea699c718d3b" name="Data/3_0/EnchantmentHelmet.lua" part="program"/>
|
||||
<File sha1="170d14d9176a1d7425d4bfa1b3bcc08c5f4fe73c" name="Data/3_0/Essence.lua" part="program"/>
|
||||
<File sha1="d58871b2b38d1070a1cdd4b054e2f74f479d7fdb" name="Data/3_0/Minions.lua" part="program"/>
|
||||
<File sha1="08282ca34ded91e304e588234d8d589789469e57" name="Data/3_0/Minions.lua" part="program"/>
|
||||
<File sha1="9ea85f15626f83fdbd122b57a5701dde87837a20" name="Data/3_0/ModCorrupted.lua" part="program"/>
|
||||
<File sha1="01e35dba706dbdf12c6bc14770ae5046c8d8e520" name="Data/3_0/ModFlask.lua" part="program"/>
|
||||
<File sha1="e2802c983e0298d6492511e3db29ac3723e20fe0" name="Data/3_0/ModItem.lua" part="program"/>
|
||||
@@ -170,6 +173,7 @@
|
||||
<File sha1="0f872ba12462b9e7c35c69f1a9040b6091da2fb4" name="Data/3_0/Skills/act_dex.lua" part="program"/>
|
||||
<File sha1="d27856bf1aaa03d7a7a27efd95a83bdd5ac5b1b4" name="Data/3_0/Skills/act_int.lua" part="program"/>
|
||||
<File sha1="d08655df40c924699c59a30f7004f06bf5fa9198" name="Data/3_0/Skills/act_str.lua" part="program"/>
|
||||
<File sha1="6a846d1c75ab6b255b6bd96d2fb11b0b66bfb8cd" name="Data/3_0/Skills/glove.lua" part="program"/>
|
||||
<File sha1="baad32910788078f40e7d32a36cdf2ea2762763f" name="Data/3_0/Skills/minion.lua" part="program"/>
|
||||
<File sha1="2e6c822b3e8bc5dbcd00ec0c5e4a899cef989e45" name="Data/3_0/Skills/other.lua" part="program"/>
|
||||
<File sha1="31fd0bc92c961dfac0860cbb94d3630f6d9d6426" name="Data/3_0/Skills/spectre.lua" part="program"/>
|
||||
|
||||
Reference in New Issue
Block a user