drum of earthquake - monster portion

<Someone> wrote:
> When applying a drum of earthquake, should you "fall into a chasm" if
> you're already at the bottom of a pit? (Likewise monsters.)

monster already in a pit won't "fall into a chasm" from drum of earthquake
This commit is contained in:
nethack.allison
2006-04-14 14:33:01 +00:00
parent 914c66b10a
commit b9db663de1
2 changed files with 13 additions and 6 deletions
+2 -1
View File
@@ -205,7 +205,8 @@ check for hero location in digactualhole() before clearing u.utrap
clear any pits that the hero digs in the vault guard's temporary corridor clear any pits that the hero digs in the vault guard's temporary corridor
shattering a monster's weapon didn't work as intended for stack of N>1 shattering a monster's weapon didn't work as intended for stack of N>1
don't reveal surface information that you can neither feel or see don't reveal surface information that you can neither feel or see
hero already in a pit won't "fall into a chasm" from drum of earthquake if the hero or a monster is already in a pit don't have them "fall into a chasm"
from drum of earthquake
Platform- and/or Interface-Specific Fixes Platform- and/or Interface-Specific Fixes
+11 -5
View File
@@ -311,14 +311,20 @@ do_pit: chasm = maketrap(x,y,PIT);
if (mtmp) { if (mtmp) {
if(!is_flyer(mtmp->data) && !is_clinger(mtmp->data)) { if(!is_flyer(mtmp->data) && !is_clinger(mtmp->data)) {
boolean m_already_trapped = mtmp->mtrapped;
mtmp->mtrapped = 1; mtmp->mtrapped = 1;
if(cansee(x,y)) if (m_already_trapped) { /* suppress messages */
pline("%s falls into a chasm!", Monnam(mtmp)); if(cansee(x,y))
else if (!Deaf && humanoid(mtmp->data)) pline("%s falls into a chasm!", Monnam(mtmp));
You_hear("a scream!"); else if (!Deaf && humanoid(mtmp->data))
You_hear("a scream!");
}
/* Falling is okay for falling down
within a pit from jostling too */
mselftouch(mtmp, "Falling, ", TRUE); mselftouch(mtmp, "Falling, ", TRUE);
if (mtmp->mhp > 0) if (mtmp->mhp > 0)
if ((mtmp->mhp -= rnd(6)) <= 0) { if ((mtmp->mhp -=
rnd(m_already_trapped ? 4 : 6)) <= 0) {
if(!cansee(x,y)) if(!cansee(x,y))
pline("It is destroyed!"); pline("It is destroyed!");
else { else {