# Spécifications : Visiteur

## Définition
Personnage non-joueur (PNJ) qui visite le zoo. Il est la source principale de revenus (tickets, boutiques) et un indicateur vivant de la qualité du parc (satisfaction).

## Fonctions
| Fonction | Description | Entrées | Sorties |
|---|---|---|---|
| Visite | Parcours le zoo pour observer les animaux. | Attractivité, Chemin | Satisfaction, Temps |
| Consommation | Achète des biens et services dans le zoo. | Argent, Besoins | Revenus (Joueur), Satisfaction |
| Jugement | Évalue la qualité du zoo et influence la réputation. | État Zoo, Prix | Score Réputation |

## Icone de base
Silhouette humaine simplifiée, couleur variable selon le type (Standard, VIP, Enfant) et la variante (Homme/Femme).

## Variantes (homme/femme) et skins
- **Variantes** : homme/femme (et autres variantes si le catalogue le prévoit), sélectionnées par le générateur de visiteurs.
- **Thèmes** : la tenue/couleurs suivent `theme.md` (saisons, météo, ambiance).
- **Skins** : si activé, certaines variantes de visiteurs sont des skins (voir `inventaire_skins.md`) appliqués au rendu (sans impact gameplay).

## Interactions
| Acteur A | Action | Acteur B | Résultat |
|---|---|---|---|
| Visiteur | Regarder | Animal | Gain Satisfaction, Baisse Besoin Divertissement |
| Visiteur | Acheter | Boutique | Perte Argent, Gain Satisfaction, Baisse Besoin (Faim/Soif) |
| Joueur | Cliquer | Visiteur | Affiche la fenêtre d'état du visiteur (Pensées, Besoins) |
| Visiteur | Jeter | Poubelle | Propreté maintenue (si poubelle proche) |

## Annexes Techniques

### 1. Données et États

#### Caractéristiques Initiales
| Caractéristique | Valeur Initiale | Type | Description |
|---|---|---|---|
| Budget | 50 - 200 | Entier | Argent total disponible pour la visite. |
| Endurance | 100 | Entier | Capacité à marcher avant de devoir se reposer. |
| Vitesse Marche | 1.0 | Float | Vitesse de déplacement de base (cases/sec). |

#### Scores Initiaux
| Score | Valeur Initiale | Plage (Min-Max) | Impact |
|---|---|---|---|
| Satisfaction | 50 | 0-100 | Détermine la durée de visite et la note finale. |
| Faim | 0 | 0-100 | Augmente avec le temps, déclenche la recherche de nourriture. |
| Soif | 0 | 0-100 | Augmente avec le temps, déclenche la recherche de boisson. |
| Vessie | 0 | 0-100 | Augmente avec le temps, déclenche la recherche de toilettes. |

### 2. Cycles de Vie et Apparition

#### Conditions d'Apparition
| Condition | Seuil | Opérateur | Résultat |
|---|---|---|---|
| Zoo Ouvert | Vrai | Est | Le générateur de visiteurs est actif. |
| Attractivité | > 0 | Est | Probabilité d'apparition > 0. |
| Capacité Zoo | < Max | Est | Un nouveau visiteur peut entrer. |

