Make HoOA confuse the hero, summon erinyes
A helmet psychically reaching inside your head and twiddling knobs in your brain must be a confusing experience. And the instant rejection of your god (not to mention the vow that you made to find the amulet for them), perhaps on the very cusp of their ascendance over the other gods, is sort of the ultimate oathbreaking, so it interests the erinyes.
This commit is contained in:
@@ -1426,6 +1426,7 @@ extern int mbirth_limit(int);
|
|||||||
extern void mkmonmoney(struct monst *, long) NONNULLARG1;
|
extern void mkmonmoney(struct monst *, long) NONNULLARG1;
|
||||||
extern int bagotricks(struct obj *, boolean, int *);
|
extern int bagotricks(struct obj *, boolean, int *);
|
||||||
extern boolean propagate(int, boolean, boolean);
|
extern boolean propagate(int, boolean, boolean);
|
||||||
|
extern void summon_furies(int);
|
||||||
|
|
||||||
/* ### mcastu.c ### */
|
/* ### mcastu.c ### */
|
||||||
|
|
||||||
|
|||||||
+6
-5
@@ -1257,18 +1257,19 @@ uchangealign(int newalign,
|
|||||||
(u.ualign.type != oldalign) ? "sudden " : "");
|
(u.ualign.type != oldalign) ? "sudden " : "");
|
||||||
} else {
|
} else {
|
||||||
/* putting on or taking off a helm of opposite alignment */
|
/* putting on or taking off a helm of opposite alignment */
|
||||||
|
u.ualign.type = (aligntyp) newalign;
|
||||||
if (reason == 1) {
|
if (reason == 1) {
|
||||||
|
Your("mind oscillates %s.", Hallucination ? "wildly" : "briefly");
|
||||||
|
make_confused(rn1(2, 3), FALSE);
|
||||||
|
summon_furies(Is_astralevel(&u.uz) ? 0 : 1);
|
||||||
/* don't livelog taking it back off */
|
/* don't livelog taking it back off */
|
||||||
livelog_printf(LL_ALIGNMENT, "used a helm to turn %s",
|
livelog_printf(LL_ALIGNMENT, "used a helm to turn %s",
|
||||||
aligns[1 - newalign].adj);
|
aligns[1 - newalign].adj);
|
||||||
}
|
} else if (reason == 2) {
|
||||||
u.ualign.type = (aligntyp) newalign;
|
|
||||||
if (reason == 1)
|
|
||||||
Your("mind oscillates %s.", Hallucination ? "wildly" : "briefly");
|
|
||||||
else if (reason == 2)
|
|
||||||
Your("mind is %s.", Hallucination
|
Your("mind is %s.", Hallucination
|
||||||
? "much of a muchness"
|
? "much of a muchness"
|
||||||
: "back in sync with your body");
|
: "back in sync with your body");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (u.ualign.type != oldalign) {
|
if (u.ualign.type != oldalign) {
|
||||||
u.ualign.record = 0; /* slate is wiped clean */
|
u.ualign.record = 0; /* slate is wiped clean */
|
||||||
|
|||||||
@@ -2452,4 +2452,15 @@ bagotricks(
|
|||||||
return moncount;
|
return moncount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* create some or all remaining erinyes around the player */
|
||||||
|
void
|
||||||
|
summon_furies(int limit) /* number to create, or 0 to create until extinct */
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
while (mk_gen_ok(PM_ERINYS, G_GONE, 0U) && (i < limit || !limit)) {
|
||||||
|
makemon(&mons[PM_ERINYS], u.ux, u.uy, MM_ADJACENTOK | MM_NOWAIT);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*makemon.c*/
|
/*makemon.c*/
|
||||||
|
|||||||
Reference in New Issue
Block a user