<spanid="evennia-contrib-game-systems-turnbattle-tb-basic"></span><h1>evennia.contrib.game_systems.turnbattle.tb_basic<aclass="headerlink"href="#module-evennia.contrib.game_systems.turnbattle.tb_basic"title="Permalink to this headline">¶</a></h1>
<p>Simple turn-based combat system</p>
<p>Contrib - Tim Ashley Jenkins 2017, Refactor by Griatch 2022</p>
<p>This is a framework for a simple turn-based combat system, similar
to those used in D&D-style tabletop role playing games. It allows
any character to start a fight in a room, at which point initiative
is rolled and a turn order is established. Each participant in combat
has a limited time to decide their action for that turn (30 seconds by
default), and combat progresses through the turn order, looping through
the participants until the fight ends.</p>
<p>Only simple rolls for attacking are implemented here, but this system
is easily extensible and can be used as the foundation for implementing
the rules from your turn-based tabletop game of choice or making your
own battle system.</p>
<p>To install and test, import this module’s TBBasicCharacter object into
<codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">ACTIONS_PER_TURN</code><emclass="property"> = 1</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.ACTIONS_PER_TURN"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">BasicCombatRules</code><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">roll_init</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.roll_init"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.roll_init"title="Permalink to this definition">¶</a></dt>
<dd><p>Rolls a number between 1-1000 to determine initiative.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>character</strong> (<em>obj</em>) – The character to determine initiative for</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>initiative (int)</em>– The character’s place in initiative - higher
numbers go first.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>By default, does not reference the character and simply returns
a random integer from 1 to 1000.</p>
<p>Since the character is passed to this function, you can easily reference
a character’s stats to determine an initiative roll - for example, if your
character has a ‘dexterity’ attribute, you can use it to give that character
<codeclass="sig-name descname">get_attack</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">attacker</span></em>, <emclass="sig-param"><spanclass="n">defender</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.get_attack"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.get_attack"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a value for an attack roll.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>attacker</strong> (<em>obj</em>) – Character doing the attacking</p></li>
<li><p><strong>defender</strong> (<em>obj</em>) – Character being attacked</p></li>
<codeclass="sig-name descname">get_defense</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">attacker</span></em>, <emclass="sig-param"><spanclass="n">defender</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.get_defense"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.get_defense"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a value for defense, which an attack roll must equal or exceed in order
for an attack to hit.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>attacker</strong> (<em>obj</em>) – Character doing the attacking</p></li>
<li><p><strong>defender</strong> (<em>obj</em>) – Character being attacked</p></li>
<codeclass="sig-name descname">get_damage</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">attacker</span></em>, <emclass="sig-param"><spanclass="n">defender</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.get_damage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.get_damage"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a value for damage to be deducted from the defender’s HP after abilities
successful hit.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>attacker</strong> (<em>obj</em>) – Character doing the attacking</p></li>
<li><p><strong>defender</strong> (<em>obj</em>) – Character being damaged</p></li>
<codeclass="sig-name descname">apply_damage</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">defender</span></em>, <emclass="sig-param"><spanclass="n">damage</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.apply_damage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.apply_damage"title="Permalink to this definition">¶</a></dt>
<dd><p>Applies damage to a target, reducing their HP by the damage amount to a
minimum of 0.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>defender</strong> (<em>obj</em>) – Character taking damage</p></li>
<li><p><strong>damage</strong> (<em>int</em>) – Amount of damage being taken</p></li>
<codeclass="sig-name descname">at_defeat</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">defeated</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.at_defeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.at_defeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Announces the defeat of a fighter in combat.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>defeated</strong> (<em>obj</em>) – Fighter that’s been defeated.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>All this does is announce a defeat message by default, but if you
want anything else to happen to defeated fighters (like putting them
into a dying state or something similar) then this is the place to
<codeclass="sig-name descname">resolve_attack</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">attacker</span></em>, <emclass="sig-param"><spanclass="n">defender</span></em>, <emclass="sig-param"><spanclass="n">attack_value</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">defense_value</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.resolve_attack"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.resolve_attack"title="Permalink to this definition">¶</a></dt>
<dd><p>Resolves an attack and outputs the result.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>attacker</strong> (<em>obj</em>) – Character doing the attacking</p></li>
<li><p><strong>defender</strong> (<em>obj</em>) – Character being attacked</p></li>
</ul>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Even though the attack and defense values are calculated
extremely simply, they are separated out into their own functions
<codeclass="sig-name descname">combat_cleanup</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.combat_cleanup"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.combat_cleanup"title="Permalink to this definition">¶</a></dt>
<dd><p>Cleans up all the temporary combat-related attributes on a character.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>character</strong> (<em>obj</em>) – Character to have their combat attributes removed</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Any attribute whose key begins with ‘<ahref="#id1"><spanclass="problematic"id="id2">combat_</span></a>’ is temporary and no
<codeclass="sig-name descname">is_in_combat</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.is_in_combat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.is_in_combat"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns true if the given character is in combat.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>character</strong> (<em>obj</em>) – Character to determine if is in combat or not</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>(bool)</em>– True if in combat or False if not in combat</p>
<codeclass="sig-name descname">is_turn</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.is_turn"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.is_turn"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns true if it’s currently the given character’s turn in combat.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>character</strong> (<em>obj</em>) – Character to determine if it is their turn or not</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>(bool)</em>– True if it is their turn or False otherwise</p>
<codeclass="sig-name descname">spend_action</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em>, <emclass="sig-param"><spanclass="n">actions</span></em>, <emclass="sig-param"><spanclass="n">action_name</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BasicCombatRules.spend_action"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules.spend_action"title="Permalink to this definition">¶</a></dt>
<dd><p>Spends a character’s available combat actions and checks for end of turn.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>character</strong> (<em>obj</em>) – Character spending the action</p></li>
<li><p><strong>actions</strong> (<em>int</em>) – Number of actions to spend, or ‘all’ to spend all actions</p></li>
</ul>
</dd>
<dtclass="field-even">Keyword Arguments</dt>
<ddclass="field-even"><ulclass="simple">
<li><p><strong>action_name</strong> (<em>str</em><em> or </em><em>None</em>) – If a string is given, sets character’s last action in</p></li>
<codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">COMBAT_RULES</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.COMBAT_RULES"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">TBBasicCharacter</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicCharacter"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rules</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter.rules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_object_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicCharacter.at_object_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter.at_object_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>Called once, when this object is first created. This is the
normal hook to overload for most object types.</p>
<codeclass="sig-name descname">at_pre_move</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">destination</span></em>, <emclass="sig-param"><spanclass="n">move_type</span><spanclass="o">=</span><spanclass="default_value">'move'</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicCharacter.at_pre_move"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter.at_pre_move"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'TBBasicCharacter'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">TBBasicTurnHandler</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rules</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.rules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_script_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler.at_script_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.at_script_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>Called once, when the script is created.</p>
<codeclass="sig-name descname">at_stop</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler.at_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.at_stop"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_repeat</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler.at_repeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.at_repeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Called once every self.interval seconds.</p>
<codeclass="sig-name descname">initialize_for_combat</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler.initialize_for_combat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.initialize_for_combat"title="Permalink to this definition">¶</a></dt>
<dd><p>Prepares a character for combat when starting or entering a fight.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>character</strong> (<em>obj</em>) – Character to initialize for combat.</p>
<codeclass="sig-name descname">start_turn</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler.start_turn"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.start_turn"title="Permalink to this definition">¶</a></dt>
<dd><p>Readies a character for the start of their turn by replenishing their
available actions and notifying them that their turn has come up.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>character</strong> (<em>obj</em>) – Character to be readied.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Here, you only get one action per turn, but you might want to allow more than
one per turn, or even grant a number of actions based on a character’s
attributes. You can even add multiple different kinds of actions, I.E. actions
separated for movement, by adding “character.db.combat_movesleft = 3” or
<codeclass="sig-name descname">next_turn</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler.next_turn"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.next_turn"title="Permalink to this definition">¶</a></dt>
<dd><p>Advances to the next character in the turn order.</p>
<codeclass="sig-name descname">turn_end_check</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler.turn_end_check"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.turn_end_check"title="Permalink to this definition">¶</a></dt>
<dd><p>Tests to see if a character’s turn is over, and cycles to the next turn if it is.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>character</strong> (<em>obj</em>) – Character to test for end of turn</p>
<codeclass="sig-name descname">join_fight</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">character</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#TBBasicTurnHandler.join_fight"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.join_fight"title="Permalink to this definition">¶</a></dt>
<dd><p>Adds a new character to a fight already in progress.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>character</strong> (<em>obj</em>) – Character to be added to the fight.</p>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'TBBasicTurnHandler'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">CmdFight</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdFight"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'fight'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">help_category</code><emclass="property"> = 'combat'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight.help_category"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rules</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight.rules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">combat_handler_class</code><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight.combat_handler_class"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler"title="evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicTurnHandler"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">TBBasicTurnHandler</span></code></a></p>
<codeclass="sig-name descname">func</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdFight.func"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight.func"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">aliases</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight.aliases"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lock_storage</code><emclass="property"> = 'cmd:all();'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight.lock_storage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">search_index_entry</code><emclass="property"> = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdFight.search_index_entry"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">CmdAttack</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdAttack"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdAttack"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'attack'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdAttack.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">help_category</code><emclass="property"> = 'combat'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdAttack.help_category"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rules</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdAttack.rules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">func</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdAttack.func"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdAttack.func"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">aliases</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdAttack.aliases"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lock_storage</code><emclass="property"> = 'cmd:all();'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdAttack.lock_storage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">search_index_entry</code><emclass="property"> = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdAttack.search_index_entry"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">CmdPass</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdPass"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'pass'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">aliases</code><emclass="property"> = ['wait', 'hold']</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.aliases"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">help_category</code><emclass="property"> = 'combat'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.help_category"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rules</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.rules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">func</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdPass.func"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.func"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lock_storage</code><emclass="property"> = 'cmd:all();'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.lock_storage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">search_index_entry</code><emclass="property"> = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.search_index_entry"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">CmdDisengage</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdDisengage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdDisengage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'disengage'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdDisengage.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">aliases</code><emclass="property"> = ['spare']</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdDisengage.aliases"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">help_category</code><emclass="property"> = 'combat'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdDisengage.help_category"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rules</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdDisengage.rules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">func</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdDisengage.func"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdDisengage.func"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lock_storage</code><emclass="property"> = 'cmd:all();'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdDisengage.lock_storage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">search_index_entry</code><emclass="property"> = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' spare', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdDisengage.search_index_entry"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">CmdRest</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdRest"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdRest"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'rest'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdRest.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">help_category</code><emclass="property"> = 'combat'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdRest.help_category"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rules</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdRest.rules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">func</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdRest.func"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdRest.func"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">aliases</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdRest.aliases"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lock_storage</code><emclass="property"> = 'cmd:all();'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdRest.lock_storage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">search_index_entry</code><emclass="property"> = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdRest.search_index_entry"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">CmdCombatHelp</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdCombatHelp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">rules</code><emclass="property"> = <evennia.contrib.game_systems.turnbattle.tb_basic.BasicCombatRules object></em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp.rules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">combat_help_text</code><emclass="property"> = 'Available combat commands:|/|wAttack:|n Attack a target, attempting to deal damage.|/|wPass:|n Pass your turn without further action.|/|wDisengage:|n End your turn and attempt to end combat.|/'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp.combat_help_text"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">func</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#CmdCombatHelp.func"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp.func"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">aliases</code><emclass="property"> = ['?']</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp.aliases"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">help_category</code><emclass="property"> = 'general'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp.help_category"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'help'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lock_storage</code><emclass="property"> = 'cmd:all()'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp.lock_storage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">search_index_entry</code><emclass="property"> = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ?', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdCombatHelp.search_index_entry"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.game_systems.turnbattle.tb_basic.</code><codeclass="sig-name descname">BattleCmdSet</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">cmdsetobj</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">key</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BattleCmdSet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BattleCmdSet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'DefaultCharacter'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BattleCmdSet.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.game_systems.turnbattle.tb_basic.BattleCmdSet'</em><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BattleCmdSet.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_cmdset_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html#BattleCmdSet.at_cmdset_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.game_systems.turnbattle.tb_basic.BattleCmdSet.at_cmdset_creation"title="Permalink to this definition">¶</a></dt>