Fix boulder over a hole or a pit dug by a monster
When a monster digs down and creates a pit or a hole, drop the boulder at the location into it.
This commit is contained in:
@@ -899,6 +899,7 @@ use_defensive(struct monst *mtmp)
|
|||||||
pline("%s has made a pit in the %s.", Monnam(mtmp),
|
pline("%s has made a pit in the %s.", Monnam(mtmp),
|
||||||
surface(mtmp->mx, mtmp->my));
|
surface(mtmp->mx, mtmp->my));
|
||||||
}
|
}
|
||||||
|
fill_pit(mtmp->mx, mtmp->my);
|
||||||
return (mintrap(mtmp, FORCEBUNGLE) == Trap_Killed_Mon) ? 1 : 2;
|
return (mintrap(mtmp, FORCEBUNGLE) == Trap_Killed_Mon) ? 1 : 2;
|
||||||
}
|
}
|
||||||
t = maketrap(mtmp->mx, mtmp->my, HOLE);
|
t = maketrap(mtmp->mx, mtmp->my, HOLE);
|
||||||
@@ -915,6 +916,7 @@ use_defensive(struct monst *mtmp)
|
|||||||
You_hear("%s crash through the %s.", something,
|
You_hear("%s crash through the %s.", something,
|
||||||
surface(mtmp->mx, mtmp->my));
|
surface(mtmp->mx, mtmp->my));
|
||||||
}
|
}
|
||||||
|
fill_pit(mtmp->mx, mtmp->my);
|
||||||
/* we made sure that there is a level for mtmp to go to */
|
/* we made sure that there is a level for mtmp to go to */
|
||||||
migrate_to_level(mtmp, ledger_no(&u.uz) + 1, MIGR_RANDOM,
|
migrate_to_level(mtmp, ledger_no(&u.uz) + 1, MIGR_RANDOM,
|
||||||
(coord *) 0);
|
(coord *) 0);
|
||||||
|
|||||||
+2
-1
@@ -3819,13 +3819,14 @@ float_up(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* a boulder fills a pit or a hole at x,y */
|
||||||
void
|
void
|
||||||
fill_pit(coordxy x, coordxy y)
|
fill_pit(coordxy x, coordxy y)
|
||||||
{
|
{
|
||||||
struct obj *otmp;
|
struct obj *otmp;
|
||||||
struct trap *t;
|
struct trap *t;
|
||||||
|
|
||||||
if ((t = t_at(x, y)) != 0 && is_pit(t->ttyp)
|
if ((t = t_at(x, y)) != 0 && (is_pit(t->ttyp) || is_hole(t->ttyp))
|
||||||
&& (otmp = sobj_at(BOULDER, x, y)) != 0) {
|
&& (otmp = sobj_at(BOULDER, x, y)) != 0) {
|
||||||
obj_extract_self(otmp);
|
obj_extract_self(otmp);
|
||||||
(void) flooreffects(otmp, x, y, "settle");
|
(void) flooreffects(otmp, x, y, "settle");
|
||||||
|
|||||||
Reference in New Issue
Block a user