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

7.1 KiB

Spécifications : Carte du Zoo

Définition

La carte du zoo est l'espace principal de gestion du joueur où il place ses bâtiments et ses animaux.

Structure

  • Vue : Isométrique (2.5D).
  • Affichage : Plein écran sous la barre du haut, dézoom possible.
  • Grille : Composée de cases individuelles.
  • Biomes : Divisée en tiers de largeur :
    • Gauche : Prairie
    • Milieu : Océan
    • Droite : Montagne
  • Dégradés : Couleurs et températures varient doucement au sein des biomes.

Contenu Initial (Lancement)

  • 1 Case Agrandissement du zoo (+1 case, payant)
  • 1 Case Recherche (Coin haut gauche)
  • 1 Case Billeterie (Coin haut gauche)
  • 1 Case Nurserie (Coin haut gauche)
  • 1 Case Accueil nouveaux animaux (Coin haut gauche)
  • 1 Case Nourriture générale (Coin haut gauche)
  • 1 Case Camion (Coin haut gauche)
  • 24 Cases de terrain (3 couleurs différentes réparties selon les biomes)

Mécaniques

  • Placement : Le joueur peut placer des œufs, des animaux et des bâtiments sur les cases vides.
  • Déplacement : Glisser-déposer pour réorganiser.
  • Visiteurs : Les visiteurs se déplacent sur la grille.
  • Feedbacks : L'état du terrain (herbe jaunie, givre) reflète l'adéquation avec les animaux.

Annexes Techniques

1. Données et États

Modèle de Données (JSON)

{
  "id": "uuid",
  "owner_id": "uuid",
  "width": "integer (init 5)",
  "height": "integer (init 6)",
  "cases": [
    {
      "id": "uuid",
      "grid": { "x": "integer", "y": "integer" },
      "iso": { "iso_x": "integer", "iso_y": "integer" },
      "z_index": "integer",
      "biome": "enum('prairie','ocean','montagne')",
      "terrain": {
        "ground_type": "enum('herbe','terre','sable','roche','eau')",
        "path_type": "enum('none','terre','gravier','paves','bois_pont')",
        "decoration_ids": "uuid[]"
      },
      "occupancy": {
        "type": "enum('empty','animal','building','service','enclosure_fence','water_obstacle')",
        "entity_id": "uuid | null"
      },
      "render": {
        "tile_variant": "string (auto-tiling key)",
        "occluder": "boolean",
        "click_hitbox": "enum('tile','base_sprite','custom_polygon')"
      },
      "timestamps": {
        "created_at": "timestamp",
        "updated_at": "timestamp"
      }
    }
  ]
}

Caractéristiques Initiales

Caractéristique Valeur Initiale
Taille 30 cases (5x6 approx)
Biomes 3 (Tiers)

Scores Initiaux

