Add vault guards to undisplaceable monsters
This commit is contained in:
@@ -187,6 +187,14 @@ struct monst {
|
|||||||
|| (mon)->cham == PM_VLAD_THE_IMPALER)
|
|| (mon)->cham == PM_VLAD_THE_IMPALER)
|
||||||
#define vampshifted(mon) (is_vampshifter((mon)) && !is_vampire((mon)->data))
|
#define vampshifted(mon) (is_vampshifter((mon)) && !is_vampire((mon)->data))
|
||||||
|
|
||||||
|
/* monsters which cannot be displaced: priests, shopkeepers, vault guards,
|
||||||
|
Oracle, quest leader */
|
||||||
|
#define mundisplaceable(mon) ((mon)->ispriest \
|
||||||
|
|| (mon)->isshk \
|
||||||
|
|| (mon)->isgd \
|
||||||
|
|| (mon)->data == &mons[PM_ORACLE] \
|
||||||
|
|| (mon)->m_id == g.quest_status.leader_m_id)
|
||||||
|
|
||||||
/* mimic appearances that block vision/light */
|
/* mimic appearances that block vision/light */
|
||||||
#define is_lightblocker_mappear(mon) \
|
#define is_lightblocker_mappear(mon) \
|
||||||
(is_obj_mappear(mon, BOULDER) \
|
(is_obj_mappear(mon, BOULDER) \
|
||||||
|
|||||||
+1
-4
@@ -1843,10 +1843,7 @@ domove_core()
|
|||||||
} else if (mtmp->mpeaceful
|
} else if (mtmp->mpeaceful
|
||||||
&& (!goodpos(u.ux0, u.uy0, mtmp, 0)
|
&& (!goodpos(u.ux0, u.uy0, mtmp, 0)
|
||||||
|| t_at(u.ux0, u.uy0) != NULL
|
|| t_at(u.ux0, u.uy0) != NULL
|
||||||
|| mtmp->ispriest
|
|| mundisplaceable(mtmp))) {
|
||||||
|| mtmp->isshk
|
|
||||||
|| mtmp->data == &mons[PM_ORACLE]
|
|
||||||
|| mtmp->m_id == g.quest_status.leader_m_id)) {
|
|
||||||
/* displacing peaceful into unsafe or trapped space, or trying to
|
/* displacing peaceful into unsafe or trapped space, or trying to
|
||||||
* displace quest leader, Oracle, shopkeeper, or priest */
|
* displace quest leader, Oracle, shopkeeper, or priest */
|
||||||
You("stop. %s doesn't want to swap places.",
|
You("stop. %s doesn't want to swap places.",
|
||||||
|
|||||||
Reference in New Issue
Block a user