Files
builazoo/docs/specs/accueil_animaux.md
Nicolas Cantu 5143a79890 docs: enrich docs/specs and remove placeholders
**Motivations:**
- Make docs/specs implementation-ready without empty sections or placeholders.

**Root causes:**
- Multiple specs still contained non-actionable placeholders (N/A, “see above”, "..."), and inconsistent “no cache” wording.

**Correctifs:**
- Replace placeholders with explicit tables, structures, and typed examples.
- Align “no cache / no memorization” statements where relevant.

**Evolutions:**
- Add a features doc entry to track the documentation enrichment effort.

**Pages affectées:**
- docs/specs/*
- docs/features/docs-specs-enrichment.md
- docs/leo.md
- docs/plan-enrich-docs-specs.md
2026-03-05 03:08:15 +01:00

11 KiB
Raw Blame History

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

Score Valeur Initiale Plage (Min-Max) Impact
Confort Quarantaine 60 0-100 Modifie le stress initial de lanimal lors du placement ((-)stress = +confort).
Risque Contamination 2% 0-25% Probabilité dincident sanitaire (quarantaine prolongée, coût supplémentaire) par animal accueilli.
Traçabilité 80 0-100 Qualité des infos affichées au joueur (traits révélés, historique).

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é

Parent Trait Transmis Probabilité Mutation Possible
Accueil Niv 4+ Trait temporaire “Calme” (+5 Satisfaction Visiteurs à proximité après placement) 100% Non (effet temporaire, non génétique)
Accueil Niv 7 Trait temporaire “Confiant” (stress (-15) au placement) 100% Non

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)

Action/État Gain Attractivité Rayon d'action
Façade entretenue (Propreté > 80) +5 6 cases
File dattente visible (Capacité saturée) -10 8 cases
Livraison spectaculaire (animal rare) +20 10 cases

Impact Valeur

Facteur Variation Prix Condition
Niveau Accueil +5% / niveau Appliqué à la valeur du zoo (bâtiment clé non revendable).
Historique sans incident +10% Si aucun événement QUARANTINE_ALERT sur 7 jours in-game.

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)

Poste Coût Hebdo Maintenance
Consommables quarantaine 50 pièces 10 pièces
Nettoyage & désinfection 30 pièces 5 pièces
Contrôle vétérinaire 80 pièces 0 pièce (service périodique)

Trajet Visiteurs

Trajet Condition Effet Détails
Visiteurs passent devant Chemin adjacent Attraction faible Le bâtiment nest pas une attraction nominale, mais une façade visible peut influer sur lambiance.
Visiteurs évitent la zone QUARANTINE_ALERT actif Déviation Les visiteurs recalculent leur chemin pour éviter un rayon de 6 cases autour.

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 : Clic sur Accueil → Bottom Sheet “Accueil” (liste slots) → action “Placer” ouvre le mode placement sur la carte du zoo. Événements : DELIVERY_COMPLETE.

Assets

  • Musiques : ambience_stable_soft.mp3 (léger, discret, pas intrusif).
  • Sons : truck_door.mp3, crate_drop.mp3.
  • Graphiques : Sprite Caisse en bois.
  • Images : reception_building.png (bâtiment), reception_icon.png (icône), badge_quarantine.png (badge).
  • Vidéos : delivery_short.webm (2s, loop optionnel sur notif).
  • Animations : Camion qui repart.
  • Couleurs : Marron (Caisse).
  • Textes : RECEPTION_DELIVERY_DONE = "Livraison effectuée", RECEPTION_ANIMAL_ARRIVED = "Votre {animalName} est arrivé à l'accueil !"
  • Formes : Bulle (notif), badge rond (état).

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 : ui_modal_soft.mp3 (jingle court).
  • Sons : ui_open.mp3
  • Graphiques : Style "Quarantaine" ou "Étable propre".
  • Images : Portrait animal.
  • Vidéos : progress_fill.webm (0.8s loop) pour la barre dacclimatation (optionnel).
  • 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 : ui_confirm_place.mp3 (jingle court de confirmation).
  • Sons : animal_happy.mp3 (cri de l'animal).
  • Graphiques : Sprite Animal.
  • Images : placement_ghost_ok.png, placement_ghost_ko.png (surbrillance vert/rouge).
  • Vidéos : placement_glow.webm (1.2s, non loop).
  • Animations : Animal qui saute de joie au placement.
  • Couleurs : Vert (#2ECC71) placement valide, Rouge (#E74C3C) placement invalide, Ambre (#F39C12) état “en acclimatation”.
  • Textes : BTN_PLACE = "Placer", RECEPTION_READY = "Prêt"
  • Formes : Badge “!” (prêt), sablier (en cours).

Vue Isométrique

  • Sprite Bâtiment : 4 directions isométriques (Nord-Est, Sud-Est, Sud-Ouest, Nord-Ouest) pour s'aligner avec les chemins.
  • 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.