more "<mon> appears in a cloud of smoke"

Now that the appear message isn't limited to summoning by demon,
seeing "the Angel of <foo> appears in a cloud of smoke" seems
strange.  Angels weren't covered by the vapor/dust/&c change for
elementals.  Make angels appear in a flash of light.
This commit is contained in:
PatR
2021-06-21 17:47:51 -07:00
parent fa7980c585
commit a9134fd8b9
3 changed files with 31 additions and 18 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.7 mondata.c $NHDT-Date: 1624232729 2021/06/20 23:45:29 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.97 $ */
/* NetHack 3.7 mondata.c $NHDT-Date: 1624322866 2021/06/22 00:47:46 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.98 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2011. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1212,11 +1212,13 @@ on_fire(struct permonst *mptr, struct attack *mattk)
/* similar to on_fire(); creature is summoned in a cloud of <something> */
const char *
msummon_environ(struct permonst *mptr)
msummon_environ(struct permonst *mptr, const char **cloud)
{
const char *what;
int mndx = (mptr->mlet != S_ANGEL) ? monsndx(mptr) : PM_ANGEL;
switch (monsndx(mptr)) {
*cloud = "cloud"; /* default is "cloud of <something>" */
switch (mndx) {
case PM_WATER_DEMON:
case PM_AIR_ELEMENTAL:
case PM_WATER_ELEMENTAL:
@@ -1228,6 +1230,7 @@ msummon_environ(struct permonst *mptr)
what = "steam";
break;
case PM_ENERGY_VORTEX:
*cloud = "shower"; /* "shower of" instead of "cloud of" */
what = "sparks";
break;
case PM_EARTH_ELEMENTAL:
@@ -1235,8 +1238,13 @@ msummon_environ(struct permonst *mptr)
what = "dust";
break;
case PM_FIRE_ELEMENTAL:
*cloud = "burst"; /* "burst of" instead of "cloud of" */
what = "flame";
break;
case PM_ANGEL: /* actually any 'A'-class */
*cloud = "flash"; /* "flash of" instead of "cloud of" */
what = "light";
break;
default:
what = "smoke";
break;
@@ -1254,7 +1262,7 @@ msummon_environ(struct permonst *mptr)
* We're assuming all insects can smell at a distance too.
*/
boolean
olfaction(struct permonst* mdat)
olfaction(struct permonst *mdat)
{
if (is_golem(mdat)
|| mdat->mlet == S_EYE /* spheres */