evennia/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_base.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

659 lines
No EOL
66 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.contrib.tutorials.evadventure.combat_base &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="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.combat_turnbased" href="evennia.contrib.tutorials.evadventure.combat_turnbased.html" />
<link rel="prev" title="evennia.contrib.tutorials.evadventure.chargen" href="evennia.contrib.tutorials.evadventure.chargen.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<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.combat_turnbased.html" title="evennia.contrib.tutorials.evadventure.combat_turnbased"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.tutorials.evadventure.chargen.html" title="evennia.contrib.tutorials.evadventure.chargen"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.tutorials.html" >evennia.contrib.tutorials</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.tutorials.evadventure.html" accesskey="U">evennia.contrib.tutorials.evadventure</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorials.evadventure.combat_base</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.tutorials.evadventure.combat_base">
<span id="evennia-contrib-tutorials-evadventure-combat-base"></span><h1>evennia.contrib.tutorials.evadventure.combat_base<a class="headerlink" href="#module-evennia.contrib.tutorials.evadventure.combat_base" title="Link to this heading"></a></h1>
<p>EvAdventure Base combat utilities.</p>
<p>This establishes the basic building blocks for combat:</p>
<ul class="simple">
<li><p><strong>CombatFailure</strong> - exception for combat-specific errors.</p></li>
<li><p><strong>CombatAction</strong> (and subclasses) - classes encompassing all the working around an action.
They are initialized from action-dicts** - dictionaries with all the relevant data for the
particular invocation</p></li>
<li><p><strong>CombatHandler</strong> - base class for running a combat. Exactly how this is used depends on the
type of combat intended (twitch- or turn-based) so many details of this will be implemented
in child classes.</p></li>
</ul>
<hr class="docutils" />
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatFailure">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.tutorials.evadventure.combat_base.</span></span><span class="sig-name descname"><span class="pre">CombatFailure</span></span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatFailure"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatFailure" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">RuntimeError</span></code></p>
<p>Some failure during combat actions.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatAction">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.tutorials.evadventure.combat_base.</span></span><span class="sig-name descname"><span class="pre">CombatAction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combathandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">action_dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatAction"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction" title="Link 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>Parent class for all actions.</p>
<p>This represents the executable code to run to perform an action. It is initialized from an
action-dict, a set of properties stored in the action queue by each combatant.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatAction.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combathandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">action_dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatAction.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.__init__" title="Link to this definition"></a></dt>
<dd><p>Each key-value pair in the action-dict is stored as a property on this class
for later access.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>combatant</strong> (<a class="reference internal" href="evennia.contrib.tutorials.evadventure.characters.html#evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter" title="evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter"><em>EvAdventureCharacter</em></a><em>, </em><a class="reference internal" href="evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC" title="evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC"><em>EvAdventureNPC</em></a>) The combatant performing
the action.</p></li>
<li><p><strong>action_dict</strong> (<em>dict</em>) A dict containing all properties to initialize on this
class. This should not be any keys with <strong>_</strong> prefix, since these are
used internally by the class.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatAction.msg">
<span class="sig-name descname"><span class="pre">msg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">broadcast</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatAction.msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.msg" title="Link to this definition"></a></dt>
<dd><p>Convenience route to the combathandler msg-sender mechanism.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>message</strong> (<em>str</em>) Message to send; use <strong>$You()</strong> and <strong>$You(other.key)</strong> to refer to
the combatant doing the action and other combatants, respectively.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatAction.can_use">
<span class="sig-name descname"><span class="pre">can_use</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatAction.can_use"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.can_use" title="Link to this definition"></a></dt>
<dd><p>Called to determine if the action is usable with the current settings. This does not
actually perform the action.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>bool</em> If this action can be used at this time.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatAction.execute">
<span class="sig-name descname"><span class="pre">execute</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatAction.execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.execute" title="Link to this definition"></a></dt>
<dd><p>Perform the action as the combatant. Should normally make use of the properties
stored on the class during initialization.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatAction.post_execute">
<span class="sig-name descname"><span class="pre">post_execute</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatAction.post_execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.post_execute" title="Link to this definition"></a></dt>
<dd><p>Called after execution.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionHold">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.tutorials.evadventure.combat_base.</span></span><span class="sig-name descname"><span class="pre">CombatActionHold</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combathandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">action_dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionHold"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionHold" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction" title="evennia.contrib.tutorials.evadventure.combat_base.CombatAction"><code class="xref py py-class docutils literal notranslate"><span class="pre">CombatAction</span></code></a></p>
<p>Action that does nothing.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">action_dict</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="s2">&quot;hold&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionAttack">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.tutorials.evadventure.combat_base.</span></span><span class="sig-name descname"><span class="pre">CombatActionAttack</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combathandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">action_dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionAttack"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionAttack" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction" title="evennia.contrib.tutorials.evadventure.combat_base.CombatAction"><code class="xref py py-class docutils literal notranslate"><span class="pre">CombatAction</span></code></a></p>
<p>A regular attack, using a wielded weapon.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">action</span><span class="o">-</span><span class="nb">dict</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="s2">&quot;attack&quot;</span><span class="p">,</span>
<span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="n">Character</span><span class="o">/</span><span class="n">Object</span>
<span class="p">}</span>
</pre></div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionAttack.execute">
<span class="sig-name descname"><span class="pre">execute</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionAttack.execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionAttack.execute" title="Link to this definition"></a></dt>
<dd><p>Perform the action as the combatant. Should normally make use of the properties
stored on the class during initialization.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionStunt">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.tutorials.evadventure.combat_base.</span></span><span class="sig-name descname"><span class="pre">CombatActionStunt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combathandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">action_dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionStunt"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionStunt" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction" title="evennia.contrib.tutorials.evadventure.combat_base.CombatAction"><code class="xref py py-class docutils literal notranslate"><span class="pre">CombatAction</span></code></a></p>
<p>Perform a stunt the grants a beneficiary (can be self) advantage on their next action against a
target. Whenever performing a stunt that would affect another negatively (giving them
disadvantage against an ally, or granting an advantage against them, we need to make a check
first. We dont do a check if giving an advantage to an ally or ourselves.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">action_dict</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="s2">&quot;stunt&quot;</span><span class="p">,</span>
<span class="s2">&quot;recipient&quot;</span><span class="p">:</span> <span class="n">Character</span><span class="o">/</span><span class="n">NPC</span><span class="p">,</span>
<span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="n">Character</span><span class="o">/</span><span class="n">NPC</span><span class="p">,</span>
<span class="s2">&quot;advantage&quot;</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="c1"># if False, it&#39;s a disadvantage</span>
<span class="s2">&quot;stunt_type&quot;</span><span class="p">:</span> <span class="n">Ability</span><span class="p">,</span> <span class="c1"># what ability (like STR, DEX etc) to use to perform this stunt.</span>
<span class="s2">&quot;defense_type&quot;</span><span class="p">:</span> <span class="n">Ability</span><span class="p">,</span> <span class="c1"># what ability to use to defend against (negative) effects of</span>
<span class="n">this</span> <span class="n">stunt</span><span class="o">.</span>
<span class="p">}</span>
</pre></div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionStunt.execute">
<span class="sig-name descname"><span class="pre">execute</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionStunt.execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionStunt.execute" title="Link to this definition"></a></dt>
<dd><p>Perform the action as the combatant. Should normally make use of the properties
stored on the class during initialization.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionUseItem">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.tutorials.evadventure.combat_base.</span></span><span class="sig-name descname"><span class="pre">CombatActionUseItem</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combathandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">action_dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionUseItem"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionUseItem" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction" title="evennia.contrib.tutorials.evadventure.combat_base.CombatAction"><code class="xref py py-class docutils literal notranslate"><span class="pre">CombatAction</span></code></a></p>
<p>Use an item in combat. This is meant for one-off or limited-use items (so things like
scrolls and potions, not swords and shields). If this is some sort of weapon or spell rune,
we refer to the item to determine what to use for attack/defense rolls.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">action_dict</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="s2">&quot;use&quot;</span><span class="p">,</span>
<span class="s2">&quot;item&quot;</span><span class="p">:</span> <span class="n">Object</span>
<span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="n">Character</span><span class="o">/</span><span class="n">NPC</span><span class="o">/</span><span class="n">Object</span><span class="o">/</span><span class="kc">None</span>
<span class="p">}</span>
</pre></div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionUseItem.execute">
<span class="sig-name descname"><span class="pre">execute</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionUseItem.execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionUseItem.execute" title="Link to this definition"></a></dt>
<dd><p>Perform the action as the combatant. Should normally make use of the properties
stored on the class during initialization.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionWield">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.tutorials.evadventure.combat_base.</span></span><span class="sig-name descname"><span class="pre">CombatActionWield</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combathandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">action_dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionWield"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionWield" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction" title="evennia.contrib.tutorials.evadventure.combat_base.CombatAction"><code class="xref py py-class docutils literal notranslate"><span class="pre">CombatAction</span></code></a></p>
<p>Wield a new weapon (or spell) from your inventory. This will swap out the one you are currently
wielding, if any.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">action_dict</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="s2">&quot;wield&quot;</span><span class="p">,</span>
<span class="s2">&quot;item&quot;</span><span class="p">:</span> <span class="n">Object</span>
<span class="p">}</span>
</pre></div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.CombatActionWield.execute">
<span class="sig-name descname"><span class="pre">execute</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#CombatActionWield.execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionWield.execute" title="Link to this definition"></a></dt>
<dd><p>Perform the action as the combatant. Should normally make use of the properties
stored on the class during initialization.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.tutorials.evadventure.combat_base.</span></span><span class="sig-name descname"><span class="pre">EvAdventureCombatBaseHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript" title="evennia.scripts.scripts.DefaultScript"><code class="xref py py-class docutils literal notranslate"><span class="pre">DefaultScript</span></code></a></p>
<p>This script is created when a combat starts. It ticks the combat and tracks
all sides of it.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.action_classes">
<span class="sig-name descname"><span class="pre">action_classes</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'attack':</span> <span class="pre">&lt;class</span> <span class="pre">'evennia.contrib.tutorials.evadventure.combat_base.CombatActionAttack'&gt;,</span> <span class="pre">'hold':</span> <span class="pre">&lt;class</span> <span class="pre">'evennia.contrib.tutorials.evadventure.combat_base.CombatActionHold'&gt;,</span> <span class="pre">'stunt':</span> <span class="pre">&lt;class</span> <span class="pre">'evennia.contrib.tutorials.evadventure.combat_base.CombatActionStunt'&gt;,</span> <span class="pre">'use':</span> <span class="pre">&lt;class</span> <span class="pre">'evennia.contrib.tutorials.evadventure.combat_base.CombatActionUseItem'&gt;,</span> <span class="pre">'wield':</span> <span class="pre">&lt;class</span> <span class="pre">'evennia.contrib.tutorials.evadventure.combat_base.CombatActionWield'&gt;}</span></em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.action_classes" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.fallback_action_dict">
<span class="sig-name descname"><span class="pre">fallback_action_dict</span></span><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.fallback_action_dict" title="Link to this definition"></a></dt>
<dd><p>AttributeProperty.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_or_create_combathandler">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_or_create_combathandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.get_or_create_combathandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_or_create_combathandler" title="Link to this definition"></a></dt>
<dd><p>Get or create a combathandler on <strong>obj</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>any</em>) The Typeclassed entity to store the CombatHandler Script on. This could be
a location (for turn-based combat) or a Character (for twitch-based combat).</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>combathandler_key</strong> (<em>str</em>) They key name for the script. Will be combathandler by
default.</p></li>
<li><p><strong>**kwargs</strong> Arguments to the Script, if it is created.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.msg">
<span class="sig-name descname"><span class="pre">msg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">broadcast</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">location</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.msg" title="Link to this definition"></a></dt>
<dd><p>Central place for sending messages to combatants. This allows
for adding any combat-specific text-decoration in one place.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message to send.</p></li>
<li><p><strong>combatant</strong> (<em>Object</em>) The You in the message, if any.</p></li>
<li><p><strong>broadcast</strong> (<em>bool</em>) If <strong>False</strong>, <strong>combatant</strong> must be included and
will be the only one to see the message. If <strong>True</strong>, send to
everyone in the location.</p></li>
<li><p><strong>location</strong> (<em>Object</em><em>, </em><em>optional</em>) If given, use this as the location to
send broadcast messages to. If not, use <strong>self.obj</strong> as that
location.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If <strong>combatant</strong> is given, use <strong>$You/you()</strong> markup to create
a message that looks different depending on who sees it. Use
<strong>$You(combatant_key)</strong> to refer to other combatants.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_combat_summary">
<span class="sig-name descname"><span class="pre">get_combat_summary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.get_combat_summary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_combat_summary" title="Link to this definition"></a></dt>
<dd><p>Get a battle report - an overview of the current state of combat from the perspective
of one of the sides.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>combatant</strong> (<a class="reference internal" href="evennia.contrib.tutorials.evadventure.characters.html#evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter" title="evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter"><em>EvAdventureCharacter</em></a><em>, </em><a class="reference internal" href="evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC" title="evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC"><em>EvAdventureNPC</em></a>) The combatant to get.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>EvTable</em> A table representing the current state of combat.</p>
</dd>
</dl>
<p>Example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Goblin</span> <span class="n">shaman</span> <span class="p">(</span><span class="n">Perfect</span><span class="p">)</span>
</pre></div>
</div>
<p>Gregor (Hurt) Goblin brawler(Hurt)
Bob (Perfect) vs Goblin grunt 1 (Hurt)</p>
<blockquote>
<div><p>Goblin grunt 2 (Perfect)
Goblin grunt 3 (Wounded)</p>
</div></blockquote>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_sides">
<span class="sig-name descname"><span class="pre">get_sides</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.get_sides"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_sides" title="Link to this definition"></a></dt>
<dd><p>Get a listing of the two sides of this combat, from the perspective of the provided
combatant. The sides dont need to be balanced.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>combatant</strong> (<em>Character</em><em> or </em><em>NPC</em>) The one whose sides are to determined.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>tuple</em> A tuple of lists <strong>(allies, enemies)</strong>, from the perspective of <strong>combatant</strong>.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The sides are found by checking PCs vs NPCs. PCs can normally not attack other PCs, so
are naturally allies. If the current room has the <strong>allow_pvp</strong> Attribute set, then _all_
other combatants (PCs and NPCs alike) are considered valid enemies (one could expand
this with group mechanics).</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.give_advantage">
<span class="sig-name descname"><span class="pre">give_advantage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">recipient</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.give_advantage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.give_advantage" title="Link to this definition"></a></dt>
<dd><p>Let a benefiter gain advantage against the target.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>recipient</strong> (<em>Character</em><em> or </em><em>NPC</em>) The one to gain the advantage. This may or may not
be the same entity that creates the advantage in the first place.</p></li>
<li><p><strong>target</strong> (<em>Character</em><em> or </em><em>NPC</em>) The one against which the target gains advantage. This
could (in principle) be the same as the benefiter (e.g. gaining advantage on
some future boost)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.give_disadvantage">
<span class="sig-name descname"><span class="pre">give_disadvantage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">recipient</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.give_disadvantage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.give_disadvantage" title="Link to this definition"></a></dt>
<dd><p>Let an affected party gain disadvantage against a target.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>recipient</strong> (<em>Character</em><em> or </em><em>NPC</em>) The one to get the disadvantage.</p></li>
<li><p><strong>target</strong> (<em>Character</em><em> or </em><em>NPC</em>) The one against which the target gains disadvantage, usually</p></li>
<li><p><strong>enemy.</strong> (<em>an</em>)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.has_advantage">
<span class="sig-name descname"><span class="pre">has_advantage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.has_advantage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.has_advantage" title="Link to this definition"></a></dt>
<dd><p>Check if a given combatant has advantage against a target.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>combatant</strong> (<em>Character</em><em> or </em><em>NPC</em>) The one to check if they have advantage</p></li>
<li><p><strong>target</strong> (<em>Character</em><em> or </em><em>NPC</em>) The target to check advantage against.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.has_disadvantage">
<span class="sig-name descname"><span class="pre">has_disadvantage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.has_disadvantage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.has_disadvantage" title="Link to this definition"></a></dt>
<dd><p>Check if a given combatant has disadvantage against a target.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>combatant</strong> (<em>Character</em><em> or </em><em>NPC</em>) The one to check if they have disadvantage</p></li>
<li><p><strong>target</strong> (<em>Character</em><em> or </em><em>NPC</em>) The target to check disadvantage against.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.queue_action">
<span class="sig-name descname"><span class="pre">queue_action</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">action_dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">combatant</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.queue_action"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.queue_action" title="Link to this definition"></a></dt>
<dd><p>Queue an action by adding the new actiondict.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>action_dict</strong> (<em>dict</em>) A dict describing the action class by name along with properties.</p></li>
<li><p><strong>combatant</strong> (<a class="reference internal" href="evennia.contrib.tutorials.evadventure.characters.html#evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter" title="evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter"><em>EvAdventureCharacter</em></a><em>, </em><a class="reference internal" href="evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC" title="evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC"><em>EvAdventureNPC</em></a><em>, </em><em>optional</em>) A combatant queueing the
action.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.execute_next_action">
<span class="sig-name descname"><span class="pre">execute_next_action</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">combatant</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.execute_next_action"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.execute_next_action" title="Link to this definition"></a></dt>
<dd><p>Perform a combatants next action.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>combatant</strong> (<a class="reference internal" href="evennia.contrib.tutorials.evadventure.characters.html#evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter" title="evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter"><em>EvAdventureCharacter</em></a><em>, </em><a class="reference internal" href="evennia.contrib.tutorials.evadventure.npcs.html#evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC" title="evennia.contrib.tutorials.evadventure.npcs.EvAdventureNPC"><em>EvAdventureNPC</em></a>) The combatant performing and action.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.start_combat">
<span class="sig-name descname"><span class="pre">start_combat</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.start_combat"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.start_combat" title="Link to this definition"></a></dt>
<dd><p>Start combat.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.check_stop_combat">
<span class="sig-name descname"><span class="pre">check_stop_combat</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.check_stop_combat"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.check_stop_combat" title="Link to this definition"></a></dt>
<dd><p>Check if this combat should be aborted, whatever this means for the particular
the particular combat type.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>kwargs</strong> Any extra keyword args used.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>bool</em> If <strong>True</strong>, the <strong>stop_combat</strong> method should be called.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.stop_combat">
<span class="sig-name descname"><span class="pre">stop_combat</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/combat_base.html#EvAdventureCombatBaseHandler.stop_combat"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.stop_combat" title="Link to this definition"></a></dt>
<dd><p>Stop combat. This should also do all cleanup.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.DoesNotExist">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DoesNotExist</span></span><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript.DoesNotExist" title="evennia.scripts.scripts.DefaultScript.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.MultipleObjectsReturned">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MultipleObjectsReturned</span></span><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned" title="evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.path">
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler'</span></em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.typename">
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'EvAdventureCombatBaseHandler'</span></em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search 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" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.tutorials.evadventure.combat_base</a><ul>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatFailure"><code class="docutils literal notranslate"><span class="pre">CombatFailure</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction"><code class="docutils literal notranslate"><span class="pre">CombatAction</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.__init__"><code class="docutils literal notranslate"><span class="pre">CombatAction.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.msg"><code class="docutils literal notranslate"><span class="pre">CombatAction.msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.can_use"><code class="docutils literal notranslate"><span class="pre">CombatAction.can_use()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.execute"><code class="docutils literal notranslate"><span class="pre">CombatAction.execute()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatAction.post_execute"><code class="docutils literal notranslate"><span class="pre">CombatAction.post_execute()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionHold"><code class="docutils literal notranslate"><span class="pre">CombatActionHold</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionAttack"><code class="docutils literal notranslate"><span class="pre">CombatActionAttack</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionAttack.execute"><code class="docutils literal notranslate"><span class="pre">CombatActionAttack.execute()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionStunt"><code class="docutils literal notranslate"><span class="pre">CombatActionStunt</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionStunt.execute"><code class="docutils literal notranslate"><span class="pre">CombatActionStunt.execute()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionUseItem"><code class="docutils literal notranslate"><span class="pre">CombatActionUseItem</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionUseItem.execute"><code class="docutils literal notranslate"><span class="pre">CombatActionUseItem.execute()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionWield"><code class="docutils literal notranslate"><span class="pre">CombatActionWield</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.CombatActionWield.execute"><code class="docutils literal notranslate"><span class="pre">CombatActionWield.execute()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.action_classes"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.action_classes</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.fallback_action_dict"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.fallback_action_dict</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_or_create_combathandler"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.get_or_create_combathandler()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.msg"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_combat_summary"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.get_combat_summary()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.get_sides"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.get_sides()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.give_advantage"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.give_advantage()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.give_disadvantage"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.give_disadvantage()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.has_advantage"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.has_advantage()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.has_disadvantage"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.has_disadvantage()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.queue_action"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.queue_action()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.execute_next_action"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.execute_next_action()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.start_combat"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.start_combat()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.check_stop_combat"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.check_stop_combat()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.stop_combat"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.stop_combat()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.path"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.typename"><code class="docutils literal notranslate"><span class="pre">EvAdventureCombatBaseHandler.typename</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.chargen.html"
title="previous chapter">evennia.contrib.tutorials.evadventure.chargen</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.combat_turnbased.html"
title="next chapter">evennia.contrib.tutorials.evadventure.combat_turnbased</a></p>
</div>
<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.combat_base.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="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<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.combat_turnbased.html" title="evennia.contrib.tutorials.evadventure.combat_turnbased"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.tutorials.evadventure.chargen.html" title="evennia.contrib.tutorials.evadventure.chargen"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.tutorials.html" >evennia.contrib.tutorials</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.tutorials.evadventure.html" >evennia.contrib.tutorials.evadventure</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorials.evadventure.combat_base</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>