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

6.1 KiB
Raw Blame History

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”).

{
  "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

Impact Milieu (Biome)

Biome / route Effet
Montagne (routes lentes) distance effective +

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

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 5005000 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 dune 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.