# Maire (Ville) ## 1. Définition Personnage représentant la ville sur la carte du monde. Il sert d’interface 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 d’entré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.