# Spécifications : Camion

## Définition
Véhicule de transport pour les achats et les ventes d'animaux/œufs.

## Fonctionnalités
- **Transport** : Effectue les trajets entre le zoo du joueur et les autres sites (zoos, labo) sur la Carte du Monde.
- **Vente** : Zone de dépôt sur la carte du zoo pour mettre un animal en vente.
- **Achat** : Zone de réception sur la carte du monde pour acheter une offre.

## Comportement
- **Trajet** : Aller-retour physique sur la carte du monde. La durée dépend de la distance et du niveau du camion.
- **Capacité** : Transporte un animal/œuf à la fois (par unité de camion).

## Niveaux d'Amélioration (7 niveaux)
- **Coût** : Progressif par palier.
- **Effet** : Augmente la vitesse de déplacement. Réduit la dégradation du score de reproduction due au transport (stress).
- **Ratio** : 1 unité couvre 1 camion actif.

# Annexes Techniques

## 1. Données et États
### Modèle de Données (JSON)
```json
{
  "id": "uuid",
  "owner_id": "uuid",
  "level": "integer (1-7)",
  "status": "enum ('idle', 'moving_to_target', 'moving_home')",
  "cargo": "animal_uuid | null",
  "position": { "x": "float", "y": "float" },
  "target_site_id": "uuid | null",
  "iso_x": "integer",
  "iso_y": "integer",
  "z_index": "integer"
}
```

### Caractéristiques Initiales
| Caractéristique | Valeur Initiale (Niv 1) |
| :--- | :--- |
| Vitesse | 50 km/h (simulé) |
| Confort | Basique (Stress normal) |

### Scores Initiaux
**Kilométrage** : 0 km.

## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Démarrage jeu.

### Conditions de Disparition
**Panne** : Immobilisation temporaire si pas d'entretien (Réparation requise).

### Hérédité
**Garage** : Conserve les upgrades de vitesse après reset (Véhicule de fonction).

## 3. Impacts Environnementaux
### Impact Température
**Surchauffe moteur** : Si T° > 40°C, vitesse -10%.
**Gel** : Si T° < -10°C, démarrage lent (+5s).

### Impact Milieu (Biome)
**Tout-terrain** : Bonus vitesse sur terre si pneus adaptés (Upgrade). Ralenti sur Sable.

### Impact Saisons
**Hiver** : Vitesse réduite de 20% (Neige).
**Automne** : Risque de boue (Vitesse -5%).

### Impact Heure / Jour-Nuit
**Phares** : Vitesse normale la nuit (si phares débloqués Niv 2). Sinon -30% (Prudence).

## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
**Stress Transport** : Réduit temporairement la fertilité de l'animal transporté.
| Niveau Camion | Perte Fertilité / Heure Trajet |
| :--- | :--- |
| 1 | -10% |
| 7 | -1% |

### Impact Mort
Si trajet trop long (> 24h) sans confort, risque de mort (Faim/Stress).

### Impact Nourriture
**Carburant** : Consomme de l'essence (coût au km) ou électrique (recharge au zoo).

### Impact Attractivité (Visiteurs/Animaux)
**Design** : Un beau camion (Skin) fait "Pro" (+1 Attractivité).

### Impact Valeur
**Occasion** : Valeur de revente du camion (fictive, pour score richesse).

## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
**Vitesse Déplacement** :
| Niveau | Vitesse |
| :--- | :--- |
| 1 | 50 km/h |
| 2 | 70 km/h |
| 3 | 90 km/h |
| 4 | 110 km/h |
| 5 | 130 km/h |
| 6 | 150 km/h |
| 7 | 200 km/h (Avion/Hélico ?) |

### Dépenses (Boutiques/Visiteurs)
**Entretien** : 10 pièces tous les 1000 km.

### Trajet Visiteurs
**Klaxon** : Écarte les visiteurs sur le passage (au zoo) pour éviter les accidents.

## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
*   **Départ** : Camion part.
*   **Arrivée** : Camion revient avec marchandise.
*   **Crevaison** : Retard aléatoire.

