more hallucinatory genocide
Reorganize the recent livelog/#chronicle fix.
This commit is contained in:
20
src/read.c
20
src/read.c
@@ -2860,20 +2860,24 @@ do_genocide(
|
|||||||
}
|
}
|
||||||
|
|
||||||
which = "all ";
|
which = "all ";
|
||||||
Strcpy(buf, ptr->pmnames[NEUTRAL]); /* standard singular */
|
Strcpy(realbuf, ptr->pmnames[NEUTRAL]); /* standard singular */
|
||||||
if ((ptr->geno & G_UNIQ) && ptr != &mons[PM_HIGH_CLERIC])
|
|
||||||
which = !type_is_pname(ptr) ? "the " : "";
|
|
||||||
Strcpy(realbuf, buf); /* save true name, to avoid Hallu for livelog */
|
|
||||||
if (Hallucination) {
|
if (Hallucination) {
|
||||||
|
/* hallucinate hero's type */
|
||||||
if (Upolyd) {
|
if (Upolyd) {
|
||||||
Strcpy(buf, pmname(gy.youmonst.data,
|
Strcpy(buf, pmname(gy.youmonst.data,
|
||||||
flags.female ? FEMALE : MALE));
|
flags.female ? FEMALE : MALE));
|
||||||
} else {
|
} else {
|
||||||
Strcpy(buf, (flags.female && gu.urole.name.f) ? gu.urole.name.f
|
Strcpy(buf, (flags.female && gu.urole.name.f) ? gu.urole.name.f
|
||||||
: gu.urole.name.m);
|
: gu.urole.name.m);
|
||||||
buf[0] = lowc(buf[0]);
|
buf[0] = lowc(buf[0]);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
/* use actual type */
|
||||||
|
Strcpy(buf, realbuf);
|
||||||
|
if ((ptr->geno & G_UNIQ) && ptr != &mons[PM_HIGH_CLERIC])
|
||||||
|
which = !type_is_pname(ptr) ? "the " : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (how & REALLY) {
|
if (how & REALLY) {
|
||||||
if (!num_genocides())
|
if (!num_genocides())
|
||||||
livelog_printf(LL_CONDUCT | LL_GENOCIDE,
|
livelog_printf(LL_CONDUCT | LL_GENOCIDE,
|
||||||
@@ -2902,13 +2906,13 @@ do_genocide(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Polymorphed characters will die as soon as they're rehumanized.
|
/* Polymorphed characters will die as soon as they're rehumanized.
|
||||||
*/
|
KMH -- Unchanging prevents rehumanization. */
|
||||||
/* KMH -- Unchanging prevents rehumanization */
|
|
||||||
if (Upolyd && ptr != gy.youmonst.data) {
|
if (Upolyd && ptr != gy.youmonst.data) {
|
||||||
delayed_killer(POLYMORPH, svk.killer.format, svk.killer.name);
|
delayed_killer(POLYMORPH, svk.killer.format, svk.killer.name);
|
||||||
You_feel("%s inside.", udeadinside());
|
You_feel("%s inside.", udeadinside());
|
||||||
} else
|
} else {
|
||||||
done(GENOCIDED);
|
done(GENOCIDED);
|
||||||
|
}
|
||||||
} else if (ptr == gy.youmonst.data) {
|
} else if (ptr == gy.youmonst.data) {
|
||||||
rehumanize();
|
rehumanize();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user