Initial commit
**Motivations:** - Initialisation du versionning git pour le projet **Root causes:** - N/A (Nouveau projet) **Correctifs:** - N/A **Evolutions:** - Structure initiale du projet - Ajout du .gitignore **Pages affectées:** - Tous les fichiers
This commit is contained in:
191
docs/specs/billeterie.md
Normal file
191
docs/specs/billeterie.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# 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)
|
||||
```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
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Présent au démarrage (Unique).
|
||||
|
||||
### Conditions de Disparition
|
||||
Indestructible.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
| Saison | Modificateur Prix Ticket |
|
||||
| :--- | :--- |
|
||||
| Été | +20% (Haute saison) |
|
||||
| Hiver | -10% (Basse saison) |
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
**Ouverture** : 08h00 - 20h00. Fermé la nuit (sauf événements).
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### 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
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Flux Entrée** : 1 visiteur / seconde max.
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
Revenu principal (Ticket).
|
||||
|
||||
### Trajet Visiteurs
|
||||
Point de départ (Spawn) et d'arrivée (Despawn).
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Entrée** : Gain pièces.
|
||||
* **Refoulement** : Si Capacité Max atteinte.
|
||||
|
||||
## 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." |
|
||||
|
||||
# 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** : N/A
|
||||
- **Sons** : `ui_open.mp3`
|
||||
- **Graphiques** : Pixel Art, style guichet.
|
||||
- **Images** : `billeterie_lvl[1-7].png`
|
||||
- **Vidéos** : N/A
|
||||
- **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** : N/A
|
||||
- **Sons** : `upgrade_success.mp3` (caisse enregistreuse).
|
||||
- **Graphiques** : Icône flèche vers le haut.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **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** : N/A
|
||||
**Événements** : `VISITOR_SPAWN`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `visitor_entry.mp3` (bruit de foule léger, pas à chaque spawn).
|
||||
- **Graphiques** : Sprites visiteurs variés.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Marche (4 directions).
|
||||
- **Couleurs** : Variées (vêtements).
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
Reference in New Issue
Block a user