pdirt/data/
pdirt/data/HELP/
pdirt/data/HELP/0/
pdirt/data/HELP/F/
pdirt/data/HELP/G/
pdirt/data/HELP/H/
pdirt/data/HELP/J/
pdirt/data/HELP/K/
pdirt/data/HELP/O/
pdirt/data/HELP/Q/
pdirt/data/HELP/R/
pdirt/data/HELP/U/
pdirt/data/HELP/V/
pdirt/data/HELP/Y/
pdirt/data/HELP/Z/
pdirt/data/MESSAGES/
pdirt/data/POWERINFO/
pdirt/data/WIZ_ZONES/
pdirt/drv/
pdirt/drv/bin/
pdirt/drv/compiler/converter/
pdirt/drv/compiler/libs/
pdirt/drv/compiler/scripts/
pdirt/drv/include/AberChat/
pdirt/drv/include/InterMud/
pdirt/drv/include/machine/
pdirt/drv/src/InterMud/
pdirt/drv/src/Players/
pdirt/drv/utils/UAFPort/
pdirt/drv/utils/dnsresolv/
pdirt/drv/utils/gdbm/
#include "special.h"
#include "exits.h"
#include "undef.h"

Zone		= "start"
Author		= "Unknown"
EndZone		= "start"


Mobile		= puff
Location	= church@start
Strength	= 1500
Damage		= 32
Aggression      = 0
Armor		= 0
MFlags		= NegFireball
SFlags		= Female
Desc		= "
&+RPuff&* The Fractal Dragon is here with a faraway look in her eyes."
Trap		= all
@
  static char *m[] =
    {
      "&+CI love this mud. So many weird people! I get hit on all the time.&*",
      "&+CLook at the pretty &+Gc&+Bo&+Wl&+Mo&+Rr&+Ys&+C!&*",
      "&+CTo iterate is human.  To recurse, divine.&*",
      "&+CHow'd those fish get up there?&*",
      "&+CAnd NO you CANNOT use my scales to weigh that...&*",
      "&+CMy, don't you look handsome!&*",
      "&+CBarney must die! But then again... We could enslave him...&*",
      "&+CFree donuts at Warm Haven! What! No glazed!?&*",
      "&+CWhat? Did you say TORCH!?&*",
      "&+CI'm walking here!&*",
      "&+CI'm not only the president of scales club for women, I'm also a client.&*",
      "&+CLife is like a box of chocolates, you never know what you're gonna get.&*",
      "&+CYou think I'm pointless? Go ahead. Try to light that torch with your breath.&*",
      "&+CElvis has left the building!&*",
      "&+CHey, can I have some of that? Im HUNGRY!&*",
      "&+CHey! Keep those comments to your self!&*",
      "&+CNice weather we are having, isnt it.&*",
      "&+CHi!&*",
      "&+CYou are ugly. And you smell.&*"
    };
 static char *puffshouts[] =
  {
    "Where'd all my pals go?",
    "Hey, did you hear the one about Guxx and the treehouse?",
    "Who stole my towel?",
    "Why is everyone so quiet?",
    "I'm hungry!",
    "Anyone need a... LIGHT?",
    "Elvis lives!",
    "I love you!",
    "I hate being perfect",
    "Anyone have a breath mint?",
    "Hey, who forgot to feed the dragon?",
    "Who turned out the lights?",
    "Swing your partner do-see-do, and be sure not to crush his toe!",
    "I Want my mommy!!",
    "Say Marty, when will you give me the Zap command?",
    "Hey Delphina, can I play with my best friend the IcePrincess?" 
  };
 static char *puffactions[] =
  {
    "%s blinks, then wanders off aimlessly.\n",
    "%s coughs noisily.\n",
    "%s laughs at some private joke.\n",
    "%s dances around in circles and trips over her own tail.\n",
    "%s knocks you over and gives you a big hug.\n",
    "%s's stomach growls alarmingly.\n",
    "%s giggles insanely.\n",
    "%s wiggles her tail.\n",
    "%s looks at you and grins evilly.\n",
    "%s hugs you closely.\n",
    "%s hides behind a blanket.\n",
    "%s gives you a big sloppy kiss on your cheek.\n",
    "%s hiccups and blushes as a gout of flame spurts out her nostrils.\n"
  };

