<spanid="evennia-contrib-tutorials-evadventure-dungeon"></span><h1>evennia.contrib.tutorials.evadventure.dungeon<aclass="headerlink"href="#module-evennia.contrib.tutorials.evadventure.dungeon"title="Permalink to this headline">¶</a></h1>
<p>Dungeon system</p>
<p>This creates a procedurally generated dungeon.</p>
<p>The dungone originates in an entrance room with exits that spawn a new dungeon connection every X
minutes. As long as characters go through the same exit within that time, they will all end up in
the same dungeon ‘branch’, otherwise they will go into separate, un-connected dungeon ‘branches’.
They can always go back to the start room, but this will become a one-way exit back.</p>
<p>When moving through the dungeon, a new room is not generated until characters
decided to go in that direction. Each room is tagged with the specific ‘instance’
id of that particular branch of dungon. When no characters remain in the branch,
the branch is deleted.</p>
<p>Each room in the dungeon starts with a Tag <strong>not_clear</strong>; while this is set, all exits out
of the room (not the one they came from) is blocked. When whatever problem the room
offers has been solved (such as a puzzle or a battle), the tag is removed and the player(s)
<codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">random</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span>→ x in the interval [0, 1).<aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.random"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">EvAdventureDungeonRoom</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/tutorials/evadventure/dungeon.html#EvAdventureDungeonRoom"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allow_combat</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.allow_combat"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allow_death</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.allow_death"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">back_exit</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.back_exit"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">dungeon_orchestrator</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.dungeon_orchestrator"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">xy_coords</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.xy_coords"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">is_room_clear</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.is_room_clear"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">clear_room</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonRoom.clear_room"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.clear_room"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/tutorials/evadventure/dungeon.html#EvAdventureDungeonRoom.at_object_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.at_object_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>Set the <strong>not_clear</strong> tag on the room. This is removed when the room is
‘cleared’, whatever that means for each room.</p>
<p>We put this here rather than in the room-creation code so we can override
easier (for example we may want an empty room which auto-clears).</p>
<codeclass="sig-name descname">get_display_footer</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/tutorials/evadventure/dungeon.html#EvAdventureDungeonRoom.get_display_footer"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.get_display_footer"title="Permalink to this definition">¶</a></dt>
<dd><p>Show if the room is ‘cleared’ or not as part of its description.</p>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'EvAdventureDungeonRoom'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonRoom.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">EvAdventureDungeonExit</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/tutorials/evadventure/dungeon.html#EvAdventureDungeonExit"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit"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/tutorials/evadventure/dungeon.html#EvAdventureDungeonExit.at_object_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit.at_object_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>We want to block progressing forward unless the room is clear.</p>
<codeclass="sig-name descname">at_traverse</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">traversing_object</span></em>, <emclass="sig-param"><spanclass="n">target_location</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonExit.at_traverse"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit.at_traverse"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when traversing. <strong>target_location</strong> will be None if the
<codeclass="sig-name descname">at_failed_traverse</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">traversing_object</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonExit.at_failed_traverse"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit.at_failed_traverse"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'EvAdventureDungeonExit'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonExit.typename"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">room_generator</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">dungeon_orchestrator</span></em>, <emclass="sig-param"><spanclass="n">depth</span></em>, <emclass="sig-param"><spanclass="n">coords</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#room_generator"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.room_generator"title="Permalink to this definition">¶</a></dt>
<dd><p>Plugin room generator</p>
<p>This default one returns the same empty room.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>dungeon_orchestrator</strong> (<aclass="reference internal"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator"title="evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator"><em>EvAdventureDungeonOrchestrator</em></a>) – The current orchestrator.</p></li>
<li><p><strong>depth</strong> (<em>int</em>) – The ‘depth’ of the dungeon (radial distance from start room) this
new room will be placed at.</p></li>
<li><p><strong>coords</strong> (<em>tuple</em>) – The <strong>(x,y)</strong> coords that the new room will be created at.</p></li>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">EvAdventureDungeonOrchestrator</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/tutorials/evadventure/dungeon.html#EvAdventureDungeonOrchestrator"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">max_unexplored_exits</code><emclass="property"> = 2</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.max_unexplored_exits"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">max_new_exits_per_room</code><emclass="property"> = 2</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.max_new_exits_per_room"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rooms</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.rooms"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">unvisited_exits</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.unvisited_exits"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">highest_depth</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.highest_depth"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">last_updated</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.last_updated"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">room_generator</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.room_generator"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">xy_grid</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.xy_grid"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">start_room</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.start_room"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">register_exit_traversed</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">exit</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonOrchestrator.register_exit_traversed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.register_exit_traversed"title="Permalink to this definition">¶</a></dt>
<dd><p>Tell the system the given exit was traversed. This allows us to track how many unvisited
paths we have so as to not have it grow exponentially.</p>
<codeclass="sig-name descname">create_out_exit</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">location</span></em>, <emclass="sig-param"><spanclass="n">exit_direction</span><spanclass="o">=</span><spanclass="default_value">'north'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonOrchestrator.create_out_exit"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.create_out_exit"title="Permalink to this definition">¶</a></dt>
<dd><p>Create outgoing exit from a room. The target room is not yet created.</p>
<codeclass="sig-name descname">delete</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonOrchestrator.delete"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.delete"title="Permalink to this definition">¶</a></dt>
<dd><p>Clean up the entire dungeon along with the orchestrator.</p>
<codeclass="sig-name descname">new_room</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">from_exit</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonOrchestrator.new_room"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.new_room"title="Permalink to this definition">¶</a></dt>
<dd><p>Create a new Dungeon room leading from the provided exit.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>from_exit</strong> (<em>Exit</em>) – The exit leading to this new room.</p>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'EvAdventureDungeonOrchestrator'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonOrchestrator.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">EvAdventureDungeonStartRoomExit</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/tutorials/evadventure/dungeon.html#EvAdventureDungeonStartRoomExit"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoomExit"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reset_exit</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonStartRoomExit.reset_exit"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoomExit.reset_exit"title="Permalink to this definition">¶</a></dt>
<dd><p>Flush the exit, so next traversal creates a new dungeon branch.</p>
<codeclass="sig-name descname">at_traverse</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">traversing_object</span></em>, <emclass="sig-param"><spanclass="n">target_location</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonStartRoomExit.at_traverse"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoomExit.at_traverse"title="Permalink to this definition">¶</a></dt>
<dd><p>When traversing create a new orchestrator if one is not already assigned.</p>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoomExit.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoomExit.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoomExit'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoomExit.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'EvAdventureDungeonStartRoomExit'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoomExit.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">EvAdventureStartRoomResetter</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/tutorials/evadventure/dungeon.html#EvAdventureStartRoomResetter"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureStartRoomResetter"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_script_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureStartRoomResetter.at_script_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureStartRoomResetter.at_script_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>Only called once, when script is first created.</p>
<codeclass="sig-name descname">at_repeat</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureStartRoomResetter.at_repeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureStartRoomResetter.at_repeat"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureStartRoomResetter.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureStartRoomResetter.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.tutorials.evadventure.dungeon.EvAdventureStartRoomResetter'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureStartRoomResetter.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'EvAdventureStartRoomResetter'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureStartRoomResetter.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">EvAdventureDungeonBranchDeleter</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/tutorials/evadventure/dungeon.html#EvAdventureDungeonBranchDeleter"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">branch_max_life</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter.branch_max_life"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_script_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonBranchDeleter.at_script_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter.at_script_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>Only called once, when script is first created.</p>
<codeclass="sig-name descname">at_repeat</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonBranchDeleter.at_repeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter.at_repeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Go through all dungeon-orchestrators and find which ones are too old.</p>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'EvAdventureDungeonBranchDeleter'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonBranchDeleter.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.dungeon.</code><codeclass="sig-name descname">EvAdventureDungeonStartRoom</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/tutorials/evadventure/dungeon.html#EvAdventureDungeonStartRoom"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom"title="Permalink to this definition">¶</a></dt>
<p>The start room is the only permanent part of the dungeon. Exits leading from this room (except
one leading back outside) each create/links to a separate dungeon branch/instance.</p>
<ulclass="simple">
<li><dlclass="simple">
<dt>A script will reset each exit every 5 mins; after that time, entering the exit will spawn</dt><dd><p>a new branch-instance instead of leading to the one before.</p>
</dd>
</dl>
</li>
<li><dlclass="simple">
<dt>Another script will check age of branch instance every hour; once an instance has been</dt><dd><p>inactive for a week, it will ‘collapse’, forcing everyone inside back to the start room.</p>
</dd>
</dl>
</li>
</ul>
<p>The actual exits should be created in the build script.</p>
<codeclass="sig-name descname">recycle_time</code><emclass="property"> = 300</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.recycle_time"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">branch_check_time</code><emclass="property"> = 3600</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.branch_check_time"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">branch_max_life</code><emclass="property"> = 604800</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.branch_max_life"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">room_generator</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.room_generator"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_display_footer</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/tutorials/evadventure/dungeon.html#EvAdventureDungeonStartRoom.get_display_footer"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.get_display_footer"title="Permalink to this definition">¶</a></dt>
<dd><p>Show if the room is ‘cleared’ or not as part of its description.</p>
<codeclass="sig-name descname">at_object_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonStartRoom.at_object_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.at_object_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>Set the <strong>not_clear</strong> tag on the room. This is removed when the room is
‘cleared’, whatever that means for each room.</p>
<p>We put this here rather than in the room-creation code so we can override
easier (for example we may want an empty room which auto-clears).</p>
<codeclass="sig-name descname">at_object_receive</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em>, <emclass="sig-param"><spanclass="n">source_location</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/dungeon.html#EvAdventureDungeonStartRoom.at_object_receive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.at_object_receive"title="Permalink to this definition">¶</a></dt>
<dd><p>Make sure to clean the dungeon branch-tag from characters when leaving a dungeon branch.</p>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'EvAdventureDungeonStartRoom'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.dungeon.EvAdventureDungeonStartRoom.typename"title="Permalink to this definition">¶</a></dt>