summon nasties feedback

Reported by entrez:  when a monster casts the "summon nasties" spell,
double feedback was given.  First it produced "a <monster> appears"
for each visible monster and then "<monsters> appear from nowhere" at
the end.  The latter would have been ok at the begining but made it
seem as if even more monsters were arriving when given at the end.

Skip the monster-by-monster feedback and just give the summary at the
end.  That's enough information for a blind player to know to check
the map for new monsters.

When summon nasties is performed as randomly chosen harassment after
killing the Wizard, it still gives the enumerated "a <monster> appears"
feedback but does not give the "from nowhere" message at the end.
This commit is contained in:
PatR
2022-08-31 16:34:56 -07:00
parent 2767f4b302
commit 3862979e88

View File

@@ -563,6 +563,9 @@ nasty(struct monst *summoner)
coord bypos;
int i, j, count, census, tmp, makeindex,
s_cls, m_cls, difcap, trylimit, castalign;
/* when a monster casts the "summon nasties" spell, it gives feedback;
when random post-Wizard harassment casts that, we give feedback */
unsigned mmflags = summoner ? MM_NOMSG : NO_MM_FLAGS;
#define MAXNASTIES 10 /* more than this can be created */
@@ -623,7 +626,7 @@ nasty(struct monst *summoner)
/* this honors genocide but overrides extinction; it ignores
inside-hell-only (G_HELL) & outside-hell-only (G_NOHELL) */
if ((mtmp = makemon(&mons[makeindex], bypos.x, bypos.y,
NO_MM_FLAGS)) != 0) {
mmflags)) != 0) {
mtmp->msleeping = mtmp->mpeaceful = mtmp->mtame = 0;
set_malign(mtmp);
} else {
@@ -631,8 +634,7 @@ nasty(struct monst *summoner)
unlike direct choice, not forced to be hostile [why?];
limit spellcasters to inhibit chain summoning */
if ((mtmp = makemon((struct permonst *) 0,
bypos.x, bypos.y,
MM_NOMSG)) != 0) {
bypos.x, bypos.y, mmflags)) != 0) {
m_cls = mtmp->data->mlet;
if ((difcap > 0 && mtmp->data->difficulty >= difcap
&& attacktype(mtmp->data, AT_MAGC))