Skip to content

Commit

Permalink
Make HoOA confuse the hero, summon erinyes
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
entrez authored and PatR committed Jan 11, 2024
1 parent f930a12 commit 0c9e348
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 5 deletions.
1 change: 1 addition & 0 deletions include/extern.h
Original file line number Diff line number Diff line change
Expand Up @@ -1426,6 +1426,7 @@ extern int mbirth_limit(int);
extern void mkmonmoney(struct monst *, long) NONNULLARG1;
extern int bagotricks(struct obj *, boolean, int *);
extern boolean propagate(int, boolean, boolean);
extern void summon_furies(int);

/* ### mcastu.c ### */

Expand Down
11 changes: 6 additions & 5 deletions src/attrib.c
Original file line number Diff line number Diff line change
Expand Up @@ -1257,18 +1257,19 @@ uchangealign(int newalign,
(u.ualign.type != oldalign) ? "sudden " : "");
} else {
/* putting on or taking off a helm of opposite alignment */
u.ualign.type = (aligntyp) newalign;
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 */
livelog_printf(LL_ALIGNMENT, "used a helm to turn %s",
aligns[1 - newalign].adj);
}
u.ualign.type = (aligntyp) newalign;
if (reason == 1)
Your("mind oscillates %s.", Hallucination ? "wildly" : "briefly");
else if (reason == 2)
} else if (reason == 2) {
Your("mind is %s.", Hallucination
? "much of a muchness"
: "back in sync with your body");
}
}
if (u.ualign.type != oldalign) {
u.ualign.record = 0; /* slate is wiped clean */
Expand Down
11 changes: 11 additions & 0 deletions src/makemon.c
Original file line number Diff line number Diff line change
Expand Up @@ -2452,4 +2452,15 @@ bagotricks(
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*/

0 comments on commit 0c9e348

Please sign in to comment.