evennia.contrib.evscaperoom.objects

Base objects for the Evscaperoom contrib.

The object class itself provide the actions possible to use on that object. This makes these objects suitable for use with multi-inheritance. For example, to make an object both possible to smell and eat or drink, find the appropriate parents in this module and make an object like this:

class Apple(Edible, Smellable):

def at_drink(self, caller):

# …

def at_smell(self, caller):

# …

Various object parents could be more complex, so read the class for more info.

Available parents:

  • EvscapeRoomObject - parent class for all Evscaperoom entities (also the room itself)

  • Feelable

  • Listenable

  • Smellable

  • Rotatable

  • Openable

  • Readable

  • IndexReadable (like a lexicon you have to give a search term in)

  • Movable

  • Edible

  • Drinkable

  • Usable

  • Insertable (can be inserted into a target)

  • Combinable (combines with another object to create a new one)

  • Mixable (used for mixing potions into it)

  • HasButtons (an object with buttons on it)

  • CodeInput (code locks)

  • Sittable (can be sat on)

  • Liable (can be lied down on)

  • Kneeable (can be kneed down on)

  • Climbable (can be climbed on)

  • Positionable (supports sit/lie/knee/climb at once)

class evennia.contrib.evscaperoom.objects.EvscaperoomObject(*args, **kwargs)[source]

Bases: evennia.objects.objects.DefaultObject

Default object base for all objects related to the contrib.

action_prepositions = ('in', 'with', 'on', 'into', 'to')
position_prep_map = {'climb': 'standing', 'kneel': 'kneeling', 'lie': 'lying', 'sit': 'sitting'}
at_object_creation()[source]

Called once when object is first created.

property tagcategory
property room
property roomstate
next_state(statename=None)[source]

Helper to have the object switch the room to next state

Parameters

statename (str, optional) – If given, move to this state next. Otherwise use the default next-state of the current state.

set_flag(flagname)[source]

Set flag on object

unset_flag(flagname)[source]

Unset flag on object

check_flag(flagname)[source]

Check if flag is set on this object

set_character_flag(char, flagname, value=True)[source]

Set flag on character

unset_character_flag(char, flagname)[source]

Set flag on character

check_character_flag(char, flagname)[source]

Check if flag is set on character

msg_room(caller, string, skip_caller=False)[source]

Message everyone in the room with a message that is parsed for ~first/third person grammar, as well as for *thing markers.

Parameters
  • caller (Object or None) – Sender of the message. If None, there is no sender.

  • string (str) – Message to parse and send to the room.

  • skip_caller (bool) – Send to everyone except caller.

Notes

Messages sent by this method will be tagged with a type of ‘your_action’ and others_action. This is an experiment for allowing users of e.g. the webclient to redirect messages to differnt windows.

msg_char(caller, string, client_type='your_action')[source]

Send message only to caller (not to the room at large)

msg_system(message, target=None, borders=True)[source]

Send a ‘system message’ by using the State.msg function.

get_position(caller)[source]

Get position of caller on this object (like lying, sitting, kneeling, standing). See the Positionable child class.

Parameters

caller (Object) – The one position we seek.

Returns

obj, pos (Object, str)

The object we have a position relative to,

as well as the name of that position (lying, sitting, kneeling, standing). If these are None, it means we are standing on the floor.

set_position(caller, new_position)[source]

Set position of caller (like lying, sitting, kneeling, standing) on this object. See Positionable child class.

Parameters
  • caller (Object) – The one positioning themselves on this object.

  • new_position (str, None) – One of “lie”, “kneel”, “sit” or “stand”. If None, remove position (character stands normally on the floor).

at_focus(caller)[source]

Called when somone is focusing on this object.

Parameters

caller (Character) – The one doing the focusing.

at_unfocus(caller)[source]

Called when focus leaves this object. Note that more than one caller may be focusing on the object at the same time, so we should not change the state of the object itself here!

Parameters

caller (Character) – The one doing the unfocusing.

at_speech(speaker, action)[source]

We don’t use the default at_say hook since we handle the send logic in the command. This is only meant to trigger eventual game-events when speaking to an object or the room.

Parameters
  • speaker (Character) – The one speaking.

  • action (str) – One of ‘say’, ‘whisper’ or ‘shout’

parse(args)[source]

Simple parser of focus arguments starting with a preposition, like ‘combine with <object>’ <- we want to strip out the preposition here.

get_cmd_signatures()[source]

This allows the object to return more detailed call signs for each of their at_focus_* methods. This is useful for things like detailed arguments (only ‘move’ but ‘move left/right’)

Returns

callsigns (list, None)

List of strings to inject into the

available action list produced by self.get_help. If None, automatically find actions based on the method names.

custom_helpstr (str): This should be the help text for

the command with a marker {callsigns} for where to inject the list of callsigns.

