**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
82 lines
3.8 KiB
Markdown
82 lines
3.8 KiB
Markdown
# Spécifications : Chemin
|
||
|
||
## Définition
|
||
Les chemins sont des cases aménagées permettant aux visiteurs et au staff de se déplacer efficacement à travers le zoo. Ils connectent les différentes infrastructures (Enclos, Boutiques, Services).
|
||
|
||
## Fonctions
|
||
* **Circulation :** Permet le déplacement des entités (Visiteurs, Staff).
|
||
* **Connexion :** Relie les bâtiments entre eux pour former un réseau accessible.
|
||
* **Esthétique :** Améliore l'aspect visuel du zoo.
|
||
|
||
# Annexes Techniques
|
||
|
||
## 1. Données et États
|
||
### Modèle de Données (JSON)
|
||
```json
|
||
{
|
||
"type": "path",
|
||
"material": "enum('terre','gravier','paves','bois','tapis_rouge')",
|
||
"level": "integer (1-7)",
|
||
"x": 10,
|
||
"y": 12,
|
||
"connected_neighbors": ["enum('N','S','E','W')"],
|
||
"movement": {
|
||
"visitor_speed_multiplier": "float (>= 1.0)",
|
||
"staff_speed_multiplier": "float (>= 1.0)",
|
||
"visitor_preference_weight": "integer (0-100)"
|
||
},
|
||
"economy": {
|
||
"build_cost": "integer (coins)",
|
||
"upkeep_cost_per_day": "integer (coins)",
|
||
"attractiveness_bonus": "integer"
|
||
},
|
||
"render": {
|
||
"auto_tile_key": "string",
|
||
"variant_seed": "integer (for random subtle variation)"
|
||
},
|
||
"iso_x": "integer",
|
||
"iso_y": "integer",
|
||
"z_index": "integer"
|
||
}
|
||
```
|
||
|
||
## 2. Règles Métier
|
||
* **Connexion Automatique :** Les textures des chemins se connectent automatiquement aux chemins adjacents (Auto-tiling).
|
||
* **Vitesse :** Bonus de vitesse de déplacement pour les entités sur les chemins.
|
||
* Terre : visiteurs x1.15, staff x1.25
|
||
* Gravier : visiteurs x1.25, staff x1.35
|
||
* Pavés : visiteurs x1.35, staff x1.45
|
||
* Bois (pont / passerelle) : visiteurs x1.20, staff x1.30
|
||
* Tapis rouge (VIP) : visiteurs VIP x1.50 (sinon x1.10), bonus satisfaction +2/min sur la tuile
|
||
* **Attraction** : les visiteurs préfèrent rester sur les chemins quand ils se déplacent (`visitor_preference_weight`).
|
||
* **Construction** : une tuile chemin ne peut pas être posée si la case est occupée par un bâtiment/animal/enclos (sauf règle “chemin sous enclos” explicitement définie ailleurs).
|
||
* **Auto-tiling** : le `auto_tile_key` dépend de `connected_neighbors` et de `material` (ex. `paves_NSE`).
|
||
* **Cas limites** : conversion d’un chemin sous un visiteur → appliquer au tick suivant, pas instantanément (évite téléportations).
|
||
|
||
# Annexes UX/UI
|
||
|
||
|
||
## 0. Direction Artistique & Vue
|
||
* **Vue** : Isométrique (2.5D).
|
||
* **Style** : Coloré, vivant, détails foisonnants (Réf: IMG_20260303_170253.jpg).
|
||
* **Sprites** : 4 directions.
|
||
* **Interactions** :
|
||
* **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
|
||
* **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris.
|
||
|
||
## 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. 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).
|
||
* **Lisibilité iso** : les bordures de chemin doivent rester visibles même sous l’occlusion partielle (contraste + outline discret).
|
||
* **Hitbox** : clic sur le losange (tuile) sélectionne la tuile chemin ; un clic sur une entité au-dessus a priorité (z-order + hit testing).
|