Files
builazoo/docs/specs/case_zoo.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

5.6 KiB

Spécifications : Case de Zoo (Générique)

Définition

Case spécifique à la grille du zoo, pouvant accueillir les éléments de gestion.

Types de Contenu Possibles

  • Bâtiments : Billeterie, Nurserie, Boutique, Centre de Recherche, École, Accueil Animaux.
  • Animaux : Bébés matures, Animaux adultes.
  • Éléments Mobiles : Visiteurs, Camion (sur sa zone dédiée).
  • Vide : Terrain libre pour construction ou placement.

Propriétés Spécifiques

  • Occupation : Une case ne peut contenir qu'un seul élément principal (bâtiment/animal) à la fois.
  • Visite : Enregistre la date de dernier passage d'un visiteur (pour la règle de disparition).
  • Qualité : Indicateur visuel d'adéquation avec l'animal posé dessus (Jaunissement, Givre).

Liste des Cases Spéciales (cf. Carte Zoo)

  • Agrandissement
  • Recherche
  • Billeterie
  • Nurserie
  • Accueil
  • Nourriture
  • Camion

Annexes Techniques

1. Données et États

Modèle de Données (JSON)

Hérite de Case (Générique).

{
  "last_visit_time": "timestamp | null",
  "visit_count_total": "integer",
  "visit_count_day": "integer",
  "heatmap_score": "float (0-100)",
  "quality_score": "float (0-100)",
  "pathing": {
    "walkable": "boolean",
    "movement_cost": "float (>= 1.0)",
    "preferred": "boolean (true for path tiles)"
  },
  "zoo_specific_flags": [
    "enum('premium_spot','near_entry','near_shop','near_enclosure','staff_only')"
  ]
}

Contraintes (Invariants)

  • Walkable : une case avec content_type bâtiment/animal est généralement walkable=false pour les visiteurs (sauf exceptions design).
  • last_visit_time : mis à jour uniquement quand un visiteur “observe” réellement (pas juste traverse) si la mécanique de “visite” est distincte.
  • movement_cost : > 1.0 sur herbe/boue, = 1.0 sur chemins, < 1.0 interdit (évite vitesse infinie).

Caractéristiques Initiales

Caractéristique Valeur Initiale
Dernière Visite Création du zoo
Qualité 100

Scores Initiaux

Passages : 0 (Heatmap de fréquentation). Propreté : 100 (aucun déchet). Coût de marche : 1.2 (herbe) par défaut, 1.0 (chemin) si la case est convertie.

2. Cycles de Vie et Apparition

Conditions d'Apparition

Génération zoo.

Conditions de Disparition

Jamais : Une case ne disparaît pas, elle change juste de contenu.

Hérédité

Qualité du Sol : Un sol bien entretenu (fertilisé) garde ses bonus après un reset partiel.

3. Impacts Environnementaux

Impact Température

Voir case_generique.md.

Impact Milieu (Biome)

Voir case_generique.md.

Impact Saisons

Neige : La case devient blanche en hiver (si T° < 0).

Impact Heure / Jour-Nuit

Ombres : Les ombres des objets sur la case tournent avec le soleil.

4. Impacts Biologiques et Sociaux

Impact Reproduction

Lieu de rencontre : Les cases "Buissons" favorisent les rencontres.

Impact Mort

Lieu de décès : Une case où un animal est mort garde une "odeur" (malus stress) pendant 24h.

Impact Nourriture

Pâturage : Une case herbeuse peut être broutée (devient terreuse).

Impact Attractivité (Visiteurs/Animaux)

Vue : Une case "Point de Vue" (hauteur) augmente l'attractivité des animaux alentour.

Impact Valeur

Emplacement : Une case proche de l'entrée vaut plus cher (emplacement premium pour boutiques).

5. Impacts Logistiques et Économiques

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

Revêtement : Herbe (Lent), Terre (Moyen), Pavés (Rapide).

Dépenses (Boutiques/Visiteurs)

Nettoyage : Coût si la case est sale (déchets visiteurs).

Trajet Visiteurs

Obstacle : Une case occupée par un bâtiment ou de l'eau est infranchissable (sauf pont).

6. Événements

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

  • Passage Visiteur : Met à jour last_visit_time.
  • Salissure : Apparition d'un déchet.

7. Progression

Tableau des Upgrades

Voir achat_upgrade_case.md.

8. Logique et Interfaces

Pseudo-code Impacts

function checkAnimalDisappearance(case):
  if currentTime - case.last_visit_time > MAX_TIME_WITHOUT_VISIT:
    removeAnimal(case.content)

Messages d'Infos / Alerte

ID Niveau Message
CASE_DIRTY Info "Une case est sale."
PATH_BLOCKED Warning "Chemin bloqué : les visiteurs recalculent leur trajet."
ANIMAL_NOT_VISITED Warning "Un animal n'a pas été observé depuis longtemps."

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)

Sélection (Action)

Description UX : Clic sur une case zoo. Description UI : Highlight + Menu contextuel adapté au contenu (Animal -> Stats, Bâtiment -> Upgrade, Vide -> Construire). Emplacement : Grille. Intégration : Standard. Navigation : Clic. Événements : SELECT_ZOO_CASE.

Assets

  • Musiques : Son "Click".
  • Sons : select_soft.mp3.
  • Graphiques : Cadre sélection.
  • Images : Icône Menu Contextuel.
  • Vidéos : Effet de sélection (contour brillant).
  • Animations : Rebondissement léger du contenu.
  • Couleurs : Blanc.
  • Textes : "Case [X,Y]".
  • Formes : Carré.