Fumbling while riding
Being stuck on a cursed saddle overrides Fumbling if hero would have fallen off steed.
This commit is contained in:
@@ -1337,6 +1337,7 @@ level temperature affects monster generation
|
|||||||
amulet of unchanging cannot be polymorphed
|
amulet of unchanging cannot be polymorphed
|
||||||
wishing for a "lit candle" provided one, but the feedback as it was added into
|
wishing for a "lit candle" provided one, but the feedback as it was added into
|
||||||
invent was "partly used candle (lit)" because of how 'lit' timer works
|
invent was "partly used candle (lit)" because of how 'lit' timer works
|
||||||
|
don't fall off steed because of Fumbling if saddle is cursed
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
||||||
|
|||||||
+18
-8
@@ -1165,7 +1165,7 @@ attach_fig_transform_timeout(struct obj *figurine)
|
|||||||
static void
|
static void
|
||||||
slip_or_trip(void)
|
slip_or_trip(void)
|
||||||
{
|
{
|
||||||
struct obj *otmp = vobj_at(u.ux, u.uy), *otmp2;
|
struct obj *otmp = vobj_at(u.ux, u.uy), *otmp2, *saddle;
|
||||||
const char *what;
|
const char *what;
|
||||||
char buf[BUFSZ];
|
char buf[BUFSZ];
|
||||||
boolean on_foot = !u.usteed;
|
boolean on_foot = !u.usteed;
|
||||||
@@ -1207,19 +1207,25 @@ slip_or_trip(void)
|
|||||||
/* is fumbling from ice alone? */
|
/* is fumbling from ice alone? */
|
||||||
boolean ice_only = !(EFumbling || (HFumbling & ~FROMOUTSIDE));
|
boolean ice_only = !(EFumbling || (HFumbling & ~FROMOUTSIDE));
|
||||||
|
|
||||||
pline("%s %s%s %s the ice.",
|
pline("%s %s %s the ice.",
|
||||||
u.usteed ? upstart(x_monnam(u.usteed, ARTICLE_THE, (char *) 0,
|
u.usteed ? upstart(x_monnam(u.usteed, ARTICLE_THE, (char *) 0,
|
||||||
SUPPRESS_SADDLE, FALSE))
|
SUPPRESS_SADDLE, FALSE))
|
||||||
: "You",
|
: "You",
|
||||||
rn2(2) ? "slip" : "slide", on_foot ? "" : "s",
|
/* "steed": arbitrary value that will use third person verb
|
||||||
|
regardless of what u.usteed might be named, as opposed to
|
||||||
|
"you" (second person, which won't have final 's' added) */
|
||||||
|
vtense(u.usteed ? "steed" : "you", rn2(2) ? "slip" : "slide"),
|
||||||
/* sometimes slipping due to ice occurs during turn that hero
|
/* sometimes slipping due to ice occurs during turn that hero
|
||||||
has just moved off the ice; phrase things differently then */
|
has just moved off the ice; phrase things differently then */
|
||||||
is_ice(u.ux, u.uy) ? "on" : "off");
|
is_ice(u.ux, u.uy) ? "on" : "off");
|
||||||
/* fumbling outside of ice while mounted always causes the hero to
|
/* fumbling outside of ice while mounted always causes the hero to
|
||||||
fall from the saddle, so to avoid a counterintuitive effect where
|
fall from the saddle (unless it is cursed), so to avoid a
|
||||||
ice makes riding _less_ hazardous, unconditionally dismount if
|
counterintuitive effect where ice makes riding _less_ hazardous,
|
||||||
fumbling is from a non-ice source */
|
unconditionally dismount if fumbling is from a non-ice source */
|
||||||
if (!on_foot && (!ice_only || !rn2(3))) {
|
if (!on_foot
|
||||||
|
&& ((saddle = which_armor(u.usteed, W_SADDLE)) == 0
|
||||||
|
|| !saddle->cursed)
|
||||||
|
&& (!ice_only || !rn2(3))) {
|
||||||
You("lose your balance.");
|
You("lose your balance.");
|
||||||
dismount_steed(DISMOUNT_FELL);
|
dismount_steed(DISMOUNT_FELL);
|
||||||
}
|
}
|
||||||
@@ -1241,7 +1247,11 @@ slip_or_trip(void)
|
|||||||
You("stumble.");
|
You("stumble.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
|
/* mounted; saddle should never end up being Null here;
|
||||||
|
don't fall off when it happens to be cursed */
|
||||||
|
} else if ((saddle = which_armor(u.usteed, W_SADDLE)) == 0
|
||||||
|
|| !saddle->cursed) {
|
||||||
switch (rn2(4)) {
|
switch (rn2(4)) {
|
||||||
case 1:
|
case 1:
|
||||||
Your("%s slip out of the stirrups.",
|
Your("%s slip out of the stirrups.",
|
||||||
|
|||||||
Reference in New Issue
Block a user