ok
This commit is contained in:
@@ -120,3 +120,483 @@ function getBabyBonus(baby):
|
||||
- **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 |
|
||||
|
||||
Reference in New Issue
Block a user