# 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" } } ``` ### Caractéristiques Initiales | Caractéristique | Valeur Initiale (Niv 1) | | :--- | :--- | | Revenu / Visiteur | 15 pièces | | Capacité | 5 visiteurs | | Attractivité | 10 | ### Scores Initiaux N/A ## 2. Cycles de Vie et Apparition ### Conditions d'Apparition Construction par le joueur sur case vide. ### Conditions de Disparition Destruction par le joueur (Remboursement partiel ?). ### Hérédité N/A ## 3. Impacts Environnementaux ### Impact Température N/A ### Impact Milieu (Biome) N/A ### Impact Saisons | Saison | Modificateur Ventes | | :--- | :--- | | Été | +20% (Boissons/Glaces) | | Hiver | +10% (Chocolat chaud/Cadeaux) | ### Impact Heure / Jour-Nuit | Heure | Fréquentation | | :--- | :--- | | 12h-14h | Pic (Repas) | | 16h-18h | Pic (Souvenirs avant départ) | ## 4. Impacts Biologiques et Sociaux ### Impact Reproduction N/A ### Impact Mort N/A ### Impact Nourriture N/A ### Impact Attractivité (Visiteurs/Animaux) | Niveau | Rayon Attraction | | :--- | :--- | | 1 | 2 cases | | 7 | 10 cases | ### Impact Valeur N/A ## 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). ### Dépenses (Boutiques/Visiteurs) Génère du revenu, ne coûte rien (sauf achat/upgrade). ### Trajet Visiteurs Point d'intérêt majeur pour le pathfinding (Poids 50). ## 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. ## 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." | # Annexes UX/UI ## 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** : N/A **Événements** : `SALE_MADE`. #### Assets - **Musiques** : N/A - **Sons** : `coin_jingle.mp3` (volume bas, pas trop répétitif). - **Graphiques** : Sprite Boutique (différents skins selon type : Burger, Cadeaux). - **Images** : N/A - **Vidéos** : N/A - **Animations** : Pièce dorée qui monte et disparaît. - **Couleurs** : Or #FFD700. - **Textes** : "+XX". - **Formes** : N/A ### 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** : N/A - **Sons** : `ui_open.mp3` - **Graphiques** : N/A - **Images** : Icône Caisse. - **Vidéos** : N/A - **Animations** : N/A - **Couleurs** : N/A - **Textes** : Chiffres clés. - **Formes** : N/A ### 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** : N/A - **Sons** : `construction_hammer.mp3`. - **Graphiques** : Sprite Fantôme semi-transparent. - **Images** : N/A - **Vidéos** : N/A - **Animations** : Petit effet de poussière à la pose. - **Couleurs** : N/A - **Textes** : N/A - **Formes** : N/A