715 lines
22 KiB
Markdown
715 lines
22 KiB
Markdown
# Spécifications : Boutique
|
||
|
||
## Définition
|
||
Bâtiment commercial générant des revenus passifs grâce aux visiteurs.
|
||
|
||
## Fonctionnalités
|
||
- **Vente** : Vend des produits (souvenirs, nourriture, boissons) aux visiteurs.
|
||
- **Attraction** : Attire les visiteurs sur sa case.
|
||
- **Rétention** : Augmente la durée de visite (satisfaction besoins).
|
||
|
||
## Niveaux d'Amélioration (7 niveaux)
|
||
- **Coût** : Progressif par palier.
|
||
- **Effet** : Augmente le revenu par visiteur et la capacité d'accueil simultanée.
|
||
- **Ratio** : 1 unité couvre 5 visiteurs simultanés max.
|
||
|
||
# Annexes Techniques
|
||
|
||
## 1. Données et États
|
||
### Modèle de Données (JSON)
|
||
```json
|
||
{
|
||
"id": "uuid",
|
||
"type": "shop",
|
||
"level": "integer (1-7)",
|
||
"position": { "x": "int", "y": "int" },
|
||
"stats": {
|
||
"revenue_total": "integer",
|
||
"visitors_served": "integer"
|
||
},
|
||
"iso_x": "integer",
|
||
"iso_y": "integer",
|
||
"z_index": "integer"
|
||
}
|
||
```
|
||
|
||
### Caractéristiques Initiales
|
||
| Caractéristique | Valeur Initiale (Niv 1) |
|
||
| :--- | :--- |
|
||
| Revenu / Visiteur | 15 pièces |
|
||
| Capacité | 5 visiteurs |
|
||
| Attractivité | 10 |
|
||
|
||
### Scores Initiaux
|
||
**Stock** : 100 unités.
|
||
**Popularité** : 10/100.
|
||
|
||
## 2. Cycles de Vie et Apparition
|
||
### Conditions d'Apparition
|
||
Construction par le joueur sur case vide.
|
||
|
||
### Conditions de Disparition
|
||
Destruction par le joueur (Remboursement 50%).
|
||
|
||
### Hérédité
|
||
**Franchise** : Coût construction -10% si 5 boutiques identiques déjà posées (Économie d'échelle).
|
||
|
||
## 3. Impacts Environnementaux
|
||
### Impact Température
|
||
**Canicule** : Vente Eau x3. Vente Chocolat -50%.
|
||
**Froid** : Vente Chocolat x3. Vente Glaces -80%.
|
||
|
||
### Impact Milieu (Biome)
|
||
**Thème** : +10% ventes si le skin boutique correspond au biome (ex: Cabane en bois en Forêt).
|
||
|
||
### Impact Saisons
|
||
| Saison | Modificateur Ventes |
|
||
| :--- | :--- |
|
||
| Été | +20% (Boissons/Glaces) |
|
||
| Hiver | +10% (Chocolat chaud/Cadeaux) |
|
||
| Automne | +5% (Parapluies) |
|
||
| Printemps | Standard |
|
||
|
||
### Impact Heure / Jour-Nuit
|
||
| Heure | Fréquentation |
|
||
| :--- | :--- |
|
||
| 12h-14h | Pic (Repas - Food) |
|
||
| 16h-18h | Pic (Souvenirs avant départ - Gifts) |
|
||
| Nuit | Fermé (0 Ventes) |
|
||
|
||
## 4. Impacts Biologiques et Sociaux
|
||
### Impact Reproduction
|
||
**Merchandising** : Vente peluche "Espèce du moment" x2 lors d'une naissance rare.
|
||
|
||
### Impact Mort
|
||
**Deuil** : Ventes -20% dans les boutiques proches d'une mort récente (Ambiance triste).
|
||
|
||
### Impact Nourriture
|
||
**Concurrence** : Si Stand Nourriture proche (< 3 cases), ventes Food partagées (-10% chacun).
|
||
|
||
### Impact Attractivité (Visiteurs/Animaux)
|
||
| Niveau | Rayon Attraction |
|
||
| :--- | :--- |
|
||
| 1 | 2 cases |
|
||
| 7 | 10 cases (Centre commercial) |
|
||
|
||
### Impact Valeur
|
||
**Revente** : 50% de l'investissement initial + upgrades.
|
||
|
||
## 5. Impacts Logistiques et Économiques
|
||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||
**Vitesse Service** : 1 visiteur / 5 secondes (Niv 1) -> 1 visiteur / 1 seconde (Niv 7 - Caisses auto).
|
||
|
||
### Dépenses (Boutiques/Visiteurs)
|
||
Génère du revenu. Coût réapprovisionnement : 10% du CA (automatique).
|
||
|
||
### Trajet Visiteurs
|
||
Point d'intérêt majeur pour le pathfinding (Poids 50). Arrêt obligatoire si besoin > 80.
|
||
|
||
## 6. Événements
|
||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||
* **Vente** : Gain de pièces.
|
||
* **File d'attente** : Si Capacité atteinte, visiteurs frustrés.
|
||
* **Rupture Stock** : Si stock géré, fermeture temporaire.
|
||
|
||
## 7. Progression
|
||
### Tableau des Upgrades
|
||
| Niveau | Coût (Pièces) | Revenu/Visiteur | Capacité | Temps Construction |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| 1 | 100 | 15 | 5 | 0s |
|
||
| 2 | 150 | 20 | 8 | 0s |
|
||
| 3 | 225 | 25 | 12 | 0s |
|
||
| 4 | 340 | 35 | 18 | 0s |
|
||
| 5 | 510 | 50 | 25 | 0s |
|
||
| 6 | 765 | 70 | 35 | 0s |
|
||
| 7 | 1150 | 100 | 50 | 0s |
|
||
|
||
## 8. Logique et Interfaces
|
||
### Pseudo-code Impacts
|
||
```
|
||
function processShop(shop, visitors):
|
||
queue = visitors.filter(v => v.target == shop)
|
||
served = min(queue.length, shop.capacity)
|
||
|
||
for i in 0..served:
|
||
revenue = shop.baseRevenue * seasonMod
|
||
player.addCoins(revenue)
|
||
visitors[i].satisfaction += 5
|
||
visitors[i].needs.thirst = 0
|
||
```
|
||
|
||
### Messages d'Infos / Alerte
|
||
| ID | Niveau | Message |
|
||
| :--- | :--- | :--- |
|
||
| `SHOP_FULL` | Warning | "Boutique pleine ! Des clients partent." |
|
||
| `SHOP_PROMO` | Info | "Soldes lancées ! Affluence +20%." |
|
||
|
||
## Personnage contextuel (événements & interaction)
|
||
Voir `vendeur.md`.
|
||
|
||
### Affichage
|
||
Le vendeur s’affiche lorsque :
|
||
- la boutique est **actionnée** (clic panneau stats, upgrade, skin de boutique) ;
|
||
- un **événement** de boutique survient (vente, surcharge, promo).
|
||
|
||
### Déclencheurs (exemples)
|
||
| Event | Condition | Effet UI personnage |
|
||
|---|---|---|
|
||
| `OPEN_SHOP` | clic boutique | portrait + stats + CTA |
|
||
| `SALE_MADE` | vente | feedback “caisse” + pièce/FX |
|
||
| `SHOP_FULL` | capacité atteinte | bulle “Surcharge” + CTA “Améliorer / Ajouter boutique” |
|
||
| `SHOP_PROMO` | promo active | bulle “Promo” + détails (si module) |
|
||
|
||
### Skins & thèmes
|
||
Uniforme et comptoir suivent `theme.md`, avec skins de boutique via `inventaire_skins.md`.
|
||
|
||
# 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)
|
||
### Vente (Passif)
|
||
**Description UX** : Les visiteurs entrent dans la boutique, y restent quelques secondes, puis ressortent. Des pièces volent vers le compteur.
|
||
**Description UI** : Animation de porte qui s'ouvre/ferme. Popups "+15" au-dessus du toit.
|
||
**Emplacement** : Case Boutique.
|
||
**Intégration** : Automatique.
|
||
**Navigation** : Auto (Comportement).
|
||
**Événements** : `SALE_MADE`.
|
||
|
||
#### Assets
|
||
- **Musiques** : Musique d'ambiance "Supermarché" (Muzak).
|
||
- **Sons** : `coin_jingle.mp3` (volume bas, pas trop répétitif).
|
||
- **Graphiques** : Sprite Boutique (différents skins selon type : Burger, Cadeaux).
|
||
- **Images** : Icônes Produits (Burger, Peluche, Ballon).
|
||
- **Vidéos** : Pub télévisée miniature sur l'écran de la boutique (détail).
|
||
- **Animations** : Pièce dorée qui monte et disparaît.
|
||
- **Couleurs** : Or #FFD700.
|
||
- **Textes** : "+XX".
|
||
- **Formes** : Bulle de dialogue rectangulaire.
|
||
|
||
### Consultation Stats (Consultation)
|
||
**Description UX** : Le joueur clique pour voir combien la boutique a rapporté.
|
||
**Description UI** : **Bottom Sheet** simple avec "Revenus totaux" et "Clients servis".
|
||
**Emplacement** : Case Boutique.
|
||
**Intégration** : Standard.
|
||
**Navigation** : Clic -> Modal.
|
||
**Événements** : `OPEN_SHOP`.
|
||
|
||
#### Assets
|
||
- **Musiques** : Jingle "Caisse" (court).
|
||
- **Sons** : `ui_open.mp3`
|
||
- **Graphiques** : Graphique en barres simple.
|
||
- **Images** : Icône Caisse.
|
||
- **Vidéos** : Graphique animé des ventes (barres qui montent).
|
||
- **Animations** : Barres qui montent progressivement.
|
||
- **Couleurs** : Vert (Profit).
|
||
- **Textes** : Chiffres clés.
|
||
- **Formes** : Rectangle arrondi.
|
||
|
||
### Construction (Action)
|
||
**Description UX** : Le joueur choisit "Boutique" dans le menu construction et la place sur la grille.
|
||
**Description UI** : Fantôme du bâtiment vert/rouge selon validité.
|
||
**Alternative** : Tap to Select -> Tap to Place.
|
||
**Emplacement** : Menu Construction -> Grille.
|
||
**Intégration** : Mode construction global.
|
||
**Navigation** : Clic Menu -> Drag/Click Grille.
|
||
**Événements** : `BUILD_SHOP`.
|
||
|
||
#### Assets
|
||
- **Musiques** : Bruit de chantier (marteau, scie).
|
||
- **Sons** : `construction_hammer.mp3`.
|
||
- **Graphiques** : Sprite Fantôme semi-transparent.
|
||
- **Images** : Plan bleu (Blueprint) au sol.
|
||
- **Vidéos** : Time-lapse construction (accéléré).
|
||
- **Animations** : Petit effet de poussière à la pose.
|
||
- **Couleurs** : Bleu (Blueprint).
|
||
- **Textes** : "Construction".
|
||
- **Formes** : Grille de placement.
|
||
|
||
## Définition
|
||
|
||
| Champ | Valeur |
|
||
|---|---|
|
||
| Concept | Bâtiment “boutique” : point de vente in-zoo (souvenirs/food/boissons) qui convertit les besoins des visiteurs en revenus. |
|
||
| Rôle | Augmenter la rétention et la satisfaction via la résolution des besoins (faim/soif/cadeau), et créer des micro-flux (file, service, rupture). |
|
||
| Portée | Une instance de bâtiment sur carte zoo, avec paramètres (capacité, vitesse service, catalogue, skin). |
|
||
| Contrainte | Pas d’analytics ; revenus calculés à la volée à partir des interactions visiteurs ; pas de fallback silencieux (rupture/plein => message + event). |
|
||
|
||
## Fonctions (tableau détaillé)
|
||
|
||
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||
|---|---|---|---|---|---|
|
||
| Construire boutique | mode build | coord, type boutique | bâtiment créé | case vide requise | Event `BUILD_SHOP` |
|
||
| Ouvrir stats | clic bâtiment | `shop_id` | UI stats | revenus totaux + clients | Event `OPEN_SHOP` |
|
||
| Attirer visiteurs | besoin/curiosité | visitor, rayon | target set | poids pathfinding élevé si besoin > seuil | Event `VISITOR_TARGETS_SHOP` |
|
||
| Servir visiteur | arrivée en file | visitor, stock | revenue + satisfaction | service limité par capacité + vitesse | Event `SALE_MADE` |
|
||
| Gérer file | dépassement capacité | queue length | impatience | si queue > seuil -> départ + malus | Event `SHOP_FULL` |
|
||
| Adapter produits au climat | temp/saison | météo, saison | mod ventes | canicule: eau + ; froid: chocolat + | Event `SHOP_DEMAND_MOD_CHANGED` |
|
||
| Appliquer skin biome | skin, biome | ids | bonus | +10% ventes si match | Event `SHOP_THEME_MATCH_BONUS` |
|
||
| Réapprovisionner | tick économique | CA, ratio | stock + coût | coût = 10% du CA | Event `SHOP_RESTOCKED` |
|
||
| Rupture | stock=0 | - | fermeture temporaire | déclenche panneau “Rupture” | Event `SHOP_OUT_OF_STOCK` |
|
||
|
||
## Icone de base
|
||
|
||
| Élément | Spécification |
|
||
|---|---|
|
||
| Représentation | Boutique avec enseigne (cadeau/food) |
|
||
| Couleur dominante | Or (revenu) + couleur du type (rouge food, bleu boisson) |
|
||
| Variantes | `shop_gift_dir_{N,E,S,W}.png`, `shop_food_dir_{N,E,S,W}.png`, `shop_drink_dir_{N,E,S,W}.png` |
|
||
| États | `open`, `busy`, `full`, `out_of_stock`, `promo` |
|
||
|
||
## Interactions (tableau détaillé)
|
||
|
||
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||
|---|---|---|---|---|---|
|
||
| Placer boutique | Action | case libre | sélectionner → placer | construction | `CELL_OCCUPIED` |
|
||
| Voir revenus | Consultation | boutique posée | clic | panneau stats | - |
|
||
| Upgrader | Action | coins ok | panneau → améliorer | level ↑ | `NOT_ENOUGH_COINS` |
|
||
| Voir file | Consultation | visiteurs proches | survol | tooltip file | - |
|
||
| Activer promo | Action (event) | condition event | clic toggle | affluence + | `PROMO_NOT_AVAILABLE` |
|
||
|
||
## 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 | `shop` | DB | constant |
|
||
| `subtype` | string | `gift` | DB/config | `gift/food/drink` |
|
||
| `level` | int | 2 | DB | 1..7 |
|
||
| `position.x` | int | 10 | DB | grid |
|
||
| `position.y` | int | 12 | DB | grid |
|
||
| `stats.revenue_total` | int | 12500 | DB | cumul |
|
||
| `stats.visitors_served` | int | 840 | DB | cumul |
|
||
| `stock.units` | int | 100 | DB | >=0 |
|
||
| `popularity` | int | 10 | calcul/DB | 0..100 |
|
||
| `capacity` | int | 5 | config | visitors simultanés |
|
||
| `service_seconds_per_visitor` | float | 5.0 | config | 1..10 |
|
||
| `attractiveness` | int | 10 | config | poids target |
|
||
| `skin_id` | string | `shop_wood_forest` | DB | cosmétique |
|
||
| `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 |
|
||
|---|---:|---|---|
|
||
| Revenu / visiteur | 15 | coins | level 1 |
|
||
| Capacité | 5 | visiteurs | level 1 |
|
||
| Vitesse service | 5 | s/visiteur | level 1 |
|
||
| Rayon attraction | 2 | cases | level 1 |
|
||
|
||
#### Scores Initiaux (tableau détaillé)
|
||
|
||
| Score | Valeur initiale | Plage | Impact |
|
||
|---|---:|---|---|
|
||
| Stock | 100 | 0..∞ | rupture possible |
|
||
| Popularité | 10 | 0..100 | mod conversion |
|
||
|
||
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||
|
||
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||
|---|---|---|---|---|
|
||
| Construction | joueur | coins + coord | bâtiment | case occupée |
|
||
| Service | visiteurs | besoins | revenus | capacité respectée |
|
||
| Réappro | tick | CA | stock + | coût 10% CA |
|
||
| Rupture | stock=0 | - | fermeture | observable |
|
||
| Upgrade | action | coins | level ↑ | monotone |
|
||
|
||
#### Conditions d'Apparition (tableau détaillé)
|
||
|
||
| Condition | Seuil | Opérateur | Résultat |
|
||
|---|---:|---|---|
|
||
| Construction | true | est | boutique posée |
|
||
|
||
#### Conditions de Disparition (tableau détaillé)
|
||
|
||
| Condition | Seuil | Opérateur | Résultat |
|
||
|---|---:|---|---|
|
||
| Destruction | true | est | remboursement 50% |
|
||
|
||
#### Hérédité (tableau détaillé)
|
||
|
||
| Élément | Hérité | Règle |
|
||
|---|---|---|
|
||
| Franchise | Oui | coût -10% si 5 identiques |
|
||
| Stats | Oui | cumul |
|
||
|
||
### 3. Impacts Environnementaux
|
||
|
||
#### Impact Température (tableau détaillé)
|
||
|
||
| Condition | Effet boutique | Notes |
|
||
|---|---|---|
|
||
| > 30°C | eau +200% | canicule |
|
||
| < 5°C | chocolat +200% | froid |
|
||
|
||
#### Impact Milieu (Biome) (tableau détaillé)
|
||
|
||
| Biome | Effet | Notes |
|
||
|---|---|---|
|
||
| forêt + skin bois | ventes +10% | thème match |
|
||
| désert + skin oasis | ventes +10% | thème match |
|
||
|
||
#### Impact Saisons (tableau détaillé)
|
||
|
||
| Saison | Effet | Notes |
|
||
|---|---|---|
|
||
| Été | ventes boisson +20% | règle |
|
||
| Hiver | ventes cadeaux +10% | règle |
|
||
|
||
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||
|
||
| Période | Effet | Notes |
|
||
|---|---|---|
|
||
| 12h-14h | demande food ++ | pic |
|
||
| Nuit | fermé | 0 ventes |
|
||
|
||
### 4. Impacts Biologiques et Sociaux
|
||
|
||
#### Impact Reproduction (tableau détaillé)
|
||
|
||
| Facteur | Effet sur taux | Condition |
|
||
|---|---|---|
|
||
| Naissance rare | ventes peluche x2 | “espèce du moment” |
|
||
|
||
#### Impact Mort (tableau détaillé)
|
||
|
||
| Cas | Effet | Condition |
|
||
|---|---|---|
|
||
| Mort récente proche | ventes -20% | ambiance |
|
||
|
||
#### Impact Nourriture (tableau détaillé)
|
||
|
||
| Ressource | Effet | Condition |
|
||
|---|---|---|
|
||
| Concurrence < 3 cases | ventes food -10% | partage |
|
||
|
||
#### Impact Attractivité(Visiteurs (tableau détaillé)
|
||
|
||
| Action/État | Gain | Rayon | Notes |
|
||
|---|---:|---:|---|
|
||
| Boutique level 7 | + | 10 cases | centre commercial |
|
||
| Rupture stock | - | 6 cases | frustration |
|
||
|
||
#### Impact Attractivité Animaux) (tableau détaillé)
|
||
|
||
| Action/État | Effet animaux | Condition |
|
||
|---|---|---|
|
||
| Odeurs food | stress + | espèces sensibles |
|
||
|
||
#### Impact Valeur (tableau détaillé)
|
||
|
||
| Facteur | Variation | Condition |
|
||
|---|---:|---|
|
||
| Revente | 50% + upgrades | destruction |
|
||
|
||
### 5. Impacts Logistiques et Économiques
|
||
|
||
#### Vitesse (Camion) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Livraison stock | stock + | si feature livraison |
|
||
|
||
#### Vitesse (Nurserie) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Peluches bébé | ventes + | bébés visibles |
|
||
|
||
#### Vitesse (Accueil) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Nouvel animal rare | promo | event |
|
||
|
||
#### Vitesse (Recherche) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Tech caisse auto | service 1s | level 7 |
|
||
|
||
#### Vitesse (Labo) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Produit “science” | panier moyen + | zone labo |
|
||
|
||
#### Vitesse (Visite) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| File d’attente | temps boutique + | capacité limitée |
|
||
|
||
#### Dépenses (Billeterie) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| - | 1 | coins | signalétique (conservée) |
|
||
|
||
#### Dépenses (Boutiques) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Réappro | 10% CA | coins | automatique |
|
||
|
||
#### Dépenses (Visiteurs) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Temps perdu file | satisfaction - | points | queue |
|
||
|
||
#### Dépenses (Employés) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Caissier (lore) | 1800 | $/mois | level < 7 |
|
||
|
||
#### 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 |
|
||
|---|---:|---|---|
|
||
| Peluche naissance | 2 | coins | production |
|
||
|
||
#### Dépenses (Nourriture) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Matières food | 2 | coins/vente | marge |
|
||
|
||
#### Dépenses (Acceuil des animaux) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Cadeau “nouvel arrivant” | 1 | coins | souvenir |
|
||
|
||
#### Dépenses (Camion) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Livraison premium | 5 | coins | option |
|
||
|
||
#### Trajet Visiteurs
|
||
|
||
##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Ville | Zoo | entrée | besoins init 0 |
|
||
|
||
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Enclos | Boutique | faim/soif > 80 | target |
|
||
|
||
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Boutique | Enclos | besoins résolus | continue visite |
|
||
|
||
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Boutique | Sortie | budget 0 | départ |
|
||
|
||
### 6. Événements
|
||
|
||
#### Événements du Jeu (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Payload | Effet |
|
||
|---|---|---|---|
|
||
| `SALE_MADE` | service | revenue | coins + |
|
||
| `SHOP_FULL` | queue | length | départs |
|
||
| `SHOP_OUT_OF_STOCK` | stock | units | fermeture |
|
||
| `SHOP_RESTOCKED` | tick | cost | stock + |
|
||
|
||
#### Événements du Carte (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `FOCUS_SHOP` | clic | caméra |
|
||
|
||
#### Événements du Zoo (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `VISITOR_BUYS_ITEM` | transaction | satisfaction + |
|
||
|
||
#### Événements du Ville / Visiteur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `WEATHER_HEATWAVE` | météo | eau ++ |
|
||
|
||
#### Événements du Visiteur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `VISITOR_LEAVES_SHOP_QUEUE` | impatience | satisfaction - |
|
||
|
||
#### Événements du Joueur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `PLAYER_UPGRADES_SHOP` | UI | params + |
|
||
|
||
### 7. Progression
|
||
|
||
#### Tableau des Upgrades (tableau détaillé)
|
||
|
||
| Niveau | Coût | Effet | Débloque |
|
||
|---|---:|---|---|
|
||
| 4 | 340 | capacité 18 + service plus rapide | file réduite |
|
||
| 7 | 1150 | 50 capacité + caisses auto | 1s/visiteur |
|
||
|
||
### 8. Logique et Interfaces
|
||
|
||
#### Pseudo-code Impacts (tableau détaillé)
|
||
|
||
| Fonction | Entrées | Sorties | Notes |
|
||
|---|---|---|---|
|
||
| `computeSeasonDemandMod` | season, temp | float | eau/glaces/chocolat |
|
||
| `serveVisitor` | shop, visitor | revenue | résout besoins |
|
||
| `restockIfNeeded` | shop, CA | shop | coût 10% CA |
|
||
|
||
#### Messages d'Infos / Alerte (tableau détaillé)
|
||
|
||
| ID | Niveau | Message | Condition |
|
||
|---|---|---|---|
|
||
| `SHOP_FULL` | Warning | "Boutique pleine." | queue > cap |
|
||
| `SHOP_OUT_OF_STOCK` | Warning | "Rupture de stock." | stock=0 |
|
||
| `SALE_MADE` | Info | "Vente effectuée." | service |
|
||
|
||
## Annexes UX/UI
|
||
|
||
### 1. Expérience Utilisateur (UX)
|
||
|
||
#### Description UX (tableau détaillé)
|
||
|
||
| Parcours | But | Friction | Réduction clics |
|
||
|---|---|---|---|
|
||
| Construire | générer revenus | placement | mode construction direct |
|
||
| Lire stats | décider upgrade | menus | clic bâtiment |
|
||
|
||
#### Description UI (tableau détaillé)
|
||
|
||
| Composant | Contenu | États |
|
||
|---|---|---|
|
||
| Popup coins | +XX | burst | feedback |
|
||
| Panneau stats | total + served | open/closed |
|
||
| Badge rupture | icône | visible |
|
||
|
||
#### Emplacement (tableau détaillé)
|
||
|
||
| Zone UI | Position | Notes |
|
||
|---|---|---|
|
||
| Carte zoo | sur case | sélection base sprite |
|
||
| HUD | compteur | pièces volantes |
|
||
|
||
#### Intégration (tableau détaillé)
|
||
|
||
| Intégration | Contrat | Notes |
|
||
|---|---|---|
|
||
| `visiteur.md` | besoins | faim/soif |
|
||
| `chemin.md` | pathfinding | poids boutique |
|
||
|
||
#### Navigation (tableau détaillé)
|
||
|
||
| Action | Chemin | Résultat |
|
||
|---|---|---|
|
||
| Ouvrir stats | clic | panneau |
|
||
| Upgrader | panneau → CTA | level ↑ |
|
||
|
||
#### Événements (tableau détaillé)
|
||
|
||
| Event UI | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `OPEN_SHOP` | clic | panneau |
|
||
| `BUILD_SHOP` | build | placement |
|
||
|
||
#### Assets Skinables
|
||
|
||
##### Musiques (tableau détaillé)
|
||
|
||
| Asset | Usage | Durée | Notes |
|
||
|---|---|---:|---|
|
||
| `shop_muzak_loop.mp3` | proximité boutique | loop | discret |
|
||
|
||
##### Sons (tableau détaillé)
|
||
|
||
| Asset | Usage | Volume |
|
||
|---|---|---|
|
||
| `cash_register.mp3` | vente | bas |
|
||
| `coin_jingle.mp3` | revenue | bas |
|
||
| `ui_open.mp3` | panneau | bas |
|
||
|
||
##### Graphiques (tableau détaillé)
|
||
|
||
| Asset | Usage | Contraintes |
|
||
|---|---|---|
|
||
| `shop_coin_popup.png` | popup | lisible |
|
||
| `shop_queue_badge.png` | queue | contraste |
|
||
| `shop_out_of_stock_badge.png` | rupture | rouge |
|
||
|
||
##### Images (tableau détaillé)
|
||
|
||
| Asset | Usage |
|
||
|---|---|
|
||
| `shop_blueprint.png` | construction |
|
||
| `shop_product_icons.png` | UI |
|
||
|
||
##### Vidéos (tableau détaillé)
|
||
|
||
| Asset | Usage | Durée |
|
||
|---|---|---:|
|
||
| `shop_sales_bars.webm` | stats | 1.0s |
|
||
|
||
##### Animations (tableau détaillé)
|
||
|
||
| Animation | Déclencheur | Notes |
|
||
|---|---|---|
|
||
| pièce monte | vente | 0.6s |
|
||
| porte ouvre/ferme | visiteur | 0.4s |
|
||
|
||
##### Couleurs (tableau détaillé)
|
||
|
||
| Token | Valeur | Usage |
|
||
|---|---|---|
|
||
| `shop_gold` | #FFD700 | revenus |
|
||
| `shop_profit_green` | #2E7D32 | stats |
|
||
| `shop_alert_red` | #D32F2F | rupture |
|
||
|
||
##### Textes (tableau détaillé)
|
||
|
||
| Clé | FR | EN |
|
||
|---|---|---|
|
||
| `shop.title` | Boutique | Shop |
|
||
| `shop.revenue` | Revenus | Revenue |
|
||
| `shop.out_of_stock` | Rupture de stock | Out of stock |
|
||
|
||
##### Formes (tableau détaillé)
|
||
|
||
| Élément | Forme | Notes |
|
||
|---|---|---|
|
||
| Popup | rectangle arrondi | lisible |
|
||
| Badge | rond | constant |
|