Files
builazoo/docs/specs/zoo.md
Nicolas Cantu 1d3352455e Intégration des spécifications Leo : Isométrique, Staff, Cosmétiques
**Motivations:**
- Intégrer les nouvelles fonctionnalités demandées par Leo (vue isométrique, gestion du personnel, personnalisation avatar/zoo).
- Enrichir le gameplay avec des mécaniques de fusion d'enclos et de passes saisonniers.

**Root causes:**
- Demande d'évolution majeure du Game Design (fichier `docs/leo.md`).

**Correctifs:**
- N/A

**Evolutions:**
- Ajout de 19 nouveaux fichiers de spécifications (Staff, Skins, Enclos, Avatar, etc.).
- Mise à jour de 5 fichiers existants pour supporter la vue isométrique et les nouvelles interactions.
- Définition du système de passes temporaires et statut VIP.
- Spécification des employés achetables avec pièces.

**Pages affectées:**
- docs/specs/*
2026-03-05 01:53:05 +01:00

212 lines
7.2 KiB
Markdown

# Spécifications : Zoo (Site)
## Définition
Représentation d'un zoo (joueur ou bot) sur la Carte du Monde.
## Affichage
- **Nom du zoo** : Sur une banderole d'accueil personnalisable.
- **Avatar Joueur** : Visible à côté du nom ou sur la carte du monde.
- **Vue** : Isométrique (2.5D).
- **Skins** : Le zoo peut avoir des thèmes visuels (Skins de Zoo).
- **Icône** : 🏠
- **Slot d'offre** :
- Pour les autres zoos : Affiche l'œuf/bébé/animal en vente (Type + Prix).
- Pour le zoo du joueur : Masqué (pas d'offre visible pour soi-même).
- **Indicateurs (Bots)** : Pièces disponibles, Niveau de parcelle.
## Indicateurs de Performance (Cases dédiées sous le zoo)
1. **Score d'Attractivité** : Influence la venue des visiteurs.
2. **Score de Reproduction** : Influence la qualité des naissances.
3. **Case de Vente** : Offre active visible par les autres joueurs.
## Interaction
- **Achat** : Glisser l'offre du zoo vers le camion du joueur.
# Annexes Techniques
## 1. Données et États
### Modèle de Données (JSON)
```json
{
"id": "uuid",
"type": "zoo",
"owner_id": "uuid",
"scores": {
"attractiveness": "int",
"reproduction": "int"
},
"current_offer": { "animal_id": "uuid", "price": "int" },
"customization": {
"banner_text": "Mon Zoo",
"active_skin_id": "skin_default",
"avatar_visible": true
}
}
```
### Caractéristiques Initiales
| Caractéristique | Valeur Initiale |
| :--- | :--- |
| Attractivité | 0 |
| Reproduction | 0 |
### Scores Initiaux
Voir ci-dessus.
## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Création compte.
### Conditions de Disparition
Suppression compte.
### Hérédité
**Bonus Héritage** : +5% Attractivité initiale si l'ancien zoo du joueur avait atteint > 1000 visiteurs (Réputation persistante).
## 3. Impacts Environnementaux
### Impact Température
| Condition | Effet |
| :--- | :--- |
| **Canicule (>30°C)** | -10% Visiteurs (sauf si Glaces en vente). |
| **Grand Froid (<0°C)** | -20% Visiteurs (sauf si Chocolat Chaud/Café en vente). |
| **Tempéré (15-25°C)** | Bonus +5% Satisfaction Visiteurs. |
### Impact Milieu (Biome)
| Biome | Effet Construction |
| :--- | :--- |
| **Plaine** | Coût standard. |
| **Désert** | Coût Eau x2 (Arrosage/Entretien). |
| **Montagne** | Coût Construction Bâtiments +50% (Fondations). |
| **Marais** | Risque Maladie +10%. |
### Impact Saisons
| Saison | Effet Global |
| :--- | :--- |
| **Printemps** | Naissances +10% (Saison des amours). |
| **Été** | Pic Visiteurs (+30%), Coût Eau +20%. |
| **Automne** | Déchets (Feuilles) +50% (Besoin nettoyage). |
| **Hiver** | Visiteurs -30%, Ventes Boutique Cadeaux +10% (Noël). |
### Impact Heure / Jour-Nuit
| Période | État |
| :--- | :--- |
| **Jour (08h-20h)** | Ouvert. Revenus actifs. |
| **Nuit (20h-08h)** | Fermé. Maintenance (Coûts réduits, pas de revenus). Animaux dorment (Santé récupère). |
## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
Score visible publiquement.
### Impact Mort
**Négligence** : Un animal mort non ramassé dans un enclos visible cause -50 Attractivité/heure et fait fuir les visiteurs à proximité.
### Impact Nourriture
**Pénurie** : Si Stock Nourriture = 0 pendant > 24h, Santé Animaux baisse -> Mort -> Baisse Attractivité massive (-100/mort).
### Impact Attractivité (Visiteurs/Animaux)
Score visible publiquement. Détermine le flux d'entrée (voir Billeterie) et le classement mondial.
### Impact Valeur
**Valorisation** : La valeur de revente du zoo (si faillite/reset) est estimée à 50% des investissements totaux (Bâtiments + Animaux).
## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
- **Vitesse Visiteurs** : 1 case / 2 sec (Chemin), 1 case / 4 sec (Herbe).
- **Vitesse Staff** : 1 case / 1 sec (Optimisé).
### Dépenses (Boutiques/Visiteurs)
**Maintenance** : 10 pièces / jour par bâtiment construit (Coûts fixes).
### Trajet Visiteurs
Destination possible. Algorithme de *Pathfinding* (A*) depuis l'entrée vers les Enclos et Boutiques.
## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
* **Nouvelle Offre** : Mise en vente.
* **Vente** : Offre achetée.
* **Inspection** : Contrôle sanitaire aléatoire (Bonus/Malus selon propreté).
* **Fête du Zoo** : Event annuel (Revenus x2 pendant 24h).
## 7. Progression
### Tableau des Upgrades
| Niveau | Nom | Effet | Coût |
| :--- | :--- | :--- | :--- |
| 1 | **Petit Parc** | Capacité 50 visiteurs. | 0 |
| 2 | **Zoo Local** | Capacité 100, Débloque Marketing Local. | 1000 |
| 3 | **Zoo Régional** | Capacité 250, Débloque Bus Touristique. | 5000 |
| 4 | **Zoo National** | Capacité 500, Débloque Hôtel (Séjour long). | 15000 |
| 5 | **Réserve** | Capacité 1000, Débloque Safari. | 50000 |
| 6 | **Monde Animal** | Capacité 2500, Débloque Aéroport. | 150000 |
| 7 | **Sanctuaire** | Capacité Illimitée, Prestige Max. | 500000 |
## 8. Logique et Interfaces
### Pseudo-code Impacts
```javascript
function updateZooState(zoo) {
// Cycle Jour/Nuit
if (isNight(zoo.time)) {
closeGates(zoo);
zoo.maintenanceCost += calculateUpkeep(zoo.buildings);
} else {
openGates(zoo);
zoo.revenue += processTicketSales(zoo);
}
// Impact Météo
if (zoo.weather == "HEATWAVE") {
zoo.visitorFlow *= 0.9;
zoo.shopSales["ice_cream"] *= 2.0;
}
}
```
### Messages d'Infos / Alerte
| ID | Niveau | Message |
| :--- | :--- | :--- |
| `ZOO_OPEN` | Info | "Le zoo ouvre ses portes ! Bonne journée." |
| `ZOO_CLOSE` | Info | "Fermeture du zoo. Les visiteurs sortent." |
| `MAINTENANCE_PAID` | Info | "Frais de maintenance journaliers payés : -{amount}." |
| `NO_FUNDS` | Alerte | "Fonds insuffisants pour la maintenance ! Risque de grève." |
# Annexes UX/UI
## 1. Expérience Utilisateur (UX)
### Visualisation Offre (Passif)
**Description UX** : Voir ce que vend un autre joueur.
**Description UI** : Une "bulle" ou un "panneau" accroché sous l'icône du zoo. Affiche l'animal (sprite) et le prix.
**Emplacement** : Carte Monde.
**Intégration** : World Space UI.
**Navigation** : Clic sur Bulle -> Détails Offre.
**Événements** : `OFFER_UPDATE`.
#### Assets
- **Musiques** : `ambience_zoo_busy.mp3` (bruit de fond léger).
- **Sons** : `ui_hover.mp3`.
- **Graphiques** : Cadre Offre (Bois/Or).
- **Images** : Sprite Animal.
- **Vidéos** : Animal qui bouge (GIF/WebM).
- **Animations** : Prix qui clignote si bas.
- **Couleurs** : Or (Prix), Vert (Rareté).
- **Textes** : "500".
- **Formes** : Bulle BD.
### Interaction Achat (Action)
**Description UX** : Acheter l'animal.
**Description UI** : Drag de l'offre vers le camion (en bas de l'écran ou sur la carte).
**Alternative** : Tap Offre -> Tap Camion.
**Emplacement** : Carte Monde.
**Intégration** : Drag & Drop.
**Navigation** : Drag -> Drop.
**Événements** : `DRAG_OFFER`.
#### Assets
- **Musiques** : Jingle `purchase_success.mp3`.
- **Sons** : `pickup.mp3`, `coin_register.mp3`.
- **Graphiques** : Fantôme offre sous curseur.
- **Images** : Icône Pièce animée.
- **Vidéos** : Effet de transaction (flux de données).
- **Animations** : Traînée d'étincelles lors du drag.
- **Couleurs** : Jaune brillant.
- **Textes** : "-500".
- **Formes** : Curseur Main fermée.