## 7. Progression
### Tableau des Upgrades
| Niveau | Coût (Pièces) | Vitesse | Confort | Temps Construction |
| :--- | :--- | :--- | :--- | :--- |
| 1 | 100 | 50 | Bas | 0s |
| 2 | 200 | 70 | Moyen | 0s |
| 3 | 400 | 90 | Moyen | 0s |
| 4 | 800 | 110 | Bon | 0s |
| 5 | 1600 | 130 | Bon | 0s |
| 6 | 3200 | 150 | Excellent | 0s |
| 7 | 6400 | 200 | Parfait | 0s |

## 8. Logique et Interfaces
### Pseudo-code Impacts
```
function updateTruck(truck, deltaTime):
  if truck.status == 'moving':
    distance = truck.speed * deltaTime
    moveTowardsTarget(truck, distance)

    if truck.cargo:
      truck.cargo.stress += baseStress * (1.0 - truck.comfortFactor) * deltaTime
```

### Messages d'Infos / Alerte
| ID | Niveau | Message |
| :--- | :--- | :--- |
| `TRUCK_ARRIVED` | Info | "Le camion est revenu au zoo." |
| `TRUCK_DELAY` | Info | "Le camion a du retard (Météo/Panne)." |

# 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)
### Envoi en Mission (Action)
**Description UX** : Le joueur achète un animal sur la carte du monde. Le camion part automatiquement le chercher.
**Description UI** : Le camion quitte sa case au zoo (animation départ) et apparaît sur la carte du monde, se déplaçant vers la cible.
**Emplacement** : Zoo -> Carte Monde.
**Intégration** : Transition fluide.
**Navigation** : Achat -> Vue Carte Monde (auto ou manuelle).
**Événements** : `TRUCK_DEPART`.

#### Assets
- **Musiques** : Bruit de moteur au démarrage.
- **Sons** : `engine_start.mp3`, `horn.mp3`.
- **Graphiques** : Sprite Camion (Vue dessus et côté).
- **Images** : Carte routière (Icône).
- **Vidéos** : Zoom caméra sur le camion qui part.
- **Animations** : Roues qui tournent, fumée échappement.
- **Couleurs** : Jaune/Noir (Chantier) ou Blanc (Livraison).
- **Textes** : "En route vers [Destination]".
- **Formes** : Flèche de direction.

### Suivi Trajet (Passif/Actif)
**Description UX** : Le joueur peut suivre le camion sur la carte du monde.
**Description UI** : Icône camion qui bouge sur la ligne de trajet. Timer estimé au survol.
**Emplacement** : Carte Monde.
**Intégration** : Overlay.
**Navigation** : Clic Camion -> Info Trajet.
**Événements** : `TRACK_TRUCK`.

#### Assets
- **Musiques** : Sonar "Ping" régulier.
- **Sons** : Bruit moteur continu (faible).
- **Graphiques** : Ligne pointillée (trajet).
- **Vidéos** : Ligne de trajet qui se dessine.
- **Animations** : Déplacement linéaire.
- **Couleurs** : Ligne Blanche.
- **Textes** : "Arrivée dans MM:SS".
- **Formes** : Cercle autour du camion.

### Activité d'Attente (Gameplay)
**Description UX** : Pendant le trajet (temps mort), le joueur peut cliquer sur le camion pour le "booster" ou nettoyer le pare-brise (mini-jeu simple) pour gagner quelques secondes ou de l'XP.
**Description UI** : Zoom sur le camion. Taches apparaissent, clic pour nettoyer.
**Emplacement** : Modal Camion (en trajet).
**Intégration** : Mini-jeu optionnel.
**Navigation** : Clic Camion -> Mini-jeu.
**Événements** : `CLEAN_WINDSHIELD`.

#### Assets
- **Musiques** : Radio camion (musique lo-fi).
- **Sons** : `wipe.mp3` (essuie-glace). **Design ASMR** : Bruit d'éponge mouillée ou de raclette satisfaisant.
- **Graphiques** : Taches de boue/insectes.
- **Images** : Vue cockpit simplifiée.
- **Vidéos** : Reflet du soleil sur le pare-brise.
- **Animations** : Essuie-glace qui bouge.
- **Couleurs** : Marron (Boue), Vert (Insectes).
- **Textes** : "Boost !"
- **Formes** : Éponge (Curseur).

