from __future__ import annotations

from sprite_ai.core.pet_state import PetState

POSSIBLE_STATES = {
    "appearing": PetState(
        name="idle",
        animation="appearing",
        movement="idle",
        state_transitions={
            "walking": 1,
        },
    ),
    "thinking": PetState(
        name="thinking",
        animation="thinking",
        movement="idle",
        state_transitions={
            "thinking": 1,
        },
    ),
    "idle": PetState(
        name="idle",
        animation="idle",
        movement="idle",
        state_transitions={
            "idle": 1 / 15,
            "walking": 2 / 15,
            "jumping_idle": 2 / 15,
            "jumping_walking": 2 / 15,
            "sliding": 2 / 15,
            "playing": 2 / 15,
            "walking_upright": 2 / 15,
            "laying_down": 2 / 15,
        },
    ),
    "walking": PetState(
        name="walking",
        animation="walking",
        movement="walking",
        state_transitions={
            "idle": 2 / 15,
            "walking": 1 / 15,
            "jumping_idle": 2 / 15,
            "jumping_walking": 2 / 15,
            "sliding": 2 / 15,
            "playing": 2 / 15,
            "walking_upright": 2 / 15,
            "laying_down": 2 / 15,
        },
    ),
    "jumping_idle": PetState(
        name="jumping_idle",
        animation="walking",
        movement="walking",
        state_transitions={
            "idle": 2 / 15,
            "walking": 2 / 15,
            "jumping_idle": 1 / 15,
            "jumping_walking": 2 / 15,
            "sliding": 2 / 15,
            "playing": 2 / 15,
            "walking_upright": 2 / 15,
            "laying_down": 2 / 15,
        },
    ),
    "jumping_walking": PetState(
        name="jumping_walking",
        animation="jumping",
        movement="walking",
        state_transitions={
            "idle": 2 / 15,
            "walking": 2 / 15,
            "jumping_idle": 2 / 15,
            "jumping_walking": 1 / 15,
            "sliding": 2 / 15,
            "playing": 2 / 15,
            "walking_upright": 2 / 15,
            "laying_down": 2 / 15,
        },
    ),
    "sliding": PetState(
        name="sliding",
        animation="sliding",
        movement="walking",
        state_transitions={
            "idle": 2 / 15,
            "walking": 2 / 15,
            "jumping_idle": 2 / 15,
            "jumping_walking": 2 / 15,
            "sliding": 1 / 15,
            "playing": 2 / 15,
            "walking_upright": 2 / 15,
            "laying_down": 2 / 15,
        },
    ),
    "playing": PetState(
        name="playing",
        animation="playing",
        movement="idle",
        state_transitions={
            "idle": 2 / 15,
            "walking": 2 / 15,
            "jumping_idle": 2 / 15,
            "jumping_walking": 2 / 15,
            "sliding": 2 / 15,
            "playing": 1 / 15,
            "walking_upright": 2 / 15,
            "laying_down": 2 / 15,
        },
    ),
    "walking_upright": PetState(
        name="walking_upright",
        animation="walking_upright",
        movement="walking",
        state_transitions={
            "idle": 2 / 15,
            "walking": 2 / 15,
            "jumping_idle": 2 / 15,
            "jumping_walking": 2 / 15,
            "sliding": 2 / 15,
            "playing": 2 / 15,
            "walking_upright": 1 / 15,
            "laying_down": 2 / 15,
        },
    ),
    "laying_down": PetState(
        name="laying_down",
        animation="laying_down",
        movement="idle",
        state_transitions={
            "idle": 2 / 15,
            "walking": 2 / 15,
            "jumping_idle": 2 / 15,
            "jumping_walking": 2 / 15,
            "sliding": 2 / 15,
            "playing": 2 / 15,
            "walking_upright": 2 / 15,
            "laying_down": 1 / 15,
        },
    ),
}
