<spanid="evennia-contrib-tutorials-evadventure-equipment"></span><h1>evennia.contrib.tutorials.evadventure.equipment<aclass="headerlink"href="#module-evennia.contrib.tutorials.evadventure.equipment"title="Permalink to this headline">¶</a></h1>
<p>Knave has a system of Slots for its inventory.</p>
<emclass="property">exception </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.equipment.</code><codeclass="sig-name descname">EquipmentError</code><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentError"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentError"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.tutorials.evadventure.equipment.</code><codeclass="sig-name descname">EquipmentHandler</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">save_attribute</code><emclass="property"> = 'inventory_slots'</em><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.save_attribute"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">count_slots</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.count_slots"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.count_slots"title="Permalink to this definition">¶</a></dt>
<dd><p>Count slot usage. This is fetched from the .size Attribute of the
<emclass="property">property </em><codeclass="sig-name descname">max_slots</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.max_slots"title="Permalink to this definition">¶</a></dt>
<dd><p>The max amount of equipment slots (‘carrying capacity’) is based on
<codeclass="sig-name descname">validate_slot_usage</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.validate_slot_usage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.validate_slot_usage"title="Permalink to this definition">¶</a></dt>
<dd><p>Check if obj can fit in equipment, based on its size.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>obj</strong> (<aclass="reference internal"href="evennia.contrib.tutorials.evadventure.objects.html#evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"title="evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"><em>EvAdventureObject</em></a>) – The object to add.</p>
<codeclass="sig-name descname">get_current_slot</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.get_current_slot"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.get_current_slot"title="Permalink to this definition">¶</a></dt>
<dd><p>Check which slot-type the given object is in.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>obj</strong> (<aclass="reference internal"href="evennia.contrib.tutorials.evadventure.objects.html#evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"title="evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"><em>EvAdventureObject</em></a>) – The object to check.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>WieldLocation</em>– A location the object is in. None if the object
<emclass="property">property </em><codeclass="sig-name descname">armor</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.armor"title="Permalink to this definition">¶</a></dt>
<dd><p>Armor provided by actually worn equipment/shield. For body armor
this is a base value, like 12, for shield/helmet, it’s a bonus, like +1.
We treat values and bonuses equal and just add them up. This value
can thus be 0, the ‘unarmored’ default should be handled by the calling
method.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><p><em>int</em>–</p>
<dlclass="simple">
<dt>Armor from equipment. Note that this is the +bonus of Armor, not the</dt><dd><p>’defense’ (to get that one adds 10).</p>
<emclass="property">property </em><codeclass="sig-name descname">weapon</code><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.weapon"title="Permalink to this definition">¶</a></dt>
<dd><p>Conveniently get the currently active weapon or rune stone.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>obj or None</em>– The weapon. None if unarmored.</p>
<codeclass="sig-name descname">display_loadout</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.display_loadout"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.display_loadout"title="Permalink to this definition">¶</a></dt>
<dd><p>Get a visual representation of your current loadout.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>str</em>– The current loadout.</p>
<codeclass="sig-name descname">display_backpack</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.display_backpack"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.display_backpack"title="Permalink to this definition">¶</a></dt>
<dd><p>Get a visual representation of the backpack’s contents.</p>
<codeclass="sig-name descname">display_slot_usage</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.display_slot_usage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.display_slot_usage"title="Permalink to this definition">¶</a></dt>
<dd><p>Get a slot usage/max string for display.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>str</em>– The usage string.</p>
<codeclass="sig-name descname">move</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.move"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.move"title="Permalink to this definition">¶</a></dt>
<dd><p>Moves item to the place it things it should be in - this makes use of the object’s wield
slot to decide where it goes. The item is assumed to already be in the backpack.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>obj</strong> (<aclass="reference internal"href="evennia.contrib.tutorials.evadventure.objects.html#evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"title="evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"><em>EvAdventureObject</em></a>) – Thing to use.</p>
</dd>
<dtclass="field-even">Raises</dt>
<ddclass="field-even"><p><aclass="reference internal"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentError"title="evennia.contrib.tutorials.evadventure.equipment.EquipmentError"><strong>EquipmentError</strong></a>– If there’s no room in inventory. It will contains the details
of the error, suitable to echo to user.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>This will cleanly move any ‘colliding’ items to the backpack to
make the use possible (such as moving sword + shield to backpack when wielding
a two-handed weapon). If wanting to warn the user about this, it needs to happen
<codeclass="sig-name descname">add</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.add"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.add"title="Permalink to this definition">¶</a></dt>
<dd><p>Put something in the backpack specifically (even if it could be wield/worn).</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>obj</strong> (<aclass="reference internal"href="evennia.contrib.tutorials.evadventure.objects.html#evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"title="evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"><em>EvAdventureObject</em></a>) – The object to add.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>This will not change the object’s <strong>.location</strong>, this must be done
<codeclass="sig-name descname">remove</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj_or_slot</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.remove"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.remove"title="Permalink to this definition">¶</a></dt>
<dd><p>Remove specific object or objects from a slot.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>obj_or_slot</strong> (<aclass="reference internal"href="evennia.contrib.tutorials.evadventure.objects.html#evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"title="evennia.contrib.tutorials.evadventure.objects.EvAdventureObject"><em>EvAdventureObject</em></a><em> or </em><aclass="reference internal"href="evennia.contrib.tutorials.evadventure.enums.html#evennia.contrib.tutorials.evadventure.enums.WieldLocation"title="evennia.contrib.tutorials.evadventure.enums.WieldLocation"><em>WieldLocation</em></a>) – The specific object or
location to empty. If this is WieldLocation.BACKPACK, all items
in the backpack will be emptied and returned!</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>list</em>– A list of 0, 1 or more objects emptied from the inventory.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>This will not change the object’s <strong>.location</strong>, this must be done separately
<codeclass="sig-name descname">get_wieldable_objects_from_backpack</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.get_wieldable_objects_from_backpack"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.get_wieldable_objects_from_backpack"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all wieldable weapons (or spell runes) from backpack. This is useful in order to
have a list to select from when swapping your wielded loadout.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>list</em>– A list of objects with a suitable <strong>inventory_use_slot</strong>. We don’t check
quality, so this may include broken items (we may want to visually show them
<codeclass="sig-name descname">get_wearable_objects_from_backpack</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.get_wearable_objects_from_backpack"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.get_wearable_objects_from_backpack"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all wearable items (armor or helmets) from backpack. This is useful in order to
have a list to select from when swapping your worn loadout.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>list</em>– A list of objects with a suitable <strong>inventory_use_slot</strong>. We don’t check
quality, so this may include broken items (we may want to visually show them
<codeclass="sig-name descname">get_usable_objects_from_backpack</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.get_usable_objects_from_backpack"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.get_usable_objects_from_backpack"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all ‘usable’ items (like potions) from backpack. This is useful for getting a
list to select from.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>list</em>– A list of objects that are usable.</p>
<codeclass="sig-name descname">all</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">only_objs</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/tutorials/evadventure/equipment.html#EquipmentHandler.all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler.all"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all objects in inventory, regardless of location.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Keyword Arguments</dt>
<ddclass="field-odd"><p><strong>only_objs</strong> (<em>bool</em>) – Only return a flat list of objects, not tuples.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>list</em>– A list of item tuples <strong>[(item, WieldLocation),…]</strong>
starting with the wielded ones, backpack content last. If <strong>only_objs</strong> is set,