Files
builazoo/docs/specs/nurserie.md
2026-03-05 04:01:29 +01:00

743 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Spécifications : Nurserie
## Définition
Bâtiment dédié à l'éclosion des œufs et à la croissance des bébés animaux.
## Fonctionnalités
- **Éclosion** : Lieu où les œufs achetés sont placés pour éclore.
- **Croissance** : Permet aux bébés de grandir en sécurité.
- **Stockage** : Zone tampon avant placement dans le zoo.
## Niveaux d'Amélioration (7 niveaux)
- **Coût** : Progressif par palier.
- **Effet** : Accélère le temps d'éclosion/croissance. Améliore la qualité des reproducteurs (bonus génétique).
- **Ratio** : 1 unité permet de faire grandir 1 bébé maximum à la fois.
# Annexes Techniques
## 1. Données et États
### Modèle de Données (JSON)
```json
{
"id": "uuid",
"type": "nurserie",
"level": "integer (1-7)",
"slots": [
{ "slot_id": 1, "content": "egg_uuid | baby_uuid | null", "timer_end": "timestamp" }
],
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer"
}
```
### Caractéristiques Initiales
| Caractéristique | Valeur Initiale (Niv 1) |
| :--- | :--- |
| Slots | 1 |
| Vitesse Éclosion | x1.0 |
| Protection T° | +/- 2°C tolérance |
### Scores Initiaux
**Taux Survie** : 100% (si conditions respectées).
## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Construction par joueur ou présent au début.
### Conditions de Disparition
Destruction par joueur (si vide).
### Hérédité
**Bonus Génétique** : Niveau 5+ donne +5% chance rareté supérieure à l'éclosion.
## 3. Impacts Environnementaux
### Impact Température
La nurserie régule la température interne.
| Niveau | Régulation |
| :--- | :--- |
| 1 | +/- 2°C |
| 7 | +/- 10°C (Climatisation parfaite) |
### Impact Milieu (Biome)
**Adaptation** : Bonus croissance +10% si le biome de la case Nurserie correspond au biome de l'œuf (ex: Œuf Pingouin sur case Neige).
### Impact Saisons
Protège des effets négatifs des saisons (Hiver/Été).
**Printemps** : Bonus Vitesse +10% (Nature en éveil).
### Impact Heure / Jour-Nuit
Fonctionne 24h/24. Veilleuse de nuit (pas de malus obscurité).
## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
**Incubateur** : +10% vitesse si les parents sont présents dans le zoo (Lien affectif simulé).
### Impact Mort
Réduit drastiquement la mortalité infantile (Santé ne baisse pas sauf si Faim extrême).
**Urgence** : Peut accueillir un bébé malade pour le soigner (Niv 4+).
### Impact Nourriture
Les bébés sont nourris automatiquement si stock nourriture global > 0. Consommation réduite de 50% par rapport à un adulte.
### Impact Attractivité (Visiteurs/Animaux)
**Webcam** : +5 Attractivité (Les gens aiment voir les bébés en ligne sur le site du zoo).
### Impact Valeur
**Valorisation** : Un bébé né en nurserie et bien traité vaut +10% à la revente (Certificat de bonne santé).
## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
**Vitesse Éclosion/Croissance** :
| Niveau | Multiplicateur Vitesse |
| :--- | :--- |
| 1 | x1.0 |
| 2 | x1.2 |
| 3 | x1.5 |
| 4 | x2.0 |
| 5 | x3.0 |
| 6 | x5.0 |
| 7 | x10.0 |
### Dépenses (Boutiques/Visiteurs)
**Électricité** : 5 pièces/heure (Chauffage lampes).
### Trajet Visiteurs
**Vitrine** : Les visiteurs s'agglutinent devant la vitre (si module Vitrine installé au Niv 3).
## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
* **Éclosion** : Œuf -> Bébé.
* **Maturité** : Bébé -> Adulte (prêt à sortir).
* **Jumeaux** : 1% chance d'avoir 2 bébés pour 1 œuf.
## 7. Progression
### Tableau des Upgrades
| Niveau | Coût (Pièces) | Slots | Vitesse | Temps Construction |
| :--- | :--- | :--- | :--- | :--- |
| 1 | 100 | 1 | x1.0 | 0s |
| 2 | 200 | 2 | x1.2 | 0s |
| 3 | 400 | 3 | x1.5 | 0s |
| 4 | 800 | 4 | x2.0 | 0s |
| 5 | 1600 | 5 | x3.0 | 0s |
| 6 | 3200 | 6 | x5.0 | 0s |
| 7 | 6400 | 7 | x10.0 | 0s |
## 8. Logique et Interfaces
### Pseudo-code Impacts
```
function updateNurserie(nurserie):
for slot in nurserie.slots:
if slot.content is Egg:
slot.timer -= baseTime * nurserie.speedMultiplier
if slot.timer <= 0:
hatchEgg(slot.content)
```
### Messages d'Infos / Alerte
| ID | Niveau | Message |
| :--- | :--- | :--- |
| `EGG_HATCHED` | Info | "Un œuf a éclos en Nurserie !" |
| `NURSERIE_FULL` | Warning | "Nurserie pleine, impossible d'acheter/reproduire." |
| `TWINS` | Info | "Incroyable ! Des jumeaux sont nés !" |
# 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)
### Gestion des Slots (Consultation)
**Description UX** : Le joueur clique sur la nurserie pour voir l'état de ses œufs et bébés.
**Description UI** : **Bottom Sheet** avec une grille de slots (1 à 7 selon niveau). Chaque slot affiche l'icône de l'œuf/bébé, une barre de progression (éclosion/croissance) et un timer restant.
**Emplacement** : Case Nurserie.
**Intégration** : Modal centrée.
**Navigation** : Clic Nurserie -> Modal -> Clic Slot (Action) ou Fermer.
**Événements** : `OPEN_NURSERIE`.
#### Assets
- **Musiques** : Berceuse douce (boîte à musique).
- **Sons** : `ui_open.mp3`
- **Graphiques** : Style "Couveuse" ou "Nid douillet".
- **Images** : `egg_[rarity].png`, `baby_[species].png`.
- **Vidéos** : Fond animé avec des nuages qui passent.
- **Animations** : Œuf qui tremble légèrement quand proche éclosion.
- **Couleurs** : Tons pastels (rose, bleu clair, jaune paille).
- **Textes** : "Slot X", "Temps restant : MM:SS".
- **Formes** : Cases de grille arrondies.
### Placement d'un Œuf
**Description UX** : Après achat ou reproduction, l'œuf va automatiquement dans un slot vide. Si plein, notification d'erreur.
**Description UI** : Animation de l'œuf "volant" vers la nurserie (si visible) ou simple apparition dans le slot.
**Emplacement** : HUD -> Nurserie.
**Intégration** : Automatique.
**Navigation** : Clic sur notif “Œuf ajouté” → ouvre la nurserie sur le slot concerné (deep-link) ; sinon aucun parcours requis.
**Événements** : `EGG_ADDED`.
#### Assets
- **Musiques** : Son "Pop" doux.
- **Sons** : `pop_soft.mp3`
- **Graphiques** : Ombre portée de l'œuf.
- **Images** : Icône Œuf.
- **Vidéos** : Effet de téléportation (particules).
- **Animations** : Fade in + Scale up de l'œuf dans le slot.
- **Couleurs** : Blanc coquille.
- **Textes** : "Placé".
- **Formes** : Cercle.
### Éclosion (Action)
**Description UX** : Quand le timer est fini, l'œuf se fissure. Le joueur clique pour "ouvrir" l'œuf et découvrir le bébé.
**Description UI** : Le slot brille ou clignote. Au clic, animation d'éclosion et popup "Nouveau Bébé !" avec ses stats.
**Emplacement** : Modal Nurserie.
**Intégration** : Bloque le slot jusqu'à validation.
**Navigation** : Clic Œuf éclos -> Popup Récompense -> Retour Modal.
**Événements** : `HATCH_CLICK`.
#### Assets
- **Musiques** : Jingle court "Victoire/Naissance".
- **Sons** : `crack_egg.mp3`, `baby_cry.mp3`.
- **Graphiques** : Coquilles brisées.
- **Images** : Sprite bébé.
- **Vidéos** : Rayons de lumière émanant de l'œuf.
- **Animations** : Séquence d'éclosion (3 frames).
- **Couleurs** : Rayons dorés/blancs.
- **Textes** : "C'est un [Espèce] [Rareté] !".
- **Formes** : Étoile ou Cercle rayonnant.
### Sortie de Nurserie (Placement)
**Description UX** : Le bébé est mature (ou le joueur veut le sortir). Drag & drop du slot vers une case du zoo.
**Description UI** : Le curseur devient le sprite du bébé/animal. Les cases valides s'illuminent en vert, invalides en rouge.
**Alternative** : Sélectionner le bébé -> Cliquer sur la case cible (Tap to Place).
**Emplacement** : Modal Nurserie -> Carte Zoo.
**Intégration** : Ferme la modal et passe en mode placement.
**Navigation** : Drag Slot -> Drop Carte.
**Événements** : `DRAG_START`, `DRAG_DROP`.
#### Assets
- **Musiques** : Son "Sélection".
- **Sons** : `pickup.mp3`, `place_ok.mp3` / `place_error.mp3`.
- **Graphiques** : Grille de placement overlay.
- **Images** : Sprite fantôme (translucide) sous le curseur.
- **Vidéos** : Pulsation de la case cible.
- **Animations** : Rebondissement du sprite au drop.
- **Couleurs** : Vert #00FF00 (OK), Rouge #FF0000 (KO).
- **Textes** : Tooltip "Placer ici".
- **Formes** : Carré de sélection.
## Définition
| Champ | Valeur |
|---|---|
| Concept | Bâtiment “nurserie” : incubation des œufs, croissance sécurisée des bébés, et tampon avant placement sur la grille. |
| Rôle | Réduire la mortalité infantile via régulation température/soins, gérer les slots, et fournir un parcours UI simple (clic nurserie → slots). |
| Portée | Une instance de bâtiment sur la grille isométrique, avec `level` et `slots[]`. |
| Contrainte | Pas de cache/mémorisation : timers et progressions recalculés à la volée (lazy update) ; pas de fallback silencieux (slot invalide => erreur + message). |
## Fonctions (tableau détaillé)
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|---|---|---|---|---|---|
| Ouvrir nurserie | clic bâtiment | `nurserie_id` | UI slots | affiche slots + timers | Event `OPEN_NURSERIE` |
| Affecter œuf à slot | achat/repro | `egg_id` | slot rempli | auto si slot vide ; sinon erreur | Event `EGG_ADDED` / `NURSERIE_FULL` |
| Éclosion | fin timer + clic | `egg_id` | `baby_id` | reveal au clic ; slot passe bébé | Event `EGG_HATCHED` |
| Croissance | tick lazy | temps, level | `growth_progress` ↑ | multiplicateur par level ; clamp | Event `BABY_GROWTH_UPDATED` |
| Réguler température | calcul impact | env temp | dégâts temp ↓ | tolérance selon level | Event `NURSERIE_TEMP_REGULATED` |
| Nourrir auto | tick | stock nourriture | faim ↓ | si stock > 0, conso | Event `BABY_AUTO_FED` |
| Sortir bébé | drag/tap place | `baby_id`, case | bébé placé | validation case ; transfert iso coords | Event `PLACE_BABY` |
| Upgrade nurserie | action joueur | coins, niveau | level ↑ | max 7 ; effets cumulés | Event `NURSERIE_UPGRADED` |
| Urgence soins | action | `baby_id` | santé ↑ | dispo level ≥ 4 | Event `NURSERIE_EMERGENCY_CARE` |
## Icone de base
| Élément | Spécification |
|---|---|
| Représentation | Bâtiment couveuse/vitrine, fumée douce, lumières chaudes |
| Couleur dominante | Pastel (jaune paille, bleu clair) |
| Variantes | `nursery_lvl_{1..7}_dir_{N,E,S,W}.png` |
| États | `idle`, `egg_ready` (brille), `baby_ready` (jauge 100), `full` (badge) |
## Interactions (tableau détaillé)
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|---|---|---|---|---|---|
| Ouvrir slots | Consultation | - | clic nurserie | bottom sheet slots | - |
| Placer œuf | Action | slot vide | achat/repro → auto place | slot occupé | `NURSERIE_FULL` |
| Cliquer œuf éclos | Action | timer fini | clic slot | popup bébé | - |
| Sortir bébé | Action | bébé en slot | drag vers grille + confirm | bébé placé | `PLACEMENT_INVALID`, `BABY_TOO_FRAGILE` |
| Upgrade | Action | coins ok | clic “Améliorer” | level ↑ | `NOT_ENOUGH_COINS` |
| Soins durgence | Action | level ≥ 4 | bouton “Urgence” | santé ↑ | `LEVEL_TOO_LOW` |
## Personnage contextuel (événements & interaction)
Voir `nurse.md`.
### Affichage
La nurse saffiche lorsque :
- la nurserie est **actionnée** (ouverture, clic slot, éclosion, placement, urgence) ;
- un **événement** de nurserie survient (slot prêt, nurserie pleine, bébé critique).
### Déclencheurs (événements)
| Event | Condition | Effet UI personnage |
|---|---|---|
| `OPEN_NURSERIE` | clic bâtiment | portrait + état slots + CTA |
| `EGG_ADDED` | œuf affecté | bulle “Œuf placé” + deep-link slot |
| `EGG_HATCHED` | clic éclosion | bulle “Bébé né” + CTA “Voir bébé” |
| `NURSERIE_FULL` | slots pleins | bulle “Nurserie pleine” + CTA “Voir slots” |
| `BABY_CRITICAL` | bébé en danger | bulle “Urgence” + CTA “Voir bébé” |
### Skins & thèmes
Uniforme et accessoires de la nurse suivent `theme.md` et `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 | - |
| `type` | string | `nurserie` | DB | constant |
| `level` | int | 1 | DB | 1..7 |
| `slots[].slot_id` | int | 1 | DB | 1..level |
| `slots[].content_type` | string \| null | `egg` | DB | `egg`/`baby`/null |
| `slots[].content_id` | uuid_v4 \| null | `uuid_v4` | DB | egg_id/baby_id |
| `slots[].timer_end` | timestamp \| null | - | DB | UTC |
| `slots[].growth_progress` | float \| null | 42.0 | DB | 0..100 si bébé |
| `iso_x` | int | 120 | DB | grille |
| `iso_y` | int | 88 | DB | grille |
| `z_index` | int | 12088 | calcul | profondeur iso |
| `modules.has_vitrine` | boolean | false | DB | unlock level ≥ 3 |
| `modules.has_emergency_care` | boolean | false | DB | unlock level ≥ 4 |
| `timestamps.created_at` | timestamp | - | DB | UTC |
#### Caractéristiques Initiales (tableau détaillé)
| Caractéristique | Valeur initiale | Unité | Notes |
|---|---:|---|---|
| Slots | 1 | count | level 1 |
| Vitesse éclosion | 1.0 | coef | base |
| Vitesse croissance | 1.0 | coef | base |
| Tolérance T° | 2 | °C | ± |
| Auto-nourrissage | actif | bool | si stock > 0 |
#### Scores Initiaux (tableau détaillé)
| Score | Valeur initiale | Plage | Impact |
|---|---:|---|---|
| Taux survie (si conditions) | 100% | 0..100% | objectif gestion |
| Jumeaux | 1% | 0..5% | événement rare |
### 2. Cycles de Vie et Apparition (tableau détaillé)
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|---|---|---|---|---|
| Construction | joueur | coins | nurserie | position iso fixe |
| Utilisation | achat/repro | œufs | slots | capacité limitée |
| Éclosion | timer fini + clic | egg_id | baby_id | reveal explicite |
| Croissance | temps | baby_id | progress | clamp |
| Sortie | placement | baby_id | sur grille | slot libéré |
#### Conditions d'Apparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Construction | true | est | nurserie créée |
| Début partie | true | est | nurserie initiale (si scénario) |
#### Conditions de Disparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Destruction | true | est | supprimée si vide |
#### Hérédité (tableau détaillé)
| Élément | Hérité | Règle |
|---|---|---|
| Niveau nurserie | Oui | persiste |
| Bonus génétique | Oui | chance rareté (level ≥ 5) |
### 3. Impacts Environnementaux
#### Impact Température (tableau détaillé)
| Condition | Effet nurserie | Notes |
|---|---|---|
| \(|\Delta T|\le 2\) (lvl1) | pas de dégâts | tolérance |
| \(|\Delta T|\le 10\) (lvl7) | pas de dégâts | climatisation |
| hors tolérance | dégâts réduits | protège mais pas invincible |
#### Impact Milieu (Biome) (tableau détaillé)
| Biome | Effet | Notes |
|---|---|---|
| Compatible avec œuf | croissance +10% | règle existante |
| Incompatible | aucun bonus | pas de malus direct |
#### Impact Saisons (tableau détaillé)
| Saison | Effet | Notes |
|---|---|---|
| Hiver/Été | atténue extrêmes | via régulation |
| Printemps | vitesse +10% | règle existante |
#### Impact Heure / Jour-Nuit (tableau détaillé)
| Période | Effet | Notes |
|---|---|---|
| Nuit | veilleuse | pas de malus obscurité |
### 4. Impacts Biologiques et Sociaux
#### Impact Reproduction (tableau détaillé)
| Facteur | Effet sur taux | Condition |
|---|---|---|
| Incubateur | vitesse +10% | parents présents (règle existante) |
#### Impact Mort (tableau détaillé)
| Cas | Effet | Condition |
|---|---|---|
| Bébé en nurserie | mortalité ↓ | santé stable sauf faim extrême |
| Urgence | soins | level ≥ 4 |
#### Impact Nourriture (tableau détaillé)
| Ressource | Effet | Condition |
|---|---|---|
| Stock global > 0 | nourrir auto | conso réduite 50% vs adulte |
| Stock = 0 | faim ↑ | alertes |
#### Impact Attractivité(Visiteurs (tableau détaillé)
| Action/État | Gain | Rayon | Notes |
|---|---:|---:|---|
| Vitrine active | + | 1 case | attroupement devant vitre |
#### Impact Attractivité Animaux) (tableau détaillé)
| Action/État | Effet animaux | Condition |
|---|---|---|
| - | - | - |
#### Impact Valeur (tableau détaillé)
| Facteur | Variation | Condition |
|---|---:|---|
| Certificat bonne santé | +10% | bébé né + bien traité |
### 5. Impacts Logistiques et Économiques
#### Vitesse (Camion) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | - | - |
#### Vitesse (Nurserie) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Level 1..7 | x{1.0,1.2,1.5,2.0,3.0,5.0,10.0} | progression existante |
#### Vitesse (Accueil) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | - | - |
#### Vitesse (Recherche) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Bonus rareté | +5% | level ≥ 5 |
#### Vitesse (Labo) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | - | - |
#### Vitesse (Visite) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Vitrine | attroupement | module vitrine |
#### Dépenses (Billeterie) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |
#### Dépenses (Boutiques) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Électricité | 5 | coins / h | règle existante |
#### Dépenses (Visiteurs) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |
#### Dépenses (Employés) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Soins urgence | 10 | coins | level ≥ 4 |
#### 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 |
|---|---:|---|---|
| Upgrade | variable | coins | level up |
#### Dépenses (Nourriture) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Conso bébé | 0.5 | ration | vs adulte |
#### Dépenses (Acceuil des animaux) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Contrôle santé | 0 | - | inclus (spécif) |
#### Dépenses (Camion) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |
#### 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 |
|---|---|---|---|
| Allées | Vitrine nurserie | curiosité | attroupement |
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Vitrine | Boutique | souvenir | détour |
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Entrée | Nurserie | signal UI | route directe |
### 6. Événements
#### Événements du Jeu (tableau détaillé)
| Event | Déclencheur | Payload | Effet |
|---|---|---|---|
| `OPEN_NURSERIE` | clic | `nurserie_id` | UI |
| `EGG_ADDED` | auto | `egg_id` | slot rempli |
| `EGG_HATCHED` | clic | `egg_id`, `baby_id` | spawn bébé |
| `NURSERIE_FULL` | erreur | `nurserie_id` | message |
| `NURSERIE_UPGRADED` | action | `level` | effets |
#### Événements du Carte (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `NURSERY_MARKER_SHOW` | map open | marker |
#### Événements du Zoo (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `HATCH_CLICK` | clic | animation |
| `PLACE_BABY` | placement | transfert |
#### Événements du Ville / Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `VISITOR_GATHERS_AT_NURSERY` | vitrine | attroupement |
#### Événements du Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `VISITOR_STOPS_AT_WINDOW` | proximité | temps visite + |
#### Événements du Joueur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `PLAYER_UPGRADES_NURSERY` | clic | level ↑ |
### 7. Progression
#### Tableau des Upgrades (tableau détaillé)
| Niveau | Coût | Effet | Débloque |
|---|---:|---|---|
| 1 | 100 | 1 slot, tolérance ±2°C | base |
| 2 | 200 | 2 slots, vitesse x1.2 | - |
| 3 | 400 | 3 slots, vitrine | visiteurs |
| 4 | 800 | 4 slots, urgence soins | soins |
| 5 | 1600 | 5 slots, rareté +5% | génétique |
| 6 | 3200 | 6 slots, vitesse x5 | - |
| 7 | 6400 | 7 slots, tolérance ±10°C | clim |
### 8. Logique et Interfaces
#### Pseudo-code Impacts (tableau détaillé)
| Fonction | Entrées | Sorties | Notes |
|---|---|---|---|
| `assignEggToSlot` | egg, slots | slot_id | pas de slot => erreur |
| `hatchEgg` | egg | baby | reveal au clic |
| `computeNurseryMultiplier` | level | float | table |
| `applyTempRegulation` | envTemp, level | delta | tolérance |
#### Messages d'Infos / Alerte (tableau détaillé)
| ID | Niveau | Message | Condition |
|---|---|---|---|
| `EGG_HATCHED` | Info | "Un œuf a éclos en nurserie." | éclosion |
| `NURSERIE_FULL` | Warning | "Nurserie pleine." | slots pleins |
| `TWINS` | Info | "Des jumeaux sont nés." | chance 1% |
## Annexes UX/UI
### 1. Expérience Utilisateur (UX)
#### Description UX (tableau détaillé)
| Parcours | But | Friction | Réduction clics |
|---|---|---|---|
| Gérer slots | suivre œufs/bébés | navigation | clic direct bâtiment |
| Éclosion | révéler bébé | attente | badge “prêt” + clic unique |
| Sortir bébé | placement | erreurs | overlay vert/rouge |
#### Description UI (tableau détaillé)
| Composant | Contenu | États |
|---|---|---|
| Bottom sheet | grille slots | open/closed |
| Slot | icône + barre | egg/baby/empty |
| Popup récompense | espèce/rareté | confirm |
#### Emplacement (tableau détaillé)
| Zone UI | Position | Notes |
|---|---|---|
| Carte zoo | sur case | clic |
| Modal | centre/bottom | slots |
#### Intégration (tableau détaillé)
| Intégration | Contrat | Notes |
|---|---|---|
| `bebe_animal.md` | croissance | jauge |
| `inventaire_bebe_animaux.md` | deep-link | navigation |
#### Navigation (tableau détaillé)
| Action | Chemin | Résultat |
|---|---|---|
| Ouvrir | clic nurserie | slots |
| Aller slot | clic notif | focus slot |
| Placer | drag → drop | bébé sur grille |
#### Événements (tableau détaillé)
| Event UI | Déclencheur | Effet |
|---|---|---|
| `OPEN_NURSERIE` | clic | modal |
| `HATCH_CLICK` | clic slot | reveal |
| `DRAG_START` | drag | placement mode |
#### Assets Skinables
##### Musiques (tableau détaillé)
| Asset | Usage | Durée | Notes |
|---|---|---:|---|
| `nursery_lullaby_loop.mp3` | nurserie | loop | doux |
##### Sons (tableau détaillé)
| Asset | Usage | Volume |
|---|---|---|
| `ui_open.mp3` | ouvrir | bas |
| `crack_egg.mp3` | éclosion | moyen |
| `baby_cry.mp3` | reveal | bas |
##### Graphiques (tableau détaillé)
| Asset | Usage | Contraintes |
|---|---|---|
| `nursery_slot_frame.png` | slot | scalable |
| `placement_grid_overlay.png` | placement | contraste |
##### Images (tableau détaillé)
| Asset | Usage |
|---|---|
| `egg_rarity_badge.png` | rareté |
| `baby_card_bg.png` | popup |
##### Vidéos (tableau détaillé)
| Asset | Usage | Durée |
|---|---|---:|
| `nursery_clouds_bg.webm` | fond | loop |
##### Animations (tableau détaillé)
| Animation | Déclencheur | Notes |
|---|---|---|
| tremblement œuf | proche éclosion | 0.8s loop |
| glow slot | prêt | 0.6s |
##### Couleurs (tableau détaillé)
| Token | Valeur | Usage |
|---|---|---|
| `nursery_pastel_yellow` | #F7E7A6 | fond |
| `nursery_ok_green` | #00FF00 | placement |
| `nursery_ko_red` | #FF0000 | placement |
##### Textes (tableau détaillé)
| Clé | FR | EN |
|---|---|---|
| `nursery.title` | Nurserie | Nursery |
| `nursery.slot` | Slot | Slot |
| `nursery.full` | Nurserie pleine. | Nursery full. |
##### Formes (tableau détaillé)
| Élément | Forme | Notes |
|---|---|---|
| Slot | rectangle arrondi | lisible |
| Badge prêt | rond | contraste |