ok
This commit is contained in:
@@ -53,3 +53,475 @@ Les chemins sont des cases aménagées permettant aux visiteurs et au staff de s
|
||||
## 1. Détails Spécifiques
|
||||
* **Textures Connectées :** Les chemins utilisent des textures connectées (Terre, Gravier, Pavés) pour éviter les coupures nettes entre les cases.
|
||||
* **Variété :** Différents types de sols disponibles (Terre, Gravier, Pavés).
|
||||
|
||||
## Définition
|
||||
|
||||
| Champ | Valeur |
|
||||
|---|---|
|
||||
| Concept | Case “chemin” : tuile de circulation sur grille isométrique, auto-connectée (auto-tiling) pour former un réseau. |
|
||||
| Rôle | Supporter le pathfinding visiteurs/staff, améliorer la vitesse, et garantir la connectivité entre points d’intérêt. |
|
||||
| Portée | Tuile placée sur `case_zoo`, utilisée par `visiteur` et employés. |
|
||||
| Contrainte | Pas de cache/mémorisation des routes : chemins calculés à la volée (A*/Dijkstra) ; pas de fallback silencieux si réseau cassé (message + log). |
|
||||
|
||||
## Fonctions (tableau détaillé)
|
||||
|
||||
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||||
|---|---|---|---|---|---|
|
||||
| Placer chemin | action build | coord, material | tuile chemin | interdit sur case occupée | Event `PATH_PLACED` |
|
||||
| Supprimer chemin | action delete | coord | tuile vide | interdit si bloque sortie (option) | Event `PATH_REMOVED` |
|
||||
| Auto-tiling | placement/suppression | voisins N/E/S/W | sprite variant | recalcul local (voisinage) | Event `PATH_AUTOTILE_UPDATED` |
|
||||
| Bonus vitesse | déplacement entité | type entité | speed multiplier | appliqué uniquement sur chemin | Event `PATH_SPEED_APPLIED` |
|
||||
| Connectivité | navigation | graph chemins | route | route recalculée à la volée | Event `PATH_ROUTE_COMPUTED` |
|
||||
| Esthétique | rendu | material + neighbors | sprite | variations (terre/gravier/pavés) | - |
|
||||
|
||||
## Icone de base
|
||||
|
||||
| Élément | Spécification |
|
||||
|---|---|
|
||||
| Représentation | Icône pavés / empreintes |
|
||||
| Couleur dominante | Beige/gris selon matériau |
|
||||
| Variantes | `icon_path_pavers.png`, `icon_path_footprints.png` |
|
||||
| États | normal, hover, invalid (rouge) |
|
||||
|
||||
## Interactions (tableau détaillé)
|
||||
|
||||
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||||
|---|---|---|---|---|---|
|
||||
| Construire chemin | Action | mode build | sélectionner chemin → cliquer cases | chemins posés | `CELL_OCCUPIED` |
|
||||
| Choisir matériau | Action | build | dropdown | material appliqué | - |
|
||||
| Supprimer | Action | mode delete | clic chemin | supprimé | `CANNOT_REMOVE_BLOCKING` |
|
||||
| Prévisualiser auto-tiling | Consultation | build | survol | ghost variant | - |
|
||||
|
||||
## Personnage contextuel (événements & interaction)
|
||||
Le module “Chemin” affiche prioritairement un **visiteur** (homme/femme) comme personnage contextuel (voir `visiteur.md`) afin de rendre visibles les conséquences de connectivité, de blocage et de flux.
|
||||
|
||||
### Affichage
|
||||
Le visiteur s’affiche lorsque :
|
||||
- le module est **actionné** (entrée en mode build chemins, pose/suppression, sélection matériau) ;
|
||||
- un **événement** lié à la connectivité survient (route recalculée, blocage d’accès, saturation locale).
|
||||
|
||||
### Déclencheurs (exemples)
|
||||
| Event / Message | Condition | Effet UI personnage |
|
||||
|---|---|---|
|
||||
| `ENTER_PATH_BUILD_MODE` | activation build | portrait visiteur + rappel “connectivité” |
|
||||
| `CELL_OCCUPIED` | pose invalide | bulle : cause (case occupée) |
|
||||
| `CANNOT_REMOVE_BLOCKING` | suppression bloquante | bulle : cause (accès bloqué) + CTA annuler |
|
||||
| `PATH_ROUTE_COMPUTED` | route recalculée | bulle : “Itinéraire mis à jour” (info) |
|
||||
|
||||
### Interactions utilisateur
|
||||
- Clic sur le personnage : ouvre le panneau “connectivité”/aide du mode chemin (si présent) ou met en surbrillance les zones impactées (entrée, POI).
|
||||
|
||||
### Skins & thèmes
|
||||
Le visiteur suit `theme.md`. Les variantes homme/femme sont des skins/variantes de visiteurs (voir `visiteur.md` + `inventaire_skins.md` si les visiteurs sont skinnables).
|
||||
|
||||
## Annexes Techniques
|
||||
|
||||
### 1. Données et États (tableau détaillé)
|
||||
|
||||
| Donnée / État | Type | Exemple | Source | Contraintes |
|
||||
|---|---|---|---|---|
|
||||
| `type` | string | `path` | DB | constant |
|
||||
| `material` | string | `gravel` | DB/config | enum |
|
||||
| `grid.x` | int | 10 | DB | coord |
|
||||
| `grid.y` | int | 12 | DB | coord |
|
||||
| `connected_neighbors` | string[] | `["N","S","E"]` | calcul | à la volée |
|
||||
| `iso_x` | int | 120 | calcul/DB | rendu |
|
||||
| `iso_y` | int | 88 | calcul/DB | rendu |
|
||||
| `z_index` | int | 12088 | calcul | profondeur |
|
||||
|
||||
#### Caractéristiques Initiales (tableau détaillé)
|
||||
|
||||
| Caractéristique | Valeur initiale | Unité | Notes |
|
||||
|---|---:|---|---|
|
||||
| Bonus vitesse visiteurs | 1.15 | coef | sur chemin |
|
||||
| Bonus vitesse staff | 1.25 | coef | sur chemin |
|
||||
| Coût pose | 1 | coins | par tuile (exemple) |
|
||||
|
||||
#### Scores Initiaux (tableau détaillé)
|
||||
|
||||
| Score | Valeur initiale | Plage | Impact |
|
||||
|---|---:|---|---|
|
||||
| Connectivité | 0 | 0..100 | accessibilité |
|
||||
| Chemins posés | 0 | 0..∞ | progression build |
|
||||
|
||||
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||||
|
||||
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||||
|---|---|---|---|---|
|
||||
| Apparition | build | coord | path | autotile local |
|
||||
| Mise à jour | voisin change | voisins | sprite | cohérence |
|
||||
| Disparition | delete | coord | vide | graph maj |
|
||||
|
||||
#### Conditions d'Apparition (tableau détaillé)
|
||||
|
||||
| Condition | Seuil | Opérateur | Résultat |
|
||||
|---|---:|---|---|
|
||||
| Achat/placement | true | est | chemin créé |
|
||||
|
||||
#### Conditions de Disparition (tableau détaillé)
|
||||
|
||||
| Condition | Seuil | Opérateur | Résultat |
|
||||
|---|---:|---|---|
|
||||
| Suppression | true | est | chemin retiré |
|
||||
|
||||
#### Hérédité (tableau détaillé)
|
||||
|
||||
| Élément | Hérité | Règle |
|
||||
|---|---|---|
|
||||
| Matériau | Oui | persiste sur tuile |
|
||||
| Connectivité | Non | recalcul à la volée |
|
||||
|
||||
### 3. Impacts Environnementaux
|
||||
|
||||
#### Impact Température (tableau détaillé)
|
||||
|
||||
| Condition | Effet chemin | Notes |
|
||||
|---|---|---|
|
||||
| Neige | visuel + glissant léger | option saisonnière |
|
||||
|
||||
#### Impact Milieu (Biome) (tableau détaillé)
|
||||
|
||||
| Biome | Effet chemin | Notes |
|
||||
|---|---|---|
|
||||
| Boue | vitesse - si pas pavés | material “terre” |
|
||||
|
||||
#### Impact Saisons (tableau détaillé)
|
||||
|
||||
| Saison | Effet chemin | Notes |
|
||||
|---|---|---|
|
||||
| Hiver | variante sprite | neige |
|
||||
|
||||
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||||
|
||||
| Période | Effet chemin | Notes |
|
||||
|---|---|---|
|
||||
| Nuit | éclairage lampadaires | via objets |
|
||||
|
||||
### 4. Impacts Biologiques et Sociaux
|
||||
|
||||
#### Impact Reproduction (tableau détaillé)
|
||||
|
||||
| Facteur | Effet sur taux | Condition |
|
||||
|---|---|---|
|
||||
| - | aucun | - |
|
||||
|
||||
#### Impact Mort (tableau détaillé)
|
||||
|
||||
| Cas | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Embouteillage | risque incidents | trop dense |
|
||||
|
||||
#### Impact Nourriture (tableau détaillé)
|
||||
|
||||
| Ressource | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Accès boutiques | consommation ↑ | chemin connecte |
|
||||
|
||||
#### Impact Attractivité(Visiteurs (tableau détaillé)
|
||||
|
||||
| Action/État | Gain | Rayon | Notes |
|
||||
|---|---:|---:|---|
|
||||
| Chemins propres | + | zoo | esthétique |
|
||||
|
||||
#### Impact Attractivité Animaux) (tableau détaillé)
|
||||
|
||||
| Action/État | Effet animaux | Condition |
|
||||
|---|---|---|
|
||||
| Passage trop proche | stress + | enclos sans barrière |
|
||||
|
||||
#### Impact Valeur (tableau détaillé)
|
||||
|
||||
| Facteur | Variation | Condition |
|
||||
|---|---:|---|
|
||||
| Pavés premium | + | cosmétique |
|
||||
|
||||
### 5. Impacts Logistiques et Économiques
|
||||
|
||||
#### Vitesse (Camion) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Itinéraire camion | préfère chemins | si autorisé |
|
||||
|
||||
#### Vitesse (Nurserie) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Accès nurserie | temps staff - | chemin connecté |
|
||||
|
||||
#### Vitesse (Accueil) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| File visiteurs | plus fluide | chemin large |
|
||||
|
||||
#### Vitesse (Recherche) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Staff | déplacement + | chemin |
|
||||
|
||||
#### Vitesse (Labo) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| - | - | - |
|
||||
|
||||
#### Vitesse (Visite) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Visiteurs | vitesse + | chemin |
|
||||
|
||||
#### Dépenses (Billeterie) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| - | 0 | - | - |
|
||||
|
||||
#### Dépenses (Boutiques) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| Maintenance | 1 | coins / tuile / jour | option |
|
||||
|
||||
#### Dépenses (Visiteurs) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| - | 0 | - | - |
|
||||
|
||||
#### Dépenses (Employés) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| Temps déplacement | - | min | chemins |
|
||||
|
||||
#### Dépenses (Boutiques) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| Section dupliquée | 0 | - | conservée |
|
||||
|
||||
#### Dépenses (Nurseries) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| - | 0 | - | - |
|
||||
|
||||
#### Dépenses (Nourriture) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| - | 0 | - | - |
|
||||
|
||||
#### Dépenses (Acceuil des animaux) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| - | 0 | - | - |
|
||||
|
||||
#### Dépenses (Camion) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| - | 0 | - | - |
|
||||
|
||||
#### Trajet Visiteurs
|
||||
|
||||
##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)
|
||||
|
||||
| Source | Destination | Déclencheur | Effet |
|
||||
|---|---|---|---|
|
||||
| Ville | Zoo | ouverture | route |
|
||||
|
||||
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
|
||||
|
||||
| Source | Destination | Déclencheur | Effet |
|
||||
|---|---|---|---|
|
||||
| Allée | Enclos | curiosité | route |
|
||||
|
||||
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
|
||||
|
||||
| Source | Destination | Déclencheur | Effet |
|
||||
|---|---|---|---|
|
||||
| Enclos | Boutique | besoin | route |
|
||||
|
||||
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
|
||||
|
||||
| Source | Destination | Déclencheur | Effet |
|
||||
|---|---|---|---|
|
||||
| Billetterie | Allées | entrée | flux |
|
||||
|
||||
### 6. Événements
|
||||
|
||||
#### Événements du Jeu (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Payload | Effet |
|
||||
|---|---|---|---|
|
||||
| `PATH_PLACED` | build | coord, material | tuile |
|
||||
| `PATH_REMOVED` | delete | coord | tuile |
|
||||
| `PATH_AUTOTILE_UPDATED` | voisin | coord | sprite |
|
||||
|
||||
#### Événements du Carte (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| - | - | - |
|
||||
|
||||
#### Événements du Zoo (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `PATH_ROUTE_COMPUTED` | visite | route | navigation |
|
||||
|
||||
#### Événements du Ville / Visiteur (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| - | - | - |
|
||||
|
||||
#### Événements du Visiteur (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `VISITOR_MOVES` | tick | speed bonus |
|
||||
|
||||
#### Événements du Joueur (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `PLAYER_BUILDS_PATH` | build | réseau |
|
||||
|
||||
### 7. Progression
|
||||
|
||||
#### Tableau des Upgrades (tableau détaillé)
|
||||
|
||||
| Niveau | Coût | Effet | Débloque |
|
||||
|---|---:|---|---|
|
||||
| Terre | 0 | base | - |
|
||||
| Gravier | 100 | vitesse + | matériau |
|
||||
| Pavés | 250 | vitesse ++ | matériau |
|
||||
|
||||
### 8. Logique et Interfaces
|
||||
|
||||
#### Pseudo-code Impacts (tableau détaillé)
|
||||
|
||||
| Fonction | Entrées | Sorties | Notes |
|
||||
|---|---|---|---|
|
||||
| `computeNeighborsMask` | grid, coord | mask | N/E/S/W |
|
||||
| `selectAutotileVariant` | material, mask | sprite_id | atlas |
|
||||
| `computeSpeedMultiplier` | entity, tile | float | sur chemin |
|
||||
|
||||
#### Messages d'Infos / Alerte (tableau détaillé)
|
||||
|
||||
| ID | Niveau | Message | Condition |
|
||||
|---|---|---|---|
|
||||
| `CELL_OCCUPIED` | Warning | "Case occupée." | placement |
|
||||
| `CANNOT_REMOVE_BLOCKING` | Warning | "Suppression impossible : bloque un accès." | option |
|
||||
|
||||
## Annexes UX/UI
|
||||
|
||||
### 1. Expérience Utilisateur (UX)
|
||||
|
||||
#### Description UX (tableau détaillé)
|
||||
|
||||
| Parcours | But | Friction | Réduction clics |
|
||||
|---|---|---|---|
|
||||
| Tracer une allée | connecter zones | répétition | drag paint “pinceau” |
|
||||
| Changer matériau | esthétique | navigation | quick switch |
|
||||
|
||||
#### Description UI (tableau détaillé)
|
||||
|
||||
| Composant | Contenu | États |
|
||||
|---|---|---|
|
||||
| Palette matériaux | terre/gravier/pavés | actif |
|
||||
| Curseur pinceau | taille 1..3 | preview |
|
||||
| Ghost tile | variant | valid/invalid |
|
||||
|
||||
#### Emplacement (tableau détaillé)
|
||||
|
||||
| Zone UI | Position | Notes |
|
||||
|---|---|---|
|
||||
| Mode build | barre | accès direct |
|
||||
|
||||
#### Intégration (tableau détaillé)
|
||||
|
||||
| Intégration | Contrat | Notes |
|
||||
|---|---|---|
|
||||
| `visiteur.md` | pathfinding | routes |
|
||||
| `zoo.md` | grille | coords |
|
||||
|
||||
#### Navigation (tableau détaillé)
|
||||
|
||||
| Action | Chemin | Résultat |
|
||||
|---|---|---|
|
||||
| Construire | build → chemin | pinceau |
|
||||
| Supprimer | build → delete | gomme |
|
||||
|
||||
#### Événements (tableau détaillé)
|
||||
|
||||
| Event UI | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `ENTER_PATH_BUILD_MODE` | clic | palette |
|
||||
| `PAINT_PATH` | drag | pose |
|
||||
|
||||
#### Assets Skinables
|
||||
|
||||
##### Musiques (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Durée | Notes |
|
||||
|---|---|---:|---|
|
||||
| `build_mode_loop.mp3` | build | loop | discret |
|
||||
|
||||
##### Sons (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Volume |
|
||||
|---|---|---|
|
||||
| `path_place.mp3` | pose | bas |
|
||||
| `path_remove.mp3` | retrait | bas |
|
||||
|
||||
##### Graphiques (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Contraintes |
|
||||
|---|---|---|
|
||||
| `path_autotile_atlas.png` | sprites | atlas |
|
||||
| `path_preview_overlay.png` | ghost | alpha |
|
||||
|
||||
##### Images (tableau détaillé)
|
||||
|
||||
| Asset | Usage |
|
||||
|---|---|
|
||||
| `path_material_icon_set.png` | palette |
|
||||
|
||||
##### Vidéos (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Durée |
|
||||
|---|---|---:|
|
||||
| `path_paint.webm` | tuto | 2.0s |
|
||||
|
||||
##### Animations (tableau détaillé)
|
||||
|
||||
| Animation | Déclencheur | Notes |
|
||||
|---|---|---|
|
||||
| sparkle pavés | hover | subtil |
|
||||
|
||||
##### Couleurs (tableau détaillé)
|
||||
|
||||
| Token | Valeur | Usage |
|
||||
|---|---|---|
|
||||
| `path_beige` | #D7C7A4 | terre |
|
||||
| `path_gray` | #9E9E9E | pavés |
|
||||
|
||||
##### Textes (tableau détaillé)
|
||||
|
||||
| Clé | FR | EN |
|
||||
|---|---|---|
|
||||
| `path.title` | Chemin | Path |
|
||||
| `path.material` | Matériau | Material |
|
||||
|
||||
##### Formes (tableau détaillé)
|
||||
|
||||
| Élément | Forme | Notes |
|
||||
|---|---|---|
|
||||
| Palette | rectangles | clairs |
|
||||
|
||||
Reference in New Issue
Block a user