**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
6.2 KiB
Spécifications : Visiteur
Définition
Personnage non-joueur (PNJ) qui visite le zoo.
Comportement
- Apparition : Arrive par la Billeterie (venant d'une Ville).
- Déplacement : Se promène sur la grille, attiré par les animaux et boutiques.
- Durée : Reste jusqu'à 1 journée (variable selon attractivité).
- Dépense : Paie l'entrée + achats en boutique.
Incidents et Exigences
- Besoins : Soif, Repos (banc), Propreté (poubelle), Envie de photo.
- Feedback : Bulle d'icône au-dessus du visiteur.
- Résolution : Clic du joueur sur la bulle.
- Conséquence :
- Résolu : Gain de pièces + Attractivité.
- Ignoré : Perte d'attractivité, départ anticipé.
- Contexte : Apparaissent plus souvent pendant les temps d'attente (camion/enchère).
Types
- Standard
- Luxe (8%) : Paie plus cher, plus exigeant.
Annexes Techniques
1. Données et États
Modèle de Données (JSON)
{
"id": "uuid_v4",
"type": "enum ('standard', 'vip')",
"entry_time": "timestamp",
"max_duration": "integer (seconds)",
"budget": "integer",
"satisfaction": "float (0-100)",
"needs": {
"thirst": "float (0-100)",
"rest": "float (0-100)",
"toilet": "float (0-100)"
},
"current_target": { "x": "int", "y": "int" },
"position": { "x": "int", "y": "int" }
}
Caractéristiques Initiales
| Caractéristique | Standard | Luxe (VIP) |
|---|---|---|
| Budget | 50 | 200 |
| Durée Max | 300s (5 min) | 600s (10 min) |
| Satisfaction | 50 | 50 |
Scores Initiaux
N/A
2. Cycles de Vie et Apparition
Conditions d'Apparition
| Facteur | Taux |
|---|---|
| Attractivité Zoo | log(Attractivité) * FacteurVille |
| Heure | Pic à 14h, Nul à 22h |
Conditions de Disparition
| Cause | Seuil |
|---|---|
| Temps écoulé | Durée > Max Duration |
| Insatisfaction | Satisfaction <= 0 |
| Budget épuisé | Budget <= 0 (Départ normal) |
Hérédité
N/A
3. Impacts Environnementaux
Impact Température
| Météo | Effet |
|---|---|
| Canicule | Soif augmente 2x plus vite |
| Pluie | Satisfaction baisse plus vite (sauf si abri) |
Impact Milieu (Biome)
N/A
Impact Saisons
| Saison | Affluence (Multiplicateur) |
|---|---|
| Printemps | x1.0 |
| Été | x1.5 (Vacances) |
| Automne | x0.8 |
| Hiver | x0.6 |
Impact Heure / Jour-Nuit
| Heure | Flux Entrant |
|---|---|
| 08h-10h | Faible |
| 10h-16h | Fort |
| 16h-18h | Décroissant |
| > 18h | Nul |
4. Impacts Biologiques et Sociaux
Impact Reproduction
N/A
Impact Mort
| Événement | Effet Satisfaction |
|---|---|
| Voir animal mort | -50 (Départ quasi immédiat) |
Impact Nourriture
N/A (Concerne les animaux, ici c'est "Soif/Faim visiteur" -> Boutiques)
Impact Attractivité (Visiteurs/Animaux)
| Cible | Poids Attraction |
|---|---|
| Animal Légendaire | 100 |
| Animal Commun | 10 |
| Boutique | 50 (si besoin > 50) |
Impact Valeur
N/A
5. Impacts Logistiques et Économiques
Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
| Paramètre | Valeur |
|---|---|
| Vitesse Marche | 1 case / 2 sec |
Dépenses (Boutiques/Visiteurs)
| Action | Dépense |
|---|---|
| Ticket Entrée | 10 (Standard) / 50 (VIP) |
| Boutique Souvenir | 15-30 |
| Boisson | 5 |
Trajet Visiteurs
Algorithme : Weighted Random Walk vers les points d'intérêt (POI) avec decay sur la distance.
6. Événements
Événements du Jeu / Carte / Zoo / Ville / Visiteur
- Incident (Bulle) : Apparition aléatoire (probabilité augmentée si attente joueur).
- Achat : Interaction avec boutique.
7. Progression
Tableau des Upgrades
N/A
8. Logique et Interfaces
Pseudo-code Impacts
function updateVisitor(visitor):
visitor.satisfaction -= decayRate
visitor.needs.thirst += 1
if visitor.needs.thirst > 80:
target = findNearestShop()
if not target:
visitor.satisfaction -= 5 (Frustration)
spawnIncident("Soif")
if visitor.satisfaction <= 0:
leaveZoo(visitor)
Messages d'Infos / Alerte
| ID | Niveau | Message |
|---|---|---|
VISITOR_ANGRY |
Info | "Un visiteur est parti mécontent." |
VISITOR_HAPPY |
Info | "Un visiteur a adoré le zoo !" |
Annexes UX/UI
1. Expérience Utilisateur (UX)
Visite (Passif)
Description UX : Le visiteur entre, marche, regarde les animaux, achète, repart.
Description UI : Petit sprite humain. Vêtements colorés.
Emplacement : Grille Zoo.
Intégration : Foule.
Navigation : N/A
Événements : VISITOR_WALK.
Assets
- Musiques : N/A
- Sons : Pas sur l'herbe/béton.
- Graphiques : Sprites variés (H/F/Enfant).
- Images : N/A
- Vidéos : N/A
- Animations : Marche, Regarde (tourne la tête), Prend photo (flash).
- Couleurs : Aléatoires.
- Textes : N/A
- Formes : N/A
Incident / Besoin (Action)
Description UX : Une bulle apparaît au-dessus d'un visiteur (ex: Soif, Perdu, Envie pipi). Le joueur clique pour résoudre (ex: Indiquer toilettes, Donner eau).
Description UI : Bulle blanche avec icône noire. Clignote si urgent.
Emplacement : Au-dessus du sprite visiteur.
Intégration : Overlay World Space.
Navigation : Clic Bulle -> Résolution (Animation + Gain).
Événements : INCIDENT_SPAWN, INCIDENT_SOLVE.
Assets
- Musiques : N/A
- Sons :
bubble_pop.mp3(apparition),coin_collect.mp3(résolution). Design ASMR : Son satisfaisant et tactile ("Pop" organique). - Graphiques : Icônes (Goutte d'eau, Point interrogation, Appareil photo).
- Images : N/A
- Vidéos : N/A
- Animations : Bulle qui pop. Visiteur qui sourit après résolution.
- Couleurs : Bulle Blanche/Rouge (Urgent).
- Textes : "Merci !" (flottant).
- Formes : Bulle BD.
Départ (Passif)
Description UX : Le visiteur quitte le zoo.
Description UI : Marche vers la sortie et disparaît (Fade out).
Emplacement : Billeterie.
Intégration : Fin cycle.
Navigation : N/A
Événements : VISITOR_EXIT.
Assets
- Musiques : N/A
- Sons : N/A
- Graphiques : N/A
- Images : N/A
- Vidéos : N/A
- Animations : Fade out.
- Couleurs : N/A
- Textes : N/A
- Formes : N/A