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

206 lines
7.1 KiB
Markdown

# 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)
```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
```javascript
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.