Skip to content
Snippets Groups Projects
Commit 744e40d9 authored by dg's avatar dg
Browse files

The Maze corridors are now 2 wide

Lowered the size of the Maze a bit, but with the same number of foes

git-svn-id: http://svn.net-core.org/repos/t-engine4@5337 51575b47-30f0-44d4-a5cc-537603b46e54
parent b277e2b6
No related branches found
No related tags found
No related merge requests found
......@@ -25,13 +25,23 @@ module(..., package.seeall, class.inherit(engine.Generator))
function _M:init(zone, map, grid_list, data)
engine.Generator.init(self, zone, map, level)
self.data = data
data.widen_w = data.widen_w or 1
data.widen_h = data.widen_h or 1
data.w = data.w or math.floor(map.w / data.widen_w)
data.h = data.h or math.floor(map.h / data.widen_h)
self.grid_list = self.zone.grid_list
end
function _M:generate(lev, old_lev)
for i = 0, self.map.w - 1 do for j = 0, self.map.h - 1 do
self.map(i, j, Map.TERRAIN, self:resolve("wall"))
self.map.room_map[i][j].maze_wall = true
local do_tile = function(i, j, wall)
for ii = 0, self.data.widen_w-1 do for jj = 0, self.data.widen_h-1 do
self.map(i*self.data.widen_w+ii, j*self.data.widen_h+jj, Map.TERRAIN, self:resolve(wall and "wall" or "floor"))
end end
self.map.room_map[i][j].maze_wall = wall
end
for i = 0, self.data.w - 1 do for j = 0, self.data.h - 1 do
do_tile(i, j, true)
end end
local xpos, ypos = 1, 1
......@@ -59,20 +69,20 @@ function _M:generate(lev, old_lev)
if #dir > 0 then
local d = dir[rng.range(1, #dir)]
if d == 4 then
self.map(xpos-2, ypos, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos-2][ypos].maze_wall = nil
self.map(xpos-1, ypos, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos-1][ypos].maze_wall = nil
do_tile(xpos-2, ypos, false)
do_tile(xpos-1, ypos, false)
xpos = xpos - 2
elseif d == 6 then
self.map(xpos+2, ypos, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos+2][ypos].maze_wall = nil
self.map(xpos+1, ypos, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos+1][ypos].maze_wall = nil
do_tile(xpos+2, ypos, false)
do_tile(xpos+1, ypos, false)
xpos = xpos + 2
elseif d == 8 then
self.map(xpos, ypos-2, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos][ypos-2].maze_wall = nil
self.map(xpos, ypos-1, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos][ypos-1].maze_wall = nil
do_tile(xpos, ypos-2, false)
do_tile(xpos, ypos-1, false)
ypos = ypos - 2
elseif d == 2 then
self.map(xpos, ypos+2, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos][ypos+2].maze_wall = nil
self.map(xpos, ypos+1, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos][ypos+1].maze_wall = nil
do_tile(xpos, ypos+2, false)
do_tile(xpos, ypos+1, false)
ypos = ypos + 2
end
table.insert(moves, {xpos, ypos})
......@@ -81,7 +91,7 @@ function _M:generate(lev, old_lev)
end
end
-- Always starts at 1, 1
local ux, uy = 1, 1
local ux, uy = 1 * self.data.widen_w, 1 * self.data.widen_h
local dx, dy = math.floor(self.map.w/2)*2-1-2*(1-math.mod(self.map.w,2)), math.floor(self.map.h/2)*2-1-2*(1-math.mod(self.map.h,2))
self.map(ux, uy, Map.TERRAIN, self:resolve("up"))
self.map.room_map[ux][uy].special = "exit"
......
......@@ -66,5 +66,7 @@ return {
up = "CAVE_LADDER_UP_WILDERNESS",
}, },
},
[2] = { width = 40, height = 40, generator = {map = {min_floor=600}} },
[3] = { width = 20, height = 20, generator = {map = {min_floor=200}} },
},
}
......@@ -24,7 +24,7 @@ return {
max_level = 2,
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 = 80, height = 80,
width = 60, height = 60,
-- all_remembered = true,
-- all_lited = true,
persistent = "zone",
......@@ -38,6 +38,7 @@ return {
down = "DOWN",
wall = "OLD_WALL",
floor = "OLD_FLOOR",
widen_w = 2, widen_h = 2,
},
actor = {
class = "mod.class.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