/*************************************************************************** /* armour that imbues a magical protection, and spell casting when worn */ #include <mudlib.h> inherit ARMOUR; inherit WAND; string protection; string query_protection() { return protection; } string set_protection(string str) { return protection = str; } int query_value() { return armour::query_value()+wand::query_value(); } status wear(string str) { /* redo the wear string */ status flag; flag = armour::wear(str); if(worn) { if(protection) environment()->add_spell_immunity(protection); wand::init(); } return flag; } status drop(status quit) { if(protection) environment()->remove_spell_immunity(protection); return armour::drop(quit); } status remove(string str) { move_object(this_object(), environment()); /* remove spell actions */ if(protection) environment()->remove_spell_immunity(protection); return armour::remove(str); } void init() { armour::init(); } /* for info */ string query_protection_string() { if(protection) { return "The "+ query_name() +" will protect you from "+ protection +" when it is worn.\n"; } }