inherit "/std/object";
#define EFFECT "/w/dogbolter/cracker_eff"
#define DURATION 180
void setup() {
set_name( "firecracker" );
add_alias( "cracker" );
add_adjective( "fire" );
add_plural( "crackers" );
set_short( "fire cracker" );
set_long( "This is a large red fire cracker of Auriental manufacture"
". It's the sort of thing that is thrown at weddings. You may "
"'light' it, and 'throw' it.\n" );
set_weight( 2 ); // Velly Big Clackah!
set_value( 500 );
set_read_mess("ACME Firecracker", "agatean");
//add_property( "no recycling", 1 );
}
void explosion() {
object victim;
if( !environment() )
return;
if( living( environment() ) ) {
victim = environment();
// A living is holding the clackah when it explodes. Tell them
// and tell the room.
tell_object( environment(), "%^BOLD%^%^RED%^$C$"+ the_short()
+" explodes in your face!\nMeep meep!%^RESET%^\n" );
environment()->add_effect (EFFECT, DURATION);
if( environment( environment() ) ) {
tell_room( environment( environment() ), "%^BOLD%^%^RED%^$C$"+
the_short() +" explodes in "+
environment()->the_short() +"'s face!\nMeep meep!%^RESET%^\n",
environment() );
// Hurt them by adjusting heir hp downwards.
// victim->adjust_hp( -5000000 );
// Check if they were killed
// Make the cracker "attack" the victim to show up in death inform
// if( victim->query_hp() < 0 )
// victim->attack_by( this_object() );
}
} else {
tell_room( environment(), "%^BOLD%^%^RED%^$C$"+ the_short()
+" explodes!%^RESET%^\n" );
}
move( "/room/rubbish" );
}
int do_light() {
call_out( (: explosion :), 10 );
add_succeeded_mess( "$N $V $D and smoke begins to pour out.\n",
({ }) );
return 1;
}
int do_throw() {
if( environment() && environment( environment() ) ) {
add_succeeded_mess( "$N $V $D on the ground.\n", ({ }) );
move( environment( environment() ) );
return 1;
} else {
add_failed_mess( "There is no ground to $V $D on. How very odd\n",
({ }) );
return 0;
}
}
void init() {
add_command( "light", "<direct:object:me>", (: do_light :) );
add_command( "throw", "<direct:object:me>", (: do_throw :) );
}
string query_death_reason() {
return "being blown up by a fire cracker, in true Road Runner Style.\n"
"%^BOLD%^Meep meep!%^RED%^";
}