Files
builazoo/docs/specs/accueil_animaux.md
Nicolas Cantu e92c1355d0 Enrichissement exhaustif des specs : Vue Isométrique et Design
**Motivations:**
- Aligner toute la documentation technique avec la nouvelle direction artistique isométrique (Réf IMG_20260303_170253).
- Faciliter l'implémentation en ajoutant les contraintes techniques liées à la 2.5D (Z-index, Sprites 4 directions).

**Root causes:**
- Besoin de cohérence visuelle et technique sur l'ensemble du projet.

**Correctifs:**
- N/A

**Evolutions:**
- Ajout systématique de la section "Direction Artistique & Vue" dans `Annexes UX/UI` de tous les fichiers.
- Enrichissement des modèles JSON avec coordonnées isométriques (`iso_x`, `iso_y`, `z_index`).
- Précision des interactions (clic, survol) adaptées à la grille losange.
- Conservation stricte de la structure existante (aucun titre supprimé).

**Pages affectées:**
- docs/specs/*
2026-03-05 02:10:32 +01:00

8.6 KiB

Spécifications : Accueil des Animaux

Définition

Zone tampon pour les nouveaux animaux arrivant dans le zoo (achats adultes ou transferts). C'est le point d'entrée unique pour tout animal avant son placement en enclos.

Fonctionnalités

  • Acclimatation : Période obligatoire avant de pouvoir placer l'animal sur la grille active.
  • Stockage temporaire : Évite de devoir placer immédiatement un animal acheté si le terrain n'est pas prêt.
  • Inspection : Permet au joueur de voir les stats de l'animal avant placement.

Niveaux d'Amélioration (7 niveaux)

  • Coût : Progressif par palier.
  • Effet : Réduit le temps d'acclimatation. Améliore le potentiel reproducteur de l'animal entrant.
  • Ratio : 1 unité couvre 1 animal en cours d'accueil.

Annexes Techniques

1. Données et États

Modèle de Données (JSON)

{
  "id": "uuid",
  "type": "building_reception",
  "created_at": "timestamp",
  "updated_at": "timestamp",
  "level": "integer (1-7)",
  "position": { "x": "integer", "y": "integer" },
  "slots": [
    {
      "slot_id": "integer (0-index)",
      "animal_id": "uuid (nullable)",
      "status": "enum (EMPTY, OCCUPIED, READY)",
      "arrival_time": "timestamp",
      "acclimatization_end_time": "timestamp",
      "bonus_applied": "boolean"
    }
  ],
  "iso_x": "integer",
  "iso_y": "integer",
  "z_index": "integer"
}

Caractéristiques Initiales

Caractéristique Valeur Initiale (Niv 1) Valeur Max (Niv 7)
Temps Acclimatation 600 secondes (10 min) 0 secondes (Instantané)
Capacité 1 animal 7 animaux

Scores Initiaux

N/A

2. Cycles de Vie et Apparition

Conditions d'Apparition

Présent au démarrage du jeu (Tutorial ou Nouvelle Partie). Position fixe généralement près de l'entrée.

Conditions de Disparition

Indestructible. Ne peut pas être vendu ni déplacé (sauf si feature de réaménagement global).

Hérédité

N/A

3. Impacts Environnementaux

Impact Température

Zone neutre (T° idéale simulée). Les animaux ne subissent pas de dégâts de température ici.

Impact Milieu (Biome)

Zone neutre. Compatible avec tous les biomes d'animaux.

Impact Saisons

Protégé des intempéries.

Impact Heure / Jour-Nuit

Fonctionne 24/7. Pas de pénalité la nuit.

4. Impacts Biologiques et Sociaux

Impact Reproduction

Bonus Repro : Un animal passant par un accueil de haut niveau gagne un bonus temporaire de fertilité.

  • Niv 1-3 : +0%
  • Niv 4-6 : +10% fertilité (durée 2 jours in-game)
  • Niv 7 : +25% fertilité (durée 5 jours in-game)

Impact Mort

Pas de mort possible en zone d'accueil (Stase). Les jauges de faim/soif/santé sont gelées.

Impact Nourriture

Nourri automatiquement (coût nul ou inclus dans les frais de gestion globaux).

Impact Attractivité (Visiteurs/Animaux)

N/A - Les visiteurs ne voient pas l'intérieur de l'accueil.

Impact Valeur

N/A

5. Impacts Logistiques et Économiques

Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)

Réduction Temps Acclimatation :

Niveau Temps Base Réduction %
1 10 min 0%
2 8 min 20%
3 6 min 40%
4 4 min 60%
5 2 min 80%
6 1 min 90%
7 Instantané 100%

Dépenses (Boutiques/Visiteurs)

N/A

Trajet Visiteurs

N/A - Bâtiment administratif.

6. Événements

Événements du Jeu / Carte / Zoo / Ville / Visiteur

  • Arrivée (ANIMAL_ARRIVAL) : Animal livré par camion, entre dans un slot libre.
  • Prêt (ANIMAL_READY) : Le temps d'acclimatation est écoulé.
  • Placement (ANIMAL_PLACED) : Le joueur sort l'animal de l'accueil vers un enclos.

7. Progression

Tableau des Upgrades

Niveau Coût (Pièces) Capacité Temps Acclimatation Temps Construction
1 100 1 10 min 0s
2 200 2 8 min 10s
3 400 3 6 min 30s
4 800 4 4 min 1m
5 1600 5 2 min 2m
6 3200 6 1 min 5m
7 6400 7 0 min 10m

8. Logique et Interfaces

Pseudo-code Impacts

def update_reception(reception_center, current_time):
    # Vérification de l'intégrité
    if not reception_center or not reception_center.slots:
        return error("Invalid reception center")

    for slot in reception_center.slots:
        if slot.status == "OCCUPIED":
            # Vérifier si le temps est écoulé
            if current_time >= slot.acclimatization_end_time:
                slot.status = "READY"
                trigger_event("ANIMAL_READY", {"animal_id": slot.animal_id})
                
def add_animal_to_reception(reception_center, animal):
    # Trouver un slot vide
    empty_slot = find_first_empty_slot(reception_center.slots)
    
    if not empty_slot:
        return error("RECEPTION_FULL")
        
    # Calcul du temps selon le niveau
    duration = get_acclimatization_duration(reception_center.level)
    
    empty_slot.animal_id = animal.id
    empty_slot.arrival_time = now()
    empty_slot.acclimatization_end_time = now() + duration
    empty_slot.status = "OCCUPIED"
    
    return success()

Messages d'Infos / Alerte

ID Niveau Message Condition
ANIMAL_READY Info "Un nouvel animal est prêt à rejoindre le zoo !" slot.status passe à READY
RECEPTION_FULL Warning "Accueil saturé, impossible d'acheter." Tentative d'achat sans slot libre
PLACEMENT_ERROR Error "Impossible de placer ici (Enclos plein / Biome incompatible)." Drag & Drop invalide

Annexes UX/UI

0. Direction Artistique & Vue

  • Vue : Isométrique (2.5D).
  • Style : Coloré, vivant, détails foisonnants (Réf: IMG_20260303_170253.jpg).
  • Sprites : 4 directions.
  • Interactions :
    • Sélection : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
    • Feedback : Surbrillance (outline blanc/jaune) au survol de la souris.

1. Expérience Utilisateur (UX)

Arrivée Animal (Passif)

Description UX : Le camion décharge un animal. Il apparaît dans l'Accueil en mode "Attente". Description UI : Notification "Livraison effectuée". L'icône de l'Accueil change (ex: porte fermée -> porte avec caisse devant). Notification Push : "Votre [Animal] est arrivé à l'accueil !" envoyée si le joueur est hors ligne. Emplacement : Case Accueil. Intégration : Suite de l'action Camion. Navigation : N/A Événements : DELIVERY_COMPLETE.

Assets

  • Musiques : N/A
  • Sons : truck_door.mp3, crate_drop.mp3.
  • Graphiques : Sprite Caisse en bois.
  • Images : N/A
  • Vidéos : N/A
  • Animations : Camion qui repart.
  • Couleurs : Marron (Caisse).
  • Textes : N/A
  • Formes : N/A

Consultation & Acclimatation (Consultation)

Description UX : Le joueur vérifie le temps restant avant de pouvoir placer l'animal. Description UI : Bottom Sheet listant les animaux en transit. Barre de progression "Acclimatation" pour chacun. Emplacement : Modal Accueil. Intégration : Liste verticale. Navigation : Clic Accueil -> Modal. Événements : OPEN_RECEPTION.

Assets

  • Musiques : N/A
  • Sons : ui_open.mp3
  • Graphiques : Style "Quarantaine" ou "Étable propre".
  • Images : Portrait animal.
  • Vidéos : N/A
  • Animations : Barre de progression qui avance.
  • Couleurs : Orange (En cours), Vert (Prêt).
  • Textes : "Prêt dans X min".
  • Formes : Barres arrondies.

Transfert vers Zoo (Action)

Description UX : L'animal est prêt. Le joueur le glisse vers le zoo. Description UI : Bouton "Placer" ou Drag & Drop depuis la liste. Alternative : Tap to Select -> Tap to Place. Emplacement : Modal Accueil -> Carte Zoo. Intégration : Mode placement (comme Nurserie). Navigation : Drag -> Drop. Événements : PLACE_ANIMAL.

Assets

  • Musiques : N/A
  • Sons : animal_happy.mp3 (cri de l'animal).
  • Graphiques : Sprite Animal.
  • Images : N/A
  • Vidéos : N/A
  • Animations : Animal qui saute de joie au placement.
  • Couleurs : N/A
  • Textes : N/A
  • Formes : N/A

Vue Isométrique

  • Sprite Bâtiment : 4 directions (Nord, Sud, Est, Ouest) pour s'aligner avec la route.
  • Occlusion : Le bâtiment doit être semi-transparent si le joueur passe la souris derrière (pour voir les objets cachés).
  • Indicateur d'état : Une icône flottante (bulle) au-dessus du bâtiment indique si un animal est prêt (point d'exclamation vert) ou en cours (sablier).
  • Z-Index : Doit être trié correctement par rapport aux visiteurs passant devant.