WARNING: Cannot open /home/mudpy/data for reading. WARNING: Cannot open /home/mudpy/actor for reading. WARNING: Cannot open /home/mudpy/prop for reading. WARNING: Cannot open /home/mudpy/room for reading. meta = { .file:/home/mudpy/arch.! = 'Element Archetype Definitions', .file:/home/mudpy/arch.!lock = True, .file:/home/mudpy/comm.! = 'Command Definitions', .file:/home/mudpy/comm.!lock = True, .file:/home/mudpy/katarsis/index.! = 'Index for Katarsis', .file:/home/mudpy/katarsis/index.!load.pride_square = ['file:pride_square/index'], .file:/home/mudpy/katarsis/index.!lock = True, .file:/home/mudpy/katarsis/pride_square/index.! = 'Index for the Pride Square Area of Katarsis', .file:/home/mudpy/katarsis/pride_square/index.!load.prop = ['file:prop'], .file:/home/mudpy/katarsis/pride_square/index.!load.room = ['file:room'], .file:/home/mudpy/katarsis/pride_square/index.!lock = True, .file:/home/mudpy/katarsis/pride_square/prop.! = 'Props for the Pride Square Area of Katarsis', .file:/home/mudpy/katarsis/pride_square/room.! = 'Rooms for the Pride Square Area of Katarsis', .file:/home/mudpy/menu.! = 'Menu Definitions', .file:/home/mudpy/menu.!lock = True, .file:/home/mudpy/misc.! = 'Miscellaneous Settings', .file:/home/mudpy/misc.!lock = True, .file:/home/mudpy/mudpy.conf.! = 'This is the top-level mudpy configuration file.', .file:/home/mudpy/mudpy.conf.!load.katarsis = ['file:katarsis/index'], .file:/home/mudpy/mudpy.conf.!load.mudpy = ['file:misc'], .file:/home/mudpy/mudpy.conf.!lock = True, } universe = { .arch.actor.is_actor = True, .arch.avatar.inherit = ['actor'], .arch.avatar.location:default = '.katarsis.room.0,0,1', .comm.chat.description = 'Enter and leave chat mode.', .comm.chat.help = 'The chat command toggles chat mode. When in chat mode, all input is passed as a parameter to the say command, unless prepended by an exclamation mark (!). For example, to leave chat mode, use:$(eol)$(eol) !chat', .comm.chat.see_also = ['say'], .comm.create.administrative = True, .comm.create.description = 'Create a new element in the universe.', .comm.create.help = 'Ways to create an element:$(eol)$(eol) create actor:fred$(eol) create other:garply foo/bar/baz', .comm.delete.administrative = True, .comm.delete.description = 'Delete an existing facet from an element.', .comm.delete.help = 'You can delete any facet of an element as follows:$(eol)$(eol) delete location:boardroom terrain', .comm.destroy.administrative = True, .comm.destroy.description = 'Destroy an existing element in the universe.', .comm.destroy.help = 'You can destroy any element in the universe as follows:$(eol)$(eol) destroy prop:dagger', .comm.halt.administrative = True, .comm.halt.description = 'Shut down the world.', .comm.halt.help = 'This will save all active accounts, disconnect all clients and stop the entire program.', .comm.help.description = 'List commands or get help on one.', .comm.help.help = 'This will list all comand words available to you along with a brief description or, alternatively, give you detailed information on one command.', .comm.look.description = 'Look around.', .comm.look.help = 'With the look command, you can see where you are.', .comm.move.description = 'Move in a specific direction.', .comm.move.help = 'You move in a direction by entering:$(eol)$(eol) move north', .comm.quit.description = 'Leave Katarsis.', .comm.quit.help = 'This will deactivate your avatar and return you to the main menu.', .comm.reload.administrative = True, .comm.reload.description = 'Reload modules and data.', .comm.reload.help = 'This will reload all python modules and read-only data files.', .comm.say.description = 'State something out loud.', .comm.say.help = 'This allows you to speak to other characters within the same room. If you end your sentence with punctuation, the message displayed will incorporate an appropriate action (ask, exclaim, et cetera). It will also correct common typographical errors, add punctuation and capitalize your sentence as needed (assuming you speak one sentence per line). For example:$(eol)$(eol) > say youre sure i went teh wrong way?$(eol) You ask, "You\'re sure I went the wrong way?"', .comm.say.see_also = ['chat'], .comm.set.administrative = True, .comm.set.description = 'Set a facet of an element.', .comm.set.help = 'Invoke it like this:$(eol)$(eol) set actor:dominique description You see nothing special.', .comm.show.administrative = True, .comm.show.description = 'Show various data.', .comm.show.help = 'Here are the possible incantations ( is required, [option] is optional, (note) is a note):$(eol)$(eol) show categories (list all element category names)$(eol) show category (list the elements in a category)$(eol) show element (list facet definitions for an element)$(eol) show file (list elements in a file)$(eol) show files (list all element data files)$(eol) show log [level [start [stop]]] (list logs above level from start to stop)$(eol) show result (evaluates a python expression)$(eol) show time (returns several current timer values)', .katarsis.pride_square.prop.fountain.impression = 'An inviting public fountain bubbles here, tempting you with thirst.', .katarsis.pride_square.prop.fountain.keywords = ['fountain', 'water'], .katarsis.pride_square.prop.fountain.location = '.room:0,0,0', .menu.activate_avatar.branch_to:a = 'main_utility', .menu.activate_avatar.choice:a = 'abort selection', .menu.activate_avatar.default_choice = '1', .menu.activate_avatar.description = 'This is the list of avatars available for you to awaken.', .menu.activate_avatar.generate_choices = 'dict([(str(x+1),y) for x,y in enumerate(user.list_avatar_names())])', .menu.activate_avatar.menu_action = 'user.activate_avatar_by_index(int(choice)-1)', .menu.activate_avatar.menu_action:a = 'pass', .menu.activate_avatar.prompt = 'Whom would you like to awaken?', .menu.checking_new_account_name.branch_to:d = 'disconnecting', .menu.checking_new_account_name.branch_to:g = 'entering_account_name', .menu.checking_new_account_name.branch_to:n = 'entering_new_password', .menu.checking_new_account_name.choice:d = 'disconnect now', .menu.checking_new_account_name.choice:g = 'go back', .menu.checking_new_account_name.choice:n = 'new account', .menu.checking_new_account_name.default_choice = 'd', .menu.checking_new_account_name.description = 'There is no existing account for "$(account)" (note that an account name is not the same as a character name). Would you like to create a new account by this name, go back and enter a different name or disconnect now?', .menu.checking_new_account_name.menu_action:d = 'user.account.destroy()', .menu.checking_new_account_name.menu_action:g = 'user.account.destroy()', .menu.checking_new_account_name.prompt = 'Enter your choice:', .menu.checking_password.error:incorrect = 'Incorrect password, please try again...', .menu.checking_password.hide_input = True, .menu.checking_password.prompt = 'Password:', .menu.choose_gender.branch_to = 'choose_name', .menu.choose_gender.choice:f = 'female', .menu.choose_gender.choice:m = 'male', .menu.choose_gender.description = 'First, your new avatar needs a gender. In the world of Katarsis, all avatars are either male or female.', .menu.choose_gender.menu_action = 'user.avatar.set("gender", user.menu_choices[choice])', .menu.choose_gender.prompt = 'Pick a gender for your new avatar:', .menu.choose_name.branch_to = 'main_utility', .menu.choose_name.branch_to:g = 'choose_name', .menu.choose_name.choice:g = 'generate more names', .menu.choose_name.default_choice = 'g', .menu.choose_name.description = "Your new avatar needs a name. This will be the name with which $(tpsp) grew up, and will initially be the name by which $(tpsp) is known in the world of Katarsis. There are ways for your new avatar to make a name for $(tpop)self over time, so $(tpsp) won't be stuck going by such an unremarkable name forever.", .menu.choose_name.generate_choices:1 = 'random_name()', .menu.choose_name.generate_choices:2 = 'random_name()', .menu.choose_name.generate_choices:3 = 'random_name()', .menu.choose_name.generate_choices:4 = 'random_name()', .menu.choose_name.generate_choices:5 = 'random_name()', .menu.choose_name.generate_choices:6 = 'random_name()', .menu.choose_name.generate_choices:7 = 'random_name()', .menu.choose_name.menu_action = 'user.avatar.set("name", user.menu_choices[choice])', .menu.choose_name.prompt = 'Choose a name for $(tpop):', .menu.delete_account.branch_to:n = 'main_utility', .menu.delete_account.branch_to:y = 'disconnecting', .menu.delete_account.choice:n = "no, don't delete my account", .menu.delete_account.choice:y = 'yes, permanently delete my account', .menu.delete_account.default_choice = 'n', .menu.delete_account.description = 'By deleting your account, all your avatars will also be permanently deleted.', .menu.delete_account.menu_action:y = 'user.destroy()', .menu.delete_account.prompt = 'Are you certain you wish to permanently delete your account?', .menu.delete_avatar.branch_to = 'main_utility', .menu.delete_avatar.branch_to:a = 'main_utility', .menu.delete_avatar.choice:a = 'abort selection', .menu.delete_avatar.default_choice = 'a', .menu.delete_avatar.description = 'This is the list of avatars available for you to delete.', .menu.delete_avatar.generate_choices = 'dict([(str(x+1),y) for x,y in enumerate(user.list_avatar_names())])', .menu.delete_avatar.menu_action = 'user.delete_avatar(user.account.getlist("avatars")[int(choice)-1])', .menu.delete_avatar.menu_action:a = 'pass', .menu.delete_avatar.prompt = 'Whom would you like to delete?', .menu.disconnecting.description = '$(red)Disconnecting...$(nrm)', .menu.disconnecting_duplicates.prompt = '$(red)Closing your previous connection...$(nrm)$(eol)', .menu.entering_account_name.description = '$(inc:login.txt)', .menu.entering_account_name.error:bad = 'Your account name needs to contain only digits (0-9) and letters (a-z).', .menu.entering_account_name.prompt = 'Identify yourself:', .menu.entering_new_password.error:differs = 'The two passwords did not match. Try again...', .menu.entering_new_password.error:weak = 'That is a weak password... Try something at least 7 characters long with a combination of mixed-case letters, numbers and punctuation/spaces.', .menu.entering_new_password.hide_input = True, .menu.entering_new_password.prompt = 'Enter a new password for "$(account)":', .menu.main_utility.branch_to:a = 'activate_avatar', .menu.main_utility.branch_to:c = 'choose_gender', .menu.main_utility.branch_to:d = 'delete_avatar', .menu.main_utility.branch_to:l = 'disconnecting', .menu.main_utility.branch_to:p = 'delete_account', .menu.main_utility.choice:a = 'awaken an existing avatar', .menu.main_utility.choice:c = 'create a new avatar', .menu.main_utility.choice:d = 'delete an unwanted avatar', .menu.main_utility.choice:l = 'leave katarsis for now', .menu.main_utility.choice:p = 'permanently remove your account', .menu.main_utility.description = '$(red)$(inc:banner.txt)$(nrm)$(eol)$(eol)From here you can awaken, create and delete avatars. An avatar is your persona in the world of Katarsis. You can also leave or permanently delete your account.', .menu.main_utility.menu_action:c = 'user.new_avatar()', .menu.main_utility.only_if:a = 'user.account.getlist("avatars")', .menu.main_utility.only_if:c = 'len(user.account.getlist("avatars")) < universe.categories["internal"]["limits"].getint("max_avatars")', .menu.main_utility.only_if:d = 'user.account.getlist("avatars")', .menu.main_utility.prompt = 'What would you like to do?', .menu.verifying_new_password.hide_input = True, .menu.verifying_new_password.prompt = 'Enter the same new password again:', .mudpy.data = 'file:data', .mudpy.data:account = 'file(p):account', .mudpy.data:actor = 'file:actor', .mudpy.data:arch = 'file:arch', .mudpy.data:comm = 'file:comm', .mudpy.data:menu = 'file:menu', .mudpy.data:prop = 'file:prop', .mudpy.data:room = 'file:room', .mudpy.facet = 'str', .mudpy.facet:admin_account = 'str', .mudpy.facet:administrative = 'bool', .mudpy.facet:branch_to = 'str', .mudpy.facet:choice = 'str', .mudpy.facet:closeable = 'bool', .mudpy.facet:data = 'str', .mudpy.facet:default_choice = 'str', .mudpy.facet:default_punctuation = 'str', .mudpy.facet:description = 'str', .mudpy.facet:enter_term = 'str', .mudpy.facet:error = 'str', .mudpy.facet:exit_term = 'str', .mudpy.facet:fork_daemon = 'bool', .mudpy.facet:freq = 'int', .mudpy.facet:generate_choices = 'str', .mudpy.facet:gridlinks = 'list', .mudpy.facet:help = 'str', .mudpy.facet:hide_input = 'bool', .mudpy.facet:host_address = 'str', .mudpy.facet:idle_disconnect = 'int', .mudpy.facet:idle_warn = 'int', .mudpy.facet:impression = 'str', .mudpy.facet:inherit = 'list', .mudpy.facet:is_actor = 'bool', .mudpy.facet:keep_backups = 'int', .mudpy.facet:keywords = 'list', .mudpy.facet:link = 'str', .mudpy.facet:location = 'str', .mudpy.facet:log_buffer = 'int', .mudpy.facet:log_file = 'str', .mudpy.facet:log_stdout = 'bool', .mudpy.facet:log_syslog = 'bool', .mudpy.facet:loop_increment = 'float', .mudpy.facet:max_avatars = 'int', .mudpy.facet:menu_action = 'str', .mudpy.facet:name = 'str', .mudpy.facet:only_if = 'str', .mudpy.facet:password_tries = 'int', .mudpy.facet:pickproof = 'bool', .mudpy.facet:pid_file = 'str', .mudpy.facet:port_number = 'int', .mudpy.facet:prompt = 'str', .mudpy.facet:see_also = 'list', .mudpy.facet:speak_actions = 'dict', .mudpy.facet:terrain = 'str', .mudpy.facet:typo_replacements = 'dict', .mudpy.facet:vector = 'tuple', .mudpy.lang.default_punctuation = '.', .mudpy.lang.speak_actions = {'!': 'exclaim', '...': 'muse', '-': 'begin', ',': 'begin', '.': 'say', ';': 'begin', ':': 'begin', '?': 'ask'}, .mudpy.lang.typo_replacements = {"i'll": "I'll", 'teh': 'the', 'i': 'I', 'youre': "you're", 'theyre': "they're", "i'd": "I'd", "i'm": "I'm"}, .mudpy.lim.max_avatars = 7, .mudpy.lim.password_tries = 3, .mudpy.move.enter_term:down = 'above', .mudpy.move.enter_term:east = 'the west', .mudpy.move.enter_term:north = 'the south', .mudpy.move.enter_term:south = 'the north', .mudpy.move.enter_term:up = 'below', .mudpy.move.enter_term:west = 'the east', .mudpy.move.exit_term:down = 'downward', .mudpy.move.exit_term:east = 'to the east', .mudpy.move.exit_term:north = 'to the north', .mudpy.move.exit_term:south = 'to the south', .mudpy.move.exit_term:up = 'upward', .mudpy.move.exit_term:west = 'to the west', .mudpy.move.vector:down = (0, 0, -1), .mudpy.move.vector:east = (1, 0, 0), .mudpy.move.vector:north = (0, 1, 0), .mudpy.move.vector:south = (0, -1, 0), .mudpy.move.vector:up = (0, 0, 1), .mudpy.move.vector:west = (-1, 0, 0), .mudpy.net.host_address = '127.0.0.1', .mudpy.net.port_number = 6669, .mudpy.proc.log_buffer = 1000, .mudpy.proc.log_stdout = True, .mudpy.time.freq:log = 1200, .mudpy.time.freq:save = 120, .mudpy.time.idle_disconnect:active = 1200000, .mudpy.time.idle_disconnect:default = 1200, .mudpy.time.idle_disconnect:entering_account_name = 120, .mudpy.time.idle_warn:active = 1000000, .mudpy.time.idle_warn:default = 1000, .mudpy.time.idle_warn:entering_account_name = 100, .mudpy.time.loop_increment = 0.5, .room:-1,-1,0.description = 'This booth sells cloth garments of every description. Fine silks and linens line the walls, draped from every protrusion and stacked on every surface.', .room:-1,-1,0.gridlinks = ['north'], .room:-1,-1,0.name = "Tailor's Booth", .room:-1,-1,0.terrain = 'indoors', .room:-1,-3,0.closeable:south = True, .room:-1,-3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Avarice Avenue runs East and West here while a storefront beckons to the South.', .room:-1,-3,0.description:south = 'This is the entrance to a shop.', .room:-1,-3,0.gridlinks = ['east', 'west'], .room:-1,-3,0.keywords:south = ['shop'], .room:-1,-3,0.link:south = '.room:146', .room:-1,-3,0.name = 'West Avarice Avenue', .room:-1,-3,0.pickproof:south = True, .room:-1,-3,0.terrain = 'city', .room:-1,0,0.closeable:south = True, .room:-1,0,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Envy Avenue runs East and West here while a merchant's booth lies to the South.", .room:-1,0,0.description:south = "This is a simple merchant's booth.", .room:-1,0,0.gridlinks = ['east', 'south', 'west'], .room:-1,0,0.keywords:south = ['booth'], .room:-1,0,0.name = 'West Envy Avenue', .room:-1,0,0.pickproof:south = True, .room:-1,0,0.terrain = 'city', .room:-1,3,0.closeable:south = True, .room:-1,3,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Sloth Avenue runs East and West here while a merchant's booth lies to the South.", .room:-1,3,0.description:south = "This is a simple merchant's booth.", .room:-1,3,0.gridlinks = ['east', 'west'], .room:-1,3,0.keywords:south = ['booth'], .room:-1,3,0.link:south = '.room:139', .room:-1,3,0.name = 'West Sloth Avenue', .room:-1,3,0.pickproof:south = True, .room:-1,3,0.terrain = 'city', .room:-2,-3,0.closeable:north = True, .room:-2,-3,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Avarice Avenue runs East and West here while a merchant's booth lies to the North.", .room:-2,-3,0.description:north = "This is a simple merchant's booth.", .room:-2,-3,0.gridlinks = ['east', 'west'], .room:-2,-3,0.keywords:north = ['booth'], .room:-2,-3,0.link:north = '.room:145', .room:-2,-3,0.name = 'West Avarice Avenue', .room:-2,-3,0.pickproof:north = True, .room:-2,-3,0.terrain = 'city', .room:-2,0,0.closeable:north = True, .room:-2,0,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Envy Avenue runs East and West here while a merchant's booth lies to the North.", .room:-2,0,0.description:north = "This is a simple merchant's booth.", .room:-2,0,0.gridlinks = ['east', 'north', 'west'], .room:-2,0,0.keywords:north = ['booth'], .room:-2,0,0.name = 'West Envy Avenue', .room:-2,0,0.pickproof:north = True, .room:-2,0,0.terrain = 'city', .room:-2,1,0.closeable:south = True, .room:-2,1,0.description = 'Shoes, shoes and more shoes... You need footwear, we have footwear. Look around, see what you like. Best prices in town! So you gonna buy something, stranger?', .room:-2,1,0.gridlinks = ['south'], .room:-2,1,0.keywords:south = ['booth'], .room:-2,1,0.name = "Cobbler's Booth", .room:-2,1,0.pickproof:south = True, .room:-2,1,0.terrain = 'indoors', .room:-2,3,0.closeable:north = True, .room:-2,3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Sloth Avenue runs East and West here while a storefront beckons to the North.', .room:-2,3,0.description:north = 'This is the entrance to a shop.', .room:-2,3,0.gridlinks = ['east', 'west'], .room:-2,3,0.keywords:north = ['shop'], .room:-2,3,0.link:north = '.room:140', .room:-2,3,0.name = 'West Sloth Avenue', .room:-2,3,0.pickproof:north = True, .room:-2,3,0.terrain = 'city', .room:-3,-1,0.closeable:east = True, .room:-3,-1,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Lust Street runs North and South here while a merchant's booth lies to the East.", .room:-3,-1,0.description:east = "This is a simple merchant's booth.", .room:-3,-1,0.gridlinks = ['north', 'south'], .room:-3,-1,0.keywords:east = ['booth'], .room:-3,-1,0.link:east = '.room:143', .room:-3,-1,0.name = 'South Lust Street', .room:-3,-1,0.pickproof:east = True, .room:-3,-1,0.terrain = 'city', .room:-3,-2,0.closeable:west = True, .room:-3,-2,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Lust Street runs North and South here while a storefront beckons to the West.', .room:-3,-2,0.description:west = 'This is the entrance to a shop.', .room:-3,-2,0.gridlinks = ['north', 'south'], .room:-3,-2,0.keywords:west = ['shop'], .room:-3,-2,0.link:west = '.room:144', .room:-3,-2,0.name = 'South Lust Street', .room:-3,-2,0.pickproof:west = True, .room:-3,-2,0.terrain = 'city', .room:-3,-3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the East lies Avarice Avenue while Lust Street leads North.', .room:-3,-3,0.gridlinks = ['east', 'north'], .room:-3,-3,0.name = 'The Corner of Lust and Avarice', .room:-3,-3,0.terrain = 'city', .room:-3,0,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the East and West lies Envy Avenue while Lust Street runs North and South.', .room:-3,0,0.gridlinks = ['east', 'north', 'south', 'west'], .room:-3,0,0.name = 'Lust and West Envy', .room:-3,0,0.terrain = 'city', .room:-3,1,0.closeable:west = True, .room:-3,1,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Lust Street runs North and South here while a storefront beckons to the West.', .room:-3,1,0.description:west = 'This is the entrance to a shop.', .room:-3,1,0.gridlinks = ['north', 'south'], .room:-3,1,0.keywords:west = ['shop'], .room:-3,1,0.link:west = '.room:142', .room:-3,1,0.name = 'North Lust Street', .room:-3,1,0.pickproof:west = True, .room:-3,1,0.terrain = 'city', .room:-3,2,0.closeable:east = True, .room:-3,2,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Lust Street runs North and South here while a merchant's booth lies to the East.", .room:-3,2,0.description:east = "This is a simple merchant's booth.", .room:-3,2,0.gridlinks = ['north', 'south'], .room:-3,2,0.keywords:east = ['booth'], .room:-3,2,0.link:east = '.room:141', .room:-3,2,0.name = 'North Lust Street', .room:-3,2,0.pickproof:east = True, .room:-3,2,0.terrain = 'city', .room:-3,3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the East lies Sloth Avenue while Lust Street leads South.', .room:-3,3,0.gridlinks = ['east', 'south'], .room:-3,3,0.name = 'The Corner of Lust and Sloth', .room:-3,3,0.terrain = 'city', .room:-4,0,0.closeable:west = True, .room:-4,0,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the East, Envy Avenue heads into the market while the rest of the city lies trough the gate to the West.', .room:-4,0,0.description:west = 'This gate leads from the market to the city proper.', .room:-4,0,0.gridlinks = ['east'], .room:-4,0,0.keywords:west = ['gate'], .room:-4,0,0.link:west = '.room:0', .room:-4,0,0.name = 'West Market Gate', .room:-4,0,0.pickproof:west = True, .room:-4,0,0.terrain = 'city', .room:0,-1,0.closeable:east = True, .room:0,-1,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Anger Street runs North and South here while a merchant's booth lies to the East.", .room:0,-1,0.description:east = "This is a simple merchant's booth.", .room:0,-1,0.gridlinks = ['north', 'south'], .room:0,-1,0.keywords:east = ['booth'], .room:0,-1,0.link:east = '.room:155', .room:0,-1,0.name = 'South Anger Street', .room:0,-1,0.pickproof:east = True, .room:0,-1,0.terrain = 'city', .room:0,-2,0.closeable:west = True, .room:0,-2,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Anger Street runs North and South here while a merchant's booth lies to the West.", .room:0,-2,0.description:west = "This is a simple merchant's booth.", .room:0,-2,0.gridlinks = ['north', 'south'], .room:0,-2,0.keywords:west = ['booth'], .room:0,-2,0.link:west = '.room:156', .room:0,-2,0.name = 'South Anger Street', .room:0,-2,0.pickproof:west = True, .room:0,-2,0.terrain = 'city', .room:0,-3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the East and West lies Avarice Avenue while Anger Street runs North and South.', .room:0,-3,0.gridlinks = ['east', 'north', 'south', 'west'], .room:0,-3,0.name = 'South Anger and Avarice', .room:0,-3,0.terrain = 'city', .room:0,-4,0.closeable:south = True, .room:0,-4,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the North, Anger Street heads into the market while the rest of the city lies trough the gate to the South.', .room:0,-4,0.description:south = 'This gate leads from the market to the city proper.', .room:0,-4,0.gridlinks = ['north'], .room:0,-4,0.keywords:south = ['gate'], .room:0,-4,0.link:south = '.room:0', .room:0,-4,0.name = 'South Market Gate', .room:0,-4,0.pickproof:south = True, .room:0,-4,0.terrain = 'city', .room:0,0,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the East and West lies Envy Avenue while Anger Street runs North and South. A short flight of stairs leads up to the bandstand.', .room:0,0,0.gridlinks = ['east', 'north', 'south', 'up', 'west'], .room:0,0,0.name = 'Pride Square', .room:0,0,0.terrain = 'city', .room:0,0,1.description = 'The stand is currently not in use for a performance, but shoppers gather here to rest and chat with one another. A pleasantly cool breeze coupled with a nice view of the market makes this a good place to relax.', .room:0,0,1.gridlinks = ['down'], .room:0,0,1.name = 'The Bandstand', .room:0,0,1.terrain = 'indoors', .room:0,1,0.closeable:west = True, .room:0,1,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Anger Street runs North and South here while a merchant's booth lies to the West.", .room:0,1,0.description:west = "This is a simple merchant's booth.", .room:0,1,0.gridlinks = ['north', 'south'], .room:0,1,0.keywords:west = ['booth'], .room:0,1,0.link:west = '.room:137', .room:0,1,0.name = 'North Anger Street', .room:0,1,0.pickproof:west = True, .room:0,1,0.terrain = 'city', .room:0,2,0.closeable:east = True, .room:0,2,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Anger Street runs North and South here while a merchant's booth lies to the East.", .room:0,2,0.description:east = "This is a simple merchant's booth.", .room:0,2,0.gridlinks = ['north', 'south'], .room:0,2,0.keywords:east = ['booth'], .room:0,2,0.link:east = '.room:138', .room:0,2,0.name = 'North Anger Street', .room:0,2,0.pickproof:east = True, .room:0,2,0.terrain = 'city', .room:0,3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the East and West lies Sloth Avenue while Anger Street runs North and South.', .room:0,3,0.gridlinks = ['east', 'north', 'south', 'west'], .room:0,3,0.name = 'North Anger and Sloth', .room:0,3,0.terrain = 'city', .room:0,4,0.closeable:north = True, .room:0,4,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the South, Anger Street heads into the market while the rest of the city lies trough the gate to the North.', .room:0,4,0.description:north = 'This gate leads from the market to the city proper.', .room:0,4,0.gridlinks = ['south'], .room:0,4,0.keywords:north = ['gate'], .room:0,4,0.link:north = '.room:0', .room:0,4,0.name = 'North Market Gate', .room:0,4,0.pickproof:north = True, .room:0,4,0.terrain = 'city', .room:1,-3,0.closeable:north = True, .room:1,-3,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Avarice Avenue runs East and West here while a merchant's booth lies to the North.", .room:1,-3,0.description:north = "This is a simple merchant's booth.", .room:1,-3,0.gridlinks = ['east', 'west'], .room:1,-3,0.keywords:north = ['booth'], .room:1,-3,0.link:north = '.room:147', .room:1,-3,0.name = 'East Avarice Avenue', .room:1,-3,0.pickproof:north = True, .room:1,-3,0.terrain = 'city', .room:1,0,0.closeable:north = True, .room:1,0,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Envy Avenue runs East and West here while a merchant's booth lies to the North.", .room:1,0,0.description:north = "This is a simple merchant's booth.", .room:1,0,0.gridlinks = ['east', 'north', 'west'], .room:1,0,0.keywords:north = ['booth'], .room:1,0,0.name = 'East Envy Avenue', .room:1,0,0.pickproof:north = True, .room:1,0,0.terrain = 'city', .room:1,1,0.description = 'The smell of leather goods fills your nostrils. Tanned, finished and embroidered leather is hung and piled everywhere.', .room:1,1,0.gridlinks = ['south'], .room:1,1,0.name = "Tanner's Booth", .room:1,1,0.terrain = 'indoors', .room:1,3,0.closeable:north = True, .room:1,3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Sloth Avenue runs East and West here while a storefront beckons to the North.', .room:1,3,0.description:north = 'This is the entrance to a shop.', .room:1,3,0.gridlinks = ['east', 'west'], .room:1,3,0.keywords:north = ['shop'], .room:1,3,0.link:north = '.room:154', .room:1,3,0.name = 'East Sloth Avenue', .room:1,3,0.pickproof:north = True, .room:1,3,0.terrain = 'city', .room:2,-1,0.description = 'You find yourself amidst cold, hard steel and iron equipment of every possible description. A slight breeze brings tinkle and clank sounds from all around you.', .room:2,-1,0.gridlinks = ['north'], .room:2,-1,0.name = "Blacksmith's Booth", .room:2,-1,0.terrain = 'indoors', .room:2,-3,0.closeable:south = True, .room:2,-3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Avarice Avenue runs East and West here while a storefront beckons to the South.', .room:2,-3,0.description:south = 'This is the entrance to a shop.', .room:2,-3,0.gridlinks = ['east', 'west'], .room:2,-3,0.keywords:south = ['shop'], .room:2,-3,0.link:south = '.room:148', .room:2,-3,0.name = 'East Avarice Avenue', .room:2,-3,0.pickproof:south = True, .room:2,-3,0.terrain = 'city', .room:2,0,0.closeable:south = True, .room:2,0,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Envy Avenue runs East and West here while a merchant's booth lies to the South.", .room:2,0,0.description:south = "This is a simple merchant's booth.", .room:2,0,0.gridlinks = ['east', 'south', 'west'], .room:2,0,0.keywords:south = ['booth'], .room:2,0,0.name = 'East Envy Avenue', .room:2,0,0.pickproof:south = True, .room:2,0,0.terrain = 'city', .room:2,3,0.closeable:south = True, .room:2,3,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Sloth Avenue runs East and West here while a merchant's booth lies to the South.", .room:2,3,0.description:south = "This is a simple merchant's booth.", .room:2,3,0.gridlinks = ['east', 'west'], .room:2,3,0.keywords:south = ['booth'], .room:2,3,0.link:south = '.room:153', .room:2,3,0.name = 'East Sloth Avenue', .room:2,3,0.pickproof:south = True, .room:2,3,0.terrain = 'city', .room:3,-1,0.closeable:east = True, .room:3,-1,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Gluttony Street runs North and South here while a storefront beckons to the East.', .room:3,-1,0.description:east = 'This is the entrance to a shop.', .room:3,-1,0.gridlinks = ['north', 'south'], .room:3,-1,0.keywords:east = ['shop'], .room:3,-1,0.link:east = '.room:150', .room:3,-1,0.name = 'South Gluttony Street', .room:3,-1,0.pickproof:east = True, .room:3,-1,0.terrain = 'city', .room:3,-2,0.closeable:west = True, .room:3,-2,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Gluttony Street runs North and South here while a merchant's booth lies to the West.", .room:3,-2,0.description:west = "This is a simple merchant's booth.", .room:3,-2,0.gridlinks = ['north', 'south'], .room:3,-2,0.keywords:west = ['booth'], .room:3,-2,0.link:west = '.room:149', .room:3,-2,0.name = 'South Gluttony Street', .room:3,-2,0.pickproof:west = True, .room:3,-2,0.terrain = 'city', .room:3,-3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the West lies Avarice Avenue while Gluttony Street leads North.', .room:3,-3,0.gridlinks = ['north', 'west'], .room:3,-3,0.name = 'The Corner of Gluttony and Avarice', .room:3,-3,0.terrain = 'city', .room:3,0,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the East and West lies Envy Avenue while Gluttony Street runs North and South.', .room:3,0,0.gridlinks = ['east', 'north', 'south', 'west'], .room:3,0,0.name = 'Gluttony and East Envy', .room:3,0,0.terrain = 'city', .room:3,1,0.closeable:west = True, .room:3,1,0.description = "You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Gluttony Street runs North and South here while a merchant's booth lies to the West.", .room:3,1,0.description:west = "This is a simple merchant's booth.", .room:3,1,0.gridlinks = ['north', 'south'], .room:3,1,0.keywords:west = ['booth'], .room:3,1,0.link:west = '.room:151', .room:3,1,0.name = 'North Gluttony Street', .room:3,1,0.pickproof:west = True, .room:3,1,0.terrain = 'city', .room:3,2,0.closeable:east = True, .room:3,2,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. Gluttony Street runs North and South here while a storefront beckons to the East.', .room:3,2,0.description:east = 'This is the entrance to a shop.', .room:3,2,0.gridlinks = ['north', 'south'], .room:3,2,0.keywords:east = ['shop'], .room:3,2,0.link:east = '.room:152', .room:3,2,0.name = 'North Gluttony Street', .room:3,2,0.pickproof:east = True, .room:3,2,0.terrain = 'city', .room:3,3,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the West lies Sloth Avenue while Gluttony Street leads South.', .room:3,3,0.gridlinks = ['south', 'west'], .room:3,3,0.name = 'The Corner of Gluttony and Sloth', .room:3,3,0.terrain = 'city', .room:4,0,0.closeable:east = True, .room:4,0,0.description = 'You find the hustle and bustle of this place remarkably distracting. The streets are filled with people of all races, buying and selling goods of every variety. To the West, Envy Avenue heads into the market while the rest of the city lies trough the gate to the East.', .room:4,0,0.description:east = 'This gate leads from the market to the city proper.', .room:4,0,0.gridlinks = ['west'], .room:4,0,0.keywords:east = ['gate'], .room:4,0,0.link:east = '.room:0', .room:4,0,0.name = 'East Market Gate', .room:4,0,0.pickproof:east = True, .room:4,0,0.terrain = 'city', }