sacrificing tune-up (trunk only)
There was code to give feedback if you attempted to offer the Amulet on a regular altar instead of the final high altar, but that code was unreachable; getobj() yielded "that's a silly thing" whenever you picked an amulet while not on the Astral (or recently changed, Sanctum) level. This allows you to try to offer the real or fake Amulet of Yendor on any altar, but they'll only be listed as likely candidates when on the Astral level. Conversely, it no longer lists carried corpses as likely candidates at the Astral high altars; they're still acceptable but not what the hero is supposed to be fiddling with there. Also, allow corpses on the floor to be offered on high altars, fixing a complaint we've gotten a few times over the years. (Unfortunately there's no way to suppress them as likely candidates on the high altars while still allowing them to be sacrified.)
This commit is contained in:
@@ -925,9 +925,12 @@ register const char *let,*word;
|
||||
|| (!strncmp(word, "rub on the stone", 16) &&
|
||||
*let == GEM_CLASS &&
|
||||
otmp->dknown && objects[otyp].oc_name_known)
|
||||
|| (!strcmp(word, "sacrifice") && Is_sanctum(&u.uz) &&
|
||||
(otyp == AMULET_OF_YENDOR || otyp == FAKE_AMULET_OF_YENDOR))
|
||||
/* suppress corpses on astral, amulets elsewhere */
|
||||
|| (!strcmp(word, "sacrifice") &&
|
||||
/* (!astral && amulet) || (astral && !amulet) */
|
||||
(!Is_astralevel(&u.uz) ^ otmp->oclass != AMULET_CLASS))
|
||||
) {
|
||||
/* acceptable but not listed as likely candidate */
|
||||
foo--;
|
||||
allowall = TRUE;
|
||||
*ap++ = otmp->invlet;
|
||||
|
||||
Reference in New Issue
Block a user