/* -*- LPC -*- */ /* * $Locker: $ * $Id: alarm.c,v 1.1 1998/01/06 04:19:27 ceres Exp $ * $Log: alarm.c,v $ * Revision 1.1 1998/01/06 04:19:27 ceres * Initial revision * */ /** * This is the effect skelton docs. This effect * has a classification of "object.alarm". * <p> * Describe the arguments in here. * @classification object.alarm * @see help::effects */ #include <effect.h> /** @ignore yes */ string query_classification() { return "object.alarm"; } /** @ignore yes */ void beginning( object thing, mixed *args, int id ) { thing->submit_ee( "say_message", ({ 30, 90 }), EE_CONTINUOUS ); thing->submit_ee( 0, args[ 1 ], EE_REMOVE ); } /* beginning() */ void say_message( object thing, mixed *args, int id ) { object place, carrier; place = environment( thing ); if ( !place ) return; while ( environment( place ) ) { carrier = place; place = environment( place ); } if ( !carrier ) { tell_room( place, "A voice comes from "+ (string)thing->the_short() + ": "+ args[ 0 ] +"\n" ); return; } if ( living( carrier ) && ( environment( thing ) == carrier ) ) { tell_room( place, "A voice comes from "+ (string)thing->poss_short() + ": "+ args[ 0 ] +"\n" ); return; } tell_room( place, "A voice comes from somewhere near "+ (string)carrier->the_short() +": "+ args[ 0 ] +"\n", carrier ); tell_object( carrier, "A voice comes from somewhere nearby: "+ args[ 0 ] +"\n" ); } /* say_message() */