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

Pits should not generate "monsters in walls"

git-svn-id: http://svn.net-core.org/repos/t-engine4@1313 51575b47-30f0-44d4-a5cc-537603b46e54
parent 2e94ae77
No related branches found
No related tags found
No related merge requests found
......@@ -60,3 +60,11 @@ function _M:resolve(c, list, force)
res:resolve(nil, true)
return res
end
function _M:roomMapAddEntity(i, j, type, e)
self.map.room_map[i] = self.map.room_map[i] or {}
self.map.room_map[i][j] = self.map.room_map[i][j] or {}
self.map.room_map[i][j].add_entities = self.map.room_map[i][j].add_entities or {}
local rm = self.map.room_map[i][j].add_entities
rm[#rm+1] = {type, e}
end
......@@ -183,11 +183,6 @@ function _M:generate(lev, old_lev)
local status = self.tiles[c] and self.tiles[c].status
local define_spot = self.tiles[c] and self.tiles[c].define_spot
self.map.room_map[i-1] = self.map.room_map[i-1] or {}
self.map.room_map[i-1][j-1] = self.map.room_map[i-1][j-1] or {}
self.map.room_map[i-1][j-1].add_entities = self.map.room_map[i-1][j-1].add_entities or {}
local rm = self.map.room_map[i-1][j-1].add_entities
if object then
local o
if type(object) == "string" then o = self.zone:makeEntityByName(self.level, "object", object)
......@@ -195,7 +190,7 @@ function _M:generate(lev, old_lev)
else o = self.zone:finishEntity(self.level, "object", object)
end
if o then rm[#rm+1] = {"object", o} end
if o then self:roomMapAddEntity(i-1, j-1, "object", o) end
end
if trap then
......@@ -204,7 +199,7 @@ function _M:generate(lev, old_lev)
elseif type(trap) == "table" and trap.random_filter then t = self.zone:makeEntity(self.level, "trap", trap.random_filter, nil, true)
else t = self.zone:finishEntity(self.level, "trap", trap)
end
if t then rm[#rm+1] = {"trap", t} end
if t then self:roomMapAddEntity(i-1, j-1, "trap", t) end
end
if actor then
......@@ -213,7 +208,7 @@ function _M:generate(lev, old_lev)
elseif type(actor) == "table" and actor.random_filter then m = self.zone:makeEntity(self.level, "actor", actor.random_filter, nil, true)
else m = self.zone:finishEntity(self.level, "actor", actor)
end
if m then rm[#rm+1] = {"actor", m} end
if m then self:roomMapAddEntity(i-1, j-1, "actor", m) end
end
if status then
......
......@@ -42,7 +42,7 @@ return function(gen, id)
if ispit then
local e = gen.zone:makeEntity(gen.level, "actor", ispit, nil, true)
if e then
gen.zone:addEntity(gen.level, e, "actor", i-1+x, j-1+y)
if e then gen:roomMapAddEntity(i-1+x, j-1+y, "actor", e) end
gen.map.attrs(i-1+x, j-1+y, "no_decay", true)
end
end
......
......@@ -32,15 +32,11 @@ return function(gen, id)
-- Add money
local e = gen.zone:makeEntity(gen.level, "object", {type="money"}, nil, true)
if e then
gen.zone:addEntity(gen.level, e, "object", i-1+x, j-1+y)
end
if e then gen:roomMapAddEntity(i-1+x, j-1+y, "object", e) end
-- Add guardians
if rng.percent(50) then
e = gen.zone:makeEntity(gen.level, "actor")
if e then
gen.zone:addEntity(gen.level, e, "actor", i-1+x, j-1+y)
end
if e then gen:roomMapAddEntity(i-1+x, j-1+y, "actor", e) end
end
end
if is_lit then gen.map.lites(i-1+x, j-1+y, true) end
......
......@@ -48,7 +48,7 @@ return function(gen, id)
doors[#doors+1] = {i-1+x, j-1+y}
else
local e = gen.zone:makeEntity(gen.level, "actor", filter, nil, true)
if e then gen.zone:addEntity(gen.level, e, "actor", i-1+x, j-1+y) end
if e then gen:roomMapAddEntity(i-1+x, j-1+y, "actor", e) end
end
if is_lit then gen.map.lites(i-1+x, j-1+y, true) end
end
......
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