from __future__ import annotations
from typing import Optional
from pydantic import BaseModel
from .bank import BankExtensionSchema, BankSchema
from .character import CharacterSchema
from .combat import CharacterFightSchema
from .common import (
CooldownSchema,
DestinationSchema,
DropSchema,
SimpleItemSchema,
)
from .enums import CharacterSkin, ItemSlot
from .grand_exchange import GEOrderCreatedSchema, GETransactionSchema
from .maps import MapSchema, TransitionSchema
from .npcs import NpcItemTransactionSchema
from .tasks import TaskSchema, TaskTradeSchema
# -- Movement --
[docs]
class CharacterMovementDataSchema(BaseModel):
cooldown: CooldownSchema
destination: MapSchema
path: list[list[int]]
character: CharacterSchema
[docs]
class CharacterTransitionDataSchema(BaseModel):
cooldown: CooldownSchema
destination: MapSchema
transition: TransitionSchema
character: CharacterSchema
# -- Combat --
[docs]
class CharacterFightDataSchema(BaseModel):
cooldown: CooldownSchema
fight: CharacterFightSchema
characters: list[CharacterSchema]
[docs]
class CharacterRestDataSchema(BaseModel):
cooldown: CooldownSchema
hp_restored: int
character: CharacterSchema
# -- Equipment --
[docs]
class EquipRequestSchema(BaseModel):
cooldown: CooldownSchema
slot: ItemSlot
item: SimpleItemSchema
character: CharacterSchema
# -- Skills --
[docs]
class SkillInfoSchema(BaseModel):
xp: int
items: list[DropSchema]
[docs]
class SkillDataSchema(BaseModel):
cooldown: CooldownSchema
details: SkillInfoSchema
character: CharacterSchema
[docs]
class RecyclingItemsSchema(BaseModel):
items: list[DropSchema]
[docs]
class RecyclingDataSchema(BaseModel):
cooldown: CooldownSchema
details: RecyclingItemsSchema
character: CharacterSchema
# -- Items --
[docs]
class UseItemSchema(BaseModel):
cooldown: CooldownSchema
item: SimpleItemSchema
character: CharacterSchema
[docs]
class DeleteItemSchema(BaseModel):
cooldown: CooldownSchema
item: SimpleItemSchema
character: CharacterSchema
# -- Bank --
[docs]
class BankGoldTransactionSchema(BaseModel):
cooldown: CooldownSchema
bank: BankSchema
character: CharacterSchema
[docs]
class BankItemTransactionSchema(BaseModel):
cooldown: CooldownSchema
items: list[SimpleItemSchema]
bank: list[SimpleItemSchema]
character: CharacterSchema
[docs]
class BankExtensionTransactionSchema(BaseModel):
cooldown: CooldownSchema
transaction: BankExtensionSchema
character: CharacterSchema
# -- NPC --
[docs]
class NpcMerchantTransactionSchema(BaseModel):
cooldown: CooldownSchema
transaction: NpcItemTransactionSchema
character: CharacterSchema
# -- Grand Exchange --
[docs]
class GEOrderTransactionSchema(BaseModel):
cooldown: CooldownSchema
order: GEOrderCreatedSchema
character: CharacterSchema
[docs]
class GETransactionListSchema(BaseModel):
cooldown: CooldownSchema
order: GETransactionSchema
character: CharacterSchema
# -- Tasks --
[docs]
class TaskDataSchema(BaseModel):
cooldown: CooldownSchema
task: TaskSchema
character: CharacterSchema
[docs]
class TaskCancelledSchema(BaseModel):
cooldown: CooldownSchema
character: CharacterSchema
[docs]
class RewardDataSchema(BaseModel):
cooldown: CooldownSchema
rewards: dict
character: CharacterSchema
[docs]
class TaskTradeDataSchema(BaseModel):
cooldown: CooldownSchema
trade: TaskTradeSchema
character: CharacterSchema
# -- Give --
[docs]
class GiveGoldDataSchema(BaseModel):
cooldown: CooldownSchema
quantity: int
receiver_character: CharacterSchema
character: CharacterSchema
[docs]
class GiveItemDataSchema(BaseModel):
cooldown: CooldownSchema
items: list[SimpleItemSchema]
receiver_character: CharacterSchema
character: CharacterSchema
# -- Misc --
[docs]
class ClaimPendingItemDataSchema(BaseModel):
cooldown: CooldownSchema
item: SimpleItemSchema
character: CharacterSchema
[docs]
class ChangeSkinCharacterDataSchema(BaseModel):
cooldown: CooldownSchema
skin: CharacterSkin
character: CharacterSchema