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

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
-----------------------------------
@@ -1028,6 +1028,9 @@ when trapeffect_selector() returns 2 to caller mintrap(), meant to signify
returns that value too
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
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
also included tty support

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) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1885,9 +1885,12 @@ thitmonst(
chopper = is_axe(obj);
/* attack hits mon */
if (hmode == HMON_APPLIED)
if (!u.uconduct.weaphit++)
livelog_printf(LL_CONDUCT, "hit with a wielded weapon for the first time");
if (hmode == HMON_APPLIED) { /* ranged hit with wielded polearm */
/* hmon()'s caller is expected to do this; however, hmon()
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 (mon->wormno)
cutworm(mon, g.bhitpos.x, g.bhitpos.y, chopper);

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. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1985,8 +1985,8 @@ show_conduct(int final)
if (!u.uconduct.weaphit) {
you_have_never("hit with a wielded weapon");
} else if (wizard) {
Sprintf(buf, "used a wielded weapon %ld time%s", u.uconduct.weaphit,
plur(u.uconduct.weaphit));
Sprintf(buf, "hit with a wielded weapon %ld time%s",
u.uconduct.weaphit, plur(u.uconduct.weaphit));
you_have_X(buf);
}
if (!u.uconduct.killer)