Files
builazoo/docs/specs/billeterie.md
2026-03-05 04:01:29 +01:00

20 KiB
Raw Blame History

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",
    "current_queue_length": "integer"
  },
  "entry_log": [
    { "timestamp": "timestamp", "visitor_count": 5, "revenue": 50 }
  ],
  "iso_x": "integer",
  "iso_y": "integer",
  "z_index": "integer"
}

Caractéristiques Initiales

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

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

def process_entry(zoo):
    potential_visitors = calculate_attraction_flow(zoo)
    
    # Gestion de la file d'attente
    zoo.billeterie.current_queue_length += potential_visitors
    
    # Traitement des entrées (limité par la vitesse du guichet)
    entries_per_tick = get_entry_speed(zoo.billeterie.level)
    actual_entries = min(zoo.billeterie.current_queue_length, entries_per_tick)
    
    # Vérification capacité zoo
    if zoo.current_visitors + actual_entries > zoo.billeterie.capacity:
        actual_entries = zoo.billeterie.capacity - zoo.current_visitors
        emit_event("ZOO_FULL")
    
    zoo.billeterie.current_queue_length -= actual_entries
    
    for _ in range(actual_entries):
        spawn_visitor()
        player.add_coins(zoo.billeterie.ticket_price)

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 !"
QUEUE_LONG Warning "La file d'attente est trop longue, des visiteurs partent !"

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)

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. Navigation : Clic -> Ouverture Panneau -> Fermeture. É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).

Vue Isométrique

  • File d'attente : Afficher physiquement les sprites des visiteurs qui attendent devant le guichet.
  • Portiques : Animation d'ouverture/fermeture des barrières.

Personnage contextuel (événements & interaction)

Voir guichetiere.md.

Affichage

La guichetière saffiche lorsque :

  • la billetterie est actionnée (clic panneau, upgrade, consultation stats) ;
  • un événement dentrée survient (saturation, file longue, arrivée VIP).

Déclencheurs (exemples)

Event Condition Effet UI personnage
CLICK_BILLETERIE clic bâtiment portrait + synthèse (prix, capacité, file)
ZOO_FULL capacité atteinte bulle “Zoo complet” + CTA “Améliorer billetterie”
QUEUE_LONG file > seuil bulle “File longue” + CTA “Voir billetterie”
VIP_BUS arrivée VIP bulle “Bus VIP” + CTA “Voir entrée”

Skins & thèmes

Uniforme et guichet suivent theme.md ; variantes éventuelles via inventaire_skins.md.

Définition

Champ Valeur
Concept Bâtiment “billeterie” : point unique dentrée/sortie des visiteurs et point de monétisation “tickets”.
Rôle Transformer lattractivité (ville → zoo) en entrées contrôlées (capacité/queue) et en revenus (prix ticket), avec signaux visibles (file, portiques, saturation).
Portée Une instance fixe sur la carte zoo, connectée au réseau de chemins, agissant comme spawn/despawn visiteurs.
Contrainte Aucun tracking externe/analytics ; flux et revenus calculés à la volée (lazy update), sans cache/mémorisation ; saturation doit produire message + event (pas silencieux).

Fonctions (tableau détaillé)

Fonction Déclencheur Entrées Sorties Règles Observabilité
Ouvrir panneau billeterie clic bâtiment ticket_booth_id UI stats montre prix/capacité/queue/revenus jour Event CLICK_BILLETERIE
Calculer demandes dentrée tick logique attractivité, villes, saison potential_visitors dépend distance ville + attractivité zoo Event VISITOR_DEMAND_COMPUTED
Alimenter file tick logique potential_visitors current_queue_length clamp ≥ 0 Event QUEUE_UPDATED
Convertir file en entrées tick logique level, queue actual_entries limité par vitesse guichet et capacité zoo Event VISITOR_ENTERED
Encaisser ticket entrée ticket_price coins + atomicité par visiteur entré Event TICKET_SOLD
Bloquer si zoo complet capacité atteinte current_visitors entrée 0 déclenche alerte + évaporation file (visiteurs partent) Event ZOO_FULL
Gérer bus VIP event multiplicateur pic entrées bus si condition (réputation/ville riche) Event VIP_BUS
Mesurer impatience queue longue temps attente départs si attente > seuil, départs + malus réputation léger Event QUEUE_LONG

