]> granicus.if.org Git - nethack/commitdiff
stone to flesh historic statues
authornethack.allison <nethack.allison>
Wed, 7 Aug 2002 10:47:53 +0000 (10:47 +0000)
committernethack.allison <nethack.allison>
Wed, 7 Aug 2002 10:47:53 +0000 (10:47 +0000)
doc/fixes34.1
src/trap.c

index a112e16cec8759ec2b33b2174d4bf504913dc947..d316a1b786502ef06690035e347e8930e976d0bb 100644 (file)
@@ -185,11 +185,13 @@ remove levitation boots over a portal, the portal teleport is delayed until
 armor vs cursed two-handed weapon anomalies: with 'T', couldn't remove armor,
        but with 'A', could remove it, and with 'W', could put it on
 don't print ape data.base description for other words that end in "ape"
-prevent crash after animating a statue via stone to flesh by avoiding use
+prevent crash after animating a statue via stone_to_flesh by avoiding use
        of the obj in newsym() after it was deleted
 print "magic spreads" message when eating ring of increase damage, etc.
 grammar tid: "The looking glass miss the <monster>."
 fix wishing for "looking glass" and "<color> glass"
+Archeologists suffer same alignment penalty for statue destruction by
+       stone_to_flesh as they do by other means of statue destruction
 
 
 Platform- and/or Interface-Specific Fixes
index dbbf986e4562b8107800d4cf46a52d81e5107714..ce4da4cd2097cd5d5d93abbc3fdf61c6d5371675 100644 (file)
@@ -404,6 +404,7 @@ int *fail_reason;
        struct monst *mon = 0;
        struct obj *item;
        coord cc;
+       boolean historic = (Role_if(PM_ARCHEOLOGIST) && !flags.mon_moving && statue->spe);
 
        if (statue->oxlth && statue->oattached == OATTACHED_MONST) {
            cc.x = x,  cc.y = y;
@@ -443,10 +444,14 @@ int *fail_reason;
        /* mimic statue becomes seen mimic; other hiders won't be hidden */
        if (mon->m_ap_type) seemimic(mon);
        else mon->mundetected = FALSE;
-       if ((x == u.ux && y == u.uy) || cause == ANIMATE_SPELL)
+       if ((x == u.ux && y == u.uy) || cause == ANIMATE_SPELL) {
            pline_The("statue %s!",
                canspotmon(mon) ? "comes to life" : "disappears");
-       else if (cause == ANIMATE_SHATTER)
+               if (historic) {
+                   You_feel("guilty that the historic statue is now gone.");
+                   adjalign(-1);
+               }
+       } else if (cause == ANIMATE_SHATTER)
            pline("Instead of shattering, the statue suddenly %s!",
                canspotmon(mon) ? "comes to life" : "disappears");
        else /* cause == ANIMATE_NORMAL */