/***************************************************************************
/* 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";
  }
}