Score Aménagement : 0/100 (Utilisation de l'espace).

2. Cycles de Vie et Apparition

Conditions d'Apparition

Création du compte joueur.

Conditions de Disparition

Reset Joueur : Suppression du compte ou Faillite totale.

Hérédité

Fondations : Les extensions de terrain achetées sont conservées en cas de "Soft Reset" (Prestige).

3. Impacts Environnementaux

Impact Température

Micro-climats : Les cases adjacentes à l'Océan sont plus fraîches (-2°C). Celles en Montagne sont plus froides (-5°C).

Impact Milieu (Biome)

Bonus Synergie : Placer 4 cases de même biome en carré crée un "Super Biome" (+10% efficacité).

Impact Saisons

Décor : Les arbres (décoration) changent de couleur (Vert -> Orange -> Blanc -> Bourgeons).

Impact Heure / Jour-Nuit

Lumières : Les lampadaires et bâtiments s'allument la nuit (Ambiance).

4. Impacts Biologiques et Sociaux

Impact Reproduction

Intimité : Les buissons (décoration) placés autour d'un enclos augmentent la fertilité (+5%).

Impact Mort

Compost : Un animal mort fertilise le sol. L'herbe devient plus verte sur cette case après disparition du corps.

Impact Nourriture

Pousse : L'herbe (nourriture gratuite) repousse lentement sur les cases Prairie vides.

Impact Attractivité (Visiteurs/Animaux)

Beauté : +1 Attractivité par élément de décoration (Arbre, Banc, Fontaine).

Impact Valeur

Foncier : Chaque case achetée augmente la valeur théorique du zoo.

5. Impacts Logistiques et Économiques

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

Chemins : Augmentent la vitesse de déplacement des visiteurs (+50%).

Dépenses (Boutiques/Visiteurs)

Entretien Espaces Verts : Coût hebdomadaire pour garder le zoo propre (1 pièce/case).

Trajet Visiteurs

Support du pathfinding (A* sur la grille). Les visiteurs évitent les obstacles (Rochers, Eau profonde).

6. Événements

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

  • Agrandissement : Ajout d'une colonne/ligne ou case adjacente.
  • Catastrophe : Inondation (Océan déborde) ou Éboulement (Montagne).

7. Progression

Tableau des Upgrades

Voir achat_upgrade_case_zoo.md.

8. Logique et Interfaces

Pseudo-code Impacts

function initZooMap():
  width = 6
  height = 5
  for x in 0..width:
    for y in 0..height:
      biome = getBiomeByColumn(x, width)
      createCase(x, y, biome)

Messages d'Infos / Alerte

ID Niveau Message
MAP_EXPAND Succès "Le zoo s'agrandit ! Nouvelles terres disponibles."

Annexes UX/UI

0. Direction Artistique & Vue

  • Vue : Isométrique (2.5D).
  • Grille : Les déplacements se font sur une grille losange.
  • Sprites : 4 directions (Nord-Est, Sud-Est, Sud-Ouest, Nord-Ouest).
  • Profondeur : Gestion du Z-index (les éléments "en bas" cachent ceux "en haut").
  • Style Visuel : Inspiré de IMG_20260303_170253.jpg.
    • Coloré, vivant, détails foisonnants.
    • Aspect "dessiné à la main" ou "cartoon soigné".
    • Couleurs vives et contours nets.

1. Expérience Utilisateur (UX)

Interaction Grille (Action)

Description UX : Le joueur clique sur une case pour voir son contenu ou construire. Description UI : Surbrillance de la case au survol. Clic ouvre un Panneau Latéral (Bottom Sheet) non bloquant (Info/Construire). Emplacement : Grille. Intégration : Curseur. Navigation : Clic -> Menu. Événements : CLICK_CASE.

Assets

  • Musiques : Son "Pop" discret.
  • Sons : click_tile.mp3.
  • Graphiques : Cadre de sélection blanc/brillant.
  • Vidéos : Effet de "Pop" au clic.
  • Animations : Pulsation du cadre.
  • Couleurs : Blanc.
  • Textes : Nom de l'objet sélectionné.
  • Formes : Carré.

Mode Construction (Action)

Description UX : Le joueur place un bâtiment ou modifie le terrain. Description UI : Grille visible. Cases valides en vert, invalides en rouge. Mode Peinture : Le joueur peut glisser son doigt (Drag) pour construire/modifier plusieurs cases d'affilée (ex: peindre un biome ou poser une route). Alternative Accessibilité : Tap to Select (Bâtiment) -> Tap to Place (Case) pour éviter le Drag & Drop. Emplacement : Grille. Intégration : Overlay. Navigation : Drag -> Drop. Événements : ENTER_BUILD_MODE.

Assets

  • Musiques : Musique "Mode Édition" (calme, boucle).
  • Sons : grid_snap.mp3.
  • Graphiques : Grille semi-transparente.
  • Vidéos : Effet de grille holographique.
  • Animations : Snap to grid.
  • Couleurs : Vert/Rouge (Alpha 0.5).
  • Textes : "Placer ici".
  • Formes : Carrés.