diff --git a/doc/fixes35.0 b/doc/fixes35.0 index 153584242..9ea39a681 100644 --- a/doc/fixes35.0 +++ b/doc/fixes35.0 @@ -342,6 +342,8 @@ when reading an unknown scroll and learning it, discovery of teleporation was too late if hero happened to land on another scroll of teleportation using an unlocking tool on a closed door which was actually a mimic reported that there was no door to unlock instead of exposing the mimic +using an unlocking tool on a boulder that was a mimic in a Sokoban doorway + successfully unlocked the underlying door without exposing mimic Platform- and/or Interface-Specific Fixes diff --git a/src/lock.c b/src/lock.c index 0fce4639c..60fb4e8c1 100644 --- a/src/lock.c +++ b/src/lock.c @@ -407,6 +407,17 @@ pick_lock(pick) /* "The door actually was a !" */ stumble_onto_mimic(mtmp); return PICKLOCK_LEARNED_SOMETHING; + /* mimic-as-boulder on last Sokoban level */ + } else if (mtmp && mtmp->m_ap_type == M_AP_OBJECT && + mtmp->mappearance == BOULDER) { + if (Blind) /* by touch */ + /* "Wait! That's a monster!" */ + stumble_onto_mimic(mtmp); + else if (IS_DOOR(door->typ)) + pline("That door is blocked."); + else + You("see no door there."); + return PICKLOCK_LEARNED_SOMETHING; } if(!IS_DOOR(door->typ)) { if (is_drawbridge_wall(cc.x,cc.y) >= 0)