**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/*
222 lines
7.7 KiB
Markdown
222 lines
7.7 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 (poteaux bois).
|
|
- **Avatar Joueur** : Visible en coin de l'écran.
|
|
- **Vue** : Isométrique (2.5D). Le zoo est présenté comme un diorama vivant. La banderole flotte au vent.
|
|
- **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
|
|
|
|
## 0. Direction Artistique & Vue
|
|
* **Vue** : Isométrique (2.5D).
|
|
* **Grille** : Les déplacements se font sur une grille losange.
|
|
* **Sprites** : 4 directions (Nord-Est, Sud-Est, Sud-Ouest, Nord-Ouest).
|
|
* **Profondeur** : Gestion du Z-index (les éléments "en bas" cachent ceux "en haut").
|
|
* **Style Visuel** : Inspiré de `IMG_20260303_170253.jpg`.
|
|
* Coloré, vivant, détails foisonnants.
|
|
* Aspect "dessiné à la main" ou "cartoon soigné".
|
|
* Couleurs vives et contours nets.
|
|
|
|
## 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.
|