U979 - mimic mimicking a boulder on Sokobon hole
On mazelike levels, mimics will mimic either boulders or statues (of giant ants, as it turns out). However, it does not make sense to mimic a boulder on a hole or even a pit, since boulders would typically fall in. Also, statues are not typical objects in Sokoban. So, skip statue special case in Sokoban and always avoid the forced emulation of a boulder when on a trap location outside a room. This is a bit drastic, but I couldn't think of an argument for adding the code to do this only for pits, holes, et al, which are the most likely traps outside rooms anyway.
This commit is contained in:
@@ -69,6 +69,7 @@ a slow-moving monster hidden under a rotting corpse was not immediately
|
||||
displayed when the corpse rotted away
|
||||
mimic that ends up on the rogue level should not mimic a closed door
|
||||
polymorphed or shapechanged monster sometimes got erroneous hit points
|
||||
mimic should not mimic a boulder while on a pit or hole location
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
@@ -1695,10 +1695,10 @@ register struct monst *mtmp;
|
||||
|
||||
if(!mtmp->minvis || See_invisible)
|
||||
block_point(mx,my); /* vision */
|
||||
} else if (level.flags.is_maze_lev && rn2(2)) {
|
||||
} else if (level.flags.is_maze_lev && !In_sokoban(&u.uz) && rn2(2)) {
|
||||
ap_type = M_AP_OBJECT;
|
||||
appear = STATUE;
|
||||
} else if (roomno < 0) {
|
||||
} else if (roomno < 0 && !t_at(mx, my)) {
|
||||
ap_type = M_AP_OBJECT;
|
||||
appear = BOULDER;
|
||||
if(!mtmp->minvis || See_invisible)
|
||||
|
||||
Reference in New Issue
Block a user