Suggested 6.5 years ago...
leave the item unpaid on shop floor and also on the shop's bill but
not visible via 'Iu' or 'Ix'; leaving the shop after that would anger
the shopkeeper and summon kops
+diluted potion of oil is less effective when filling lamps (adds less fuel)
+ or burning (lasts less long) or exploding (inflicts less damage)
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
-/* NetHack 3.6 extern.h $NHDT-Date: 1545043771 2018/12/17 10:49:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.673 $ */
+/* NetHack 3.6 extern.h $NHDT-Date: 1545182146 2018/12/19 01:15:46 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.674 $ */
/* Copyright (c) Steve Creps, 1988. */
/* NetHack may be freely redistributed. See license for details. */
E void FDECL(explode, (int, int, int, int, CHAR_P, int));
E long FDECL(scatter, (int, int, int, unsigned int, struct obj *));
-E void FDECL(splatter_burning_oil, (int, int));
+E void FDECL(splatter_burning_oil, (int, int, BOOLEAN_P));
E void FDECL(explode_oil, (struct obj *, int, int));
/* ### extralev.c ### */
-/* NetHack 3.6 explode.c $NHDT-Date: 1543101719 2018/11/24 23:21:59 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.59 $ */
+/* NetHack 3.6 explode.c $NHDT-Date: 1545182146 2018/12/19 01:15:46 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.60 $ */
/* Copyright (C) 1990 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */
* For now, just perform a "regular" explosion.
*/
void
-splatter_burning_oil(x, y)
+splatter_burning_oil(x, y, diluted_oil)
int x, y;
+boolean diluted_oil;
{
+ int dmg = d(diluted_oil ? 3 : 4, 4);
+
/* ZT_SPELL(ZT_FIRE) = ZT_SPELL(AD_FIRE-1) = 10+(2-1) = 11 */
#define ZT_SPELL_O_FIRE 11 /* value kludge, see zap.c */
- explode(x, y, ZT_SPELL_O_FIRE, d(4, 4), BURNING_OIL, EXPL_FIERY);
+ explode(x, y, ZT_SPELL_O_FIRE, dmg, BURNING_OIL, EXPL_FIERY);
}
/* lit potion of oil is exploding; extinguish it as a light source before
struct obj *obj;
int x, y;
{
+ boolean diluted_oil = obj->odiluted;
+
if (!obj->lamplit)
impossible("exploding unlit oil");
end_burn(obj, TRUE);
- splatter_burning_oil(x, y);
+ splatter_burning_oil(x, y, diluted_oil);
}
/*explode.c*/
-/* NetHack 3.6 potion.c $NHDT-Date: 1543745356 2018/12/02 10:09:16 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.155 $ */
+/* NetHack 3.6 potion.c $NHDT-Date: 1545182147 2018/12/19 01:15:47 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.156 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
} else {
You("fill %s with oil.", yname(obj));
check_unpaid(potion); /* Yendorian Fuel Tax */
- obj->age += 2 * potion->age; /* burns more efficiently */
+ /* burns more efficiently in a lamp than in a bottle;
+ diluted potion provides less benefit but we don't attempt
+ to track that the lamp now also has some non-oil in it */
+ obj->age += (!potion->odiluted ? 4L : 3L) * potion->age / 2L;
if (obj->age > 1500L)
obj->age = 1500L;
useup(potion);
-/* NetHack 3.6 timeout.c $NHDT-Date: 1544050558 2018/12/05 22:55:58 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.88 $ */
+/* NetHack 3.6 timeout.c $NHDT-Date: 1545182148 2018/12/19 01:15:48 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.89 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2018. */
/* NetHack may be freely redistributed. See license for details. */
case POT_OIL:
turns = obj->age;
+ if (obj->odiluted)
+ turns = (3L * turns + 2L) / 4L;
radius = 1; /* very dim light */
break;