Source code for artifacts.domains.equipment
"""Equipment domain -- equip and unequip items."""
from __future__ import annotations
from ..cooldown import _auto_cooldown
from ..models.enums import ItemSlot
from ..models.responses import EquipRequestSchema
from ._base import CharacterDomain
[docs]
class EquipmentDomain(CharacterDomain):
"""Manage character equipment.
Accessed via ``character.equipment``::
await char.equipment.equip(code="iron_sword", slot=ItemSlot.WEAPON)
await char.equipment.unequip(slot=ItemSlot.HELMET)
"""
[docs]
@_auto_cooldown
async def equip(
self, *, code: str, slot: ItemSlot, quantity: int = 1
) -> EquipRequestSchema:
"""Equip an item into a slot."""
return await self._http.post_model(
f"{self._base}/equip",
EquipRequestSchema,
json={"code": code, "slot": slot.value, "quantity": quantity},
)
[docs]
@_auto_cooldown
async def unequip(
self, *, slot: ItemSlot, quantity: int = 1
) -> EquipRequestSchema:
"""Unequip an item from a slot."""
return await self._http.post_model(
f"{self._base}/unequip",
EquipRequestSchema,
json={"slot": slot.value, "quantity": quantity},
)