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/*
This commit is contained in:
@@ -25,8 +25,15 @@ Bâtiment d'entrée du zoo. Point d'apparition et de départ des visiteurs.
|
||||
"position": { "x": "int", "y": "int" },
|
||||
"stats": {
|
||||
"total_entries": "integer",
|
||||
"daily_revenue": "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"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -36,71 +43,6 @@ Bâtiment d'entrée du zoo. Point d'apparition et de départ des visiteurs.
|
||||
| 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 |
|
||||
@@ -115,19 +57,27 @@ Point de départ (Spawn) et d'arrivée (Despawn). Les visiteurs mécontents cour
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function processEntry(zoo):
|
||||
potentialVisitors = calculateAttractionFlow(zoo)
|
||||
|
||||
if zoo.currentVisitors >= zoo.billeterie.capacity:
|
||||
emitEvent("ZOO_FULL")
|
||||
return
|
||||
```python
|
||||
def process_entry(zoo):
|
||||
potential_visitors = calculate_attraction_flow(zoo)
|
||||
|
||||
actualVisitors = min(potentialVisitors, zoo.billeterie.capacity - zoo.currentVisitors)
|
||||
|
||||
for i in 0..actualVisitors:
|
||||
spawnVisitor()
|
||||
player.addCoins(zoo.billeterie.ticketPrice)
|
||||
# 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
|
||||
@@ -135,16 +85,26 @@ function processEntry(zoo):
|
||||
| :--- | :--- | :--- |
|
||||
| `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 (ne peut pas être déplacé ou supprimé).
|
||||
**Navigation** : Clic -> Ouverture Panneau -> Fermeture (Croix ou clic extérieur).
|
||||
**Intégration** : Bâtiment fixe.
|
||||
**Navigation** : Clic -> Ouverture Panneau -> Fermeture.
|
||||
**Événements** : `CLICK_BILLETERIE`.
|
||||
|
||||
#### Assets
|
||||
@@ -158,40 +118,6 @@ function processEntry(zoo):
|
||||
- **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).
|
||||
### 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.
|
||||
|
||||
Reference in New Issue
Block a user