]> granicus.if.org Git - nethack/commitdiff
Hallucinatory liquids for water, lava, and acid
authorPasi Kallinen <paxed@alt.org>
Tue, 7 Jun 2016 17:57:50 +0000 (20:57 +0300)
committerPasi Kallinen <paxed@alt.org>
Tue, 7 Jun 2016 17:57:50 +0000 (20:57 +0300)
29 files changed:
include/extern.h
src/apply.c
src/ball.c
src/dbridge.c
src/dig.c
src/do.c
src/do_name.c
src/do_wear.c
src/dokick.c
src/dothrow.c
src/engrave.c
src/fountain.c
src/hack.c
src/lock.c
src/mhitm.c
src/mhitu.c
src/mkmaze.c
src/mon.c
src/mthrowu.c
src/pickup.c
src/polyself.c
src/potion.c
src/read.c
src/sit.c
src/spell.c
src/steed.c
src/trap.c
src/uhitm.c
src/zap.c

index 5ef96697d2d590df3984f3a9a6c997e07114729c..4781d1b9c5e33450d5bfcaace80b1d29b53c0f6b 100644 (file)
@@ -401,6 +401,7 @@ E char *FDECL(distant_monnam, (struct monst *, int, char *));
 E char *FDECL(rndmonnam, (char *));
 E const char *FDECL(hcolor, (const char *));
 E const char *NDECL(rndcolor);
+E const char *FDECL(hliquid, (const char *));
 E const char *NDECL(roguename);
 E struct obj *FDECL(realloc_obj,
                     (struct obj *, int, genericptr_t, int, const char *));
index 544619b946ecc9df7097a62610320007aab372f1..e00557a5593eaef06c8f3a5ae32540fb05bbe44e 100644 (file)
@@ -1621,7 +1621,7 @@ int magic; /* 0=Physical, otherwise skill level */
                 deltrap(t_at(u.ux, u.uy));
                 break;
             case TT_LAVA:
-                You("pull yourself above the lava!");
+                You("pull yourself above the %s!", hliquid("lava"));
                 u.utrap = 0;
                 return 1;
             case TT_BURIEDBALL:
index a4f148395b9cbbc38a9677f187e3626440e35a4e..3b81a8f7482ebc6a382ae67767a7ba608d6b1cd9 100644 (file)
@@ -716,7 +716,7 @@ xchar x, y;
                 deltrap(t_at(u.ux, u.uy));
                 break;
             case TT_LAVA:
-                pline(pullmsg, "lava");
+                pline(pullmsg, hliquid("lava"));
                 break;
             case TT_BEARTRAP: {
                 register long side = rn2(3) ? LEFT_SIDE : RIGHT_SIDE;
index be087fd4b66308272a25f814bfd2fbfdf505dd5d..0d0421862f01f81dc2038b51e169f8ea9c474ff4 100644 (file)
@@ -750,7 +750,7 @@ struct entity *etmp;
                           E_phrase(etmp, "drink"), lava ? "lava" : "moat");
                 else
                     pline("%s into the %s.", E_phrase(etmp, "fall"),
-                          lava ? "lava" : "moat");
+                          lava ? hliquid("lava") : "moat");
             }
         killer.format = NO_KILLER_PREFIX;
         Strcpy(killer.name, "fell from a drawbridge");
@@ -901,13 +901,13 @@ int x, y;
         if (lev1->typ == DRAWBRIDGE_UP) {
             if (cansee(x2, y2))
                 pline_The("portcullis of the drawbridge falls into the %s!",
-                          lava ? "lava" : "moat");
+                          lava ? hliquid("lava") : "moat");
             else if (!Deaf)
                 You_hear("a loud *SPLASH*!");
         } else {
             if (cansee(x, y))
                 pline_The("drawbridge collapses into the %s!",
-                          lava ? "lava" : "moat");
+                          lava ? hliquid("lava") : "moat");
             else if (!Deaf)
                 You_hear("a loud *SPLASH*!");
         }
