]> granicus.if.org Git - nethack/commitdiff
Zombies groan
authorPasi Kallinen <paxed@alt.org>
Wed, 16 Feb 2022 21:03:18 +0000 (23:03 +0200)
committerPasi Kallinen <paxed@alt.org>
Wed, 16 Feb 2022 21:04:02 +0000 (23:04 +0200)
doc/fixes3-7-0.txt
include/monflag.h
include/monsters.h
src/sounds.c

index 5b28a3b391052781563ec0d360b7e044d176ad29..6137e93399be6f0a81ff8c7c5981918e13188a8c 100644 (file)
@@ -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
index d7a1a88f5e255f9c93dcad4aae493dfb94df0d87..b0fc9afcfd0133a6352506e11891823defe2291f 100644 (file)
@@ -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 */
index 1953834ae4c3086feaef2b9a1effaab82125cd4b..7f3d8a3ccbc56a26c712cb6fe7c5811026ef8d9d 100644 (file)
     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),
         (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),
         (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),
         (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),
         (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,
         (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),
         (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),
index 2f8c6e04330925111b5e6a5e6e95196fe91a612e..0011d72ed2da7750abc4eaf78e84ea44c57f75a6 100644 (file)
@@ -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;