### Arrivée (Passif)
**Description UX** : Le camion revient au zoo et se gare.
**Description UI** : Animation d'arrivée. Notification "Camion rentré".
**Notification Push** : "Le camion est de retour !" (si application fermée).
**Emplacement** : Case Camion.
**Intégration** : Fin cycle.
**Navigation** : Automatique (Cinématique).
**Événements** : `TRUCK_ARRIVE`.

#### Assets
- **Musiques** : Bruit de freins pneumatiques "Pschhh".
- **Sons** : `truck_stop.mp3`.
- **Graphiques** : Traces de pneus au sol.
- **Vidéos** : Fumée d'échappement qui se dissipe.
- **Animations** : Freinage.
- **Couleurs** : Rouge (Feux stop).
- **Textes** : "Livraison effectuée".
- **Formes** : Carré de stationnement.

## Définition

| Champ | Valeur |
|---|---|
| Concept | Unité de transport “Camion” : véhicule qui exécute des missions (achat/vente/transfert) entre sites (carte monde) et le zoo. |
| Rôle | Relier les transactions (enchères/achats/ventes) à une logistique observable (trajet, délais, incidents), et injecter le cargo dans `accueil_animaux` / `nurserie` selon le cas. |
| Portée | Entité persistante (par joueur/zoo) avec `level`, `status`, `cargo`, `target_site_id`. |
| Contrainte | ETA et trajectoire calculés à la volée, sans cache/mémorisation ; aucun fallback silencieux (cargo manquant => erreur + log). |

## Fonctions (tableau détaillé)

| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|---|---|---|---|---|---|
| Démarrer mission | achat/vente | `target_site_id`, cargo | status moving | refuse si déjà en mission | Event `TRUCK_DEPART` |
| Calculer durée | départ | distance, level | ETA | vitesse table par level + météo | Event `TRUCK_ETA_COMPUTED` |
| Déplacer sur carte | tick lazy | now, route | position | interpolation | Event `TRUCK_POSITION_UPDATED` |
| Appliquer stress cargo | tick | cargo, confort | fertilité/stress | perte fertilité/h selon level | Event `CARGO_STRESS_APPLIED` |
| Gérer incidents | tick | météo, entretien | delay | crevaison/panne explicités | Event `TRUCK_DELAYED` |
| Arriver au site | ETA atteint | - | status arrived | charge/décharge | Event `TRUCK_ARRIVED_SITE` |
| Retourner au zoo | fin opération | - | status moving_home | trajet retour | Event `TRUCK_RETURNING` |
| Décharger au zoo | arrivée | cargo | slot réception | adultes → `accueil_animaux`, œufs/bébés → `nurserie` (selon type) | Event `DELIVERY_COMPLETE` |
| Mini-jeu attente | clic camion | - | bonus léger | bonus borné, non obligatoire | Event `CLEAN_WINDSHIELD` |

## Icone de base

| Élément | Spécification |
|---|---|
| Représentation | Camion isométrique + flèche direction |
| Couleur dominante | Jaune/noir ou blanc |
| Variantes | `truck_lvl_{1..7}_dir_{N,E,S,W}.png` |
| États | `idle`, `moving`, `delayed`, `arrived`, `cargo_loaded` |

## Interactions (tableau détaillé)

| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|---|---|---|---|---|---|
| Envoyer en mission | Action | camion idle | achat → auto départ | mission lancée | `TRUCK_BUSY` |
| Suivre trajet | Consultation | mission active | clic icône | panel ETA | - |
| Ouvrir mini-jeu | Action | mission active | clic camion | modal mini-jeu | - |
| Voir arrivée | Consultation | mission finie | notif | focus cargo | - |