index bbfef5d0bf6d18ef08d1d09cb0d058e694b6575d..5f45e117e2bd71b439540b252fcf8b304a4af4d5 100644 (file)
--- a/src/dig.c
+++ b/src/dig.c
@@ -209,7 +209,7 @@ int x, y;
         return FALSE;
     } else if (Is_waterlevel(&u.uz)) {
         if (verbose)
-            pline_The("water splashes and subsides.");
+            pline_The("%s splashes and subsides.", hliquid("water"));
         return FALSE;
     } else if ((IS_ROCK(levl[x][y].typ) && levl[x][y].typ != SDOOR
                 && (levl[x][y].wall_info & W_NONDIGGABLE) != 0)
@@ -735,7 +735,7 @@ const char *fillmsg;
     unearth_objs(x, y);
 
     if (fillmsg)
-        pline(fillmsg, typ == LAVAPOOL ? "lava" : "water");
+        pline(fillmsg, hliquid(typ == LAVAPOOL ? "lava" : "water"));
     if (u_spot && !(Levitation || Flying)) {
         if (typ == LAVAPOOL)
             (void) lava_effects();
@@ -780,7 +780,7 @@ coord *cc;
 
     } else if (is_pool_or_lava(dig_x, dig_y)) {
         pline_The("%s sloshes furiously for a moment, then subsides.",
-                  is_lava(dig_x, dig_y) ? "lava" : "water");
+                  hliquid(is_lava(dig_x, dig_y) ? "lava" : "water"));
         wake_nearby(); /* splashing */
 
     } else if (lev->typ == DRAWBRIDGE_DOWN
index 2cbfa36604028c55e2aa0ee46604c5c6b06c6a3b..94ef36ee3bc917cfea2019a201ef5429e4a3de09 100644 (file)
--- a/src/do.c
+++ b/src/do.c
@@ -103,7 +103,8 @@ boolean pushing;
                 You("find yourself on dry land again!");
             } else if (lava && distu(rx, ry) <= 2) {
                 int dmg;
-                You("are hit by molten lava%c", Fire_resistance ? '.' : '!');
+                You("are hit by molten %s%c",
+                    hliquid("lava"), Fire_resistance ? '.' : '!');
                 burn_away_slime();
                 dmg = d((Fire_resistance ? 1 : 3), 6);
                 losehp(Maybe_Half_Phys(dmg), /* lava damage */
@@ -379,18 +380,21 @@ register struct obj *obj;
         You_hear("loud noises coming from the drain.");
         break;
     case RIN_SUSTAIN_ABILITY: /* KMH */
-        pline_The("water flow seems fixed.");
+        pline_The("%s flow seems fixed.", hliquid("water"));
         break;
     case RIN_GAIN_STRENGTH:
-        pline_The("water flow seems %ser now.",
+        pline_The("%s flow seems %ser now.",
+                  hliquid("water"),
                   (obj->spe < 0) ? "weak" : "strong");
         break;
     case RIN_GAIN_CONSTITUTION:
-        pline_The("water flow seems %ser now.",
+        pline_The("%s flow seems %ser now.",
+                  hliquid("water"),
                   (obj->spe < 0) ? "less" : "great");
         break;
     case RIN_INCREASE_ACCURACY: /* KMH */
-        pline_The("water flow %s the drain.",
+        pline_The("%s flow %s the drain.",
+                  hliquid("water"),
                   (obj->spe < 0) ? "misses" : "hits");
         break;
     case RIN_INCREASE_DAMAGE:
@@ -456,10 +460,12 @@ register struct obj *obj;
             pline_The("sink seems to blend into the floor for a moment.");
             break;
         case RIN_FIRE_RESISTANCE:
-            pline_The("hot water faucet flashes brightly for a moment.");
+            pline_The("hot %s faucet flashes brightly for a moment.",
+                      hliquid("water"));
             break;
         case RIN_COLD_RESISTANCE:
-            pline_The("cold water faucet flashes brightly for a moment.");
+            pline_The("cold %s faucet flashes brightly for a moment.",
+                      hliquid("water"));
             break;
         case RIN_PROTECTION_FROM_SHAPE_CHAN:
             pline_The("sink looks nothing like a fountain.");
index 5e869da67908811b74f5eb6e6dc391356e02ea3f..c19425f3a0a23826bbaa2e04f1310e2813a300ed 100644 (file)
@@ -1591,6 +1591,23 @@ rndcolor()
                                            : c_obj_colors[k];
 }
 
+static NEARDATA const char *const hliquids[] = {
+    "yoghurt", "oobleck", "clotted blood", "diluted water", "purified water",
+    "instant coffee", "tea", "herbal infusion", "liquid rainbow",
+    "creamy foam", "mulled wine", "bouillon", "nectar", "grog", "flubber",
+    "ketchup", "slow light", "oil", "vinaigrette", "liquid crystal", "honey",
+    "caramel sauce", "ink", "aqueous humour", "milk substitute", "fruit juice",
+    "glowing lava",
+};
+
+const char *
+hliquid(liquidpref)
+const char *liquidpref;
+{
+    return (Hallucination || !liquidpref) ? hliquids[rn2(SIZE(hliquids))]
+                                         : liquidpref;
+}
+
 /* Aliases for road-runner nemesis
  */
 static const char *const coynames[] = {
index 9f2f1fb2de0fb7ff3052d7b71eaa354a18146b3f..e588e5413967d4070d81c83f8be2056ec130fee6 100644 (file)
@@ -773,7 +773,8 @@ Amulet_off()
             setworn((struct obj *) 0, W_AMUL);
             if (!breathless(youmonst.data) && !amphibious(youmonst.data)
                 && !Swimming) {
-                You("suddenly inhale an unhealthy amount of water!");
+                You("suddenly inhale an unhealthy amount of %s!",
+                    hliquid("water"));
                 (void) drown();
             }
             return;
index 7515f6fdafd9e44acdc5d14c00b133ebcf08a82a..b7e5c5757f46c07d93f6409111bf9904ea8c5d08 100644 (file)
@@ -947,7 +947,7 @@ dokick()
     }
     if (is_pool(x, y) ^ !!u.uinwater) {
         /* objects normally can't be removed from water by kicking */
-        You("splash some water around.");
+        You("splash some %s around.", hliquid("water"));
         return 1;
     }
 
index 11e2b84bce2cd4b433f79347b90049c161976a55..2a70c8c35191f7fe95a29932adeb367bfd229f38 100644 (file)
@@ -729,7 +729,7 @@ boolean verbose;
             u.utraptype == TT_WEB
                 ? "web"
                 : u.utraptype == TT_LAVA
-                      ? "lava"
+                      ? hliquid("lava")
                       : u.utraptype == TT_INFLOOR
                             ? surface(u.ux, u.uy)
                             : u.utraptype == TT_BURIEDBALL ? "buried ball"
index 3b5108fd8a126d7b89f0e35049a4c0a3442ac494..0c2670af2095f04e56665f61b4fbf51fc0c7235a 100644 (file)
@@ -185,11 +185,12 @@ register int x, y;
     else if (IS_AIR(lev->typ) && Is_airlevel(&u.uz))
         return "air";
     else if (is_pool(x, y))
-        return (Underwater && !Is_waterlevel(&u.uz)) ? "bottom" : "water";
+        return (Underwater && !Is_waterlevel(&u.uz))
+            ? "bottom" : hliquid("water");
     else if (is_ice(x, y))
         return "ice";
     else if (is_lava(x, y))
-        return "lava";
+        return hliquid("lava");
     else if (lev->typ == DRAWBRIDGE_DOWN)
         return "bridge";
     else if (IS_ALTAR(levl[x][y].typ))
index fb6dba69153fea3ed42e4818509d7f35f8bbf8a0..c020c394b0948f8ee6b06268ab3cd60fe1b41a4b 100644 (file)
@@ -337,7 +337,8 @@ drinkfountain()
         {
             register struct monst *mtmp;
 
-            pline("This water gives you bad breath!");
+            pline("This %s gives you bad breath!",
+                  hliquid("water"));
             for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
                 if (DEADMONSTER(mtmp))
                     continue;
@@ -349,7 +350,8 @@ drinkfountain()
             dogushforth(TRUE);
             break;
         default:
-            pline("This tepid water is tasteless.");
+            pline("This tepid %s is tasteless.",
+                  hliquid("water"));
             break;
         }
     }
@@ -372,8 +374,8 @@ register struct obj *obj;
         && !exist_artifact(LONG_SWORD, artiname(ART_EXCALIBUR))) {
         if (u.ualign.type != A_LAWFUL) {
             /* Ha!  Trying to cheat her. */
-            pline(
-             "A freezing mist rises from the water and envelopes the sword.");
+            pline("A freezing mist rises from the %s and envelopes the sword.",
+                  hliquid("water"));
             pline_The("fountain disappears!");
             curse(obj);
             if (obj->spe > -6 && !rn2(3))
@@ -423,7 +425,7 @@ register struct obj *obj;
     case 20: /* Uncurse the item */
         if (obj->cursed) {
             if (!Blind)
-                pline_The("water glows for a moment.");
+                pline_The("%s glows for a moment.", hliquid("water"));
             uncurse(obj);
         } else {
             pline("A feeling of loss comes over you.");
@@ -490,7 +492,8 @@ register struct obj *obj;
                                    + 1) * 2) + 5),
                       u.ux, u.uy);
         if (!Blind)
-            pline("Far below you, you see coins glistening in the water.");
+            pline("Far below you, you see coins glistening in the %s.",
+                  hliquid("water"));
         exercise(A_WIS, TRUE);
         newsym(u.ux, u.uy);
         break;
@@ -524,13 +527,13 @@ drinksink()
     }
     switch (rn2(20)) {
     case 0:
-        You("take a sip of very cold water.");
+        You("take a sip of very cold %s.", hliquid("water"));
         break;
     case 1:
-        You("take a sip of very warm water.");
+        You("take a sip of very warm %s.", hliquid("water"));
         break;
     case 2:
-        You("take a sip of scalding hot water.");
+        You("take a sip of scalding hot %s.", hliquid("water"));
         if (Fire_resistance)
             pline("It seems quite tasty.");
         else
@@ -573,19 +576,19 @@ drinksink()
             exercise(A_WIS, TRUE);
             newsym(u.ux, u.uy);
         } else
