# evennia.contrib.full_systems.evscaperoom.commands

Commands for the Evscaperoom. This contains all in-room commands as well as admin debug-commands to help development.

Gameplay commands

- look - custom look

- focus - focus on object (to perform actions on it)

- <action> <obj> - arbitrary interaction with focused object

- stand - stand on the floor, resetting any position

- emote - free-form emote

- say/whisper/shout - simple communication

Other commands

- evscaperoom - starts the evscaperoom top-level menu

- help - custom in-room help command

- options - set game/accessibility options

- who - show who’s in the room with you

- quit - leave a room, return to menu

Admin/development commands

- jumpstate - jump to specific room state

- flag - assign a flag to an object

- createobj - create a room-object set up for Evscaperoom

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdEvscapeRoom`(**kwargs)

  Bases: `evennia.commands.command.Command`

  Base command parent for all Evscaperoom commands.

  This operates on the premise of ‘focus’ - the ‘focus’ is set on the caller, then subsequent commands will operate on that focus. If no focus is set, the operation will be general or on the room.

  Syntax:

  > command [<obj1>|<arg1>] [<prep> <obj2>|<arg2>]

  `arg_regex` = re.compile('(/\\w+?(\\s|$))|\\s|$', re.IGNORECASE)
  `help_category` = 'evscaperoom'
  `obj1_search` = None
  `obj2_search` = None
  `parse`()

    Parse incoming arguments for use in all child classes.

  property `focus`
  `aliases` = []
  `key` = 'command'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': '', 'category': 'evscaperoom', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': "\n Base command parent for all Evscaperoom commands.\n\n This operates on the premise of 'focus' - the 'focus'\n is set on the caller, then subsequent commands will\n operate on that focus. If no focus is set,\n the operation will be general or on the room.\n\n Syntax:\n\n command [<obj1>|<arg1>] [<prep> <obj2>|<arg2>]\n\n "}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdGiveUp`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Give up

  Usage:

    give up

  Abandons your attempts at escaping and of ever winning the pie-eating contest.

  `key` = 'give up'
  `aliases` = ['chicken out', 'q', 'abort', 'quit']
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': 'chicken out q abort quit', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' chicken out q abort quit', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdLook`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Look at the room, an object or the currently focused object

  Usage:

    look [obj]

  `key` = 'look'
  `aliases` = ['l', 'ls']
  `obj1_search` = None
  `obj2_search` = None
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': 'l ls', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdWho`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`, `evennia.commands.default.account.CmdWho`

  List other players in the game.

  Usage:

    who who all

  Show who is in the room with you, or (with who all), who is online on the server as a whole.

  `key` = 'who'
  `obj1_search` = False
  `obj2_search` = False
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `aliases` = []
  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all()'
  `search_index_entry` = {'aliases': '', 'category': 'evscaperoom', 'key': 'who', 'no_prefix': ' ', 'tags': '', 'text': '\n List other players in the game.\n\n Usage:\n who\n who all\n\n Show who is in the room with you, or (with who all), who is online on the\n server as a whole.\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdSpeak`(**kwargs)

  Bases: `evennia.commands.command.Command`

  Perform an communication action.

  Usage:

    say <text> whisper shout

  `key` = 'say'
  `aliases` = ['whisper', 'shout', ';']
  `arg_regex` = re.compile('\\w|\\s|$', re.IGNORECASE)
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'general'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': 'whisper shout ;', 'category': 'general', 'key': 'say', 'no_prefix': ' whisper shout ;', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdEmote`(**kwargs)

  Bases: `evennia.commands.command.Command`

  Perform a free-form emote. Use /me to include yourself in the emote and /name to include other objects or characters. Use “…” to enact speech.

  Usage:

    emote <emote> :<emote

  Example

  emote /me smiles at /peter emote /me points to /box and /lever.

  `key` = 'emote'
  `aliases` = [':', 'pose']
  `arg_regex` = re.compile('\\w|\\s|$', re.IGNORECASE)
  `you_replace`()
  `room_replace`()
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'general'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': ': pose', 'category': 'general', 'key': 'emote', 'no_prefix': ' : pose', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdFocus`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Focus your attention on a target.

  Usage:

    focus <obj>

  Once focusing on an object, use look to get more information about how it looks and what actions is available.

  `key` = 'focus'
  `aliases` = ['unfocus', 'ex', 'e', 'examine']
  `obj1_search` = None
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': 'unfocus ex e examine', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' unfocus ex e examine', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdOptions`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Start option menu

  Usage:

    options

  `key` = 'options'
  `aliases` = ['option']
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': 'option', 'category': 'evscaperoom', 'key': 'options', 'no_prefix': ' option', 'tags': '', 'text': '\n Start option menu\n\n Usage:\n options\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdGet`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Use focus / examine instead.

  `key` = 'get'
  `aliases` = ['inventory', 'give', 'i', 'inv']
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': 'inventory give i inv', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inventory give i inv', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdRerouter`(**kwargs)

  Bases: `evennia.commands.default.muxcommand.MuxCommand`

  Interact with an object in focus.

  Usage:

    <action> [arg]

  `key` = 'open'
  `aliases` = ['@dig', '@open']
  `func`()

    This is the hook function that actually does all the work. It is called by the cmdhandler right after self.parser() finishes, and so has access to all the variables defined therein.

  `help_category` = 'general'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': '@dig @open', 'category': 'general', 'key': 'open', 'no_prefix': ' dig open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdFocusInteraction`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Interact with an object in focus.

  Usage:

    <action> [arg]

  This is a special catch-all command which will operate on the current focus. It will look for a method

  > focused_object.at_focus_<action>(caller, **kwargs) and call

  it. This allows objects to just add a new hook to make that action apply to it. The obj1, prep, obj2, arg1, arg2 are passed as keys into the method.

  `key` = '__nomatch_command'
  `obj1_search` = None
  `obj2_search` = None
  `parse`()

    We assume this type of command is always on the form command [arg]

  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `aliases` = []
  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': '', 'category': 'evscaperoom', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n This is a special catch-all command which will operate on\n the current focus. It will look for a method\n `focused_object.at_focus_<action>(caller, **kwargs)` and call\n it. This allows objects to just add a new hook to make that\n action apply to it. The obj1, prep, obj2, arg1, arg2 are passed\n as keys into the method.\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdStand`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Stand up from whatever position you had.

  `key` = 'stand'
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `aliases` = []
  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': '', 'category': 'evscaperoom', 'key': 'stand', 'no_prefix': ' ', 'tags': '', 'text': '\n Stand up from whatever position you had.\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdHelp`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`, `evennia.commands.default.help.CmdHelp`

  Get help.

  Usage:

    help <topic> or <command>

  `key` = 'help'
  `aliases` = ['?']
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:all()'
  `search_index_entry` = {'aliases': '?', 'category': 'evscaperoom', 'key': 'help', 'no_prefix': ' ?', 'tags': '', 'text': '\n Get help.\n\n Usage:\n help <topic> or <command>\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdCreateObj`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Create command, only for Admins during debugging.

  Usage:

    createobj name[:typeclass]

  Here, :typeclass is a class in evscaperoom.commands

  `key` = 'createobj'
  `aliases` = ['cobj']
  `locks` = 'cmd:perm(Admin)'
  `obj1_search` = False
  `obj2_search` = False
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:perm(Admin)'
  `search_index_entry` = {'aliases': 'cobj', 'category': 'evscaperoom', 'key': 'createobj', 'no_prefix': ' cobj', 'tags': '', 'text': '\n Create command, only for Admins during debugging.\n\n Usage:\n createobj name[:typeclass]\n\n Here, :typeclass is a class in evscaperoom.commands\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdSetFlag`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Assign a flag to an object. Admin use only

  Usage:

    flag <obj> with <flagname>

  `key` = 'flag'
  `aliases` = ['setflag']
  `locks` = 'cmd:perm(Admin)'
  `obj1_search` = True
  `obj2_search` = False
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:perm(Admin)'
  `search_index_entry` = {'aliases': 'setflag', 'category': 'evscaperoom', 'key': 'flag', 'no_prefix': ' setflag', 'tags': '', 'text': '\n Assign a flag to an object. Admin use only\n\n Usage:\n flag <obj> with <flagname>\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdJumpState`(**kwargs)

  Bases: `evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom`

  Jump to a given state.

  Parameters

    <statename> (jumpstate) –

  `key` = 'jumpstate'
  `locks` = 'cmd:perm(Admin)'
  `obj1_search` = False
  `obj2_search` = False
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `aliases` = []
  `help_category` = 'evscaperoom'
  `lock_storage` = 'cmd:perm(Admin)'
  `search_index_entry` = {'aliases': '', 'category': 'evscaperoom', 'key': 'jumpstate', 'no_prefix': ' ', 'tags': '', 'text': '\n Jump to a given state.\n\n Args:\n jumpstate <statename>\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdEvscapeRoomStart`(**kwargs)

  Bases: `evennia.commands.command.Command`

  Go to the Evscaperoom start menu

  `key` = 'evscaperoom'
  `help_category` = 'evscaperoom'
  `func`()

    This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())

  `aliases` = []
  `lock_storage` = 'cmd:all();'
  `search_index_entry` = {'aliases': '', 'category': 'evscaperoom', 'key': 'evscaperoom', 'no_prefix': ' ', 'tags': '', 'text': '\n Go to the Evscaperoom start menu\n\n '}

class `evennia.contrib.full_systems.evscaperoom.commands.``CmdSetEvScapeRoom`(cmdsetobj=None, key=None)

  Bases: `evennia.commands.cmdset.CmdSet`

  `path` = 'evennia.contrib.full_systems.evscaperoom.commands.CmdSetEvScapeRoom'
  `priority` = 1
  `at_cmdset_creation`()

    Hook method - this should be overloaded in the inheriting class, and should take care of populating the cmdset by use of self.add().