# Soigneur ## 1. Définition Employé spécialisé dans la santé des animaux. Il intervient pour prévenir les maladies, soigner les animaux malades et s'assurer de leur bien-être général. Il est achetable avec des pièces du zoo. ## 2. Fonctions * **Prévention :** Réduit la probabilité d'apparition de maladies dans les enclos assignés ou proches. * **Soin :** Intervient automatiquement sur les animaux malades pour les guérir (durée d'action). * **Bien-être :** Augmente légèrement le score de bien-être des animaux. ## 3. Icone * **Représentation :** Croix verte ou Trousse de secours. * **Couleur dominante :** Blanc et Vert. ## 4. Interactions * **Recrutement :** Via le menu "Employés" contre des pièces. * **Assignation :** Peut être assigné à une zone ou un enclos spécifique (drag & drop ou menu contextuel). * **Amélioration :** (Optionnel) Formation pour augmenter l'efficacité. ## 5. Annexes Techniques ### Données (JSON) ```json { "employee_id": "healer_01", "type": "soigneur", "name": "Dr. Doolittle", "salary": 50, // Coût par cycle (jour/mois) "hire_cost": 500, // Coût d'achat en pièces "stats": { "speed": 1.0, "efficiency": 0.8, "range": 5 // Rayon d'action en cases }, "assigned_zone": null // null = tout le zoo, ou ID de zone, "iso_x": "integer", "iso_y": "integer", "z_index": "integer" } ``` ### Règles Métier * Un animal malade non soigné peut mourir ou contaminer les autres. * Le soigneur doit se déplacer physiquement (ou virtuellement avec délai) jusqu'à l'enclos. * Le coût de recrutement augmente avec le nombre de soigneurs déjà possédés. ## 6. Annexes UX/UI * **Visuel Carte :** Personnage en blouse blanche avec une mallette. * **Feedback :** Icône de croix verte au-dessus de l'animal soigné. * **Notification :** "Un animal est malade !" (si pas de soigneur dispo) ou "Animal soigné par [Nom]". # 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. ## Définition | Champ | Valeur | |---|---| | Entité | Employé “Soigneur” | | Rôle | Prévenir/traiter maladies, stabiliser les états critiques, améliorer bien-être. | | Portée | Zone ou enclos assigné + rayon `stats.range`. | | Contraintes | Se déplace (coût temps), file de tâches, disponibilité. | | Vue | Isométrique 2.5D, sprite 4 directions, hitbox base-sprite. | ## Fonctions (tableau détaillé) | Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité | |---|---|---|---|---|---| | Prévention maladies | Tick soigneur / tick zoo | `efficiency`, enclos, densité | probas maladies - | Effet plafonné ; dépend propreté enclos | Event `HEALER_PREVENTION_TICK`, métrique “maladies évitées” | | Soin automatique | Animal `SICK` | animal, soigneur dispo | état animal amélioré | Priorité: critique > contagieux > léger | Event `HEALER_TREAT_START/END` | | Quarantaine (si prévue) | Animal contagieux | enclos, iso | propagation - | nécessite zone dédiée | Event `HEALER_QUARANTINE` | | Boost bien-être | Tick | `efficiency` | `wellbeing +` | Bonus léger, cumul limité/jour | Event `HEALER_WELLBEING_TICK` | ## Icone de base | Élément | Spécification | |---|---| | Représentation | Croix verte / trousse de soin | | Couleur dominante | Blanc / vert | | Variantes | `icon_healer_cross.png`, `icon_healer_bag.png` | | États | Badge “occupé” (sablier), “urgence” (rouge), “en pause” (Zzz) | ## Interactions (tableau détaillé) | Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages | |---|---|---|---|---|---| | Recruter | Action | coins ≥ `hire_cost` | Menu Employés → Soigneur → Confirmer | entité créée | `INSUFFICIENT_FUNDS`, `EMPLOYEE_CAP_REACHED` | | Assigner zone/enclos | Action | zone existe, path possible | Sélection soigneur → “Assigner” → clic zone/enclos | priorité locale | `NO_PATH`, `INVALID_TARGET` | | Forcer intervention | Action | animal malade visible | clic animal → “Appeler soigneur” | tâche ajoutée | `NO_HEALER_AVAILABLE` | | Former | Action (option) | ressources/temps | panel → “Former” | `efficiency +` | `INSUFFICIENT_FUNDS` | | Inspecter file | Consultation | - | panel soigneur | liste tâches + ETA | - | ## Annexes Techniques ### 1. Données et États (tableau détaillé) | Donnée / État | Type | Exemple | Source | Contraintes | |---|---|---|---|---| | `employee_id` | string | `healer_01` | DB | unique | | `type` | enum | `soigneur` | DB | constante | | `salary` | int | 50 | config | coins/jour | | `hire_cost` | int | 500 | config | one-shot | | `stats.speed` | float | 1.0 | DB | modifie déplacement | | `stats.efficiency` | float | 0.8 | DB | [0..1.5] | | `stats.range` | int | 5 | DB | [1..10] | | `assigned_zone` | uuid/null | null | runtime | null = global | | `task_queue` | array | - | runtime | FIFO + priorités | | `state` | enum | `IDLE|MOVING|TREATING|BREAK` | runtime | transitions contrôlées | | `grid` | object | `{x,y}` | runtime | position | | `iso_x/iso_y` | int | - | rendu | projection | | `z_index` | int | - | rendu | profondeur | | `hitbox` | enum | `base_sprite` | rendu | click base | #### Caractéristiques Initiales (tableau détaillé) | Caractéristique | Valeur initiale | Unité | Notes | |---|---:|---|---| | Rayon action | 5 | cases | `range` | | Efficacité | 0.8 | coef | prévention/soin | | Temps soin léger | 2 | min in-game | tâche | | Temps soin moyen | 5 | min in-game | tâche | | Temps soin critique | 10 | min in-game | tâche | | Pause | 15 | min in-game | toutes 4h in-game | #### Scores Initiaux (tableau détaillé) | Score | Valeur initiale | Plage | Impact | |---|---:|---|---| | Animaux soignés/jour | 0 | 0..∞ | santé globale | | Maladies évitées/jour | 0 | 0..∞ | survie | | Coût santé/jour | 50 | 0..∞ | dépenses employés | ### 2. Cycles de Vie et Apparition (tableau détaillé) | Phase | Déclencheur | Entrées | Sorties | Invariants | |---|---|---|---|---| | Apparition | embauche | coins | entité | état `IDLE` | | Action | détection maladie | animal | tâche | priorité | | Pause | fatigue | temps | état `BREAK` | pas de soin | | Disparition | licenciement (si prévu) | - | suppression | stop tâches | #### Conditions d'Apparition (tableau détaillé) | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | Achat | coins ≥ `hire_cost` | vrai | création | #### Conditions de Disparition (tableau détaillé) | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | Licenciement | action joueur | vrai | suppression | | Zoo supprimé | - | vrai | suppression | #### Hérédité (tableau détaillé) | Élément | Hérité | Règle | |---|---|---| | `stats` | Oui | persistées | | `task_queue` | Non | vidée au reset jour | ### 3. Impacts Environnementaux #### Impact Température (tableau détaillé) | Température | Effet | Condition | |---|---|---| | Extrême | charge + | plus d’animaux critiques | | Tempérée | neutre | - | #### Impact Milieu (Biome) (tableau détaillé) | Biome | Effet | Notes | |---|---|---| | Chemins | déplacement + | visiteurs attirés aux chemins | | Boue | déplacement - | pénalité path | #### Impact Saisons (tableau détaillé) | Saison | Effet | Modificateur | |---|---|---| | Hiver | maladies froid + | tâches + | | Été | stress chaleur + | tâches + | #### Impact Heure / Jour-Nuit (tableau détaillé) | Période | Effet | Règle | |---|---|---| | Jour | soins actifs | - | | Nuit | interventions urgentes uniquement | sinon pause | ### 4. Impacts Biologiques et Sociaux #### Impact Reproduction (tableau détaillé) | Facteur | Effet sur taux | Condition | |---|---|---| | Soins réguliers | + | animaux non malades | #### Impact Mort (tableau détaillé) | Cas | Effet | Condition | |---|---|---| | Animal critique sans soigneur | risque mort + | file saturée | | Animal contagieux traité | mortalité - | quarantaine/soin | #### Impact Nourriture (tableau détaillé) | Ressource | Effet | Condition | |---|---|---| | Nourriture spéciale | soins + efficaces | si buff actif | #### Impact Attractivité(Visiteurs (tableau détaillé) | État | Effet | Condition | |---|---|---| | Animaux visibles en bonne santé | satisfaction + | enclos propres | | Animaux malades visibles | satisfaction - | incidents | #### Impact Attractivité Animaux) (tableau détaillé) | Action | Effet animaux | Condition | |---|---|---| | Soins | stress - | traitement réussi | #### Impact Valeur (tableau détaillé) | Facteur | Variation | Condition | |---|---:|---| | Certificat santé | +10% | vente animal si soigné récemment | ### 5. Impacts Logistiques et Économiques #### Vitesse (Camion) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | Transport animaux malades | interdit | vente/transport bloqué | #### Vitesse (Nurserie) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | Urgence bébé | soin possible | nurserie niv 4+ | #### Vitesse (Accueil) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | Réception | - | pas d’effet direct | #### Vitesse (Recherche) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | Tech médecine | soins + rapides | si débloquée | #### Vitesse (Labo) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | aucun | - | #### Vitesse (Visite) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | Temps visite | + | zoo sain | #### Dépenses (Billeterie) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Boutiques) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Vente soins | revenu + | coins | boutique pharmacie (si ajoutée) | #### Dépenses (Visiteurs) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Remboursement | -coins | coins | visiteur choqué | #### Dépenses (Employés) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Salaire | 50 | coins/jour | actif | | Formation | 300 | coins | upgrade | #### Dépenses (Boutiques) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Section dupliquée | 0 | - | conservée | #### Dépenses (Nurseries) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Soins bébé | 10 | coins | action “urgence” | #### Dépenses (Nourriture) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Médicaments | 5 | coins/soin | si consommable | #### Dépenses (Acceuil des animaux) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Diagnostic arrivée | 10 | coins | si check santé | #### Dépenses (Camion) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Transport vers clinique | 100 | coins | si feature externe | #### Trajet Visiteurs ##### Trajet Visiteurs vers/depuis la ville (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | Ville | Zoo | réputation | soigneur indirect (via santé zoo) | ##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | Soigneur | Enclos | tâche | déplacement sur chemins | ##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | Visiteurs | Boutique | santé/incident | achats + | ##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | Visiteur mécontent | sortie | incident non résolu | départ + | ### 6. Événements #### Événements du Jeu (tableau détaillé) | Event | Déclencheur | Payload | Effet | |---|---|---|---| | `ANIMAL_SICK` | état maladie | animal_id | alerte | | `ANIMAL_HEALED` | fin soin | animal_id | info | #### Événements du Carte (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `HEALER_MOVING` | tâche | rendu déplacement | #### Événements du Zoo (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `HEALTH_SYSTEM_OVERLOADED` | trop malades | alerte | #### Événements du Ville / Visiteur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `VISITOR_WORRIED` | animal malade vu | satisfaction - | #### Événements du Visiteur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `VISITOR_REFUND_REQUEST` | très mécontent | remboursement | #### Événements du Joueur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `PLAYER_CALL_HEALER` | bouton | tâche prioritaire | ### 7. Progression #### Tableau des Upgrades (tableau détaillé) | Niveau | Coût | Effet | Débloque | |---|---:|---|---| | 1 | 0 | prévention base | - | | 2 | 1500 | `range` +1 | couverture | | 3 | 3000 | `efficiency` +0.1 | soins plus rapides | | 4 | 6000 | soins contagieux + | quarantaine (option) | ### 8. Logique et Interfaces #### Pseudo-code Impacts (tableau détaillé) | Fonction | Entrées | Sorties | Notes | |---|---|---|---| | `scan_sick_animals` | zoo state | list | priorités | | `enqueue_heal_task` | animal | task | file | | `apply_treatment` | animal, efficiency | state | clamp | #### Messages d'Infos / Alerte (tableau détaillé) | ID | Niveau | Message | Condition | |---|---|---|---| | `NO_HEALER_AVAILABLE` | Alerte | "Aucun soigneur disponible." | file saturée | | `ANIMAL_HEALED` | Info | "Animal soigné." | fin soin | | `DISEASE_SPREAD` | Warning | "Risque de contagion." | cluster | ## Annexes UX/UI ### 1. Expérience Utilisateur (UX) #### Description UX (tableau détaillé) | Parcours | But | Friction | Réduction clics | |---|---|---|---| | Recruter | diminuer morts | coût | bouton recruter direct | | Traiter urgence | sauver animal | localisation | deep-link depuis notif | #### Description UI (tableau détaillé) | Composant | Contenu | États | |---|---|---| | Panel soigneur | file tâches, range | IDLE/MOVING/TREATING | | Badge maladie | icône croix/virus | levels | #### Emplacement (tableau détaillé) | Zone UI | Position | Notes | |---|---|---| | Carte | sprite soigneur | sélection base | | Panel animal | bouton “Appeler” | urgence | #### Intégration (tableau détaillé) | Intégration | Contrat | Notes | |---|---|---| | États animaux | `SICK/CRITICAL` | pas de fallback | | Notifications | push HUD | - | #### Navigation (tableau détaillé) | Action | Chemin | Résultat | |---|---|---| | Ouvrir panel | clic soigneur | panel | | Appeler | clic animal → bouton | tâche | #### Événements (tableau détaillé) | Event UI | Déclencheur | Effet | |---|---|---| | `OPEN_HEALER_PANEL` | clic | panel | | `CLICK_CALL_HEALER` | bouton | tâche | #### Assets Skinables ##### Musiques (tableau détaillé) | Asset | Usage | Durée | Notes | |---|---|---:|---| | `clinic_soft_loop.mp3` | ambiance soin | loop | discret | ##### Sons (tableau détaillé) | Asset | Usage | Volume | |---|---|---| | `ui_alert_med.mp3` | alerte maladie | moyen | | `heal_success.mp3` | fin soin | faible | ##### Graphiques (tableau détaillé) | Asset | Usage | Contraintes | |---|---|---| | `healer_sprite_[dir].png` | sprite | 4 dirs | | `fx_green_cross.png` | FX | overlay | ##### Images (tableau détaillé) | Asset | Usage | |---|---| | `icon_healer_cross.png` | HUD | | `portrait_healer.png` | panel | ##### Vidéos (tableau détaillé) | Asset | Usage | Durée | |---|---|---:| | `heal_popup.webm` | popup | 1.0s | ##### Animations (tableau détaillé) | Animation | Déclencheur | Notes | |---|---|---| | pulsation croix | animal malade | loop | | sparkles verts | soin | burst | ##### Couleurs (tableau détaillé) | Token | Valeur | Usage | |---|---|---| | `healer_primary` | #2ECC71 | UI | | `healer_alert` | #E74C3C | urgence | ##### Textes (tableau détaillé) | Clé | FR | EN | |---|---|---| | `healer.call` | Appeler le soigneur | Call healer | | `healer.busy` | Soigneur occupé | Healer busy | ##### Formes (tableau détaillé) | Élément | Forme | Notes | |---|---|---| | Badge maladie | rond | lisible | | Barre santé | rectangulaire | standard |