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:
2026-03-03 22:24:17 +01:00
commit e031c9a1d2
155 changed files with 22334 additions and 0 deletions

196
docs/specs/boutique.md Normal file
View File

@@ -0,0 +1,196 @@
# 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