701 lines
23 KiB
Markdown
701 lines
23 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.
|
||
|
||
## 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 d’entité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 |
|