Files
builazoo/docs/specs/vente_enchere_bebe.md
Nicolas Cantu 5143a79890 docs: enrich docs/specs and remove placeholders
**Motivations:**
- Make docs/specs implementation-ready without empty sections or placeholders.

**Root causes:**
- Multiple specs still contained non-actionable placeholders (N/A, “see above”, "..."), and inconsistent “no cache” wording.

**Correctifs:**
- Replace placeholders with explicit tables, structures, and typed examples.
- Align “no cache / no memorization” statements where relevant.

**Evolutions:**
- Add a features doc entry to track the documentation enrichment effort.

**Pages affectées:**
- docs/specs/*
- docs/features/docs-specs-enrichment.md
- docs/leo.md
- docs/plan-enrich-docs-specs.md
2026-03-05 03:08:15 +01:00

220 lines
7.3 KiB
Markdown
Raw 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 : Vente aux Enchères de Bébés
## Définition
Processus de vente spécifique pour les bébés animaux nés dans le zoo.
## Spécificités
- **Forte Valeur** : Les bébés ont souvent une valeur supérieure aux adultes car ils ont tout leur potentiel de vie et de reproduction devant eux.
- **Fragilité** : Un bébé mis en vente doit être vendu rapidement.
- **Risque** : Si l'enchère échoue ou dure trop longtemps sans acheteur, le bébé risque de mourir dans le camion ou la zone de vente (faim/froid).
## Processus
1. Sélection du bébé en Nurserie ou sur la grille.
2. Glisser-déposer vers la zone Camion.
3. Définition du prix de départ.
4. Apparition sur la Carte du Monde.
5. Si vendu : Transfert après délai de 10 min.
6. Si invendu : Retour nécessaire en Nurserie ou Mort.
# Annexes Techniques
## 1. Données et États
### Modèle de Données (JSON)
```json
{
"id": "uuid",
"seller_id": "uuid",
"animal_id": "uuid",
"start_price": "int",
"current_bid": "int",
"highest_bidder": "uuid | null",
"end_time": "timestamp",
"status": "active | sold | expired",
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer"
}
```
### Caractéristiques Initiales
| Caractéristique | Valeur |
| :--- | :--- |
| Durée Enchère | 1h - 24h (au choix) |
| Délai Validation | 10 min (fixe) |
### Scores Initiaux
| Score | Valeur Initiale | Plage (Min-Max) | Impact |
|---|---:|---|---|
| Visibilité Listing | 50 | 0-100 | Poids de tri côté marché. |
| Stress (vente) | 10 | 0-100 | Monte avec le temps ; au-delà de 70, accélère le risque de mort. |
| Confiance vendeur | 0 | -100 à +100 | Influence la participation des bots (anti-spam). |
## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Action joueur.
### Conditions de Disparition
Vente ou Expiration.
### Hérédité
| Parent | Trait Transmis | Probabilité | Mutation Possible |
|---|---|---:|---|
| Parents (réels) | Rareté/Couleur | cf. `reproduction.md` | Oui |
| Vendeur | “Certificat de soin” | 100% | Non |
## 3. Impacts Environnementaux
### Impact Température
| Plage Température | Effet sur l'entité | Bonus/Malus |
|---|---|---|
| < 5°C | Stress +2/min | Risque mort + (si durée > 10 min) |
| 20°C (Idéal) | Stress -1/min | Stabilise |
| > 30°C | Stress +2/min | Risque mort + (si durée > 10 min) |
### Impact Milieu (Biome)
| Biome / Contexte | Compatibilité | Bonus/Malus |
|---|---:|---|
| Marché (UI) | 100% | Aucun |
| Transport long | 80% | Fatigue + |
### Impact Saisons
| Saison | Effet | Modificateur |
|---|---|---|
| Printemps | Demande bébés + | Bids +10% |
| Été | Chaleur | Stress +10% |
| Automne | Neutre | 0% |
| Hiver | Froid | Stress +10% |
### Impact Heure / Jour-Nuit
| Période | Activité marché | Impact |
|---|---|---|
| 18h22h | Prime time | +15% bids |
| Nuit | Faible | -20% bids |
## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
| Facteur | Effet sur Taux | Condition |
|---|---|---|
| Bébé rare vendu | +10 réputation | Si `status` devient `sold` puis finalisé |
### Impact Mort
**Risque** : Si `status == expired` et non récupéré sous 1h -> Mort du bébé.
### Impact Nourriture
| Type Nourriture | Gain Santé | Coût | Préférence |
|---|---:|---:|---:|
| Lait / soin | Stabilise | inclus | 5 |
### Impact Attractivité (Visiteurs/Animaux)
| Action/État | Gain Attractivité | Rayon d'action |
|---|---:|---:|
| Vente bébé rare conclue | +25 | Global |
| Bébé mort (invendu) | -50 | Global |
### Impact Valeur
**Dépréciation** : Aucune (c'est une enchère).
## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
| Paramètre | Valeur | Unité | Règle |
|---|---:|---|---|
| Délai validation | 10 | min | après acceptation |
| Fenêtre récupération invendu | 1 | h | sinon mort bébé |
### Dépenses (Boutiques/Visiteurs)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Taxe marché | 10% | du prix final | prélevée à finalisation |
| Assurance transport | 5% | du prix final | optionnel |
### Trajet Visiteurs
| Trajet | Condition | Effet | Notes |
|---|---|---|---|
| Consultation acheteurs | ouverture marché | tri par visibilité | pas de visiteurs physiques |
## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
* **Nouvelle Enchère** : Notification.
* **Surenchère** : Notification vendeur.
* **Vente Terminée** : Notification.
## 7. Progression
### Tableau des Upgrades
| Niveau | Coût | Prérequis | Bonus Débloqué |
|---|---:|---|---|
| 1 | 0 | - | Accès enchères bébés |
| 2 | 1000 | Réputation 200 | Taxe -1% |
| 3 | 5000 | Réputation 1000 | Visibilité +10 |
## 8. Logique et Interfaces
### Pseudo-code Impacts
```text
onAcceptBid(auction, bid):
auction.status = 'pending_validation'
auction.pending_until = now + 10min
onTick():
if auction.status == 'pending_validation' and now >= pending_until:
finalize(auction)
finalize(auction):
transferCoins(bidder, seller, amount - tax)
scheduleDelivery(truck, bidderZoo)
auction.status = 'sold'
```
### Messages d'Infos / Alerte
| ID | Niveau | Message |
| :--- | :--- | :--- |
| `AUCTION_SOLD` | Succès | "Bébé vendu !" |
| `AUCTION_FAIL` | Alerte | "Enchère terminée sans acheteur. Récupérez le bébé !" |
# 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)
### Mise en Vente (Action)
**Description UX** : Le joueur glisse un bébé depuis la nurserie vers le camion.
**Description UI** : **Bottom Sheet** de configuration "Vendre ce bébé". Choix du prix de départ et de la durée.
**Emplacement** : Zoo -> Modal Vente.
**Intégration** : Formulaire.
**Navigation** : Drag -> Config -> Valider.
**Événements** : `CREATE_AUCTION`.
#### Assets
- **Musiques** : `ui_market_open.mp3` (jingle court).
- **Sons** : `cash_register_open.mp3`.
- **Graphiques** : Icône Bourse/Pièce.
- **Images** : Portrait Bébé.
- **Vidéos** : `auction_sheet_intro.webm` (0.8s non loop, optionnel).
- **Animations** : Compteur “mise à prix” qui sincrémente, pulsation du bouton “Valider”.
- **Couleurs** : Or.
- **Textes** : "Prix de départ", "Durée".
- **Formes** : Champs de saisie.
### Suivi Vente (Passif)
**Description UX** : Le joueur voit son offre active sur son propre zoo (Carte Monde) ou dans son menu "Ventes".
**Description UI** : Liste "Mes Ventes". Compteur d'enchères reçues.
**Emplacement** : Menu Gestion -> Ventes.
**Intégration** : Liste.
**Navigation** : Menu -> Ventes.
**Événements** : `OPEN_MY_SALES`.
#### Assets
- **Musiques** : `ui_market_list.mp3` (jingle discret optionnel).
- **Sons** : `notification.mp3` (si offre reçue).
- **Graphiques** : Icône cloche + badge compteur.
- **Images** : `icon_hourglass.png`, `icon_bid.png`.
- **Vidéos** : `bid_badge_pulse.webm` (0.6s loop, optionnel).
- **Animations** : Badge qui pulse sur nouvelle offre.
- **Couleurs** : Ambre (#F39C12) en attente validation, Vert (#2ECC71) vendu.
- **Textes** : "Meilleure offre : X".
- **Formes** : Pills (badges), cartes liste.