mirror of
https://github.com/evennia/evennia.git
synced 2026-03-28 10:37:16 +01:00
Updated HTML docs.
This commit is contained in:
parent
312e3c17df
commit
755324d29d
53 changed files with 895 additions and 650 deletions
|
|
@ -1,4 +1,4 @@
|
|||
# Sphinx build info version 1
|
||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||
config: 766ba180ed5f7169f6d5777926f50b90
|
||||
config: c9b7991b1043e53483fa42e6286f4f64
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||
|
|
|
|||
|
|
@ -211,11 +211,16 @@ which can be useful for testing table whitespace (Griatch)</p></li>
|
|||
objects based on the visible key and desc. Useful for inventory listings (Griatch)</p></li>
|
||||
<li><p>Feature: Add <code class="docutils literal notranslate"><span class="pre">DefaultObject.get_numbered_name</span></code> <code class="docutils literal notranslate"><span class="pre">return_string</span></code> bool kwarg, for only
|
||||
returning singular/plural based on count instead of a tuple with both (Griatch)</p></li>
|
||||
<li><p><a class="reference external" href="https://github.com/evennia/evennia/issues/3443">Fix</a> Removed the <code class="docutils literal notranslate"><span class="pre">@reboot</span></code> alias to <code class="docutils literal notranslate"><span class="pre">@reset</span></code> to not mislead people
|
||||
into thinking you can do a portal+server reboot from in-game (you cannot) (Griatch)</p></li>
|
||||
<li><p>Fix: <code class="docutils literal notranslate"><span class="pre">DefaultObject.get_numbered_name</span></code> used <code class="docutils literal notranslate"><span class="pre">.name</span></code> instead of
|
||||
<code class="docutils literal notranslate"><span class="pre">.get_display_name</span></code> which broke recog systems. May lead to object’s #dbref
|
||||
will show for admins in some more places (Griatch)</p></li>
|
||||
<li><p><a class="reference external" href="https://github.com/evennia/evennia/pull/3420">Fix</a>: Refactor Clothing contrib’s inventory command align with
|
||||
Evennia core’s version (michaelfaith84, Griatch)</p></li>
|
||||
<li><p><a class="reference external" href="https://github.com/evennia/evennia/issues/3438">Fix</a>: Limiting search by tag didn’t take search-string into
|
||||
account (Griatch)</p></li>
|
||||
<li><p>[Fix][issue4311]: SSH connection caused a traceback in protocol (Griatch)</p></li>
|
||||
<li><p>Fix: Resolve a bug when loading on-demand-handler data from database (Griatch)</p></li>
|
||||
<li><p>Doc fixes (iLPdev, Griatch, CloudKeeper)</p></li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ with <a class="reference internal" href="EvEditor.html"><span class="doc std std
|
|||
<li><p><a class="reference internal" href="../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdOpen" title="evennia.commands.default.building.CmdOpen"><span class="xref myst py py-class"><strong>@open</strong></span></a> (cmdset: <a class="reference internal" href="../api/evennia.commands.default.cmdset_character.html#evennia.commands.default.cmdset_character.CharacterCmdSet" title="evennia.commands.default.cmdset_character.CharacterCmdSet"><span class="xref myst py py-class">CharacterCmdSet</span></a>, help-category: <em>Building</em>)</p></li>
|
||||
<li><p><a class="reference internal" href="../api/evennia.commands.default.system.html#evennia.commands.default.system.CmdPy" title="evennia.commands.default.system.CmdPy"><span class="xref myst py py-class"><strong>@py</strong> [@!]</span></a> (cmdset: <a class="reference internal" href="../api/evennia.commands.default.cmdset_account.html#evennia.commands.default.cmdset_account.AccountCmdSet" title="evennia.commands.default.cmdset_account.AccountCmdSet"><span class="xref myst py py-class">AccountCmdSet</span></a>, help-category: <em>System</em>)</p></li>
|
||||
<li><p><a class="reference internal" href="../api/evennia.commands.default.system.html#evennia.commands.default.system.CmdReload" title="evennia.commands.default.system.CmdReload"><span class="xref myst py py-class"><strong>@reload</strong> [@restart]</span></a> (cmdset: <a class="reference internal" href="../api/evennia.commands.default.cmdset_account.html#evennia.commands.default.cmdset_account.AccountCmdSet" title="evennia.commands.default.cmdset_account.AccountCmdSet"><span class="xref myst py py-class">AccountCmdSet</span></a>, help-category: <em>System</em>)</p></li>
|
||||
<li><p><a class="reference internal" href="../api/evennia.commands.default.system.html#evennia.commands.default.system.CmdReset" title="evennia.commands.default.system.CmdReset"><span class="xref myst py py-class"><strong>@reset</strong> [@reboot]</span></a> (cmdset: <a class="reference internal" href="../api/evennia.commands.default.cmdset_account.html#evennia.commands.default.cmdset_account.AccountCmdSet" title="evennia.commands.default.cmdset_account.AccountCmdSet"><span class="xref myst py py-class">AccountCmdSet</span></a>, help-category: <em>System</em>)</p></li>
|
||||
<li><p><a class="reference internal" href="../api/evennia.commands.default.system.html#evennia.commands.default.system.CmdReset" title="evennia.commands.default.system.CmdReset"><span class="xref myst py py-class"><strong>@reset</strong></span></a> (cmdset: <a class="reference internal" href="../api/evennia.commands.default.cmdset_account.html#evennia.commands.default.cmdset_account.AccountCmdSet" title="evennia.commands.default.cmdset_account.AccountCmdSet"><span class="xref myst py py-class">AccountCmdSet</span></a>, help-category: <em>System</em>)</p></li>
|
||||
<li><p><a class="reference internal" href="../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdScripts" title="evennia.commands.default.building.CmdScripts"><span class="xref myst py py-class"><strong>@scripts</strong> [@script]</span></a> (cmdset: <a class="reference internal" href="../api/evennia.commands.default.cmdset_character.html#evennia.commands.default.cmdset_character.CharacterCmdSet" title="evennia.commands.default.cmdset_character.CharacterCmdSet"><span class="xref myst py py-class">CharacterCmdSet</span></a>, help-category: <em>System</em>)</p></li>
|
||||
<li><p><a class="reference internal" href="../api/evennia.commands.default.system.html#evennia.commands.default.system.CmdServerLoad" title="evennia.commands.default.system.CmdServerLoad"><span class="xref myst py py-class"><strong>@server</strong> [@serverload]</span></a> (cmdset: <a class="reference internal" href="../api/evennia.commands.default.cmdset_character.html#evennia.commands.default.cmdset_character.CharacterCmdSet" title="evennia.commands.default.cmdset_character.CharacterCmdSet"><span class="xref myst py py-class">CharacterCmdSet</span></a>, help-category: <em>System</em>)</p></li>
|
||||
<li><p><a class="reference internal" href="../api/evennia.commands.default.system.html#evennia.commands.default.system.CmdService" title="evennia.commands.default.system.CmdService"><span class="xref myst py py-class"><strong>@service</strong> [@services]</span></a> (cmdset: <a class="reference internal" href="../api/evennia.commands.default.cmdset_character.html#evennia.commands.default.cmdset_character.CharacterCmdSet" title="evennia.commands.default.cmdset_character.CharacterCmdSet"><span class="xref myst py py-class">CharacterCmdSet</span></a>, help-category: <em>System</em>)</p></li>
|
||||
|
|
|
|||
|
|
@ -190,7 +190,6 @@
|
|||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">key</span> <span class="o">=</span> <span class="s2">"@reset"</span>
|
||||
<span class="n">aliases</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"@reboot"</span><span class="p">]</span>
|
||||
<span class="n">locks</span> <span class="o">=</span> <span class="s2">"cmd:perm(reload) or perm(Developer)"</span>
|
||||
<span class="n">help_category</span> <span class="o">=</span> <span class="s2">"System"</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -91,375 +91,235 @@
|
|||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">NPC AI module for EvAdventure (WIP)</span>
|
||||
|
||||
<span class="sd">This implements a state machine for the NPCs, where it uses inputs from the game to determine what</span>
|
||||
<span class="sd">to do next. The AI works on the concept of being 'ticks', at which point, the AI will decide to move</span>
|
||||
<span class="sd">between different 'states', performing different 'actions' within each state until changing to</span>
|
||||
<span class="sd">another state. The odds of changing between states and performing actions are weighted, allowing for</span>
|
||||
<span class="sd">an AI agent to be more or less likely to perform certain actions.</span>
|
||||
<span class="sd">This implements a simple state machine for NPCs to follow.</span>
|
||||
|
||||
<span class="sd">The state machine is fed a dictionary of states and their transitions, and a dictionary of available</span>
|
||||
<span class="sd">actions to choose between.</span>
|
||||
<span class="sd">::</span>
|
||||
<span class="sd">The AIHandler class is stored on the NPC object and is queried by the game loop to determine what</span>
|
||||
<span class="sd">the NPC does next. This leads to the calling of one of the relevant state methods on the NPC, which</span>
|
||||
<span class="sd">is where the actual logic for the NPC's behaviour is implemented. Each state is responsible for</span>
|
||||
<span class="sd">switching to the next state when the conditions are met.</span>
|
||||
|
||||
<span class="sd"> {</span>
|
||||
<span class="sd"> "states": {</span>
|
||||
<span class="sd"> "state1": {"action1": odds, "action2": odds, ...},</span>
|
||||
<span class="sd"> "state2": {"action1": odds, "action2": odds, ...}, ...</span>
|
||||
<span class="sd"> }</span>
|
||||
<span class="sd"> "transition": {</span>
|
||||
<span class="sd"> "state1": {"state2": "odds, "state3": odds, ...},</span>
|
||||
<span class="sd"> "state2": {"state1": "odds, "state3": odds, ...}, ...</span>
|
||||
<span class="sd"> }</span>
|
||||
<span class="sd"> }</span>
|
||||
<span class="sd">The AIMixin class is a mixin that can be added to any object that needs AI. It provides the `.ai`</span>
|
||||
<span class="sd">reference to the AIHandler and a few basic `ai_*` methods for basic AI behaviour.</span>
|
||||
|
||||
<span class="sd">The NPC class needs to look like this:</span>
|
||||
<span class="sd">::</span>
|
||||
|
||||
<span class="sd"> class NPC(DefaultCharacter):</span>
|
||||
<span class="sd">Example usage:</span>
|
||||
|
||||
<span class="sd"> # ...</span>
|
||||
<span class="sd">```python</span>
|
||||
<span class="sd">from evennia import create_object</span>
|
||||
<span class="sd">from .npc import EvadventureNPC</span>
|
||||
<span class="sd">from .ai import AIMixin</span>
|
||||
|
||||
<span class="sd"> @lazy_property</span>
|
||||
<span class="sd"> def ai(self):</span>
|
||||
<span class="sd"> return AIHandler(self)</span>
|
||||
<span class="sd">class MyMob(AIMixin, EvadventureNPC):</span>
|
||||
<span class="sd"> pass</span>
|
||||
|
||||
<span class="sd"> def ai_roam(self, action):</span>
|
||||
<span class="sd"> # perform the action within the current state ai.state</span>
|
||||
<span class="sd">mob = create_object(MyMob, key="Goblin", location=room)</span>
|
||||
|
||||
<span class="sd"> def ai_hunt(self, action):</span>
|
||||
<span class="sd"> # etc</span>
|
||||
<span class="sd">mob.ai.set_state("patrol")</span>
|
||||
|
||||
<span class="sd"># tick the ai whenever needed</span>
|
||||
<span class="sd">mob.ai.run()</span>
|
||||
|
||||
<span class="sd">```</span>
|
||||
|
||||
<span class="sd">"""</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">random</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">logger</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.dbserialize</span> <span class="kn">import</span> <span class="n">deserialize</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.logger</span> <span class="kn">import</span> <span class="n">log_trace</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">lazy_property</span>
|
||||
|
||||
<span class="c1"># Some example AI structures</span>
|
||||
|
||||
<span class="n">EMOTIONAL_AI</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># Non-combat AI that has different moods for conversations</span>
|
||||
<span class="s2">"states"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"neutral"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"talk_neutral"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span> <span class="s2">"change_state"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">},</span>
|
||||
<span class="s2">"happy"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"talk_happy"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span> <span class="s2">"change_state"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">},</span>
|
||||
<span class="s2">"sad"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"talk_sad"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span> <span class="s2">"change_state"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">},</span>
|
||||
<span class="s2">"angry"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"talk_angry"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span> <span class="s2">"change_state"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">},</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">STATIC_AI</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># AI that just hangs around until attacked</span>
|
||||
<span class="s2">"states"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"idle"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"do_nothing"</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">},</span>
|
||||
<span class="s2">"combat"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"attack"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span> <span class="s2">"stunt"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">},</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">ROAM_AI</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># AI that roams around randomly, now and then stopping.</span>
|
||||
<span class="s2">"states"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"idle"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"do_nothing"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span> <span class="s2">"change_state"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">},</span>
|
||||
<span class="s2">"roam"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"move_north"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span>
|
||||
<span class="s2">"move_south"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span>
|
||||
<span class="s2">"move_east"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span>
|
||||
<span class="s2">"move_west"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span>
|
||||
<span class="s2">"wait"</span><span class="p">:</span> <span class="mf">0.4</span><span class="p">,</span>
|
||||
<span class="s2">"change_state"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">,</span>
|
||||
<span class="p">},</span>
|
||||
<span class="s2">"combat"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"attack"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span> <span class="s2">"stunt"</span><span class="p">:</span> <span class="mf">0.05</span><span class="p">,</span> <span class="s2">"flee"</span><span class="p">:</span> <span class="mf">0.05</span><span class="p">},</span>
|
||||
<span class="p">},</span>
|
||||
<span class="s2">"transitions"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"idle"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"roam"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">,</span> <span class="s2">"idle"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">},</span>
|
||||
<span class="s2">"roam"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"idle"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span> <span class="s2">"roam"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">},</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">HUNTER_AI</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"states"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"hunt_roam"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"move_north"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">,</span>
|
||||
<span class="s2">"move_south"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">,</span>
|
||||
<span class="s2">"move_east"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">,</span>
|
||||
<span class="s2">"move_west"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">,</span>
|
||||
<span class="p">},</span>
|
||||
<span class="s2">"hunt_track"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"track_and_move"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span>
|
||||
<span class="s2">"change_state"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span>
|
||||
<span class="p">},</span>
|
||||
<span class="s2">"combat"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"attack"</span><span class="p">:</span> <span class="mf">0.8</span><span class="p">,</span> <span class="s2">"stunt"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span> <span class="s2">"other"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">},</span>
|
||||
<span class="p">},</span>
|
||||
<span class="s2">"transitions"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="c1"># add a chance of the hunter losing its trail</span>
|
||||
<span class="s2">"hunt_track"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"hunt_roam"</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">},</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kn">from</span> <span class="nn">.enums</span> <span class="kn">import</span> <span class="n">Ability</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="AIHandler"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler">[docs]</a><span class="k">class</span> <span class="nc">AIHandler</span><span class="p">:</span>
|
||||
<div class="viewcode-block" id="AIHandler.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">obj</span> <span class="o">=</span> <span class="n">obj</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ai_state</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ai_state"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai_state"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">"idle"</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.set_state"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.set_state">[docs]</a> <span class="k">def</span> <span class="nf">set_state</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">state</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ai_state</span> <span class="o">=</span> <span class="n">state</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"ai_state"</span><span class="p">,</span> <span class="n">state</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai_state"</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.get_state"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_state">[docs]</a> <span class="k">def</span> <span class="nf">get_state</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">ai_state</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.get_targets"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_targets">[docs]</a> <span class="k">def</span> <span class="nf">get_targets</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Get a list of potential targets for the NPC to attack</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="p">[</span><span class="n">obj</span> <span class="k">for</span> <span class="n">obj</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">location</span><span class="o">.</span><span class="n">contents</span> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="s2">"is_pc"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">obj</span><span class="o">.</span><span class="n">is_pc</span><span class="p">]</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.get_traversable_exits"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_traversable_exits">[docs]</a> <span class="k">def</span> <span class="nf">get_traversable_exits</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exclude_destination</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="p">[</span>
|
||||
<span class="n">exi</span>
|
||||
<span class="k">for</span> <span class="n">exi</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">location</span><span class="o">.</span><span class="n">exits</span>
|
||||
<span class="k">if</span> <span class="n">exi</span><span class="o">.</span><span class="n">destination</span> <span class="o">!=</span> <span class="n">exclude_destination</span> <span class="ow">and</span> <span class="n">exi</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"traverse"</span><span class="p">)</span>
|
||||
<span class="p">]</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.random_probability"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.random_probability">[docs]</a> <span class="k">def</span> <span class="nf">random_probability</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">probabilities</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Given a dictionary of probabilities, return the key of the chosen probability.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">r</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">()</span>
|
||||
<span class="c1"># sort probabilities from higheest to lowest, making sure to normalize them 0..1</span>
|
||||
<span class="n">prob_total</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="n">probabilities</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
|
||||
<span class="n">sorted_probs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span>
|
||||
<span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">prob</span> <span class="o">/</span> <span class="n">prob_total</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">prob</span> <span class="ow">in</span> <span class="n">probabilities</span><span class="o">.</span><span class="n">items</span><span class="p">()),</span>
|
||||
<span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span>
|
||||
<span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">total</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">prob</span> <span class="ow">in</span> <span class="n">sorted_probs</span><span class="p">:</span>
|
||||
<span class="n">total</span> <span class="o">+=</span> <span class="n">prob</span>
|
||||
<span class="k">if</span> <span class="n">r</span> <span class="o"><=</span> <span class="n">total</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">key</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.run"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_state</span><span class="p">()</span>
|
||||
<span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"ai_</span><span class="si">{</span><span class="n">state</span><span class="si">}</span><span class="s2">"</span><span class="p">)()</span>
|
||||
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
|
||||
<span class="n">log_trace</span><span class="p">(</span><span class="sa">f</span><span class="s2">"AI error in </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2"> (running state: </span><span class="si">{</span><span class="n">state</span><span class="si">}</span><span class="s2">)"</span><span class="p">)</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="AIMixin"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin">[docs]</a><span class="k">class</span> <span class="nc">AIMixin</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> AIHandler class. This should be placed on the NPC object, and will handle the state machine,</span>
|
||||
<span class="sd"> including transitions and actions.</span>
|
||||
|
||||
<span class="sd"> Add to typeclass with @lazyproperty:</span>
|
||||
|
||||
<span class="sd"> class NPC(DefaultCharacter):</span>
|
||||
|
||||
<span class="sd"> ai_states = {...}</span>
|
||||
|
||||
<span class="sd"> # ...</span>
|
||||
|
||||
<span class="sd"> @lazyproperty</span>
|
||||
<span class="sd"> def ai(self):</span>
|
||||
<span class="sd"> return AIHandler(self)</span>
|
||||
<span class="sd"> Mixin for adding AI to an Object. This is a simple state machine. Just add more `ai_*` methods</span>
|
||||
<span class="sd"> to the object to make it do more things.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">obj</span> <span class="o">=</span> <span class="n">obj</span>
|
||||
<span class="c1"># combat probabilities should add up to 1.0</span>
|
||||
<span class="n">combat_probabilities</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"hold"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span>
|
||||
<span class="s2">"attack"</span><span class="p">:</span> <span class="mf">0.9</span><span class="p">,</span>
|
||||
<span class="s2">"stunt"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
|
||||
<span class="s2">"item"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
|
||||
<span class="s2">"flee"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"ai_states"</span><span class="p">):</span>
|
||||
<span class="c1"># since we're not setting `force=True` here, we won't overwrite any existing /</span>
|
||||
<span class="c1"># customized dicts.</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">add_aidict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ai_states</span><span class="p">)</span></div>
|
||||
<div class="viewcode-block" id="AIMixin.ai"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai">[docs]</a> <span class="nd">@lazy_property</span>
|
||||
<span class="k">def</span> <span class="nf">ai</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">AIHandler</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="sa">f</span><span class="s2">"AIHandler for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="si">}</span><span class="s2">. Current state: </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">state</span><span class="si">}</span><span class="s2">"</span>
|
||||
<div class="viewcode-block" id="AIMixin.ai_idle"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_idle">[docs]</a> <span class="k">def</span> <span class="nf">ai_idle</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">pass</span></div>
|
||||
|
||||
<span class="nd">@staticmethod</span>
|
||||
<span class="k">def</span> <span class="nf">_normalize_odds</span><span class="p">(</span><span class="n">odds</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="AIMixin.ai_attack"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_attack">[docs]</a> <span class="k">def</span> <span class="nf">ai_attack</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">pass</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIMixin.ai_patrol"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_patrol">[docs]</a> <span class="k">def</span> <span class="nf">ai_patrol</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">pass</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIMixin.ai_flee"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_flee">[docs]</a> <span class="k">def</span> <span class="nf">ai_flee</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">pass</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="IdleMobMixin"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.IdleMobMixin">[docs]</a><span class="k">class</span> <span class="nc">IdleMobMixin</span><span class="p">(</span><span class="n">AIMixin</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> A simple mob that understands AI commands, but does nothing.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<div class="viewcode-block" id="IdleMobMixin.ai_idle"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.IdleMobMixin.ai_idle">[docs]</a> <span class="k">def</span> <span class="nf">ai_idle</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">pass</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="AggressiveMobMixin"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin">[docs]</a><span class="k">class</span> <span class="nc">AggressiveMobMixin</span><span class="p">(</span><span class="n">AIMixin</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> A simple aggressive mob that can roam, attack and flee.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">combat_probabilities</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"hold"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
|
||||
<span class="s2">"attack"</span><span class="p">:</span> <span class="mf">0.85</span><span class="p">,</span>
|
||||
<span class="s2">"stunt"</span><span class="p">:</span> <span class="mf">0.05</span><span class="p">,</span>
|
||||
<span class="s2">"item"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
|
||||
<span class="s2">"flee"</span><span class="p">:</span> <span class="mf">0.05</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<div class="viewcode-block" id="AggressiveMobMixin.ai_idle"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_idle">[docs]</a> <span class="k">def</span> <span class="nf">ai_idle</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Normalize odds to 1.0.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> odds (list): List of odds to normalize.</span>
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: Normalized list of odds.</span>
|
||||
<span class="sd"> Do nothing, but switch to attack state if a target is found.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="p">[</span><span class="nb">float</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="o">/</span> <span class="nb">sum</span><span class="p">(</span><span class="n">odds</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">odds</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_targets</span><span class="p">():</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="s2">"attack"</span><span class="p">)</span></div>
|
||||
|
||||
<span class="nd">@staticmethod</span>
|
||||
<span class="k">def</span> <span class="nf">_weighted_choice</span><span class="p">(</span><span class="n">choices</span><span class="p">,</span> <span class="n">odds</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="AggressiveMobMixin.ai_attack"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_attack">[docs]</a> <span class="k">def</span> <span class="nf">ai_attack</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Choose a random element from a list of choices, with odds.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> choices (list): List of choices to choose from. Unordered.</span>
|
||||
<span class="sd"> odds (list): List of odds to choose from, matching the choices list. This</span>
|
||||
<span class="sd"> can be a list of integers or floats, indicating priority. Have odds sum</span>
|
||||
<span class="sd"> up to 100 or 1.0 to properly represent predictable odds.</span>
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> object: Randomly chosen element from choices.</span>
|
||||
<span class="sd"> Manage the attack/combat state of the mob.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="n">choices</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">random</span><span class="o">.</span><span class="n">choices</span><span class="p">(</span><span class="n">choices</span><span class="p">,</span> <span class="n">odds</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">combathandler</span> <span class="o">:=</span> <span class="bp">self</span><span class="o">.</span><span class="n">nbd</span><span class="o">.</span><span class="n">combathandler</span><span class="p">:</span>
|
||||
<span class="c1"># already in combat</span>
|
||||
<span class="n">allies</span><span class="p">,</span> <span class="n">enemies</span> <span class="o">=</span> <span class="n">combathandler</span><span class="o">.</span><span class="n">get_sides</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="n">action</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">random_probability</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">combat_probabilities</span><span class="p">)</span>
|
||||
|
||||
<span class="nd">@staticmethod</span>
|
||||
<span class="k">def</span> <span class="nf">_weighted_choice_dict</span><span class="p">(</span><span class="n">choices</span><span class="p">):</span>
|
||||
<span class="k">match</span> <span class="n">action</span><span class="p">:</span>
|
||||
<span class="k">case</span> <span class="s2">"hold"</span><span class="p">:</span>
|
||||
<span class="n">combathandler</span><span class="o">.</span><span class="n">queue_action</span><span class="p">({</span><span class="s2">"key"</span><span class="p">:</span> <span class="s2">"hold"</span><span class="p">})</span>
|
||||
<span class="k">case</span> <span class="s2">"attack"</span><span class="p">:</span>
|
||||
<span class="n">combathandler</span><span class="o">.</span><span class="n">queue_action</span><span class="p">({</span><span class="s2">"key"</span><span class="p">:</span> <span class="s2">"attack"</span><span class="p">,</span> <span class="s2">"target"</span><span class="p">:</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">enemies</span><span class="p">)})</span>
|
||||
<span class="k">case</span> <span class="s2">"stunt"</span><span class="p">:</span>
|
||||
<span class="c1"># choose a random ally to help</span>
|
||||
<span class="n">combathandler</span><span class="o">.</span><span class="n">queue_action</span><span class="p">(</span>
|
||||
<span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"stunt"</span><span class="p">,</span>
|
||||
<span class="s2">"recipient"</span><span class="p">:</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">allies</span><span class="p">),</span>
|
||||
<span class="s2">"advantage"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
|
||||
<span class="s2">"stunt"</span><span class="p">:</span> <span class="n">Ability</span><span class="o">.</span><span class="n">STR</span><span class="p">,</span>
|
||||
<span class="s2">"defense"</span><span class="p">:</span> <span class="n">Ability</span><span class="o">.</span><span class="n">DEX</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">case</span> <span class="s2">"item"</span><span class="p">:</span>
|
||||
<span class="c1"># use a random item on a random ally</span>
|
||||
<span class="n">target</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">allies</span><span class="p">)</span>
|
||||
<span class="n">valid_items</span> <span class="o">=</span> <span class="p">[</span><span class="n">item</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">contents</span> <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">at_pre_use</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target</span><span class="p">)]</span>
|
||||
<span class="n">combathandler</span><span class="o">.</span><span class="n">queue_action</span><span class="p">(</span>
|
||||
<span class="p">{</span><span class="s2">"key"</span><span class="p">:</span> <span class="s2">"item"</span><span class="p">,</span> <span class="s2">"item"</span><span class="p">:</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">valid_items</span><span class="p">),</span> <span class="s2">"target"</span><span class="p">:</span> <span class="n">target</span><span class="p">}</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">case</span> <span class="s2">"flee"</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="s2">"flee"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">targets</span> <span class="o">:=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_targets</span><span class="p">()):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="s2">"patrol"</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">target</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">targets</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="sa">f</span><span class="s2">"attack </span><span class="si">{</span><span class="n">target</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AggressiveMobMixin.ai_patrol"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_patrol">[docs]</a> <span class="k">def</span> <span class="nf">ai_patrol</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Choose a random element from a dictionary of choices, with odds.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> choices (dict): Dictionary of choices to choose from, with odds as values.</span>
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> object: Randomly chosen element from choices.</span>
|
||||
<span class="sd"> Patrol, moving randomly to a new room. If a target is found, switch to attack state.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="n">AIHandler</span><span class="o">.</span><span class="n">_weighted_choice</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">choices</span><span class="o">.</span><span class="n">keys</span><span class="p">()),</span> <span class="nb">list</span><span class="p">(</span><span class="n">choices</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
||||
<span class="k">if</span> <span class="n">targets</span> <span class="o">:=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_targets</span><span class="p">():</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="s2">"attack"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="sa">f</span><span class="s2">"attack </span><span class="si">{</span><span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">targets</span><span class="p">)</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">exits</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_traversable_exits</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="n">exits</span><span class="p">:</span>
|
||||
<span class="n">exi</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">exits</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">exi</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span></div>
|
||||
|
||||
<span class="nd">@staticmethod</span>
|
||||
<span class="k">def</span> <span class="nf">_validate_ai_dict</span><span class="p">(</span><span class="n">aidict</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="AggressiveMobMixin.ai_flee"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_flee">[docs]</a> <span class="k">def</span> <span class="nf">ai_flee</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Validate and normalize an AI dictionary.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> aidict (dict): AI dictionary to normalize.</span>
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> dict: Normalized AI dictionary.</span>
|
||||
<span class="sd"> Flee from the current room, avoiding going back to the room from which we came. If no exits</span>
|
||||
<span class="sd"> are found, switch to patrol state.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="s2">"states"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aidict</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"AI dictionary must contain a 'states' key."</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="s2">"transitions"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aidict</span><span class="p">:</span>
|
||||
<span class="n">aidict</span><span class="p">[</span><span class="s2">"transitions"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
|
||||
<span class="c1"># if we have no transitions, make sure we have a transition for each state set to 0</span>
|
||||
<span class="k">for</span> <span class="n">state</span> <span class="ow">in</span> <span class="n">aidict</span><span class="p">[</span><span class="s2">"states"</span><span class="p">]:</span>
|
||||
<span class="k">if</span> <span class="n">state</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aidict</span><span class="p">[</span><span class="s2">"transitions"</span><span class="p">]:</span>
|
||||
<span class="n">aidict</span><span class="p">[</span><span class="s2">"transitions"</span><span class="p">][</span><span class="n">state</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">state2</span> <span class="ow">in</span> <span class="n">aidict</span><span class="p">[</span><span class="s2">"states"</span><span class="p">]:</span>
|
||||
<span class="k">if</span> <span class="n">state2</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aidict</span><span class="p">[</span><span class="s2">"transitions"</span><span class="p">][</span><span class="n">state</span><span class="p">]:</span>
|
||||
<span class="n">aidict</span><span class="p">[</span><span class="s2">"transitions"</span><span class="p">][</span><span class="n">state</span><span class="p">][</span><span class="n">state2</span><span class="p">]</span> <span class="o">=</span> <span class="mf">0.0</span>
|
||||
|
||||
<span class="c1"># normalize odds</span>
|
||||
<span class="k">for</span> <span class="n">state</span><span class="p">,</span> <span class="n">actions</span> <span class="ow">in</span> <span class="n">aidict</span><span class="p">[</span><span class="s2">"states"</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="n">aidict</span><span class="p">[</span><span class="s2">"states"</span><span class="p">][</span><span class="n">state</span><span class="p">]</span> <span class="o">=</span> <span class="n">AIHandler</span><span class="o">.</span><span class="n">_normalize_odds</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">actions</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
||||
<span class="k">for</span> <span class="n">state</span><span class="p">,</span> <span class="n">transitions</span> <span class="ow">in</span> <span class="n">aidict</span><span class="p">[</span><span class="s2">"transitions"</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="n">aidict</span><span class="p">[</span><span class="s2">"transitions"</span><span class="p">][</span><span class="n">state</span><span class="p">]</span> <span class="o">=</span> <span class="n">AIHandler</span><span class="o">.</span><span class="n">_normalize_odds</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">transitions</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">aidict</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span> <span class="nf">state</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Return the current state of the AI.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: Current state of the AI.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ai_state"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">"idle"</span><span class="p">)</span>
|
||||
|
||||
<span class="nd">@state</span><span class="o">.</span><span class="n">setter</span>
|
||||
<span class="k">def</span> <span class="nf">state</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Set the current state of the AI. This allows to force a state change, e.g. when starting</span>
|
||||
<span class="sd"> combat.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> value (str): New state of the AI.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"ai_state"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai"</span><span class="p">)</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span> <span class="nf">states</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Return the states dictionary for the AI.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> dict: States dictionary for the AI.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ai_states"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="p">{</span><span class="s2">"idle"</span><span class="p">:</span> <span class="p">{}})</span>
|
||||
|
||||
<span class="nd">@states</span><span class="o">.</span><span class="n">setter</span>
|
||||
<span class="k">def</span> <span class="nf">states</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Set the states dictionary for the AI.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> value (dict): New states dictionary for the AI.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"ai_states"</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai"</span><span class="p">)</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span> <span class="nf">transitions</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Return the transitions dictionary for the AI.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> dict: Transitions dictionary for the AI.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ai_transitions"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="p">{</span><span class="s2">"idle"</span><span class="p">:</span> <span class="p">[]})</span>
|
||||
|
||||
<span class="nd">@transitions</span><span class="o">.</span><span class="n">setter</span>
|
||||
<span class="k">def</span> <span class="nf">transitions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Set the transitions dictionary for the AI.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> value (dict): New transitions dictionary for the AI. This will be automatically</span>
|
||||
<span class="sd"> normalized.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">for</span> <span class="n">state</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
|
||||
<span class="n">value</span><span class="p">[</span><span class="n">state</span><span class="p">]</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span>
|
||||
<span class="nb">zip</span><span class="p">(</span><span class="n">value</span><span class="p">[</span><span class="n">state</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">_normalize_odds</span><span class="p">(</span><span class="n">value</span><span class="p">[</span><span class="n">state</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">"ai_transitions"</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai"</span><span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.add_aidict"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.add_aidict">[docs]</a> <span class="k">def</span> <span class="nf">add_aidict</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">aidict</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Add an AI dictionary to the AI handler, if one doesn't already exist.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> aidict (dict): AI dictionary to add.</span>
|
||||
<span class="sd"> force (bool, optional): Force adding the AI dictionary, even if one already exists on</span>
|
||||
<span class="sd"> this handler.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">force</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">states</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">transitions</span><span class="p">:</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="n">aidict</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_validate_ai_dict</span><span class="p">(</span><span class="n">aidict</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">states</span> <span class="o">=</span> <span class="n">aidict</span><span class="p">[</span><span class="s2">"states"</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">transitions</span> <span class="o">=</span> <span class="n">aidict</span><span class="p">[</span><span class="s2">"transitions"</span><span class="p">]</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.adjust_transition_probability"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.adjust_transition_probability">[docs]</a> <span class="k">def</span> <span class="nf">adjust_transition_probability</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">state_start</span><span class="p">,</span> <span class="n">state_end</span><span class="p">,</span> <span class="n">odds</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Adjust the transition probability between two states.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> state_start (str): State to start from.</span>
|
||||
<span class="sd"> state_end (str): State to end at.</span>
|
||||
<span class="sd"> odds (int): New odds for the transition.</span>
|
||||
|
||||
<span class="sd"> Note:</span>
|
||||
<span class="sd"> This will normalize the odds across the other transitions from the starting state.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">transitions</span> <span class="o">=</span> <span class="n">deserialize</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">transitions</span><span class="p">)</span>
|
||||
<span class="n">transitions</span><span class="p">[</span><span class="n">state_start</span><span class="p">][</span><span class="n">state_end</span><span class="p">]</span> <span class="o">=</span> <span class="n">odds</span>
|
||||
<span class="n">transitions</span><span class="p">[</span><span class="n">state_start</span><span class="p">]</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span>
|
||||
<span class="nb">zip</span><span class="p">(</span>
|
||||
<span class="n">transitions</span><span class="p">[</span><span class="n">state_start</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">(),</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_normalize_odds</span><span class="p">(</span><span class="n">transitions</span><span class="p">[</span><span class="n">state_start</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">()),</span>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">transitions</span> <span class="o">=</span> <span class="n">transitions</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.get_next_state"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_next_state">[docs]</a> <span class="k">def</span> <span class="nf">get_next_state</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Get the next state for the AI.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: Next state for the AI.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_weighted_choice_dict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">transitions</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">state</span><span class="p">])</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.get_next_action"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_next_action">[docs]</a> <span class="k">def</span> <span class="nf">get_next_action</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Get the next action for the AI within the current state.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: Next action for the AI.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_weighted_choice_dict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">states</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">state</span><span class="p">])</span></div>
|
||||
|
||||
<div class="viewcode-block" id="AIHandler.execute_ai"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.execute_ai">[docs]</a> <span class="k">def</span> <span class="nf">execute_ai</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Execute the next ai action in the current state.</span>
|
||||
|
||||
<span class="sd"> This assumes that each available state exists as a method on the object, named</span>
|
||||
<span class="sd"> ai_<state_name>, taking an optional argument of the next action to perform. The method</span>
|
||||
<span class="sd"> will itself update the state or transition weights through this handler.</span>
|
||||
|
||||
<span class="sd"> Some states have in-built state transitions, via the special "change_state" action.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">next_action</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_next_action</span><span class="p">()</span>
|
||||
<span class="n">statechange</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">while</span> <span class="n">next_action</span> <span class="o">==</span> <span class="s2">"change_state"</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_next_state</span><span class="p">()</span>
|
||||
<span class="n">next_action</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_next_action</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="n">statechange</span> <span class="o">></span> <span class="mi">5</span><span class="p">:</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">log_err</span><span class="p">(</span><span class="sa">f</span><span class="s2">"AIHandler: </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="si">}</span><span class="s2"> got stuck in a state-change loop."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="c1"># perform the action</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"ai_</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">state</span><span class="si">}</span><span class="s2">"</span><span class="p">)(</span><span class="n">next_action</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">log_err</span><span class="p">(</span><span class="sa">f</span><span class="s2">"AIHandler: </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="si">}</span><span class="s2"> has no ai_</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">state</span><span class="si">}</span><span class="s2"> method."</span><span class="p">)</span></div></div>
|
||||
<span class="n">current_room</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">location</span>
|
||||
<span class="n">past_room</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"past_room"</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai_state"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">exits</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_traversable_exits</span><span class="p">(</span><span class="n">exclude_destination</span><span class="o">=</span><span class="n">past_room</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">exits</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"past_room"</span><span class="p">,</span> <span class="n">current_room</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="s2">"ai_state"</span><span class="p">)</span>
|
||||
<span class="n">exi</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">exits</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">exi</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># if in a dead end, patrol will allow for backing out</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="s2">"patrol"</span><span class="p">)</span></div></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@
|
|||
<span class="kn">from</span> <span class="nn">evennia.utils.evmenu</span> <span class="kn">import</span> <span class="n">EvMenu</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">make_iter</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">.ai</span> <span class="kn">import</span> <span class="n">AggressiveMobMixin</span>
|
||||
<span class="kn">from</span> <span class="nn">.characters</span> <span class="kn">import</span> <span class="n">LivingMixin</span>
|
||||
<span class="kn">from</span> <span class="nn">.enums</span> <span class="kn">import</span> <span class="n">Ability</span><span class="p">,</span> <span class="n">WieldLocation</span>
|
||||
<span class="kn">from</span> <span class="nn">.objects</span> <span class="kn">import</span> <span class="n">get_bare_hands</span>
|
||||
|
|
@ -337,7 +338,7 @@
|
|||
<span class="p">)</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="EvAdventureMob"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob">[docs]</a><span class="k">class</span> <span class="nc">EvAdventureMob</span><span class="p">(</span><span class="n">EvAdventureNPC</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="EvAdventureMob"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob">[docs]</a><span class="k">class</span> <span class="nc">EvAdventureMob</span><span class="p">(</span><span class="n">AggressiveMobMixin</span><span class="p">,</span> <span class="n">EvAdventureNPC</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Mob (mobile) NPC; this is usually an enemy.</span>
|
||||
|
||||
|
|
@ -346,36 +347,6 @@
|
|||
<span class="c1"># chance (%) that this enemy will loot you when defeating you</span>
|
||||
<span class="n">loot_chance</span> <span class="o">=</span> <span class="n">AttributeProperty</span><span class="p">(</span><span class="mi">75</span><span class="p">,</span> <span class="n">autocreate</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="EvAdventureMob.ai_next_action"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob.ai_next_action">[docs]</a> <span class="k">def</span> <span class="nf">ai_next_action</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Called to get the next action in combat.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> combathandler (EvAdventureCombatHandler): The currently active combathandler.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> tuple: A tuple `(str, tuple, dict)`, being the `action_key`, and the `*args` and</span>
|
||||
<span class="sd"> `**kwargs` for that action. The action-key is that of a CombatAction available to the</span>
|
||||
<span class="sd"> combatant in the current combat handler.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">from</span> <span class="nn">.combat</span> <span class="kn">import</span> <span class="n">CombatActionAttack</span><span class="p">,</span> <span class="n">CombatActionDoNothing</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_idle</span><span class="p">:</span>
|
||||
<span class="c1"># mob just stands around</span>
|
||||
<span class="k">return</span> <span class="n">CombatActionDoNothing</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="p">(),</span> <span class="p">{}</span>
|
||||
|
||||
<span class="n">target</span> <span class="o">=</span> <span class="n">choice</span><span class="p">(</span><span class="n">combathandler</span><span class="o">.</span><span class="n">get_enemy_targets</span><span class="p">(</span><span class="bp">self</span><span class="p">))</span>
|
||||
|
||||
<span class="c1"># simply randomly decide what action to take</span>
|
||||
<span class="n">action</span> <span class="o">=</span> <span class="n">choice</span><span class="p">(</span>
|
||||
<span class="p">(</span>
|
||||
<span class="n">CombatActionAttack</span><span class="p">,</span>
|
||||
<span class="n">CombatActionDoNothing</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">action</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="p">(</span><span class="n">target</span><span class="p">,),</span> <span class="p">{}</span></div>
|
||||
|
||||
<div class="viewcode-block" id="EvAdventureMob.at_defeat"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob.at_defeat">[docs]</a> <span class="k">def</span> <span class="nf">at_defeat</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Mobs die right away when defeated, no death-table rolls.</span>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,168 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>evennia.contrib.tutorials.evadventure.tests.test_ai — Evennia latest documentation</title>
|
||||
<link rel="stylesheet" href="../../../../../../_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../../../../_static/pygments.css" type="text/css" />
|
||||
<script id="documentation_options" data-url_root="../../../../../../" src="../../../../../../_static/documentation_options.js"></script>
|
||||
<script src="../../../../../../_static/jquery.js"></script>
|
||||
<script src="../../../../../../_static/underscore.js"></script>
|
||||
<script src="../../../../../../_static/doctools.js"></script>
|
||||
<script src="../../../../../../_static/language_data.js"></script>
|
||||
<link rel="shortcut icon" href="../../../../../../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../../../../../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../../../../../search.html" />
|
||||
</head><body>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../../../../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../../../../index.html">Evennia latest</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../../evennia.html" accesskey="U">evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
|
||||
<div class="documentwrapper">
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<p class="logo"><a href="../../../../../../index.html">
|
||||
<img class="logo" src="../../../../../../_static/evennia_logo.png" alt="Logo"/>
|
||||
</a></p>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../../../../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script><h3>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
|
||||
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
|
||||
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
|
||||
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
||||
<li>
|
||||
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
||||
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
||||
<a href="https://evennia.blogspot.com/">Blog</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Doc Versions</h3>
|
||||
<ul>
|
||||
|
||||
<li><a href="test_ai.html">latest (main branch)</a></li>
|
||||
|
||||
<li><a href="../../3.x/index.html">v3.0.0 branch (outdated)</a></li>
|
||||
|
||||
<li><a href="../../2.x/index.html">v2.0.0 branch (outdated)</a></li>
|
||||
|
||||
<li><a href="../../1.x/index.html">v1.0.0 branch (outdated)</a></li>
|
||||
|
||||
<li><a href="../../0.x/index.html">v0.9.5 branch (outdated)</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for evennia.contrib.tutorials.evadventure.tests.test_ai</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Test the ai module.</span>
|
||||
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span> <span class="nn">unittest.mock</span> <span class="kn">import</span> <span class="n">Mock</span><span class="p">,</span> <span class="n">patch</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">create_object</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.test_resources</span> <span class="kn">import</span> <span class="n">BaseEvenniaTest</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">..characters</span> <span class="kn">import</span> <span class="n">EvAdventureCharacter</span>
|
||||
<span class="kn">from</span> <span class="nn">..npcs</span> <span class="kn">import</span> <span class="n">EvAdventureMob</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="TestAI"><a class="viewcode-back" href="../../../../../../api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI">[docs]</a><span class="k">class</span> <span class="nc">TestAI</span><span class="p">(</span><span class="n">BaseEvenniaTest</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="TestAI.setUp"><a class="viewcode-back" href="../../../../../../api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.setUp">[docs]</a> <span class="k">def</span> <span class="nf">setUp</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">setUp</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">npc</span> <span class="o">=</span> <span class="n">create_object</span><span class="p">(</span><span class="n">EvAdventureMob</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">"Goblin"</span><span class="p">,</span> <span class="n">location</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">pc</span> <span class="o">=</span> <span class="n">create_object</span><span class="p">(</span><span class="n">EvAdventureCharacter</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">"Player"</span><span class="p">,</span> <span class="n">location</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">room1</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="TestAI.tearDown"><a class="viewcode-back" href="../../../../../../api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.tearDown">[docs]</a> <span class="k">def</span> <span class="nf">tearDown</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tearDown</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span></div>
|
||||
|
||||
<div class="viewcode-block" id="TestAI.test_ai_methods"><a class="viewcode-back" href="../../../../../../api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.test_ai_methods">[docs]</a> <span class="nd">@patch</span><span class="p">(</span><span class="s2">"evennia.contrib.tutorials.evadventure.ai.random.random"</span><span class="p">)</span>
|
||||
<span class="nd">@patch</span><span class="p">(</span><span class="s2">"evennia.contrib.tutorials.evadventure.ai.log_trace"</span><span class="p">)</span>
|
||||
<span class="k">def</span> <span class="nf">test_ai_methods</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mock_log_trace</span><span class="p">,</span> <span class="n">mock_random</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_state</span><span class="p">(),</span> <span class="s2">"idle"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="s2">"patrol"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_state</span><span class="p">(),</span> <span class="s2">"patrol"</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_targets</span><span class="p">(),</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">pc</span><span class="p">])</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_traversable_exits</span><span class="p">(),</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">])</span>
|
||||
|
||||
<span class="n">probs</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"hold"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span> <span class="s2">"attack"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">,</span> <span class="s2">"flee"</span><span class="p">:</span> <span class="mf">0.4</span><span class="p">}</span>
|
||||
<span class="n">mock_random</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="mf">0.3</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">random_probability</span><span class="p">(</span><span class="n">probs</span><span class="p">),</span> <span class="s2">"attack"</span><span class="p">)</span>
|
||||
<span class="n">mock_random</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="mf">0.7</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">random_probability</span><span class="p">(</span><span class="n">probs</span><span class="p">),</span> <span class="s2">"flee"</span><span class="p">)</span>
|
||||
<span class="n">mock_random</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="mf">0.95</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">random_probability</span><span class="p">(</span><span class="n">probs</span><span class="p">),</span> <span class="s2">"hold"</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="TestAI.test_ai_run"><a class="viewcode-back" href="../../../../../../api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.test_ai_run">[docs]</a> <span class="k">def</span> <span class="nf">test_ai_run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="s2">"patrol"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_state</span><span class="p">(),</span> <span class="s2">"patrol"</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npc</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">get_state</span><span class="p">(),</span> <span class="s2">"attack"</span><span class="p">)</span></div></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../../../../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../../../../index.html">Evennia latest</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../../evennia.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2023, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -96,7 +96,6 @@
|
|||
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>
|
||||
<span class="kn">from</span> <span class="nn">django.db.models</span> <span class="kn">import</span> <span class="n">Q</span>
|
||||
<span class="kn">from</span> <span class="nn">django.db.models.fields</span> <span class="kn">import</span> <span class="n">exceptions</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">evennia.server</span> <span class="kn">import</span> <span class="n">signals</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.typeclasses.managers</span> <span class="kn">import</span> <span class="n">TypeclassManager</span><span class="p">,</span> <span class="n">TypedObjectManager</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="p">(</span>
|
||||
|
|
@ -532,9 +531,6 @@
|
|||
<span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_search_by_tag</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">taglist</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">query</span><span class="p">:</span>
|
||||
<span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">tagkey</span><span class="p">,</span> <span class="n">tagcategory</span> <span class="ow">in</span> <span class="n">taglist</span><span class="p">:</span>
|
||||
<span class="n">query</span> <span class="o">=</span> <span class="n">query</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">db_tags__db_key</span><span class="o">=</span><span class="n">tagkey</span><span class="p">,</span> <span class="n">db_tags__db_category</span><span class="o">=</span><span class="n">tagcategory</span><span class="p">)</span>
|
||||
|
||||
|
|
@ -542,7 +538,7 @@
|
|||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">searchdata</span> <span class="ow">and</span> <span class="n">searchdata</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">tags</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">_search_by_tag</span><span class="p">(</span><span class="n">make_iter</span><span class="p">(</span><span class="n">tags</span><span class="p">))</span>
|
||||
<span class="k">return</span> <span class="n">_search_by_tag</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">all</span><span class="p">(),</span> <span class="n">make_iter</span><span class="p">(</span><span class="n">tags</span><span class="p">))</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">none</span><span class="p">()</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -124,6 +124,9 @@
|
|||
<span class="k">raise</span> <span class="ne">ImportError</span><span class="p">(</span><span class="n">_SSH_IMPORT_ERROR</span><span class="p">)</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.accounts.models</span> <span class="kn">import</span> <span class="n">AccountDB</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">ansi</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">class_from_module</span><span class="p">,</span> <span class="n">to_str</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.conch</span> <span class="kn">import</span> <span class="n">interfaces</span> <span class="k">as</span> <span class="n">iconch</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.conch.insults</span> <span class="kn">import</span> <span class="n">insults</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.conch.manhole</span> <span class="kn">import</span> <span class="n">Manhole</span><span class="p">,</span> <span class="n">recvline</span>
|
||||
|
|
@ -133,10 +136,6 @@
|
|||
<span class="kn">from</span> <span class="nn">twisted.internet</span> <span class="kn">import</span> <span class="n">defer</span><span class="p">,</span> <span class="n">protocol</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.python</span> <span class="kn">import</span> <span class="n">components</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">evennia.accounts.models</span> <span class="kn">import</span> <span class="n">AccountDB</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">ansi</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">class_from_module</span><span class="p">,</span> <span class="n">to_str</span>
|
||||
|
||||
<span class="n">_RE_N</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\|n$"</span><span class="p">)</span>
|
||||
<span class="n">_RE_SCREENREADER_REGEX</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span>
|
||||
<span class="sa">r</span><span class="s2">"</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">settings</span><span class="o">.</span><span class="n">SCREENREADER_REGEX_STRIP</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">DOTALL</span> <span class="o">+</span> <span class="n">re</span><span class="o">.</span><span class="n">MULTILINE</span>
|
||||
|
|
@ -217,15 +216,15 @@
|
|||
<span class="bp">self</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="n">width</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="n">height</span>
|
||||
|
||||
<span class="c1"># Set color defaults</span>
|
||||
<span class="k">for</span> <span class="n">color</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"ANSI"</span><span class="p">,</span> <span class="s2">"XTERM256"</span><span class="p">,</span> <span class="s2">"TRUECOLOR"</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">protocol_flags</span><span class="p">[</span><span class="n">color</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
|
||||
<span class="c1"># initialize the session</span>
|
||||
<span class="n">client_address</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getClientAddress</span><span class="p">()</span>
|
||||
<span class="n">client_address</span> <span class="o">=</span> <span class="n">client_address</span><span class="o">.</span><span class="n">host</span> <span class="k">if</span> <span class="n">client_address</span> <span class="k">else</span> <span class="kc">None</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">init_session</span><span class="p">(</span><span class="s2">"ssh"</span><span class="p">,</span> <span class="n">client_address</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfactory</span><span class="o">.</span><span class="n">sessionhandler</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Set color defaults</span>
|
||||
<span class="k">for</span> <span class="n">color</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"ANSI"</span><span class="p">,</span> <span class="s2">"XTERM256"</span><span class="p">,</span> <span class="s2">"TRUECOLOR"</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">protocol_flags</span><span class="p">[</span><span class="n">color</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
|
||||
<span class="c1"># since we might have authenticated already, we might set this here.</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">authenticated_account</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">logged_in</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
|
|
|
|||
|
|
@ -235,6 +235,7 @@
|
|||
<li><a href="evennia/contrib/tutorials/evadventure/rules.html">evennia.contrib.tutorials.evadventure.rules</a></li>
|
||||
<li><a href="evennia/contrib/tutorials/evadventure/shops.html">evennia.contrib.tutorials.evadventure.shops</a></li>
|
||||
<li><a href="evennia/contrib/tutorials/evadventure/tests/mixins.html">evennia.contrib.tutorials.evadventure.tests.mixins</a></li>
|
||||
<li><a href="evennia/contrib/tutorials/evadventure/tests/test_ai.html">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
<li><a href="evennia/contrib/tutorials/evadventure/tests/test_characters.html">evennia.contrib.tutorials.evadventure.tests.test_characters</a></li>
|
||||
<li><a href="evennia/contrib/tutorials/evadventure/tests/test_chargen.html">evennia.contrib.tutorials.evadventure.tests.test_chargen</a></li>
|
||||
<li><a href="evennia/contrib/tutorials/evadventure/tests/test_combat.html">evennia.contrib.tutorials.evadventure.tests.test_combat</a></li>
|
||||
|
|
|
|||
|
|
@ -19,15 +19,23 @@
|
|||
objects based on the visible key and desc. Useful for inventory listings (Griatch)
|
||||
- Feature: Add `DefaultObject.get_numbered_name` `return_string` bool kwarg, for only
|
||||
returning singular/plural based on count instead of a tuple with both (Griatch)
|
||||
- [Fix][issue3443] Removed the `@reboot` alias to `@reset` to not mislead people
|
||||
into thinking you can do a portal+server reboot from in-game (you cannot) (Griatch)
|
||||
- Fix: `DefaultObject.get_numbered_name` used `.name` instead of
|
||||
`.get_display_name` which broke recog systems. May lead to object's #dbref
|
||||
will show for admins in some more places (Griatch)
|
||||
- [Fix][pull3420]: Refactor Clothing contrib's inventory command align with
|
||||
Evennia core's version (michaelfaith84, Griatch)
|
||||
- [Fix][issue3438]: Limiting search by tag didn't take search-string into
|
||||
account (Griatch)
|
||||
- [Fix][issue4311]: SSH connection caused a traceback in protocol (Griatch)
|
||||
- Fix: Resolve a bug when loading on-demand-handler data from database (Griatch)
|
||||
- Doc fixes (iLPdev, Griatch, CloudKeeper)
|
||||
|
||||
[pull3420]: https://github.com/evennia/evennia/pull/3420
|
||||
[issue3438]: https://github.com/evennia/evennia/issues/3438
|
||||
[issue3411]: https://github.com/evennia/evennia/issues/3411
|
||||
[issue3443]: https://github.com/evennia/evennia/issues/3443
|
||||
|
||||
## Evennia 3.2.0
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
|
|||
- [**@open**](CmdOpen) (cmdset: [CharacterCmdSet](CharacterCmdSet), help-category: _Building_)
|
||||
- [**@py** [@!]](CmdPy) (cmdset: [AccountCmdSet](AccountCmdSet), help-category: _System_)
|
||||
- [**@reload** [@restart]](CmdReload) (cmdset: [AccountCmdSet](AccountCmdSet), help-category: _System_)
|
||||
- [**@reset** [@reboot]](CmdReset) (cmdset: [AccountCmdSet](AccountCmdSet), help-category: _System_)
|
||||
- [**@reset**](CmdReset) (cmdset: [AccountCmdSet](AccountCmdSet), help-category: _System_)
|
||||
- [**@scripts** [@script]](CmdScripts) (cmdset: [CharacterCmdSet](CharacterCmdSet), help-category: _System_)
|
||||
- [**@server** [@serverload]](CmdServerLoad) (cmdset: [CharacterCmdSet](CharacterCmdSet), help-category: _System_)
|
||||
- [**@service** [@services]](CmdService) (cmdset: [CharacterCmdSet](CharacterCmdSet), help-category: _System_)
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ evennia.contrib.tutorials.evadventure.tests
|
|||
:maxdepth: 6
|
||||
|
||||
evennia.contrib.tutorials.evadventure.tests.mixins
|
||||
evennia.contrib.tutorials.evadventure.tests.test_ai
|
||||
evennia.contrib.tutorials.evadventure.tests.test_characters
|
||||
evennia.contrib.tutorials.evadventure.tests.test_chargen
|
||||
evennia.contrib.tutorials.evadventure.tests.test_combat
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
```{eval-rst}
|
||||
evennia.contrib.tutorials.evadventure.tests.test\_ai
|
||||
===========================================================
|
||||
|
||||
.. automodule:: evennia.contrib.tutorials.evadventure.tests.test_ai
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
```
|
||||
|
|
@ -479,6 +479,7 @@
|
|||
</li>
|
||||
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.html">evennia.contrib.tutorials.evadventure.tests</a><ul>
|
||||
<li class="toctree-l6"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.mixins.html">evennia.contrib.tutorials.evadventure.tests.mixins</a></li>
|
||||
<li class="toctree-l6"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_ai.html">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
<li class="toctree-l6"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_characters.html">evennia.contrib.tutorials.evadventure.tests.test_characters</a></li>
|
||||
<li class="toctree-l6"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html">evennia.contrib.tutorials.evadventure.tests.test_chargen</a></li>
|
||||
<li class="toctree-l6"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_combat.html">evennia.contrib.tutorials.evadventure.tests.test_combat</a></li>
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ method. Otherwise all text will be returned to all connected sessions.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.account.CmdOOCLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOCLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOCLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -176,7 +176,7 @@ method. Otherwise all text will be returned to all connected sessions.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.account.CmdOOCLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOCLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOCLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ to accounts respectively.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.admin.CmdEmit.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['remit', 'pemit']</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['pemit', 'remit']</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -360,7 +360,7 @@ to accounts respectively.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.admin.CmdEmit.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'remit pemit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' remit pemit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' pemit remit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -641,7 +641,7 @@ You can specify the /force switch to bypass this confirmation.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdDestroy.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@delete', '@del']</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@del', '@delete']</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -682,7 +682,7 @@ You can specify the /force switch to bypass this confirmation.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdDestroy.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -1409,7 +1409,7 @@ server settings.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdTypeclass.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@typeclasses', '@update', '@parent', '@swap', '@type']</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@typeclasses', '@type', '@update', '@parent', '@swap']</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -1440,7 +1440,7 @@ server settings.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdTypeclass.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@typeclasses @update @parent @swap @type', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass typeclasses update parent swap type', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@typeclasses @type @update @parent @swap', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass typeclasses type update parent swap', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a><account&g
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.commands.default.general.CmdLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.commands.default.general.CmdLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -218,7 +218,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a><account&g
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -280,7 +280,7 @@ for everyone to use, you need build privileges and the alias command.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdNick.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['nicks', 'nickname']</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['nickname', 'nicks']</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -312,7 +312,7 @@ for everyone to use, you need build privileges and the alias command.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdNick.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'no_prefix': ' nicks nickname', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'no_prefix': ' nickname nicks', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -610,7 +610,7 @@ placing it in their inventory.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdSay.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ["'", '"']</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['"', "'"]</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -641,7 +641,7 @@ placing it in their inventory.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdSay.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'no_prefix': ' \' "', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' " \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -247,11 +247,6 @@ cmdsets etc will be wiped.</p>
|
|||
<code class="sig-name descname">key</code><em class="property"> = '@reset'</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.system.CmdReset.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@reboot']</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.system.CmdReset.locks">
|
||||
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:perm(reload) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.locks" title="Permalink to this definition">¶</a></dt>
|
||||
|
|
@ -268,6 +263,11 @@ cmdsets etc will be wiped.</p>
|
|||
<dd><p>Reload the system.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.system.CmdReset.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.system.CmdReset.lock_storage">
|
||||
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(reload) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.lock_storage" title="Permalink to this definition">¶</a></dt>
|
||||
|
|
@ -275,7 +275,7 @@ cmdsets etc will be wiped.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.system.CmdReset.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@reboot', 'category': 'system', 'key': '@reset', 'no_prefix': 'reset reboot', 'tags': '', 'text': '\n reset and reboot the server\n\n Usage:\n reset\n\n Notes:\n For normal updating you are recommended to use reload rather\n than this command. Use shutdown for a complete stop of\n everything.\n\n This emulates a cold reboot of the Server component of Evennia.\n The difference to shutdown is that the Server will auto-reboot\n and that it does not affect the Portal, so no users will be\n disconnected. Contrary to reload however, all shutdown hooks will\n be called and any non-database saved scripts, ndb-attributes,\n cmdsets etc will be wiped.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'system', 'key': '@reset', 'no_prefix': 'reset ', 'tags': '', 'text': '\n reset and reboot the server\n\n Usage:\n reset\n\n Notes:\n For normal updating you are recommended to use reload rather\n than this command. Use shutdown for a complete stop of\n everything.\n\n This emulates a cold reboot of the Server component of Evennia.\n The difference to shutdown is that the Server will auto-reboot\n and that it does not affect the Portal, so no users will be\n disconnected. Contrary to reload however, all shutdown hooks will\n be called and any non-database saved scripts, ndb-attributes,\n cmdsets etc will be wiped.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -695,7 +695,7 @@ See <a href="#id11"><span class="problematic" id="id12">|</span></a>luhttps://ww
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.system.CmdTasks.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@task', '@delays']</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@delays', '@task']</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -741,7 +741,7 @@ to all the variables defined therein.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.system.CmdTasks.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@task @delays', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks task delays', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@delays @task', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks delays task', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -973,7 +973,7 @@ main test suite started with</p>
|
|||
<p>Test the batch processor.</p>
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.tests.TestBatchProcess.red_button">
|
||||
<code class="sig-name descname">red_button</code><em class="property"> = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmp7ygv7scj/cbe3d4c738efb7e94ff9633fc1afb2d5f24c954c/evennia/contrib/tutorials/red_button/red_button.py'></em><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess.red_button" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">red_button</code><em class="property"> = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmp66rtn6r2/6e6ab208a6b53fc30dd91a6f83124e641d851601/evennia/contrib/tutorials/red_button/red_button.py'></em><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess.red_button" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ connect “account name” “pass word”</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['co', 'conn', 'con']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['conn', 'con', 'co']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -169,7 +169,7 @@ there is no object yet before the account has logged in)</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedConnect.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'co conn con', 'category': 'general', 'key': 'connect', 'no_prefix': ' co conn con', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -254,7 +254,7 @@ version is a bit more complicated.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedQuit.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['q', 'qu']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedQuit.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['qu', 'q']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedQuit.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -280,7 +280,7 @@ version is a bit more complicated.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedQuit.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedQuit.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedQuit.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -353,7 +353,7 @@ for simplicity. It shows a pane of info.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedHelp.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['?', 'h']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedHelp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['h', '?']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedHelp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -379,7 +379,7 @@ for simplicity. It shows a pane of info.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedHelp.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedHelp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedHelp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['co', 'conn', 'con']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['conn', 'con', 'co']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -181,7 +181,7 @@ there is no object yet before the account has logged in)</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'co conn con', 'category': 'general', 'key': 'connect', 'no_prefix': ' co conn con', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -264,7 +264,7 @@ version is a bit more complicated.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedQuit.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['q', 'qu']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedQuit.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['qu', 'q']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedQuit.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -290,7 +290,7 @@ version is a bit more complicated.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedQuit.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedQuit.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedQuit.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -353,7 +353,7 @@ for simplicity. It shows a pane of info.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedHelp.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['?', 'h']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedHelp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['h', '?']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedHelp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -379,7 +379,7 @@ for simplicity. It shows a pane of info.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedHelp.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedHelp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedHelp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ aliases to an already joined channel.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['chanalias', 'aliaschan']</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['aliaschan', 'chanalias']</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -203,7 +203,7 @@ aliases to an already joined channel.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' chanalias aliaschan', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' aliaschan chanalias', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -229,7 +229,7 @@ for that channel.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['delaliaschan', 'delchanalias']</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['delchanalias', 'delaliaschan']</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -260,7 +260,7 @@ for that channel.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'delaliaschan delchanalias', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delaliaschan delchanalias', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delchanalias delaliaschan', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ the operation will be general or on the room.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['abort', 'chicken out', 'q', 'quit']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['abort', 'chicken out', 'quit', 'q']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -247,7 +247,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'abort chicken out q quit', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort chicken out q 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 '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'abort chicken out quit q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort chicken out quit q', '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 '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -268,7 +268,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -302,7 +302,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -383,7 +383,7 @@ shout</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['whisper', ';', 'shout']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = [';', 'shout', 'whisper']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -412,7 +412,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '; shout whisper', 'category': 'general', 'key': 'say', 'no_prefix': ' ; shout whisper', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -502,7 +502,7 @@ looks and what actions is available.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['e', 'ex', 'examine', 'unfocus']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ex', 'e', 'examine', 'unfocus']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -531,7 +531,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'e ex examine unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' e ex examine unfocus', '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 '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ex e examine unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' ex e examine unfocus', '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 '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -593,7 +593,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['give', 'inventory', 'inv', 'i']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'give', 'inventory', 'i']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -617,7 +617,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'give inventory inv i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' give inventory inv i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inv give inventory i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv give inventory i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -655,7 +655,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a><account&g
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -675,7 +675,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a><account&g
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -434,7 +434,7 @@ there is no room above/below you, your movement will fail.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.grid.xyzgrid.commands.CmdFlyAndDive.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['dive', 'fly']</em><a class="headerlink" href="#evennia.contrib.grid.xyzgrid.commands.CmdFlyAndDive.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['fly', 'dive']</em><a class="headerlink" href="#evennia.contrib.grid.xyzgrid.commands.CmdFlyAndDive.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -457,7 +457,7 @@ to all the variables defined therein.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.grid.xyzgrid.commands.CmdFlyAndDive.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'dive fly', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' dive fly', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}</em><a class="headerlink" href="#evennia.contrib.grid.xyzgrid.commands.CmdFlyAndDive.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'fly dive', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' fly dive', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}</em><a class="headerlink" href="#evennia.contrib.grid.xyzgrid.commands.CmdFlyAndDive.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -464,6 +464,7 @@ useful but are deemed too game-specific to go into the core library.</p>
|
|||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.html">evennia.contrib.tutorials.evadventure.tests</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.mixins.html">evennia.contrib.tutorials.evadventure.tests.mixins</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_ai.html">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_characters.html">evennia.contrib.tutorials.evadventure.tests.test_characters</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html">evennia.contrib.tutorials.evadventure.tests.test_chargen</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_combat.html">evennia.contrib.tutorials.evadventure.tests.test_combat</a></li>
|
||||
|
|
|
|||
|
|
@ -338,7 +338,7 @@ everyone but the person rolling.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.rpg.dice.dice.CmdDice.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@dice', 'roll']</em><a class="headerlink" href="#evennia.contrib.rpg.dice.dice.CmdDice.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['roll', '@dice']</em><a class="headerlink" href="#evennia.contrib.rpg.dice.dice.CmdDice.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -364,7 +364,7 @@ everyone but the person rolling.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.rpg.dice.dice.CmdDice.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@dice roll', 'category': 'general', 'key': 'dice', 'no_prefix': ' dice roll', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}</em><a class="headerlink" href="#evennia.contrib.rpg.dice.dice.CmdDice.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'roll @dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll dice', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}</em><a class="headerlink" href="#evennia.contrib.rpg.dice.dice.CmdDice.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -734,7 +734,7 @@ commands the caller can use.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ["'", '"']</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['"', "'"]</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -765,7 +765,7 @@ commands the caller can use.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'no_prefix': ' \' "', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' " \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -116,60 +116,33 @@
|
|||
<section id="module-evennia.contrib.tutorials.evadventure.ai">
|
||||
<span id="evennia-contrib-tutorials-evadventure-ai"></span><h1>evennia.contrib.tutorials.evadventure.ai<a class="headerlink" href="#module-evennia.contrib.tutorials.evadventure.ai" title="Permalink to this headline">¶</a></h1>
|
||||
<p>NPC AI module for EvAdventure (WIP)</p>
|
||||
<p>This implements a state machine for the NPCs, where it uses inputs from the game to determine what
|
||||
to do next. The AI works on the concept of being ‘ticks’, at which point, the AI will decide to move
|
||||
between different ‘states’, performing different ‘actions’ within each state until changing to
|
||||
another state. The odds of changing between states and performing actions are weighted, allowing for
|
||||
an AI agent to be more or less likely to perform certain actions.</p>
|
||||
<p>The state machine is fed a dictionary of states and their transitions, and a dictionary of available
|
||||
actions to choose between.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
|
||||
<span class="s2">"states"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"state1"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"action1"</span><span class="p">:</span> <span class="n">odds</span><span class="p">,</span> <span class="s2">"action2"</span><span class="p">:</span> <span class="n">odds</span><span class="p">,</span> <span class="o">...</span><span class="p">},</span>
|
||||
<span class="s2">"state2"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"action1"</span><span class="p">:</span> <span class="n">odds</span><span class="p">,</span> <span class="s2">"action2"</span><span class="p">:</span> <span class="n">odds</span><span class="p">,</span> <span class="o">...</span><span class="p">},</span> <span class="o">...</span>
|
||||
<span class="p">}</span>
|
||||
<span class="s2">"transition"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"state1"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"state2"</span><span class="p">:</span> <span class="s2">"odds, "</span><span class="n">state3</span><span class="s2">": odds, ...},</span>
|
||||
<span class="s2">"state2"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"state1"</span><span class="p">:</span> <span class="s2">"odds, "</span><span class="n">state3</span><span class="s2">": odds, ...}, ...</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The NPC class needs to look like this:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">NPC</span><span class="p">(</span><span class="n">DefaultCharacter</span><span class="p">):</span>
|
||||
<p>This implements a simple state machine for NPCs to follow.</p>
|
||||
<p>The AIHandler class is stored on the NPC object and is queried by the game loop to determine what
|
||||
the NPC does next. This leads to the calling of one of the relevant state methods on the NPC, which
|
||||
is where the actual logic for the NPC’s behaviour is implemented. Each state is responsible for
|
||||
switching to the next state when the conditions are met.</p>
|
||||
<p>The AIMixin class is a mixin that can be added to any object that needs AI. It provides the <strong>.ai</strong>
|
||||
reference to the AIHandler and a few basic <strong>ai_*</strong> methods for basic AI behaviour.</p>
|
||||
<p>Example usage:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">create_object</span>
|
||||
<span class="kn">from</span> <span class="nn">.npc</span> <span class="kn">import</span> <span class="n">EvadventureNPC</span>
|
||||
<span class="kn">from</span> <span class="nn">.ai</span> <span class="kn">import</span> <span class="n">AIMixin</span>
|
||||
|
||||
<span class="c1"># ...</span>
|
||||
<span class="k">class</span> <span class="nc">MyMob</span><span class="p">(</span><span class="n">AIMixin</span><span class="p">,</span> <span class="n">EvadventureNPC</span><span class="p">):</span>
|
||||
<span class="k">pass</span>
|
||||
|
||||
<span class="nd">@lazy_property</span>
|
||||
<span class="k">def</span> <span class="nf">ai</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">AIHandler</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="n">mob</span> <span class="o">=</span> <span class="n">create_object</span><span class="p">(</span><span class="n">MyMob</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">"Goblin"</span><span class="p">,</span> <span class="n">location</span><span class="o">=</span><span class="n">room</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">ai_roam</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">action</span><span class="p">):</span>
|
||||
<span class="c1"># perform the action within the current state ai.state</span>
|
||||
<span class="n">mob</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="s2">"patrol"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">ai_hunt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">action</span><span class="p">):</span>
|
||||
<span class="c1"># etc</span>
|
||||
<span class="c1"># tick the ai whenever needed</span>
|
||||
<span class="n">mob</span><span class="o">.</span><span class="n">ai</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<dl class="py class">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler">
|
||||
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.ai.</code><code class="sig-name descname">AIHandler</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>AIHandler class. This should be placed on the NPC object, and will handle the state machine,
|
||||
including transitions and actions.</p>
|
||||
<p>Add to typeclass with @lazyproperty:</p>
|
||||
<blockquote>
|
||||
<div><p>class NPC(DefaultCharacter):</p>
|
||||
<blockquote>
|
||||
<div><p>ai_states = {…}</p>
|
||||
<p># …</p>
|
||||
<p>@lazyproperty
|
||||
def ai(self):</p>
|
||||
<blockquote>
|
||||
<div><p>return AIHandler(self)</p>
|
||||
</div></blockquote>
|
||||
</div></blockquote>
|
||||
</div></blockquote>
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.__init__">
|
||||
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.__init__" title="Permalink to this definition">¶</a></dt>
|
||||
|
|
@ -177,102 +150,122 @@ def ai(self):</p>
|
|||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.state">
|
||||
<em class="property">property </em><code class="sig-name descname">state</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.state" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return the current state of the AI.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns</dt>
|
||||
<dd class="field-odd"><p><em>str</em> – Current state of the AI.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.set_state">
|
||||
<code class="sig-name descname">set_state</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">state</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.set_state"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.set_state" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.get_state">
|
||||
<code class="sig-name descname">get_state</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.get_state"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_state" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.get_targets">
|
||||
<code class="sig-name descname">get_targets</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.get_targets"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_targets" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Get a list of potential targets for the NPC to attack</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.states">
|
||||
<em class="property">property </em><code class="sig-name descname">states</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.states" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return the states dictionary for the AI.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns</dt>
|
||||
<dd class="field-odd"><p><em>dict</em> – States dictionary for the AI.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.get_traversable_exits">
|
||||
<code class="sig-name descname">get_traversable_exits</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">exclude_destination</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.get_traversable_exits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_traversable_exits" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.random_probability">
|
||||
<code class="sig-name descname">random_probability</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">probabilities</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.random_probability"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.random_probability" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Given a dictionary of probabilities, return the key of the chosen probability.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.transitions">
|
||||
<em class="property">property </em><code class="sig-name descname">transitions</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.transitions" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return the transitions dictionary for the AI.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns</dt>
|
||||
<dd class="field-odd"><p><em>dict</em> – Transitions dictionary for the AI.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.run">
|
||||
<code class="sig-name descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.run" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIMixin">
|
||||
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.ai.</code><code class="sig-name descname">AIMixin</code><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIMixin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>Mixin for adding AI to an Object. This is a simple state machine. Just add more <strong>ai_*</strong> methods
|
||||
to the object to make it do more things.</p>
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIMixin.combat_probabilities">
|
||||
<code class="sig-name descname">combat_probabilities</code><em class="property"> = {'attack': 0.9, 'flee': 0.0, 'hold': 0.1, 'item': 0.0, 'stunt': 0.0}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin.combat_probabilities" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIMixin.ai">
|
||||
<code class="sig-name descname">ai</code><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIMixin.ai"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_idle">
|
||||
<code class="sig-name descname">ai_idle</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIMixin.ai_idle"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_idle" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_attack">
|
||||
<code class="sig-name descname">ai_attack</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIMixin.ai_attack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_attack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_patrol">
|
||||
<code class="sig-name descname">ai_patrol</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIMixin.ai_patrol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_patrol" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_flee">
|
||||
<code class="sig-name descname">ai_flee</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIMixin.ai_flee"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_flee" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.IdleMobMixin">
|
||||
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.ai.</code><code class="sig-name descname">IdleMobMixin</code><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#IdleMobMixin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.IdleMobMixin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin" title="evennia.contrib.tutorials.evadventure.ai.AIMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.tutorials.evadventure.ai.AIMixin</span></code></a></p>
|
||||
<p>A simple mob that understands AI commands, but does nothing.</p>
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.IdleMobMixin.ai_idle">
|
||||
<code class="sig-name descname">ai_idle</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#IdleMobMixin.ai_idle"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.IdleMobMixin.ai_idle" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin">
|
||||
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.ai.</code><code class="sig-name descname">AggressiveMobMixin</code><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AggressiveMobMixin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.ai.AIMixin" title="evennia.contrib.tutorials.evadventure.ai.AIMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.tutorials.evadventure.ai.AIMixin</span></code></a></p>
|
||||
<p>A simple aggressive mob that can roam, attack and flee.</p>
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.combat_probabilities">
|
||||
<code class="sig-name descname">combat_probabilities</code><em class="property"> = {'attack': 0.85, 'flee': 0.05, 'hold': 0.0, 'item': 0.0, 'stunt': 0.05}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.combat_probabilities" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_idle">
|
||||
<code class="sig-name descname">ai_idle</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AggressiveMobMixin.ai_idle"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_idle" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Do nothing, but switch to attack state if a target is found.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.add_aidict">
|
||||
<code class="sig-name descname">add_aidict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">aidict</span></em>, <em class="sig-param"><span class="n">force</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.add_aidict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.add_aidict" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Add an AI dictionary to the AI handler, if one doesn’t already exist.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>aidict</strong> (<em>dict</em>) – AI dictionary to add.</p></li>
|
||||
<li><p><strong>force</strong> (<em>bool</em><em>, </em><em>optional</em>) – Force adding the AI dictionary, even if one already exists on</p></li>
|
||||
<li><p><strong>handler.</strong> (<em>this</em>) – </p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_attack">
|
||||
<code class="sig-name descname">ai_attack</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AggressiveMobMixin.ai_attack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_attack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Manage the attack/combat state of the mob.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.adjust_transition_probability">
|
||||
<code class="sig-name descname">adjust_transition_probability</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">state_start</span></em>, <em class="sig-param"><span class="n">state_end</span></em>, <em class="sig-param"><span class="n">odds</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.adjust_transition_probability"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.adjust_transition_probability" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Adjust the transition probability between two states.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>state_start</strong> (<em>str</em>) – State to start from.</p></li>
|
||||
<li><p><strong>state_end</strong> (<em>str</em>) – State to end at.</p></li>
|
||||
<li><p><strong>odds</strong> (<em>int</em>) – New odds for the transition.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>This will normalize the odds across the other transitions from the starting state.</p>
|
||||
</div>
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_patrol">
|
||||
<code class="sig-name descname">ai_patrol</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AggressiveMobMixin.ai_patrol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_patrol" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Patrol, moving randomly to a new room. If a target is found, switch to attack state.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.get_next_state">
|
||||
<code class="sig-name descname">get_next_state</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.get_next_state"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_next_state" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Get the next state for the AI.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns</dt>
|
||||
<dd class="field-odd"><p><em>str</em> – Next state for the AI.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.get_next_action">
|
||||
<code class="sig-name descname">get_next_action</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.get_next_action"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_next_action" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Get the next action for the AI within the current state.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns</dt>
|
||||
<dd class="field-odd"><p><em>str</em> – Next action for the AI.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AIHandler.execute_ai">
|
||||
<code class="sig-name descname">execute_ai</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AIHandler.execute_ai"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AIHandler.execute_ai" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Execute the next ai action in the current state.</p>
|
||||
<p>This assumes that each available state exists as a method on the object, named
|
||||
ai_<state_name>, taking an optional argument of the next action to perform. The method
|
||||
will itself update the state or transition weights through this handler.</p>
|
||||
<p>Some states have in-built state transitions, via the special “change_state” action.</p>
|
||||
<dt id="evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_flee">
|
||||
<code class="sig-name descname">ai_flee</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/ai.html#AggressiveMobMixin.ai_flee"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_flee" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Flee from the current room, avoiding going back to the room from which we came. If no exits
|
||||
are found, switch to patrol state.</p>
|
||||
</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ turn of combat, performing everyone’s actions in random order.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.combat_turnbased.CmdTurnAttack.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['hit', 'turnbased combat']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_turnbased.CmdTurnAttack.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['turnbased combat', 'hit']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_turnbased.CmdTurnAttack.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -524,7 +524,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.combat_turnbased.CmdTurnAttack.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'hit turnbased combat', 'category': 'general', 'key': 'attack', 'no_prefix': ' hit turnbased combat', 'tags': '', 'text': '\n Start or join combat.\n\n Usage:\n attack [<target>]\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_turnbased.CmdTurnAttack.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'turnbased combat hit', 'category': 'general', 'key': 'attack', 'no_prefix': ' turnbased combat hit', 'tags': '', 'text': '\n Start or join combat.\n\n Usage:\n attack [<target>]\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_turnbased.CmdTurnAttack.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -393,7 +393,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a><account&g
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.combat_twitch.CmdLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_twitch.CmdLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_twitch.CmdLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -413,7 +413,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a><account&g
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.combat_twitch.CmdLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_twitch.CmdLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_twitch.CmdLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -489,7 +489,7 @@ boost INT Wizard Goblin</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.combat_twitch.CmdStunt.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['boost', 'foil']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_twitch.CmdStunt.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['foil', 'boost']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_twitch.CmdStunt.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -523,7 +523,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.combat_twitch.CmdStunt.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'boost foil', 'category': 'combat', 'key': 'stunt', 'no_prefix': ' boost foil', 'tags': '', 'text': '\n Perform a combat stunt, that boosts an ally against a target, or\n foils an enemy, giving them disadvantage against an ally.\n\n Usage:\n boost [ability] <recipient> <target>\n foil [ability] <recipient> <target>\n boost [ability] <target> (same as boost me <target>)\n foil [ability] <target> (same as foil <target> me)\n\n Example:\n boost STR me Goblin\n boost DEX Goblin\n foil STR Goblin me\n foil INT Goblin\n boost INT Wizard Goblin\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_twitch.CmdStunt.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'foil boost', 'category': 'combat', 'key': 'stunt', 'no_prefix': ' foil boost', 'tags': '', 'text': '\n Perform a combat stunt, that boosts an ally against a target, or\n foils an enemy, giving them disadvantage against an ally.\n\n Usage:\n boost [ability] <recipient> <target>\n foil [ability] <recipient> <target>\n boost [ability] <target> (same as boost me <target>)\n foil [ability] <target> (same as foil <target> me)\n\n Example:\n boost STR me Goblin\n boost DEX Goblin\n foil STR Goblin me\n foil INT Goblin\n boost INT Wizard Goblin\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_twitch.CmdStunt.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ self.args).</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.commands.CmdInventory.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['i', 'inv']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdInventory.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'i']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdInventory.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -228,7 +228,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.commands.CmdInventory.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n View your inventory\n\n Usage:\n inventory\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdInventory.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n View your inventory\n\n Usage:\n inventory\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdInventory.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -305,7 +305,7 @@ unwear <item></p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.commands.CmdRemove.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['unwear', 'unwield']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdRemove.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['unwield', 'unwear']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdRemove.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -329,7 +329,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.commands.CmdRemove.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'unwear unwield', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwear unwield', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdRemove.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'unwield unwear', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwield unwear', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdRemove.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -149,6 +149,7 @@ documentation’s beginner tutorial.</p>
|
|||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.html">evennia.contrib.tutorials.evadventure.tests</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.mixins.html">evennia.contrib.tutorials.evadventure.tests.mixins</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_ai.html">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_characters.html">evennia.contrib.tutorials.evadventure.tests.test_characters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html">evennia.contrib.tutorials.evadventure.tests.test_chargen</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_combat.html">evennia.contrib.tutorials.evadventure.tests.test_combat</a></li>
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ based on nodes named <strong>node_start_*</strong> are available in the node tre
|
|||
<dl class="py class">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob">
|
||||
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.npcs.</code><code class="sig-name descname">EvAdventureMob</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/npcs.html#EvAdventureMob"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC" title="evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC</span></code></a></p>
|
||||
<dd><p>Bases: <a class="reference internal" href="evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin" title="evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin</span></code></a>, <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC" title="evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC</span></code></a></p>
|
||||
<p>Mob (mobile) NPC; this is usually an enemy.</p>
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob.loot_chance">
|
||||
|
|
@ -486,22 +486,6 @@ based on nodes named <strong>node_start_*</strong> are available in the node tre
|
|||
<dd><p>AttributeProperty.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob.ai_next_action">
|
||||
<code class="sig-name descname">ai_next_action</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/npcs.html#EvAdventureMob.ai_next_action"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob.ai_next_action" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Called to get the next action in combat.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>combathandler</strong> (<em>EvAdventureCombatHandler</em>) – The currently active combathandler.</p>
|
||||
</dd>
|
||||
<dt class="field-even">Returns</dt>
|
||||
<dd class="field-even"><p><em>tuple</em> – A tuple <strong>(str, tuple, dict)</strong>, being the <strong>action_key</strong>, and the <strong>*args</strong> and
|
||||
<strong>**kwargs</strong> for that action. The action-key is that of a CombatAction available to the
|
||||
combatant in the current combat handler.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob.at_defeat">
|
||||
<code class="sig-name descname">at_defeat</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/npcs.html#EvAdventureMob.at_defeat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob.at_defeat" title="Permalink to this definition">¶</a></dt>
|
||||
|
|
|
|||
|
|
@ -119,6 +119,7 @@
|
|||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.mixins.html">evennia.contrib.tutorials.evadventure.tests.mixins</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_ai.html">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_characters.html">evennia.contrib.tutorials.evadventure.tests.test_characters</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html">evennia.contrib.tutorials.evadventure.tests.test_chargen</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_combat.html">evennia.contrib.tutorials.evadventure.tests.test_combat</a></li>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="evennia.contrib.tutorials.evadventure.tests.test_characters" href="evennia.contrib.tutorials.evadventure.tests.test_characters.html" />
|
||||
<link rel="next" title="evennia.contrib.tutorials.evadventure.tests.test_ai" href="evennia.contrib.tutorials.evadventure.tests.test_ai.html" />
|
||||
<link rel="prev" title="evennia.contrib.tutorials.evadventure.tests" href="evennia.contrib.tutorials.evadventure.tests.html" />
|
||||
</head><body>
|
||||
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
<a href="../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.test_characters.html" title="evennia.contrib.tutorials.evadventure.tests.test_characters"
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.test_ai.html" title="evennia.contrib.tutorials.evadventure.tests.test_ai"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.html" title="evennia.contrib.tutorials.evadventure.tests"
|
||||
|
|
@ -73,8 +73,8 @@
|
|||
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.tests.html"
|
||||
title="previous chapter">evennia.contrib.tutorials.evadventure.tests</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.tests.test_characters.html"
|
||||
title="next chapter">evennia.contrib.tutorials.evadventure.tests.test_characters</a></p>
|
||||
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.tests.test_ai.html"
|
||||
title="next chapter">evennia.contrib.tutorials.evadventure.tests.test_ai</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<!--h3>This Page</h3-->
|
||||
<ul class="this-page-menu">
|
||||
|
|
@ -147,7 +147,7 @@
|
|||
<a href="../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.test_characters.html" title="evennia.contrib.tutorials.evadventure.tests.test_characters"
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.test_ai.html" title="evennia.contrib.tutorials.evadventure.tests.test_ai"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.html" title="evennia.contrib.tutorials.evadventure.tests"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,190 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>evennia.contrib.tutorials.evadventure.tests.test_ai — Evennia latest documentation</title>
|
||||
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||||
<script src="../_static/jquery.js"></script>
|
||||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="evennia.contrib.tutorials.evadventure.tests.test_characters" href="evennia.contrib.tutorials.evadventure.tests.test_characters.html" />
|
||||
<link rel="prev" title="evennia.contrib.tutorials.evadventure.tests.mixins" href="evennia.contrib.tutorials.evadventure.tests.mixins.html" />
|
||||
</head><body>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.test_characters.html" title="evennia.contrib.tutorials.evadventure.tests.test_characters"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.mixins.html" title="evennia.contrib.tutorials.evadventure.tests.mixins"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> »</li>
|
||||
<li class="nav-item nav-item-5"><a href="evennia.contrib.tutorials.html" >evennia.contrib.tutorials</a> »</li>
|
||||
<li class="nav-item nav-item-6"><a href="evennia.contrib.tutorials.evadventure.html" >evennia.contrib.tutorials.evadventure</a> »</li>
|
||||
<li class="nav-item nav-item-7"><a href="evennia.contrib.tutorials.evadventure.tests.html" accesskey="U">evennia.contrib.tutorials.evadventure.tests</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
|
||||
<div class="documentwrapper">
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<p class="logo"><a href="../index.html">
|
||||
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
|
||||
</a></p>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.tests.mixins.html"
|
||||
title="previous chapter">evennia.contrib.tutorials.evadventure.tests.mixins</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.tests.test_characters.html"
|
||||
title="next chapter">evennia.contrib.tutorials.evadventure.tests.test_characters</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<!--h3>This Page</h3-->
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/api/evennia.contrib.tutorials.evadventure.tests.test_ai.md.txt"
|
||||
rel="nofollow">Show Page Source</a></li>
|
||||
</ul>
|
||||
</div><h3>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
|
||||
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
|
||||
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
|
||||
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
||||
<li>
|
||||
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
||||
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
||||
<a href="https://evennia.blogspot.com/">Blog</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Doc Versions</h3>
|
||||
<ul>
|
||||
|
||||
<li><a href="evennia.contrib.tutorials.evadventure.tests.test_ai.html">latest (main branch)</a></li>
|
||||
|
||||
<li><a href="../../3.x/index.html">v3.0.0 branch (outdated)</a></li>
|
||||
|
||||
<li><a href="../../2.x/index.html">v2.0.0 branch (outdated)</a></li>
|
||||
|
||||
<li><a href="../../1.x/index.html">v1.0.0 branch (outdated)</a></li>
|
||||
|
||||
<li><a href="../../0.x/index.html">v0.9.5 branch (outdated)</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="module-evennia.contrib.tutorials.evadventure.tests.test_ai">
|
||||
<span id="evennia-contrib-tutorials-evadventure-tests-test-ai"></span><h1>evennia.contrib.tutorials.evadventure.tests.test_ai<a class="headerlink" href="#module-evennia.contrib.tutorials.evadventure.tests.test_ai" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Test the ai module.</p>
|
||||
<dl class="py class">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI">
|
||||
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.tests.test_ai.</code><code class="sig-name descname">TestAI</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/tests/test_ai.html#TestAI"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="evennia.utils.test_resources.html#evennia.utils.test_resources.BaseEvenniaTest" title="evennia.utils.test_resources.BaseEvenniaTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.utils.test_resources.BaseEvenniaTest</span></code></a></p>
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.setUp">
|
||||
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/tests/test_ai.html#TestAI.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.setUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Sets up testing environment</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.tearDown">
|
||||
<code class="sig-name descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/tests/test_ai.html#TestAI.tearDown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.tearDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.test_ai_methods">
|
||||
<code class="sig-name descname">test_ai_methods</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mock_log_trace</span></em>, <em class="sig-param"><span class="n">mock_random</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/tests/test_ai.html#TestAI.test_ai_methods"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.test_ai_methods" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.test_ai_run">
|
||||
<code class="sig-name descname">test_ai_run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/tests/test_ai.html#TestAI.test_ai_run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.test_ai_run" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.test_characters.html" title="evennia.contrib.tutorials.evadventure.tests.test_characters"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.mixins.html" title="evennia.contrib.tutorials.evadventure.tests.mixins"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> »</li>
|
||||
<li class="nav-item nav-item-5"><a href="evennia.contrib.tutorials.html" >evennia.contrib.tutorials</a> »</li>
|
||||
<li class="nav-item nav-item-6"><a href="evennia.contrib.tutorials.evadventure.html" >evennia.contrib.tutorials.evadventure</a> »</li>
|
||||
<li class="nav-item nav-item-7"><a href="evennia.contrib.tutorials.evadventure.tests.html" >evennia.contrib.tutorials.evadventure.tests</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2023, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="evennia.contrib.tutorials.evadventure.tests.test_chargen" href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html" />
|
||||
<link rel="prev" title="evennia.contrib.tutorials.evadventure.tests.mixins" href="evennia.contrib.tutorials.evadventure.tests.mixins.html" />
|
||||
<link rel="prev" title="evennia.contrib.tutorials.evadventure.tests.test_ai" href="evennia.contrib.tutorials.evadventure.tests.test_ai.html" />
|
||||
</head><body>
|
||||
|
||||
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
<a href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html" title="evennia.contrib.tutorials.evadventure.tests.test_chargen"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.mixins.html" title="evennia.contrib.tutorials.evadventure.tests.mixins"
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.test_ai.html" title="evennia.contrib.tutorials.evadventure.tests.test_ai"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||||
|
|
@ -70,8 +70,8 @@
|
|||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.tests.mixins.html"
|
||||
title="previous chapter">evennia.contrib.tutorials.evadventure.tests.mixins</a></p>
|
||||
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.tests.test_ai.html"
|
||||
title="previous chapter">evennia.contrib.tutorials.evadventure.tests.test_ai</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html"
|
||||
title="next chapter">evennia.contrib.tutorials.evadventure.tests.test_chargen</a></p>
|
||||
|
|
@ -171,7 +171,7 @@
|
|||
<a href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html" title="evennia.contrib.tutorials.evadventure.tests.test_chargen"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.mixins.html" title="evennia.contrib.tutorials.evadventure.tests.mixins"
|
||||
<a href="evennia.contrib.tutorials.evadventure.tests.test_ai.html" title="evennia.contrib.tutorials.evadventure.tests.test_ai"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||||
|
|
|
|||
|
|
@ -152,6 +152,7 @@
|
|||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.html">evennia.contrib.tutorials.evadventure.tests</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.mixins.html">evennia.contrib.tutorials.evadventure.tests.mixins</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_ai.html">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_characters.html">evennia.contrib.tutorials.evadventure.tests.test_characters</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html">evennia.contrib.tutorials.evadventure.tests.test_chargen</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_combat.html">evennia.contrib.tutorials.evadventure.tests.test_combat</a></li>
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ check if the lid is open or closed.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['break lid', 'smash lid', 'smash']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['smash lid', 'smash', 'break lid']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -291,7 +291,7 @@ break.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'break lid smash lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash lid smash', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'smash lid smash break lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' smash lid smash break lid', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -518,7 +518,7 @@ be mutually exclusive.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ex', 'examine', 'feel', 'listen', 'get', 'l']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['get', 'feel', 'l', 'listen', 'ex', 'examine']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -544,7 +544,7 @@ be mutually exclusive.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ex examine feel listen get l', 'category': 'general', 'key': 'look', 'no_prefix': ' ex examine feel listen get l', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'get feel l listen ex examine', 'category': 'general', 'key': 'look', 'no_prefix': ' get feel l listen ex examine', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -437,7 +437,7 @@ of the object. We overload it with our own version.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdLight.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['burn', 'light']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdLight.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['light', 'burn']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdLight.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -464,7 +464,7 @@ to sit on a “lightable” object, we operate only on self.obj.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdLight.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'burn light', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' burn light', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdLight.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'light burn', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' light burn', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdLight.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -568,7 +568,7 @@ shift green root up/down</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['pull', 'move', 'shiftroot', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['move', 'shiftroot', 'pull', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -604,7 +604,7 @@ yellow/green - horizontal roots</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'pull move shiftroot push', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' pull move shiftroot push', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'move shiftroot pull push', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' move shiftroot pull push', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -621,7 +621,7 @@ yellow/green - horizontal roots</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['push button', 'button', 'press button']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['button', 'press button', 'push button']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -647,7 +647,7 @@ yellow/green - horizontal roots</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'push button button press button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button button press button', 'tags': '', 'text': '\n Presses a button.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'button press button push button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' button press button push button', 'tags': '', 'text': '\n Presses a button.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -791,7 +791,7 @@ parry - forgoes your attack but will make you harder to hit on next</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['slash', 'pierce', 'bash', 'fight', 'hit', 'parry', 'chop', 'stab', 'kill', 'thrust', 'defend']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['defend', 'pierce', 'slash', 'fight', 'kill', 'hit', 'stab', 'chop', 'bash', 'thrust', 'parry']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -817,7 +817,7 @@ parry - forgoes your attack but will make you harder to hit on next</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'slash pierce bash fight hit parry chop stab kill thrust defend', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' slash pierce bash fight hit parry chop stab kill thrust defend', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'defend pierce slash fight kill hit stab chop bash thrust parry', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' defend pierce slash fight kill hit stab chop bash thrust parry', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -260,7 +260,7 @@ code except for adding in the details.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -275,7 +275,7 @@ code except for adding in the details.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -828,7 +828,7 @@ if they fall off the bridge.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdBridgeHelp.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['?', 'h']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdBridgeHelp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['h', '?']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdBridgeHelp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -854,7 +854,7 @@ if they fall off the bridge.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdBridgeHelp.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdBridgeHelp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdBridgeHelp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -980,7 +980,7 @@ to find something.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['search', 'fiddle', 'feel', 'feel around', 'l']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['feel', 'search', 'l', 'fiddle', 'feel around']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -1008,7 +1008,7 @@ random chance of eventually finding a light source.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'search fiddle feel feel around l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' search fiddle feel feel around l', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'feel search l fiddle feel around', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel search l fiddle feel around', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ git evennia pull - Pull the latest evennia code.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory">
|
||||
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmp7ygv7scj/cbe3d4c738efb7e94ff9633fc1afb2d5f24c954c/evennia'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmp66rtn6r2/6e6ab208a6b53fc30dd91a6f83124e641d851601/evennia'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -281,7 +281,7 @@ git pull - Pull the latest code from your current branch.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.utils.git_integration.git_integration.CmdGit.directory">
|
||||
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmp7ygv7scj/cbe3d4c738efb7e94ff9633fc1afb2d5f24c954c/evennia/game_template'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGit.directory" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmp66rtn6r2/6e6ab208a6b53fc30dd91a6f83124e641d851601/evennia/game_template'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGit.directory" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
|
|||
|
|
@ -609,6 +609,7 @@ with ‘q’, remove the break line and restart server when finished.</p></li>
|
|||
</li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.html">evennia.contrib.tutorials.evadventure.tests</a><ul>
|
||||
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.mixins.html">evennia.contrib.tutorials.evadventure.tests.mixins</a></li>
|
||||
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_ai.html">evennia.contrib.tutorials.evadventure.tests.test_ai</a></li>
|
||||
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_characters.html">evennia.contrib.tutorials.evadventure.tests.test_characters</a></li>
|
||||
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_chargen.html">evennia.contrib.tutorials.evadventure.tests.test_chargen</a></li>
|
||||
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.tutorials.evadventure.tests.test_combat.html">evennia.contrib.tutorials.evadventure.tests.test_combat</a></li>
|
||||
|
|
|
|||
|
|
@ -348,7 +348,7 @@ indentation.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.eveditor.CmdEditorGroup.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = [':dd', ':A', ':=', ':fi', ':', ':i', ':DD', ':u', ':!', ':echo', ':w', ':<', ':r', ':>', ':j', ':y', ':f', ':p', '::', ':fd', ':x', ':q!', ':wq', ':s', ':h', ':q', ':S', ':::', ':dw', ':uu', ':UU', ':I']</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = [':uu', ':h', ':q!', ':dd', ':=', ':A', ':q', '::', ':f', ':', ':w', ':fi', ':::', ':s', ':I', ':wq', ':j', ':!', ':r', ':fd', ':i', ':DD', ':<', ':x', ':>', ':u', ':p', ':dw', ':S', ':echo', ':UU', ':y']</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -376,7 +376,7 @@ efficient presentation.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.eveditor.CmdEditorGroup.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': ':dd :A := :fi : :i :DD :u :! :echo :w :< :r :> :j :y :f :p :: :fd :x :q! :wq :s :h :q :S ::: :dw :uu :UU :I', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :dd :A := :fi : :i :DD :u :! :echo :w :< :r :> :j :y :f :p :: :fd :x :q! :wq :s :h :q :S ::: :dw :uu :UU :I', 'tags': '', 'text': '\n Commands for the editor\n '}</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': ':uu :h :q! :dd := :A :q :: :f : :w :fi ::: :s :I :wq :j :! :r :fd :i :DD :< :x :> :u :p :dw :S :echo :UU :y', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :uu :h :q! :dd := :A :q :: :f : :w :fi ::: :s :I :wq :j :! :r :fd :i :DD :< :x :> :u :p :dw :S :echo :UU :y', 'tags': '', 'text': '\n Commands for the editor\n '}</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -951,7 +951,7 @@ single question.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.evmenu.CmdYesNoQuestion.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['no', 'a', 'y', 'abort', 'n', '__nomatch_command', 'yes']</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['abort', 'y', 'yes', 'no', 'n', 'a', '__nomatch_command']</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -977,7 +977,7 @@ single question.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'no a y abort n __nomatch_command yes', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' no a y abort n __nomatch_command yes', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'abort y yes no n a __nomatch_command', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' abort y yes no n a __nomatch_command', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ the <strong>caller.msg()</strong> construct every time the page is updated.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.evmore.CmdMore.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['t', 'a', 'next', 'top', 'end', 'abort', 'q', 'n', 'p', 'previous', 'e', 'quit']</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['abort', 'quit', 'e', 'q', 'next', 'p', 'previous', 'n', 'top', 'end', 'a', 't']</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -175,7 +175,7 @@ the <strong>caller.msg()</strong> construct every time the page is updated.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.evmore.CmdMore.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 't a next top end abort q n p previous e quit', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' t a next top end abort q n p previous e quit', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'abort quit e q next p previous n top end a t', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' abort quit e q next p previous n top end a t', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -723,8 +723,6 @@
|
|||
<li><a href="api/evennia.utils.optionhandler.html#evennia.utils.optionhandler.InMemorySaveHandler.add">(evennia.utils.optionhandler.InMemorySaveHandler method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.add_aidict">add_aidict() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.commands.default.comms.html#evennia.commands.default.comms.CmdChannel.add_alias">add_alias() (evennia.commands.default.comms.CmdChannel method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.base_systems.ingame_python.commands.html#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.add_callback">add_callback() (evennia.contrib.base_systems.ingame_python.commands.CmdCallback method)</a>
|
||||
|
|
@ -798,8 +796,6 @@
|
|||
<li><a href="api/evennia.web.templatetags.addclass.html#evennia.web.templatetags.addclass.addclass">addclass() (in module evennia.web.templatetags.addclass)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.base_systems.components.tests.html#evennia.contrib.base_systems.components.tests.RuntimeComponentTestC.added_tag">added_tag (evennia.contrib.base_systems.components.tests.RuntimeComponentTestC attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.adjust_transition_probability">adjust_transition_probability() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.web.admin.frontpage.html#evennia.web.admin.frontpage.admin_wrapper">admin_wrapper() (in module evennia.web.admin.frontpage)</a>
|
||||
</li>
|
||||
|
|
@ -813,13 +809,41 @@
|
|||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.combat_turnbased.html#evennia.contrib.tutorials.evadventure.combat_turnbased.EvAdventureTurnbasedCombatHandler.advantage_matrix">advantage_matrix (evennia.contrib.tutorials.evadventure.combat_turnbased.EvAdventureTurnbasedCombatHandler attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob.ai_next_action">ai_next_action() (evennia.contrib.tutorials.evadventure.npcs.EvAdventureMob method)</a>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin">AggressiveMobMixin (class in evennia.contrib.tutorials.evadventure.ai)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai">ai (evennia.contrib.tutorials.evadventure.ai.AIMixin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_attack">ai_attack() (evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC.ai_next_action">(evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC method)</a>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_attack">(evennia.contrib.tutorials.evadventure.ai.AIMixin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_flee">ai_flee() (evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_flee">(evennia.contrib.tutorials.evadventure.ai.AIMixin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_idle">ai_idle() (evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_idle">(evennia.contrib.tutorials.evadventure.ai.AIMixin method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.IdleMobMixin.ai_idle">(evennia.contrib.tutorials.evadventure.ai.IdleMobMixin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC.ai_next_action">ai_next_action() (evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.ai_patrol">ai_patrol() (evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.ai_patrol">(evennia.contrib.tutorials.evadventure.ai.AIMixin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler">AIHandler (class in evennia.contrib.tutorials.evadventure.ai)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin">AIMixin (class in evennia.contrib.tutorials.evadventure.ai)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.server.portal.webclient_ajax.html#evennia.server.portal.webclient_ajax.AjaxWebClient">AjaxWebClient (class in evennia.server.portal.webclient_ajax)</a>
|
||||
</li>
|
||||
|
|
@ -1597,6 +1621,8 @@
|
|||
</li>
|
||||
<li><a href="api/evennia.locks.lockhandler.html#evennia.locks.lockhandler.LockHandler.append">append() (evennia.locks.lockhandler.LockHandler method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/evennia.server.portal.telnet.html#evennia.server.portal.telnet.TelnetProtocol.applicationDataReceived">applicationDataReceived() (evennia.server.portal.telnet.TelnetProtocol method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.chargen.html#evennia.contrib.tutorials.evadventure.chargen.TemporaryCharacterSheet.apply">apply() (evennia.contrib.tutorials.evadventure.chargen.TemporaryCharacterSheet method)</a>
|
||||
|
|
@ -1607,8 +1633,6 @@
|
|||
</li>
|
||||
<li><a href="api/evennia.contrib.game_systems.turnbattle.tb_range.html#evennia.contrib.game_systems.turnbattle.tb_range.RangedCombatRules.approach">approach() (evennia.contrib.game_systems.turnbattle.tb_range.RangedCombatRules method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/evennia.commands.command.html#evennia.commands.command.Command.arg_regex">arg_regex (evennia.commands.command.Command attribute)</a>
|
||||
|
||||
<ul>
|
||||
|
|
@ -4063,10 +4087,10 @@
|
|||
</li>
|
||||
<li><a href="api/evennia.commands.default.building.html#evennia.commands.default.building.CmdObjects">CmdObjects (class in evennia.commands.default.building)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/evennia.contrib.game_systems.barter.barter.html#evennia.contrib.game_systems.barter.barter.CmdOffer">CmdOffer (class in evennia.contrib.game_systems.barter.barter)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/evennia.commands.default.account.html#evennia.commands.default.account.CmdOOC">CmdOOC (class in evennia.commands.default.account)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.commands.default.account.html#evennia.commands.default.account.CmdOOCLook">CmdOOCLook (class in evennia.commands.default.account)</a>
|
||||
|
|
@ -4483,6 +4507,12 @@
|
|||
<li><a href="api/evennia.contrib.game_systems.turnbattle.tb_items.html#evennia.contrib.game_systems.turnbattle.tb_items.CmdCombatHelp.combat_help_text">(evennia.contrib.game_systems.turnbattle.tb_items.CmdCombatHelp attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.game_systems.turnbattle.tb_range.html#evennia.contrib.game_systems.turnbattle.tb_range.CmdCombatHelp.combat_help_text">(evennia.contrib.game_systems.turnbattle.tb_range.CmdCombatHelp attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin.combat_probabilities">combat_probabilities (evennia.contrib.tutorials.evadventure.ai.AggressiveMobMixin attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIMixin.combat_probabilities">(evennia.contrib.tutorials.evadventure.ai.AIMixin attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.game_systems.turnbattle.tb_basic.html#evennia.contrib.game_systems.turnbattle.tb_basic.COMBAT_RULES">COMBAT_RULES (in module evennia.contrib.game_systems.turnbattle.tb_basic)</a>
|
||||
|
|
@ -7697,6 +7727,13 @@
|
|||
|
||||
<ul>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.mixins.html#module-evennia.contrib.tutorials.evadventure.tests.mixins">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
evennia.contrib.tutorials.evadventure.tests.test_ai
|
||||
|
||||
<ul>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#module-evennia.contrib.tutorials.evadventure.tests.test_ai">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
|
|
@ -9256,8 +9293,6 @@
|
|||
<li><a href="api/evennia.utils.funcparser.html#evennia.utils.funcparser.FuncParser.execute">(evennia.utils.funcparser.FuncParser method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.execute_ai">execute_ai() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount.execute_cmd">execute_cmd() (evennia.accounts.accounts.DefaultAccount method)</a>
|
||||
|
||||
<ul>
|
||||
|
|
@ -10923,8 +10958,6 @@
|
|||
<li><a href="api/evennia.server.portal.rss.html#evennia.server.portal.rss.RSSReader.get_new">get_new() (evennia.server.portal.rss.RSSReader method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.grid.wilderness.wilderness.html#evennia.contrib.grid.wilderness.wilderness.get_new_coordinates">get_new_coordinates() (in module evennia.contrib.grid.wilderness.wilderness)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_next_action">get_next_action() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.combat_turnbased.html#evennia.contrib.tutorials.evadventure.combat_turnbased.EvAdventureTurnbasedCombatHandler.get_next_action_dict">get_next_action_dict() (evennia.contrib.tutorials.evadventure.combat_turnbased.EvAdventureTurnbasedCombatHandler method)</a>
|
||||
</li>
|
||||
|
|
@ -10948,8 +10981,6 @@
|
|||
<li><a href="api/evennia.typeclasses.models.html#evennia.typeclasses.models.TypedObject.get_next_by_db_date_created">(evennia.typeclasses.models.TypedObject method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_next_state">get_next_state() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.base_systems.ingame_python.utils.html#evennia.contrib.base_systems.ingame_python.utils.get_next_wait">get_next_wait() (in module evennia.contrib.base_systems.ingame_python.utils)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.typeclasses.managers.html#evennia.typeclasses.managers.TypedObjectManager.get_nick">get_nick() (evennia.typeclasses.managers.TypedObjectManager method)</a>
|
||||
|
|
@ -11116,6 +11147,8 @@
|
|||
<li><a href="api/evennia.scripts.ondemandhandler.html#evennia.scripts.ondemandhandler.OnDemandTask.get_stage">(evennia.scripts.ondemandhandler.OnDemandTask method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_state">get_state() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.grid.extended_room.extended_room.html#evennia.contrib.grid.extended_room.extended_room.ExtendedRoom.get_stateful_desc">get_stateful_desc() (evennia.contrib.grid.extended_room.extended_room.ExtendedRoom method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.utils.git_integration.git_integration.html#evennia.contrib.utils.git_integration.git_integration.GitCommand.get_status">get_status() (evennia.contrib.utils.git_integration.git_integration.GitCommand method)</a>
|
||||
|
|
@ -11137,8 +11170,12 @@
|
|||
<li><a href="api/evennia.web.api.filters.html#evennia.web.api.filters.get_tag_query">get_tag_query() (in module evennia.web.api.filters)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.web.api.serializers.html#evennia.web.api.serializers.TypeclassSerializerMixin.get_tags">get_tags() (evennia.web.api.serializers.TypeclassSerializerMixin static method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_targets">get_targets() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.grid.extended_room.extended_room.html#evennia.contrib.grid.extended_room.extended_room.ExtendedRoom.get_time_of_day">get_time_of_day() (evennia.contrib.grid.extended_room.extended_room.ExtendedRoom method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.get_traversable_exits">get_traversable_exits() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.typeclasses.managers.html#evennia.typeclasses.managers.TypedObjectManager.get_typeclass_totals">get_typeclass_totals() (evennia.typeclasses.managers.TypedObjectManager method)</a>
|
||||
</li>
|
||||
|
|
@ -12180,6 +12217,8 @@
|
|||
<li><a href="api/evennia.objects.objects.html#evennia.objects.objects.DefaultCharacter.idle_time">(evennia.objects.objects.DefaultCharacter property)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.IdleMobMixin">IdleMobMixin (class in evennia.contrib.tutorials.evadventure.ai)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.commands.cmdsethandler.html#evennia.commands.cmdsethandler.import_cmdset">import_cmdset() (in module evennia.commands.cmdsethandler)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.utils.eveditor.html#evennia.utils.eveditor.EvEditor.increase_indent">increase_indent() (evennia.utils.eveditor.EvEditor method)</a>
|
||||
|
|
@ -15451,6 +15490,8 @@
|
|||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.html#module-evennia.contrib.tutorials.evadventure.tests">evennia.contrib.tutorials.evadventure.tests</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.mixins.html#module-evennia.contrib.tutorials.evadventure.tests.mixins">evennia.contrib.tutorials.evadventure.tests.mixins</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#module-evennia.contrib.tutorials.evadventure.tests.test_ai">evennia.contrib.tutorials.evadventure.tests.test_ai</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_characters.html#module-evennia.contrib.tutorials.evadventure.tests.test_characters">evennia.contrib.tutorials.evadventure.tests.test_characters</a>
|
||||
</li>
|
||||
|
|
@ -17953,6 +17994,8 @@
|
|||
<li><a href="api/evennia.server.portal.discord.html#evennia.server.portal.discord.random">(in module evennia.server.portal.discord)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.random_probability">random_probability() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.utils.utils.html#evennia.utils.utils.random_string_from_module">random_string_from_module() (in module evennia.utils.utils)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.utils.random_string_generator.random_string_generator.html#evennia.contrib.utils.random_string_generator.random_string_generator.RandomStringGenerator">RandomStringGenerator (class in evennia.contrib.utils.random_string_generator.random_string_generator)</a>
|
||||
|
|
@ -18715,6 +18758,8 @@
|
|||
<li><a href="api/evennia.contrib.game_systems.turnbattle.tb_range.html#evennia.contrib.game_systems.turnbattle.tb_range.TBRangeTurnHandler.rules">(evennia.contrib.game_systems.turnbattle.tb_range.TBRangeTurnHandler attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.run">run() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.utils.utils.html#evennia.utils.utils.run_async">run_async() (in module evennia.utils.utils)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.server.evennia_launcher.html#evennia.server.evennia_launcher.run_connect_wizard">run_connect_wizard() (in module evennia.server.evennia_launcher)</a>
|
||||
|
|
@ -19893,6 +19938,8 @@
|
|||
<li><a href="api/evennia.scripts.ondemandhandler.html#evennia.scripts.ondemandhandler.OnDemandTask.set_stage">(evennia.scripts.ondemandhandler.OnDemandTask method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.set_state">set_state() (evennia.contrib.tutorials.evadventure.ai.AIHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.base_systems.ingame_python.scripts.html#evennia.contrib.base_systems.ingame_python.scripts.EventHandler.set_task">set_task() (evennia.contrib.base_systems.ingame_python.scripts.EventHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.html#evennia.set_trace">set_trace() (in module evennia)</a>
|
||||
|
|
@ -20015,6 +20062,8 @@
|
|||
<li><a href="api/evennia.contrib.tutorials.bodyfunctions.tests.html#evennia.contrib.tutorials.bodyfunctions.tests.TestBodyFunctions.setUp">(evennia.contrib.tutorials.bodyfunctions.tests.TestBodyFunctions method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.mixins.html#evennia.contrib.tutorials.evadventure.tests.mixins.EvAdventureMixin.setUp">(evennia.contrib.tutorials.evadventure.tests.mixins.EvAdventureMixin method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.setUp">(evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_characters.html#evennia.contrib.tutorials.evadventure.tests.test_characters.TestCharacters.setUp">(evennia.contrib.tutorials.evadventure.tests.test_characters.TestCharacters method)</a>
|
||||
</li>
|
||||
|
|
@ -20402,16 +20451,10 @@
|
|||
<li><a href="api/evennia.contrib.rpg.buffs.samplebuffs.html#evennia.contrib.rpg.buffs.samplebuffs.StatBuff">StatBuff (class in evennia.contrib.rpg.buffs.samplebuffs)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.full_systems.evscaperoom.room.html#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.state">state() (evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom property)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.state">(evennia.contrib.tutorials.evadventure.ai.AIHandler property)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/evennia.contrib.full_systems.evscaperoom.state.html#evennia.contrib.full_systems.evscaperoom.state.StateHandler">StateHandler (class in evennia.contrib.full_systems.evscaperoom.state)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.full_systems.evscaperoom.room.html#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.statehandler">statehandler (evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.states">states() (evennia.contrib.tutorials.evadventure.ai.AIHandler property)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.rpg.traits.traits.html#evennia.contrib.rpg.traits.traits.StaticTrait">StaticTrait (class in evennia.contrib.rpg.traits.traits)</a>
|
||||
</li>
|
||||
|
|
@ -21037,6 +21080,8 @@
|
|||
<li><a href="api/evennia.contrib.rpg.traits.tests.html#evennia.contrib.rpg.traits.tests.TestNumericTraitOperators.tearDown">(evennia.contrib.rpg.traits.tests.TestNumericTraitOperators method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.bodyfunctions.tests.html#evennia.contrib.tutorials.bodyfunctions.tests.TestBodyFunctions.tearDown">(evennia.contrib.tutorials.bodyfunctions.tests.TestBodyFunctions method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.tearDown">(evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.tutorial_world.tests.html#evennia.contrib.tutorials.tutorial_world.tests.TestTutorialWorldObjects.tearDown">(evennia.contrib.tutorials.tutorial_world.tests.TestTutorialWorldObjects method)</a>
|
||||
</li>
|
||||
|
|
@ -21156,6 +21201,10 @@
|
|||
<li><a href="api/evennia.contrib.base_systems.ingame_python.tests.html#evennia.contrib.base_systems.ingame_python.tests.TestEventHandler.test_add_validation">test_add_validation() (evennia.contrib.base_systems.ingame_python.tests.TestEventHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.rpg.buffs.tests.html#evennia.contrib.rpg.buffs.tests.TestBuffsAndHandler.test_addremove">test_addremove() (evennia.contrib.rpg.buffs.tests.TestBuffsAndHandler method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.test_ai_methods">test_ai_methods() (evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI.test_ai_run">test_ai_run() (evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.rpg.traits.tests.html#evennia.contrib.rpg.traits.tests.TraitHandlerTest.test_all">test_all() (evennia.contrib.rpg.traits.tests.TraitHandlerTest method)</a>
|
||||
</li>
|
||||
|
|
@ -22472,11 +22521,11 @@
|
|||
<li><a href="api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestHelp.test_set_help">test_set_help() (evennia.commands.default.tests.TestHelp method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_set_home">test_set_home() (evennia.commands.default.tests.TestBuilding method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_set_obj_alias">test_set_obj_alias() (evennia.commands.default.tests.TestBuilding method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_set_obj_alias">test_set_obj_alias() (evennia.commands.default.tests.TestBuilding method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.base_systems.building_menu.tests.html#evennia.contrib.base_systems.building_menu.tests.TestBuildingMenu.test_setattr">test_setattr() (evennia.contrib.base_systems.building_menu.tests.TestBuildingMenu method)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.game_systems.gendersub.tests.html#evennia.contrib.game_systems.gendersub.tests.TestGenderSub.test_setgender">test_setgender() (evennia.contrib.game_systems.gendersub.tests.TestGenderSub method)</a>
|
||||
|
|
@ -23240,6 +23289,8 @@
|
|||
<li><a href="api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAccount">TestAccount (class in evennia.commands.default.tests)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestAdmin">TestAdmin (class in evennia.commands.default.tests)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#evennia.contrib.tutorials.evadventure.tests.test_ai.TestAI">TestAI (class in evennia.contrib.tutorials.evadventure.tests.test_ai)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.server.portal.tests.html#evennia.server.portal.tests.TestAMPServer">TestAMPServer (class in evennia.server.portal.tests)</a>
|
||||
</li>
|
||||
|
|
@ -23682,8 +23733,6 @@
|
|||
<li><a href="api/evennia.contrib.rpg.buffs.buff.html#evennia.contrib.rpg.buffs.buff.BuffHandler.traits">traits() (evennia.contrib.rpg.buffs.buff.BuffHandler property)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.grid.xyzgrid.xymap_legend.html#evennia.contrib.grid.xyzgrid.xymap_legend.TransitionMapNode">TransitionMapNode (class in evennia.contrib.grid.xyzgrid.xymap_legend)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.tutorials.evadventure.ai.html#evennia.contrib.tutorials.evadventure.ai.AIHandler.transitions">transitions() (evennia.contrib.tutorials.evadventure.ai.AIHandler property)</a>
|
||||
</li>
|
||||
<li><a href="api/evennia.contrib.grid.xyzgrid.example.html#evennia.contrib.grid.xyzgrid.example.TransitionToCave">TransitionToCave (class in evennia.contrib.grid.xyzgrid.example)</a>
|
||||
</li>
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1080,6 +1080,11 @@
|
|||
<td>   
|
||||
<a href="api/evennia.contrib.tutorials.evadventure.tests.mixins.html#module-evennia.contrib.tutorials.evadventure.tests.mixins"><code class="xref">evennia.contrib.tutorials.evadventure.tests.mixins</code></a></td><td>
|
||||
<em></em></td></tr>
|
||||
<tr class="cg-1">
|
||||
<td></td>
|
||||
<td>   
|
||||
<a href="api/evennia.contrib.tutorials.evadventure.tests.test_ai.html#module-evennia.contrib.tutorials.evadventure.tests.test_ai"><code class="xref">evennia.contrib.tutorials.evadventure.tests.test_ai</code></a></td><td>
|
||||
<em></em></td></tr>
|
||||
<tr class="cg-1">
|
||||
<td></td>
|
||||
<td>   
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue