From 44d5908a94d4297ad52c3c7d55651c1ad1bce3b3 Mon Sep 17 00:00:00 2001 From: Charles Otto Date: Sun, 1 Nov 2009 11:48:17 -0500 Subject: Lantern of shadows conduct issues (eronarn) ID the lantern of shadows when it first creatures a shadow, consider that first shadow an unintentional act for conduct purposes. --- crawl-ref/source/it_use3.cc | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/it_use3.cc b/crawl-ref/source/it_use3.cc index f059f78805..d05cab0499 100644 --- a/crawl-ref/source/it_use3.cc +++ b/crawl-ref/source/it_use3.cc @@ -147,7 +147,26 @@ void shadow_lantern_effect() { create_monster(mgen_data(MONS_SHADOW, BEH_FRIENDLY, 2, 0, you.pos(), MHITYOU)); - did_god_conduct(DID_NECROMANCY, 1); + + item_def * lantern = you.weapon(); + + // This should only get called when we are wielding a lantern + // of shadows. + ASSERT(lantern && lantern->base_type ==OBJ_MISCELLANY + && lantern->sub_type == MISC_LANTERN_OF_SHADOWS); + + bool known = fully_identified(*lantern); + did_god_conduct(DID_NECROMANCY, 1, known); + + // ID the lantern and refresh the weapon display + if(!known) + { + set_ident_type(*lantern, ID_KNOWN_TYPE); + set_ident_flags(*lantern, ISFLAG_IDENT_MASK); + + you.wield_change = true; + } + } } -- cgit v1.2.3-54-g00ecf