## Personnages contextuels (événements & interaction)
Selon le contexte de la mission, le camion peut afficher un personnage contextuel :
- **Personnel d’accueil (déchargement au zoo)** : voir `personnel_accueil.md` (cargo adulte).
- **Nurse (déchargement vers nurserie)** : voir `nurse.md` (cargo œuf/bébé).
- **Laborantin (achat depuis le laboratoire)** : voir `laborantin.md` (refus/gating/validation).
- **Agent de sécurité (incident de trajet)** : voir `agent_securite.md` (retard/menace si la cause est “sécurité”).

### Déclencheurs (exemples)
| Event | Condition | Personnage | Effet UI |
|---|---|---|---|
| `TRUCK_DEPART` | mission démarrée | (option UI) | état “en route” + destination |
| `TRUCK_DELAYED` | incident détecté | sécurité | bulle “Retard” + cause + CTA “Voir trajet” |
| `TRUCK_ARRIVE` / `DELIVERY_COMPLETE` | arrivée zoo | accueil ou nurse | bulle “Livraison effectuée” + deep-link vers `accueil_animaux`/`nurserie` selon cargo |
| `TRUCK_ARRIVED_SITE` | arrivée site | laborantin (si site labo) | bulle “Offre disponible” + CTA “Ouvrir labo” |

### Skins & thèmes
Le rendu des personnages suit `theme.md` et `inventaire_skins.md` (uniformes + accessoires). Le camion lui-même reste skinable via `inventaire_skins.md`.

## Annexes Techniques

### 1. Données et États (tableau détaillé)

| Donnée / État | Type | Exemple | Source | Contraintes |
|---|---|---|---|---|
| `id` | uuid_v4 | `uuid_v4` | DB | - |
| `owner_id` | uuid_v4 | `uuid_v4` | DB | - |
| `level` | int | 1 | DB | 1..7 |
| `status` | enum | `idle` | DB | `idle/moving_to_target/moving_home/delayed` |
| `cargo.type` | string \| null | `animal` | DB | null si vide |
| `cargo.id` | uuid_v4 \| null | `uuid_v4` | DB | - |
| `position.x` | float | 10.2 | calcul/DB | carte monde |
| `position.y` | float | 12.7 | calcul/DB | carte monde |
| `target_site_id` | uuid_v4 \| null | `uuid_v4` | DB | - |
| `iso_x` | int | 120 | DB/calcul | si rendu zoo |
| `iso_y` | int | 88 | DB/calcul | si rendu zoo |
| `z_index` | int | 12088 | calcul | profondeur |
| `maintenance.km_since_service` | float | 0 | DB | - |
| `timers.departed_at` | timestamp \| null | - | DB | UTC |
| `timers.eta_at` | timestamp \| null | - | calcul/DB | UTC |

#### Caractéristiques Initiales (tableau détaillé)

| Caractéristique | Valeur initiale | Unité | Notes |
|---|---:|---|---|
| Vitesse (lvl1) | 50 | km/h | simulé |
| Capacité | 1 | cargo | par camion |
| Confort | 0.0 | score | réduit stress |

#### Scores Initiaux (tableau détaillé)

| Score | Valeur initiale | Plage | Impact |
|---|---:|---|---|
| Kilométrage | 0 | 0..∞ | entretien |
| Retards cumulés | 0 | 0..∞ | info joueur |

### 2. Cycles de Vie et Apparition (tableau détaillé)

| Phase | Déclencheur | Entrées | Sorties | Invariants |
|---|---|---|---|---|
| Apparition | début jeu | - | camion idle | 1 camion min |
| Mission | achat/vente | cargo+site | moving | exclusif |
| Arrivée | ETA | - | arrived | décharge |
| Retour | fin op | - | moving_home | - |
| Idle | arrivée zoo | - | idle | cargo null |

#### Conditions d'Apparition (tableau détaillé)

| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Début partie | true | est | camion créé |

#### Conditions de Disparition (tableau détaillé)

| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| - | - | - | camion persiste |

#### Hérédité (tableau détaillé)

| Élément | Hérité | Règle |
|---|---|---|
| Upgrades | Oui | persiste |
| Cargo | Non | mission-only |

### 3. Impacts Environnementaux

#### Impact Température (tableau détaillé)