#### Conditions de Disparition
| Condition | Seuil | Opérateur | Résultat |
|---|---|---|---|
| Satisfaction | 0 | <= | Départ anticipé (Mécontent). |
| Budget | 0 | <= | Départ normal (Plus d'argent). |
| Heure | Fermeture | >= | Départ forcé (Expulsion). |
| Temps Visite | Max | >= | Départ normal (Fatigue). |

#### Hérédité
| Parent | Trait Transmis | Probabilité | Mutation Possible |
|---|---|---|---|
| Groupe (Famille) | Type (VIP/Standard) | 100% | Non (Le groupe est homogène) |
| Groupe (Famille) | Vitesse | Moyenne du groupe | Non |

### 3. Impacts Environnementaux

#### Impact Température
| Plage Température | Effet sur l'entité | Bonus/Malus |
|---|---|---|
| > 30°C (Chaud) | Soif augmente plus vite | +50% Vitesse Soif |
| < 5°C (Froid) | Endurance baisse plus vite | +20% Fatigue |
| 20°C (Idéal) | Satisfaction stable | Bonus passif +1/min |

#### Impact Milieu (Biome)
| Biome | Compatibilité | Bonus/Malus |
|---|---|---|
| Asphalte (Allée) | 100% | Vitesse normale |
| Sable | 50% | Vitesse -30% (Marche difficile) |
| Herbe | 80% | Satisfaction +5% (Cadre agréable) |
| Boue | 20% | Satisfaction -10% (Salissant) |

#### Impact Saisons
| Saison | Effet | Modificateur |
|---|---|---|
| Été | Affluence maximale, Vente Glaces | Flux x1.5, Vente Glaces +50% |
| Hiver | Affluence réduite, Vente Boissons Chaudes | Flux x0.6, Vente Café +50% |
| Printemps | Affluence moyenne | Flux x1.0 |
| Automne | Affluence moyenne, Vente Parapluies | Flux x0.9, Vente Parapluies +30% |

#### Impact Heure / Jour-Nuit
| Période | Activité | Visibilité |
|---|---|---|
| Matin (9h-12h) | Arrivée massive | Haute |
| Midi (12h-14h) | Pause déjeuner (Surcharge Restauration) | Haute |
| Après-midi (14h-17h) | Visite et Achats | Haute |
| Soir (17h-19h) | Départs massifs | Moyenne |
| Nuit | Zoo fermé (sauf événement nocturne) | Nulle |

### 4. Impacts Biologiques et Sociaux

#### Impact Reproduction
| Facteur | Effet sur Taux | Condition |
|---|---|---|
| Saison des Amours (Animaux) | +10% Satisfaction | Si des bébés sont visibles |
| Présence Enfants | +20% Vente Ballons | Si le visiteur est accompagné d'enfants |

#### Impact Mort
| Cause | Conséquence | Durée |
|---|---|---|
| Vue Animal Mort | Choc (-50 Satisfaction), Départ immédiat | Permanent pour cette visite |
| Accident (Chute) | Appel Secours, Zone bloquée | 30 min |

#### Impact Nourriture
| Type Nourriture | Gain Santé | Coût | Préférence |
|---|---|---|---|
| Burger | Faim -50 | 12$ | 4/5 (Populaire) |
| Salade | Faim -30 | 10$ | 2/5 (Niche) |
| Glace | Soif -10, Satisfaction +5 | 5$ | 5/5 (Été) |

#### Impact Attractivité Visiteurs
| Action/État | Gain Attractivité | Rayon d'action |
|---|---|---|
| Foule heureuse | +5 (Ambiance) | 10m |
| Foule en colère | -10 (Mauvaise ambiance) | 15m |
| Vomissement | -20 (Dégoût) | 5m |

#### Impact Attractivité Animaux
| Espèce | Interaction | Effet Stress |
|---|---|---|
| Lion | Rugissement | +10 Satisfaction (Frisson) |
| Singe | Grimace | +5 Satisfaction (Rire) |
| Animal Timide | Bruit Visiteurs | +20 Stress Animal |

#### Impact Valeur
| Facteur | Variation Prix | Condition |
|---|---|---|
| Visiteur VIP | Dépense x2 | Si satisfait |
| Visiteur Radin | Dépense x0.5 | Toujours |

### 5. Impacts Logistiques et Économiques

#### Vitesse (Camion)
| Type Route | Vitesse Max | Consommation |
|---|---|---|
| Navette Visiteurs | 40 km/h | 15 L/100 |

#### Vitesse (Nurserie)
| Action | Durée de base | Réduction par Upgrade |
|---|---|---|
| Soin Visiteur (Infirmerie) | 15 min | -20% (Médecin expert) |

#### Vitesse (Accueil)
| Flux | Visiteurs/Minute | Capacité Max |
|---|---|---|
| Guichet Manuel | 2 | 10 (File d'attente) |
| Portique Auto | 10 | 50 (File d'attente) |

#### Vitesse (Recherche)
| Projet | Durée (Jours) | Coût Accélération |
|---|---|---|
| Étude Comportementale | 5 jours | 2000$ |

#### Vitesse (Labo)
| Analyse | Durée | Fiabilité |
|---|---|---|
| Sondage Satisfaction | 24h | +/- 5% Marge erreur |

#### Vitesse (Visite)
| Zone | Temps Moyen | Facteur Ralentissement |
|---|---|---|
| Enclos Grand | 10 min | Si animal visible |
| Enclos Petit | 2 min | Si animal caché |
| Boutique | 5 min | Si file d'attente |

#### Dépenses (Billeterie)
| Poste | Coût Hebdo | Maintenance |
|---|---|---|
| Impression Tickets | 100$ | 10$ |

#### Dépenses (Boutiques)
| Article | Coût Achat | Marge |
|---|---|---|
| Souvenirs | 5$ | 300% (Vendu 20$) |
| Nourriture | 2$ | 400% (Vendu 10$) |

#### Dépenses (Visiteurs)
| Type Dépense | Montant Moyen | Fréquence |
|---|---|---|
| Entrée | 20$ | 1 fois |
| Restauration | 15$ | 1 fois |
| Cadeaux | 30$ | 0.5 fois (1 sur 2) |

#### Dépenses (Employés)
| Rôle | Salaire | Prime |
|---|---|---|
| Agent Accueil | 1500$ | Aucune |
| Animateur | 1800$ | +50$ par show réussi |

#### Dépenses (Nurseries)
| Soin | Coût Matériel | Coût Personnel |
|---|---|---|
| Pansement (Bobo) | 2$ | 10$ (Temps infirmier) |

#### Dépenses (Nourriture)
| Type | Prix/Kg | Fournisseur |
|---|---|---|
| Stock Restaurant | 500$ / palette | MetroZoo |

#### Dépenses (Acceuil des animaux)
| Installation | Coût Construction | Entretien |
|---|---|---|
| Banc | 100$ | 0$ |
| Toilettes | 2000$ | 100$ / semaine |

#### Dépenses (Camion)
| Trajet | Coût Essence | Usure |
|---|---|---|
| Bus Navette | 20$ / jour | 1% / jour |

#### Trajet Visiteurs

##### Trajet Visiteurs vers/depuis la ville
| Moyen Transport | Temps | Coût | Fréquence |
|---|---|---|---|
| Voiture | 20 min | 5$ (Parking) | 60% des visiteurs |
| Bus | 45 min | 2$ | 30% des visiteurs |
| Pied | 60 min | 0$ | 10% des visiteurs |

##### Trajet Visiteurs vers/depuis les animaux
| Chemin | Distance | Attrait |
|---|---|---|
| Allée Principale | 0m (Départ) | 10/10 |
| Sentier Boueux | +50% temps | 2/10 |

##### Trajet Visiteurs vers/depuis les boutiques
| Emplacement | Détour Moyen | Taux de Conversion |
|---|---|---|
| Sortie Enclos | 10m | 40% (Impulsion) |
| Zone Isolée | 100m | 5% (Besoin spécifique) |

##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo)
| Flux | Temps Attente | Saturation |
|---|---|---|
| Entrée Matin | 15 min | 90% |
| Sortie Soir | 5 min | 40% |

### 6. Événements

#### Événements du Jeu
| Event | Déclencheur | Effet Global | Durée |
|---|---|---|---|
| Vacances Scolaires | Date Calendrier | Affluence Enfants +50% | 2 semaines |
| Pluie Torrentielle | Météo | Affluence -40%, Vente Parapluies ++ | 1 jour |

#### Événements du Carte
| Event | Lieu | Impact Zone |
|---|---|---|
| Embouteillage | Route accès | Arrivées retardées | 2h |

#### Événements du Zoo
| Event | Cible | Conséquence |
|---|---|---|
| Évasion Animal | Zone Proche | Panique, Fuite des visiteurs | Immédiat |

#### Événements du Ville / Visiteur
| Event | Impact Affluence | Impact Budget |
|---|---|---|
| Festival Ville | -20% (Concurrence) | Dépense Moyenne -10% (les achats se déplacent en ville) |
| Bonus Économique | +10% | Dépense Moyenne +20% |

#### Événements du Visiteur
| Action | Satisfaction | Besoin |
|---|---|---|
| Vol à la tire | -80 | Sécurité |
| Trouve Objet Perdu | +20 | Aucun |

#### Événements du Joueur
| Action | Coût Action | Gain XP |
|---|---|---|
| Campagne Pub | 5000$ | +1000 Visiteurs |

### 7. Progression

#### Tableau des Upgrades
| Niveau | Coût | Prérequis | Bonus Débloqué |
|---|---|---|---|
| Carte Membre | 10,000$ | Réputation 200 | Fidélisation +10% |
| Bus Gratuit | 25,000$ | Parking Niv 2 | Affluence Pauvre +30% |

### 8. Logique et Interfaces

#### Pseudo-code Impacts
| Algorithme | Entrées | Logique Simplifiée | Sortie |
|---|---|---|---|
| Calcul Satisfaction | État Zoo, Besoins | `Sat = (AnimauxVu * 10) - (Faim + Soif + Fatigue)/3` | Score 0-100 |
| Décision Achat | Budget, Besoin, Prix | `Si Besoin > 50 ET Budget > Prix Alors Acheter` | Booléen |

#### Messages d'Infos / Alerte
| Type | Message | Condition | Priorité |
|---|---|---|---|
| Info | "Un visiteur VIP est arrivé." | Spawn VIP | 2 |
| Warn | "Les visiteurs se plaignent de la saleté." | Propreté < 30% | 4 |
| Error | "Un visiteur est blessé !" | Accident | 5 |

## 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 du personnage pour le sélectionner.
    *   **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris.

### 0. Direction Artistique & Vue (Existante)
*   **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)

#### Description UX
| Étape Utilisateur | Action Attendue | Feedback Système |
|---|---|---|
| Observation | Zoom sur visiteur | Affichage info-bulle nom/état |
| Plainte | Clic sur bulle rouge | Ouverture fenêtre résolution problème |
| Déplacement | Se déplace sur les chemins | Attraction forte pour les chemins |

#### Description UI
Style graphique inspiré de `IMG_20260303_170253.jpg` : Coloré, vivant, détails foisonnants, aspect 'dessiné à la main' ou 'cartoon soigné'.

| Élément | Type (Bouton/Panel) | Contenu | État par défaut |
|---|---|---|---|
| Bulle Pensée | Icône Flottante | Image (Burger, WC, Eau, Appareil photo, Cadeau, Banc) | Caché |
| Jauge Satisfaction | Barre Progression | Vert -> Rouge | Visible (si sélectionné) |

#### Emplacement
| Élément | Position | Ancrage | Z-Index |
|---|---|---|---|
| Bulle | Au-dessus tête | World Space | 50 |
| Panel Info | Bas Gauche | Bottom-Left | 100 |

#### Intégration
| Composant Parent | Contraintes | Responsive |
|---|---|---|
| World Canvas | Suis la caméra | Oui |

#### Navigation
| De l'écran | Vers l'écran | Transition | Trigger |
|---|---|---|---|
| Jeu Principal | Vue Visiteur | Focus Caméra | Double Clic |

#### Événements
| Input Utilisateur | Action Système | Son | Animation |
|---|---|---|---|
| Clic Visiteur | Sélectionne | `select_pop.mp3` | Highlight |

#### Assets Skinables

##### Musiques
| Piste | Contexte | Loop | Volume |
|---|---|---|---|
| `crowd_mumble.mp3` | Zoom éloigné | Oui | 30% |
| `park_ambience.mp3` | Zoom proche | Oui | 50% |

##### Sons
| SFX | Trigger | Priorité |
|---|---|---|
| `footsteps_gravel.mp3` | Marche | Basse |
| `cash_register.mp3` | Achat | Moyenne |

##### Graphiques
| Asset | Format | Résolution |
|---|---|---|
| `visitor_sheet.png` | Spritesheet | 1024x1024 |
| `bubble_icons.png` | Atlas | 512x512 |

##### Images
| Image | Usage | Alt Text |
|---|---|---|
| `face_happy.png` | UI Satisfaction | "Visage Souriant" |
| `face_angry.png` | UI Satisfaction | "Visage Colérique" |

##### Vidéos
| Clip | Usage | Durée |
|---|---|---|
| `visitor_card_preview.webm` | Aperçu animé dans le panneau de détails d’un visiteur sélectionné (HUD) | 1.5s (loop) |

##### Animations
| Nom | Cible | Durée | Type (CSS/JS) |
|---|---|---|---|
| `walk_cycle` | Sprite Visiteur | 1s (boucle) | Sprite Anim |
| `eat_anim` | Sprite Visiteur | 2s | Sprite Anim |

##### Couleurs
| Code Hex | Usage | Sémantique |
|---|---|---|
| #00FF00 | Jauge Sat | Bon |
| #FF0000 | Jauge Sat | Mauvais |

##### Textes
| Clé i18n | Valeur FR | Valeur EN |
|---|---|---|
| `VISITOR_NAME_1` | Jean Dupont | John Doe |
| `STATE_HUNGRY` | A faim | Hungry |

##### Formes
| Forme | Usage | Style Bordure |
|---|---|---|
| Rond | Avatar | Solid White 2px |
