*** a/src/end.c 2003-12-07 18:39:13.000000000 -0500 --- b/src/end.c 2011-08-11 17:43:51.538196341 -0400 *************** *** 424,430 **** Sick = 0; } if (how == CHOKING) init_uhunger(); ! nomovemsg = "You survived that attempt on your life."; flags.move = 0; if(multi > 0) multi = 0; else multi = -1; if(u.utrap && u.utraptype == TT_LAVA) u.utrap = 0; --- 424,433 ---- Sick = 0; } if (how == CHOKING) init_uhunger(); ! if (how == ESCAPED && Is_astralevel(&u.uz)) ! nomovemsg = "You survived that attempt on your mortality."; ! else ! nomovemsg = "You survived that attempt on your life."; flags.move = 0; if(multi > 0) multi = 0; else multi = -1; if(u.utrap && u.utraptype == TT_LAVA) u.utrap = 0; *************** *** 570,576 **** killer = kilbuf; if (how < PANICKED) u.umortality++; ! if (Lifesaved && (how <= GENOCIDED)) { pline("But wait..."); makeknown(AMULET_OF_LIFE_SAVING); Your("medallion %s!", --- 573,579 ---- killer = kilbuf; if (how < PANICKED) u.umortality++; ! if (Lifesaved && ((how <= GENOCIDED) || ((how == ESCAPED || how == ASCENDED) && Is_astralevel(&u.uz)))) { pline("But wait..."); makeknown(AMULET_OF_LIFE_SAVING); Your("medallion %s!", *** a/src/pray.c 2003-12-07 18:39:13.000000000 -0500 --- b/src/pray.c 2011-08-11 17:38:27.527721113 -0400 *************** *** 1269,1296 **** return 1; } else { /* The final Test. Did you win? */ ! if(uamul == otmp) Amulet_off(); ! u.uevent.ascended = 1; ! if(carried(otmp)) useup(otmp); /* well, it's gone now */ ! else useupf(otmp, 1L); You("offer the Amulet of Yendor to %s...", a_gname()); if (u.ualign.type != altaralign) { /* And the opposing team picks you up and carries you off on their shoulders */ ! adjalign(-99); ! pline("%s accepts your gift, and gains dominion over %s...", ! a_gname(), u_gname()); ! pline("%s is enraged...", u_gname()); ! pline("Fortunately, %s permits you to live...", a_gname()); ! pline("A cloud of %s smoke surrounds you...", ! hcolor((const char *)"orange")); ! done(ESCAPED); } else { /* super big win */ adjalign(10); ! pline("An invisible choir sings, and you are bathed in radiance..."); godvoice(altaralign, "Congratulations, mortal!"); display_nhwindow(WIN_MESSAGE, FALSE); ! verbalize("In return for thy service, I grant thee the gift of Immortality!"); You("ascend to the status of Demigod%s...", flags.female ? "dess" : ""); done(ASCENDED); --- 1269,1313 ---- return 1; } else { /* The final Test. Did you win? */ ! if (!Lifesaved || u.ualign.type == altaralign) { ! if(uamul == otmp) Amulet_off(); ! u.uevent.ascended = 1; ! if(carried(otmp)) useup(otmp); /* well, it's gone now */ ! else useupf(otmp, 1L); ! } You("offer the Amulet of Yendor to %s...", a_gname()); if (u.ualign.type != altaralign) { /* And the opposing team picks you up and carries you off on their shoulders */ ! if (Lifesaved) { ! You_feel("this may be a bad idea."); ! pline("Wisps of %s smoke begin to surround you...", ! hcolor((const char *)"orange")); ! done(ESCAPED); ! pline("You feel a familiar weight %s!", "in your pack"); ! godvoice(altaralign, "Try again, fool!"); ! change_luck(-3); ! return (1); ! } else { ! adjalign(-99); ! pline("%s accepts your gift, and gains dominion over %s...", ! a_gname(), u_gname()); ! pline("%s is enraged...", u_gname()); ! pline("Fortunately, %s permits you to live...", a_gname()); ! pline("A cloud of %s smoke surrounds you...", ! hcolor((const char *)"orange")); ! done(ESCAPED); ! } } else { /* super big win */ adjalign(10); ! if (Lifesaved) { ! done(ASCENDED); ! You("sense that %s is greatly amused.", u_gname()); ! } ! pline("An invisible choir sings, and you are bathed in radiance..."); godvoice(altaralign, "Congratulations, mortal!"); display_nhwindow(WIN_MESSAGE, FALSE); ! verbalize("In return for thy service, I grant thee the gift of Immortality!"); You("ascend to the status of Demigod%s...", flags.female ? "dess" : ""); done(ASCENDED);