Allow creating unhidden traps in special levels
des.trap({ type = "rust", seen = true });
This commit is contained in:
@@ -788,6 +788,7 @@ knights get no caitiff penalty against undead
|
||||
candy bars are bright blue in text mode
|
||||
towels weigh more than blindfolds
|
||||
knight quest home level contains some saddled warhorses
|
||||
allow creating unhidden traps in special levels
|
||||
|
||||
|
||||
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
||||
|
||||
@@ -741,10 +741,13 @@ Example:
|
||||
|
||||
=== trap
|
||||
|
||||
Create a trap.
|
||||
|
||||
Example:
|
||||
|
||||
des.trap({ type = "hole", x = 1, y = 1 });
|
||||
des.trap({ type = "hole", coord = {2, 2} });
|
||||
des.trap({ type = "web", coord = {2, 2}, spider_on_web = false, seen = true });
|
||||
des.trap("hole", 3, 4);
|
||||
des.trap("level teleport", {5, 8});
|
||||
des.trap("rust")
|
||||
|
||||
@@ -519,6 +519,7 @@ enum bodypart_types {
|
||||
#define MKTRAP_NOFLAGS 0x0
|
||||
#define MKTRAP_MAZEFLAG 0x1 /* trap placed on coords as if in maze */
|
||||
#define MKTRAP_NOSPIDERONWEB 0x2 /* web will not generate a spider */
|
||||
#define MKTRAP_SEEN 0x4 /* trap is seen */
|
||||
|
||||
#define MON_POLE_DIST 5 /* How far monsters can use pole-weapons */
|
||||
#define PET_MISSILE_RANGE2 36 /* Square of distance within which pets shoot */
|
||||
|
||||
@@ -128,6 +128,7 @@ typedef struct {
|
||||
packed_coord coord;
|
||||
xchar x, y, type;
|
||||
boolean spider_on_web;
|
||||
boolean seen;
|
||||
} spltrap;
|
||||
|
||||
typedef struct {
|
||||
|
||||
@@ -1468,6 +1468,8 @@ mktrap(int num, int mktrapflags, struct mkroom *croom, coord *tm)
|
||||
|
||||
if (kind == WEB && !(mktrapflags & MKTRAP_NOSPIDERONWEB))
|
||||
(void) makemon(&mons[PM_GIANT_SPIDER], m.x, m.y, NO_MM_FLAGS);
|
||||
if ((mktrapflags & MKTRAP_SEEN))
|
||||
t->tseen = TRUE;
|
||||
|
||||
/* The hero isn't the only person who's entered the dungeon in
|
||||
search of treasure. On the very shallowest levels, there's a
|
||||
|
||||
@@ -1743,6 +1743,8 @@ create_trap(spltrap* t, struct mkroom* croom)
|
||||
|
||||
if (!t->spider_on_web)
|
||||
mktrap_flags |= MKTRAP_NOSPIDERONWEB;
|
||||
if (t->seen)
|
||||
mktrap_flags |= MKTRAP_SEEN;
|
||||
|
||||
tm.x = x;
|
||||
tm.y = y;
|
||||
@@ -4117,6 +4119,7 @@ lspo_trap(lua_State *L)
|
||||
get_table_xy_or_coord(L, &x, &y);
|
||||
tmptrap.type = get_table_traptype_opt(L, "type", -1);
|
||||
tmptrap.spider_on_web = get_table_boolean_opt(L, "spider_on_web", 1);
|
||||
tmptrap.seen = get_table_boolean_opt(L, "seen", FALSE);
|
||||
}
|
||||
|
||||
if (tmptrap.type == NO_TRAP)
|
||||
|
||||
Reference in New Issue
Block a user