fix #H4436 - polyself message sequencing bug
for digesting a swallowed critter. The "you kill <critter>" message was left implicit, but if hero gained a level, that made "welcome to level N+1" look like it was issued out of sequence because it's immediate and the "you totally digest <critter>" is delayed. Giving the you-kill-it message explicitly makes things be more verbose but avoids having the new-level message seem out of order.
This commit is contained in:
@@ -320,6 +320,8 @@ monsters can throw cockatrice eggs at hero, but there was no handling for eggs
|
|||||||
when the missile hit an intervening monster
|
when the missile hit an intervening monster
|
||||||
clarify that shape-shifted vampires revert to vampire form when petrified or
|
clarify that shape-shifted vampires revert to vampire form when petrified or
|
||||||
digested; when back in 'V' form, they're vulnerable to such damage
|
digested; when back in 'V' form, they're vulnerable to such damage
|
||||||
|
when poly'd into an engulfer which does digestion damage, a kill resulting in
|
||||||
|
a level gain gave "welcome to level N+1" before "you digest <victim>"
|
||||||
|
|
||||||
|
|
||||||
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository
|
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+7
-5
@@ -1949,11 +1949,13 @@ register struct attack *mattk;
|
|||||||
m_useup(mdef, otmp);
|
m_useup(mdef, otmp);
|
||||||
|
|
||||||
newuhs(FALSE);
|
newuhs(FALSE);
|
||||||
/* Message sequencing BUG: if you gain a level here,
|
/* start_engulf() issues "you engulf <mdef>" above; this
|
||||||
* "welcome to level N+1" is given immediately and
|
used to specify XKILL_NOMSG but we need "you kill <mdef>"
|
||||||
* then "you totally digest <foo>" is given later.
|
in case we're also going to get "welcome to level N+1";
|
||||||
*/
|
"you totally digest <mdef>" will be coming soon (after
|
||||||
xkilled(mdef, XKILL_NOMSG | XKILL_NOCORPSE);
|
several turns) but the level-gain message seems out of
|
||||||
|
order if the kill message is left implicit */
|
||||||
|
xkilled(mdef, XKILL_GIVEMSG | XKILL_NOCORPSE);
|
||||||
if (mdef->mhp > 0) { /* monster lifesaved */
|
if (mdef->mhp > 0) { /* monster lifesaved */
|
||||||
You("hurriedly regurgitate the sizzling in your %s.",
|
You("hurriedly regurgitate the sizzling in your %s.",
|
||||||
body_part(STOMACH));
|
body_part(STOMACH));
|
||||||
|
|||||||
Reference in New Issue
Block a user