**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
198 lines
7.1 KiB
Markdown
198 lines
7.1 KiB
Markdown
# Spécifications : Vente aux Enchères d'Animaux
|
||
|
||
## Définition
|
||
Processus de vente pour les animaux adultes.
|
||
|
||
## Spécificités
|
||
- **Valeur Variable** : Dépend de la rareté, mais aussi de l'âge et du "Score de Reproduction" restant. Un vieil animal vaut moins cher.
|
||
- **Résistance** : Les adultes supportent mieux la période de mise en vente que les bébés.
|
||
|
||
## Processus
|
||
Identique à la vente de bébés, mais avec des tolérances plus grandes sur les délais avant impact négatif sur la santé de l'animal.
|
||
|
||
# Annexes Techniques
|
||
|
||
## 1. Données et États
|
||
### Modèle de Données (JSON)
|
||
Identique à `vente_enchere_bebe.md`.
|
||
|
||
### Caractéristiques Initiales
|
||
| Caractéristique | Valeur | Notes |
|
||
|---|---|---|
|
||
| Durée Enchère | 4h - 24h | Les adultes tolèrent des durées plus longues que les bébés. |
|
||
| Délai Validation | 10 min | Identique au générique enchères (sablier). |
|
||
| Dégradation âge | Oui | Prix perçu diminue avec l’âge (cf. `animal_generique.md`). |
|
||
|
||
### Scores Initiaux
|
||
| Score | Valeur Initiale | Plage (Min-Max) | Impact |
|
||
|---|---:|---|---|
|
||
| Valeur perçue (âge) | 100 | 0-150 | Modifie la propension des bots à enchérir. |
|
||
| Résistance transport | 80 | 0-100 | Réduit les risques d’incident pendant vente/transport. |
|
||
|
||
## 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 (si connus) | Arbre généalogique | 100% | Non |
|
||
| Vendeur | “Certificat d’entretien” | 100% | Non |
|
||
|
||
## 3. Impacts Environnementaux
|
||
### Impact Température
|
||
| Plage Température | Effet sur l'entité | Bonus/Malus |
|
||
|---|---|---|
|
||
| < 0°C | Fatigue + | Risque incident +5% si pas de camion climatisé |
|
||
| 15–25°C | Stable | 0 |
|
||
| > 35°C | Fatigue + | Risque incident +5% si pas de camion climatisé |
|
||
|
||
### Impact Milieu (Biome)
|
||
| Biome | Compatibilité | Bonus/Malus |
|
||
|---|---:|---|
|
||
| Marché (UI) | 100% | Aucun |
|
||
| Transport long | 90% | Légère fatigue (adultes résistent) |
|
||
|
||
### Impact Saisons
|
||
| Saison | Effet | Modificateur |
|
||
|---|---|---|
|
||
| Hiver | Demande espèces froides + | Bids +10% (espèces adaptées) |
|
||
| Été | Demande espèces chaudes + | Bids +10% (espèces adaptées) |
|
||
|
||
### Impact Heure / Jour-Nuit
|
||
| Période | Activité marché | Impact |
|
||
|---|---|---|
|
||
| 18h–22h | Prime time | +10% bids |
|
||
| Nuit | Faible | -15% bids |
|
||
|
||
## 4. Impacts Biologiques et Sociaux
|
||
### Impact Reproduction
|
||
| Facteur | Effet sur Taux | Condition |
|
||
|---|---|---|
|
||
| Adulte fertile vendu | Prix x2 | Si fertilité > seuil et pas en cooldown |
|
||
|
||
### Impact Mort
|
||
**Risque** : Si `status == expired` et non récupéré sous 24h -> Mort.
|
||
|
||
### Impact Nourriture
|
||
| Type Nourriture | Gain Santé | Coût | Préférence |
|
||
|---|---:|---:|---:|
|
||
| Rations transport | stable | inclus | 3 |
|
||
|
||
### Impact Attractivité (Visiteurs/Animaux)
|
||
| Action/État | Gain Attractivité | Rayon d'action |
|
||
|---|---:|---:|
|
||
| Vente star (rare) | -10% attractivité zoo | Global (zoo vendeur) |
|
||
|
||
### Impact Valeur
|
||
| Facteur | Variation Prix | Condition |
|
||
|---|---:|---|
|
||
| Âge élevé | -20% | au-delà du seuil “senior” |
|
||
| Santé parfaite | +10% | survival élevé |
|
||
|
||
## 5. Impacts Logistiques et Économiques
|
||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||
| Paramètre | Valeur | Unité | Règle |
|
||
|---|---:|---|---|
|
||
| Fenêtre récupération invendu | 24 | h | sinon risque mort adulte (cf. spec) |
|
||
| Délai validation | 10 | min | après acceptation |
|
||
|
||
### Dépenses (Boutiques/Visiteurs)
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Taxe marché | 10% | du prix final | prélevée à finalisation |
|
||
| Assurance transport | 3% | du prix final | optionnel |
|
||
|
||
### Trajet Visiteurs
|
||
| Trajet | Condition | Effet | Notes |
|
||
|---|---|---|---|
|
||
| Consultation marché | ouverture UI | tri | pas de visiteurs physiques |
|
||
|
||
## 6. Événements
|
||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||
| Event | Déclencheur | Effet | Durée |
|
||
|---|---|---|---|
|
||
| `AUCTION_CREATED_ADULT` | création enchère | listing visible | jusqu’à fin |
|
||
| `AUCTION_EXPIRED_ADULT` | end_time atteint | statut expired | jusqu’à récupération |
|
||
| `AUCTION_FINALIZED_ADULT` | validation finie | transfert | instant |
|
||
|
||
## 7. Progression
|
||
### Tableau des Upgrades
|
||
| Niveau | Coût | Prérequis | Bonus Débloqué |
|
||
|---|---:|---|---|
|
||
| 1 | 0 | - | Accès enchères adultes |
|
||
| 2 | 2000 | Réputation 300 | Taxe -1% |
|
||
|
||
## 8. Logique et Interfaces
|
||
### Pseudo-code Impacts
|
||
```text
|
||
createAuctionAdult(animal, startPrice, duration):
|
||
assert animal.isAdult && animal.health > 50
|
||
moveToTransit(animal)
|
||
publishListing()
|
||
|
||
onExpire():
|
||
markExpired()
|
||
startReclaimTimer(24h)
|
||
```
|
||
|
||
### Messages d'Infos / Alerte
|
||
| Type | Message | Condition | Priorité |
|
||
|---|---|---|---:|
|
||
| Info | "Enchère créée." | listing publié | 2 |
|
||
| Warn | "Enchère expirée : récupérez l’animal." | status expired | 4 |
|
||
| Error | "Impossible de vendre : animal indisponible." | malade/mort proche | 5 |
|
||
|
||
# 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 sélectionne un animal adulte sur la grille et choisit "Vendre".
|
||
**Description UI** : Bouton contextuel "Vendre" sur le panneau animal. Ouvre la **Bottom Sheet** de configuration (Prix, Durée).
|
||
**Emplacement** : Panneau Animal -> Modal Vente.
|
||
**Intégration** : Contextuel.
|
||
**Navigation** : Clic Animal -> Vendre -> Config -> Valider.
|
||
**Événements** : `CREATE_AUCTION_ADULT`.
|
||
|
||
#### Assets
|
||
- **Musiques** : `ui_market_open.mp3` (jingle court).
|
||
- **Sons** : `cash_register_open.mp3`.
|
||
- **Graphiques** : Icône bourse + badge “adulte”.
|
||
- **Images** : Portrait Animal.
|
||
- **Vidéos** : `auction_sheet_intro.webm` (0.8s non loop, optionnel).
|
||
- **Animations** : Animal disparaît de la grille (part en zone de vente).
|
||
- **Couleurs** : Or/Gris (adulte), Ambre (pending validation).
|
||
- **Textes** : "Mise à prix".
|
||
- **Formes** : Bottom sheet + cartes.
|
||
|
||
### Retour Invendu (Action)
|
||
**Description UX** : L'enchère est finie sans acheteur. Le joueur doit récupérer l'animal.
|
||
**Description UI** : Notification "Vente expirée". Bouton "Récupérer" dans le menu Ventes.
|
||
**Emplacement** : Menu Ventes -> Accueil Animaux.
|
||
**Intégration** : Action requise.
|
||
**Navigation** : Clic Récupérer -> Choix Case (si Accueil plein).
|
||
**Événements** : `RECLAIM_ANIMAL`.
|
||
|
||
#### Assets
|
||
- **Musiques** : `ui_fail_soft.mp3` (jingle court).
|
||
- **Sons** : `sad_trombone.mp3` (échec).
|
||
- **Graphiques** : Icône retour (flèche).
|
||
- **Images** : `icon_reclaim.png`.
|
||
- **Vidéos** : `reclaim_return.webm` (1.2s non loop, optionnel).
|
||
- **Animations** : Retour visuel de l'animal.
|
||
- **Couleurs** : Gris (Désactivé).
|
||
- **Textes** : "Invendu".
|
||
- **Formes** : Bouton primary “Récupérer”.
|