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