gamelog: hit with wielded weapon for first time

Reordering "killed for the first time" and "hit with a wielded weapon
for the first time" was done by moving the latter to hmon().  Hitting
with an applied polearm also gave the first-hit message since it
bypassed the routine that had been doing so.  But the throwing code
that handles applied polearms calls hmon() for damage, so after that
reordering, the first-hit log message became duplicated if triggered
by polearm usage.

Also, fix a quibble with the wizard mode conduct message given after
never-hit-with-wielded-weapon conduct has been broken.  The message
said "used a wielded weapon N times" when it meant "hit with a wielded
weapon N times".  "Used" is misleading if that wielded weapon happens
to be a pick-axe, so change the message to say "hit with".
This commit is contained in:
PatR
2022-02-19 11:24:28 -08:00
parent 70dafd658d
commit e972d0b965
3 changed files with 14 additions and 8 deletions
+4 -1
View File
@@ -1,4 +1,4 @@
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.799 $ $NHDT-Date: 1645223893 2022/02/18 22:38:13 $ NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.806 $ $NHDT-Date: 1645298657 2022/02/19 19:24:17 $
General Fixes and Modified Features General Fixes and Modified Features
----------------------------------- -----------------------------------
@@ -1028,6 +1028,9 @@ when trapeffect_selector() returns 2 to caller mintrap(), meant to signify
returns that value too returns that value too
have com_pager() check for failed nhl_init(); probably can't actually happen have com_pager() check for failed nhl_init(); probably can't actually happen
because the program would never get that far if lua init was failing because the program would never get that far if lua init was failing
rearranging first-kill and first-hit gamelog messages to get hit before kill
ordering resulted in "hit with a wielded weapon for first time" being
given twice if that hit was delivered via applied polearm
curses: 'msg_window' option wasn't functional for curses unless the binary curses: 'msg_window' option wasn't functional for curses unless the binary
also included tty support also included tty support
+7 -4
View File
@@ -1,4 +1,4 @@
/* NetHack 3.7 dothrow.c $NHDT-Date: 1621037618 2021/05/15 00:13:38 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.199 $ */ /* NetHack 3.7 dothrow.c $NHDT-Date: 1645298658 2022/02/19 19:24:18 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.217 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */ /*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -1885,9 +1885,12 @@ thitmonst(
chopper = is_axe(obj); chopper = is_axe(obj);
/* attack hits mon */ /* attack hits mon */
if (hmode == HMON_APPLIED) if (hmode == HMON_APPLIED) { /* ranged hit with wielded polearm */
if (!u.uconduct.weaphit++) /* hmon()'s caller is expected to do this; however, hmon()
livelog_printf(LL_CONDUCT, "hit with a wielded weapon for the first time"); delivers the "hit with wielded weapon for first time"
gamelog message when applicable */
u.uconduct.weaphit++;
}
if (hmon(mon, obj, hmode, dieroll)) { /* mon still alive */ if (hmon(mon, obj, hmode, dieroll)) { /* mon still alive */
if (mon->wormno) if (mon->wormno)
cutworm(mon, g.bhitpos.x, g.bhitpos.y, chopper); cutworm(mon, g.bhitpos.x, g.bhitpos.y, chopper);
+3 -3
View File
@@ -1,4 +1,4 @@
/* NetHack 3.7 insight.c $NHDT-Date: 1619640466 2021/04/28 20:07:46 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.35 $ */ /* NetHack 3.7 insight.c $NHDT-Date: 1645298661 2022/02/19 19:24:21 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.49 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -1985,8 +1985,8 @@ show_conduct(int final)
if (!u.uconduct.weaphit) { if (!u.uconduct.weaphit) {
you_have_never("hit with a wielded weapon"); you_have_never("hit with a wielded weapon");
} else if (wizard) { } else if (wizard) {
Sprintf(buf, "used a wielded weapon %ld time%s", u.uconduct.weaphit, Sprintf(buf, "hit with a wielded weapon %ld time%s",
plur(u.uconduct.weaphit)); u.uconduct.weaphit, plur(u.uconduct.weaphit));
you_have_X(buf); you_have_X(buf);
} }
if (!u.uconduct.killer) if (!u.uconduct.killer)