Huge monsters easily climb out of pits
Also, give a message when a monster trapped in a pit, a web, or a bear trap frees itself.
This commit is contained in:
@@ -809,6 +809,8 @@ elves and rangers get alignment penalty for cutting down trees
|
|||||||
casting a forgotten spell uses some random amount of power
|
casting a forgotten spell uses some random amount of power
|
||||||
heroes starting with a spell have at least one level one spell, and
|
heroes starting with a spell have at least one level one spell, and
|
||||||
have just enough power to cast it
|
have just enough power to cast it
|
||||||
|
huge monsters get easily out of pits
|
||||||
|
give a message when a trapped monster frees itself from some trap
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
12
src/trap.c
12
src/trap.c
@@ -3080,7 +3080,7 @@ mintrap(register struct monst *mtmp)
|
|||||||
seetrap(trap);
|
seetrap(trap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!rn2(40)) {
|
if (!rn2(40) || (is_pit(trap->ttyp) && mtmp->data->msize >= MZ_HUGE)) {
|
||||||
if (sobj_at(BOULDER, mtmp->mx, mtmp->my)
|
if (sobj_at(BOULDER, mtmp->mx, mtmp->my)
|
||||||
&& is_pit(trap->ttyp)) {
|
&& is_pit(trap->ttyp)) {
|
||||||
if (!rn2(2)) {
|
if (!rn2(2)) {
|
||||||
@@ -3090,6 +3090,14 @@ mintrap(register struct monst *mtmp)
|
|||||||
fill_pit(mtmp->mx, mtmp->my);
|
fill_pit(mtmp->mx, mtmp->my);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (canseemon(mtmp)) {
|
||||||
|
if (is_pit(trap->ttyp))
|
||||||
|
pline("%s climbs %sout of the pit.", Monnam(mtmp),
|
||||||
|
mtmp->data->msize >= MZ_HUGE ? "easily " : "");
|
||||||
|
else if (trap->ttyp == BEAR_TRAP || trap->ttyp == WEB)
|
||||||
|
pline("%s pulls free of the %s.", Monnam(mtmp),
|
||||||
|
trapname(trap->ttyp, FALSE));
|
||||||
|
}
|
||||||
mtmp->mtrapped = 0;
|
mtmp->mtrapped = 0;
|
||||||
}
|
}
|
||||||
} else if (metallivorous(mptr)) {
|
} else if (metallivorous(mptr)) {
|
||||||
@@ -3497,7 +3505,7 @@ climb_pit(void)
|
|||||||
reset_utrap(FALSE);
|
reset_utrap(FALSE);
|
||||||
fill_pit(u.ux, u.uy);
|
fill_pit(u.ux, u.uy);
|
||||||
g.vision_full_recalc = 1; /* vision limits change */
|
g.vision_full_recalc = 1; /* vision limits change */
|
||||||
} else if (!(--u.utrap)) {
|
} else if (!(--u.utrap) || g.youmonst.data->msize >= MZ_HUGE) {
|
||||||
reset_utrap(FALSE);
|
reset_utrap(FALSE);
|
||||||
You("%s to the edge of the %s.",
|
You("%s to the edge of the %s.",
|
||||||
(Sokoban && Levitation)
|
(Sokoban && Levitation)
|
||||||
|
|||||||
Reference in New Issue
Block a user