Files
builazoo/docs/specs/carte_zoo.md
2026-03-05 04:01:29 +01:00

701 lines
23 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
## Définition
| Champ | Valeur |
|---|---|
| Concept | “Carte du zoo” : grille isométrique principale de gestion (construction, placement animaux/bâtiments, chemins, déplacements visiteurs). |
| Rôle | Centraliser lédition (build/paint), le rendu isométrique (tri z-index, occlusion), et la simulation locale (pathfinding, signaux terrain). |
| Portée | Une map par zoo (`owner_id`), composée de `cases[]` et dentités rendues (bâtiments, animaux, visiteurs, décorations). |
| Contrainte | Pas de cache/mémorisation : états dérivés (z_index, variants auto-tiling, heatmap) calculés à la volée ; aucune interaction silencieuse (placement invalide => erreur + message). |
## Fonctions (tableau détaillé)
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|---|---|---|---|---|---|
| Rendre grille iso | frame render | cases visibles | draw list | tri par `z_index` + occlusion | Event `ZOO_MAP_RENDERED` |
| Sélectionner une case | clic/tap | coord | panneau contexte | contenu dépend occupancy | Event `CLICK_CASE` |
| Entrer mode build | bouton UI | type item | overlay | indique cases valides | Event `ENTER_BUILD_MODE` |
| Placer entité | drop/tap place | entity, coord | occupancy update | invariants case/biome/enclos | Event `PLACE_ENTITY` |
| Paint multi-case | drag | brush, path | batch placements | pas de “continue” silencieux : stop sur case invalide + message | Event `PAINT_APPLIED` |
| Auto-tiling terrain/chemins | placement | voisins | variant keys | recalcul local voisinage | Event `AUTOTILE_UPDATED` |
| Calculer pathfinding visiteurs | besoin/objectif | graph | route | A* à la volée, coûts par tuile | Event `VISITOR_ROUTE_COMPUTED` |
| Mettre à jour signaux terrain | tick lazy | env | flags | givre/jaunissement selon compatibilité | Event `TERRAIN_SIGNAL_UPDATED` |
| Gérer zoom | input | zoom level | camera scale | clamp + snap | Event `ZOO_MAP_ZOOM` |
## Icone de base
| Élément | Spécification |
|---|---|
| Représentation | Icône carte pliée / grille losange |
| Couleur dominante | Vert (prairie), bleu (océan), gris (montagne) |
| Variantes | `icon_zoo_map.png`, `icon_grid_iso.png` |
| États | normal, build_mode, placement_invalid |
## Interactions (tableau détaillé)
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|---|---|---|---|---|---|
| Clic case | Consultation | - | clic | panneau | - |
| Construire bâtiment | Action | item choisi | build → place | entité posée | `CELL_OCCUPIED`, `PLACEMENT_INVALID` |
| Placer animal | Action | animal prêt | drag → drop | animal enclos | `BIOME_INCOMPATIBLE` |
| Déplacer (réaménager) | Action | feature active | drag entité | relocalisation | `MOVE_BLOCKED` |
| Zoom | Navigation | - | pinch/wheel | vue ajustée | - |
## Personnages contextuels (événements & interaction)
La carte du zoo est un module transversal : plusieurs personnages peuvent servir de contexte selon lévénement.
### Personnage principal
- **Joueur actif (avatar)** : voir `avatar_joueur.md`. Visible en HUD et utilisé comme personnage contextuel des actions de construction/gestion.
### Personnages secondaires (selon événement)
- **Visiteurs homme/femme** : voir `visiteur.md` (flux, pathfinding, congestion).
- **Staff** : `nourisseur.md`, `soigneur.md`, `agent_securite.md`, `personnel_accueil.md`, `nurse.md` (déplacements et actions visibles sur la carte).
### Déclencheurs (exemples)
| Event / Action | Condition | Personnage | Effet UI |
|---|---|---|---|
| `CLICK_CASE` | clic case | avatar | panneau contexte + action principale |
| `ENTER_BUILD_MODE` | build activé | avatar | rappel des invariants (cases valides) |
| `PLACEMENT_INVALID` / `CELL_OCCUPIED` | placement refusé | avatar | message explicite + surbrillance cause |
| `VISITOR_ROUTE_COMPUTED` | recalcul route | visiteur | bulle info si congestion/obstacle |
| `DELIVERY_COMPLETE` | arrivée camion | accueil/nurse | bulle livraison + deep-link module |
### Skins & thèmes
Rendu des personnages : `theme.md` + équipements `inventaire_skins.md` (avatar + uniformes + variantes visiteurs si activées).
## Annexes Techniques
### 1. Données et États (tableau détaillé)
| Donnée / État | Type | Exemple | Source | Contraintes |
|---|---|---|---|---|
| `id` | uuid_v4 | `uuid_v4` | DB | - |
| `owner_id` | uuid_v4 | `uuid_v4` | DB | - |
| `width` | int | 5 | DB | init |
| `height` | int | 6 | DB | init |
| `cases[].id` | uuid_v4 | `uuid_v4` | DB | unique |
| `cases[].grid.x` | int | 2 | DB | 0..width-1 |
| `cases[].grid.y` | int | 4 | DB | 0..height-1 |
| `cases[].iso.iso_x` | int | 120 | calcul | rendu |
| `cases[].iso.iso_y` | int | 88 | calcul | rendu |
| `cases[].z_index` | int | 12088 | calcul | tri |
| `cases[].biome` | enum | `prairie` | DB | tiers |
| `cases[].terrain.ground_type` | enum | `herbe` | DB | - |
| `cases[].terrain.path_type` | enum | `gravier` | DB | auto-tiling |
| `cases[].occupancy.type` | enum | `building` | DB | un principal |
| `cases[].occupancy.entity_id` | uuid_v4 \| null | `uuid_v4` | DB | null si vide |
| `cases[].render.tile_variant` | string | `path_gravel_T` | calcul | key |
| `cases[].render.occluder` | boolean | true | config | - |
| `cases[].render.click_hitbox` | enum | `base_sprite` | config | accessibilité clic |
| `timestamps.updated_at` | timestamp | - | DB | UTC |
#### Caractéristiques Initiales (tableau détaillé)
| Caractéristique | Valeur initiale | Unité | Notes |
|---|---:|---|---|
| Taille | 30 | cases | ~5x6 |
| Biomes | 3 | count | tiers |
| Zoom min/max | 0.7 / 1.6 | scale | clamp |
| Coût marche herbe | 1.2 | coef | pathfinding |
#### Scores Initiaux (tableau détaillé)
| Score | Valeur initiale | Plage | Impact |
|---|---:|---|---|
| Score aménagement | 0 | 0..100 | utilisation espace |
| Propreté globale | 100 | 0..100 | satisfaction |
### 2. Cycles de Vie et Apparition (tableau détaillé)
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|---|---|---|---|---|
| Création | compte | seed | cases init | contenu initial |
| Expansion | achat case | coord | width/height | adjacency |
| Réaménagement | action | entité | nouvelle position | pas de collision |
| Catastrophes | event | saison | flags case | observable |
#### Conditions d'Apparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Compte joueur | true | est | map créée |
#### Conditions de Disparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Suppression compte | true | est | map supprimée |
#### Hérédité (tableau détaillé)
| Élément | Hérité | Règle |
|---|---|---|
| Extensions achetées | Oui | conservées en prestige (soft reset) |
| Variants render | Non | recalcul à la volée |
### 3. Impacts Environnementaux
#### Impact Température (tableau détaillé)
| Condition | Effet | Notes |
|---|---|---|
| Proche océan | -2°C | micro-climat |
| Montagne | -5°C | micro-climat |
#### Impact Milieu (Biome) (tableau détaillé)
| Biome | Effet | Notes |
|---|---|---|
| Prairie | herbe repousse | nourriture passive |
| Océan | humidité + | froid adjacent |
| Montagne | givre + | froid |
#### Impact Saisons (tableau détaillé)
| Saison | Effet | Notes |
|---|---|---|
| Hiver | neige/givre | décor + path cost |
| Automne | teintes orange | visuel |
#### Impact Heure / Jour-Nuit (tableau détaillé)
| Période | Effet | Notes |
|---|---|---|
| Nuit | lumières | lampadaires/bâtiments |
### 4. Impacts Biologiques et Sociaux
#### Impact Reproduction (tableau détaillé)
| Facteur | Effet sur taux | Condition |
|---|---|---|
| Buissons “intimité” | +5% | autour enclos |
#### Impact Mort (tableau détaillé)
| Cas | Effet | Condition |
|---|---|---|
| Animal mort sur case | fertilité sol + | case verdit après TTL |
#### Impact Nourriture (tableau détaillé)
| Ressource | Effet | Condition |
|---|---|---|
| Herbe prairie vide | repousse | tick lent |
#### Impact Attractivité(Visiteurs (tableau détaillé)
| Action/État | Gain | Rayon | Notes |
|---|---:|---:|---|
| Décoration | +1 | 3 cases | beauté |
#### Impact Attractivité Animaux) (tableau détaillé)
| Action/État | Effet animaux | Condition |
|---|---|---|
| Foule proche | stress + | densité élevée |
#### Impact Valeur (tableau détaillé)
| Facteur | Variation | Condition |
|---|---:|---|
| Case achetée | + | foncier | valeur zoo |
### 5. Impacts Logistiques et Économiques
#### Vitesse (Camion) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Accès camion | chemin connecté | case camion |
#### Vitesse (Nurserie) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Overlay placement | valid/invalid | mode sortie |
#### Vitesse (Accueil) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Mode placement | overlay | READY |
#### Vitesse (Recherche) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | - | - |
#### Vitesse (Labo) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | - | - |
#### Vitesse (Visite) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Chemins | +50% vitesse | path tiles |
#### Dépenses (Billeterie) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Entretien espaces verts | 1 | coins/case/semaine | propreté |
#### Dépenses (Boutiques) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Maintenance routes | 1 | coins/tuile/semaine | option |
#### Dépenses (Visiteurs) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Saleté | temps staff | min | déchets |
#### Dépenses (Employés) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Soigneur déplacement | temps | min | chemins |
#### Dépenses (Boutiques) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Section dupliquée | 1 | coins | conservée |
#### Dépenses (Nurseries) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 1 | coins | visuel couplé |
#### Dépenses (Nourriture) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Stock global | variable | coins | achats |
#### Dépenses (Acceuil des animaux) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Quarantaine | variable | coins | incidents |
#### Dépenses (Camion) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Carburant | variable | coins | distance |
#### Trajet Visiteurs
##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Billeterie | Ville | sortie | despawn |
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Billeterie | Enclos | plan visite | route |
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Enclos | Boutique | besoin | détour |
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Enclos | Billeterie | fin visite | sortie |
### 6. Événements
#### Événements du Jeu (tableau détaillé)
| Event | Déclencheur | Payload | Effet |
|---|---|---|---|
| `MAP_EXPAND` | achat | coord | size + |
| `AUTOTILE_UPDATED` | terrain | coord | variants |
#### Événements du Carte (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `ZOO_MAP_ZOOM` | input | camera |
#### Événements du Zoo (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `PLACE_ENTITY` | placement | occupancy |
#### Événements du Ville / Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `VISITOR_ROUTE_COMPUTED` | besoin | route |
#### Événements du Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `VISITOR_REROUTE` | obstacle | route |
#### Événements du Joueur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `ENTER_BUILD_MODE` | UI | overlay |
### 7. Progression
#### Tableau des Upgrades (tableau détaillé)
| Niveau | Coût | Effet | Débloque |
|---|---:|---|---|
| 1 | 100 | +1 case | extension |
### 8. Logique et Interfaces
#### Pseudo-code Impacts (tableau détaillé)
| Fonction | Entrées | Sorties | Notes |
|---|---|---|---|
| `getBiomeByColumn` | x, width | biome | tiers |
| `computeZIndex` | x,y | int | tri iso |
| `isPlacementValid` | entity, coord | bool | invariants |
#### Messages d'Infos / Alerte (tableau détaillé)
| ID | Niveau | Message | Condition |
|---|---|---|---|
| `MAP_EXPAND` | Info | "Le zoo s'agrandit." | achat |
| `PLACEMENT_INVALID` | Warning | "Placement invalide." | validation |
| `CELL_OCCUPIED` | Warning | "Case occupée." | collision |
## Annexes UX/UI
### 1. Expérience Utilisateur (UX)
#### Description UX (tableau détaillé)
| Parcours | But | Friction | Réduction clics |
|---|---|---|---|
| Construire | façonner zoo | erreurs placement | overlay OK/KO |
| Inspecter case | comprendre contenu | navigation | panneau contextuel |
#### Description UI (tableau détaillé)
| Composant | Contenu | États |
|---|---|---|
| Highlight case | outline | hover/selected |
| Bottom sheet | infos/actions | open/closed |
| Overlay build | vert/rouge | valid/invalid |
#### Emplacement (tableau détaillé)
| Zone UI | Position | Notes |
|---|---|---|
| Canvas monde | plein écran | caméra |
| HUD build | barre | outils |
#### Intégration (tableau détaillé)
| Intégration | Contrat | Notes |
|---|---|---|
| `case_zoo.md` | unité case | occupancy |
| `chemin.md` | auto-tiling | path |
#### Navigation (tableau détaillé)
| Action | Chemin | Résultat |
|---|---|---|
| Sélection | clic case | panneau |
| Build | bouton build | overlay |
#### Événements (tableau détaillé)
| Event UI | Déclencheur | Effet |
|---|---|---|
| `CLICK_CASE` | clic | panneau |
| `ENTER_BUILD_MODE` | clic | overlay |
#### Assets Skinables
##### Musiques (tableau détaillé)
| Asset | Usage | Durée | Notes |
|---|---|---:|---|
| `zoo_map_ambience_loop.mp3` | carte zoo | loop | discret |
##### Sons (tableau détaillé)
| Asset | Usage | Volume |
|---|---|---|
| `click_tile.mp3` | sélection | bas |
| `grid_snap.mp3` | placement | bas |
##### Graphiques (tableau détaillé)
| Asset | Usage | Contraintes |
|---|---|---|
| `tile_highlight.png` | hover | overlay |
| `build_overlay.png` | build | alpha |
##### Images (tableau détaillé)
| Asset | Usage |
|---|---|
| `biome_prairie_tiles.png` | sol |
| `biome_mountain_tiles.png` | sol |
##### Vidéos (tableau détaillé)
| Asset | Usage | Durée |
|---|---|---:|
| `grid_holo.webm` | build | 1.0s |
##### Animations (tableau détaillé)
| Animation | Déclencheur | Notes |
|---|---|---|
| pulsation highlight | hover | 0.4s |
| snap | placement | 0.2s |
##### Couleurs (tableau détaillé)
| Token | Valeur | Usage |
|---|---|---|
| `build_ok_green` | #00FF00 | valid |
| `build_ko_red` | #FF0000 | invalid |
##### Textes (tableau détaillé)
| Clé | FR | EN |
|---|---|---|
| `zoo_map.place_here` | Placer ici | Place here |
| `zoo_map.invalid` | Placement invalide | Invalid placement |
##### Formes (tableau détaillé)
| Élément | Forme | Notes |
|---|---|---|
| Case | losange | iso |
| Panneau | rectangle arrondi | lisible |