Spécifications : Case de Zoo (Générique)
Définition
Case spécifique à la grille du zoo, pouvant accueillir les éléments de gestion.
Types de Contenu Possibles
- Bâtiments : Billeterie, Nurserie, Boutique, Centre de Recherche, École, Accueil Animaux.
- Animaux : Bébés matures, Animaux adultes.
- Éléments Mobiles : Visiteurs, Camion (sur sa zone dédiée).
- Vide : Terrain libre pour construction ou placement.
Propriétés Spécifiques
- Occupation : Une case ne peut contenir qu'un seul élément principal (bâtiment/animal) à la fois.
- Visite : Enregistre la date de dernier passage d'un visiteur (pour la règle de disparition).
- Qualité : Indicateur visuel d'adéquation avec l'animal posé dessus (Jaunissement, Givre).
Liste des Cases Spéciales (cf. Carte Zoo)
- Agrandissement
- Recherche
- Billeterie
- Nurserie
- Accueil
- Nourriture
- Camion
Annexes Techniques
1. Données et États
Modèle de Données (JSON)
Hérite de Case (Générique).
Contraintes (Invariants)
- Walkable : une case avec
content_type bâtiment/animal est généralement walkable=false pour les visiteurs (sauf exceptions design).
- last_visit_time : mis à jour uniquement quand un visiteur “observe” réellement (pas juste traverse) si la mécanique de “visite” est distincte.
- movement_cost : > 1.0 sur herbe/boue, = 1.0 sur chemins, < 1.0 interdit (évite vitesse infinie).
Caractéristiques Initiales
| Caractéristique |
Valeur Initiale |
| Dernière Visite |
Création du zoo |
| Qualité |
100 |
Scores Initiaux
Passages : 0 (Heatmap de fréquentation).
Propreté : 100 (aucun déchet).
Coût de marche : 1.2 (herbe) par défaut, 1.0 (chemin) si la case est convertie.
2. Cycles de Vie et Apparition
Conditions d'Apparition
Génération zoo.
Conditions de Disparition
Jamais : Une case ne disparaît pas, elle change juste de contenu.
Hérédité
Qualité du Sol : Un sol bien entretenu (fertilisé) garde ses bonus après un reset partiel.
3. Impacts Environnementaux
Impact Température
Voir case_generique.md.
Impact Milieu (Biome)
Voir case_generique.md.
Impact Saisons
Neige : La case devient blanche en hiver (si T° < 0).
Impact Heure / Jour-Nuit
Ombres : Les ombres des objets sur la case tournent avec le soleil.
4. Impacts Biologiques et Sociaux
Impact Reproduction
Lieu de rencontre : Les cases "Buissons" favorisent les rencontres.
Impact Mort
Lieu de décès : Une case où un animal est mort garde une "odeur" (malus stress) pendant 24h.
Impact Nourriture
Pâturage : Une case herbeuse peut être broutée (devient terreuse).
Impact Attractivité (Visiteurs/Animaux)
Vue : Une case "Point de Vue" (hauteur) augmente l'attractivité des animaux alentour.
Impact Valeur
Emplacement : Une case proche de l'entrée vaut plus cher (emplacement premium pour boutiques).
5. Impacts Logistiques et Économiques
Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
Revêtement : Herbe (Lent), Terre (Moyen), Pavés (Rapide).
Dépenses (Boutiques/Visiteurs)
Nettoyage : Coût si la case est sale (déchets visiteurs).
Trajet Visiteurs
Obstacle : Une case occupée par un bâtiment ou de l'eau est infranchissable (sauf pont).
6. Événements
Événements du Jeu / Carte / Zoo / Ville / Visiteur
- Passage Visiteur : Met à jour
last_visit_time.
- Salissure : Apparition d'un déchet.
7. Progression
Tableau des Upgrades
Voir achat_upgrade_case.md.
8. Logique et Interfaces
Pseudo-code Impacts
Messages d'Infos / Alerte
| ID |
Niveau |
Message |
CASE_DIRTY |
Info |
"Une case est sale." |
PATH_BLOCKED |
Warning |
"Chemin bloqué : les visiteurs recalculent leur trajet." |
ANIMAL_NOT_VISITED |
Warning |
"Un animal n'a pas été observé depuis longtemps." |
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.
1. Expérience Utilisateur (UX)
Sélection (Action)
Description UX : Clic sur une case zoo.
Description UI : Highlight + Menu contextuel adapté au contenu (Animal -> Stats, Bâtiment -> Upgrade, Vide -> Construire).
Emplacement : Grille.
Intégration : Standard.
Navigation : Clic.
Événements : SELECT_ZOO_CASE.
Assets
- Musiques : Son "Click".
- Sons :
select_soft.mp3.
- Graphiques : Cadre sélection.
- Images : Icône Menu Contextuel.
- Vidéos : Effet de sélection (contour brillant).
- Animations : Rebondissement léger du contenu.
- Couleurs : Blanc.
- Textes : "Case [X,Y]".
- Formes : Carré.
Définition
| Champ |
Valeur |
| Concept |
Case “zoo” : spécialisation de case_generique avec contraintes d’occupation, 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 l’action 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 |