Skip to content
Snippets Groups Projects
Commit 2f587f5e authored by dg's avatar dg
Browse files

Extracter the rooms loader of Roomer generator into a RoomsLoader taht is now alos used by Forest

Added possible vaults to Eruan and the Trollshaws


git-svn-id: http://svn.net-core.org/repos/t-engine4@1194 51575b47-30f0-44d4-a5cc-537603b46e54
parent 48ff4cd7
No related branches found
No related tags found
No related merge requests found
Showing
with 464 additions and 112 deletions
......@@ -20,7 +20,8 @@
require "engine.class"
local Map = require "engine.Map"
require "engine.Generator"
module(..., package.seeall, class.inherit(engine.Generator))
local RoomsLoader = require "engine.generator.map.RoomsLoader"
module(..., package.seeall, class.inherit(engine.Generator, RoomsLoader))
function _M:init(zone, map, level, data)
engine.Generator.init(self, zone, map, level)
......@@ -40,6 +41,8 @@ function _M:init(zone, map, level, data)
self.do_ponds.hurst = self.do_ponds.hurst or nil
self.do_ponds.lacunarity = self.do_ponds.lacunarity or nil
end
RoomsLoader.init(self, data)
end
function _M:addPond(x, y, spots)
......@@ -114,6 +117,7 @@ function _M:generate(lev, old_lev)
end
local spots = {}
self.spots = spots
if self.do_ponds then
for i = 1, rng.range(self.do_ponds.nb[1], self.do_ponds.nb[2]) do
......@@ -121,6 +125,24 @@ function _M:generate(lev, old_lev)
end
end
local nb_room = util.getval(self.data.nb_rooms or 0)
local rooms = {}
while nb_room > 0 do
local rroom
while true do
rroom = self.rooms[rng.range(1, #self.rooms)]
if type(rroom) == "table" and rroom.chance_room then
if rng.percent(rroom.chance_room) then rroom = rroom[1] break end
else
break
end
end
local r = self:roomAlloc(rroom, #rooms+1, lev, old_lev)
if r then rooms[#rooms+1] = r end
nb_room = nb_room - 1
end
local ux, uy, dx, dy
if self.data.edge_entrances then
ux, uy, dx, dy, spots = self:makeStairsSides(lev, old_lev, self.data.edge_entrances, spots)
......
......@@ -20,7 +20,8 @@
require "engine.class"
local Map = require "engine.Map"
require "engine.Generator"
module(..., package.seeall, class.inherit(engine.Generator))
local RoomsLoader = require "engine.generator.map.RoomsLoader"
module(..., package.seeall, class.inherit(engine.Generator, RoomsLoader))
function _M:init(zone, map, level, data)
engine.Generator.init(self, zone, map, level)
......@@ -31,102 +32,7 @@ function _M:init(zone, map, level, data)
self.data.lite_room_chance = self.data.lite_room_chance or 25
self.grid_list = zone.grid_list
self.rooms = {}
for i, file in ipairs(data.rooms) do
if type(file) == "table" then
table.insert(self.rooms, {self:loadRoom(file[1]), chance_room=file[2]})
else
table.insert(self.rooms, self:loadRoom(file))
end
end
end
function _M:loadRoom(file)
local f, err = loadfile("/data/rooms/"..file..".lua")
if not f and err then error(err) end
setfenv(f, setmetatable({
Map = require("engine.Map"),
}, {__index=_G}))
local ret, err = f()
if not ret and err then error(err) end
-- We got a room generator function, save it for later
if type(ret) == "function" then
print("loaded room generator",file,ret)
return ret
end
-- Init the room with name and size
local t = { name=file, w=ret[1]:len(), h=#ret }
-- Read the room map
for j, line in ipairs(ret) do
local i = 1
for c in line:gmatch(".") do
t[i] = t[i] or {}
t[i][j] = c
i = i + 1
end
end
print("loaded room",file,t.w,t.h)
return t
end
--- Make up a room
function _M:roomAlloc(room, id, lev, old_lev)
if type(room) == 'function' then
print("room generator", room, "is making a room")
room = room(self, id, lev, old_lev)
end
print("alloc", room.name)
-- Sanity check
if self.map.w - 2 - room.w < 2 or self.map.h - 2 - room.h < 2 then return false end
local tries = 100
while tries > 0 do
local ok = true
local x, y = rng.range(1, self.map.w - 2 - room.w), rng.range(1, self.map.h - 2 - room.h)
-- Do we stomp ?
for i = 1, room.w do
for j = 1, room.h do
if self.map.room_map[i-1+x][j-1+y].room then ok = false break end
end
if not ok then break end
end
if ok then
local is_lit = rng.percent(self.data.lite_room_chance)
-- ok alloc it using the default generator or a specific one
local cx, cy
if room.generator then
cx, cy = room:generator(x, y, is_lit)
else
for i = 1, room.w do
for j = 1, room.h do
self.map.room_map[i-1+x][j-1+y].room = id
local c = room[i][j]
if c == '!' then
self.map.room_map[i-1+x][j-1+y].room = nil
self.map.room_map[i-1+x][j-1+y].can_open = true
self.map(i-1+x, j-1+y, Map.TERRAIN, self:resolve('#'))
else
self.map(i-1+x, j-1+y, Map.TERRAIN, self:resolve(c))
end
if is_lit then self.map.lites(i-1+x, j-1+y, true) end
end
end
end
print("room allocated at", x, y,"with center",math.floor(x+(room.w-1)/2), math.floor(y+(room.h-1)/2))
cx = cx or math.floor(x+(room.w-1)/2)
cy = cy or math.floor(y+(room.h-1)/2)
return { id=id, x=x, y=y, cx=cx, cy=cy, room=room }
end
tries = tries - 1
end
return false
RoomsLoader.init(self, data)
end
--- Random tunnel dir
......@@ -336,17 +242,14 @@ function _M:generate(lev, old_lev)
local spots = {}
self.spots = spots
local nb_room = self.data.nb_rooms or 10
local nb_room = util.getval(self.data.nb_rooms or 10)
local rooms = {}
while nb_room > 0 do
local rroom
while true do
rroom = self.rooms[rng.range(1, #self.rooms)]
if type(rroom) == "table" and rroom.chance_room then
if rng.percent(rroom.chance_room) then
rroom = rroom[1]
break
end
if rng.percent(rroom.chance_room) then rroom = rroom[1] break end
else
break
end
......
-- TE4 - T-Engine 4
-- Copyright (C) 2009, 2010 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
require "engine.class"
local Map = require "engine.Map"
--- Generator interface that can use rooms
module(..., package.seeall, class.make)
function _M:init(data)
self.rooms = {}
if not data.rooms then return end
for i, file in ipairs(data.rooms) do
if type(file) == "table" then
table.insert(self.rooms, {self:loadRoom(file[1]), chance_room=file[2]})
else
table.insert(self.rooms, self:loadRoom(file))
end
end
end
function _M:loadRoom(file)
local f, err = loadfile("/data/rooms/"..file..".lua")
if not f and err then error(err) end
setfenv(f, setmetatable({
Map = require("engine.Map"),
}, {__index=_G}))
local ret, err = f()
if not ret and err then error(err) end
-- We got a room generator function, save it for later
if type(ret) == "function" then
print("loaded room generator",file,ret)
return ret
end
-- Init the room with name and size
local t = { name=file, w=ret[1]:len(), h=#ret }
-- Read the room map
for j, line in ipairs(ret) do
local i = 1
for c in line:gmatch(".") do
t[i] = t[i] or {}
t[i][j] = c
i = i + 1
end
end
print("loaded room",file,t.w,t.h)
return t
end
--- Make up a room
function _M:roomAlloc(room, id, lev, old_lev)
if type(room) == 'function' then
print("room generator", room, "is making a room")
room = room(self, id, lev, old_lev)
end
print("alloc", room.name)
-- Sanity check
if self.map.w - 2 - room.w < 2 or self.map.h - 2 - room.h < 2 then return false end
local tries = 100
while tries > 0 do
local ok = true
local x, y = rng.range(1, self.map.w - 2 - room.w), rng.range(1, self.map.h - 2 - room.h)
-- Do we stomp ?
for i = 1, room.w do
for j = 1, room.h do
if self.map.room_map[i-1+x][j-1+y].room then ok = false break end
end
if not ok then break end
end
if ok then
local is_lit = rng.percent(self.data.lite_room_chance)
-- ok alloc it using the default generator or a specific one
local cx, cy
if room.generator then
cx, cy = room:generator(x, y, is_lit)
else
for i = 1, room.w do
for j = 1, room.h do
self.map.room_map[i-1+x][j-1+y].room = id
local c = room[i][j]
if c == '!' then
self.map.room_map[i-1+x][j-1+y].room = nil
self.map.room_map[i-1+x][j-1+y].can_open = true
self.map(i-1+x, j-1+y, Map.TERRAIN, self:resolve('#'))
else
self.map(i-1+x, j-1+y, Map.TERRAIN, self:resolve(c))
end
if is_lit then self.map.lites(i-1+x, j-1+y, true) end
end
end
end
print("room allocated at", x, y,"with center",math.floor(x+(room.w-1)/2), math.floor(y+(room.h-1)/2))
cx = cx or math.floor(x+(room.w-1)/2)
cy = cy or math.floor(y+(room.h-1)/2)
return { id=id, x=x, y=y, cx=cx, cy=cy, room=room }
end
tries = tries - 1
end
return false
end
......@@ -85,11 +85,21 @@ function _M:loadMap(file)
local m = { w=ret[1]:len(), h=#ret }
-- Read the map
local rotate = util.getval(g.rotates or "default")
for j, line in ipairs(ret) do
local i = 1
for c in line:gmatch(".") do
m[i] = m[i] or {}
m[i][j] = c
local ii, jj = i, j
if rotate == "flipx" then ii, jj = m.w - i + 1, j
elseif rotate == "flipy" then ii, jj = i, m.h - j + 1
elseif rotate == "90" then ii, jj = j, m.w - i + 1
elseif rotate == "180" then ii, jj = m.w - i + 1, m.h - j + 1
elseif rotate == "270" then ii, jj = m.h - j + 1, i
end
m[ii] = m[ii] or {}
m[ii][jj] = c
i = i + 1
end
end
......@@ -99,6 +109,25 @@ function _M:loadMap(file)
m.endx = g.endx or math.floor(m.w / 2)
m.endy = g.endy or math.floor(m.h / 2)
if rotate == "flipx" then
m.startx = m.w - m.startx + 1
m.endx = m.w - m.endx + 1
elseif rotate == "flipy" then
m.starty = m.h - m.starty + 1
m.endy = m.h - m.endy + 1
elseif rotate == "90" then
m.startx, m.starty = m.starty, m.w - m.startx + 1
m.endx, m.endy = m.endy, m.w - m.endx + 1
m.w, m.h = m.h, m.w
elseif rotate == "180" then
m.startx, m.starty = m.w - m.startx + 1, m.h - m.starty + 1
m.endx, m.endy = m.w - m.endx + 1, m.h - m.endy + 1
elseif rotate == "270" then
m.startx, m.starty = m.h - m.starty + 1, m.startx
m.endx, m.endy = m.h - m.endy + 1, m.endx
m.w, m.h = m.h, m.w
end
self.gen_map = m
self.tiles = t
......
......@@ -524,7 +524,7 @@ function _M:setupCommands()
end,
[{"_g","ctrl"}] = function()
if config.settings.tome.cheat then
self:changeLevel(1, "infinite-dungeon")
self:changeLevel(1, "eruan")
-- self.player:grantQuest("test")
end
end,
......
......@@ -38,6 +38,21 @@ newEntity{
}
end
for i = 1, 20 do
newEntity{
define_as = "HARDTREE"..(i > 1 and i or ""),
name = "tall thick tree",
image = "terrain/grass.png",
add_displays = class:makeTrees("terrain/tree_alpha"),
display = '#', color=colors.LIGHT_GREEN, back_color={r=44,g=95,b=43},
always_remember = true,
does_block_move = true,
block_sight = true,
block_sense = true,
block_esp = true,
}
end
newEntity{
define_as = "GRASS_DARK1",
name = "grass", image = "terrain/grass_dark1.png",
......@@ -59,8 +74,51 @@ newEntity{
}
end
for i = 1, 20 do
newEntity{
define_as = "HARDTREE_DARK"..i,
name = "tall thick tree", image = "terrain/grass_dark1.png",
force_clone = true,
add_displays = class:makeTrees("terrain/tree_alpha"),
display = '#', color=colors.GREEN, back_color={r=44,g=95,b=43},
always_remember = true,
does_block_move = true,
block_sight = true,
block_sense = true,
block_esp = true,
}
end
newEntity{
define_as = "FLOWER",
name = "flower", image = "terrain/grass_flower3.png",
display = ';', color=colors.YELLOW, back_color={r=44,g=95,b=43},
}
newEntity{
define_as = "ROCK_VAULT",
name = "huge lose rock", image = "terrain/rock_grass.png",
display = '+', color=colors.GREY, back_color={r=44,g=95,b=43},
notice = true,
always_remember = true,
block_sight = true,
block_sense = true,
block_esp = true,
door_player_check = "This rock is loose, you think you can move it away.",
door_opened = "GRASS",
dig = "GRASS",
}
newEntity{
define_as = "ROCK_VAULT_DARK",
name = "huge lose rock", image = "terrain/rock_grass_dark.png",
display = '+', color=colors.GREY, back_color={r=44,g=95,b=43},
notice = true,
always_remember = true,
block_sight = true,
block_sense = true,
block_esp = true,
door_player_check = "This rock is loose, you think you can move it away.",
door_opened = "GRASS_DARK1",
dig = "GRASS_DARK1",
}
......@@ -45,3 +45,15 @@ newEntity{
block_sight = true,
dig = "ROCKY_GROUND",
}
newEntity{
define_as = "HARDMOUNTAIN_WALL",
name = "hard rocky mountain", image = "terrain/rocky_mountain.png",
display = '#', color=colors.UMBER, back_color=colors.LIGHT_UMBER,
always_remember = true,
does_block_move = true,
block_sight = true,
block_sense = true,
block_esp = true,
air_level = -20,
}
game/modules/tome/data/gfx/terrain/rock_grass.png

1.3 KiB

game/modules/tome/data/gfx/terrain/rock_grass_dark.png

1.28 KiB

-- ToME - Tales of Middle-Earth
-- Copyright (C) 2009, 2010 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
startx = 25
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}})
defineTile('D', "SAND", {random_filter={add_levels=20}}, {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"}
return {
[[ XXXXXXX X X XXX X ]],
[[ XXXd XXXXXXXXdXX XXXXXX ]],
[[XXXXXXX XXXX XXX XXX]],
[[XdXXX $$$ Xd XXX X XX]],
[[XX $$$$$ dXXX XX XX]],
[[Xd $$$D$$$ XXXX!XX]],
[[XX $$$$$ XXXXXXXX ]],
[[XXXXX $$$ XXXXXXXXXXXX]],
[[ XXX X XXX XXXXXXXXX ]],
[[ XXXX XXXXXX ddXXXXXX ]],
[[ XXXdXX XXXXXXXXXXXXX ]],
[[ XXXX XXXXXXXX ]],
}
\ No newline at end of file
-- ToME - Tales of Middle-Earth
-- Copyright (C) 2009, 2010 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
defineTile('!', "ROCK_VAULT", nil, nil, nil, {room_map={special=false, room=false, can_open=true}})
defineTile(' ', "GRASS")
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}}, {random_filter={name="brown bear", add_levels=10}})
defineTile('Q', "GRASS", {random_filter={add_levels=20}}, {random_filter={name="grizzly bear", add_levels=20}})
startx = 2
starty = 10
return {
[[XXXXXXXXXX]],
[[XXX XXXX]],
[[XX #q# XXX]],
[[XX qQq XXX]],
[[XX #q# XXX]],
[[XXX XXXX]],
[[XXXX XXXXX]],
[[XXXX XXX]],
[[XXXXXX!XXX]],
[[XX^^^^ XXX]],
[[XX XXXXXXX]],
}
-- ToME - Tales of Middle-Earth
-- Copyright (C) 2009, 2010 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
defineTile('!', "ROCK_VAULT_DARK", nil, nil, nil, {room_map={special=false, room=false, can_open=true}})
defineTile(' ', "GRASS_DARK1")
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}}, {random_filter={name="brown bear", add_levels=10}})
defineTile('Q', "GRASS_DARK1", {random_filter={add_levels=20}}, {random_filter={name="grizzly bear", add_levels=20}})
startx = 2
starty = 10
return {
[[XXXXXXXXXX]],
[[XXX XXXX]],
[[XX #q# XXX]],
[[XX qQq XXX]],
[[XX #q# XXX]],
[[XXX XXXX]],
[[XXXX XXXXX]],
[[XXXX XXX]],
[[XXXXXX!XXX]],
[[XX^^^^ XXX]],
[[XX XXXXXXX]],
}
......@@ -23,7 +23,7 @@ local list = {
}
return function(gen, id, lev, old_lev)
local vaultid = rng.table(gen.data.vaults_list or list)
local vaultid = rng.table(gen.data.greater_vaults_list or list)
local vault_map = engine.Map.new(max_w, max_h)
local Static = require("engine.generator.map.Static")
local data = table.clone(gen.data)
......
-- ToME - Tales of Middle-Earth
-- Copyright (C) 2009, 2010 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 max_w, max_h = 50, 50
local list = {
"honey_glade",
}
return function(gen, id, lev, old_lev)
local vaultid = rng.table(gen.data.lesser_vaults_list or list)
local vault_map = engine.Map.new(max_w, max_h)
local Static = require("engine.generator.map.Static")
local data = table.clone(gen.data)
data.map = "vaults/"..vaultid
local old_map = gen.level.map
local old_game_level = game.level
game.level = gen.level
gen.level.map = vault_map
local vault = Static.new(gen.zone, vault_map, gen.level, data)
vault:generate(lev, old_lev)
game.level = old_game_level
gen.level.map = old_map
local w = vault_map.w
local h = vault_map.h
return { name="lesser_vault-"..vaultid.."-"..w.."x"..h, w=w, h=h, generator = function(self, x, y, is_lit)
gen.map:import(vault_map, x, y)
vault_map:close()
-- Make it a room, and make it special so that we do not tunnel through
for i = x, x + w - 1 do for j = y, y + h - 1 do
gen.map.room_map[i][j].special = true
gen.map.room_map[i][j].room = id
end end
if vault.gen_map.startx and vault.gen_map.starty then
gen.spots[#gen.spots+1] = {x=vault.gen_map.startx + x, y=vault.gen_map.starty + y, check_connectivity="entrance", type="vault", subtype="lesser"}
return vault.gen_map.startx + x, vault.gen_map.starty + y
end
end}
end
......@@ -19,7 +19,9 @@
load("/data/general/grids/basic.lua")
load("/data/general/grids/water.lua")
load("/data/general/grids/forest.lua")
load("/data/general/grids/sand.lua")
load("/data/general/grids/mountain.lua")
newEntity{
define_as = "MOUNT_DOOM_PORTAL",
......
......@@ -25,7 +25,7 @@ return {
decay = {300, 800},
actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
width = 50, height = 50,
-- all_remembered = true,
all_remembered = true,
all_lited = true,
persistant = "zone",
ambiant_music = "Bazaar of Tal-Mashad.ogg",
......@@ -45,6 +45,11 @@ return {
size = {w=25, h=25},
pond = {{0.6, "DEEP_WATER"}, {0.8, "SHALLOW_WATER"}},
},
nb_rooms = {1,2},
rooms = {"greater_vault"},
greater_vaults_list = {"dragon_lair"},
lite_room_chance = 100,
},
actor = {
class = "engine.generator.actor.Random",
......
......@@ -36,7 +36,7 @@ return {
-- rooms = {"simple", "pilar", {"money_vault",5}},
rooms = {"simple", "greater_vault"},
rooms_config = {pit={filters={{type="undead"}}}},
vaults_list = {"double-t","crypt","treasure1","diggers"},
greater_vaults_list = {"double-t","crypt","treasure1","diggers"},
lite_room_chance = 50,
['.'] = "FLOOR",
['#'] = "WALL",
......
......@@ -34,8 +34,9 @@ return {
class = "engine.generator.map.Roomer",
nb_rooms = 10,
edge_entrances = {6,4},
rooms = {"forest_clearing"},
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_dark"},
['.'] = "GRASS_DARK1",
['#'] = {"TREE_DARK1","TREE_DARK2","TREE_DARK3","TREE_DARK4","TREE_DARK5","TREE_DARK6","TREE_DARK7","TREE_DARK8","TREE_DARK9","TREE_DARK10","TREE_DARK11","TREE_DARK12","TREE_DARK13","TREE_DARK14","TREE_DARK15","TREE_DARK16","TREE_DARK17","TREE_DARK18","TREE_DARK19","TREE_DARK20",},
up = "UP",
......
......@@ -35,7 +35,7 @@ return {
nb_rooms = 10,
rooms = {"simple", "pilar", {"money_vault",5}, {"pit",7}, {"greater_vault",8}},
rooms_config = {pit={filters={{type="undead"}}}},
vaults_list = {"double-t","crypt","treasure1","diggers"},
greater_vaults_list = {"double-t","crypt","treasure1","diggers"},
lite_room_chance = 100,
['.'] = "FLOOR",
['#'] = "WALL",
......@@ -45,7 +45,7 @@ return {
},
actor = {
class = "engine.generator.actor.Random",
nb_npc = {0, 0},
nb_npc = {20, 30},
guardian = "THE_MASTER",
},
object = {
......
......@@ -45,6 +45,11 @@ return {
size = {w=25, h=25},
pond = {{0.6, "DEEP_WATER"}, {0.8, "SHALLOW_WATER"}},
},
nb_rooms = {0,0,0,0,1},
rooms = {"lesser_vault"},
greater_vaults_list = {"honey_tree"},
lite_room_chance = 100,
},
actor = {
class = "engine.generator.actor.Random",
......
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