/* Puff's Assorted Yammerings */
 static char *pufftells[] =
  {
    "I'm Puff the Fractal Dragon. Who are you?",
    "Did you steal my towel?",
    "Why does everyone ignore me?",
    "Don't forget to feed me!",
    "Is it just me or has someone forgot to flush the toilet?",
    "Don't mind me, I'm just imagining you on a platter with a cream sauce.",
    "Why is the earth round?",
    "Never annoy a dragon, for thou art crunchy and good tasting.",
    "Can i have your autograph?",
    "Hmm. I think you'd be a bit too salty for my tastes.",
    "Do you think I'm pretty?",
    "Have you seen my friend Marty?",
    "Want to earn some quick score points?",
    "The world is to big for the two of us.",
    "I'm Puff the cookymonster, have some cookies?"
  };

 static char *puffpersonshouts[] =
  {
    "Why won't %s talk with me?",
    "I think %s stole my towel!",
    "Hey %s! Wheres my food?",
    "I'm sorry %s, was that *your* foot!?",
    "%s, wanna dance?",
    "I love you %s!",
    "Why does %s think I'm annoying? I'm not annoying, am I?",
    "%s, can i have your autograph?",
    "Don't listen to %s!",
    "Yo %s, when will you learn how to fight?",
    "Hey Ultima, %s is cheating!",
    "Will you marry me %s?"
  };
  
  int i = param_s.plx;
  char blob[MAX_COM_LEN];
  int puffrand;
 
  switch (event) {
  case E_ONTIMER:       /* Puffs communications and actions */
      puffrand = randperc();
      if (!(is_in_game(MOB_START_PUFF+max_players) || 
	  alive((MOB_START_PUFF+max_players)) < 0)
	 )
         return; /* Stop puff from shouting when dead */
 
      if (puffrand < 5)
      {  puffrand = randperc();

         if ((puffrand < 10) && (pvis(i) == 0) &&
             (!ststflg(MOB_START_PUFF+max_players, SFL_NOSHOUT))) 
         {  sprintf(blob, puffpersonshouts[MY_RANDOM () % ARRAYSIZE (puffpersonshouts)],
            pname(i));
            send_g_msg (DEST_ALL, puff_shout_test, MOB_START_PUFF+max_players, blob);
         }
         else if ((puffrand <15) && 
                  (!ststflg(i, SFL_DEAF)) && 
                  (!ltstflg(ploc(i),LFL_SOUNDPROOF) && 
                  ploc(MOB_START_PUFF+max_players) != ploc(i)) && 
                  (!ststflg(MOB_START_PUFF+max_players, SFL_DUMB)) &&
                  (!ststflg(i,SFL_NOPUFF))
                 )
         {  sendf(i, "Puff tells you '&+C%s&*'\n",
            pufftells[MY_RANDOM () % ARRAYSIZE (pufftells)]);
         }
      } 
      else if (puffrand > 7 && puffrand <10)
      {  puffrand = randperc ();
     
         if (puffrand <= 15 && !ststflg(param_s.pl, SFL_DUMB) && !ststflg(param_s.pl, SFL_NOPUFF)) 
            send_msg (param_s.loc,MODE_NSFLAG|MS(SFL_NOPUFF),LVL_MIN,LVL_MAX,NOBODY,NOBODY,
                   "\001p%s\003 says '%s'\n",
	           pname (param_s.pl), m[MY_RANDOM () % ARRAYSIZE (m)]);
         else 
         if (puffrand <= 23 && !ststflg(param_s.pl, SFL_NOSHOUT) && !ststflg(param_s.pl,SFL_NOPUFF)) 
            send_g_msg (DEST_ALL, puff_shout_test, param_s.pl, puffshouts[MY_RANDOM() % ARRAYSIZE(puffshouts)]);
         else if (puffrand <38 && ststflg(param_s.pl,SFL_NOPUFF))
            sendf (param_s.loc, puffactions[MY_RANDOM () % ARRAYSIZE (puffactions)],
	           pname(param_s.pl));
      }
      break;
  case E_ONMISC:
     if (param_s.misc == VERB_PUNT)
     {  send_player("Puff scowls, spins, and kicks you!\n");
        send_player("Puff tells you 'Never annoy a dragon, for thou art crunchy good tasting.'\n");
        setup_globals(param_s.pl);
        param_s.misc = param_s.pl;
        param_s.pl = param_s.plx;
        param_s.plx = param_s.misc;
     }
     break;
  case E_ONCOMM:
    if (alive(mobile(MOB_START_PUFF)) >= 0)
    {
     send_msg(DEST_ALL,MODE_NSFLAG|MS(SFL_NOPUFF),LVL_MIN,LVL_MAX,NOBODY,NOBODY,
             "Puff shouts &+C'Hey %s, %s'\n",
             pname(param_s.plx),param_s.buf);
     sendf(ploc(mobile(MOB_START_PUFF)),"Puff bounces with joy.\n");
    }
    else
       erreval();
    do_not_continue;
    break;
  default:
     break;
  }
