U1258 - removing ring of levitation while riding a flying steed
As reported, you'd get the "float gently to the ground" message even while riding a flying steed. Rearranged the code and added a new case for this. I found it odd that Hallucination protected you from falling out of the saddle due to the Sokoban air currents. The message implied otherwise, so I've made the sokoban_trap code apply in both cases.
This commit is contained in:
@@ -77,6 +77,7 @@ message order when swapping places with a pet (e.g. into a trap), also use
|
|||||||
different term instead of "displace"
|
different term instead of "displace"
|
||||||
flyers can get out of pits more easily than non-flyers
|
flyers can get out of pits more easily than non-flyers
|
||||||
allow use of the < command to try to exit a pit
|
allow use of the < command to try to exit a pit
|
||||||
|
clean up messages when you stop levitation while riding a flying steed
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
48
src/trap.c
48
src/trap.c
@@ -2447,32 +2447,34 @@ long hmask, emask; /* might cancel timeout */
|
|||||||
if (!(emask & W_SADDLE))
|
if (!(emask & W_SADDLE))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
boolean sokoban_trap = (In_sokoban(&u.uz) && trap);
|
if (In_sokoban(&u.uz) && trap) {
|
||||||
if (Hallucination)
|
/* Justification elsewhere for Sokoban traps
|
||||||
pline("Bummer! You've %s.",
|
* is based on air currents. This is
|
||||||
is_pool(u.ux,u.uy) ?
|
* consistent with that.
|
||||||
"splashed down" : sokoban_trap ? "crashed" :
|
* The unexpected additional force of the
|
||||||
"hit the ground");
|
* air currents once leviation
|
||||||
else {
|
* ceases knocks you off your feet.
|
||||||
if (!sokoban_trap)
|
*/
|
||||||
You("float gently to the %s.",
|
if (Hallucination)
|
||||||
surface(u.ux, u.uy));
|
pline("Bummer! You've crashed.");
|
||||||
else {
|
else
|
||||||
/* Justification elsewhere for Sokoban traps
|
|
||||||
* is based on air currents. This is
|
|
||||||
* consistent with that.
|
|
||||||
* The unexpected additional force of the
|
|
||||||
* air currents once leviation
|
|
||||||
* ceases knocks you off your feet.
|
|
||||||
*/
|
|
||||||
You("fall over.");
|
You("fall over.");
|
||||||
losehp(rnd(2), "dangerous winds", KILLED_BY);
|
losehp(rnd(2), "dangerous winds", KILLED_BY);
|
||||||
#ifdef STEED
|
#ifdef STEED
|
||||||
if (u.usteed) dismount_steed(DISMOUNT_FELL);
|
if (u.usteed) dismount_steed(DISMOUNT_FELL);
|
||||||
#endif
|
#endif
|
||||||
selftouch("As you fall, you");
|
selftouch("As you fall, you");
|
||||||
}
|
#ifdef STEED
|
||||||
}
|
} else if (u.usteed && (is_floater(u.usteed->data) ||
|
||||||
|
is_flyer(u.usteed->data))) {
|
||||||
|
You("settle more firmly in the saddle.");
|
||||||
|
#endif
|
||||||
|
} else if (Hallucination)
|
||||||
|
pline("Bummer! You've %s.",
|
||||||
|
is_pool(u.ux,u.uy) ? "splashed down" :
|
||||||
|
"hit the ground");
|
||||||
|
else
|
||||||
|
You("float gently to the %s.", surface(u.ux, u.uy));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user