fix issue #1434 - engulfed gas spore explosion

Issue reported by Umbire:  a gas spore that got swallowed and killed
didn't die but exploded anyway, with the explosion affecting the map
instead of being contained in the swallower.

There was code to handle that but it wasn't being executed.  This fix
feels unclean but seems to work.

I couldn't reproduce the survival of the gas spore but since that
isn't wanted I won't worry about it.

Fixes #1434
This commit is contained in:
PatR
2025-08-05 13:30:17 -07:00
parent 5fe746a0d6
commit 695c6ef3ac
7 changed files with 38 additions and 9 deletions

View File

@@ -5005,6 +5005,7 @@ gulpum(struct monst *mdef, struct attack *mattk)
"you totally digest <mdef>" will be coming soon (after
several turns) but the level-gain message seems out of
order if the kill message is left implicit */
gm.mswallower = &gy.youmonst;
xkilled(mdef, XKILL_GIVEMSG | XKILL_NOCORPSE);
if (!DEADMONSTER(mdef)) { /* monster lifesaved */
You("hurriedly regurgitate the sizzling in your %s.",
@@ -5045,6 +5046,7 @@ gulpum(struct monst *mdef, struct attack *mattk)
} else
exercise(A_CON, TRUE);
}
gm.mswallower = (struct monst *) 0;
end_engulf();
return M_ATTK_DEF_DIED;
case AD_PHYS: