**Motivations:** - Harmoniser la documentation technique pour faciliter le développement. - Garantir l'exhaustivité des données de Game Design pour chaque entité. **Root causes:** - Documentation hétérogène et incomplète. **Correctifs:** - N/A **Evolutions:** - Réécriture complète de 53 fichiers de spécifications selon un modèle strict. - Ajout de données de Game Design (prix, durées, impacts) pour combler les manques. - Ajout systématique des annexes UX/UI. **Pages affectées:** - docs/specs/*
220 lines
7.9 KiB
Markdown
220 lines
7.9 KiB
Markdown
# 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" }
|
|
]
|
|
}
|
|
```
|
|
|
|
### 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
|
|
|
|
## 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** : N/A
|
|
**É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.
|