get_short_desc(full_desc)[source]

Extract the first sentence from the desc and use as the short desc.

get_help(caller)[source]

Get help about this object. By default we return a listing of all actions you can do on this object.

return_appearance(looker, **kwargs)[source]

Could be modified per state. We generally don’t worry about the contents of the object by default.

exception DoesNotExist

Bases: evennia.objects.objects.DefaultObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.objects.objects.DefaultObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.EvscaperoomObject'
typename = 'EvscaperoomObject'
class evennia.contrib.evscaperoom.objects.Feelable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object that you can feel the surface of.

at_focus_feel(caller, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Feelable'
typename = 'Feelable'
class evennia.contrib.evscaperoom.objects.Listenable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object one can listen to.

at_focus_listen(caller, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Listenable'
typename = 'Listenable'
class evennia.contrib.evscaperoom.objects.Smellable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object you can smell.

at_focus_smell(caller, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Smellable'
typename = 'Smellable'
class evennia.contrib.evscaperoom.objects.Rotatable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object that you can lift up and look at from different angles

rotate_flag = 'rotatable'
start_rotatable = True
at_object_creation()[source]

Called once when object is first created.

at_focus_rotate(caller, **kwargs)[source]
at_focus_turn(caller, **kwargs)
at_rotate(caller)[source]
at_cannot_rotate(caller)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Rotatable'
typename = 'Rotatable'
class evennia.contrib.evscaperoom.objects.Openable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object that you can open/close. It’s lockable with a flag.

unlock_flag = 'unlocked'
open_flag = 'open'
start_open = False
at_object_creation()[source]

Called once when object is first created.

at_focus_open(caller, **kwargs)[source]
at_focus_close(caller, **kwargs)[source]
at_open(caller)[source]
at_already_open(caller)[source]
at_locked(caller)[source]
at_close(caller)[source]
at_already_closed(caller)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Openable'
typename = 'Openable'
class evennia.contrib.evscaperoom.objects.Readable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object that you can read from. This is controlled from a flag.

read_flag = 'readable'
start_readable = True
at_object_creation()[source]

Called once when object is first created.

at_focus_read(caller, **kwargs)[source]
at_read(caller, *args, **kwargs)[source]
at_cannot_read(caller, *args, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Readable'
typename = 'Readable'
class evennia.contrib.evscaperoom.objects.IndexReadable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.Readable

Any object for which you need to specify a key/index to get a given result back. For example a lexicon or book where you enter a topic or a page number to see what’s to be read on that page.

index = {'page two': 'page2', 'page1': 'This is page1', 'page2': 'This is page2'}
at_focus_read(caller, **kwargs)[source]
get_cmd_signatures()[source]

This allows the object to return more detailed call signs for each of their at_focus_* methods. This is useful for things like detailed arguments (only ‘move’ but ‘move left/right’)

Returns

callsigns (list, None)

List of strings to inject into the

available action list produced by self.get_help. If None, automatically find actions based on the method names.

custom_helpstr (str): This should be the help text for

the command with a marker {callsigns} for where to inject the list of callsigns.

at_cannot_read(caller, topic, *args, **kwargs)[source]
at_read(caller, topic, entry, *args, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.Readable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.Readable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.IndexReadable'
typename = 'IndexReadable'
class evennia.contrib.evscaperoom.objects.Movable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object that can be moved from one place to another or in one direction or another.

Once moved to a given position, the object’s state will change.

move_positions = {'left': 'at_left', 'right': 'at_right'}
start_position = 'left'
at_object_creation()[source]

Called once when object is first created.

get_cmd_signatures()[source]

This allows the object to return more detailed call signs for each of their at_focus_* methods. This is useful for things like detailed arguments (only ‘move’ but ‘move left/right’)

Returns

callsigns (list, None)

List of strings to inject into the

available action list produced by self.get_help. If None, automatically find actions based on the method names.

custom_helpstr (str): This should be the help text for

the command with a marker {callsigns} for where to inject the list of callsigns.

at_focus_move(caller, **kwargs)[source]
at_focus_shove(caller, **kwargs)
at_focus_push(caller, **kwargs)
at_cannot_move(caller)[source]
at_already_moved(caller, position)[source]
at_left(caller)[source]
at_right(caller)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Movable'
typename = 'Movable'
class evennia.contrib.evscaperoom.objects.BaseConsumable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object that is consumable in some way. This acts as an abstract parent.

This sets a flag that is unique for each person consuming, allowing it to e.g. only be consumed once (don’t support multi-uses here, that’s left for a custom object if needed).

consume_flag = 'consume'
one_consume_only = True
handle_consume(caller, action, **kwargs)[source]

Wrap this by the at_focus method

has_consumed(caller, setflag=False)[source]

Check if caller already consumed at least once

at_consume(caller, action)[source]
at_already_consumed(caller, action)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.BaseConsumable'
typename = 'BaseConsumable'
class evennia.contrib.evscaperoom.objects.Edible(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BaseConsumable

Any object specifically possible to eat.

consume_flag = 'eat'
at_focus_eat(caller, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BaseConsumable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BaseConsumable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Edible'
typename = 'Edible'
class evennia.contrib.evscaperoom.objects.Drinkable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BaseConsumable

Any object specifically possible to drink.

consume_flag = 'drink'
at_focus_drink(caller, **kwargs)[source]
at_focus_sip(caller, **kwargs)[source]
at_consume(caller, action)[source]
at_already_consumed(caller, action)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BaseConsumable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BaseConsumable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Drinkable'
typename = 'Drinkable'
class evennia.contrib.evscaperoom.objects.BaseApplicable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object that can be applied/inserted/used on another object in some way. This acts an an abstract base class.

target_flag = 'applicable'
handle_apply(caller, action, **kwargs)[source]

Wrap this with the at_focus methods in the child classes

at_apply(caller, action, obj)[source]
at_cannot_apply(caller, action, obj)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.BaseApplicable'
typename = 'BaseApplicable'
class evennia.contrib.evscaperoom.objects.Usable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable

Any object that can be used with another object.

target_flag = 'usable'
at_focus_use(caller, **kwargs)[source]
at_apply(caller, action, obj)[source]
at_cannot_apply(caller, action, obj)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Usable'
typename = 'Usable'
class evennia.contrib.evscaperoom.objects.Insertable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable

Any object that can be inserted into another object.

This would cover a key, for example.

target_flag = 'insertable'
at_focus_insert(caller, **kwargs)[source]
at_apply(caller, action, obj)[source]
get_cmd_signatures()[source]

This allows the object to return more detailed call signs for each of their at_focus_* methods. This is useful for things like detailed arguments (only ‘move’ but ‘move left/right’)

Returns

callsigns (list, None)

List of strings to inject into the

available action list produced by self.get_help. If None, automatically find actions based on the method names.

custom_helpstr (str): This should be the help text for

the command with a marker {callsigns} for where to inject the list of callsigns.

at_cannot_apply(caller, action, obj)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Insertable'
typename = 'Insertable'
class evennia.contrib.evscaperoom.objects.Combinable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable

Any object that combines with another object to create a new one.

target_flag = 'combinable'
new_create_dict = {'aliases': ['combined'], 'key': 'sword', 'typeclass': 'evscaperoom.objects.Combinable'}
destroy_components = True
at_focus_combine(caller, **kwargs)[source]
get_cmd_signatures()[source]

This allows the object to return more detailed call signs for each of their at_focus_* methods. This is useful for things like detailed arguments (only ‘move’ but ‘move left/right’)

Returns

callsigns (list, None)

List of strings to inject into the

available action list produced by self.get_help. If None, automatically find actions based on the method names.

custom_helpstr (str): This should be the help text for

the command with a marker {callsigns} for where to inject the list of callsigns.

at_cannot_apply(caller, action, obj)[source]
at_apply(caller, action, other_obj)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BaseApplicable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Combinable'
typename = 'Combinable'
class evennia.contrib.evscaperoom.objects.Mixable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object into which you can mix ingredients (such as when mixing a potion). This offers no actions on its own, instead the ingredients should be ‘used’ with this object in order mix, calling at_mix when they do.

mixer_flag = 'mixer'
ingredient_recipe = ['ingredient1', 'ingredient2', 'ingredient3']
at_object_creation()[source]

Called once when object is first created.

check_mixture()[source]

check so mixture is correct, returning True/False.

handle_mix(caller, ingredient, **kwargs)[source]

Add ingredient object to mixture.

Called by the mixing ingredient. We assume the ingredient has already checked to make sure they allow themselves to be mixed into an object with this mixer_flag.

at_mix(caller, ingredient, **kwargs)[source]
at_mix_failure(caller, ingredient, **kwargs)[source]
at_mix_success(caller, ingredient, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Mixable'
typename = 'Mixable'
class evennia.contrib.evscaperoom.objects.HasButtons(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object with buttons to push/press

buttons = {'green': 'at_green_button', 'green button': 'at_green_button', 'red': 'at_red_button', 'red button': 'at_red_button'}
get_cmd_signatures()[source]

This allows the object to return more detailed call signs for each of their at_focus_* methods. This is useful for things like detailed arguments (only ‘move’ but ‘move left/right’)

Returns

callsigns (list, None)

List of strings to inject into the

available action list produced by self.get_help. If None, automatically find actions based on the method names.

custom_helpstr (str): This should be the help text for

the command with a marker {callsigns} for where to inject the list of callsigns.

at_focus_press(caller, **kwargs)[source]
at_focus_push(caller, **kwargs)
at_nomatch(caller)[source]
at_green_button(caller)[source]
at_red_button(caller)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.HasButtons'
typename = 'HasButtons'
class evennia.contrib.evscaperoom.objects.CodeInput(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object where you can enter a code of some sort to have an effect happen.

code = 'PASSWORD'
code_hint = 'eight letters A-Z'
case_insensitive = True
infinitely_locked = False
at_focus_code(caller, **kwargs)[source]
get_cmd_signatures()[source]

This allows the object to return more detailed call signs for each of their at_focus_* methods. This is useful for things like detailed arguments (only ‘move’ but ‘move left/right’)

Returns

callsigns (list, None)

List of strings to inject into the

available action list produced by self.get_help. If None, automatically find actions based on the method names.

custom_helpstr (str): This should be the help text for

the command with a marker {callsigns} for where to inject the list of callsigns.

at_no_code(caller)[source]
at_code_correct(caller, code_tried)[source]
at_code_incorrect(caller, code_tried)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.CodeInput'
typename = 'CodeInput'
class evennia.contrib.evscaperoom.objects.BasePositionable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject

Any object a character can be positioned on. This is meant as an abstract parent.

This is a little special since a char can only have one position at a time and must therefore be aware of the other ‘positional’ actions any object may support (otherwise you may end up sitting/standing/etc on more than one object at once!)

We set a Attribute (obj, position) on the caller to indicate that they have a position on an object. This is necessary so as to not have the caller sit on more than one sittable object at a time, for example. The ‘positions’ Attribute on this object holds a mapping of who is sitting lying etc on this object. We don’t add a limit to how many chars could have a position on an object - it’s not realistic, but this goes with the philosophy that one character should not be able to block others if they go inactive etc.

This state is also tied to the general ‘stand’ command, which should return the player to the normal standing state regardless of if they focus on this object or not.

at_object_creation()[source]

Called once when object is first created.

handle_position(caller, new_pos, **kwargs)[source]

Wrap this with the at_focus_ method of the child class.

at_cannot_position(caller, position, old_obj, old_pos)[source]
at_again_position(caller, position)[source]
at_position(caller, position)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.EvscaperoomObject.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.BasePositionable'
typename = 'BasePositionable'
class evennia.contrib.evscaperoom.objects.Sittable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BasePositionable

Any object you can sit on.

at_focus_sit(caller, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BasePositionable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BasePositionable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Sittable'
typename = 'Sittable'
class evennia.contrib.evscaperoom.objects.Liable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BasePositionable

Any object you can lie down on.

at_focus_lie(caller, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BasePositionable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BasePositionable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Liable'
typename = 'Liable'
class evennia.contrib.evscaperoom.objects.Kneelable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BasePositionable

Any object you can kneel on.

at_focus_kneel(caller, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BasePositionable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BasePositionable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Kneelable'
typename = 'Kneelable'
class evennia.contrib.evscaperoom.objects.Climbable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.BasePositionable

Any object you can climb up to stand on. We name this ‘climb’ so as to not collide with the general ‘stand’ command, which resets your position.

at_focus_climb(caller, **kwargs)[source]
exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.BasePositionable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.BasePositionable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Climbable'
typename = 'Climbable'
class evennia.contrib.evscaperoom.objects.Positionable(*args, **kwargs)[source]

Bases: evennia.contrib.evscaperoom.objects.Sittable, evennia.contrib.evscaperoom.objects.Liable, evennia.contrib.evscaperoom.objects.Kneelable, evennia.contrib.evscaperoom.objects.Climbable

An object on which you can position yourself in one of the supported ways (sit, lie, kneel or climb)

get_cmd_signatures()[source]

This allows the object to return more detailed call signs for each of their at_focus_* methods. This is useful for things like detailed arguments (only ‘move’ but ‘move left/right’)

Returns

callsigns (list, None)

List of strings to inject into the

available action list produced by self.get_help. If None, automatically find actions based on the method names.

custom_helpstr (str): This should be the help text for

the command with a marker {callsigns} for where to inject the list of callsigns.

exception DoesNotExist

Bases: evennia.contrib.evscaperoom.objects.Sittable.DoesNotExist, evennia.contrib.evscaperoom.objects.Liable.DoesNotExist, evennia.contrib.evscaperoom.objects.Kneelable.DoesNotExist, evennia.contrib.evscaperoom.objects.Climbable.DoesNotExist

exception MultipleObjectsReturned

Bases: evennia.contrib.evscaperoom.objects.Sittable.MultipleObjectsReturned, evennia.contrib.evscaperoom.objects.Liable.MultipleObjectsReturned, evennia.contrib.evscaperoom.objects.Kneelable.MultipleObjectsReturned, evennia.contrib.evscaperoom.objects.Climbable.MultipleObjectsReturned

path = 'evennia.contrib.evscaperoom.objects.Positionable'
typename = 'Positionable'