breaking polyselfless conduct

Because the description seen by the player is "you have never changed
form" rather than "you have never polymorphed yourself", make death by fully
turning into green slime (even if that death is avoided via lifesaving)
violate the conduct.  Suggested by <Someone> 9-Dec-2004.  Likewise, eating
a mimic corpse and temporarily turning yourself into a pile of gold also
violates that conduct.  Mentioned by someone--probably <Someone>, or possibly in
the newsgroup--a long time ago.
This commit is contained in:
nethack.rankin
2005-06-12 04:46:59 +00:00
parent ff16502d67
commit 0f0a85d0bd
3 changed files with 8 additions and 2 deletions

View File

@@ -123,6 +123,7 @@ fatal wish granted by monster left that monster in bones data
clear prompt from screen after ESC is used to abort "In what direction?"
minor interface changes for interactively manipulating autopickup exceptions
chatting with quest leader who was brought back from the dead gave warnings
becoming green slime or mimicking gold violates "never changed form" conduct
Platform- and/or Interface-Specific Fixes

View File

@@ -845,10 +845,12 @@ register int pm;
tmp += 20;
if (youmonst.data->mlet != S_MIMIC && !Unchanging) {
char buf[BUFSZ];
u.uconduct.polyselfs++; /* you're changing form */
You_cant("resist the temptation to mimic %s.",
Hallucination ? "an orange" : "a pile of gold");
#ifdef STEED
/* A pile of gold can't ride. */
/* A pile of gold can't ride. */
if (u.usteed) dismount_steed(DISMOUNT_FELL);
#endif
nomul(-tmp);

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)timeout.c 3.5 2005/01/31 */
/* SCCS Id: @(#)timeout.c 3.5 2005/06/11 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -238,6 +238,7 @@ nh_timeout()
Strcpy(killer.name, "killed by petrification");
}
dealloc_killer(kptr);
/* (unlike sliming, you aren't changing form here) */
done(STONING);
break;
case SLIMED:
@@ -249,6 +250,8 @@ nh_timeout()
Strcpy(killer.name, "turned into green slime");
}
dealloc_killer(kptr);
/* involuntarily break "never changed form" conduct */
u.uconduct.polyselfs++;
done(TURNED_SLIME);
break;
case VOMITING: