Files
builazoo/docs/specs/case_monde.md
2026-03-05 04:01:29 +01:00

554 lines
15 KiB
Markdown

# 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 |