Files
builazoo/docs/specs/artiste.md
Nicolas Cantu e92c1355d0 Enrichissement exhaustif des specs : Vue Isométrique et Design
**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/*
2026-03-05 02:10:32 +01:00

79 lines
2.7 KiB
Markdown

# Artiste
## 1. Définition
Employé dédié au divertissement des visiteurs. Il réalise des spectacles de rue, joue de la musique ou peint, augmentant ainsi le bonheur des visiteurs et leur temps de séjour dans le zoo. Achetable avec des pièces.
## 2. Fonctions
* **Divertissement :** Crée une zone d'attractivité temporaire autour de lui.
* **Bonheur :** Augmente la jauge de bonheur des visiteurs à proximité.
* **Dons :** Peut générer de petits revenus supplémentaires (pourboires).
## 3. Icone
* **Représentation :** Masque de théâtre ou Notes de musique.
* **Couleur dominante :** Rose et Violet.
## 4. Interactions
* **Recrutement :** Menu "Employés", coût en pièces.
* **Placement :** Peut être assigné à une "scène" ou un point de passage stratégique.
* **Performance :** Le joueur peut déclencher un "Show Spécial" (cooldown) pour un gros boost.
## 5. Annexes Techniques
### Données (JSON)
```json
{
"employee_id": "artist_03",
"type": "artiste",
"subtype": "musician", // "clown", "painter", "juggler"
"name": "Melody",
"salary": 45,
"hire_cost": 450,
"state": "enum (IDLE, PERFORMING, BREAK)",
"performance_cooldown_end": "timestamp",
"stats": {
"charisma": 15,
"radius": 3, // Rayon d'effet
"tips_collected": 0
},
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer"
}
```
### Règles Métier
* L'efficacité diminue si l'artiste reste trop longtemps au même endroit (besoin de rotation ou de pause).
* Attire les foules, ce qui peut créer des bouchons (à gérer avec les chemins).
### Algorithme de Performance
```python
def update_artist(artist, visitors_nearby):
if artist.state == "PERFORMING":
for visitor in visitors_nearby:
visitor.happiness += artist.stats.charisma * 0.1
visitor.stay_duration += 5 # minutes
# Chance de pourboire
if random() < 0.05:
tip = random(1, 5)
artist.tips_collected += tip
add_coins(tip)
```
## 6. Annexes UX/UI
* **Visuel Carte :** Personnage coloré, jonglant ou jouant d'un instrument.
* **Effet :** Notes de musique ou étoiles flottant autour de lui.
* **Son :** Musique d'ambiance locale quand on zoome dessus.
* **Vue Isométrique :** Animation de jonglage ou de jeu d'instrument en boucle.
# 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.