]> granicus.if.org Git - nethack/commitdiff
catch_lit lights cursed candelabrum
authorcohrs <cohrs>
Sat, 9 Feb 2002 08:13:18 +0000 (08:13 +0000)
committercohrs <cohrs>
Sat, 9 Feb 2002 08:13:18 +0000 (08:13 +0000)
also, cursed lamps should sometimes fail to light, and check "spe" of
candelabrum before checking age

src/apply.c

index 88aa879bbbd9d908a2deb7be568351f5fd840ef5..ae276232a96e34448ecbbd609e3b33dec1358687 100644 (file)
@@ -1024,12 +1024,19 @@ struct obj *obj;
                obj->otyp == WAX_CANDLE || obj->otyp == TALLOW_CANDLE ||
                obj->otyp == OIL_LAMP || obj->otyp == MAGIC_LAMP ||
                obj->otyp == BRASS_LANTERN || obj->otyp == POT_OIL)) {
-           if (obj->otyp == MAGIC_LAMP && obj->spe == 0)
+           if ((obj->otyp == MAGIC_LAMP ||
+                obj->otyp == CANDELABRUM_OF_INVOCATION) &&
+               obj->spe == 0)
                return FALSE;
            else if (obj->otyp != MAGIC_LAMP && obj->age == 0)
                return FALSE;
            if (!get_obj_location(obj, &x, &y, 0))
                return FALSE;
+           if (obj->otyp == CANDELABRUM_OF_INVOCATION && obj->cursed)
+               return FALSE;
+           if ((obj->otyp == OIL_LAMP || obj->otyp == MAGIC_LAMP ||
+                obj->otyp == BRASS_LANTERN) && obj->cursed && !rn2(2))
+               return FALSE;
            if (obj->where == OBJ_MINVENT ? cansee(x,y) : !Blind)
                pline("%s %s light!", Yname2(obj), otense(obj, "catch"));
            begin_burn(obj, TRUE);