/* Vampire Shadow *
* Archana */
object person;
void setup_shadow( object thing ) {
shadow( thing, 1 );
person = thing;
} /* setup_shadow() */
void destruct_shadow( object thing ) {
if ( thing == this_object() )
destruct( this_object() );
else
thing->destruct_shadow( thing );
} /* destruct_shadow() */
varargs int query_ac( string type, int damage, string zone ) {
int amount;
object attacker, weapon;
string material;
amount = (int)person->query_ac( type, damage, zone );
attacker = (object)this_object()->query_attacker();
if ( attacker ) {
weapon = (object)attacker->query_weapon();
if ( weapon && ( weapon != attacker ) )
material = weapon->query_material();
if ( ( material != "wood" ) )
return amount;
}
amount = amount + to_int( 0.95 *damage );
return amount;
} /* query_ac() */
int attack_ob(object thing){
object *symbols = filter (deep_inventory (thing) ,(:$1->query_property ("holy symbol") :));
if(sizeof(thing->effects_matching("mouth.smell.garlic"))){
this_object()->do_command(": sniffs the air carefully before screaming about garlic and running away.");
this_object()->run_away();
return 0;
}else{
if(sizeof (symbols)){
this_object()->do_command(": notices your holy symbol and with a look of sheer terror runs away.");
tell_creator(find_living("archana"), "symbols: %O\n", symbols);
this_object()->run_away();
return 0;
}else{
return 1;
/*return this_object()->attack_ob(thing);*/
}
}
}/*attack_ob()*/