]> granicus.if.org Git - nethack/commitdiff
Make hezrous stink
authorPasi Kallinen <paxed@alt.org>
Fri, 3 Apr 2020 18:05:45 +0000 (21:05 +0300)
committerPasi Kallinen <paxed@alt.org>
Fri, 3 Apr 2020 18:05:49 +0000 (21:05 +0300)
dat/data.base
doc/fixes37.0
include/mondata.h
src/mon.c
src/monmove.c

index 6baf9df7b330c0e784591d275fbcc31e2563a480..ef78c26b4f05ae64b558ceb551b90ca9a4f87e7c 100644 (file)
@@ -2207,7 +2207,8 @@ hermes
        numbers, the alphabet, weights and measures, and sacrificing.
 hezrou
        "Hezrou" is the common name for the type II demon.  It is
-       among the weaker of demons, but still quite formidable.
+       among the weaker of demons, but still quite formidable,
+       mostly due to the stench.
 hippocrates
        Greek physician, recognized as the father of medicine.  He
        is believed to have been born on the island of Cos, to have
index 51981ad04aab12686194c9f9229419d23677030e..f968cfb0c5a9d8e7a9f16ccddea09fcd9cdcd0de 100644 (file)
@@ -100,6 +100,7 @@ fix attached ball getting deallocated if swallowed, going down into a pit,
 level compiler creates correct novel with supplied name
 for farlook, describe water in the castle moat and in Juiblex's swamp as moat
        and as swamp, respectively, rather than just as "water"
+make hezrous emit poison clouds when they move
 
 
 Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
index 65ad58eca1a39dfc0c7e6eef6420a6e41dabf072..3e12c2e7020c5a632ca98d9dd07059caf5c1ac98 100644 (file)
@@ -27,6 +27,8 @@
 #define resists_ston(mon) \
     ((((mon)->data->mresists | (mon)->mextrinsics) & MR_STONE) != 0)
 
+#define immune_poisongas(ptr) ((ptr) == &mons[PM_HEZROU])
+
 #define is_lminion(mon) \
     (is_minion((mon)->data) && mon_aligntyp(mon) == A_LAWFUL)
 #define is_flyer(ptr) (((ptr)->mflags1 & M1_FLY) != 0L)
index 63d56db9f8560ae32794b399deef34fbcfba91e7..22fae52f4d0a9ff722f0861ce689c41b2894b73b 100644 (file)
--- a/src/mon.c
+++ b/src/mon.c
@@ -145,9 +145,9 @@ struct monst *mtmp;
     int px, py;
     boolean is_you = (mtmp == &g.youmonst);
 
-    /* Non living and non breathing monsters are not concerned */
+    /* Non living, non breathing, immune monsters are not concerned */
     if (nonliving(mtmp->data) || is_vampshifter(mtmp)
-        || breathless(mtmp->data))
+        || breathless(mtmp->data) || immune_poisongas(mtmp->data))
         return M_POISONGAS_OK;
     /* not is_swimmer(); assume that non-fish are swimming on
        the surface and breathing the air above it periodically
index 923e373ec140b564e7185655d9597fceded6233e..04e5ee9f46599a8b9b87d2a08ee0dc1df91d552a 100644 (file)
@@ -623,6 +623,9 @@ register struct monst *mtmp;
     /*  Now the actual movement phase
      */
 
+    if (mtmp->data == &mons[PM_HEZROU]) /* stench */
+        create_gas_cloud(mtmp->mx, mtmp->my, 1, 8);
+
     if (mdat == &mons[PM_KILLER_BEE]
         /* could be smarter and deliberately move to royal jelly, but
            then we'd need to scan the level for queen bee in advance;