Files
builazoo/docs/specs/billeterie.md
Nicolas Cantu e92c1355d0 Enrichissement exhaustif des specs : Vue Isométrique et Design
**Motivations:**
- Aligner toute la documentation technique avec la nouvelle direction artistique isométrique (Réf IMG_20260303_170253).
- Faciliter l'implémentation en ajoutant les contraintes techniques liées à la 2.5D (Z-index, Sprites 4 directions).

**Root causes:**
- Besoin de cohérence visuelle et technique sur l'ensemble du projet.

**Correctifs:**
- N/A

**Evolutions:**
- Ajout systématique de la section "Direction Artistique & Vue" dans `Annexes UX/UI` de tous les fichiers.
- Enrichissement des modèles JSON avec coordonnées isométriques (`iso_x`, `iso_y`, `z_index`).
- Précision des interactions (clic, survol) adaptées à la grille losange.
- Conservation stricte de la structure existante (aucun titre supprimé).

**Pages affectées:**
- docs/specs/*
2026-03-05 02:10:32 +01:00

4.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",
    "current_queue_length": "integer"
  },
  "entry_log": [
    { "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.