Files
builazoo/docs/specs/site_generique.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

180 lines
5.3 KiB
Markdown
Raw Permalink 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 : Site (Générique)
## Définition
Un site est un lieu d'intérêt positionné sur la Carte du Monde.
## Types de sites
1. **Zoo** : Espace de gestion d'un joueur ou d'un bot.
2. **Ville** : Zone résidentielle générant des visiteurs.
3. **Laboratoire** : Lieu de production d'animaux spéciaux/rares.
## Propriétés Communes
- **Position** : Coordonnées fixes (x, y) sur la grille du monde.
- **Nom** : Identifiant unique ou généré.
- **Représentation** : Icône spécifique + Informations contextuelles (Offres, stats).
# Annexes Techniques
## 1. Données et États
### Modèle de Données (JSON)
```json
{
"id": "uuid",
"type": "enum",
"name": "string",
"position": { "x": "int", "y": "int" },
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer"
}
```
### Caractéristiques Initiales
| Caractéristique | Valeur Initiale | Type | Description |
|---|---:|---|---|
| Visibilité | 100 | 0-100 | Probabilité dêtre visible/affichable selon fog-of-war et zoom. |
| Interactions activées | true | bool | Désactivable pour sites “décoratifs”. |
### Scores Initiaux
| Score | Valeur Initiale | Plage (Min-Max) | Impact |
|---|---:|---|---|
| Popularité | 0 | 0-100 | Pour ville : influence flux ; pour zoo : reflète attractivité. |
| Danger | 0 | 0-100 | Pour labos/événements : risque dincident. |
## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Génération procédurale ou création joueur.
### Conditions de Disparition
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Type “événement” | fin timer | >= | Site supprimé (si événement temporaire). |
### Hérédité
| Parent | Trait Transmis | Probabilité | Mutation Possible |
|---|---|---:|---|
| Monde | Découverte | 100% | Non |
## 3. Impacts Environnementaux
### Impact Température
| Condition | Effet |
|---|---|
| Tempête régionale | modifie les flux/visites | impact de contexte |
### Impact Milieu (Biome)
| Biome | Effet |
|---|---|
| Biome ville | type de visiteurs | modifie budget moyen |
### Impact Saisons
| Saison | Effet |
|---|---|
| Hiver | routes plus lentes | dist effective + |
### Impact Heure / Jour-Nuit
| Période | Effet |
|---|---|
| Nuit | lumières sites | rendu + |
## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
| Facteur | Effet sur Taux | Condition |
|---|---|---|
| Labo événement | boost génétique | si lab actif |
### Impact Mort
| Cause | Conséquence | Durée |
|---|---|---|
| Catastrophe sur site | fermeture | 24h |
### Impact Nourriture
| Facteur | Variation | Condition |
|---|---|---|
| Ville agricole | stock nourriture + | économie |
### Impact Attractivité (Visiteurs/Animaux)
| Action/État | Gain Attractivité | Rayon d'action |
|---|---:|---:|
| Zoo halo | + | visibilité monde |
### Impact Valeur
| Facteur | Variation | Condition |
|---|---|---|
| Emplacement premium | + | proche villes |
## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
| Domaine | Paramètre | Valeur | Unité | Notes |
|---|---|---:|---|---|
| Survol/tooltip | délai | 200 | ms | évite popups instantanés |
### Dépenses (Boutiques/Visiteurs)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Taxe régionale | 1% | transaction | route commerciale |
### Trajet Visiteurs
| Trajet | Condition | Effet | Notes |
|---|---|---|---|
| Ville→Zoo | attraction | flux | cf. attractivité |
## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
| Event | Déclencheur | Effet | Durée |
|---|---|---|---|
| `SITE_HOVER` | survol | tooltip | tant que hover |
| `SITE_SELECTED` | clic | panneau détail | jusquà fermeture |
## 7. Progression
### Tableau des Upgrades
| Niveau | Coût | Prérequis | Bonus Débloqué |
|---|---:|---|---|
| 1 | 0 | - | Tooltips |
## 8. Logique et Interfaces
### Pseudo-code Impacts
```text
onHoverSite(site):
showTooltip(site.name, site.type, site.keyMetric)
onClickSite(site):
openDetailPanel(site)
```
### Messages d'Infos / Alerte
| Type | Message | Condition | Priorité |
|---|---|---|---:|
| Info | "Site sélectionné." | clic | 2 |
| Warn | "Site indisponible." | fermé/lock | 4 |
# 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)
### Info-bulle (Consultation)
**Description UX** : Survoler un site donne ses détails.
**Description UI** : Tooltip avec Nom, Type, et Info clé (ex: Population pour Ville, Offre pour Zoo).
**Emplacement** : Carte Monde.
**Intégration** : Tooltip souris / Tap hold mobile.
**Navigation** : Survol.
**Événements** : `HOVER_SITE`.
#### Assets
- **Musiques** : `ui_tooltip_soft.mp3` (jingle discret).
- **Sons** : `pop.mp3` léger.
- **Graphiques** : Fond noir semi-transparent.
- **Images** : `site_icon_zoo.png`, `site_icon_city.png`, `site_icon_lab.png`.
- **Vidéos** : `tooltip_fade.webm` (0.6s loop, optionnel).
- **Animations** : Fade in rapide.
- **Couleurs** : Blanc sur Noir.
- **Textes** : "Paris (1M hab.)".
- **Formes** : Rectangle arrondi.