-            pline("Some dirty water backs up in the drain.");
+            pline("Some dirty %s backs up in the drain.", hliquid("water"));
         break;
     case 6:
         breaksink(u.ux, u.uy);
         break;
     case 7:
-        pline_The("water moves as though of its own will!");
+        pline_The("%s moves as though of its own will!", hliquid("water"));
         if ((mvitals[PM_WATER_ELEMENTAL].mvflags & G_GONE)
             || !makemon(&mons[PM_WATER_ELEMENTAL], u.ux, u.uy, NO_MM_FLAGS))
             pline("But it quiets down.");
         break;
     case 8:
-        pline("Yuk, this water tastes awful.");
+        pline("Yuk, this %s tastes awful.", hliquid("water"));
         more_experienced(1, 0);
         newexplevel();
         break;
@@ -595,7 +598,7 @@ drinksink()
         vomit();
         break;
     case 10:
-        pline("This water contains toxic wastes!");
+        pline("This %s contains toxic wastes!", hliquid("water"));
         if (!Unchanging) {
             You("undergo a freakish metamorphosis!");
             polyself(0);
@@ -614,8 +617,9 @@ drinksink()
             break;
         }
     default:
-        You("take a sip of %s water.",
-            rn2(3) ? (rn2(2) ? "cold" : "warm") : "hot");
+        You("take a sip of %s %s.",
+            rn2(3) ? (rn2(2) ? "cold" : "warm") : "hot",
+            hliquid("water"));
     }
 }
 
