aklys message improvements
This commit is contained in:
+34
-20
@@ -1437,7 +1437,8 @@ throwing_weapon(struct obj *obj)
|
|||||||
|| obj->otyp == WAR_HAMMER || obj->otyp == AKLYS);
|
|| obj->otyp == WAR_HAMMER || obj->otyp == AKLYS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the currently thrown object is returning to you (not for boomerangs) */
|
/* the currently thrown object is returning to you (not for boomerangs
|
||||||
|
or tethered weapons) */
|
||||||
staticfn void
|
staticfn void
|
||||||
sho_obj_return_to_u(struct obj *obj)
|
sho_obj_return_to_u(struct obj *obj)
|
||||||
{
|
{
|
||||||
@@ -1520,7 +1521,8 @@ throwit(
|
|||||||
boolean crossbowing,
|
boolean crossbowing,
|
||||||
impaired = (Confusion || Stunned || Blind
|
impaired = (Confusion || Stunned || Blind
|
||||||
|| Hallucination || Fumbling),
|
|| Hallucination || Fumbling),
|
||||||
tethered_weapon = (arw && arw->tethered && (wep_mask & W_WEP) != 0);
|
tethered_weapon = (arw && arw->tethered && (wep_mask & W_WEP) != 0),
|
||||||
|
tether_released_msg = FALSE;
|
||||||
|
|
||||||
gn.notonhead = FALSE; /* reset potentially stale value */
|
gn.notonhead = FALSE; /* reset potentially stale value */
|
||||||
if ((obj->cursed || obj->greased) && (u.dx || u.dy) && !rn2(7)) {
|
if ((obj->cursed || obj->greased) && (u.dx || u.dy) && !rn2(7)) {
|
||||||
@@ -1685,8 +1687,14 @@ throwit(
|
|||||||
/* bhit display cleanup was left with this caller
|
/* bhit display cleanup was left with this caller
|
||||||
for tethered_weapon, but clean it up now since
|
for tethered_weapon, but clean it up now since
|
||||||
we're about to return */
|
we're about to return */
|
||||||
if (tethered_weapon)
|
if (tethered_weapon) {
|
||||||
|
if (!tether_released_msg) {
|
||||||
|
pline("The tether comes off your %s.",
|
||||||
|
body_part(ARM));
|
||||||
|
tether_released_msg = TRUE;
|
||||||
|
}
|
||||||
tmp_at(DISP_END, 0);
|
tmp_at(DISP_END, 0);
|
||||||
|
}
|
||||||
throwit_return(FALSE);
|
throwit_return(FALSE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1699,8 +1707,14 @@ throwit(
|
|||||||
|
|
||||||
if (!gt.thrownobj) {
|
if (!gt.thrownobj) {
|
||||||
/* missile has already been handled */
|
/* missile has already been handled */
|
||||||
if (tethered_weapon)
|
if (tethered_weapon) {
|
||||||
|
if (!tether_released_msg) {
|
||||||
|
pline("The tether comes off your %s.",
|
||||||
|
body_part(ARM));
|
||||||
|
tether_released_msg = TRUE;
|
||||||
|
}
|
||||||
tmp_at(DISP_END, 0);
|
tmp_at(DISP_END, 0);
|
||||||
|
}
|
||||||
} else if (u.uswallow && !iflags.returning_missile) {
|
} else if (u.uswallow && !iflags.returning_missile) {
|
||||||
swallowit(obj);
|
swallowit(obj);
|
||||||
return;
|
return;
|
||||||
@@ -1738,21 +1752,16 @@ throwit(
|
|||||||
if obj is quivered, remove it before wielding */
|
if obj is quivered, remove it before wielding */
|
||||||
if (obj->owornmask & W_QUIVER)
|
if (obj->owornmask & W_QUIVER)
|
||||||
setuqwep((struct obj *) 0);
|
setuqwep((struct obj *) 0);
|
||||||
#if 0
|
|
||||||
setuwep(obj);
|
|
||||||
set_twoweap(twoweap); /* u.twoweap = twoweap */
|
|
||||||
#endif
|
|
||||||
if (cansee(gb.bhitpos.x, gb.bhitpos.y))
|
if (cansee(gb.bhitpos.x, gb.bhitpos.y))
|
||||||
newsym(gb.bhitpos.x, gb.bhitpos.y);
|
newsym(gb.bhitpos.x, gb.bhitpos.y);
|
||||||
}
|
}
|
||||||
if (!dmg) {
|
if (!dmg) {
|
||||||
if (tethered_weapon) {
|
if (tethered_weapon) {
|
||||||
pline(Blind ? "%s%s back and is left"
|
/* Blind mods unnecessary; you know what you threw,
|
||||||
" dangling from your %s."
|
* and it is tethered to your arm */
|
||||||
: "%s%s and is left dangling from your %s.",
|
pline("Your tethered %s snaps back but the tether slips from your %s.",
|
||||||
Blind ? "Your tethered weapon" : Tobjnam(obj, "return"),
|
simpleonames(obj), body_part(ARM));
|
||||||
Blind ? " snaps" : "",
|
tether_released_msg = TRUE;
|
||||||
body_part(ARM));
|
|
||||||
} else {
|
} else {
|
||||||
pline(Blind
|
pline(Blind
|
||||||
? "%s lands %s your %s."
|
? "%s lands %s your %s."
|
||||||
@@ -1764,9 +1773,8 @@ throwit(
|
|||||||
} else {
|
} else {
|
||||||
dmg += rnd(3);
|
dmg += rnd(3);
|
||||||
if (tethered_weapon) {
|
if (tethered_weapon) {
|
||||||
Your("tethered %s your %s!",
|
Your("tethered %s returns and hits your %s!",
|
||||||
Blind ? "weapon returns and hits" : Tobjnam(obj, "hit"),
|
simpleonames(obj), body_part(ARM));
|
||||||
body_part(ARM));
|
|
||||||
} else {
|
} else {
|
||||||
pline(
|
pline(
|
||||||
Blind
|
Blind
|
||||||
@@ -1789,14 +1797,22 @@ throwit(
|
|||||||
if (!ship_object(obj, u.ux, u.uy, FALSE))
|
if (!ship_object(obj, u.ux, u.uy, FALSE))
|
||||||
dropy(obj);
|
dropy(obj);
|
||||||
} else {
|
} else {
|
||||||
pline_The("%s tether releases from your %s!",
|
if (!tether_released_msg) {
|
||||||
|
pline_The("%s tether comes off your %s.",
|
||||||
s_suffix(simpleonames(obj)), body_part(ARM));
|
s_suffix(simpleonames(obj)), body_part(ARM));
|
||||||
|
tether_released_msg = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throwit_return(TRUE);
|
throwit_return(TRUE);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
if (tethered_weapon) {
|
if (tethered_weapon) {
|
||||||
|
if (!tether_released_msg) {
|
||||||
|
pline("The tether comes off your %s.",
|
||||||
|
body_part(ARM));
|
||||||
|
tether_released_msg = TRUE;
|
||||||
|
}
|
||||||
tmp_at(DISP_END, 0);
|
tmp_at(DISP_END, 0);
|
||||||
/* when this location is stepped on, the weapon will be
|
/* when this location is stepped on, the weapon will be
|
||||||
auto-picked up due to 'obj->how_lost' of LOST_THROWN;
|
auto-picked up due to 'obj->how_lost' of LOST_THROWN;
|
||||||
@@ -1806,8 +1822,6 @@ throwit(
|
|||||||
explicitly rewield the weapon to get throw-and-return
|
explicitly rewield the weapon to get throw-and-return
|
||||||
capability back anyway, quivered or not shouldn't
|
capability back anyway, quivered or not shouldn't
|
||||||
matter */
|
matter */
|
||||||
pline("The tether snaps off your %s!",
|
|
||||||
body_part(ARM));
|
|
||||||
} else {
|
} else {
|
||||||
pline("%s to return!", Tobjnam(obj, "fail"));
|
pline("%s to return!", Tobjnam(obj, "fail"));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user