Skip to content
Snippets Groups Projects
Commit 266ace9a authored by DarkGod's avatar DarkGod
Browse files

Merge branch '1.7-vault-misc' into 'master'

1.7 vault misc: return of the bandit fortress

The return of the bandit fortress vault: new and improved as a sublevel vault that doesn't cause the game to lag and slow!  

Also includes a few misc lore notes for the new bandit fortress vault as well as the vor pride special vault and reduces the size of the greater checkerboard vault while adding a randboss guardian to attend to players snooping about in dark sealed rooms. The lore notes are much more meant to be fun throwaway additions to add more life to the vaults than they are actual lore.

See merge request !641
parents 4efba497 f59f3d04
No related branches found
No related tags found
No related merge requests found
......@@ -86,6 +86,9 @@ newEntity{ base = "BASE_NPC_MINOTAUR",
max_mana = 100,
resolvers.talents{
[Talents.T_FLAME]={base=3, every=8, max=6},
[Talents.T_FIREFLASH]={base=2, every=10, max=6}
[Talents.T_FIREFLASH]={base=2, every=10, max=6},
[Talents.T_ARCANE_COMBAT]={base=2, every=10, max=4},
[Talents.T_STUNNING_BLOW]={base=3, every=10, max=6},
[Talents.T_SUNDER_ARMOUR]={base=2, every=10, max=5},
},
}
......@@ -640,6 +640,51 @@ Try to be a little faster next time.
Love, #{italic}#Eden#{normal}#]]
}
newLore{
id = "bandit-vault-guard",
category = "vault",
name = _t"Guard's Journal",
lore = _t[[Sixth time this week stuck guarding at the stash. And for what? Just a little fun!
Almost miss being at the farm sometimes. At least there I wasn't able to screw anything up. Wonder if they would take me back knowing what I've been doing with my life...]]
}
newLore{
id = "bandit-vault-boss",
category = "vault",
name = _t"Boss's Journal",
lore = _t[[The best haul we ever got, gone. We could have been set for life, the most legendary outlaws in all the lands! Villages would tremble at the thought of us roaming the woods.
Only a matter of time until that nobleman catches wind and comes after us. We were about to get more gold than we could count for his lassie back, and that dirt farmer set her on fire. Of all the skullbrained things to do for fun!
Ordered my men to kill any who pass by and been running triple guard. We need all the time we can get before they come for us, can't let any word out. Once we find somewhere new, I'll leave that idiot burnt on a stake as tribute and hope we don't catch chase.
I'm going to enjoy hearing his screams, a log on the pyre a gold he cost us. Nice and slow, need to make sure he doesn't die easy.]]
}
newLore{
id = "renegade-pyromancers-vault",
category = "vault",
name = _t"How to Summon a Phoenix",
lore = _t[[#{bold}#How to Summon a Phoenix#{normal}#
10 pouches faeros ash
5 vials fire wyrm saliva
3 red crystal shards
3 pouches bone giant dust
1 vial greater demon bile
1 skeleton mage skull
pinch of luminous horror dust
This is a long and complex ceremony, and all steps must be followed precisely if you wish to succeed. Heed well that for the errant fool who takes on what they cannot finish, there will be consequences. To play with fire and assert your dominance over the flames comes with risks if you overestimate your power.
The ritual begins with a vessel; any man will do. Bind them in place with flame secure bindings, and give a sound gag. The gag isn't strictly necessary, but the screams of agony tend to be quite distracting and inspirit mistakes after a few days.
Take 2 vials fire wyrm saliva and dissolve 2 pouches faeros ash in each. Be sure to dissolve completely. A few fireballs at the vial can do the trick if they're stubborn. Using one of the prepared vials, begin to etch the saliva in the skin of the vessel, heating it so that it brands the shape of ---
#{italic}#The remainder of the scroll has been singed into a pile of char, illegible and scattering into a cloud of ash as you grasp it#{normal}#
]]
}
newLore{
id = "nature-vs-magic",
category = "magic",
......
......@@ -32,24 +32,20 @@ defineTile('X', "HARDWALL")
defineTile('8', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}}, {random_filter={add_levels=50}})
defineTile('!', "DOOR_VAULT")
defineTile('7', "FLOOR", {random_filter={add_levels=15, tome_mod="uvault"}}, {random_filter={add_levels=15, random_boss={name_scheme=_t"#rng# the Guardian", nb_classes=3, loot_unique=true, ai_move="move_complex", rank=4}}})
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
return {
[[.......................................]],
[[.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.]],
[[.!8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8X.]],
[[.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#X.]],
[[.X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8X.X.]],
[[.X#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#X#X.]],
[[.X8X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8X8X.X.]],
[[.X#X#XXXXXXXXXXXXXXXXXXXXXXXXXXX#X#X#X.]],
[[.X8X8X8#8#8#8#8#8#8#8#8#8#8#8#8#8X8X.X.]],
[[.X#X#X#XXXXXXXXXXXXXXXXXXXXXXXXXXX#X#X.]],
[[.X8X8X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8X.X.]],
[[.X#X#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#X.]],
[[.X8X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#.X.]],
[[.X#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.]],
[[.X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8!.]],
[[.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.]],
[[.......................................]],
[[...........................]],
[[.XXXXXXXXXXXXXXXXXXXXXXXXX.]],
[[.!8#8#8#8#8#8#8#8#8#8#8#8X.]],
[[.XXXXXXXXXXXXXXXXXXXXXXX#X.]],
[[.X8#8#8#8#8#8#8#8#8#8#8X.X.]],
[[.X#XXXXXXXXXXXXXXXXXXXXX#X.]],
[[.X8X7#8#8#8#8#8#8#8#8#8#.X.]],
[[.X#XXXXXXXXXXXXXXXXXXXXXXX.]],
[[.X8#8#8#8#8#8#8#8#8#8#8#8!.]],
[[.XXXXXXXXXXXXXXXXXXXXXXXXX.]],
[[...........................]],
}
\ No newline at end of file
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009 - 2019 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
setStatusAll{no_teleport=true, vault_only_door_open=true, room_map = {can_open=true}}
--setStatusAll{no_teleport=true, vault_only_door_open=true, room_map = {special=false, can_open=true}}
unique = "bandit-fortress" -- one per map
--startx, starty = 40, 19
border = 0
roomcheck = function(room, zone, level, map) -- one per zone, level restricted
return not zone._bandit_fortress and resolvers.current_level >= 10 and zone.npc_list.__loaded_files["/data/general/npcs/thieve.lua"]
end
specialList("actor", {
"/data/general/npcs/fire-drake.lua",
"/data/general/npcs/aquatic_critter.lua",
"/data/general/npcs/minotaur.lua",
"/data/general/npcs/troll.lua",
"/data/general/npcs/thieve.lua",
})
onplace = function(room, zone, level, map, data) -- flag the map as having this vault
map._bandit_fortress = level.level
end
onGenerated(function(zone, level, map) -- update the zone after the vault is placed (in case the level was regenerated)
if map._bandit_fortress == level.level then
zone._bandit_fortress = level.level
end
end
)
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
defineTile('%', "WALL")
defineTile('.', "FLOOR")
defineTile('#', "HARDWALL")
defineTile('+', "DOOR")
defineTile('X', "DOOR_VAULT")
defineTile('~', "DEEP_WATER")
defineTile('*', "FLOOR", {random_filter={type="gem"}})
defineTile('$', "FLOOR", {random_filter={add_levels=25, type="money"}})
defineTile('/', "FLOOR", {random_filter={add_levels=5, tome_mod="vault"}})
defineTile('x', "FLOOR", {random_filter={add_levels=10, tome_mod="vault"}})
defineTile('L', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}})
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=20}})
defineTile('D', "FLOOR", nil, {random_filter={add_levels=15, name = "fire drake"}})
defineTile('p', "FLOOR", nil, {random_filter={add_levels=5, name = "assassin"}})
defineTile('P', "FLOOR", nil, {random_filter={add_levels=10, name = "bandit lord"}})
defineTile('H', "FLOOR", nil, {random_filter={add_levels=10, subtype = "minotaur"}})
defineTile('T', "FLOOR", nil, {random_filter={add_levels=20, subtype = "troll"}})
defineTile('A', "DEEP_WATER", nil, {random_filter={add_levels=10, type = "aquatic", subtype = "critter",}})
return {
[[........................................]],
[[.##########~~~~~~~~~~~~~~~~~~##########.]],
[[.#.p.....p#~~~A~~~~~~~~~~~~~~#.....p..#.]],
[[.#.######.#~~~~~~~~~~~~~~~~~~#.######.#.]],
[[.#.#xxxx#.#~~~~~~~~~A~~~~~A~~#.#xxx.#.#.]],
[[.#p#HHHH#.####################p#TTTT#p#.]],
[[.#.#pppP#.#*$$pH.+.#HLH.D..+^#.#HHHH#.#.]],
[[.#.#....#p#$*$pH.#.#LHH.D..#^#.#xxx.#.#.]],
[[.#.###+##.########.#########.#.##+###.#.]],
[[.#..p.....#..DDLL#.%.........+.p....p.#.]],
[[.#####+####%######+####################.]],
[[~A~~~#.#**#^.../$#P.....p....+.pp/#~~~~~]],
[[~~~~~#.#**#$.../$#.p.......p.#.pP/#~A~~~]],
[[~~~~~#.#**#$.../$#...p.....p.#ppp/#~~~~~]],
[[~~~~~#.#%%###+##############+#+####~~~~~]],
[[~~A~~#..HH#..p#.T............#////#~~~A~]],
[[~~~~~#....#p..#......T...p...#////#~~~~~]],
[[~~~~~#....#..p#..P...........######~~~~~]],
[[A~~~~#...P#...+T.....H....T...p...X.H...]],
[[~~~~~#P...#####...................X.T...]],
[[~~~~~#P...#####..T....p...p.......X.T...]],
[[~~~~~#...P#HH.+....H.........p....X.H...]],
[[~~~~~#....#.P.#..........T...######~~~~~]],
[[~~~~A#..HH#..p#...P...p......#////#~A~~~]],
[[~~~~~#..^^#p.^#T....T........#////#~~~~~]],
[[~~~~~#.#%%###+##############+#+####~~~~~]],
[[~~A~~#.#**#xxxxxD#.p.......P.#ppp/#A~~~~]],
[[~~~~~#.#**########.....p.....#.pP/#~~~A~]],
[[~~~~~#.#**%DDDLLL#.p.....p...+.pp/#~~~~~]],
[[.#####+###########+####################.]],
[[.#.p....p.+..P......H....TT..+.....p..#.]],
[[.#.###+##.#.....p......p..TT^#.##+###.#.]],
[[.#.#....#.#%################%#p#xxx.#.#.]],
[[.#.#pppP#.#....DDLL#LLDD.....#.#TTTT#.#.]],
[[.#p#HHHH#.####################.#HHHH#p#.]],
[[.#.#xxxx#p#~~~~A~~~~~~~~~A~~~#.#xxx.#.#.]],
[[.#.######.#~~~~~~~~~~~~~~~~~~#.######.#.]],
[[.#..p.....#~~~~~~~~~~~~~~~~A~#p...p...#.]],
[[.##########~~~~~A~~~~~~~~~~~~##########.]],
[[........................................]],
}
\ No newline at end of file
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009 - 2019 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
local Talents = require("engine.interface.ActorTalents")
unique = "bandit-fortress" -- one per map
setStatusAll{no_teleport=true, vault_only_door_open=true, room_map = {can_open=true}}
onplace = function(room, zone, level, map, data) -- flag the map as having this vault
map._bandit_fortress = level.level
end
onGenerated(function(zone, level, map) -- update the zone after the vault is placed (in case the level was regenerated)
if map._bandit_fortress == level.level then
zone._bandit_fortress = level.level
end
end
)
local stairs = function()
local terrains = mod.class.Grid:loadList("/data/general/grids/basic.lua")
return game.state:dynamicZoneEntry(terrains.UP, "bandit-fortress", {
name = _t"bandit fortress",
level_range = {game.zone.base_level, game.zone.base_level},
__applied_difficulty = true, -- Difficulty already applied to parent zone
level_scheme = "player",
max_level = 1,
actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level+4 + rng.range(-2,6) end,
width = 35, height = 60,
ambient_music = "Swashing the buck.ogg", -- check for better fit
persistent = "zone",
no_worldport = true,
min_material_level = util.getval(game.zone.min_material_level) + 1, -- vaults have better loot! acts as reward to compensate for the significant difficulty
max_material_level = util.getval(game.zone.max_material_level) + 1,
generator = {
map = {
class = "engine.generator.map.Static",
map = "zones/bandit-fortress",
},
trap = { nb_trap = {0, 0} },
object = { nb_object = {0, 0} },
actor = { nb_npc = {0, 0} },
}
}, {
npc_list = {"/data/general/npcs/thieve.lua"},
object_list = {"/data/general/objects/objects.lua"},
grid_list = {"/data/general/grids/basic.lua"},
trap_list = {"/data/general/traps/natural_forest.lua"},
},
function(zone, goback)
goback(_t"stairs back to %s", zone.grid_list.DOWN)
end)
end
specialList("terrain", {
"/data/general/grids/water.lua",
"/data/general/grids/forest.lua",
}, true)
border = 0
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
defineTile('.', "FLOOR")
defineTile(',', "GRASS")
defineTile('#', "HARDWALL")
defineTile('+', "DOOR")
defineTile('!', "DOOR_VAULT")
defineTile('f', function() if rng.percent(35) then return "FLOWER" else return "GRASS" end end) -- so pretty, so beautiful <3
defineTile('~', "DEEP_WATER")
defineTile('#', "WALL")
defineTile('X', "TREE")
specialList("actor", {
"/data/general/npcs/thieve.lua",
"/data/general/npcs/minotaur.lua",
"/data/general/npcs/troll.lua",
})
specialList("trap", {
"/data/general/traps/natural_forest.lua",
})
local thieves = {
"rogue",
"rogue sapper",
"thief",
"cutpurse",
"assassin"
}
local rogues = {}
local Birther = require "engine.Birther"
for name, data in pairs(Birther.birth_descriptor_def.class["Rogue"].descriptor_choices.subclass) do
if Birther.birth_descriptor_def.subclass[name] and not Birther.birth_descriptor_def.subclass[name].not_on_random_boss then rogues[#rogues+1] = name end
end
defineTile('g', "FLOOR", nil, {random_filter={name=(rng.table(thieves)), add_levels=4, random_boss={name_scheme=_t"#rng# the Guard", nb_classes=0, force_classes={(rng.table(rogues))}, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=3.2}}})
defineTile('G', "FLOOR", nil, {random_filter={name=(rng.table(thieves)), add_levels=6, random_boss={name_scheme=_t"#rng# the Guard", nb_classes=0, force_classes={(rng.table(rogues))}, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=3.2}}})
defineTile('r', "FLOOR", nil, {random_filter={name=(rng.table(thieves)), add_levels=4}})
defineTile('R', "FLOOR", nil, {random_filter={name=(rng.table(thieves)), add_levels=7}})
defineTile('l', "FLOOR", nil, {random_filter={add_levels=10, name = "bandit lord"}})
defineTile('a', "FLOOR", {random_filter={add_levels=5, tome_mod="vault"}}, nil)
defineTile('$', "FLOOR", {random_filter={add_levels=25, type="money"}})
defineTile('t', "FLOOR", nil, nil, {random_filter={add_levels=20}})
defineTile('j', "FLOOR", {random_filter={add_levels=10, type="jewelry", tome_mod="gvault"}})
defineTile('<', stairs(), nil, {random_filter={name=(rng.table(thieves)), add_levels=6, random_boss={name_scheme=_t"#rng# the Guard", nb_classes=0, force_classes={(rng.table(rogues))}, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=3.2,
on_die=function(self, who) -- drop lore note on death
local lore = mod.class.Object.new{
type = "lore", subtype="lore",
unided_name = _t"scroll", identified=true,
display = "?", color=colors.ANTIQUE_WHITE, image="object/scroll.png",
encumber = 0,
name = _t"Guard's Journal", lore="bandit-vault-guard",
desc = _t[[A messily scrawled pile of loose papers.]],
level_range = {1, 20},
rarity = false,
}
game.zone:addEntity(game.level, lore, "object", self.x, self.y)
end }}})
return {
[[,,,,,,,,,,,,,fX#######,]],
[[,,###########ff#R$$$R#,]],
[[,,#.$r.l..$.####...G.#,]],
[[,,#jj.......+.t+.....#,]],
[[,,#R$$..$$$R#######+###]],
[[,,#####+######~~#$$...#]],
[[,,,X#....g#~~~~~#<j.rr#]],
[[,,,,#!#####,,,,,#######]],
}
......@@ -34,6 +34,17 @@ specialList("terrain", {
setStatusAll{no_teleport=true}
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
local lore = mod.class.Object.new{
type = "lore", subtype="lore",
unided_name = _t"scroll", identified=true,
display = "?", color=colors.ANTIQUE_WHITE, image="object/scroll.png",
encumber = 0,
name = _t"How to Summon a Phoenix", lore="renegade-pyromancers-vault",
desc = _t[[An old and singed scroll, the bottom half burnt off.]],
level_range = {1, 20},
rarity = false,
}
defineTile('.', "BURNT_GROUND")
defineTile('T', "LAVA_WALL")
defineTile('L', function() if rng.percent(50) then return "LAVA_FLOOR" else return "BURNT_GROUND" end end)
......@@ -50,12 +61,13 @@ defineTile('F', "LAVA_FLOOR", {random_filter={add_levels=25, tome_mod="uvault"}}
defineTile('f', "BURNT_GROUND", nil, {random_filter={add_levels=5, name = "greater faeros"}} )
defineTile('M', "BURNT_GROUND", {random_filter={add_levels=12, tome_mod="uvault"}}, {random_filter={add_levels=7, name = "orc high pyromancer", random_boss={name_scheme=_t"#rng# the Invoker", nb_classes=0, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=3.5, force_classes={Archmage=true}}}})
defineTile('m', "BURNT_GROUND", nil, {random_filter={add_levels=5, name = "orc pyromancer"}} )
defineTile('l', "BURNT_GROUND", lore, {random_filter={add_levels=5, name = "orc pyromancer"}} )
if rng.percent(7) then --rare phoenix-7% to show in here plus 35% this vault shows gives 2.5% chance per game for a phoenix from one of these
return {
[[###########]],
[[#**Tf.fT**#]],
[[#mm.LLL.mm#]],
[[#lm.LLL.mm#]],
[[#MB.LPL.BM#]],
[[#T..LLL..T#]],
[[#TT.....TT#]],
......@@ -66,7 +78,7 @@ else
return {
[[###########]],
[[#**Tf.fT**#]],
[[#mm.LLL.mm#]],
[[#mm.LLL.ml#]],
[[#MB.LFL.BM#]],
[[#T..LLL..T#]],
[[#TT.....TT#]],
......
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009 - 2019 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
local Talents = require("engine.interface.ActorTalents")
setStatusAll{no_teleport=true, vault_only_door_open=true, room_map = {can_open=true}}
specialList("actor", {
"/data/general/npcs/thieve.lua",
"/data/general/npcs/minotaur.lua",
"/data/general/npcs/troll.lua",
})
specialList("terrain", {
"/data/general/grids/water.lua",
"/data/general/grids/forest.lua",
}, true)
border = 0
startx = 18
starty = 7
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
local thieves = {
"rogue",
"rogue sapper",
"thief",
"cutpurse",
"assassin"
}
local thugs = {
"bandit",
"mountain troll",
"minotaur"
}
local bosses = {
"bandit lord",
"assassin",
"shadowblade"
}
local thuggeries = {"Berserker", "Bulwark", "Brawler"}
local rogues = {}
local Birther = require "engine.Birther"
for name, data in pairs(Birther.birth_descriptor_def.class["Rogue"].descriptor_choices.subclass) do
if Birther.birth_descriptor_def.subclass[name] and not Birther.birth_descriptor_def.subclass[name].not_on_random_boss then rogues[#rogues+1] = name end
end
defineTile('.', "FLOOR")
defineTile('#', "HARDWALL")
defineTile('+', "DOOR")
defineTile('!', "DOOR_VAULT")
defineTile('>', "DYNAMIC_ZONE_EXIT")
defineTile('*', "FLOOR", nil, nil, {random_filter={add_levels=20}})
defineTile('g', "FLOOR", nil, {random_filter={name=(rng.table(thieves)), add_levels=3, random_boss={name_scheme=_t"#rng# the Guard", nb_classes=0, force_classes={(rng.table(rogues))}, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=3.2}}})
defineTile('G', "FLOOR", nil, {random_filter={name=(rng.table(thieves)), add_levels=5, random_boss={name_scheme=_t"#rng# the Guard", nb_classes=0, force_classes={(rng.table(rogues))}, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=3.2}}})
defineTile('t', "FLOOR", nil, {random_filter={name=(rng.table(thugs)), add_levels=4, random_boss={name_scheme=_t"#rng# the Thug", nb_classes=0, force_classes={(rng.table(thuggeries))}, loot_quality="store", loot_quantity=1, ai_move="move_complex", rank=3.5}}})
defineTile('T', "FLOOR", nil, {random_filter={name=(rng.table(thugs)), add_levels=6, random_boss={name_scheme=_t"#rng# the Thug", nb_classes=0, force_classes={(rng.table(thuggeries))}, loot_quality="store", loot_quantity=1, ai_move="move_complex", rank=3.5}}})
defineTile('r', "FLOOR", nil, {random_filter={name=(rng.table(thieves)), add_levels=2}})
defineTile('R', "FLOOR", nil, {random_filter={name=(rng.table(thieves)), add_levels=3}})
defineTile('l', "FLOOR", nil, {random_filter={add_levels=10, name = "bandit lord"}})
defineTile('i', "FLOOR", nil, {random_filter={name=(rng.table(thugs)), add_levels=3}})
defineTile('I', "FLOOR", nil, {random_filter={name=(rng.table(thugs)), add_levels=6}})
defineTile('B', "FLOOR", nil, {random_filter={name=(rng.table(bosses)), add_levels=8, random_boss={name_scheme=_t"Bandit Leader #rng#", nb_classes=0, force_classes={(rng.table(rogues)), (rng.table(thuggeries))}, loot_quality="store", loot_quantity=1, loot_unique=true, ai_move="move_complex", rank=4,
on_die=function(self, who) -- drop lore note on death
local lore = mod.class.Object.new{
type = "lore", subtype="lore",
unided_name = _t"scroll", identified=true,
display = "?", color=colors.ANTIQUE_WHITE, image="object/scroll.png",
encumber = 0,
name = _t"Boss's Journal", lore="bandit-vault-boss",
desc = _t[[A messily scrawled pile of loose papers.]],
level_range = {1, 20},
rarity = false,
}
game.zone:addEntity(game.level, lore, "object", self.x, self.y)
end}}})
defineTile('$', "FLOOR", {random_filter={add_levels=25, type="money"}})
defineTile('g', "FLOOR", {random_filter={add_levels=25, type="gem"}})
local def = {
[[####################]],
[[#gg#$+*.i..+....$l$#]],
[[#$$$$#+#########R$$#]],
[[#ggg$#I...i+*..#####]],
[[######.I...###...g##]],
[[##ggg#+#####..r...##]],
[[###$##..i.r#..###..#]],
[[##$$+G.....#..RT..>#]],
[[###$##...r.#..###.r#]],
[[##$R$#r....#.R...###]],
[[##iBi##+######....*#]],
[[#######.i..+G..###+#]],
[[##gg$##+##########.#]],
[[##$$$r..####$$rr...#]],
[[##RR..$$####t$$$..R#]],
[[####################]],
}
return def
......@@ -46,7 +46,7 @@ return {
edge_entrances = {4,6},
rooms = {"forest_clearing", {"lesser_vault",8}},
rooms_config = {forest_clearing={pit_chance=5, filters={{type="insect", subtype="ant"}, {type="insect"}, {type="animal", subtype="snake"}, {type="animal", subtype="canine"}}}},
lesser_vaults_list = {"honey_glade", "troll-hideout", "mage-hideout", "thief-hideout", "plantlife", "mold-path", "loot-vault","worms"},
lesser_vaults_list = {"honey_glade", "troll-hideout", "mage-hideout", "thief-hideout", "plantlife", "mold-path", "loot-vault", "worms", "bandit-fortress"},
['.'] = "GRASS",
['#'] = "TREE",
up = "GRASS_UP4",
......
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