Character Feature Groups
========================

The **Character** object organizes its methods into feature groups for better organization.

Instead of having 100+ methods directly on Character, related features are grouped together:

.. code-block:: python

   char = client.character("MyCharacter")
   
   # All bank operations under char.bank
   char.bank.deposit_gold(quantity=100)
   char.bank.withdraw_items(items=[...])
   
   # All crafting under char.skills
   char.skills.craft(code="iron_sword")
   char.skills.gather()
   
   # All equipment under char.equipment
   char.equipment.equip(code="iron_sword", slot="weapon")
   
   # All trading under char.ge
   char.ge.sell(code="copper_ore", quantity=10, price=50)

This is just an **organizational pattern** - these groups are part of the Character object.

Overview
--------

**BankDomain** - ``char.bank``

Manage your bank account:

.. code-block:: python

   # Gold operations
   char.bank.deposit_gold(quantity=100)
   char.bank.withdraw_gold(quantity=50)
   
   # Item operations
   char.bank.deposit_items(items=[...])
   char.bank.withdraw_items(items=[...])
   
   # Expand bank
   char.bank.buy_expansion()

**EquipmentDomain** - ``char.equipment``

Manage equipped items:

.. code-block:: python

   # Equip items
   char.equipment.equip(code="iron_sword", slot="weapon")
   char.equipment.equip(code="iron_armor", slot="body_armor")
   
   # Unequip items
   char.equipment.unequip(slot="weapon")

**SkillsDomain** - ``char.skills``

Gather, craft, and recycle:

.. code-block:: python

   # Gather resources
   result = char.skills.gather()
   
   # Craft items
   char.skills.craft(code="iron_sword", quantity=1)
   
   # Recycle items for materials
   char.skills.recycle(code="wooden_sword", quantity=5)

**GrandExchangeDomain** - ``char.ge``

Trade on the market:

.. code-block:: python

   # Create sell order
   char.ge.sell(code="copper_ore", quantity=10, price=50)
   
   # Create buy order
   char.ge.buy(code="iron_ore", quantity=5, price=100)
   
   # View your orders
   orders = char.ge.get_orders()
   
   # Cancel an order
   char.ge.cancel(order_id="...")

**InventoryDomain** - ``char.inventory``

Manage inventory:

.. code-block:: python

   # View inventory items
   items = char.inventory.items()
   
   # Delete items
   char.inventory.delete(code="wooden_stick", quantity=1)

**TasksDomain** - ``char.tasks``

Manage quests:

.. code-block:: python

   # Accept a task
   char.tasks.accept(code="quest_name")
   
   # Complete a task
   char.tasks.complete(code="quest_name")
   
   # Exchange task rewards
   char.tasks.exchange(code="quest_name")

**TradingDomain** - ``char.trading``

Player-to-player trading:

.. code-block:: python

   # Create trade request
   char.trading.create(...)
   
   # Accept trade
   char.trading.accept(...)
   
   # Cancel trade
   char.trading.cancel(...)

Detailed Documentation
----------------------

Bank Operations
^^^^^^^^^^^^^^^

Inventory
---------

.. automodule:: artifacts.domains.inventory
   :members:
   :undoc-members:
   :show-inheritance:

Equipment
---------

.. automodule:: artifacts.domains.equipment
   :members:
   :undoc-members:
   :show-inheritance:

Bank
----

.. automodule:: artifacts.domains.bank
   :members:
   :undoc-members:
   :show-inheritance:

Grand Exchange
--------------

.. automodule:: artifacts.domains.ge
   :members:
   :undoc-members:
   :show-inheritance:

Skills
------

.. automodule:: artifacts.domains.skills
   :members:
   :undoc-members:
   :show-inheritance:

Tasks
-----

.. automodule:: artifacts.domains.tasks
   :members:
   :undoc-members:
   :show-inheritance:

Trading
-------

.. automodule:: artifacts.domains.trading
   :members:
   :undoc-members:
   :show-inheritance:
