vampshifters vs closed doors
If a vampire in fog cloud form moves under a closed door and then before moving further gets killed and revives in vampire form, destroy the door instead of moving the vampire to a nearby open spot (which might be a distant spot if the map is crowded). If the door is trapped, explode the trap. That will damage the vampire but usually not by enough to kill it. This probably ought to be generalized to be done for any shape change at a closed location but I ran out of gas.
This commit is contained in:
@@ -1491,9 +1491,9 @@ postmov(
|
||||
&& amorphous(ptr)) {
|
||||
if (flags.verbose && canseemon(mtmp))
|
||||
pline_mon(mtmp, "%s %s under the door.", YMonnam(mtmp),
|
||||
(ptr == &mons[PM_FOG_CLOUD]
|
||||
|| ptr->mlet == S_LIGHT) ? "flows" : "oozes");
|
||||
} else if (here->doormask & D_LOCKED && can_unlock) {
|
||||
(ptr == &mons[PM_FOG_CLOUD]
|
||||
|| ptr->mlet == S_LIGHT) ? "flows" : "oozes");
|
||||
} else if ((here->doormask & D_LOCKED) != 0 && can_unlock) {
|
||||
/* like the vampshift hack, there are sequencing
|
||||
issues when the monster is moved to the door's spot
|
||||
first then door handling plus feedback comes after */
|
||||
@@ -1532,7 +1532,7 @@ postmov(
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (here->doormask & (D_LOCKED | D_CLOSED)) {
|
||||
} else if ((here->doormask & (D_LOCKED | D_CLOSED)) != 0) {
|
||||
/* mfndpos guarantees this must be a doorbuster */
|
||||
unsigned mask;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user