consistent sokoban guilt for polymorphing boulders
Discussed a while back in the newsgroup. casting Stone to Flesh on a Sokoban boulder would affect luck, but simply polymorphing a boulder would not.
This commit is contained in:
@@ -1200,6 +1200,8 @@ poly_obj(obj, id)
|
|||||||
boolean can_merge = (id == STRANGE_OBJECT);
|
boolean can_merge = (id == STRANGE_OBJECT);
|
||||||
int obj_location = obj->where;
|
int obj_location = obj->where;
|
||||||
|
|
||||||
|
if (obj->otyp == BOULDER && In_sokoban(&u.uz))
|
||||||
|
change_luck(-1); /* Sokoban guilt */
|
||||||
if (id == STRANGE_OBJECT) { /* preserve symbol */
|
if (id == STRANGE_OBJECT) { /* preserve symbol */
|
||||||
int try_limit = 3;
|
int try_limit = 3;
|
||||||
/* Try up to 3 times to make the magic-or-not status of
|
/* Try up to 3 times to make the magic-or-not status of
|
||||||
@@ -1603,8 +1605,6 @@ struct obj *obj, *otmp;
|
|||||||
case ROCK_CLASS: /* boulders and statues */
|
case ROCK_CLASS: /* boulders and statues */
|
||||||
if (obj->otyp == BOULDER) {
|
if (obj->otyp == BOULDER) {
|
||||||
obj = poly_obj(obj, HUGE_CHUNK_OF_MEAT);
|
obj = poly_obj(obj, HUGE_CHUNK_OF_MEAT);
|
||||||
if (In_sokoban(&u.uz))
|
|
||||||
change_luck(-1); /* Sokoban guilt */
|
|
||||||
goto smell;
|
goto smell;
|
||||||
} else if (obj->otyp == STATUE) {
|
} else if (obj->otyp == STATUE) {
|
||||||
xchar oox, ooy;
|
xchar oox, ooy;
|
||||||
|
|||||||
Reference in New Issue
Block a user