#include "path.h" #include "mail.h" inherit "/std/room"; object sign; void init() {::init(); add_action("do_mail", "mail"); add_action("do_mail", "read"); } void setup() {set_short("City of Daggerford: Scribe's Office"); set_long("\nCity of Daggerford: Scribe's Office\n\n" " You are standing inside the Daggerford Scribe's Office, a " "cramped and cluttered building, from which letters can be " "dictated and eventually delivered to lovers, enemies, men " "and women at arms, EVEN Immortals. Several gnomes lounge " "around in boredom behind the protection of a sturdy, metal " "mesh fence secured to the counter between you both. To " "both your south and west, exits lead back onto Wall " "Street.\n\n"); add_item(({"gnome", "gnomes", "scribe", "scribes"}), "The scribes " "all appear to be overworked and underpaid, evident by their " "bored posture and blank facial expressions. They are seated " "behind the counter 'anxiously' awaiting someone or " "something to disturb their daydreams and occasional cat-naps " "by stepping up to the privacy booth each is responsible " "for.\n\n"); add_item(({"counter", "countertop"}), "The counter has been built " "using large blocks of stone, worn smooth by the tremendous " "number of patrons who've rested their elbows on its surface " "while attempting to come up with the right words to say. A " "mesh fence rising from countertop to ceiling prevents " "customers from strangling the scribes who are well known " "for their sarcastic and often rude unsought comments.\n\n"); add_item(({"mesh", "fence", "mesh fence"}), "It must have been a " "tedious chore to fashion this fence which extends from " "the countertop to the ceiling. The links themselves " "seem to have been made with a dark metal, deceptively " "delicate in appearance. The space between each link " "prevents anything larger than a field mouse to pass, yet " "large enough not to inhibit your view of the other side " "of the counter.\n\n"); add_item(({"booth", "booths", "privacy booth"}), "The privacy booths " "are actually just thin partitions along the face of the " "counter, allowing patrons to dictate their messages " "privately, without having to worry about the curious ears " "of others who may be present.\n\n"); sign=add_sign("If you are interested in dictating a letter to one of " "our resident scribe's, please use the following syntax:\n" " mail <To Whom> is used to send a message\n" " read is used to read a message\n\n" "We are proud of the enthusiasm of the employees in our " "office and hope we get the chance to serve you in a most " "polite and speedy manner.\n\nThe Management\n"); set_light(85); add_exit("south", HERE+"raiseroom", "door"); } int do_mail(string TO_WHOM) {object ob; write("You step forward into one of the privacy booths, meekly " "informing the gnome of your intentions. The gnome grumbles " "something about hating to translate your rotten dialect.\n\n"); say(this_player()->query_cap_name()+" steps into one of the privacy " "booths. A sleepy gnome grudgingly acknowledges the presence " "of a customer with a loud yawn.\n\n"); ob=clone_object("/obj/handlers/post"); ob->move(this_player()); ob->start_mail(TO_WHOM); return 1; } void send_message(string TO_WHOM) {write("The gnome in front of you adds a flowery signature to the " "text, grabs a fairy from beneath the counter, and slams " "the poor fellow onto the paper. Groggily, the fairy scans " "the address before scampering through the fence, off to " "deliver the message.\n\n"); say(this_player()->query_cap_name()+" fumbles backwards, swatting " "the air, as a fairy sleepily speeds off to deliver a " "message.\n\n"); if(find_living(TO_WHOM)) call_out("after_call", 5, TO_WHOM); } void after_call(string TO_WHOM) {object TARGET; TARGET=find_living(TO_WHOM); if(!TARGET) return ; if(environment(TARGET)==this_object()) {say("The fairy returns through the door and whispers something " "to "+TARGET->query_cap_name()+".\n\n"); } else {tell_room(environment(TARGET), "A small fairy flies over to "+ TARGET->query_cap_name()+", whispers something, and then " "quickly flies off again.\n", ({TARGET})); call_out("come_back", 5); } tell_object(TARGET, "A small fairy flies over to your ear, and though " "it is difficult to deciper the whisper amidst the buzzing of " "fairy wings, you realize that a letter awaits you in the scribe's " "office.\n\n"); } void come_back() {tell_room(this_object(), "A tired and weary fairy returns from " "delivering its message, squeezes its way through the mesh fencing, " "growls menacingly at one of the gnomes in a high pitched voice, " "and returns to sleep beneath the counter.\n\n"); }