# Spécifications : Case de Monde (Générique) ## Définition Case spécifique à la grille du monde, servant de support aux sites et aux compteurs. ## Types de Contenu Possibles - **Sites** : Zoo (Joueur/Bot), Ville, Laboratoire. - **Compteurs** : Bébés à vendre, Animaux à vendre, Labos, Zoos, Villes. - **Zones Fonctionnelles** : Agrandissement carte, Camion (zone de dépôt/vente). ## Propriétés Spécifiques - **Fixité** : Le contenu des cases monde est généralement fixe (sites) ou fonctionnel (zones d'interface). - **Navigation** : Les camions naviguent de case en case entre les sites. # Annexes Techniques ## 1. Données et États ### Modèle de Données (JSON) Hérite de `Case (Générique)`. Pas de propriétés supplémentaires spécifiques. ### Caractéristiques Initiales **Vide** : Par défaut, une case monde est du vide spatial (ou océan) sauf si un site est généré dessus. ### Scores Initiaux **Trafic** : 0 camions passés. ## 2. Cycles de Vie et Apparition ### Conditions d'Apparition Génération monde. ### Conditions de Disparition **Jamais** : La grille est immuable. ### Hérédité **Routes** : Les chemins empruntés fréquemment deviennent des "routes" visibles (bonus vitesse) au fil des resets. ## 3. Impacts Environnementaux ### Impact Température **Météo Locale** : La case porte la météo de la région (Nuage, Pluie). ### Impact Milieu (Biome) **Fond** : Définit le coût de traversée (Montagne > Plaine). ### Impact Saisons **Visuel** : La case change de couleur selon la saison globale. ### Impact Heure / Jour-Nuit **Luminosité** : S'assombrit la nuit. ## 4. Impacts Biologiques et Sociaux ### Impact Reproduction **Faune locale** : Reproduction simulée en arrière-plan pour les animaux sauvages (décoratif). ### Impact Mort **Cycle naturel** : Les animaux sauvages meurent et disparaissent. ### Impact Nourriture **Ressources** : Certaines cases contiennent des buissons de baies. ### Impact Attractivité (Visiteurs/Animaux) **Influence** : Si proche d'une ville, la case a une "Valeur de Passage" élevée. ### Impact Valeur **Terrain** : Prix fictif au m² (pour le lore). ## 5. Impacts Logistiques et Économiques ### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite) **Frottement** : Ralentit les camions selon le biome (Sable = lent). ### Dépenses (Boutiques/Visiteurs) **Péage** : Traverser certaines zones coûte des pièces. ### Trajet Visiteurs **Flux** : Visualisation des flux migratoires. ## 6. Événements ### Événements du Jeu / Carte / Zoo / Ville / Visiteur * **Météo** : Orage sur la case. ## 7. Progression ### Tableau des Upgrades | Niveau | Coût | Effet | | :--- | :--- | :--- | | 1 | 1000 | Route pavée (Vitesse +10%) | ## 8. Logique et Interfaces ### Pseudo-code Impacts ```javascript function getTravelCost(case): return baseCost * biomeMultiplier ``` ### Messages d'Infos / Alerte | ID | Niveau | Message | | :--- | :--- | :--- | | `ZONE_DISCOVERED` | Info | "Nouvelle zone découverte !" | # 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) ### Survol (Passif) **Description UX** : Explorer la carte du monde. **Description UI** : Curseur main. Tooltip au survol des sites. **Emplacement** : Carte Monde. **Intégration** : Standard. **Navigation** : Mouse move. **Événements** : `HOVER_WORLD_CASE`. #### Assets - **Musiques** : Thème "Exploration". - **Sons** : `hover_soft.mp3`. - **Graphiques** : Highlight case. - **Images** : Texture Biome. - **Vidéos** : Effet de brillance au survol. - **Animations** : Légère surbrillance. - **Couleurs** : Blanc (Alpha). - **Textes** : Coordonnées X,Y. - **Formes** : Carré/Hexagone. ## Définition | Champ | Valeur | |---|---| | Concept | Case “monde” : tuile de la grille globale supportant sites fixes (zoo/ville/labo) et widgets fonctionnels (compteurs, upgrade carte). | | Rôle | Assurer une base de navigation camion (node du graphe), afficher des informations au survol, et porter des modificateurs de traversée (biome). | | Portée | Carte du monde, immuable structurellement (les cases persistent), contenu majoritairement fixe. | | Contrainte | Routes et coûts de déplacement calculés à la volée (pas de cache/mémorisation) ; aucun péage/incidence silencieux (message + event). | ## Fonctions (tableau détaillé) | Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité | |---|---|---|---|---|---| | Survol case monde | hover | x,y | tooltip | affiche coord + type | Event `HOVER_WORLD_CASE` | | Résoudre contenu | rendu | case | marker | type site/compteur | Event `WORLD_CASE_RENDERED` | | Calculer coût traversée | path camion | biome | cost | multiplicateur biome | Event `WORLD_TRAVEL_COST_COMPUTED` | | Marquer route visible | trafic | count | route flag | si trafic > seuil | Event `WORLD_ROUTE_MARKED` | ## Icone de base | Élément | Spécification | |---|---| | Représentation | Tuile + pin | | Couleur dominante | selon biome | | Variantes | `icon_world_tile.png`, `icon_world_pin.png` | | États | normal, highlighted, route | ## Interactions (tableau détaillé) | Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages | |---|---|---|---|---|---| | Hover | Consultation | - | survol | tooltip | - | | Clic site | Navigation | case contient site | clic | ouvre panneau | `ZONE_NOT_EXPLORED` | ## Annexes Techniques ### 1. Données et États (tableau détaillé) | Donnée / État | Type | Exemple | Source | Contraintes | |---|---|---|---|---| | `content.site_id` | uuid_v4 \| null | `uuid_v4` | DB | null si vide | | `content.site_type` | enum \| null | `city` | DB | `zoo/city/lab` | | `content.counter_type` | enum \| null | `animals_for_sale` | DB | compteur | | `traffic.trucks_passed` | int | 0 | DB | cumul | | `travel_cost_multiplier` | float | 1.0 | config | >=1.0 | #### Caractéristiques Initiales (tableau détaillé) | Caractéristique | Valeur initiale | Unité | Notes | |---|---:|---|---| | Trafic | 0 | count | init | | Péage | 0 | % | par défaut | #### Scores Initiaux (tableau détaillé) | Score | Valeur initiale | Plage | Impact | |---|---:|---|---| | Valeur de passage | 0 | 0..100 | influence routes | ### 2. Cycles de Vie et Apparition (tableau détaillé) | Phase | Déclencheur | Entrées | Sorties | Invariants | |---|---|---|---|---| | Génération | monde | seed | cases | immuables | | Marquage routes | trafic | count | flag | observable | #### Conditions d'Apparition (tableau détaillé) | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | Génération monde | true | est | case existe | #### Conditions de Disparition (tableau détaillé) | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | - | - | - | jamais | #### Hérédité (tableau détaillé) | Élément | Hérité | Règle | |---|---|---| | Routes visibles | Oui | persist reset | ### 3. Impacts Environnementaux #### Impact Température (tableau détaillé) | Condition | Effet | Notes | |---|---|---| | Orage | vitesse camion - | météo | #### Impact Milieu (Biome) (tableau détaillé) | Biome | Effet | Notes | |---|---|---| | montagne | cost + | traversée | #### Impact Saisons (tableau détaillé) | Saison | Effet | Notes | |---|---|---| | hiver | neige | visuel | #### Impact Heure / Jour-Nuit (tableau détaillé) | Période | Effet | Notes | |---|---|---| | nuit | luminosité - | rendu | ### 4. Impacts Biologiques et Sociaux #### Impact Reproduction (tableau détaillé) | Facteur | Effet sur taux | Condition | |---|---|---| | faune décor | 0 | visuel | #### Impact Mort (tableau détaillé) | Cas | Effet | Condition | |---|---|---| | cycle naturel | 0 | décor | #### Impact Nourriture (tableau détaillé) | Ressource | Effet | Condition | |---|---|---| | baies | décor | région | #### Impact Attractivité(Visiteurs (tableau détaillé) | Action/État | Gain | Rayon | Notes | |---|---:|---:|---| | proche ville | valeur passage + | monde | trafic | #### Impact Attractivité Animaux) (tableau détaillé) | Action/État | Effet animaux | Condition | |---|---|---| | - | neutre | - | #### Impact Valeur (tableau détaillé) | Facteur | Variation | Condition | |---|---:|---| | lore terrain | + | descriptif | ### 5. Impacts Logistiques et Économiques #### Vitesse (Camion) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | frottement | vitesse - | sable | #### Vitesse (Nurserie) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | neutre | - | #### Vitesse (Accueil) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | neutre | - | #### Vitesse (Recherche) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | route pavée | +10% | upgrade | #### Vitesse (Labo) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | neutre | - | #### Vitesse (Visite) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | flux migratoire | visuel | overlay | #### Dépenses (Billeterie) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | péage | 1 | % | zones | #### Dépenses (Boutiques) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 1 | coins | lore | #### Dépenses (Visiteurs) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 1 | coins | lore | #### Dépenses (Employés) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 1 | coins | lore | #### Dépenses (Boutiques) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | section dupliquée | 1 | coins | conservée | #### Dépenses (Nurseries) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 1 | coins | lore | #### Dépenses (Nourriture) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 1 | coins | lore | #### Dépenses (Acceuil des animaux) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 1 | coins | lore | #### Dépenses (Camion) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | usure | 1 | coins | lore | #### Trajet Visiteurs ##### Trajet Visiteurs vers/depuis la ville (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | ville | zoo | attractivité | flux | ##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | zoo | animaux | visite | - | ##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | zoo | boutiques | besoins | - | ##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | zoo | sortie | fin | - | ### 6. Événements #### Événements du Jeu (tableau détaillé) | Event | Déclencheur | Payload | Effet | |---|---|---|---| | `ZONE_DISCOVERED` | reveal | coord | visible | | `WORLD_ROUTE_MARKED` | trafic | count | route | #### Événements du Carte (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `HOVER_WORLD_CASE` | hover | tooltip | #### Événements du Zoo (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `WORLD_CASE_RENDERED` | render | marker | #### Événements du Ville / Visiteur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `WORLD_TRAVEL_COST_COMPUTED` | route | cost | #### Événements du Visiteur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `ZONE_NOT_EXPLORED` | click | denied | #### Événements du Joueur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `PLAYER_CLICKS_SITE` | click | open | ### 7. Progression #### Tableau des Upgrades (tableau détaillé) | Niveau | Coût | Effet | Débloque | |---|---:|---|---| | 1 | 1000 | route pavée +10% | speed | ### 8. Logique et Interfaces #### Pseudo-code Impacts (tableau détaillé) | Fonction | Entrées | Sorties | Notes | |---|---|---|---| | `getTravelCost` | case | float | multiplicateur | #### Messages d'Infos / Alerte (tableau détaillé) | ID | Niveau | Message | Condition | |---|---|---|---| | `ZONE_DISCOVERED` | Info | "Nouvelle zone découverte." | reveal | | `ZONE_NOT_EXPLORED` | Warning | "Zone non explorée." | fog | ## Annexes UX/UI ### 1. Expérience Utilisateur (UX) #### Description UX (tableau détaillé) | Parcours | But | Friction | Réduction clics | |---|---|---|---| | Explorer | trouver sites | info | tooltip sur hover | #### Description UI (tableau détaillé) | Composant | Contenu | États | |---|---|---| | Highlight | outline | hover | | Tooltip | coord/type | visible | #### Emplacement (tableau détaillé) | Zone UI | Position | Notes | |---|---|---| | Carte monde | cases | iso | #### Intégration (tableau détaillé) | Intégration | Contrat | Notes | |---|---|---| | `carte_monde.md` | usage | world | #### Navigation (tableau détaillé) | Action | Chemin | Résultat | |---|---|---| | Hover | souris | tooltip | #### Événements (tableau détaillé) | Event UI | Déclencheur | Effet | |---|---|---| | `HOVER_WORLD_CASE` | hover | tooltip | #### Assets Skinables ##### Musiques (tableau détaillé) | Asset | Usage | Durée | Notes | |---|---|---:|---| | `world_exploration_loop.mp3` | monde | loop | discret | ##### Sons (tableau détaillé) | Asset | Usage | Volume | |---|---|---| | `hover_soft.mp3` | hover | bas | ##### Graphiques (tableau détaillé) | Asset | Usage | Contraintes | |---|---|---| | `world_tile_highlight.png` | outline | alpha | ##### Images (tableau détaillé) | Asset | Usage | |---|---| | `biome_texture.png` | fond | ##### Vidéos (tableau détaillé) | Asset | Usage | Durée | |---|---|---:| | `shine_hover.webm` | hover | 0.6s | ##### Animations (tableau détaillé) | Animation | Déclencheur | Notes | |---|---|---| | glow | hover | léger | ##### Couleurs (tableau détaillé) | Token | Valeur | Usage | |---|---|---| | `hover_white` | #FFFFFF | outline | ##### Textes (tableau détaillé) | Clé | FR | EN | |---|---|---| | `world.coords` | Coordonnées X,Y | Coordinates X,Y | ##### Formes (tableau détaillé) | Élément | Forme | Notes | |---|---|---| | Tuile | losange | iso |