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
+1
View File
@@ -148,6 +148,7 @@ knights should be able to avenge attacks from covetous monsters
eating various rotten food items would not break vegan/vegetarian conduct eating various rotten food items would not break vegan/vegetarian conduct
unaligned special levels should inherit alignment from the dungeon unaligned special levels should inherit alignment from the dungeon
Samurai quest was missing several doors Samurai quest was missing several doors
Cancelled while polymorphed and Unchanging should provide feedback
Platform- and/or Interface-Specific Fixes Platform- and/or Interface-Specific Fixes
+2 -1
View File
@@ -1496,7 +1496,8 @@ struct obj *otmp;
case AMULET_OF_RESTFUL_SLEEP: /* another bad idea! */ case AMULET_OF_RESTFUL_SLEEP: /* another bad idea! */
HSleeping = FROMOUTSIDE | rnd(100); HSleeping = FROMOUTSIDE | rnd(100);
break; break;
case RIN_SUSTAIN_ABILITY: case RIN_SUSTAIN_ABILITY:
case AMULET_OF_UNCHANGING:
case AMULET_OF_LIFE_SAVING: case AMULET_OF_LIFE_SAVING:
case AMULET_OF_REFLECTION: /* nice try */ case AMULET_OF_REFLECTION: /* nice try */
/* can't eat Amulet of Yendor or fakes, /* can't eat Amulet of Yendor or fakes,
+5 -1
View File
@@ -2213,7 +2213,11 @@ boolean youattack, allow_cancel_kill, self_cancel;
if (Upolyd) { if (Upolyd) {
if ((u.umonnum == PM_CLAY_GOLEM) && !Blind) if ((u.umonnum == PM_CLAY_GOLEM) && !Blind)
pline(writing_vanishes, your); pline(writing_vanishes, your);
rehumanize();
if (Unchanging)
Your("amulet grows hot for a moment, then cools.");
else
rehumanize();
} }
} else { } else {
mdef->mcan = TRUE; mdef->mcan = TRUE;