fix B14003 - "bashing" with mounted polearms
Attacking with a polearm while mounted behaves differently than while on foot, so make mounting and dismounting when wielding one adjust weapon status accordingly. Don't give a bashing message on first attack if you mount with a polearm already wielded; do give one on your next hand-to-hand attack if you just dismounted with one wielded.
This commit is contained in:
@@ -286,6 +286,8 @@ stinking clouds in bones files do not get their ttl set reasonably
|
|||||||
stinking clouds in bones files may incorrectly set player_inside
|
stinking clouds in bones files may incorrectly set player_inside
|
||||||
breaking wand of digging on a drawbridge shouldn't dig/hole a pit in the bridge
|
breaking wand of digging on a drawbridge shouldn't dig/hole a pit in the bridge
|
||||||
avoid mimicking gold when the character has the Unchanging attribute
|
avoid mimicking gold when the character has the Unchanging attribute
|
||||||
|
handle polearm wielded prior to mounting the same as one wielded while mounted,
|
||||||
|
and one still used after dismounting like one wielded while not mounted
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
21
src/steed.c
21
src/steed.c
@@ -339,6 +339,8 @@ mount_steed(mtmp, force)
|
|||||||
pline("%s magically floats up!", Monnam(mtmp));
|
pline("%s magically floats up!", Monnam(mtmp));
|
||||||
You("mount %s.", mon_nam(mtmp));
|
You("mount %s.", mon_nam(mtmp));
|
||||||
}
|
}
|
||||||
|
/* setuwep handles polearms differently when you're mounted */
|
||||||
|
if (uwep && is_pole(uwep)) unweapon = FALSE;
|
||||||
u.usteed = mtmp;
|
u.usteed = mtmp;
|
||||||
remove_monster(mtmp->mx, mtmp->my);
|
remove_monster(mtmp->mx, mtmp->my);
|
||||||
teleds(mtmp->mx, mtmp->my, TRUE);
|
teleds(mtmp->mx, mtmp->my, TRUE);
|
||||||
@@ -598,14 +600,17 @@ dismount_steed(reason)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Return the player to the floor */
|
/* Return the player to the floor */
|
||||||
if (reason != DISMOUNT_ENGULFED) {
|
if (reason != DISMOUNT_ENGULFED) {
|
||||||
in_steed_dismounting = TRUE;
|
in_steed_dismounting = TRUE;
|
||||||
(void) float_down(0L, W_SADDLE);
|
(void) float_down(0L, W_SADDLE);
|
||||||
in_steed_dismounting = FALSE;
|
in_steed_dismounting = FALSE;
|
||||||
flags.botl = 1;
|
flags.botl = 1;
|
||||||
(void)encumber_msg();
|
(void)encumber_msg();
|
||||||
vision_full_recalc = 1;
|
vision_full_recalc = 1;
|
||||||
} else flags.botl = 1;
|
} else
|
||||||
|
flags.botl = 1;
|
||||||
|
/* polearms behave differently when not mounted */
|
||||||
|
if (uwep && is_pole(uwep)) unweapon = TRUE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user