cancellation, polymorphed and unchanging

<Someone> reported that a wand of cancellation would ignore Unchanging,
noting the case of cancelling yourself while polymorphed into a stone golem.
He thought the wand should win, killing the player.  I felt otherwise,
since the case he specified passes the flag allow_cancel_kill == FALSE.
This commit is contained in:
cohrs
2002-07-07 23:25:43 +00:00
parent c03c25b045
commit e88a6182dd
3 changed files with 8 additions and 2 deletions

View File

@@ -1496,7 +1496,8 @@ struct obj *otmp;
case AMULET_OF_RESTFUL_SLEEP: /* another bad idea! */
HSleeping = FROMOUTSIDE | rnd(100);
break;
case RIN_SUSTAIN_ABILITY:
case RIN_SUSTAIN_ABILITY:
case AMULET_OF_UNCHANGING:
case AMULET_OF_LIFE_SAVING:
case AMULET_OF_REFLECTION: /* nice try */
/* can't eat Amulet of Yendor or fakes,

View File

@@ -2213,7 +2213,11 @@ boolean youattack, allow_cancel_kill, self_cancel;
if (Upolyd) {
if ((u.umonnum == PM_CLAY_GOLEM) && !Blind)
pline(writing_vanishes, your);
rehumanize();
if (Unchanging)
Your("amulet grows hot for a moment, then cools.");
else
rehumanize();
}
} else {
mdef->mcan = TRUE;