stinking nemesis
Noticed when testing erodeproof Mitre of Holiness: the cloud of stinking gas released by Nalzok when he died ending up killing my pet and my hero got blamed for that. Don't blame--or credit--the hero for monsters affected by the gas cloud when a dying nemesis produces such.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
HDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1196 $ $NHDT-Date: 1686386794 2023/06/10 08:46:34 $
|
||||
HDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1201 $ $NHDT-Date: 1687036542 2023/06/17 21:15:42 $
|
||||
|
||||
General Fixes and Modified Features
|
||||
-----------------------------------
|
||||
@@ -1621,6 +1621,7 @@ entering the tutorial stashed hero's equipment for eventual return to normal
|
||||
entering the tutorial and then returning to play made the tutorial branch be
|
||||
eligible for a portal destination via wizard's Eye of the Aethiopica
|
||||
'hard helmet' was based on being metallic so overlooked crystal helmet
|
||||
don't blame/credit hero for stinking cloud if dying quest nemesis releases one
|
||||
|
||||
|
||||
Fixes to 3.7.0-x Platform and/or Interface Problems Exposed Via git Repository
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 extern.h $NHDT-Date: 1684138080 2023/05/15 08:08:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1263 $ */
|
||||
/* NetHack 3.7 extern.h $NHDT-Date: 1687036542 2023/06/17 21:15:42 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1275 $ */
|
||||
/* Copyright (c) Steve Creps, 1988. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -2311,6 +2311,7 @@ extern void artitouch(struct obj *);
|
||||
extern boolean ok_to_quest(void);
|
||||
extern void leader_speaks(struct monst *);
|
||||
extern void nemesis_speaks(void);
|
||||
extern void nemesis_stinks(coordxy, coordxy);
|
||||
extern void quest_chat(struct monst *);
|
||||
extern void quest_talk(struct monst *);
|
||||
extern void quest_stat_check(struct monst *);
|
||||
|
||||
12
src/mon.c
12
src/mon.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 mon.c $NHDT-Date: 1683831104 2023/05/11 18:51:44 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.501 $ */
|
||||
/* NetHack 3.7 mon.c $NHDT-Date: 1687036544 2023/06/17 21:15:44 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.509 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -2478,7 +2478,7 @@ m_detach(
|
||||
if (mtmp->mleashed)
|
||||
m_unleash(mtmp, FALSE);
|
||||
|
||||
if (mtmp->mx > 0 && emits_light(mptr))
|
||||
if (mx > 0 && emits_light(mptr))
|
||||
del_light_source(LS_MONSTER, monst_to_any(mtmp));
|
||||
|
||||
/*
|
||||
@@ -2505,7 +2505,7 @@ m_detach(
|
||||
/* The Archeologist, Caveman, and Priest quest texts describe
|
||||
the nemesis's body creating noxious fumes/gas when killed. */
|
||||
if (stinky_nemesis(mtmp))
|
||||
create_gas_cloud(mx, my, 5, 8);
|
||||
nemesis_stinks(mx, my);
|
||||
}
|
||||
if (mtmp->data->msound == MS_LEADER)
|
||||
leaddead();
|
||||
@@ -2759,12 +2759,6 @@ mondead(struct monst *mtmp)
|
||||
break;
|
||||
}
|
||||
}
|
||||
#if 0 /* moved to m_detach() to kick in if mongone() happens */
|
||||
if (mtmp->iswiz)
|
||||
wizdead();
|
||||
if (mtmp->data->msound == MS_NEMESIS)
|
||||
nemdead();
|
||||
#endif
|
||||
|
||||
if (mndx == PM_MEDUSA && gm.mvitals[mndx].died == 1) {
|
||||
record_achievement(ACH_MEDU); /* also generates a livelog event */
|
||||
|
||||
18
src/quest.c
18
src/quest.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 quest.c $NHDT-Date: 1596498200 2020/08/03 23:43:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.29 $ */
|
||||
/* NetHack 3.7 quest.c $NHDT-Date: 1687036547 2023/06/17 21:15:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.38 $ */
|
||||
/* Copyright 1991, M. Stephenson */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -378,6 +378,22 @@ nemesis_speaks(void)
|
||||
qt_pager("discourage");
|
||||
}
|
||||
|
||||
/* create cloud of stinking gas around dying nemesis */
|
||||
void
|
||||
nemesis_stinks(coordxy mx, coordxy my)
|
||||
{
|
||||
boolean save_mon_moving = gc.context.mon_moving;
|
||||
|
||||
/*
|
||||
* Some nemeses (determined by caller) release a cloud of noxious
|
||||
* gas when they die. Don't make the hero be responsible for such
|
||||
* a cloud even if hero has just killed nemesis.
|
||||
*/
|
||||
gc.context.mon_moving = TRUE;
|
||||
create_gas_cloud(mx, my, 5, 8);
|
||||
gc.context.mon_moving = save_mon_moving;
|
||||
}
|
||||
|
||||
static void
|
||||
chat_with_guardian(void)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 questpgr.c $NHDT-Date: 1655065145 2022/06/12 20:19:05 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.79 $ */
|
||||
/* NetHack 3.7 questpgr.c $NHDT-Date: 1687036548 2023/06/17 21:15:48 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.82 $ */
|
||||
/* Copyright 1991, M. Stephenson */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -171,8 +171,8 @@ stinky_nemesis(struct monst *mon)
|
||||
(void) com_pager_core(gu.urole.filecode, "killed_nemesis", FALSE, &mesg);
|
||||
#endif
|
||||
|
||||
/* this is somewhat fragile; it assumes that when both (noxious or
|
||||
poisonous or toxic) and (gas or fumes) are present, the latter
|
||||
/* this is somewhat fragile; it assumes that when both {noxious or
|
||||
poisonous or toxic} and {gas or fumes} are present, the latter
|
||||
refers to the former rather than to something unrelated; it does
|
||||
make sure that fumes occurs after noxious rather than before */
|
||||
if (mesg) {
|
||||
|
||||
Reference in New Issue
Block a user