# 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 d’urgence | Action | level ≥ 4 | bouton “Urgence” | santé ↑ | `LEVEL_TOO_LOW` |

## Personnage contextuel (événements & interaction)
Voir `nurse.md`.

### Affichage
La nurse s’affiche 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 |