| Condition | Effet camion | Notes |
|---|---|---|
| > 40°C | vitesse -10% | surchauffe |
| < -10°C | démarrage +5s | gel |

#### Impact Milieu (Biome) (tableau détaillé)

| Biome | Effet camion | Notes |
|---|---|---|
| Sable | vitesse - | sans pneus |
| Terre | vitesse + | pneus adaptés |

#### Impact Saisons (tableau détaillé)

| Saison | Effet camion | Notes |
|---|---|---|
| Hiver | vitesse -20% | neige |
| Automne | vitesse -5% | boue |

#### Impact Heure / Jour-Nuit (tableau détaillé)

| Période | Effet camion | Notes |
|---|---|---|
| Nuit sans phares | vitesse -30% | prudence |
| Nuit avec phares | normal | level ≥ 2 |

### 4. Impacts Biologiques et Sociaux

#### Impact Reproduction (tableau détaillé)

| Facteur | Effet sur taux | Condition |
|---|---|---|
| Stress transport | fertilité \(\downarrow\) | cargo animal |

#### Impact Mort (tableau détaillé)

| Cas | Effet | Condition |
|---|---|---|
| Trajet > 24h + confort bas | risque mort | cas extrême |

#### Impact Nourriture (tableau détaillé)

| Ressource | Effet | Condition |
|---|---|---|
| Carburant | coût/km | mission |

#### Impact Attractivité(Visiteurs (tableau détaillé)

| Action/État | Gain | Rayon | Notes |
|---|---:|---:|---|
| Skin camion | +1 | zoo | esthétique |

#### Impact Attractivité Animaux) (tableau détaillé)

| Action/État | Effet animaux | Condition |
|---|---|---|
| Klaxon | stress + | au passage |

#### Impact Valeur (tableau détaillé)

| Facteur | Variation | Condition |
|---|---:|---|
| Niveau camion | + | richesse (score) |

### 5. Impacts Logistiques et Économiques

#### Vitesse (Camion) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| Niveau | table vitesse | 1..7 |

#### Vitesse (Nurserie) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| Livraison œuf/bébé | push vers nurserie | cargo type |

#### Vitesse (Accueil) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| Livraison adulte | push vers accueil | cargo type |

#### Vitesse (Recherche) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| - | - | - |

#### Vitesse (Labo) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| Route labo | vitesse selon route | autoroute/piste |

#### Vitesse (Visite) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| - | - | - |

#### Dépenses (Billeterie) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |

#### Dépenses (Boutiques) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Entretien | 10 | coins / 1000 km | règle |

#### Dépenses (Visiteurs) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |

#### Dépenses (Employés) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Chauffeur (abstrait) | 0 | - | inclus |

#### 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 |
|---|---:|---|---|
| Carburant | variable | coins | distance |

#### Trajet Visiteurs

##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)

| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| - | - | - | - |

##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)

| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| - | - | - | - |

##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)

| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| - | - | - | - |

##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)

| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| - | - | - | - |

### 6. Événements

#### Événements du Jeu  (tableau détaillé)

| Event | Déclencheur | Payload | Effet |
|---|---|---|---|
| `TRUCK_DEPART` | mission | target, cargo | moving |
| `TRUCK_DELAYED` | incident | reason, delta | ETA \(\uparrow\) |
| `TRUCK_ARRIVE` | retour zoo | cargo | décharge |

#### Événements du Carte (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| `TRACK_TRUCK` | clic | panel |

#### Événements du Zoo (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| `DELIVERY_COMPLETE` | arrivée | push accueil/nurserie |

#### Événements du Ville / Visiteur (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| - | - | - |

#### Événements du Visiteur (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| - | - | - |

#### Événements du Joueur (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| `PLAYER_OPENS_TRUCK_PANEL` | clic | UI |

### 7. Progression

#### Tableau des Upgrades (tableau détaillé)

| Niveau | Coût | Effet | Débloque |
|---|---:|---|---|
| 1 | 100 | 50 km/h | base |
| 2 | 200 | 70 km/h + phares | nuit |
| 7 | 6400 | 200 km/h | rapide |

### 8. Logique et Interfaces 

