<spanid="evennia-contrib-full-systems-evscaperoom-room"></span><h1>evennia.contrib.full_systems.evscaperoom.room<aclass="headerlink"href="#module-evennia.contrib.full_systems.evscaperoom.room"title="Permalink to this headline">¶</a></h1>
<p>Room class and mechanics for the Evscaperoom.</p>
<p>This is a special room class that not only depicts the evscaperoom itself, it
also acts as a central store for the room state, score etc. When deleting this,
that particular escaperoom challenge should be gone.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.full_systems.evscaperoom.room.</code><codeclass="sig-name descname">EvscapeRoom</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_object_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.at_object_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.at_object_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>Called once, when the room is first created.</p>
<codeclass="sig-name descname">statehandler</code><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.statehandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.statehandler"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">state</code><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.state"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">log</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">message</span></em>, <emclass="sig-param"><spanclass="n">caller</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.log"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.log"title="Permalink to this definition">¶</a></dt>
<dd><p>Log to a file specificially for this room.</p>
<codeclass="sig-name descname">score</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">new_score</span></em>, <emclass="sig-param"><spanclass="n">reason</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.score"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.score"title="Permalink to this definition">¶</a></dt>
<dd><p>We don’t score individually but for everyone in room together.
You can only be scored for a given reason once.</p>
<codeclass="sig-name descname">progress</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">new_progress</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.progress"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.progress"title="Permalink to this definition">¶</a></dt>
<dd><p>Progress is what we set it to be (0-100%)</p>
<codeclass="sig-name descname">achievement</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">caller</span></em>, <emclass="sig-param"><spanclass="n">achievement</span></em>, <emclass="sig-param"><spanclass="n">subtext</span><spanclass="o">=</span><spanclass="default_value">''</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.achievement"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.achievement"title="Permalink to this definition">¶</a></dt>
<dd><p>Give the caller a personal achievment. You will only
ever get one of the same type</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>caller</strong> (<em>Object</em>) – The receiver of the achievement.</p></li>
<li><p><strong>achievement</strong> (<em>str</em>) – The title/name of the achievement.</p></li>
<codeclass="sig-name descname">get_all_characters</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.get_all_characters"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.get_all_characters"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the player characters in the room.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>chars (Queryset)</em>– The characters.</p>
<codeclass="sig-name descname">set_flag</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">flagname</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.set_flag"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.set_flag"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">unset_flag</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">flagname</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.unset_flag"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.unset_flag"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">check_flag</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">flagname</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.check_flag"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.check_flag"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">check_perm</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">caller</span></em>, <emclass="sig-param"><spanclass="n">permission</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.check_perm"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.check_perm"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tag_character</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em>, <emclass="sig-param"><spanclass="n">tag</span></em>, <emclass="sig-param"><spanclass="n">category</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.tag_character"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.tag_character"title="Permalink to this definition">¶</a></dt>
<dd><p>Tag a given character in this room.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>character</strong> (<em>Character</em>) – Player character to tag.</p></li>
<li><p><strong>tag</strong> (<em>str</em>) – Tag to set.</p></li>
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – Tag-category. If unset, use room’s
<codeclass="sig-name descname">tag_all_characters</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">tag</span></em>, <emclass="sig-param"><spanclass="n">category</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.tag_all_characters"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.tag_all_characters"title="Permalink to this definition">¶</a></dt>
<dd><p>Set a given tag on all players in the room.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>room</strong> (<aclass="reference internal"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom"title="evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom"><em>EvscapeRoom</em></a>) – The room to escape from.</p></li>
<li><p><strong>tag</strong> (<em>str</em>) – The tag to set.</p></li>
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – If unset, will use the room’s tagcategory.</p></li>
<codeclass="sig-name descname">character_cleanup</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">char</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.character_cleanup"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.character_cleanup"title="Permalink to this definition">¶</a></dt>
<dd><p>Clean all custom tags/attrs on a character.</p>
<codeclass="sig-name descname">character_exit</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">char</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.character_exit"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.character_exit"title="Permalink to this definition">¶</a></dt>
<dd><p>Have a character exit the room - return them to the room menu.</p>
<codeclass="sig-name descname">at_object_receive</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">moved_obj</span></em>, <emclass="sig-param"><spanclass="n">source_location</span></em>, <emclass="sig-param"><spanclass="n">move_type</span><spanclass="o">=</span><spanclass="default_value">'move'</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.at_object_receive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.at_object_receive"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when an object arrives in the room. This can be used to
<codeclass="sig-name descname">at_object_leave</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">moved_obj</span></em>, <emclass="sig-param"><spanclass="n">target_location</span></em>, <emclass="sig-param"><spanclass="n">move_type</span><spanclass="o">=</span><spanclass="default_value">'move'</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.at_object_leave"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.at_object_leave"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when an object leaves the room; if this is a Character we need
to clean them up and move them to the menu state.</p>
<codeclass="sig-name descname">delete</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.delete"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.delete"title="Permalink to this definition">¶</a></dt>
<dd><p>Delete this room and all items related to it. Only move the players.</p>
<codeclass="sig-name descname">return_appearance</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">looker</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/full_systems/evscaperoom/room.html#EvscapeRoom.return_appearance"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.return_appearance"title="Permalink to this definition">¶</a></dt>
<dd><p>Could be modified per state. We generally don’t worry about the
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom'</em><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'EvscapeRoom'</em><aclass="headerlink"href="#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.typename"title="Permalink to this definition">¶</a></dt>