Source code for artifacts.domains.inventory

"""Inventory domain -- item usage and deletion."""

from __future__ import annotations

from ..cooldown import _auto_cooldown
from ..models.responses import DeleteItemSchema, UseItemSchema
from ._base import CharacterDomain


[docs] class InventoryDomain(CharacterDomain): """Manage inventory items. Accessed via ``character.inventory``:: await char.inventory.use(code="cooked_chicken", quantity=2) await char.inventory.delete(code="old_sword") """
[docs] @_auto_cooldown async def use(self, *, code: str, quantity: int = 1) -> UseItemSchema: """Use a consumable item from inventory.""" return await self._http.post_model( f"{self._base}/use", UseItemSchema, json={"code": code, "quantity": quantity}, )
[docs] @_auto_cooldown async def delete(self, *, code: str, quantity: int = 1) -> DeleteItemSchema: """Permanently delete an item from inventory.""" return await self._http.post_model( f"{self._base}/delete", DeleteItemSchema, json={"code": code, "quantity": quantity}, )