From: nethack.allison Date: Fri, 14 Apr 2006 14:33:01 +0000 (+0000) Subject: drum of earthquake - monster portion X-Git-Tag: MOVE2GIT~1067 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9db663de19c147ca9737980aaed59807c590914;p=nethack drum of earthquake - monster portion 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 --- diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 367461e8c..7aaa8b988 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -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 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 -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 diff --git a/src/music.c b/src/music.c index 844fd3834..e45d6e117 100644 --- a/src/music.c +++ b/src/music.c @@ -311,14 +311,20 @@ do_pit: chasm = maketrap(x,y,PIT); if (mtmp) { if(!is_flyer(mtmp->data) && !is_clinger(mtmp->data)) { + boolean m_already_trapped = mtmp->mtrapped; mtmp->mtrapped = 1; - if(cansee(x,y)) - pline("%s falls into a chasm!", Monnam(mtmp)); - else if (!Deaf && humanoid(mtmp->data)) - You_hear("a scream!"); + if (m_already_trapped) { /* suppress messages */ + if(cansee(x,y)) + pline("%s falls into a chasm!", Monnam(mtmp)); + 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); if (mtmp->mhp > 0) - if ((mtmp->mhp -= rnd(6)) <= 0) { + if ((mtmp->mhp -= + rnd(m_already_trapped ? 4 : 6)) <= 0) { if(!cansee(x,y)) pline("It is destroyed!"); else {