/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
#include "path.h"
inherit "/std/room.c";

object guard1, guard2;

setup()
{
   set_short("The city's southern gate");
   set_long("You are at the southern end of Pebblestone Avenue. The "
      +"southern gate of the city towers above you. \n");
   add_item( ({"gate", "arch", "southern gate"}),
      "The southern city gate is a wide stone arch with a heavy "
      +"oak portcullis to defend it. \n");
   add_item( ({"road", "street", "avenue", "pebblestone avenue", "Pebblestone Avenue"}),
      "Pebblestone Avenue is a dull street which runs north from "
      +"here into "+CITYNAME+". \n");
   add_exit("north", HOMECITY+"pebblestone15", "road");
   add_exit("south", SURROUND+"southroad1", "gate");
   modify_exit("south", ({"function", "leave_city"}) );
   guard1 = clone_object(MONSTERS+"guard");
   guard1->move(this_object());
   guard2 = clone_object(MONSTERS+"guard");
   guard2->move(this_object());
   set_zone("docks");
   set_light(60);
}

int leave_city()
{
   if(guard1 || guard2)
      {
      if((string)this_player()->query_race_ob() == "std/races/polymorph")
         {
         notify_fail("The guard stops you, saying 'Hey, you'll have "
               +"to choose a race before leaving the city!'\n");
         say("A guard stops "+this_player()->query_cap_name()
            +" from leaving the city, on the grounds that "
            +this_player()->query_pronoun()+" is still a polymorph.\n");
         return 0;
      }
      if(this_player()->query_level() < 2)
         {
         notify_fail("A guard stops you leaving the city, saying "
               +"'You are to inexperinced to leave the city yet, "
            +this_player()->query_cap_name()+". Why not gain "
            +"a bit more experince before venturing out into the "
            +"big bad world?'\n");
         say("A guard stops "+this_player()->query_cap_name()+" leaving"
            +" the city on the grounds that "+this_player()->query_pronoun()
            +" is too inexperienced.\n");
         return 0;
      }
      if(this_player()->query_level() < 5)
         {
         write("A guard steps up to you, saying 'Beware, "
            +this_player()->query_cap_name()+". You are still "
            +"rather inexperienced to be leaving the city. Do not "
            +"wander too far!'\n");
         say("A guard says something to "+this_player()->query_cap_name()+
            " before allowing "+this_player()->query_objective()
            +" to leave the city.\n");
         return 1;
      }
      write("A guard gives you a cursory glance before "
         +"motioning you on.\n");
      return 1;
   }
write("There are no guards here, so you pass freely through the gate.\n");
return 1;
}