# 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 |
|---|---|---|
| 18h–22h | 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 s’incré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.
