# Spécifications : Inventaire des Bébés Animaux ## Correspondance Pour chaque animal adulte, il existe une version "Bébé". - **Visuel** : Version "chibi" ou réduite du sprite adulte. - **Nom** : "Bébé [Nom Animal]". # Annexes Techniques ## 1. Données et États ### Modèle de Données (JSON) Même table que `animal_types` avec flag `is_baby`. ### Caractéristiques Initiales **Compteur Bébés** : 0. ### Scores Initiaux **Score Maternité** : 0. ## 2. Cycles de Vie et Apparition ### Conditions d'Apparition Naissance ou Achat Œuf. ### Conditions de Disparition Croissance (Devient Adulte) ou Mort. ### Hérédité **Lien** : Lien cliquable vers les parents depuis la fiche bébé. ## 3. Impacts Environnementaux ### Impact Température **Alerte Froid** : Icône "Flocon" clignotante si bébé en danger. ### Impact Milieu (Biome) **Filtre** : "Bébés en danger" (Mauvais biome). ### Impact Saisons **Printemps** : Mise en avant des naissances saisonnières. ### Impact Heure / Jour-Nuit **Sommeil** : Indique "Dort" (les bébés dorment plus). ## 4. Impacts Biologiques et Sociaux ### Impact Reproduction **Futur** : Indique le potentiel génétique (Étoiles grisées). ### Impact Mort **Historique** : "Mort-né" ou "Mort en bas âge" (Triste mais informatif). ### Impact Nourriture **Biberon** : Icône Biberon si faim. ### Impact Attractivité (Visiteurs/Animaux) **Bonus Mignonnerie** : Avoir 10 bébés différents simultanément = +5% Ventes Boutique Peluches (Effet "Mode"). ### Impact Valeur **Potentiel** : Affiche la valeur estimée à l'âge adulte. ## 5. Impacts Logistiques et Économiques ### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite) **Croissance** : Barre de progression temps réel. ### Dépenses (Boutiques/Visiteurs) **Coût Soins** : Estimation des frais vétérinaires à venir. ### Trajet Visiteurs **Vedette** : Indique si le bébé est le plus regardé du zoo. ## 6. Événements ### Événements du Jeu / Carte / Zoo / Ville / Visiteur * **Éclosion** : Animation dans l'inventaire. ## 7. Progression ### Tableau des Upgrades *Note : Niveaux de la Nurserie (voir `nurserie.md`).* | Niveau | Nom | Bonus | | :--- | :--- | :--- | | 1 | Mignonnerie | +10% Attractivité | ## 8. Logique et Interfaces ### Pseudo-code Impacts ```javascript function getBabyBonus(baby): if baby.isCute(): return 1.5 // Multiplicateur attractivité return 1.0 ``` ### Messages d'Infos / Alerte | ID | Niveau | Message | | :--- | :--- | :--- | | `BABY_BORN` | Info | "Un nouveau bébé est né !" | # 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) ### Visualisation Bébé (Passif) **Description UX** : Différencier les bébés des adultes. **Description UI** : Sprite plus petit (50% taille), tête plus grosse, yeux plus grands. **Emplacement** : Grille / Nurserie. **Intégration** : Sprite. **Navigation** : Clic Bébé. **Événements** : `CLICK_BABY`. #### Assets - **Musiques** : Berceuse. - **Sons** : Cris plus aigus. - **Graphiques** : Sprites Chibi. - **Images** : Icône Tétine. - **Vidéos** : Vidéo "Premiers pas" (décoratif). - **Animations** : Démarche maladroite. - **Couleurs** : Identiques Adulte. - **Textes** : "Bébé". - **Formes** : Rond. ## Définition | Champ | Valeur | |---|---| | Concept | Inventaire/registre des variantes “bébé” par espèce (mapping adulte → bébé), et vue de gestion des bébés possédés (nurserie + zoo). | | Rôle | Permettre l’identification visuelle, l’accès rapide aux fiches bébés, et l’affichage des signaux de risque (froid, faim, biome) sans masquer l’état. | | Portée | Catalogue (par type d’animal) + instances (bébés présents) dans un zoo. | | Contrainte | Aucun compteur de vues/revenus par bébé (pas d’analytics) ; calculs et filtres à la volée, sans cache/mémorisation. | ## Fonctions (tableau détaillé) | Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité | |---|---|---|---|---|---| | Résoudre variante bébé | rendu / fiche | `species_id` | `baby_sprite_set_id` | 1 adulte → 1 bébé, stable | Log si sprite manquant | | Lister bébés possédés | ouverture inventaire | `zoo_id` | liste | tri stable (danger > croissance > rareté) | Event `OPEN_BABY_INVENTORY` | | Filtrer “en danger” | toggle UI | états (temp, faim, santé) | sous-liste | critères explicites (seuils) | Event `FILTER_BABY_DANGER` | | Afficher potentiel génétique | fiche bébé | genetics | étoiles grises | informatif, non “best-effort” | Event `BABY_GENETIC_VIEWED` | | Deep-link vers bébé | notif/slot | `animal_id` | navigation | ouvre nurserie/zoom case | Event `NAVIGATE_TO_BABY` | | Calculer bonus mignonnerie | tick logique | nb bébés distincts | mod boutique | bonus borné, condition “simultané” | Event `CUTE_BONUS_APPLIED` | ## Icone de base | Élément | Spécification | |---|---| | Représentation | Icône tétine/biberon + badge “B” | | Couleur dominante | Pastel (selon thème) | | Variantes | `icon_baby.png`, `icon_bottle.png`, `icon_pacifier.png` | | États | `danger_cold` (flocon), `danger_hunger` (biberon), `sleeping` (zzz) | ## Interactions (tableau détaillé) | Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages | |---|---|---|---|---|---| | Ouvrir inventaire bébés | Consultation | - | menu inventaire → bébés | liste affichée | - | | Ouvrir fiche bébé | Consultation | bébé listé | clic ligne | panneau détail | `BABY_NOT_FOUND` | | Filtrer “en danger” | Consultation | - | toggle | liste filtrée | - | | Aller au bébé | Navigation | position/slot connu | bouton “Voir” | zoom + focus | `LOCATION_UNAVAILABLE` | | Comparer adulte/bébé | Consultation | espèce connue | onglet | mapping visible | - | ## Personnage contextuel (événements & interaction) Voir `nurse.md`. ### Affichage La nurse s’affiche lorsque : - le module est **actionné** (ouverture inventaire, filtre danger, navigation “Voir bébé”) ; - un **événement** de bébé survient (naissance, danger, passage adulte). ### Déclencheurs (exemples) | Event | Condition | Effet UI personnage | |---|---|---| | `OPEN_BABY_INVENTORY` | ouverture | portrait nurse + rappel des priorités “danger” | | `FILTER_BABY_DANGER` | toggle | bulle “Liste filtrée” + critères | | `BABY_BORN` | naissance | bulle “Nouveau bébé” + CTA “Voir” | | `BABY_DANGER` / `BABY_CRITICAL` | danger | bulle “Urgence” + CTA deep-link | | `BABY_BECAME_ADULT` | transition | bulle “Devenu adulte” + CTA “Voir adulte” | ### Skins & thèmes Palette et accessoires suivent `theme.md` ; la nurse peut être skinnable via `inventaire_skins.md` (si des skins de staff existent). ## Annexes Techniques ### 1. Données et États (tableau détaillé) | Donnée / État | Type | Exemple | Source | Contraintes | |---|---|---|---|---| | `catalog.species_id` | string | `PANDA` | DB | enum | | `catalog.baby_sprite_set_id` | string | `PANDA_BABY_SET` | assets | requis | | `catalog.scale_factor` | float | 0.5 | config | 0.3..0.7 | | `catalog.name_key` | string | `baby.PANDA` | i18n | FR/EN | | `catalog.badges` | string[] | `["B"]` | config | - | | `instance.animal_id` | uuid_v4 | `uuid_v4` | DB | - | | `instance.nurserie_id` | uuid_v4 \| null | `uuid_v4` | DB | - | | `instance.iso_x` | int \| null | 120 | DB | null si nurserie | | `instance.iso_y` | int \| null | 88 | DB | null si nurserie | | `instance.growth_progress` | float | 42.0 | DB | 0..100 | | `instance.danger_flags` | string[] | `["COLD","HUNGER"]` | calcul | à la volée | | `timestamps.updated_at` | timestamp | - | DB | UTC | #### Caractéristiques Initiales (tableau détaillé) | Caractéristique | Valeur initiale | Unité | Notes | |---|---:|---|---| | Compteur bébés | 0 | count | par zoo | | Score maternité | 0 | points | indicateur interne | | Bonus mignonnerie | 0 | % | dépend diversité | #### Scores Initiaux (tableau détaillé) | Score | Valeur initiale | Plage | Impact | |---|---:|---|---| | Diversité bébés | 0 | 0..∞ | bonus boutique “peluches” | | Taux bébés en danger | 0% | 0..100% | gestion, pas d’analytics | ### 2. Cycles de Vie et Apparition (tableau détaillé) | Phase | Déclencheur | Entrées | Sorties | Invariants | |---|---|---|---|---| | Apparition | naissance/achat œuf | espèce | bébé | mapping stable | | Suivi | ouverture inventaire | zoo_id | liste | tri stable | | Disparition | croissance/mort | animal | retiré de la vue bébés | historique conservé | #### Conditions d'Apparition (tableau détaillé) | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | Naissance | true | est | bébé apparaît | | Achat œuf | true | est | futur bébé (à éclosion) | #### Conditions de Disparition (tableau détaillé) | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | Croissance | 100 | >= | bascule “adulte” | | Mort | 0 santé | <= | retiré | #### Hérédité (tableau détaillé) | Élément | Hérité | Règle | |---|---|---| | Lien parents | Oui | fiche bébé → parents | | Potentiel | Oui | affichage étoiles grises | ### 3. Impacts Environnementaux #### Impact Température (tableau détaillé) | Condition | Effet inventaire | Notes | |---|---|---| | Froid/chaud | flag + icône flocon/soleil | clignote si critique | #### Impact Milieu (Biome) (tableau détaillé) | Biome | Effet inventaire | Notes | |---|---|---| | Incompatible | filtre “en danger” | signal fort | #### Impact Saisons (tableau détaillé) | Saison | Effet inventaire | Notes | |---|---|---| | Printemps | mise en avant naissances | tri optionnel | #### Impact Heure / Jour-Nuit (tableau détaillé) | Période | Effet inventaire | Notes | |---|---|---| | Nuit | état “Dort” | zzz | ### 4. Impacts Biologiques et Sociaux #### Impact Reproduction (tableau détaillé) | Facteur | Effet sur taux | Condition | |---|---|---| | Bébé | 0 | non reproductible | #### Impact Mort (tableau détaillé) | Cas | Effet | Condition | |---|---|---| | Historique | tag “mort en bas âge” | informatif | #### Impact Nourriture (tableau détaillé) | Ressource | Effet | Condition | |---|---|---| | Faim | icône biberon | seuil faim | #### Impact Attractivité(Visiteurs (tableau détaillé) | Action/État | Gain | Rayon | Notes | |---|---:|---:|---| | Diversité bébés ≥ 10 | + | - | bonus boutique peluches | #### Impact Attractivité Animaux) (tableau détaillé) | Action/État | Effet animaux | Condition | |---|---|---| | - | - | - | #### Impact Valeur (tableau détaillé) | Facteur | Variation | Condition | |---|---:|---| | Potentiel | affichage estimé | basé génétique | ### 5. Impacts Logistiques et Économiques #### Vitesse (Camion) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Nurserie) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | Croissance | barre temps réel | refresh à la volée | #### Vitesse (Accueil) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Recherche) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Labo) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Visite) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | Vedette | indicateur | bébé le plus consulté en jeu, sans analytics | #### Dépenses (Billeterie) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Boutiques) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Peluches | +5% ventes | % | diversité bébés ≥ 10 | #### Dépenses (Visiteurs) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Soins | estimation | coins | selon bébés malades | #### Dépenses (Employés) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Interventions | + | min | bébés en danger | #### 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 | |---|---:|---|---| | Slots | variable | coins | niveau | #### Dépenses (Nourriture) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Rations bébé | + | coins | métabolisme | #### Dépenses (Acceuil des animaux) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### 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 | |---|---|---|---| | Entrée | Bébé vedette | signal “mignonnerie” | route | ##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | Bébé vedette | Boutique peluches | bonus actif | achat | ##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | - | - | - | - | ### 6. Événements #### Événements du Jeu (tableau détaillé) | Event | Déclencheur | Payload | Effet | |---|---|---|---| | `OPEN_BABY_INVENTORY` | menu | - | UI | | `FILTER_BABY_DANGER` | toggle | flags | UI | | `NAVIGATE_TO_BABY` | clic | `animal_id` | zoom | #### Événements du Carte (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `BABY_MARKER_SHOW` | map open | marker | #### Événements du Zoo (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `CLICK_BABY` | clic | panneau | #### Événements du Ville / Visiteur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | - | - | - | #### Événements du Visiteur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | - | - | - | #### Événements du Joueur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `PLAYER_OPENS_BABY_INVENTORY` | menu | UI | ### 7. Progression #### Tableau des Upgrades (tableau détaillé) | Niveau | Coût | Effet | Débloque | |---|---:|---|---| | Nurserie 1 | 0 | slots base | gestion | | Nurserie 3 | 400 | vitrine | nouveaux signaux | ### 8. Logique et Interfaces #### Pseudo-code Impacts (tableau détaillé) | Fonction | Entrées | Sorties | Notes | |---|---|---|---| | `getBabyBonus` | baby | float | attractivité | | `computeDangerFlags` | baby, env | string[] | à la volée | #### Messages d'Infos / Alerte (tableau détaillé) | ID | Niveau | Message | Condition | |---|---|---|---| | `BABY_BORN` | Info | "Un nouveau bébé est né." | naissance | | `BABY_DANGER` | Warning | "Un bébé est en danger." | flags | ## Annexes UX/UI ### 1. Expérience Utilisateur (UX) #### Description UX (tableau détaillé) | Parcours | But | Friction | Réduction clics | |---|---|---|---| | Trouver bébés | suivi | dispersion | filtre danger + tri | | Ouvrir fiche | actions | navigation | clic ligne + bouton voir | #### Description UI (tableau détaillé) | Composant | Contenu | États | |---|---|---| | Liste bébés | lignes + icônes | normal/danger | | Badges danger | flocon/biberon/zzz | clignotant critique | | Panneau détail | génétique + croissance | actions | #### Emplacement (tableau détaillé) | Zone UI | Position | Notes | |---|---|---| | Inventaire | menu | registre | | Nurserie | slots | deep-link | #### Intégration (tableau détaillé) | Intégration | Contrat | Notes | |---|---|---| | `bebe_animal.md` | états bébé | flags | | `nurserie.md` | slots | navigation | #### Navigation (tableau détaillé) | Action | Chemin | Résultat | |---|---|---| | Ouvrir | menu → bébés | liste | | Filtrer danger | toggle | tri | | Voir bébé | bouton | zoom | #### Événements (tableau détaillé) | Event UI | Déclencheur | Effet | |---|---|---| | `OPEN_BABY_INVENTORY` | menu | UI | | `CLICK_BABY_ROW` | clic | panneau | #### Assets Skinables ##### Musiques (tableau détaillé) | Asset | Usage | Durée | Notes | |---|---|---:|---| | `baby_inventory_loop.mp3` | inventaire | loop | doux | ##### Sons (tableau détaillé) | Asset | Usage | Volume | |---|---|---| | `ui_toggle.mp3` | filtre | bas | | `baby_chirp_01.mp3` | survol | bas | ##### Graphiques (tableau détaillé) | Asset | Usage | Contraintes | |---|---|---| | `baby_badge_b.png` | badge | lisible | | `baby_flag_cold.png` | flocon | contraste | | `baby_flag_hunger.png` | biberon | contraste | ##### Images (tableau détaillé) | Asset | Usage | |---|---| | `baby_list_bg.png` | fond liste | ##### Vidéos (tableau détaillé) | Asset | Usage | Durée | |---|---|---:| | `baby_steps.webm` | décoratif | 1.5s | ##### Animations (tableau détaillé) | Animation | Déclencheur | Notes | |---|---|---| | clignotement danger | critique | 0.6s | | bounce badge | apparition | 0.4s | ##### Couleurs (tableau détaillé) | Token | Valeur | Usage | |---|---|---| | `baby_pastel` | #A7D8FF | UI | | `baby_danger` | #D32F2F | alerte | ##### Textes (tableau détaillé) | Clé | FR | EN | |---|---|---| | `baby.inventory.title` | Bébés | Babies | | `baby.inventory.danger` | En danger | In danger | ##### Formes (tableau détaillé) | Élément | Forme | Notes | |---|---|---| | Ligne | rectangle arrondi | lisible | | Badge | rond | constant |