index 716958f1989fd9f09524fe82796c70aa44d8c47b..e62b8d333db099bde2983b34fe2567e6c366118f 100644 (file)
@@ -1169,9 +1169,11 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
             if ((u.utrap & 0xff) == 0) {
                 u.utrap = 0;
                 if (u.usteed)
-                    You("lead %s to the edge of the lava.", steedname);
+                    You("lead %s to the edge of the %s.", steedname,
+                        hliquid("lava"));
                 else
-                    You("pull yourself to the edge of the lava.");
+                    You("pull yourself to the edge of the %s.",
+                        hliquid("lava"));
             }
         }
         u.umoved = TRUE;
@@ -1878,16 +1880,16 @@ boolean newspot;             /* true if called by spoteffects */
             if (Is_waterlevel(&u.uz))
                 You("pop into an air bubble.");
             else if (is_lava(u.ux, u.uy))
-                You("leave the water..."); /* oops! */
+                You("leave the %s...", hliquid("water")); /* oops! */
             else
                 You("are on solid %s again.",
                     is_ice(u.ux, u.uy) ? "ice" : "land");
         } else if (Is_waterlevel(&u.uz)) {
             still_inwater = TRUE;
         } else if (Levitation) {
-            You("pop out of the water like a cork!");
+            You("pop out of the %s like a cork!", hliquid("water"));
         } else if (Flying) {
-            You("fly out of the water.");
+            You("fly out of the %s.", hliquid("water"));
         } else if (Wwalking) {
             You("slowly rise above the surface.");
         } else {
@@ -2398,7 +2400,8 @@ dopickup()
     if (is_pool(u.ux, u.uy)) {
         if (Wwalking || is_floater(youmonst.data) || is_clinger(youmonst.data)
             || (Flying && !Breathless)) {
-            You("cannot dive into the water to pick things up.");
+            You("cannot dive into the %s to pick things up.",
+                hliquid("water"));
             return 0;
         } else if (!Underwater) {
             You_cant("even see the bottom, let alone pick up %s.", something);
@@ -2425,7 +2428,7 @@ dopickup()
         else if (IS_GRAVE(lev->typ))
             You("don't need a gravestone.  Yet.");
         else if (IS_FOUNTAIN(lev->typ))
-            You("could drink the water...");
+            You("could drink the %s...", hliquid("water"));
         else if (IS_DOOR(lev->typ) && (lev->doormask & D_ISOPEN))
             pline("It won't come off the hinges.");
         else
index 6770556a6e74c939dbcb5a13a09db7584fbd35a3..12131063091a7ad97a035a65cfa370a16e1fba3e 100644 (file)
@@ -315,7 +315,7 @@ struct obj *pick;
             pline("Doing that would probably melt %s.", yname(pick));
             return PICKLOCK_LEARNED_SOMETHING;
         } else if (is_pool(u.ux, u.uy) && !Underwater) {
-            pline_The("water has no lock.");
+            pline_The("%s has no lock.", hliquid("water"));
             return PICKLOCK_LEARNED_SOMETHING;
         }
 
index 3c6965fd070f9980e961fa8367951b83db557301..2f734978ff95e01918e40b12bc121a6b0225cb66 100644 (file)
@@ -974,11 +974,12 @@ register struct attack *mattk;
         }
         if (resists_acid(mdef)) {
             if (vis)
-                pline("%s is covered in acid, but it seems harmless.",
+                pline("%s is covered in %s, but it seems harmless.",
+                      hliquid("acid"),
                       Monnam(mdef));
             tmp = 0;
         } else if (vis) {
-            pline("%s is covered in acid!", Monnam(mdef));
+            pline("%s is covered in %s!", hliquid("acid"), Monnam(mdef));
             pline("It burns %s!", mon_nam(mdef));
         }
         if (!rn2(30))
@@ -1492,7 +1493,8 @@ int mdead;
         if (mhit && !rn2(2)) {
             Strcpy(buf, Monnam(magr));
             if (canseemon(magr))
-                pline("%s is splashed by %s acid!", buf,
+                pline("%s is splashed by %s %s!", buf,
+                      hliquid("acid"),
                       s_suffix(mon_nam(mdef)));
             if (resists_acid(magr)) {
                 if (canseemon(magr))
index e9ec5a9e027229ae31fa31a49374e2a6213e8e93..e4dc534845270d7bcf0d7f27993acb65e33eca3f 100644 (file)
@@ -1480,10 +1480,11 @@ register struct attack *mattk;
         hitmsg(mtmp, mattk);
         if (!mtmp->mcan && !rn2(3))
             if (Acid_resistance) {
-                pline("You're covered in acid, but it seems harmless.");
+                pline("You're covered in %s, but it seems harmless.",
+                      hliquid("acid"));
                 dmg = 0;
             } else {
-                pline("You're covered in acid!  It burns!");
+                pline("You're covered in %s!  It burns!", hliquid("acid"));
                 exercise(A_STR, FALSE);
             }
         else
@@ -2636,7 +2637,7 @@ register struct attack *mattk;
     switch (olduasmon->mattk[i].adtyp) {
     case AD_ACID:
         if (!rn2(2)) {
-            pline("%s is splashed by your acid!", Monnam(mtmp));
+            pline("%s is splashed by your %s!", Monnam(mtmp), hliquid("acid"));
             if (resists_acid(mtmp)) {
                 pline("%s is not affected.", Monnam(mtmp));
                 tmp = 0;
index 130d5c7dfda2ab42540a26dbc3442c8a4b93dc50..b3dc88f3e3446f06855b05257de6fcc5a520bb73 100644 (file)
@@ -1316,7 +1316,7 @@ xchar x, y;
         ltyp = db_under_typ(lev->drawbridgemask);
 
     if (ltyp == LAVAPOOL)
-        return "lava";
+        return hliquid("lava");
     else if (ltyp == ICE)
         return "ice";
     else if (ltyp == POOL)
@@ -1328,7 +1328,7 @@ xchar x, y;
     else if (ltyp == MOAT && !Is_medusa_level(&u.uz))
         return "moat";
 
-    return "water";
+    return hliquid("water");
 }
 
 STATIC_OVL void
index b8f201bbf193658d2bfa1d91745052455e69afef..059903a7bde7a823630e64caba324f3f9f5cb19f 100644 (file)
--- a/src/mon.c
+++ b/src/mon.c
@@ -554,7 +554,8 @@ register struct monst *mtmp;
             if (u.ustuck && u.uswallow && u.ustuck == mtmp) {
                 /* This can happen after a purple worm plucks you off a
                 flying steed while you are over water. */
-                pline("%s sinks as water rushes in and flushes you out.",
+                pline("%s sinks as %s rushes in and flushes you out.",
+                      hliquid("water"),
                       Monnam(mtmp));
             }
             mondead(mtmp);
index e0961a1cecf2808063ea2017a969ec457f2bec73..bff417325e904042c49046b4e83b533116512218 100644 (file)
@@ -372,7 +372,7 @@ boolean verbose;    /* give message(s) even when you can't see what happened */
                 damage = 0;
             } else {
                 if (vis)
-                    pline_The("acid burns %s!", mon_nam(mtmp));
+                    pline_The("%s burns %s!", hliquid("acid"), mon_nam(mtmp));
                 else if (verbose && !target)
                     pline("It is burned!");
             }
index 7131428e0e924873e6827414dcc407d9bb89eb1f..9be8c809fcddf13a3a2c8ea02dfd9c864a839633 100644 (file)
@@ -1548,7 +1548,7 @@ boolean looting; /* loot vs tip */
         /* at present, can't loot in water even when Underwater;
            can tip underwater, but not when over--or stuck in--lava */
         You("cannot %s things that are deep in the %s.", verb,
-            is_lava(x, y) ? "lava" : "water");
+            hliquid(is_lava(x, y) ? "lava" : "water"));
         return FALSE;
     } else if (nolimbs(youmonst.data)) {
         pline("Without limbs, you cannot %s anything.", verb);
index d4c2afdf1cd6d906286b1d2951868066b5baf58a..71f9ce8ba2e912c44de6cf4e45fa1d2e54570550 100644 (file)
@@ -807,7 +807,7 @@ int mntmp;
     } else if (likes_lava(youmonst.data) && u.utrap
                && u.utraptype == TT_LAVA) {
         u.utrap = 0;
-        pline_The("lava now feels soothing.");
+        pline_The("%s now feels soothing.", hliquid("lava"));
     }
     if (amorphous(youmonst.data) || is_whirly(youmonst.data)
         || unsolid(youmonst.data)) {
@@ -1419,7 +1419,7 @@ dohide()
         if (IS_FOUNTAIN(levl[u.ux][u.uy].typ))
             The("fountain is not deep enough to hide in.");
         else
-            There("is no water to hide in here.");
+            There("is no %s to hide in here.", hliquid("water"));
         u.uundetected = 0;
         return 0;
     }
index d2bf6a0219d2a2d9d97473469bae59709cce74db..2e7ceb15f99a8c3e0edd49bbc46b73522f060c2c 100644 (file)
@@ -578,7 +578,7 @@ register struct obj *otmp;
         break;
     case POT_WATER:
         if (!otmp->blessed && !otmp->cursed) {
-            pline("This tastes like water.");
+            pline("This tastes like %s.", hliquid("water"));
             u.uhunger += rnd(10);
             newuhs(FALSE);
             break;
@@ -587,7 +587,7 @@ register struct obj *otmp;
         if (is_undead(youmonst.data) || is_demon(youmonst.data)
             || u.ualign.type == A_CHAOTIC) {
             if (otmp->blessed) {
-                pline("This burns like acid!");
+                pline("This burns like %s!", hliquid("acid"));
                 exercise(A_CON, FALSE);
                 if (u.ulycn >= LOW_PM) {
                     Your("affinity to %s disappears!",
@@ -616,7 +616,7 @@ register struct obj *otmp;
                 /* make_confused(0L, TRUE); */
             } else {
                 if (u.ualign.type == A_LAWFUL) {
-                    pline("This burns like acid!");
+                    pline("This burns like %s!", hliquid("acid"));
                     losehp(Maybe_Half_Phys(d(2, 6)), "potion of unholy water",
                            KILLED_BY_AN);
                 } else
index af8399037cb79672dd13b98242ca0a3afd5bcb3e..fbf9f820188f439200b6c60fd3082c35d38c8807 100644 (file)
@@ -1571,7 +1571,7 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
             break;
         }
         if (Underwater) {
-            pline_The("water around you vaporizes violently!");
+            pline_The("%s around you vaporizes violently!", hliquid("water"));
         } else {
             pline_The("scroll erupts in a tower of flame!");
             iflags.last_msg = PLNMSG_TOWER_OF_FLAME; /* for explode() */
index cbc88f922b28429a993fa8509def7d72ada9ec41..047e223380384185d7ed70199bc0c826c63f8bba 100644 (file)
--- a/src/sit.c
+++ b/src/sit.c
@@ -100,7 +100,7 @@ dosit()
                 u.utrap += rn1(10, 5);
             } else if (u.utraptype == TT_LAVA) {
                 /* Must have fire resistance or they'd be dead already */
-                You("sit in the lava!");
+                You("sit in the %s!", hliquid("lava"));
                 if (Slimed)
                     burn_away_slime();
                 u.utrap += rnd(4);
@@ -122,7 +122,7 @@ dosit()
             You("sit down on the muddy bottom.");
     } else if (is_pool(u.ux, u.uy)) {
     in_water:
-        You("sit in the water.");
+        You("sit in the %s.", hliquid("water"));
         if (!rn2(10) && uarm)
             (void) water_damage(uarm, "armor", TRUE);
         if (!rn2(10) && uarmf && uarmf->otyp != WATER_WALKING_BOOTS)
@@ -141,13 +141,13 @@ dosit()
         You(sit_message, "ladder");
     } else if (is_lava(u.ux, u.uy)) {
         /* must be WWalking */
-        You(sit_message, "lava");
+        You(sit_message, hliquid("lava"));
         burn_away_slime();
         if (likes_lava(youmonst.data)) {
-            pline_The("lava feels warm.");
+            pline_The("%s feels warm.", hliquid("lava"));
             return 1;
         }
-        pline_The("lava burns you!");
+        pline_The("%s burns you!", hliquid("lava"));
         losehp(d((Fire_resistance ? 2 : 10), 10), /* lava damage */
                "sitting on lava", KILLED_BY);
     } else if (is_ice(u.ux, u.uy)) {
index 52ef15f7fdf53db6361f3ef4b50608d20fec8c18..0dd84ddf05b863caa23c14a9c72550a50bf4283b 100644 (file)
@@ -812,7 +812,7 @@ cast_protection()
                                          ? "maw"
                                          : "ooze")
                                 : (u.uinwater
-                                   ? "water"
+                                   ? hliquid("water")
                                    : (rmtyp == CLOUD)
                                       ? "cloud"
                                       : IS_TREE(rmtyp)
index a9dfa3eec9e83a1b1d0b8dfdca3ad2ce369a9bab..f5cd50bc5bd264ece0459b4a38988d23259c9d6e 100644 (file)
@@ -289,7 +289,8 @@ boolean force;      /* Quietly force this animal */
         return (FALSE);
     }
     if (!force && Underwater && !is_swimmer(ptr)) {
-        You_cant("ride that creature while under water.");
+        You_cant("ride that creature while under %s.",
+                 hliquid("water"));
         return (FALSE);
     }
     if (!can_saddle(mtmp) || !can_ride(mtmp)) {
@@ -565,7 +566,8 @@ int reason; /* Player was thrown off etc. */
                         adjalign(-1);
                     }
                 } else if (is_lava(u.ux, u.uy)) {
-                    pline("%s is pulled into the lava!", Monnam(mtmp));
+                    pline("%s is pulled into the %s!", Monnam(mtmp),
+                          hliquid("lava"));
                     if (!likes_lava(mdat)) {
                         killed(mtmp);
                         adjalign(-1);
index bac03c1bed70044471077d33baa9577d63891ead..4eec29df094bfdb05ae5b867468b1e60f1c11968 100644 (file)
@@ -3560,7 +3560,8 @@ drown()
     }
 
     if (!u.uinwater) {
-        You("%s into the water%c", Is_waterlevel(&u.uz) ? "plunge" : "fall",
+        You("%s into the %s%c", Is_waterlevel(&u.uz) ? "plunge" : "fall",
+            hliquid("water"),
             Amphibious || Swimming ? '.' : '!');
         if (!Swimming && !Is_waterlevel(&u.uz))
             You("sink like %s.", Hallucination ? "the Titanic" : "a rock");
@@ -3657,7 +3658,7 @@ crawl:
         /* time to do some strip-tease... */
         boolean succ = Is_waterlevel(&u.uz) ? TRUE : emergency_disrobe(&lost);
 
-        You("try to crawl out of the water.");
+        You("try to crawl out of the %s.", hliquid("water"));
         if (lost)
             You("dump some of your gear to lose weight...");
         if (succ) {
@@ -5026,13 +5027,13 @@ lava_effects()
 
     if (!Fire_resistance) {
         if (Wwalking) {
-            pline_The("lava here burns you!");
+            pline_The("%s here burns you!", hliquid("lava"));
             if (usurvive) {
                 losehp(dmg, lava_killer, KILLED_BY); /* lava damage */
                 goto burn_stuff;
             }
         } else
-            You("fall into the lava!");
+            You("fall into the %s!", hliquid("lava"));
 
         usurvive = Lifesaved || discover;
         if (wizard)
@@ -5089,9 +5090,10 @@ lava_effects()
            hero needs to escape immediately */
         u.utrap = rn1(4, 4) + ((boil_away ? 2 : rn1(4, 12)) << 8);
         u.utraptype = TT_LAVA;
-        You("sink into the lava%s!", !boil_away
-                                         ? ", but it only burns slightly"
-                                         : " and are about to be immolated");
+        You("sink into the %s%s!", hliquid("lava"),
+            !boil_away
+            ? ", but it only burns slightly"
+            : " and are about to be immolated");
         if (u.uhp > 1)
             losehp(!boil_away ? 1 : (u.uhp / 2), lava_killer,
                    KILLED_BY); /* lava damage */
index b45b4045312f5b6ec34f19caee2e9a218705a550..7c9bf3f5f57454873280a0db0788b160cfa3945c 100644 (file)
@@ -2325,7 +2325,8 @@ boolean wep_was_destroyed;
             if (Blind || !flags.verbose)
                 You("are splashed!");
             else
-                You("are splashed by %s acid!", s_suffix(mon_nam(mon)));
+                You("are splashed by %s %s!", s_suffix(mon_nam(mon)),
+                    hliquid("acid"));
 
             if (!Acid_resistance)
                 mdamageu(mon, tmp);
index 560f9f686117156d48e3fef3efea4d227b8d9425..10fa3bc3aba5bd0e6f6ca5a20aaa7cd5692211e5 100644 (file)
--- a/src/zap.c
+++ b/src/zap.c
@@ -3719,10 +3719,10 @@ xchar sx, sy;
         break;
     case ZT_ACID:
         if (Acid_resistance) {
-            pline_The("acid doesn't hurt.");
+            pline_The("%s doesn't hurt.", hliquid("acid"));
             dam = 0;
         } else {
-            pline_The("acid burns!");
+            pline_The("%s burns!", hliquid("acid"));
             dam = d(nd, 6);
             exercise(A_STR, FALSE);
         }
@@ -4303,7 +4303,7 @@ short exploding_wand_typ;
             if (lev->typ == WATER) {
                 /* For now, don't let WATER freeze. */
                 if (see_it)
-                    pline_The("water freezes for a moment.");
+                    pline_The("%s freezes for a moment.", hliquid("water"));
                 else
                     You_hear("a soft crackling.");
                 rangemod -= 1000; /* stop */
@@ -4324,11 +4324,11 @@ short exploding_wand_typ;
                 bury_objs(x, y);
                 if (see_it) {
                     if (lava)
-                        Norep("The lava cools and solidifies.");
+                        Norep("The %s cools and solidifies.", hliquid("lava"));
                     else if (moat)
                         Norep("The %s is bridged with ice!", buf);
                     else
-                        Norep("The water freezes.");
+                        Norep("The %s freezes.", hliquid("water"));
                     newsym(x, y);
                 } else if (!lava)
                     You_hear("a crackling sound.");