Icone de base

Élément Spécification
Représentation Guichet + ticket + portique
Couleur dominante Bleu/rouge (signalétique), or (coins)
Variantes billeterie_lvl_{1..7}_dir_{N,E,S,W}.png, icon_ticket_booth.png
États open, busy (queue), full (zoo complet), vip_bus (arrivée)

Interactions (tableau détaillé)

Interaction Type Préconditions Étapes UI Résultat Erreurs / Messages
Consulter stats Consultation - clic billeterie panneau stats -
Upgrader Action coins ok panneau → “Améliorer” level +1 NOT_ENOUGH_COINS
Voir file Consultation file > 0 survol bâtiment tooltip “X en attente” -
Aller à la saturation Navigation ZOO_FULL clic notif focus billeterie -
Forcer fermeture Action (option future) mode maintenance toggle entrées stoppées MAINTENANCE_REQUIRED

Annexes Techniques

1. Données et États (tableau détaillé)

Donnée / État Type Exemple Source Contraintes
id uuid_v4 uuid_v4 DB -
type string ticket_booth DB constant
level int 3 DB 1..7
position.x int 1 DB grid
position.y int 1 DB grid
stats.total_entries int 1280 DB cumul
stats.daily_revenue int 420 DB reset journalier in-game
stats.current_queue_length int 18 DB/calcul clamp ≥ 0
entry_log[].timestamp timestamp - DB UTC
entry_log[].visitor_count int 5 DB batch
entry_log[].revenue int 50 DB batch
iso_x int 120 DB/calcul rendu
iso_y int 88 DB/calcul rendu
z_index int 12088 calcul profondeur

Caractéristiques Initiales (tableau détaillé)

Caractéristique Valeur initiale Unité Notes
Prix ticket (lvl1) 10 coins base
Capacité max (lvl1) 20 visiteurs base
Vitesse guichet (lvl1) 2 visiteurs/tick file
Seuil queue longue 25 visiteurs message + départs

Scores Initiaux (tableau détaillé)

Score Valeur initiale Plage Impact
Satisfaction dentrée 50 0..100 queue longue la baisse
Taux départ file 0% 0..100% impatience

2. Cycles de Vie et Apparition (tableau détaillé)

Phase Déclencheur Entrées Sorties Invariants
Apparition création zoo - bâtiment présent fixe
Fonctionnement zoo ouvert attractivité entrées capacité respectée
Saturation zoo plein - entrées stoppées alerte obligatoire
Upgrade action joueur coins level ↑ monotone

Conditions d'Apparition (tableau détaillé)

Condition Seuil Opérateur Résultat
Zoo créé true est billeterie placée

Conditions de Disparition (tableau détaillé)

Condition Seuil Opérateur Résultat
- - - bâtiment persistant

Hérédité (tableau détaillé)

Élément Hérité Règle
Niveau Oui persiste
Statistiques Oui logs conservés, pas danalytics

3. Impacts Environnementaux

Impact Température (tableau détaillé)

Condition Effet billeterie Notes
Canicule flux -10% visiteurs évitent attente au soleil
Froid extrême flux -15% sortie plus rapide

Impact Milieu (Biome) (tableau détaillé)

Biome Effet Notes
Proche océan (frais) impatience - queue tolérée
Boue autour entrée impatience + pénalise

Impact Saisons (tableau détaillé)

Saison Effet Notes
Été demande +20% vacances
Hiver demande -30% froid

Impact Heure / Jour-Nuit (tableau détaillé)

Période Effet Notes
Matin pics dentrée 9h-12h
Soir pics de sortie 17h-19h

