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

603 lines
18 KiB
Markdown
Raw Permalink 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 : 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 lidentification visuelle, laccès rapide aux fiches bébés, et laffichage des signaux de risque (froid, faim, biome) sans masquer létat. |
| Portée | Catalogue (par type danimal) + instances (bébés présents) dans un zoo. |
| Contrainte | Aucun compteur de vues/revenus par bébé (pas danalytics) ; 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 saffiche 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 danalytics |
### 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 |