From: Pasi Kallinen Date: Wed, 16 Feb 2022 21:03:18 +0000 (+0200) Subject: Zombies groan X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b25138e6d94e215e7d35ce52c04c2009f9392f36;p=nethack Zombies groan --- diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index 5b28a3b39..6137e9339 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -781,6 +781,7 @@ the water used on the Plane of Water stops thrown or kicked items looting will do #force if you could do it and the container is locked and you didn't have a tool to unlock it use silly names for rays (such as breath weapons) when hallucinating +zombies groan instead of being silent Fixes to 3.7.0-x Problems that Were Exposed Via git Repository diff --git a/include/monflag.h b/include/monflag.h index d7a1a88f5..b0fc9afcf 100644 --- a/include/monflag.h +++ b/include/monflag.h @@ -53,7 +53,8 @@ enum ms_sounds { MS_ORACLE = 38, /* do a consultation */ MS_PRIEST = 39, /* ask for contribution; do cleansing */ MS_SPELL = 40, /* spellcaster not matching any of the above */ - MS_BOAST = 41 /* giants */ + MS_BOAST = 41, /* giants */ + MS_GROAN = 42 /* zombies groan */ }; #define MR_FIRE 0x01 /* resists fire */ diff --git a/include/monsters.h b/include/monsters.h index 1953834ae..7f3d8a3cc 100644 --- a/include/monsters.h +++ b/include/monsters.h @@ -2037,14 +2037,14 @@ MON("kobold zombie", S_ZOMBIE, LVL(0, 6, 10, 0, -2), (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), - SIZ(400, 50, MS_SILENT, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0, + SIZ(400, 50, MS_GROAN, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_STALK | M2_HOSTILE, M3_INFRAVISION, 1, CLR_BROWN, KOBOLD_ZOMBIE), MON("gnome zombie", S_ZOMBIE, LVL(1, 6, 10, 0, -2), (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 5), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), - SIZ(650, 50, MS_SILENT, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0, + SIZ(650, 50, MS_GROAN, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_GNOME, M3_INFRAVISION, 2, CLR_BROWN, GNOME_ZOMBIE), @@ -2052,7 +2052,7 @@ (G_GENO | G_SGROUP | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), - SIZ(850, 75, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0, + SIZ(850, 75, MS_GROAN, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ORC, M3_INFRAVISION, 3, CLR_GRAY, ORC_ZOMBIE), @@ -2060,7 +2060,7 @@ (G_GENO | G_SGROUP | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), - SIZ(900, 150, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0, + SIZ(900, 150, MS_GROAN, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_DWARF, M3_INFRAVISION, 3, CLR_RED, DWARF_ZOMBIE), @@ -2068,7 +2068,7 @@ (G_GENO | G_SGROUP | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 7), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), - SIZ(WT_ELF, 175, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, + SIZ(WT_ELF, 175, MS_GROAN, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ELF, M3_INFRAVISION, 4, CLR_GREEN, ELF_ZOMBIE), @@ -2076,7 +2076,7 @@ (G_GENO | G_SGROUP | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), - SIZ(WT_HUMAN, 200, MS_SILENT, MZ_HUMAN), + SIZ(WT_HUMAN, 200, MS_GROAN, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_UNDEAD | M2_STALK | M2_HOSTILE, M3_INFRAVISION, 5, HI_DOMESTIC, @@ -2085,7 +2085,7 @@ (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 10), ATTK(AT_CLAW, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), - SIZ(1700, 250, MS_SILENT, MZ_HUGE), MR_COLD | MR_SLEEP | MR_POISON, 0, + SIZ(1700, 250, MS_GROAN, MZ_HUGE), MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG, M3_INFRAVISION, 7, CLR_BLUE, ETTIN_ZOMBIE), @@ -2100,7 +2100,7 @@ (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), - SIZ(2050, 375, MS_SILENT, MZ_HUGE), MR_COLD | MR_SLEEP | MR_POISON, 0, + SIZ(2050, 375, MS_GROAN, MZ_HUGE), MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_GIANT | M2_STRONG, M3_INFRAVISION, 9, CLR_CYAN, GIANT_ZOMBIE), diff --git a/src/sounds.c b/src/sounds.c index 2f8c6e043..0011d72ed 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -330,6 +330,9 @@ growl_sound(register struct monst* mtmp) case MS_WAIL: ret = "wail"; break; + case MS_GROAN: + ret = "groan"; + break; case MS_MOO: ret = "low"; break; @@ -777,6 +780,10 @@ domonnoise(register struct monst* mtmp) case MS_WAIL: pline_msg = "wails mournfully."; break; + case MS_GROAN: + if (!rn2(3)) + pline_msg = "groans."; + break; case MS_GURGLE: pline_msg = "gurgles."; break;