This patch fixes players not being assigned "guilt" for wishing for boulders in Sokoban or carrying them into Sokoban when polymorphed into a giant. I hope this fix helps. Let me know what you think! Chris Becker (topher@csh.rit.edu) More bug fixes and patches can be found at http://www.csh.rit.edu/~topher/nethack diff -aur orig-nethack-3.4.3/src/do.c nethack-3.4.3/src/do.c --- orig-nethack-3.4.3/src/do.c 2003-12-07 18:39:14.000000000 -0500 +++ nethack-3.4.3/src/do.c 2004-01-05 23:38:38.000000000 -0500 @@ -1347,6 +1347,23 @@ final_level(); else onquest(); + + /* Guilt for carrying boulders into Sokoban + * - Chris Becker (topher@csh.rit.edu) + */ + if (In_sokoban(&u.uz) && !In_sokoban(&u.uz0) && is_giant(youmonst.data)) { + struct obj *obj; + + for(obj = invent; obj; obj = obj->nobj) { + if (obj->otyp == BOULDER) { + change_luck(-1); /* Sokoban guilt */ + break; /* only penalizing once is consistent with + scroll of earth only penalizing once per + boulder created */ + } + } + } + assign_level(&u.uz0, &u.uz); /* reset u.uz0 */ #ifdef INSURANCE diff -aur orig-nethack-3.4.3/src/zap.c nethack-3.4.3/src/zap.c --- orig-nethack-3.4.3/src/zap.c 2003-12-07 18:39:14.000000000 -0500 +++ nethack-3.4.3/src/zap.c 2004-01-05 23:31:49.000000000 -0500 @@ -4120,6 +4120,13 @@ return; } + /* Guilt for wishing for a boulder in Sokoban + * - Chris Becker (topher@csh.rit.edu) + */ + if (In_sokoban(&u.uz) && otmp->otyp == BOULDER) + change_luck(-1); + + /* KMH, conduct */ u.uconduct.wishes++;