# Spécifications : Achat et Upgrade des Camions

## Achat
- Le joueur possède un camion par défaut.
- Possibilité d'acheter des camions supplémentaires (si le design autorise plusieurs flottes).
- **Limite** : Nombre de camions limité par le niveau du Garage (si existant) ou du QG.

## Upgrade (7 Niveaux)
- **Niveau 1** : Camion standard.
- **Niveau 2-7** :
  - **Vitesse** : Augmente la vitesse de déplacement sur la carte du monde (réduit le temps de mission).
  - **Confort** : Réduit la perte de santé/stress des animaux transportés.
  - **Capacité** : (Optionnel) Transport de plusieurs animaux ? *Actuellement 1 unité = 1 camion.*
  - **Fiabilité** : Réduit les chances de panne (événement aléatoire "Retard").

# Annexes Techniques

## 1. Données et États
### Modèle de Données (Action)
```json
{
  "action": "upgrade_truck",
  "truck_id": "uuid",
  "current_stats": { "speed": 50, "comfort": 10 },
  "next_stats": { "speed": 60, "comfort": 20 },
  "cost": 500
}
```
*Voir `camion.md` pour le modèle de données complet.*

## 7. Progression
### Tableau des Upgrades
*Voir `camion.md` pour le tableau détaillé des coûts et effets par niveau.*

## 8. Logique et Interfaces
### Pseudo-code
```python
def upgrade_truck(truck, player):
    if truck.is_on_mission:
        return error("TRUCK_BUSY", "Impossible d'améliorer un camion en mission.")
        
    cost = get_upgrade_cost(truck.level + 1)
    if player.money < cost:
        return error("NO_MONEY")
        
    player.money -= cost
    truck.level += 1
    truck.update_stats()
    
    return success("TRUCK_UPGRADED")
```

### Cas Limites
- **Camion en mission** : Bouton upgrade désactivé avec message "En mission".
- **Niveau Max** : Afficher "Max" à la place du prix.

# 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)
### Garage / Atelier (Consultation)
**Description UX** : Le joueur gère sa flotte de camions.
**Description UI** : Liste des camions avec stats (Vitesse, Confort). Bouton "Améliorer".
**Emplacement** : Bâtiment Garage (si existe) ou Menu Transport.
**Intégration** : Modal.
**Navigation** : Menu -> Transport.
**Événements** : `OPEN_GARAGE`.

#### Assets
- **Musiques** : Radio "Trucker" (Rock instrumental léger).
- **Sons** : `wrench.mp3` (bruit d'outil).
- **Graphiques** : Fond garage.
- **Images** : Sprites Camions évolutifs (Vieux tacot -> Camion futuriste).
- **Vidéos** : Rotation 360° du modèle de camion.
- **Animations** : Étincelles de soudure.
- **Couleurs** : Gris, Métal.
- **Textes** : "Niveau X".
- **Formes** : Silhouettes de camions en arrière-plan.

### Customisation (Cosmétique)
**Description UX** : Changer la couleur du camion.
**Description UI** : Palette de couleurs.
**Emplacement** : Garage.
**Intégration** : Sélecteur.
**Navigation** : Clic Couleur -> Appliquer.
**Événements** : `PAINT_TRUCK`.

#### Assets
- **Musiques** : Bruit de spray "Pshhh" musical.
- **Sons** : `spray.mp3`.
- **Graphiques** : Pistolet peinture.
- **Images** : Nuancier de couleurs (Texture brillante).
- **Vidéos** : Reflet de lumière sur la carrosserie (shader).
- **Animations** : Camion change de couleur.
- **Couleurs** : Palette 16 couleurs.
- **Textes** : "Peinture fraîche !".
- **Formes** : Taches de peinture au sol.

### Vue Isométrique
- **Garage** : Si le garage est un bâtiment sur la carte, l'animation d'upgrade se joue dessus.
- **Carte Monde** : Le sprite du camion sur la carte du monde change pour refléter son niveau (ex: plus de fumée, design plus aérodynamique).
