/* -*- LPC -*- */
/*
* $Locker: $
* $Id: death_ward.c,v 1.1 1998/01/06 04:40:23 ceres Exp $
* $Log: death_ward.c,v $
* Revision 1.1 1998/01/06 04:40:23 ceres
* Initial revision
*
*/
inherit "/std/effect_shadow";
void event_death( object thing, object *killers, object killer,
string room_mess, string killer_mess ) {
int damage;
object twit;
player->event_death( thing, killers, killer, room_mess, killer_mess );
if ( thing != (object)player->query_worn_by() )
return;
tell_room( environment( thing ), (string)player->the_short() +
" explodes in a ball of flame!\n" );
thing->remove_armour( player );
player->move( "/room/rubbish" );
foreach ( twit in killers ) {
if ( environment( twit ) != environment( thing ) )
continue;
damage = arg();
if ( twit == killer )
damage *= 2;
damage -= (int)twit->query_ac( "fire", damage );
if ( damage > 0 )
twit->adjust_hp( -damage );
if ( (int)twit->query_hp() < 0 )
twit->attack_by( player );
}
remove_this_effect();
} /* event_death() */