Files
builazoo/docs/specs/camion.md
Nicolas Cantu e92c1355d0 Enrichissement exhaustif des specs : Vue Isométrique et Design
**Motivations:**
- Aligner toute la documentation technique avec la nouvelle direction artistique isométrique (Réf IMG_20260303_170253).
- Faciliter l'implémentation en ajoutant les contraintes techniques liées à la 2.5D (Z-index, Sprites 4 directions).

**Root causes:**
- Besoin de cohérence visuelle et technique sur l'ensemble du projet.

**Correctifs:**
- N/A

**Evolutions:**
- Ajout systématique de la section "Direction Artistique & Vue" dans `Annexes UX/UI` de tous les fichiers.
- Enrichissement des modèles JSON avec coordonnées isométriques (`iso_x`, `iso_y`, `z_index`).
- Précision des interactions (clic, survol) adaptées à la grille losange.
- Conservation stricte de la structure existante (aucun titre supprimé).

**Pages affectées:**
- docs/specs/*
2026-03-05 02:10:32 +01:00

234 lines
8.0 KiB
Markdown

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