#### Pseudo-code Impacts (tableau détaillé)

| Fonction | Entrées | Sorties | Notes |
|---|---|---|---|
| `computeTruckSpeed` | level, season, temp | float | table + mods |
| `computeETA` | distance, speed | timestamp | à la volée |
| `applyCargoStress` | cargo, comfort, dt | cargo | fertilité/stress |

#### Messages d'Infos / Alerte (tableau détaillé)

| ID | Niveau | Message | Condition |
|---|---|---|---|
| `TRUCK_ARRIVED` | Info | "Le camion est revenu au zoo." | arrivée |
| `TRUCK_DELAY` | Info | "Le camion a du retard." | incident |
| `TRUCK_BUSY` | Warning | "Camion déjà en mission." | lancement |

## Annexes UX/UI 

### 1. Expérience Utilisateur (UX)

#### Description UX (tableau détaillé)

| Parcours | But | Friction | Réduction clics |
|---|---|---|---|
| Acheter sur carte | déclencher livraison | navigation | auto-focus camion |
| Suivre | connaître ETA | dispersion | panel clic icône |
| Mini-jeu | occuper attente | option | accessible en 1 clic |

#### Description UI (tableau détaillé)

| Composant | Contenu | États |
|---|---|---|
| Icône camion | position + badge | moving/delayed |
| Panel trajet | ETA + destination | open/closed |
| Modal mini-jeu | taches | progress |

#### Emplacement (tableau détaillé)

| Zone UI | Position | Notes |
|---|---|---|
| Carte monde | overlay | camion |
| Carte zoo | case camion | départ/arrivée |

#### Intégration (tableau détaillé)

| Intégration | Contrat | Notes |
|---|---|---|
| `accueil_animaux.md` | livraison adulte | dépôt |
| `nurserie.md` | livraison œuf/bébé | dépôt |
| `vente_animal.md` | logistique | mission |

#### Navigation (tableau détaillé)

| Action | Chemin | Résultat |
|---|---|---|
| Suivre | clic camion | panel |
| Jouer | clic camion → mini-jeu | modal |
| Voir arrivée | clic notif | focus |

#### Événements (tableau détaillé)

| Event UI | Déclencheur | Effet |
|---|---|---|
| `TRACK_TRUCK` | clic | panel |
| `CLEAN_WINDSHIELD` | clic | mini-jeu |

#### Assets Skinables

##### Musiques (tableau détaillé)

| Asset | Usage | Durée | Notes |
|---|---|---:|---|
| `truck_radio_lofi.mp3` | mini-jeu | loop | doux |

##### Sons (tableau détaillé)

| Asset | Usage | Volume |
|---|---|---|
| `engine_start.mp3` | départ | moyen |
| `truck_stop.mp3` | arrivée | moyen |
| `wipe.mp3` | mini-jeu | bas |

##### Graphiques (tableau détaillé)

| Asset | Usage | Contraintes |
|---|---|---|
| `truck_route_dotted.png` | route | overlay |
| `truck_badge_delayed.png` | retard | lisible |

##### Images (tableau détaillé)

| Asset | Usage |
|---|---|
| `truck_map_icon.png` | carte |

##### Vidéos (tableau détaillé)

| Asset | Usage | Durée |
|---|---|---:|
| `truck_depart_zoom.webm` | départ | 1.5s |

##### Animations (tableau détaillé)

| Animation | Déclencheur | Notes |
|---|---|---|
| fumée échappement | moving | loop |
| rotation roues | moving | loop |

##### Couleurs (tableau détaillé)

| Token | Valeur | Usage |
|---|---|---|
| `truck_yellow` | #FBC02D | carrosserie |
| `truck_black` | #212121 | accents |

##### Textes (tableau détaillé)

| Clé | FR | EN |
|---|---|---|
| `truck.en_route` | En route vers {dest} | En route to {dest} |
| `truck.arrived` | Camion rentré | Truck arrived |

##### Formes (tableau détaillé)

| Élément | Forme | Notes |
|---|---|---|
| Badge | rond | statut |
| Flèche | triangle | direction |
