172 lines
5.5 KiB
Markdown
172 lines
5.5 KiB
Markdown
# Spécifications : Ville (Site)
|
||
|
||
## Définition
|
||
Une ville est une entité sur la Carte du Monde qui génère le flux de visiteurs vers les zoos.
|
||
|
||
## Propriétés
|
||
- **Nom** : Nom de la ville.
|
||
- **Population** : Nombre de visiteurs potentiels maximum.
|
||
- **Icône** : 🏙️
|
||
|
||
## Mécanique d'Attraction
|
||
- Les visiteurs partent de la ville pour aller vers les zoos.
|
||
- **Facteur de Distance** : Plus un zoo est proche d'une ville, plus il attire de visiteurs.
|
||
- **Facteur d'Attractivité** : La valeur et la diversité du zoo influencent le choix des visiteurs.
|
||
|
||
## Personnage contextuel (événements & interaction)
|
||
Voir `maire.md`.
|
||
|
||
### Affichage
|
||
Le maire s’affiche lorsque :
|
||
- la ville est **actionnée** (sélection/clic ville, ouverture panneau ville) ;
|
||
- un **événement** de ville survient (festival, grève, bonus économique, `CITY_EVENT`).
|
||
|
||
### Déclencheurs (exemples)
|
||
| Event | Condition | Effet UI personnage |
|
||
|---|---|---|
|
||
| sélection ville | clic icône ville | portrait + synthèse (population, richesse, flux) |
|
||
| `CITY_EVENT` | événement actif | bulle “Événement en cours” + impacts chiffrés |
|
||
|
||
### Skins & thèmes
|
||
Portrait et accessoires suivent `theme.md` ; variantes “ville” possibles via `inventaire_skins.md`.
|
||
|
||
# Annexes Techniques
|
||
|
||
## 1. Données et États
|
||
### Modèle de Données (JSON)
|
||
```json
|
||
{
|
||
"id": "uuid",
|
||
"type": "city",
|
||
"name": "string",
|
||
"population": "integer",
|
||
"wealth_factor": "float (0.5 - 2.0)",
|
||
"iso_x": "integer",
|
||
"iso_y": "integer",
|
||
"z_index": "integer"
|
||
}
|
||
```
|
||
|
||
### Caractéristiques Initiales
|
||
| Caractéristique | Valeur Moyenne |
|
||
| :--- | :--- |
|
||
| Population | 10,000 - 1,000,000 |
|
||
| Richesse | 1.0 |
|
||
|
||
### Scores Initiaux
|
||
**Niveau de Bonheur** : 50% (Influence la fréquence des visites).
|
||
|
||
## 2. Cycles de Vie et Apparition
|
||
### Conditions d'Apparition
|
||
Génération carte.
|
||
|
||
### Conditions de Disparition
|
||
**Désastre** : Ville détruite (Event rare "Météorite" ou "Crise Éco").
|
||
|
||
### Hérédité
|
||
**Jumelage** : Bonus permanent de flux (+5%) si relation max atteinte avec une ville.
|
||
|
||
## 3. Impacts Environnementaux
|
||
### Impact Température
|
||
**Ilot de chaleur** : La ville est toujours +2°C par rapport à la campagne environnante.
|
||
|
||
### Impact Milieu (Biome)
|
||
**Architecture** : Adaptée au biome (Igloos en Toundra, Tentes en Désert, Gratte-ciels en Plaine).
|
||
|
||
### Impact Saisons
|
||
**Festivals** : Event saisonnier en ville (+Visiteurs pendant 24h).
|
||
- Été : Carnaval.
|
||
- Hiver : Marché de Noël.
|
||
|
||
### Impact Heure / Jour-Nuit
|
||
**Lumières** : La ville brille la nuit (Pollution lumineuse visible).
|
||
|
||
## 4. Impacts Biologiques et Sociaux
|
||
### Impact Reproduction
|
||
**Baby Boom** : Augmente la population de la ville (+Flux) pendant 1 semaine.
|
||
|
||
### Impact Mort
|
||
**Épidémie** : Baisse population temporaire (-Flux).
|
||
|
||
### Impact Nourriture
|
||
**Marché** : La ville vend de la nourriture au joueur (Source d'approvisionnement).
|
||
|
||
### Impact Attractivité (Visiteurs/Animaux)
|
||
Source du flux. `Flux = Pop * (AttractivitéZoo / Distance²)`.
|
||
|
||
### Impact Valeur
|
||
**PIB** : Influence le budget des visiteurs (Richesse). Une ville riche envoie des VIP.
|
||
|
||
## 5. Impacts Logistiques et Économiques
|
||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||
**Trafic** : Ralentit les camions traversant la ville aux heures de pointe (8h-9h, 17h-18h).
|
||
|
||
### Dépenses (Boutiques/Visiteurs)
|
||
**Facteur Richesse** : Multiplie le budget des visiteurs issus de cette ville.
|
||
|
||
### Trajet Visiteurs
|
||
Point de départ. Les visiteurs arrivent en bus/voiture depuis la ville.
|
||
|
||
## 6. Événements
|
||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||
* **Fête Nationale** : Flux x2.
|
||
* **Grève** : Flux / 2.
|
||
|
||
## 7. Progression
|
||
### Tableau des Upgrades
|
||
*Note : Campagnes Marketing ciblées.*
|
||
| Niveau Campagne | Coût | Effet |
|
||
| :--- | :--- | :--- |
|
||
| 1 (Panneaux) | 500 | +5% Flux |
|
||
| 2 (Radio) | 1500 | +10% Flux |
|
||
| 3 (TV) | 5000 | +20% Flux |
|
||
|
||
## 8. Logique et Interfaces
|
||
### Pseudo-code Impacts
|
||
```javascript
|
||
function calculateVisitorFlow(city, zoo):
|
||
distance = getDistance(city, zoo)
|
||
baseFlow = city.population * (zoo.attractiveness / (distance * distance))
|
||
|
||
if isPeakHour(): baseFlow *= 1.5
|
||
if city.hasEvent(): baseFlow *= 2.0
|
||
|
||
return baseFlow
|
||
```
|
||
|
||
### Messages d'Infos / Alerte
|
||
| ID | Niveau | Message |
|
||
| :--- | :--- | :--- |
|
||
| `CITY_EVENT` | Info | "C'est la fête à [NomVille] ! Attendez-vous à du monde." |
|
||
|
||
# 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)
|
||
### Visualisation Taille (Passif)
|
||
**Description UX** : Distinguer les grandes villes des petites.
|
||
**Description UI** : Taille de l'icône proportionnelle à la population. Gratte-ciels vs Maisons.
|
||
**Emplacement** : Carte Monde.
|
||
**Intégration** : Sprite.
|
||
**Navigation** : Zoom sur la carte.
|
||
**Événements** : `MAP_ZOOM`.
|
||
|
||
#### Assets
|
||
- **Musiques** : Ambiance urbaine (klaxons lointains, vent).
|
||
- **Sons** : Bruit de trafic faible.
|
||
- **Graphiques** : Sprites Ville (Petit, Moyen, Grand).
|
||
- **Images** : Silhouette Skyline.
|
||
- **Vidéos** : Lumières des fenêtres qui s'allument la nuit (Pixel Art animé).
|
||
- **Animations** : Fumée des cheminées.
|
||
- **Couleurs** : Gris/Bleu.
|
||
- **Textes** : Nom Ville.
|
||
- **Formes** : Cercle d'influence (zone de chalandise).
|