4. Impacts Biologiques et Sociaux

Impact Reproduction (tableau détaillé)

Facteur Effet sur taux Condition
Bébés visibles satisfaction entrée +5 marketing “naissances”

Impact Mort (tableau détaillé)

Cas Effet Condition
Incident visible à lentrée flux -40% pendant 1 jour in-game

Impact Nourriture (tableau détaillé)

Ressource Effet Condition
Stand boisson proche impatience - file longue

Impact Attractivité(Visiteurs (tableau détaillé)

Action/État Gain Rayon Notes
Entrée fluide +5 8 cases file courte
File longue -10 8 cases visiteurs partent

Impact Attractivité Animaux) (tableau détaillé)

Action/État Effet animaux Condition
Foule bruyante stress + enclos proche entrée

Impact Valeur (tableau détaillé)

Facteur Variation Condition
Upgrade billeterie + valeur zoo

5. Impacts Logistiques et Économiques

Vitesse (Camion) (tableau détaillé)

Paramètre Effet Condition
Bus VIP entrées batch event VIP_BUS

Vitesse (Nurserie) (tableau détaillé)

Paramètre Effet Condition
Naissances annoncées demande + saison

Vitesse (Accueil) (tableau détaillé)

Paramètre Effet Condition
Nouveaux animaux placés près entrée intérêt + visiteurs

Vitesse (Recherche) (tableau détaillé)

Paramètre Effet Condition
Marketing recherche demande + upgrade futur

Vitesse (Labo) (tableau détaillé)

Paramètre Effet Condition
Offre rare pics annonce

Vitesse (Visite) (tableau détaillé)

Paramètre Effet Condition
Portiques auto entrées/tick + level élevé

Dépenses (Billeterie) (tableau détaillé)

Poste Coût Unité Condition
Impression tickets 100 $/semaine lore
Maintenance portiques 20 coins/semaine level ≥ 3

Dépenses (Boutiques) (tableau détaillé)

Poste Coût Unité Condition
Signalétique 10 coins/semaine esthétique

Dépenses (Visiteurs) (tableau détaillé)

Poste Coût Unité Condition
Perte opportunité ticket non vendu coins queue trop longue

Dépenses (Employés) (tableau détaillé)

Poste Coût Unité Condition
Agent accueil 1500 $/mois lore

Dépenses (Boutiques) (tableau détaillé)

Poste Coût Unité Condition
Section dupliquée 1 coins conservée

Dépenses (Nurseries) (tableau détaillé)

Poste Coût Unité Condition
Vitrine bébés 50 coins/semaine option

Dépenses (Nourriture) (tableau détaillé)

Poste Coût Unité Condition
Eau file dattente 5 coins/jour été

Dépenses (Acceuil des animaux) (tableau détaillé)

Poste Coût Unité Condition
Signal “nouvel animal” 5 coins panneau

Dépenses (Camion) (tableau détaillé)

Poste Coût Unité Condition
Bus touristes 25 coins/event VIP_BUS

Trajet Visiteurs

Trajet Visiteurs vers/depuis la ville (tableau détaillé)
Source Destination Déclencheur Effet
Ville Billeterie demande calculée spawn file
Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
Source Destination Déclencheur Effet
Billeterie Enclos plan visite route via chemins
Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
Source Destination Déclencheur Effet
Enclos Boutique faim/soif détour
Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
Source Destination Déclencheur Effet
Zoo Billeterie fin visite sortie

6. Événements

Événements du Jeu (tableau détaillé)

Event Déclencheur Payload Effet
TICKET_SOLD entrée price coins +
ZOO_FULL capacité current/max stop entrées
QUEUE_LONG queue > seuil length départs +
VIP_BUS event count entrées batch

Événements du Carte (tableau détaillé)

Event Déclencheur Effet
FOCUS_TICKET_BOOTH clic notif caméra

Événements du Zoo (tableau détaillé)

