Files
builazoo/docs/specs/billeterie.md
Nicolas Cantu f0219559c5 Standardisation exhaustive des spécifications techniques
**Motivations:**
- Harmoniser la documentation technique pour faciliter le développement.
- Garantir l'exhaustivité des données de Game Design pour chaque entité.

**Root causes:**
- Documentation hétérogène et incomplète.

**Correctifs:**
- N/A

**Evolutions:**
- Réécriture complète de 53 fichiers de spécifications selon un modèle strict.
- Ajout de données de Game Design (prix, durées, impacts) pour combler les manques.
- Ajout systématique des annexes UX/UI.

**Pages affectées:**
- docs/specs/*
2026-03-04 18:07:31 +01:00

7.1 KiB

Spécifications : Billeterie

Définition

Bâtiment d'entrée du zoo. Point d'apparition et de départ des visiteurs.

Fonctionnalités

  • Entrée/Sortie : Génère le flux de visiteurs.
  • Vente de tickets : Génère des revenus par visiteur entrant.
  • Capacité : Limite le nombre de visiteurs simultanés dans le zoo.

Niveaux d'Amélioration (7 niveaux)

  • Coût : Progressif par palier.
  • Effet : Augmente le prix du ticket et la capacité maximale de visiteurs simultanés.
  • Ratio : 1 unité couvre 20 visiteurs simultanés max.

Annexes Techniques

1. Données et États

Modèle de Données (JSON)

{
  "id": "uuid",
  "type": "ticket_booth",
  "level": "integer (1-7)",
  "position": { "x": "int", "y": "int" },
  "stats": {
    "total_entries": "integer",
    "daily_revenue": "integer"
  }
}

Caractéristiques Initiales

Caractéristique Valeur Initiale (Niv 1)
Prix Ticket 10 pièces
Capacité Max 20 visiteurs

Scores Initiaux

File d'attente : 0 personnes. Revenus cumulés : 0.

2. Cycles de Vie et Apparition

Conditions d'Apparition

Présent au démarrage (Unique).

Conditions de Disparition

Indestructible.

Hérédité

Renommée : Un vieux zoo (reset) garde 10% de son flux initial grâce à sa réputation passée.

3. Impacts Environnementaux

Impact Température

Pluie : Vente automatique de parapluies à l'entrée (+5 pièces/visiteur). Canicule : Distribution d'éventails (Coût 1 pièce, mais +Satisfaction).

Impact Milieu (Biome)

Décoration : Si le biome de l'entrée correspond au biome majoritaire du zoo, +5% Attractivité (Cohérence thématique).

Impact Saisons

Saison Modificateur Prix Ticket
Été +20% (Haute saison)
Hiver -10% (Basse saison, promo "Hiver Sauvage")
Automne -5% (Rentrée)
Printemps +10% (Vacances Pâques)

Impact Heure / Jour-Nuit

Ouverture : 08h00 - 20h00. Fermé la nuit (sauf événements "Nocturne" débloqués au Niv 5).

4. Impacts Biologiques et Sociaux

Impact Reproduction

Mascotte : Si un bébé rare est né < 24h, affiche "Venez voir le bébé !" -> +10% Ventes Tickets.

Impact Mort

Scandale : Si une mort est visible depuis l'entrée, -50% entrées pendant 24h.

Impact Nourriture

Odeur Snack : Si un stand de nourriture est proche (< 5 cases), +5% faim des visiteurs dès l'entrée (Mise en appétit).

Impact Attractivité (Visiteurs/Animaux)

Point d'entrée unique. L'attractivité globale du zoo détermine le flux qui se présente à la billeterie.

Impact Valeur

Valeur Bâtiment : 50% du coût de construction/upgrade récupérable si destruction (impossible ici, mais pour info comptable).

5. Impacts Logistiques et Économiques

Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)

Flux Entrée : 1 visiteur / seconde max (Niv 1) -> 5 visiteurs / seconde (Niv 7 - Portiques auto).

Dépenses (Boutiques/Visiteurs)

Revenu principal (Ticket). Pas de dépense sauf maintenance (10/jour).

Trajet Visiteurs

Point de départ (Spawn) et d'arrivée (Despawn). Les visiteurs mécontents courent vers la sortie.

6. Événements

Événements du Jeu / Carte / Zoo / Ville / Visiteur

  • Entrée : Gain pièces.
  • Refoulement : Si Capacité Max atteinte.
  • VIP : Arrivée d'un bus de touristes (Flux x2 pendant 1h).

7. Progression

Tableau des Upgrades

Niveau Coût (Pièces) Prix Ticket Capacité Max Temps Construction
1 0 (Base) 10 20 0s
2 200 12 40 0s
3 400 15 70 0s
4 800 18 110 0s
5 1600 22 160 0s
6 3200 28 220 0s
7 6400 35 300 0s

8. Logique et Interfaces

Pseudo-code Impacts

function processEntry(zoo):
  potentialVisitors = calculateAttractionFlow(zoo)
  
  if zoo.currentVisitors >= zoo.billeterie.capacity:
    emitEvent("ZOO_FULL")
    return
    
  actualVisitors = min(potentialVisitors, zoo.billeterie.capacity - zoo.currentVisitors)
  
  for i in 0..actualVisitors:
    spawnVisitor()
    player.addCoins(zoo.billeterie.ticketPrice)

Messages d'Infos / Alerte

ID Niveau Message
ZOO_FULL Alerte "Le zoo est complet ! Agrandissez la billeterie."
VIP_BUS Info "Un bus de touristes arrive !"

Annexes UX/UI

1. Expérience Utilisateur (UX)

Consultation

Description UX : Le joueur clique sur la billeterie pour voir ses statistiques et son niveau. Description UI : Bottom Sheet ou Panneau Latéral affichant le niveau actuel, la capacité, le prix du ticket et les revenus du jour. Emplacement : Case Billeterie sur la grille du zoo. Intégration : Bâtiment fixe (ne peut pas être déplacé ou supprimé). Navigation : Clic -> Ouverture Panneau -> Fermeture (Croix ou clic extérieur). Événements : CLICK_BILLETERIE.

Assets

  • Musiques : Ambiance "Hall de Gare" (brouhaha léger).
  • Sons : ui_open.mp3
  • Graphiques : Pixel Art, style guichet.
  • Images : billeterie_lvl[1-7].png
  • Vidéos : Flux vidéo surveillance (fictif, décoratif).
  • Animations : Légère surbrillance au survol.
  • Couleurs : Palette UI standard.
  • Textes : "Billeterie", "Niveau X", "Revenus : Y".
  • Formes : Carré (case).

Amélioration (Upgrade)

Description UX : Le joueur décide d'améliorer la billeterie pour augmenter la capacité et le prix du ticket. Description UI : Bouton "Améliorer" dans le panneau de consultation, avec coût et prévisualisation des gains. Emplacement : Panneau de consultation. Intégration : Action immédiate si fonds suffisants. Navigation : Clic "Améliorer" -> Confirmation (optionnelle) -> Mise à jour UI. Événements : UPGRADE_BILLETERIE.

Assets

  • Musiques : Fanfare courte "Level Up".
  • Sons : upgrade_success.mp3 (caisse enregistreuse).
  • Graphiques : Icône flèche vers le haut.
  • Images : Confettis (Sprite).
  • Vidéos : Effet de lumière "Rayon divin".
  • Animations : Particules de succès (confettis/étoiles) autour du bâtiment.
  • Couleurs : Bouton Vert (si achetable), Gris (si fonds insuffisants).
  • Textes : "Améliorer (X pièces)".
  • Formes : Bouton rectangulaire arrondi.

Flux Visiteurs (Passif)

Description UX : Le joueur observe les visiteurs entrer dans le zoo. Description UI : Petits sprites de visiteurs apparaissant à la porte et se dispersant. Emplacement : Devant la billeterie. Intégration : Animation continue pendant les heures d'ouverture. Navigation : Automatique (Flux continu). Événements : VISITOR_SPAWN.

Assets

  • Musiques : Bruit de foule (loop).
  • Sons : visitor_entry.mp3 (bruit de foule léger, pas à chaque spawn).
  • Graphiques : Sprites visiteurs variés.
  • Images : Silhouettes de foule en arrière-plan.
  • Vidéos : Effet de foule floue en mouvement.
  • Animations : Marche (4 directions).
  • Couleurs : Variées (vêtements).
  • Textes : Bulles de discussion aléatoires.
  • Formes : Points mouvants (sur la minimap).