This commit is contained in:
2026-03-05 04:01:29 +01:00
parent dfecb09b7c
commit 6c8a710432
32 changed files with 8203 additions and 3 deletions

View File

@@ -20,6 +20,27 @@ Microscope stylisé bleu néon sur fond sombre, évoquant la haute technologie.
| Joueur | Glisser-Déposer | Offre (Animal) vers Camion | Achète l'animal et lance le transport vers le zoo. |
| Joueur | Sélectionner | Animal du Zoo | Lance une analyse génétique (si le labo est débloqué). |
## Personnage contextuel (événements & interaction)
Voir `laborantin.md`.
### Affichage
Le laborantin saffiche lorsque :
- le module est **actionné** (ouverture du labo, survol/prévisualisation dune offre, achat, lancement danalyse/synthèse) ;
- un **événement** du laboratoire survient (nouvelles offres, analyse/synthèse terminée, alerte sécurité, fermeture temporaire).
### Déclencheurs (événements)
| Event | Condition | Effet UI personnage |
|---|---|---|
| `OPEN_LAB_SITE` | clic POI | portrait + état (ouvert/fermé) + onglets |
| `LAB_OFFERS_GENERATED` | refresh TTL | bulle “Nouvelles offres” + CTA “Voir offres” |
| `LAB_OFFER_PURCHASED` | achat validé | reçu + rappel livraison camion |
| `LAB_ANALYSIS_COMPLETED` | analyse terminée | CTA “Voir rapport” |
| `LAB_SYNTHESIS_DONE` | synthèse terminée | résultat + CTA “Voir spécimen” |
| `LAB_SECURITY_ALERT` | incident | bulle alerte + CTA “Voir état” |
### Skins & thèmes
Palette et accessoires suivent `theme.md` (variante “tech”) et `inventaire_skins.md` si activé.
## Annexes Techniques
### 1. Données et États
@@ -383,3 +404,481 @@ Microscope stylisé bleu néon sur fond sombre, évoquant la haute technologie.
| Forme | Usage | Style Bordure |
|---|---|---|
| Hexagone | Icônes, Boutons | Solid 2px |
## Définition
| Champ | Valeur |
|---|---|
| Concept | Site “Laboratoire” (carte monde) : POI de recherche, offres rares, analyses génétiques et synthèse/clonage (fonctionnalité avancée). |
| Rôle | Fournir un point daccès à des animaux/offres exclusives et à des services de science (analyse traits cachés, création), avec gating réputation/niveau. |
| Portée | Site externe (world map) + interface de services ; interactions avec `camion` (transport) et `centre_recherche` (recherche). |
| Contrainte | Pas de cache/mémorisation : offres et résultats calculés à la volée (seed explicitée) ; pas de fallback silencieux sur échec (erreur + log + message). |
## Fonctions (tableau détaillé)
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|---|---|---|---|---|---|
| Ouvrir labo | clic POI | `site_id` | modal | liste offres + services | Event `OPEN_LAB_SITE` |
| Générer offres | refresh/expiration | `lab_level`, seed | offres | TTL 24h, remplacement complet | Event `LAB_OFFERS_GENERATED` |
| Acheter une offre | drag vers camion | `offer_id`, funds | cargo camion | transaction atomique | Event `LAB_OFFER_PURCHASED` |
| Analyse génétique | sélectionner animal | `animal_id`, fee | rapport | révèle traits selon fiabilité | Event `LAB_ANALYSIS_COMPLETED` |
| Synthèse/clonage | action | fragments, fee, time | nouvel animal | fiabilité vs rareté => succès/échec | Event `LAB_SYNTHESIS_DONE` |
| Fermer temporairement | incident | sécurité < seuil | site fermé | cooldown 24h/48h | Event `LAB_CLOSED_TEMP` |
| Visite publique | jour | module visite | attractivité + | visiteurs/flux | Event `LAB_PUBLIC_VISIT` |
## Icone de base
| Élément | Spécification |
|---|---|
| Représentation | Microscope néon + brin ADN |
| Couleur dominante | Cyan néon (#00FFFF) + indigo (#202040) |
| Variantes | `icon_lab.png`, `icon_lab_microscope.png` |
| États | `open`, `closed`, `new_offers`, `security_alert` |
## Interactions (tableau détaillé)
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|---|---|---|---|---|---|
| Consulter offres | Consultation | réputation ok | clic labo | modal offres | `LAB_LOCKED_REPUTATION` |
| Acheter | Action | fonds ok + camion idle | drag offre → camion | mission camion | `NOT_ENOUGH_COINS`, `TRUCK_BUSY` |
| Lancer analyse | Action | animal sélectionné | choisir animal → payer | rapport | `ANALYSIS_FAILED` |
| Lancer synthèse | Action | fragments | synthétiser → confirmer | file synthèse | `NOT_ENOUGH_FRAGMENTS` |
## Annexes Techniques
### 1. Données et États (tableau détaillé)
| Donnée / État | Type | Exemple | Source | Contraintes |
|---|---|---|---|---|
| `site_id` | uuid_v4 | `uuid_v4` | DB | - |
| `site_type` | string | `lab_site` | DB | constant |
| `lab_level` | int | 1 | DB | 1..3 (ex) |
| `requires.reputation_min` | int | 500 | config | gating |
| `offers[].offer_id` | uuid_v4 | `uuid_v4` | DB | unique |
| `offers[].expires_at` | timestamp | - | DB | UTC |
| `offers[].item_type` | string | `egg` | DB | `egg/baby/animal` |
| `offers[].species_id` | string | `MAMMOTH` | DB | enum |
| `offers[].price.coins` | int | 20000 | DB | >=0 |
| `scores.reliability` | float | 0.9 | config | 0..1 |
| `scores.prestige` | int | 10 | config | 0..100 |
| `state.is_open` | boolean | true | DB | fermeture temp |
| `state.closed_until` | timestamp \| null | - | DB | UTC |
| `rng.seed` | string | `lab_offer_seed` | DB | auditable |
#### Caractéristiques Initiales (tableau détaillé)
| Caractéristique | Valeur initiale | Unité | Notes |
|---|---:|---|---|
| Niveau tech | 1 | int | offres |
| Slots offres | 3 | count | simultané |
| Réputation requise | 500 | pts | gating |
#### Scores Initiaux (tableau détaillé)
| Score | Valeur initiale | Plage | Impact |
|---|---:|---|---|
| Fiabilité | 90% | 0..100% | succès |
| Prestige | 10 | 0..100 | rareté |
### 2. Cycles de Vie et Apparition (tableau détaillé)
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|---|---|---|---|---|
| Découverte | exploration | zone | POI visible | persiste |
| Interactif | niveau joueur | >=5 | UI active | gating réputation |
| Refresh offres | 24h | seed | nouveaux items | TTL |
| Fermeture | incident | sécurité | closed_until | observable |
#### Conditions d'Apparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Exploration carte | zone “Ville/Industrie” | est | POI découvert |
| Niveau joueur | 5 | >= | interactif |
#### Conditions de Disparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Faillite labo | événement | est | fermeture 24h |
#### Hérédité (tableau détaillé)
| Élément | Hérité | Règle |
|---|---|---|
| Traits clonés | Oui | 99% + instabilité 1% |
| Analyses | Oui | rapports conservés |
### 3. Impacts Environnementaux
#### Impact Température (tableau détaillé)
| Condition | Effet labo | Notes |
|---|---|---|
| < 0°C | durée synthèse +20% | machines |
| > 35°C | coût énergie +15% | surchauffe |
| 20°C | vitesse +5% | optimal |
#### Impact Milieu (Biome) (tableau détaillé)
| Biome | Effet | Notes |
|---|---|---|
| Urbain | aucun | nominal |
| Toundra | maintenance +10% | chauffage |
| Désert | maintenance +20% | clim |
#### Impact Saisons (tableau détaillé)
| Saison | Effet | Notes |
|---|---|---|
| Hiver | rareté froid +10% | offers |
| Été | rareté chaud +10% | offers |
| Printemps | offres +1 | bébés |
| Automne | coût analyse -10% | maladies |
#### Impact Heure / Jour-Nuit (tableau détaillé)
| Période | Effet | Notes |
|---|---|---|
| Jour | ouvert au public | enseignes |
| Nuit | recherche intensive | offres “sombres” |
### 4. Impacts Biologiques et Sociaux
#### Impact Reproduction (tableau détaillé)
| Facteur | Effet sur taux | Condition |
|---|---|---|
| Fertilité assistée | +20% | recherche débloquée |
| Clonage | reproduction naturelle 0 | espèce éteinte |
#### Impact Mort (tableau détaillé)
| Cas | Effet | Condition |
|---|---|---|
| Échec synthèse | perte fragments | instant |
| Accident | fermeture 48h | décontamination |
#### Impact Nourriture (tableau détaillé)
| Ressource | Effet | Condition |
|---|---|---|
| Nutriments synthétiques | santé +50 (clone) | indispensable clones |
#### Impact Attractivité(Visiteurs (tableau détaillé)
| Action/État | Gain | Rayon | Notes |
|---|---:|---:|---|
| Découverte espèce éteinte | +500 (global) | monde | buzz in-game |
| Visite labo | +20 | 10m | module |
#### Impact Attractivité Animaux) (tableau détaillé)
| Action/État | Effet animaux | Condition |
|---|---|---|
| Prélèvement ADN | stress +10 | toutes espèces |
#### Impact Valeur (tableau détaillé)
| Facteur | Variation | Condition |
|---|---:|---|
| Traits légendaires | +200% | rareté génétique |
| Instable | -50% | défaut clonage |
### 5. Impacts Logistiques et Économiques
#### Vitesse (Camion) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Autoroute | 110 km/h | vers labo |
| Piste | 30 km/h | accès difficile |
#### Vitesse (Nurserie) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Incubation œuf rare | 72h base | -10%/lvl incubateur |
#### Vitesse (Accueil) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Flux visite | 5/min | capacité 50 |
#### Vitesse (Recherche) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Séquençage | 2 jours | accélération payante |
#### Vitesse (Labo) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Tests | 1h..4h | fiabilité |
#### Vitesse (Visite) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Guide | +10 min | module |
#### Dépenses (Billeterie) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Guichet spécial | 500 | $/semaine | visite |
#### Dépenses (Boutiques) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Kit chimiste | 20 | $ | marge 40% |
#### Dépenses (Visiteurs) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Don recherche | 10 | $ | 1/20 |
#### Dépenses (Employés) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Généticien | 3000 | $/mois | prime |
#### 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 |
|---|---:|---|---|
| Suivi clonage | 500 | $/jour | matériel |
#### Dépenses (Nourriture) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Gel nutritif | 100 | $/kg | fournisseur |
#### Dépenses (Acceuil des animaux) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Enclos stérile | 10000 | $ | entretien |
#### Dépenses (Camion) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Trajet 50km | 50 | $ | usure 2% |
#### Trajet Visiteurs
##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Ville | Labo | navette | afflux |
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Hall | Tunnel vitré | curiosité | passage |
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Sortie labo | Boutique | passage obligé | conversion |
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Entrée VIP | Labo | ticket | attente 0 |
### 6. Événements
#### Événements du Jeu (tableau détaillé)
| Event | Déclencheur | Payload | Effet |
|---|---|---|---|
| `LAB_OFFERS_GENERATED` | refresh | seed | nouvelles offres |
| `LAB_ANALYSIS_COMPLETED` | fin | report_id | rapport |
| `LAB_SYNTHESIS_DONE` | fin | success | nouvel animal/échec |
| `LAB_SECURITY_ALERT` | sécurité | - | fermeture |
#### Événements du Carte (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `LAB_POI_DISCOVERED` | exploration | marker |
#### Événements du Zoo (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `TRUCK_DELIVERS_LAB_CARGO` | retour | dépôt accueil/nurserie |
#### Événements du Ville / Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `ANTI_CLONE_PROTEST` | aléatoire | affluence - |
#### Événements du Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `VISITOR_SEES_CLONE` | visite | satisfaction + |
#### Événements du Joueur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `PLAYER_FUNDS_RESEARCH` | action | xp science + |
### 7. Progression
#### Tableau des Upgrades (tableau détaillé)
| Niveau | Coût | Effet | Débloque |
|---|---:|---|---|
| 1 | 50000 | analyses simples | offres standard |
| 2 | 150000 | séquençage | offres rares |
| 3 | 500000 | clonage | légendaire |
### 8. Logique et Interfaces
#### Pseudo-code Impacts (tableau détaillé)
| Fonction | Entrées | Sorties | Notes |
|---|---|---|---|
| `computeCloningSuccess` | reliability, rarity | bool | formule |
| `generateLabOffer` | level, seed | offer | auditable |
| `canAccessLab` | reputation, level | bool | gating |
#### Messages d'Infos / Alerte (tableau détaillé)
| ID | Niveau | Message | Condition |
|---|---|---|---|
| `LAB_TITLE` | Info | "Laboratoire de Génétique." | ouverture |
| `LAB_LOCKED_REPUTATION` | Warning | "Réputation insuffisante." | gating |
| `LAB_SECURITY_ALERT` | Error | "Alerte de sécurité au laboratoire." | fuite/intrusion |
## Annexes UX/UI
### 1. Expérience Utilisateur (UX)
#### Description UX (tableau détaillé)
| Parcours | But | Friction | Réduction clics |
|---|---|---|---|
| Voir nouvelle offre | découvrir | notif | clic notif → focus POI |
| Acheter | obtenir rare | transport | drag → camion |
| Analyser | révéler traits | coût | CTA direct dans fiche |
#### Description UI (tableau détaillé)
| Composant | Contenu | États |
|---|---|---|
| Modal labo | onglets offres/services | open/closed |
| Cartes offre | prix + rareté | locked/available |
| Bouton synthèse | fragments requis | enabled/disabled |
#### Emplacement (tableau détaillé)
| Zone UI | Position | Notes |
|---|---|---|
| Carte monde | POI | halo |
| Modal | centre | 80% largeur |
#### Intégration (tableau détaillé)
| Intégration | Contrat | Notes |
|---|---|---|
| `camion.md` | transport | drag offre |
| `accueil_animaux.md` | dépôt | adultes |
| `nurserie.md` | dépôt | œufs/bébés |
#### Navigation (tableau détaillé)
| Action | Chemin | Résultat |
|---|---|---|
| Ouvrir | clic POI | modal |
| Acheter | drag offre → camion | mission |
| Fermer | bouton X | retour carte |
#### Événements (tableau détaillé)
| Event UI | Déclencheur | Effet |
|---|---|---|
| `OPEN_LAB_SITE` | clic | modal |
| `CLICK_BUY_OFFER` | drag | achat |
#### Assets Skinables
##### Musiques (tableau détaillé)
| Asset | Usage | Durée | Notes |
|---|---|---:|---|
| `lab_ambient.mp3` | modal | loop | néon |
##### Sons (tableau détaillé)
| Asset | Usage | Volume |
|---|---|---|
| `dna_scan.mp3` | analyse ok | moyen |
| `buy_success.mp3` | achat | moyen |
##### Graphiques (tableau détaillé)
| Asset | Usage | Contraintes |
|---|---|---|
| `dna_strand.png` | UI | décor |
| `icon_lab.png` | POI | lisible |
##### Images (tableau détaillé)
| Asset | Usage |
|---|---|
| `bg_lab_interior.jpg` | fond |
##### Vidéos (tableau détaillé)
| Asset | Usage | Durée |
|---|---|---:|
| `cloning_process.mp4` | succès | 5.0s |
##### Animations (tableau détaillé)
| Animation | Déclencheur | Notes |
|---|---|---|
| `pulse_neon` | bordures | 2000ms |
##### Couleurs (tableau détaillé)
| Token | Valeur | Usage |
|---|---|---|
| `lab_cyan` | #00FFFF | accents |
| `lab_indigo` | #202040 | fond |
##### Textes (tableau détaillé)
| Clé | FR | EN |
|---|---|---|
| `LAB_TITLE` | Laboratoire de Génétique | Genetics Lab |
| `BTN_SYNTHESIZE` | Synthétiser | Synthesize |
##### Formes (tableau détaillé)
| Élément | Forme | Notes |
|---|---|---|
| Boutons | hexagone | bordure 2px |