Event Déclencheur Effet
VISITOR_SPAWNED_AT_ENTRY entrée spawn point

Événements du Ville / Visiteur (tableau détaillé)

Event Déclencheur Effet
CITY_FLOW_DISPATCHED calcul demande

Événements du Visiteur (tableau détaillé)

Event Déclencheur Effet
VISITOR_LEAVES_QUEUE impatience départ

Événements du Joueur (tableau détaillé)

Event Déclencheur Effet
PLAYER_UPGRADES_TICKET_BOOTH UI stats maj

7. Progression

Tableau des Upgrades (tableau détaillé)

Niveau Coût Effet Débloque
3 400 portiques visibles + vitesse guichet anim porte
5 1600 file plus courte (vitesse) satisfaction +
7 6400 capacité 300 + prix 35 “grand hall”

8. Logique et Interfaces

Pseudo-code Impacts (tableau détaillé)

Fonction Entrées Sorties Notes
getEntrySpeed level int visiteurs/tick
computePotentialVisitors zoo, villes, saison int à la volée
processEntry zoo, booth int encaisse + spawn

Messages d'Infos / Alerte (tableau détaillé)

ID Niveau Message Condition
ZOO_FULL Alerte "Le zoo est complet." capacité atteinte
QUEUE_LONG Warning "La file d'attente est trop longue." queue > seuil
VIP_BUS Info "Un bus de touristes arrive." event

Annexes UX/UI

1. Expérience Utilisateur (UX)

Description UX (tableau détaillé)

Parcours But Friction Réduction clics
Voir revenus décider upgrade stats dispersées panneau unique billeterie
Réagir à saturation éviter pertes notif clic notif → focus

Description UI (tableau détaillé)

Composant Contenu États
Panneau billeterie prix/capacité/revenus normal/full
File visuelle sprites visiteurs courte/longue
Badge bus VIP icône bus visible

Emplacement (tableau détaillé)

Zone UI Position Notes
Carte zoo entrée file visible
HUD compteur coins feedback pièces

Intégration (tableau détaillé)

Intégration Contrat Notes
visiteur.md spawn/despawn flux
ville.md demande distance

Navigation (tableau détaillé)

Action Chemin Résultat
Ouvrir stats clic bâtiment panneau
Upgrader panneau → bouton level ↑
Focus clic notif caméra

Événements (tableau détaillé)

Event UI Déclencheur Effet
CLICK_BILLETERIE clic ouvre
CLICK_UPGRADE_TICKET_BOOTH bouton upgrade

Assets Skinables

Musiques (tableau détaillé)
Asset Usage Durée Notes
ticket_booth_crowd_loop.mp3 proximité entrée loop discret
Sons (tableau détaillé)
Asset Usage Volume
gate_open.mp3 portiques bas
coin_jingle.mp3 ticket vendu bas
ui_denied.mp3 zoo plein moyen
Graphiques (tableau détaillé)
Asset Usage Contraintes
ticket_booth_ui_panel.png panneau scalable
queue_indicator.png badge lisible
vip_bus_icon.png bus contraste
Images (tableau détaillé)
Asset Usage
billeterie_lvl1.png bâtiment
billeterie_lvl7.png bâtiment
Vidéos (tableau détaillé)
Asset Usage Durée
ticket_gate_cycle.webm portiques 1.0s
Animations (tableau détaillé)
Animation Déclencheur Notes
pièces qui volent ticket vendu 0.6s
bounce badge queue longue 0.4s
Couleurs (tableau détaillé)
Token Valeur Usage
ticket_blue #1976D2 signalétique
ticket_gold #D4AF37 revenus
ticket_alert_red #D32F2F saturation
Textes (tableau détaillé)
Clé FR EN
ticket_booth.title Billeterie Ticket booth
ticket_booth.capacity Capacité Capacity
ticket_booth.queue_long File trop longue. Queue too long.
Formes (tableau détaillé)
Élément Forme Notes
Panneau rectangle arrondi lisible
Badge rond constant