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