# Spécifications : Carte du Monde

## Définition
La carte du monde est l'espace multijoueur où sont situés les zoos des joueurs, des bots, les villes et les laboratoires.

## Structure
- **Grille** : Fixe, avec des positions définies pour chaque entité.
- **Fond** : Reprend les biomes de la carte du zoo (Prairie/Océan/Montagne) en fond.
- **Zoom** : Niveau de zoom dépendant de l'upgrade "Agrandir la carte". Pas de pan manuel.

## Contenu Initial (Lancement)
- 1 Case Agrandissement de la carte (Payable en unités de recherche)
- 1 Compteur de bébés à vendre
- 1 Compteur d'animaux à vendre
- 1 Compteur de laboratoires
- 1 Compteur de zoos
- 1 Compteur de villes
- 1 Case Accueil nouveaux animaux (Haut gauche)
- 1 Case Nourriture générale (Haut gauche)
- 1 Case Camion (Haut gauche)
- 24 Cases de terrain (3 couleurs différentes)

## Entités Visibles
- **Zoos Joueurs** : Nom, icône, indicateurs.
- **Zoos Bots** : Identiques aux joueurs.
- **Villes** : Sources de visiteurs.
- **Laboratoires** : Sources d'œufs/bébés rares.
- **Camions** : En transit entre les entités.

## Mécaniques
- **Navigation** : Vue d'ensemble du marché.
- **Interactions** : Achat d'œufs/animaux via le camion.

# Annexes Techniques

## 1. Données et États
### Modèle de Données (JSON)
```json
{
  "id": "world_map",
  "width": "integer (très grand)",
  "height": "integer",
  "sites": [ { "id": "uuid", "type": "zoo|city|lab", "pos": { "x": "int", "y": "int" } } ],
  "trucks": [ { "id": "uuid", "owner_id": "uuid", "pos": { "x": "float", "y": "float" }, "target": "uuid" } ],
  "iso_x": "integer",
  "iso_y": "integer",
  "z_index": "integer"
}
```

### Caractéristiques Initiales
| Caractéristique | Valeur Initiale |
| :--- | :--- |
| Rayon Visible | 500km (simulé) |
| Nb Villes | 10 (dans rayon départ) |
| Nb Labos | 2 (dans rayon départ) |

### Scores Initiaux
**Score Exploration** : 0% (Carte dévoilée).

## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Unique (Singleton serveur).

### Conditions de Disparition
Jamais.

### Hérédité
**Cartographie** : Les zones découvertes restent visibles après un reset (Connaissance acquise).

## 3. Impacts Environnementaux
### Impact Température
**Météo Globale** : Nuages, Pluie ou Neige visibles sur la carte (Effet visuel + Gameplay).

### Impact Milieu (Biome)
**Diversité** : Les biomes influencent le type de zoo bot (ex: Zoo Polaire au Nord, Zoo Tropical à l'Équateur).

### Impact Saisons
**Visuel** : La carte change de teinte (Blanc en Hiver, Orange en Automne, Vert vif au Printemps).

### Impact Heure / Jour-Nuit
**Cycle Jour/Nuit** : Assombrissement global. Les villes et zoos s'allument (Pixel Art lumineux).

## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
**Migration** : En saison des amours, des troupeaux sauvages (décoratifs) migrent sur la carte.

### Impact Mort
**Cimetière des Éléphants** : Lieu légendaire caché (Easter Egg) donnant un bonus si découvert.

### Impact Nourriture
**Ressources** : Les villes produisent de la nourriture (Champs autour des villes).

### Impact Attractivité (Visiteurs/Animaux)
**Rayonnement** : Un zoo très attractif (> 10k visiteurs) émet un halo doré visible de loin.

### Impact Valeur
**Économie** : Les prix du marché fluctuent selon l'offre globale (Loi de l'offre et la demande simulée).

## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
**Voyage Rapide** : Coût en pièces pour téléportation instantanée (si module "Héliport" débloqué).

### Dépenses (Boutiques/Visiteurs)
**Péages** : Taxe de passage sur certaines routes commerciales (1% valeur cargaison).

### Trajet Visiteurs
Calcul des distances Ville -> Zoo pour l'attractivité. Les visiteurs prennent le chemin le plus court.

## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
*   **Spawn Bot** : Apparition nouveau zoo bot.
*   **Spawn Truck** : Camion visible.
*   **Embouteillage** : Ralentissement sur les routes principales.

## 7. Progression
### Tableau des Upgrades
Voir `agrandissement_carte.md`.

## 8. Logique et Interfaces
### Pseudo-code Impacts
```javascript
function updateWorldMap(map, deltaTime):
  for truck in map.trucks:
    moveTruck(truck, deltaTime)
    if hasArrived(truck):
      processTransaction(truck)

  updateWeather(map)
  updateDayNightCycle(map)
```

### Messages d'Infos / Alerte
| ID | Niveau | Message |
| :--- | :--- | :--- |
| `MAP_EVENT` | Info | "Un événement météo touche la région Nord." |

# 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)
### Vue Globale (Passif)
**Description UX** : Le joueur voit les autres acteurs et les flux économiques.
**Description UI** : Carte style "Google Maps" simplifiée ou grille hexagonale. Icônes (Maisons, Gratte-ciels, Fioles). **Flux** : Petites particules (voitures/points) voyageant entre les villes et les zoos attractifs.
**Emplacement** : Écran Carte Monde.
**Intégration** : Plein écran.
**Navigation** : Bouton Retour Zoo.
**Événements** : `OPEN_WORLD_MAP`.

#### Assets
- **Musiques** : Thème Aventure/Voyage.
- **Sons** : Vent, Bruit lointain trafic.
- **Graphiques** : Fond carte (Biomes flous).
- **Images** : Icônes Sites.
- **Vidéos** : Nuages dynamiques (shader).
- **Animations** : Camions qui bougent.
- **Couleurs** : Desaturées (pour faire ressortir les icônes).
- **Textes** : Noms des villes/zoos.
- **Formes** : Pins/Marqueurs.

### Brouillard de Guerre (Passif)
**Description UX** : Les zones inexplorées sont cachées.
**Description UI** : Nuages ou zone sombre en périphérie.
**Emplacement** : Bords Carte.
**Intégration** : Mask.
**Navigation** : Zoom-out via upgrade carte ; au clic sur une zone masquée, afficher un tooltip “Zone non explorée”.
**Événements** : `FOG_HOVER`, `FOG_CLICK_BLOCKED`

#### Assets
- **Musiques** : `ambience_fog_soft.mp3` (optionnel, très discret).
- **Sons** : `fog_whoosh.mp3` (au reveal), `ui_denied.mp3` (clic zone bloquée).
- **Graphiques** : Texture Nuages.
- **Images** : Masque alpha (bords flous).
- **Vidéos** : Effet de brume (particules).
- **Animations** : Nuages qui dérivent lentement.
- **Couleurs** : Blanc/Gris.
- **Textes** : "Zone Inexplorée".
- **Formes** : Zone non cliquable.
