/* Lemming, 03/07/2000 */
inherit "/std/effect_shadow";
object vamp_corpse( object corpse ) {
string player_name;
if( corpse && objectp( corpse )
&& !corpse->query_property( "vampire corpse" )
&& corpse->query_race_name() == "human" ) {
corpse->add_property( "no burial", 1 );
corpse->add_property( "vampire corpse", 1 );
if( stringp( player->query_property( "determinate" ) ) )
player_name = player->query_property( "determinate" ) +
player->query_short();
else
player_name =
"/global/events"->convert_message( player->a_short() );
corpse->add_effect( "/std/effects/npc/vampirecorpse_effect",
({ player_name, copy( player->query_gender() ),
copy( player->query_level() ), 0 }) );
}
return corpse;
} /* vamp_corpse() */
varargs object do_death( object thing, object weapon, string attack ) {
int *effs;
object corpse;
effs = player->effects_matching( "body.bite.vampire" );
call_out( "remove_this_effect", 2 );
corpse = player->do_death( thing, weapon, attack );
vamp_corpse( corpse );
return corpse;
} /* do_death() */
object make_corpse() {
object corpse;
corpse = player->make_corpse();
vamp_corpse( corpse );
return corpse;
} /* make_corpse() */