# Spécifications : Attractivité des Zoos sur les Visiteurs des Villes ## Définition Capacité d'un zoo à faire déplacer des visiteurs depuis une ville située sur la Carte du Monde. ## Formule d'Attraction L'attraction est calculée pour chaque couple (Ville, Zoo). `Attraction = (Score_Reputation_Zoo / Distance^2) * Facteur_Ville` ## Facteurs d'Influence 1. **Score de Réputation** : Plus le zoo est prestigieux, plus il attire de loin. 2. **Distance** : La proximité géographique sur la carte du monde est déterminante. 3. **Concurrence** : Les visiteurs se répartissent entre les zoos attractifs. ## Impact - Détermine le flux entrant quotidien de visiteurs (le nombre de personnes qui passent la porte de la Billeterie). - Si l'attraction est nulle, aucun visiteur ne vient. # Annexes Techniques ## 1. Données et États ### Modèle de Données (JSON) Calculé à la volée, sans cache (cf. règle “pas de mémorisation”). ```json { "zoo_id": "uuid", "city_id": "uuid", "attraction_score": "float" } ``` ### Caractéristiques Initiales | Caractéristique | Valeur Initiale | Type | Description | |---|---|---|---| | Rayon attraction max | 30 | cases monde | Au-delà, attraction = 0 (plafond). | | Facteur ville | 1.0 | float | Multiplie le flux (population/aisance). | ### Scores Initiaux | Score | Valeur Initiale | Plage (Min-Max) | Impact | |---|---:|---|---| | Attraction brute | 0 | 0-∞ | Avant concurrence/plafonds. | | Flux visiteurs/jour | 0 | 0-∞ | Résultat final injecté à la billeterie. | ## 2. Cycles de Vie et Apparition ### Conditions d'Apparition | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | Zoo et ville existent | true | Est | Calcul possible. | ### Conditions de Disparition | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | Zoo supprimé | true | Est | Flux devient 0. | ### Hérédité | Parent | Trait Transmis | Probabilité | Mutation Possible | |---|---|---:|---| | Soft reset | Cartographie connue | 100% | Non | ## 3. Impacts Environnementaux ### Impact Température | Condition | Effet | |---|---| | Températures extrêmes régionales | réduit la volonté de voyager | flux -10% à -30% | ### Impact Milieu (Biome) | Biome / route | Effet | |---|---| | Montagne (routes lentes) | distance effective + | flux - | ### Impact Saisons **Hiver** : Réduit la volonté de voyager (-20% rayon d'attraction). ### Impact Heure / Jour-Nuit | Période | Effet | |---|---| | Nuit | pas de départs | flux 0 vers billeterie | ## 4. Impacts Biologiques et Sociaux ### Impact Reproduction | Facteur | Effet sur Taux | Condition | |---|---|---| | Naissances médiatisées | flux + | événement “baby boom” | ### Impact Mort | Cause | Conséquence | Durée | |---|---|---| | Série de morts | flux - | 24h (décroissance) | ### Impact Nourriture | Facteur | Variation | Condition | |---|---|---| | Prix nourriture élevé | visiteurs budget - | dépense moyenne - | ### Impact Attractivité (Visiteurs/Animaux) Voir formule. ### Impact Valeur | Facteur | Variation | Condition | |---|---|---| | Ville riche | dépense moyenne + | facteur ville > 1 | ## 5. Impacts Logistiques et Économiques ### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite) | Paramètre | Valeur | Unité | Effet | |---|---:|---|---| | Recalcul flux | 1 | jour in-game | Recalcul quotidien (ou lazy). | ### Dépenses (Boutiques/Visiteurs) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Marketing ville ciblée | 500–5000 | coins | augmente facteur ville temporaire | ### Trajet Visiteurs | Trajet | Condition | Effet | Notes | |---|---|---|---| | Ville→Zoo | calcul distance | flux | distance^2 + plafond rayon | ## 6. Événements ### Événements du Jeu / Carte / Zoo / Ville / Visiteur | Event | Déclencheur | Effet | Durée | |---|---|---|---| | `FLOW_UPDATED` | recalcul quotidien | met à jour overlay | instant | | `CITY_FESTIVAL` | événement ville | flux - | 1 jour | ## 7. Progression ### Tableau des Upgrades | Niveau | Coût | Prérequis | Bonus Débloqué | |---|---:|---|---| | 1 | 0 | - | Flux visible sur carte monde | | 2 | 2000 | réputation 300 | Rayon attraction +10% | ## 8. Logique et Interfaces ### Pseudo-code Impacts ``` function calculateDailyVisitors(zoo, city): dist = distance(zoo.pos, city.pos) if dist > zoo.maxAttractionRange: return 0 baseFlow = city.population * (zoo.reputation / (dist * dist)) return baseFlow * seasonMod ``` ### Messages d'Infos / Alerte | Type | Message | Condition | Priorité | |---|---|---|---:| | Info | "Nouvelle estimation visiteurs/jour : {n}" | recalcul | 2 | | Warn | "La distance réduit fortement vos visiteurs." | dist proche plafond | 3 | # 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 Flux (Consultation) **Description UX** : Le joueur regarde la carte du monde pour voir d'où viennent ses visiteurs. **Description UI** : Lignes pointillées mouvantes reliant les villes au zoo. Épaisseur = Volume flux. **Particules** : Petits points ou voitures circulant sur les lignes pour donner une sensation de vie. **Emplacement** : Carte Monde. **Intégration** : Overlay. **Navigation** : Toggle “Flux visiteurs” dans le HUD carte monde → survol d’une ligne → affiche détail (ville, visiteurs/jour, facteur saison, distance). **Événements** : `VIEW_FLOW`. #### Assets - **Musiques** : `ambience_world_flow.mp3` (léger, optionnel). - **Sons** : `ui_flow_toggle.mp3` (toggle overlay). - **Graphiques** : Lignes de flux. - **Images** : `flow_dotted_line.png`, `car_particle.png`. - **Vidéos** : `flow_ants.webm` (1s loop, optionnel). - **Animations** : Pointillés qui avancent (effet fourmis). - **Couleurs** : Blanc ou Vert fluo. - **Textes** : "150 visiteurs/jour". - **Formes** : Courbes de Bézier.