@
EndTrap
EndMobile		= puff

Mobile            = ResetMaster
MFlags		= BarNorth, BarWest, BarSouth, BarEast, BarUp, BarDown
PFlags		= NoHassle, NoExor, NoSteal
Damage          = 100
Strength        = 1000000
Aggression      = 0
Speed           = 0
Location	= limbo@limbo
Desc	     = "The Reset Master is here to make sure everything goes as planned."
EndMobile             = ResetMaster



Object      	= umbrella
Location	= IN_ROOM:temple@start
OFlags		= Weapon
MaxState 	= 1
Damage    	= 5
BaseValue    	= 30
Size      	= 20
Weight    	= 15
Desc0   	= "A furled umbrella lies here."
Desc1   	= "An unfurled umbrella lies here."
Examine   	= "
It is a large, black umbrella, somewhat battered.  The initials 'M.Poppins'
are engraved on the handle."
Trap		= all
@
   switch (event) {
   case E_ONOPEN:
      send_player("You open the umbrella.\n");
      setobjstate(OBJ_START_UMBRELLA, 1);
      do_not_continue;
      break;
   case E_ONCLOSE:
      send_player("You close the umbrella.\n");
      setobjstate(OBJ_START_UMBRELLA, 0);
      do_not_continue;
      break;
   default: break;
   }
@
EndTrap
EndObject   		= umbrella

Object      	= fire
Location	= IN_ROOM:temple@start
OFlags		= Extinguish, Lit, NoGet
Desc0   	= "
A roaring &+Rfire&* burns here.  Its flames make the temple sparkle and glitter."
Examine   	= "
In the fire you see faint images of the ghosts of dead players.  The sparkles
fly up and away, disappearing amongst the pillars of the temple."
EndObject		= fire


Object      	= pit
Location	= IN_ROOM:temple@start
OFlags		= NoGet
Desc0   	= "There is a huge sacrificial pit at your feet."
Examine		= "
The pit allows you to sacrifice valuables to the gods for a small reward."
EndObject		= pit

Object      	= Church_Pit
Name	= "pit"
Location	= IN_ROOM:church@start
OFlags		= NoGet
Desc0   	= "There is a huge sacrificial pit at your feet."
Examine		= "
The pit allows you to sacrifice valuables to the gods for a small reward."
EndObject		= Church_Pit


Location	= "temple"
Down		= Ftrack@Valley
South		= Ftrack@Valley
West		= Welcome@intro
LFlags		= Peace
Title		= "&+WThe Temple Of Paradise&*"
Desc		= ^
   You stand in the Temple of Paradise, a huge stone structure whose walls are
decorated with ancient carvings and runes, some so old that even the priests no
longer know their meanings.
   A single set of steps lead south, descending the huge mound upon which the
temple is built and ending in the forests below.
^
EndLocation	= "temple"

Location	= "church"
South		= Green@Village
East		= Welcome@intro
/*West		= donations1@start*/
LFlags		= Peace
Title		= "&+WThe Village Church&*"
Desc		= ^
   You are in the village's small wooden church.  A gentle breeze blows into
the church disturbing the dust which dances in the sunbeams that shine faintly
through the windows.  A doorway leads south. A small archway to the East leads 
into the introduction area.
^
EndLocation	= "church"


Location	= "EntryPoint"
Down		= SteepPath@TheNewWorld
LFlags		= NoMobiles, Peaceful, Outdoors, RealTime
Title		= "&+WThe Stone Circle&*"
Desc		= ^
   You are on a hilltop that is covered with tough grass, surrounded by large
stone boulders. In the middle of the circle lies a large flat stone. You can
see some old bloodstains in the middle of the stone. 
   From the hilltop you can see that you are on a small island, not more than
a mile across. To the north you can see another small island. In the western
sky you can see some darks clouds. A steep path leads down to the base of the
hill.
^
EndLocation	= "EntryPoint"


Location	= "Donations1"
East		= church@start
LFlags		= Peace, Donations
Title		= "&+WThe donations room&*"
Desc		= ^
   You're standing in a sacrifical donations room. You can donate objects here
for other players without loosing the credit for finding them. Please beware 
that not all objects will be allowed in here!
^
EndLocation	= "Donations1"