Skip to content
Snippets Groups Projects
Commit 1ebe8083 authored by dg's avatar dg
Browse files

Vaults now use the new loot table system, they improve the default zone drops...

Vaults now use the new loot table system, they improve the default zone drops and thus are guaranted to store great items


git-svn-id: http://svn.net-core.org/repos/t-engine4@3029 51575b47-30f0-44d4-a5cc-537603b46e54
parent a8191d2f
No related branches found
No related tags found
No related merge requests found
Showing
with 83 additions and 38 deletions
......@@ -233,6 +233,7 @@ end
-- @param nb the amount to increase the raw talent level by, default 1
-- @return true if the talent was learnt, nil and an error message otherwise
function _M:learnTalent(t_id, force, nb)
print("[TALENT]", self.name, self.uid, "learning", t_id, force, nb)
local t = _M.talents_def[t_id]
if not force then
......
......@@ -754,6 +754,39 @@ local drop_tables = {
},
}
local loot_mod = {
uvault = { -- Uber vault
uniques = 40,
double_greater = 8,
greater_normal = 5,
greater = 3,
double_ego = 0,
ego = 0,
basic = 0,
money = 0,
},
gvault = { -- Greater vault
uniques = 10,
double_greater = 2,
greater_normal = 2,
greater = 2,
double_ego = 1,
ego = 0,
basic = 0,
money = 0,
},
vault = { -- Default vault
uniques = 5,
double_greater = 2,
greater_normal = 3,
greater = 3,
double_ego = 2,
ego = 0,
basic = 0,
money = 0,
},
}
local default_drops = function(zone, level, what)
if zone.default_drops then return zone.default_drops end
local lev = util.bound(math.ceil(zone:level_adjust_level(level, "object") / 10), 1, 5)
......@@ -781,6 +814,15 @@ function _M:entityFilterAlter(zone, level, type, filter)
local t = (filter.tome == true) and default_drops(zone, level, "normal") or filter.tome
filter.tome = nil
if filter.tome_mod then
t = table.clone(t)
if _G.type(filter.tome_mod) == "string" then filter.tome_mod = loot_mod[filter.tome_mod] end
for k, v in pairs(filter.tome_mod) do
print(" ***** LOOT MOD", k, v)
t[k] = (t[k] or 0) * v
end
end
-- If we request a specific type/subtype, we dont waht categories that could make that not happen
if filter.type or filter.subtype or filter.name then t.money = 0 end
......@@ -797,6 +839,8 @@ function _M:entityFilterAlter(zone, level, type, filter)
if r < u then
print("[TOME ENTITY FILTER] selected Uniques", r, u)
filter.unique = true
filter.not_properties = filter.not_properties or {}
filter.not_properties[#filter.not_properties+1] = "lore"
elseif r < dg then
print("[TOME ENTITY FILTER] selected Double Greater", r, dg)
......
......@@ -25,8 +25,8 @@ defineTile('X', "HARDWALL")
defineTile('!', "DOOR_VAULT")
defineTile('D', "DOOR")
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=4}})
defineTile('S', "FLOOR", {random_filter={add_levels=4}}, {random_filter={name="degenerated skeleton warrior", add_levels=4}})
defineTile('A', "FLOOR", {random_filter={type="armor", ego_chance=25}}, nil)
defineTile('S', "FLOOR", {random_filter={add_levels=4, tome_mod="vault"}}, {random_filter={name="degenerated skeleton warrior", add_levels=4}})
defineTile('A', "FLOOR", {random_filter={type="armor", tome_mod="vault"}}, nil)
defineTile('G', "FLOOR", nil, {random_filter={name="armoured skeleton warrior", add_levels=4}})
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
......
......@@ -23,8 +23,8 @@ defineTile('.', "FLOOR")
defineTile('X', "HARDWALL")
defineTile('!', "DOOR_VAULT")
defineTile('D', "DOOR")
defineTile('1', "FLOOR", {random_filter={add_levels=15, ego_chance=25}}, {random_filter={add_levels=20}})
defineTile('2', "FLOOR", {random_filter={add_levels=12, ego_chance=25}}, {random_filter={add_levels=17}})
defineTile('1', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=20}})
defineTile('2', "FLOOR", {random_filter={add_levels=12, tome_mod="vault"}}, {random_filter={add_levels=17}})
defineTile('3', "FLOOR", {random_filter={add_levels=5}}, nil)
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
......
......@@ -23,13 +23,13 @@ defineTile(' ', "FLOOR")
defineTile('!', "DOOR_VAULT", nil, nil, nil, {room_map={special=false, room=false, can_open=true}})
defineTile('+', "DOOR")
defineTile('X', "HARDWALL")
defineTile('^', "FLOOR", {random_filter={add_levels=5}}, {random_filter={type="undead"}}, {random_filter={add_levels=5}})
defineTile('^', "FLOOR", {random_filter={add_levels=5,tome_mod="vault"}}, {random_filter={type="undead"}}, {random_filter={add_levels=5}})
defineTile('u', "FLOOR", {random_filter={}}, {random_filter={type="undead", subtype="vampire", name="lesser vampire"}})
defineTile('v', "FLOOR", {random_filter={add_levels=5}}, {random_filter={add_levels=5, type="undead", subtype="vampire", name="vampire"}})
defineTile('U', "FLOOR", {random_filter={add_levels=10, ego_chance=25}}, {random_filter={add_levels=10, type="undead", subtype="vampire", name="master vampire"}})
defineTile('V', "FLOOR", {random_filter={add_levels=15, ego_chance=25}}, {random_filter={add_levels=15, type="undead", subtype="vampire", name="elder vampire"}})
defineTile('L', "FLOOR", {random_filter={add_levels=20, ego_chance=25}}, {random_filter={add_levels=20, type="undead", subtype="vampire", name="vampire lord"}})
defineTile('W', "FLOOR", {random_filter={add_levels=15, ego_chance=25}}, {random_filter={add_levels=15, type="undead", subtype="wight", name="grave wight"}})
defineTile('v', "FLOOR", {random_filter={add_levels=5,tome_mod="vault"}}, {random_filter={add_levels=5, type="undead", subtype="vampire", name="vampire"}})
defineTile('U', "FLOOR", {random_filter={add_levels=10, tome_mod="gvault"}}, {random_filter={add_levels=10, type="undead", subtype="vampire", name="master vampire"}})
defineTile('V', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}}, {random_filter={add_levels=15, type="undead", subtype="vampire", name="elder vampire"}})
defineTile('L', "FLOOR", {random_filter={add_levels=20, tome_mod="gvault"}}, {random_filter={add_levels=20, type="undead", subtype="vampire", name="vampire lord"}})
defineTile('W', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}}, {random_filter={add_levels=15, type="undead", subtype="wight", name="grave wight"}})
startx = 0
starty = 6
......
......@@ -28,10 +28,10 @@ defineTile('!', "DOOR_VAULT")
defineTile('+', "DOOR")
defineTile('o', "FLOOR", nil, {random_filter={add_levels=5}})
defineTile('O', "FLOOR", nil, {random_filter={add_levels=10}})
defineTile('5', "FLOOR", {random_filter={add_levels=10, ego_chance=25}}, {random_filter={}})
defineTile('5', "FLOOR", {random_filter={add_levels=10, tome_mod="gvault"}}, {random_filter={}})
defineTile('4', "FLOOR", nil, {random_filter={}})
defineTile('3', "FLOOR", {random_filter={add_levels=5, ego_chance=25}}, {random_filter={add_levels=15}})
defineTile('2', "FLOOR", {random_filter={add_levels=20, ego_chance=25}}, {random_filter={add_levels=30}})
defineTile('3', "FLOOR", {random_filter={add_levels=5, tome_mod="vault"}}, {random_filter={add_levels=15}})
defineTile('2', "FLOOR", {random_filter={add_levels=20, tome_mod="gvault"}}, {random_filter={add_levels=30}})
defineTile('1', "FLOOR", nil, {random_filter={add_levels=30}})
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
......
......@@ -24,7 +24,7 @@ defineTile('!', "DOOR_VAULT", nil, nil, nil, {room_map={special=false, room=fals
defineTile('+', "DOOR")
defineTile('X', "HARDWALL")
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=10}})
defineTile('$', "FLOOR", {random_filter={add_levels=15, ego_chance=25}})
defineTile('$', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}})
defineTile('m', "FLOOR", nil, {random_filter={add_levels=20}})
defineTile('o', "FLOOR", nil, "HILL_ORC_ARCHER")
......
......@@ -30,7 +30,7 @@ defineTile('#', "HARDWALL")
defineTile('+', "DOOR")
defineTile('X', "DOOR_VAULT")
defineTile('I', "FLOOR", nil, {random_filter={add_levels=10,name="fire imp"}})
defineTile('D', "FLOOR", {random_filter={add_levels=15, ego_chance=25}}, {random_filter={add_levels=15,name="fire wyrm"}})
defineTile('D', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}}, {random_filter={add_levels=15,name="fire wyrm"}})
return {
[[#######X#######]],
......
......@@ -25,8 +25,8 @@ starty = 6
defineTile('!', "ROCK_VAULT", nil, nil, nil, {room_map={special=false, room=false, can_open=true}})
defineTile(' ', "SAND")
defineTile('X', "HARDMOUNTAIN_WALL")
defineTile('$', "SAND", {random_filter={add_levels=15, ego_chance=25}})
defineTile('D', "SAND", {random_filter={add_levels=20, ego_chance=25}}, {random_filter={name="greater multi-hued wyrm", add_levels=50}})
defineTile('$', "SAND", {random_filter={add_levels=15, tome_mod="gvault"}})
defineTile('D', "SAND", {random_filter={add_levels=20, tome_mod="uvault"}}, {random_filter={name="greater multi-hued wyrm", add_levels=50}})
defineTile('d', "SAND", nil, {random_filter={name="multi-hued drake hatchling", add_levels=20}})
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
......
......@@ -28,7 +28,7 @@ defineTile('X', "TREE")
defineTile('+', "DOOR")
defineTile('x', "DOOR_VAULT")
defineTile('T', "FLOOR", {random_filter={type="scroll", ego_chance=25}}, {random_filter={name="forest troll", add_levels=4}})
defineTile('T', "FLOOR", {random_filter={type="scroll", tome_mod="vault"}}, {random_filter={name="forest troll", add_levels=4}})
return {
[[,,,,,,,,,,,,,]],
......
......@@ -22,7 +22,7 @@ setStatusAll{no_teleport=true}
defineTile('.', "FLOOR")
defineTile('#', "WALL")
defineTile('X', "HARDWALL")
defineTile('8', "FLOOR", {random_filter={add_levels=15, ego_chance=25}}, {random_filter={add_levels=20}})
defineTile('8', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}}, {random_filter={add_levels=50}})
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
......
......@@ -28,15 +28,15 @@ defineTile(' ', "FLOOR")
defineTile('!', "DOOR_VAULT")
defineTile('+', "DOOR")
defineTile('#', "HARDWALL")
defineTile('c', "FLOOR", {random_filter={add_levels=10, ego_chance=25}})
defineTile('$', "FLOOR", {random_filter={add_levels=25, ego_chance=25}})
defineTile('~', "FLOOR", {random_filter={add_levels=10, ego_chance=25}}, nil, {random_filter={add_levels=10}})
defineTile('c', "FLOOR", {random_filter={add_levels=10, tome_mod="vault"}})
defineTile('$', "FLOOR", {random_filter={add_levels=25, tome_mod="vault"}})
defineTile('~', "FLOOR", {random_filter={add_levels=10, tome_mod="vault"}}, nil, {random_filter={add_levels=10}})
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=5}})
defineTile('s', "FLOOR", nil, {random_filter={add_levels=5, name="master skeleton archer"}})
defineTile('o', "FLOOR", {random_filter={add_levels=5}}, {random_filter={add_levels=5}})
defineTile('O', "FLOOR", {random_filter={add_levels=10, ego_chance=25}}, {random_filter={add_levels=10}})
defineTile('P', "FLOOR", {random_filter={add_levels=15, ego_chance=25}}, {random_filter={add_levels=15}})
defineTile('O', "FLOOR", {random_filter={add_levels=10, tome_mod="vault"}}, {random_filter={add_levels=10}})
defineTile('P', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=15}})
return {
[[#################]],
......
......@@ -25,8 +25,8 @@ defineTile('+', "DOOR")
defineTile('X', {"HARDTREE","HARDTREE2","HARDTREE3","HARDTREE4","HARDTREE5","HARDTREE6","HARDTREE7","HARDTREE8","HARDTREE9","HARDTREE10","HARDTREE11","HARDTREE12","HARDTREE13","HARDTREE14","HARDTREE15","HARDTREE16","HARDTREE17","HARDTREE18","HARDTREE19","HARDTREE20"})
defineTile('^', "GRASS", nil, nil, {random_filter={add_levels=5}})
defineTile('#', "GRASS", nil, {random_filter={name="honey tree"}})
defineTile('q', "GRASS", {random_filter={add_levels=10, ego_chance=25}}, {random_filter={name="brown bear", add_levels=10}})
defineTile('Q', "GRASS", {random_filter={add_levels=20, ego_chance=25}}, {random_filter={name="grizzly bear", add_levels=20}})
defineTile('q', "GRASS", {random_filter={add_levels=10, tome_mod="vault"}}, {random_filter={name="brown bear", add_levels=10}})
defineTile('Q', "GRASS", {random_filter={add_levels=20, tome_mod="vault"}}, {random_filter={name="grizzly bear", add_levels=20}})
startx = 2
starty = 10
......
......@@ -25,8 +25,8 @@ defineTile('+', "DOOR")
defineTile('X', {"HARDTREE_DARK1","HARDTREE_DARK2","HARDTREE_DARK3","HARDTREE_DARK4","HARDTREE_DARK5","HARDTREE_DARK6","HARDTREE_DARK7","HARDTREE_DARK8","HARDTREE_DARK9","HARDTREE_DARK10","HARDTREE_DARK11","HARDTREE_DARK12","HARDTREE_DARK13","HARDTREE_DARK14","HARDTREE_DARK15","HARDTREE_DARK16","HARDTREE_DARK17","HARDTREE_DARK18","HARDTREE_DARK19","HARDTREE_DARK20"})
defineTile('^', "GRASS_DARK1", nil, nil, {random_filter={add_levels=5}})
defineTile('#', "GRASS_DARK1", nil, {random_filter={name="honey tree"}})
defineTile('q', "GRASS_DARK1", {random_filter={add_levels=10, ego_chance=25}}, {random_filter={name="brown bear", add_levels=10}})
defineTile('Q', "GRASS_DARK1", {random_filter={add_levels=20, ego_chance=25}}, {random_filter={name="grizzly bear", add_levels=20}})
defineTile('q', "GRASS_DARK1", {random_filter={add_levels=10, tome_mod="gvault"}}, {random_filter={name="brown bear", add_levels=10}})
defineTile('Q', "GRASS_DARK1", {random_filter={add_levels=20, tome_mod="gvault"}}, {random_filter={name="grizzly bear", add_levels=20}})
startx = 2
starty = 10
......
......@@ -25,12 +25,12 @@ defineTile(' ', "FLOOR")
defineTile('+', "DOOR")
defineTile('!', "DOOR_VAULT")
defineTile('X', "HARDWALL")
defineTile('$', "FLOOR", {random_filter={add_levels=10, ego_chance=25}})
defineTile('$', "FLOOR", {random_filter={add_levels=10, tome_mod="vault"}})
defineTile('~', "FLOOR", {random_filter={add_levels=5}}, nil, {random_filter={add_levels=5}})
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=5}})
defineTile('o', "FLOOR", {random_filter={add_levels=10, ego_chance=25}}, {random_filter={add_levels=10}})
defineTile('O', "FLOOR", {random_filter={add_levels=15, ego_chance=25}}, {random_filter={add_levels=15}})
defineTile('P', "FLOOR", {random_filter={add_levels=20, ego_chance=25}}, {random_filter={add_levels=20}})
defineTile('o', "FLOOR", {random_filter={add_levels=10, tome_mod="vault"}}, {random_filter={add_levels=10}})
defineTile('O', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=15}})
defineTile('P', "FLOOR", {random_filter={add_levels=20, tome_mod="gvault"}}, {random_filter={add_levels=20}})
startx = 28
starty = 8
......
......@@ -29,7 +29,7 @@ defineTile('T', "PALMTREE")
defineTile('1', "SAND", nil, {random_filter={name="fire imp", add_levels=4}})
defineTile('2', "SAND", nil, {random_filter={name="quasit", add_levels=4}})
defineTile('U', "SAND", nil, {random_filter={name="uruivellas", add_levels=12}})
defineTile('$', "SAND", {random_filter={name="voratun ring",ego_chance=100}})
defineTile('$', "SAND", {random_filter={name="voratun ring",tome_mod="vault"}})
return {
[[..T............T.TT.]],
......
......@@ -37,8 +37,8 @@ defineTile('E', "FLOOR", nil, {random_filter={name="ultimate gwelgoroth", add_le
defineTile('D', "FLOOR", nil, {random_filter={name="storm wyrm", add_levels=20}})
defineTile('$', "FLOOR", "MONEY_BIG")
defineTile('1', "FLOOR", {random_filter={add_levels=15, ego_chance=45}})
defineTile('2', "FLOOR", {random_filter={type="ammo", add_levels=10, ego_chance=80}})
defineTile('1', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}})
defineTile('2', "FLOOR", {random_filter={type="ammo", add_levels=10, tome_mod="vault"}})
return {
[[XXXXXXXXXXXXXXXXX]],
......
......@@ -30,7 +30,7 @@ defineTile('!', "ROCK_VAULT")
defineTile('m', "GRASS_DARK1", nil, {random_filter={subtype="molds", add_levels=2}})
defineTile('j', "GRASS_DARK1", nil, {random_filter={subtype="oozes", add_levels=2}})
defineTile('$', "GRASS_DARK1", {random_filter={add_levels=5, ego_chance=25}})
defineTile('$', "GRASS_DARK1", {random_filter={add_levels=5, tome_mod="vault"}})
startx = 19
starty = 7
......
......@@ -30,7 +30,7 @@ defineTile('!', "ROCK_VAULT")
defineTile('m', "GRASS", nil, {random_filter={subtype="molds", add_levels=2}})
defineTile('j', "GRASS", nil, {random_filter={subtype="oozes", add_levels=2}})
defineTile('$', "GRASS", {random_filter={add_levels=5, ego_chance=25}})
defineTile('$', "GRASS", {random_filter={add_levels=5, tome_mod="vault"}})
startx = 19
starty = 7
......
......@@ -26,7 +26,7 @@ defineTile('%', "POISON_DEEP_WATER")
defineTile('$', "GRASS_DARK1", {random_filter={add_levels=25, type="money"}})
defineTile('*', "GRASS", {random_filter={add_levels=25, type="gem"}})
defineTile('&', "TREE_DARK", {random_filter={add_levels=15, subtype="amulet"}})
defineTile('&', "TREE_DARK", {random_filter={add_levels=15, subtype="amulet", tome_mod="vault"}})
defineTile('^', "GRASS_DARK1", nil, nil, {random_filter={add_levels=15, name="poison vine"}})
defineTile('+', "GRASS", nil, nil, {random_filter={add_levels=15, name="poison vine"}})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment