This commit is contained in:
2026-03-05 04:01:29 +01:00
parent dfecb09b7c
commit 6c8a710432
32 changed files with 8203 additions and 3 deletions

View File

@@ -165,3 +165,454 @@ function checkAnimalDisappearance(case):
- **Couleurs** : Blanc.
- **Textes** : "Case [X,Y]".
- **Formes** : Carré.
## Définition
| Champ | Valeur |
|---|---|
| Concept | Case “zoo” : spécialisation de `case_generique` avec contraintes doccupation, métriques de visite, et signaux qualité/propreté. |
| Rôle | Supporter le gameplay de placement (animal/bâtiment), le pathfinding (walkable/cost), et la logique “animal observé” (last_visit_time). |
| Portée | Une tuile de la carte du zoo, identifiée par coordonnées, rendue en isométrie. |
| Contrainte | Mesures dérivées (heatmap, quality_score) calculées à la volée ; pas de fallback : si `content_type` incohérent => log + erreur. |
## Fonctions (tableau détaillé)
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|---|---|---|---|---|---|
| Sélectionner case | clic | x,y | menu contexte | actions selon contenu | Event `SELECT_ZOO_CASE` |
| Résoudre walkable | update terrain | content_type | `pathing.walkable` | bâtiment/animal => false (sauf exceptions) | Event `PATHING_UPDATED` |
| Mettre à jour last_visit_time | visiteur observe | visitor_id | timestamp | observe != traverse | Event `CASE_VISITED` |
| Accumuler heatmap | passage | dt | heatmap_score | 0..100 | Event `HEATMAP_UPDATED` |
| Dégrader propreté | déchets | visitor behavior | cleanliness ↓ | clamp 0..100 | Event `CASE_DIRTY` |
| Mettre à jour qualité | compat animal/terrain | biome/temp | quality_score | signaux visuels | Event `CASE_QUALITY_UPDATED` |
## Icone de base
| Élément | Spécification |
|---|---|
| Représentation | Tuile losange + marqueur |
| Couleur dominante | dépend biome/terrain |
| Variantes | `icon_tile.png`, `icon_tile_dirty.png` |
| États | `dirty`, `fertilized`, `frozen`, `muddy` |
## Interactions (tableau détaillé)
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|---|---|---|---|---|---|
| Construire ici | Action | case vide | menu → item → place | occupancy building | `CELL_OCCUPIED` |
| Placer animal | Action | enclos compatible | drag/drop | occupancy animal | `BIOME_INCOMPATIBLE` |
| Nettoyer | Action | sale | outil nettoyage | cleanliness ↑ | `NO_STAFF` |
## Personnage contextuel (événements & interaction)
La case est actionnée via la sélection sur la carte du zoo. Le personnage contextuel attendu est le **joueur actif** (avatar) : voir `avatar_joueur.md`.
### Déclencheurs (exemples)
| Event / Message | Condition | Effet UI personnage |
|---|---|---|
| `SELECT_ZOO_CASE` | clic case | avatar présent dans le panneau contexte |
| `CELL_OCCUPIED` / `BIOME_INCOMPATIBLE` | action refusée | avatar affiche la cause et laction suivante possible |
| `CASE_DIRTY` | case sale | avatar propose CTA “Nettoyer” (si action permise) |
### Skins & thèmes
Le rendu du portrait/overlay suit `theme.md` et `inventaire_skins.md`.
## Annexes Techniques
### 1. Données et États (tableau détaillé)
| Donnée / État | Type | Exemple | Source | Contraintes |
|---|---|---|---|---|
| `last_visit_time` | timestamp \| null | - | DB | UTC |
| `visit_count_total` | int | 120 | DB | cumul |
| `visit_count_day` | int | 12 | DB | reset day |
| `heatmap_score` | float | 35.5 | calcul | 0..100 |
| `quality_score` | float | 92.0 | calcul | 0..100 |
| `pathing.walkable` | boolean | true | calcul | dépend contenu |
| `pathing.movement_cost` | float | 1.2 | config | >=1.0 |
| `zoo_specific_flags[]` | enum[] | `near_entry` | DB | - |
#### Caractéristiques Initiales (tableau détaillé)
| Caractéristique | Valeur initiale | Unité | Notes |
|---|---:|---|---|
| Propreté | 100 | pts | init |
| Fertilité | 0 | pts | init |
| Coût marche herbe | 1.2 | coef | default |
#### Scores Initiaux (tableau détaillé)
| Score | Valeur initiale | Plage | Impact |
|---|---:|---|---|
| Passages | 0 | 0..∞ | heatmap |
| Qualité | 100 | 0..100 | rendu |
### 2. Cycles de Vie et Apparition (tableau détaillé)
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|---|---|---|---|---|
| Création | génération map | biome | case | existe toujours |
| Occupation | placement | entity | occupancy | un principal |
| Nettoyage | action | outil | propreté ↑ | clamp |
#### Conditions d'Apparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Génération zoo | true | est | case créée |
#### Conditions de Disparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| - | - | - | case persiste |
#### Hérédité (tableau détaillé)
| Élément | Hérité | Règle |
|---|---|---|
| Sol fertilisé | Oui | garde bonus soft reset |
| Heatmap | Non | recalcul |
### 3. Impacts Environnementaux
#### Impact Température (tableau détaillé)
| Condition | Effet case | Notes |
|---|---|---|
| < 0°C | flag `frozen` | givre |
#### Impact Milieu (Biome) (tableau détaillé)
| Biome | Effet | Notes |
|---|---|---|
| prairie | herbe repousse | nourriture |
#### Impact Saisons (tableau détaillé)
| Saison | Effet | Notes |
|---|---|---|
| hiver | `snowy` | visuel |
#### Impact Heure / Jour-Nuit (tableau détaillé)
| Période | Effet | Notes |
|---|---|---|
| nuit | ombres tournent | rendu |
### 4. Impacts Biologiques et Sociaux
#### Impact Reproduction (tableau détaillé)
| Facteur | Effet sur taux | Condition |
|---|---|---|
| buissons | +5% | proximité enclos |
#### Impact Mort (tableau détaillé)
| Cas | Effet | Condition |
|---|---|---|
| odeur | stress + | 24h in-game |
#### Impact Nourriture (tableau détaillé)
| Ressource | Effet | Condition |
|---|---|---|
| pâturage | herbe→terre | animal broute |
#### Impact Attractivité(Visiteurs (tableau détaillé)
| Action/État | Gain | Rayon | Notes |
|---|---:|---:|---|
| point de vue | + | 4 cases | hauteur |
#### Impact Attractivité Animaux) (tableau détaillé)
| Action/État | Effet animaux | Condition |
|---|---|---|
| foule | stress + | densité |
#### Impact Valeur (tableau détaillé)
| Facteur | Variation | Condition |
|---|---:|---|
| near_entry | + | premium spot |
### 5. Impacts Logistiques et Économiques
#### Vitesse (Camion) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| revêtement | vitesse ± | chemin/pavés |
#### Vitesse (Nurserie) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| placement mode | overlay | sortie bébé |
#### Vitesse (Accueil) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| placement mode | overlay | sortie animal |
#### Vitesse (Recherche) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | neutre | - |
#### Vitesse (Labo) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | neutre | - |
#### Vitesse (Visite) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| cost | route | A* |
#### Dépenses (Billeterie) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| nettoyage | 5 | coins | si sale |
#### Dépenses (Boutiques) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| maintenance sol | 1 | coin/case | option |
#### Dépenses (Visiteurs) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| déchets | temps | min | propreté |
#### Dépenses (Employés) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| passage staff | temps | min | path |
#### Dépenses (Boutiques) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| section dupliquée | 1 | coin | conservée |
#### Dépenses (Nurseries) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| hygiène | 1 | coin | lore |
#### Dépenses (Nourriture) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| pâturage | 0 | - | herbe |
#### Dépenses (Acceuil des animaux) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| quarantaine | 1 | coin | lore |
#### Dépenses (Camion) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| usure | 1 | coin | lore |
#### Trajet Visiteurs
##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| entrée | allées | ticket | spawn |
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| allée | enclos | curiosité | observe |
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| enclos | boutique | faim | achat |
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| allées | sortie | budget 0 | despawn |
### 6. Événements
#### Événements du Jeu (tableau détaillé)
| Event | Déclencheur | Payload | Effet |
|---|---|---|---|
| `CASE_DIRTY` | déchet | coord | flag |
| `PATH_BLOCKED` | obstacle | coord | reroute |
#### Événements du Carte (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `PATHING_UPDATED` | terrain | coûts |
#### Événements du Zoo (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `CASE_QUALITY_UPDATED` | compat | rendu |
#### Événements du Ville / Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `CASE_VISITED` | observe | last_visit_time |
#### Événements du Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `VISITOR_REROUTE` | blocage | route |
#### Événements du Joueur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `PLAYER_CLEANS_TILE` | outil | propreté + |
### 7. Progression
#### Tableau des Upgrades (tableau détaillé)
| Niveau | Coût | Effet | Débloque |
|---|---:|---|---|
| Pavés | 250 | cost marche 1.0 | route |
### 8. Logique et Interfaces
#### Pseudo-code Impacts (tableau détaillé)
| Fonction | Entrées | Sorties | Notes |
|---|---|---|---|
| `checkAnimalDisappearance` | case, now | bool | visite |
| `computeMovementCost` | terrain | float | >=1.0 |
#### Messages d'Infos / Alerte (tableau détaillé)
| ID | Niveau | Message | Condition |
|---|---|---|---|
| `CASE_DIRTY` | Info | "Une case est sale." | déchet |
| `PATH_BLOCKED` | Warning | "Chemin bloqué." | reroute |
| `ANIMAL_NOT_VISITED` | Warning | "Animal non observé." | timeout |
## Annexes UX/UI
### 1. Expérience Utilisateur (UX)
#### Description UX (tableau détaillé)
| Parcours | But | Friction | Réduction clics |
|---|---|---|---|
| Ouvrir menu case | agir vite | contexte | menu auto-adapté |
| Nettoyer | propreté | outil | raccourci dans menu |
#### Description UI (tableau détaillé)
| Composant | Contenu | États |
|---|---|---|
| Menu contextuel | actions | selon contenu |
| Highlight | outline | hover/selected |
#### Emplacement (tableau détaillé)
| Zone UI | Position | Notes |
|---|---|---|
| Tuile | monde | iso |
#### Intégration (tableau détaillé)
| Intégration | Contrat | Notes |
|---|---|---|
| `carte_zoo.md` | sélection | panneau |
#### Navigation (tableau détaillé)
| Action | Chemin | Résultat |
|---|---|---|
| Sélection | clic | menu |
#### Événements (tableau détaillé)
| Event UI | Déclencheur | Effet |
|---|---|---|
| `SELECT_ZOO_CASE` | clic | open |
#### Assets Skinables
##### Musiques (tableau détaillé)
| Asset | Usage | Durée | Notes |
|---|---|---:|---|
| `select_tile_click.mp3` | sélection | 0.2s | discret |
##### Sons (tableau détaillé)
| Asset | Usage | Volume |
|---|---|---|
| `select_soft.mp3` | clic | bas |
##### Graphiques (tableau détaillé)
| Asset | Usage | Contraintes |
|---|---|---|
| `tile_outline.png` | highlight | overlay |
##### Images (tableau détaillé)
| Asset | Usage |
|---|---|
| `context_menu_icon.png` | menu |
##### Vidéos (tableau détaillé)
| Asset | Usage | Durée |
|---|---|---:|
| `tile_select.webm` | feedback | 0.5s |
##### Animations (tableau détaillé)
| Animation | Déclencheur | Notes |
|---|---|---|
| bounce contenu | sélection | léger |
##### Couleurs (tableau détaillé)
| Token | Valeur | Usage |
|---|---|---|
| `tile_white` | #FFFFFF | outline |
##### Textes (tableau détaillé)
| Clé | FR | EN |
|---|---|---|
| `tile.coords` | Case {x},{y} | Tile {x},{y} |
##### Formes (tableau détaillé)
| Élément | Forme | Notes |
|---|---|---|
| Tuile | losange | iso |