kicking door as a giant
Another byproduct of testing boulder pushing. If you kick a closed door while polymorphed into a giant, always succeed in breaking the door instead of maybe getting the Wham! or Thwack! failure result.
This commit is contained in:
@@ -1466,6 +1466,7 @@ when a secret corridor was discovered by wand of secret door detection or by
|
|||||||
wizard mode ^E and converted into a regular corridor, if there was a
|
wizard mode ^E and converted into a regular corridor, if there was a
|
||||||
formerly embedded object at the spot, presence of the object would be
|
formerly embedded object at the spot, presence of the object would be
|
||||||
forgotten unless within range of a light source
|
forgotten unless within range of a light source
|
||||||
|
when poly'd into a giant, kicking a closed door always succeeds in breaking it
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
||||||
|
|||||||
+5
-1
@@ -907,6 +907,8 @@ kick_ouch(coordxy x, coordxy y, const char *kickobjnam)
|
|||||||
staticfn void
|
staticfn void
|
||||||
kick_door(coordxy x, coordxy y, int avrg_attrib)
|
kick_door(coordxy x, coordxy y, int avrg_attrib)
|
||||||
{
|
{
|
||||||
|
boolean doorbuster;
|
||||||
|
|
||||||
if (gm.maploc->doormask == D_ISOPEN || gm.maploc->doormask == D_BROKEN
|
if (gm.maploc->doormask == D_ISOPEN || gm.maploc->doormask == D_BROKEN
|
||||||
|| gm.maploc->doormask == D_NODOOR) {
|
|| gm.maploc->doormask == D_NODOOR) {
|
||||||
kick_dumb(x, y);
|
kick_dumb(x, y);
|
||||||
@@ -920,9 +922,11 @@ kick_door(coordxy x, coordxy y, int avrg_attrib)
|
|||||||
}
|
}
|
||||||
|
|
||||||
exercise(A_DEX, TRUE);
|
exercise(A_DEX, TRUE);
|
||||||
|
doorbuster = Upolyd && is_giant(gy.youmonst.data);
|
||||||
/* door is known to be CLOSED or LOCKED */
|
/* door is known to be CLOSED or LOCKED */
|
||||||
if (rnl(35) < avrg_attrib + (!martial() ? 0 : ACURR(A_DEX))) {
|
if (doorbuster || (rnl(35) < avrg_attrib + (!martial() ? 0 : ACURR(A_DEX)))) {
|
||||||
boolean shopdoor = *in_rooms(x, y, SHOPBASE) ? TRUE : FALSE;
|
boolean shopdoor = *in_rooms(x, y, SHOPBASE) ? TRUE : FALSE;
|
||||||
|
|
||||||
/* break the door */
|
/* break the door */
|
||||||
if (gm.maploc->doormask & D_TRAPPED) {
|
if (gm.maploc->doormask & D_TRAPPED) {
|
||||||
if (flags.verbose)
|
if (flags.verbose)
|
||||||
|
|||||||
Reference in New Issue
Block a user