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