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)
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.
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).
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 |
É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 |