#H2441 - Snow White (trunk only)
<email deleted> suggested that eating a cursed apple give a Snow White reference. The apple eaten by Snow White is described as poisoned, but cursed seems close enough. Fall asleep for 20..30 turns if you eat a cursed apple when you lack sleep resistance.
This commit is contained in:
@@ -1759,11 +1759,15 @@ struct obj *otmp;
|
|||||||
pline("My, that was a %s %s!",
|
pline("My, that was a %s %s!",
|
||||||
Hallucination ? "primo" : "yummy",
|
Hallucination ? "primo" : "yummy",
|
||||||
singular(otmp, xname));
|
singular(otmp, xname));
|
||||||
|
else if (otmp->otyp == APPLE && otmp->cursed &&
|
||||||
|
!Sleep_resistance)
|
||||||
|
; /* skip core joke; feedback deferred til fpostfx() */
|
||||||
else
|
else
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
if (otmp->otyp == APPLE || otmp->otyp == PEAR) {
|
if (otmp->otyp == APPLE || otmp->otyp == PEAR) {
|
||||||
if (!Hallucination) pline("Core dumped.");
|
if (!Hallucination) {
|
||||||
else {
|
pline("Core dumped.");
|
||||||
|
} else {
|
||||||
/* This is based on an old Usenet joke, a fake a.out manual page */
|
/* This is based on an old Usenet joke, a fake a.out manual page */
|
||||||
int x = rnd(100);
|
int x = rnd(100);
|
||||||
if (x <= 75)
|
if (x <= 75)
|
||||||
@@ -2121,6 +2125,20 @@ register struct obj *otmp;
|
|||||||
if (Vomiting && !otmp->cursed)
|
if (Vomiting && !otmp->cursed)
|
||||||
make_vomiting(0L, TRUE);
|
make_vomiting(0L, TRUE);
|
||||||
break;
|
break;
|
||||||
|
case APPLE:
|
||||||
|
if (otmp->cursed && !Sleep_resistance) {
|
||||||
|
/* Snow White; 'poisoned' applies to [a subset of] weapons,
|
||||||
|
not food, so we substitute cursed; fortunately our hero
|
||||||
|
won't have to wait for a prince to be rescued/revived */
|
||||||
|
if (Race_if(PM_DWARF) && Hallucination)
|
||||||
|
verbalize("Heigh-ho, ho-hum, I think I'll skip work today.");
|
||||||
|
else if (Deaf || !flags.acoustics)
|
||||||
|
You("fall asleep.");
|
||||||
|
else
|
||||||
|
You_hear("sinister laughter as you fall asleep...");
|
||||||
|
fall_asleep(-rn1(11, 20), TRUE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2222,6 +2240,12 @@ struct obj *otmp;
|
|||||||
if (yn_function(buf,ynchars,'n')=='n') return 1;
|
if (yn_function(buf,ynchars,'n')=='n') return 1;
|
||||||
else return 2;
|
else return 2;
|
||||||
}
|
}
|
||||||
|
if (otmp->otyp == APPLE && otmp->cursed && !Sleep_resistance) {
|
||||||
|
/* causes sleep, for long enough to be dangerous */
|
||||||
|
Sprintf(buf, "%s like %s might have been poisoned. %s",
|
||||||
|
foodsmell, it_or_they, eat_it_anyway);
|
||||||
|
return (yn_function(buf, ynchars, 'n') == 'n') ? 1 : 2;
|
||||||
|
}
|
||||||
if (cadaver && !vegetarian(&mons[mnum]) &&
|
if (cadaver && !vegetarian(&mons[mnum]) &&
|
||||||
!u.uconduct.unvegetarian && Role_if(PM_MONK)) {
|
!u.uconduct.unvegetarian && Role_if(PM_MONK)) {
|
||||||
Sprintf(buf, "%s unhealthy. %s",
|
Sprintf(buf, "%s unhealthy. %s",
|
||||||
|
|||||||
Reference in New Issue
Block a user