Themeroom: buried zombies

- add a themeroom with random buried zombifying corpses
- disturbing buried zombies makes them revive much faster
- lua des.object() now returns the object it created
This commit is contained in:
Pasi Kallinen
2023-04-01 14:05:14 +03:00
parent 4542d14d23
commit ba60bfac25
4 changed files with 18 additions and 3 deletions

View File

@@ -93,6 +93,17 @@ themeroom_fills = {
end });
end,
-- Buried zombies
function(rm)
local zombifiable = { "kobold", "gnome", "orc", "dwarf", "elf", "human", "ettin", "giant" };
for i = 1, (rm.width * rm.height) / 2 do
shuffle(zombifiable);
local o = des.object({ id = "corpse", montype = zombifiable[1], buried = true });
o:stop_timer("rot-corpse");
o:start_timer("zombify-mon", 1000);
end
end,
-- Massacre
function(rm)
local mon = { "apprentice", "warrior", "ninja", "thug",

View File

@@ -786,7 +786,8 @@ Example:
=== object
Create an object. The table parameter accepts the following:
Create an object. Returns the object as an <<Obj>> class.
The table parameter accepts the following:
[options="header"]
|===
@@ -828,6 +829,7 @@ Example:
des.object({ class = "%" });
des.object({ id = "boulder", x = 03, y = 12});
des.object({ id = "chest", coord = {03, 12}, locked = true, contents = function(obj) des.object("rock"); end });
local o = des.object();
=== random_corridors

View File

@@ -1605,7 +1605,7 @@ check_buried_zombies(coordxy x, coordxy y)
&& otmp->oy >= y - 1 && otmp->oy <= y + 1
&& (t = peek_timer(ZOMBIFY_MON, obj_to_any(otmp))) > 0) {
t = stop_timer(ZOMBIFY_MON, obj_to_any(otmp));
(void) start_timer(max(1, t - rn2(10)), TIMER_OBJECT,
(void) start_timer(max(1, (t*2/3)), TIMER_OBJECT,
ZOMBIFY_MON, obj_to_any(otmp));
}
}

View File

@@ -3691,7 +3691,9 @@ lspo_object(lua_State *L)
Free(tmpobj.name.str);
return 0;
nhl_push_obj(L, otmp);
return 1;
}
/* level_flags("noteleport", "mazelevel", ... ); */