This commit is contained in:
2026-03-05 04:01:29 +01:00
parent dfecb09b7c
commit 6c8a710432
32 changed files with 8203 additions and 3 deletions

49
docs/specs/maire.md Normal file
View File

@@ -0,0 +1,49 @@
# Maire (Ville)
## 1. Définition
Personnage représentant la ville sur la carte du monde. Il sert dinterface narrative-fonctionnelle pour les événements de ville (festival, grève, bonus économique) qui impactent le flux de visiteurs et le budget moyen.
## 2. Fonctions
* **Annonce événements** : Présente les événements de ville et leurs impacts chiffrés.
* **Relation ville-zoo** : Expose létat de relation/jumelage (si présent dans `ville.md`).
* **Point dentrée UI** : Personnage contextuel quand le joueur sélectionne une ville ou quand un événement `CITY_EVENT` survient.
## 3. Icone
* **Représentation :** Écharpe tricolore / blason.
* **Couleur dominante :** Bleu (institution) + accents thème.
## 4. Interactions
* **Clic ville** : ouvre le panneau ville (population, richesse, événements).
* **Clic alerte** : deep-link vers la ville concernée depuis une notification.
## 5. Annexes Techniques
### Données (JSON)
```json
{
"npc_id": "mayor_01",
"type": "maire",
"city_id": "uuid",
"name": "M. Dubois",
"state": "enum (IDLE, ANNOUNCING, NEGOTIATING)",
"current_event": "string | null"
}
```
### Règles Métier
* Les impacts annoncés par le maire doivent être **indexés** par la ville (population, richesse, distance, événement actif) conformément aux formules de `ville.md`.
* Pas de promesse “best effort” : si un événement est actif, il est listé, daté et son effet est explicite.
# Annexes UX/UI
## 0. Direction Artistique & Vue
* **Vue** : Carte monde (UI panneau + portrait).
* **Style** : Cohérent avec le thème (costume, écharpe, badge).
## Affichage contextuel (modules)
- **Ville** (`ville.md`) : sélection de ville, événements, variations de flux visiteurs.
- **Attractivité sur ville** (`attractivite_zoo_sur_ville.md`) : explication des variations de flux (si le module expose une UI).
## Skins & thèmes
* Variantes par thème (costume, palette) via `theme.md`.
* Accessoires via `inventaire_skins.md` si des skins “carte monde / ville” existent.