#define FROG_HOME VOID_ROOM
inherit NPC_OBJ;
string from, to;
void setup() {
set_name("frog");
basic_setup("imp", 1, 1 + random(2) );
set_long("A small green frog with a large brightly coloured post office "
"hat. "+CAP(HE)+" has a small bag slung over "+HIS+" shoulder in "
"which are stuffed literally hundreds of letters. "+CAP(HE)+" has a "
"broad smile on "+HIS+" face and obviously enjoys "+HIS+" job.\n");
add_adjective( ({"small", "green", "post", "office"}) );
add_property("non vinable", the_short()+" quickly dodges out of the "
"vines' way.");
add_property("demon", 1 );
} /* setup() */
void adjust_hp( int hp, object at ) {
} /* adjust_hp() */
int attack_by( object thing ) {
tell_object( thing, "You don't want to attack the frog, surely?\n");
thing->stop_fight( TO );
thing->add_effect("/std/effects/ingested/calm", 60 );
return 0;
} /* attack_by() */
void found_player( object, mixed room, int ok ) {
// "room" is apparently the player we're trying to find.
if( !ok || !objectp( room ) ) {
do_command("'I almost had them!");
do_command("sigh");
return;
}
if( !room->query_visible( TO ) ) {
do_command("'That's odd...");
do_command("puzzle");
return;
}
if( to != from ) {
do_command("point "+to );
do_command( "whisper You have been sent some mail by "+
CAP(from) +"; go to a post office to read it. to "+to );
} else {
do_command("smirk "+to );
do_command("whisper Hey, weirdo, you sent yourself some mail, "
"just in case you didn't know. to "+to );
}
init_command("'Cheerio!", 1 );
init_command("wave", 1 );
} /* found_player() */
void got_home(object, mixed, int ok) {
if( !ok )
move( FROG_HOME, "$N hop$s in.", "$N hop$s away.");
do_command("'Ah, home again.");
} /* got_home() */
void send_mail( string t, string f ) {
to = t;
from = f;
if( find_player( to ) ) {
// First try and rush to that gosh darn player.
add_effect("/std/effects/npc/goto_destination",
({ find_player(to), ({ TO, "found_player" }), 10 }) );
}
add_effect("/std/effects/npc/goto_destination",
({ FROG_HOME, ({ TO, "got_home"}), 10 }));
} /* send_mail() */