# Chercheur

## 1. Définition
Employé travaillant dans le Centre de Recherche pour générer des points de science (ou débloquer des technologies). Il est distinct du personnel de laboratoire (qui s'occupe de la génétique/bébés). Achetable avec des pièces.

## 2. Fonctions
*   **Recherche :** Génère passivement des points de recherche.
*   **Découverte :** Accélère le déblocage de nouveaux animaux, bâtiments ou améliorations.
*   **Collaboration :** Travaille plus efficacement en équipe (bonus de synergie).

## 3. Icone
*   **Représentation :** Microscope ou Atome.
*   **Couleur dominante :** Bleu ciel et Blanc.

## 4. Interactions
*   **Recrutement :** Menu "Employés", coût en pièces.
*   **Assignation :** Doit être assigné à un Centre de Recherche (max 3 par centre).
*   **Formation :** Peut être envoyé en stage pour augmenter son intelligence (coût + temps).

## 5. Annexes Techniques

### Données (JSON)
```json
{
  "employee_id": "researcher_01",
  "type": "chercheur",
  "name": "Dr. Curie",
  "salary": 60,
  "hire_cost": 600,
  "assigned_building": "research_center_01",
  "fatigue_level": "float (0-100)",
  "current_task": "enum (IDLE, RESEARCHING, TRAINING)",
  "stats": {
    "intelligence": 10, // Points de recherche par cycle
    "specialty": "genetics" // Bonus dans un domaine
  },
  "iso_x": "integer",
  "iso_y": "integer",
  "z_index": "integer"
}
```

### Règles Métier
*   **Limite :** Maximum 3 chercheurs par bâtiment "Centre de Recherche".
*   **Fatigue :** L'efficacité diminue si la fatigue > 80%. Doit prendre des pauses.
*   **Synergie :** 3 chercheurs de la même spécialité dans un centre = Bonus +20%.

## 6. Annexes UX/UI
*   **Visuel Carte :** Visible à travers les fenêtres du Centre de Recherche ou entrant/sortant.
*   **Interface Bâtiment :** Slots d'employés (0/3) dans le menu du Centre de Recherche.
*   **Feedback :** Bulles de science (fioles, atomes) s'élevant du bâtiment quand ils travaillent.

## Affichage contextuel (modules)
Le chercheur est le personnage contextuel du `centre_recherche.md` lors de l’ouverture du panneau, de l’assignation et des événements de production/déverrouillage.


# 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é “Chercheur” |
| Rôle | Générer des unités de recherche (science) via `centre_recherche.md` ; distinct du laboratoire de la carte monde. |
| Capacité | Max 3 chercheurs par centre de recherche (contrainte métier). |
| Vue | Isométrique 2.5D, sprite 4 directions, sélection base-sprite. |

## Fonctions (tableau détaillé)

| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|---|---|---|---|---|---|
| Production recherche | Tick centre | `intelligence`, fatigue, bonus centre | `research_units +` | Production réduite si fatigue élevée ; pause obligatoire | Event `RESEARCH_TICK`, métriques /jour |
| Spécialisation | Assignation | `specialty` | bonus ciblé | Bonus appliqué aux recherches du domaine | Event `RESEARCH_SPECIALTY_APPLIED` |
| Synergie | 3 chercheurs | spécialité identique | +20% | Uniquement si même centre | Event `RESEARCH_SYNERGY_ON/OFF` |
| Formation | Action joueur | coût, temps | `intelligence +` | Immobilise le chercheur pendant training | Event `RESEARCHER_TRAIN_START/END` |

## Icone de base

| Élément | Spécification |
|---|---|
| Représentation | Microscope / atome |
| Couleur dominante | Bleu ciel / blanc |
| Variantes | `icon_research_microscope.png`, `icon_research_atom.png` |
| États | Badge “en recherche” (fioles), “en stage” (diplôme), “fatigué” (Zzz) |

## Interactions (tableau détaillé)

| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|---|---|---|---|---|---|
| Recruter | Action | coins ≥ `hire_cost` | Menu Employés → Chercheur → Confirmer | Chercheur créé (non assigné) | `INSUFFICIENT_FUNDS`, `EMPLOYEE_CAP_REACHED` |
| Assigner au centre | Action | centre dispo, slots < 3 | Centre → Slots → Sélectionner → Assigner | Prod active | `RESEARCH_CENTER_FULL`, `NO_PATH` |
| Démarrer formation | Action | coins ≥ coût, centre présent | Panel chercheur → “Former” → Confirmer | état `TRAINING` | `COOLDOWN_ACTIVE`, `INSUFFICIENT_FUNDS` |
| Changer spécialité | Action (si permis) | stage débloqué | Panel → spécialité | bonus différent | `SPECIALTY_LOCKED` |
| Inspecter production | Consultation | - | Centre → onglet Recherche | graphiques / taux | - |

## Annexes Techniques

### 1. Données et États (tableau détaillé)

| Donnée / État | Type | Exemple | Source | Contraintes |
|---|---|---|---|---|
| `employee_id` | string | `researcher_01` | DB | Unique |
| `type` | enum | `chercheur` | DB | Constante |
| `salary` | int | 60 | config | coins/jour |
| `hire_cost` | int | 600 | config | one-shot |
| `assigned_building` | uuid/string | `research_center_01` | runtime | null si non assigné |
| `fatigue_level` | float | 0..100 | runtime | réduit prod |
| `current_task` | enum | `IDLE|RESEARCHING|TRAINING` | runtime | transitions contrôlées |
| `stats.intelligence` | int | 10 | DB | unités/cycle |
| `stats.specialty` | enum | `genetics|ecology|marketing|logistics` | DB | 1 parmi n |
| `grid` | object | `{x,y}` | runtime | position (si visible) |
| `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 |
|---|---:|---|---|
| Production brute | 10 | units/cycle | `intelligence` |
| Fatigue départ | 0 | % | - |
| Seuil fatigue malus | 80 | % | prod -30% au-delà |
| Pause | 15 | min in-game | après cycle long |
| Synergie | +20% | prod | si 3 mêmes spécialités |

#### Scores Initiaux (tableau détaillé)

| Score | Valeur initiale | Plage | Impact |
|---|---:|---|---|
| Units/jour | 0 | 0..∞ | progression recherches |
| Efficacité centre | 100 | 0..200 | résume bonus/malus |
| Coût salarial/jour | 60 | 0..∞ | dépenses employé |

### 2. Cycles de Vie et Apparition (tableau détaillé)

| Phase | Déclencheur | Entrées | Sorties | Invariants |
|---|---|---|---|---|
| Apparition | embauche | coins | entité | `IDLE` |
| Assignation | action centre | slot dispo | `RESEARCHING` | max 3/centre |
| Training | action joueur | coins + temps | `intelligence +` | immobilisé |
| Disparition | licenciement (si prévu) | - | suppression | stop production |

#### Conditions d'Apparition (tableau détaillé)

| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Achat | coins ≥ `hire_cost` | vrai | création |
| Centre existant | optionnel | - | assignation possible |

#### 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 |
|---|---|---|
| Spécialité | Oui | persistée |
| Intelligence | Oui | persistée |
| Fatigue | Non | recalcul / reset quotidien |

### 3. Impacts Environnementaux

#### Impact Température (tableau détaillé)

| Température | Effet sur prod | Condition |
|---|---|---|
| Extrême | -10% | si bâtiment non amélioré (isolation) |
| Tempéré | 0 | - |

#### Impact Milieu (Biome) (tableau détaillé)

| Biome | Effet | Notes |
|---|---|---|
| Ville/route | neutre | centre en intérieur |
| Zone humide | malus | humidité (option visuelle) |

#### Impact Saisons (tableau détaillé)

| Saison | Effet | Modificateur |
|---|---|---|
| Hiver | chauffage coûte + | prod stable |
| Été | canicule | fatigue +5%/jour |

#### Impact Heure / Jour-Nuit (tableau détaillé)

| Période | Effet | Règle |
|---|---|---|
| Jour | prod normale | - |
| Nuit | prod réduite | -20% si “horaires normaux”, 0% si centre fermé |

### 4. Impacts Biologiques et Sociaux

#### Impact Reproduction (tableau détaillé)

| Facteur | Effet | Condition |
|---|---|---|
| Recherche “fertilité” | +taux | si tech débloquée |

#### Impact Mort (tableau détaillé)

| Cas | Effet | Condition |
|---|---|---|
| Accident labo | none | chercheur ≠ labo monde |

#### Impact Nourriture (tableau détaillé)

| Ressource | Effet | Condition |
|---|---|---|
| Café (option) | fatigue - | mécanique employé |

#### Impact Attractivité(Visiteurs (tableau détaillé)

| Action/État | Gain | Rayon | Notes |
|---|---:|---:|---|
| Centre actif visible | +5 | 2 cases | bulles science |

#### Impact Attractivité Animaux) (tableau détaillé)

| Action/État | Effet animaux | Condition |
|---|---|---|
| Aucun effet direct | aucun | le chercheur n’interagit pas directement avec les animaux |

#### Impact Valeur (tableau détaillé)

| Facteur | Variation | Condition |
|---|---:|---|
| Recherche débloquée | + | débloque upgrades, économie |

### 5. Impacts Logistiques et Économiques

#### Vitesse (Camion) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| Livraison composants | - | si mécanique ravitaillement centre |

#### Vitesse (Nurserie) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| Recherche incub | + | si tech appliquée |

#### Vitesse (Accueil) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| - | aucun | - |

#### Vitesse (Recherche) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| Production units | + | intelligence/synergie |

#### Vitesse (Labo) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| - | indirect | via tech |

#### Vitesse (Visite) (tableau détaillé)

| Paramètre | Effet | Condition |
|---|---|---|
| - | indirect | via attractivité centre |

#### Dépenses (Billeterie) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |

#### Dépenses (Boutiques) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Vente “science kit” | +revenu | coins | boutique souvenirs |

#### Dépenses (Visiteurs) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |

#### Dépenses (Employés) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Salaire | `salary` | coins/jour | actif |
| Stage | 300 | coins | par formation |

#### 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 |
|---|---:|---|---|
| - | 0 | - | - |

#### Dépenses (Nourriture) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |

#### Dépenses (Acceuil des animaux) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |

#### Dépenses (Camion) (tableau détaillé)

| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |

#### Trajet Visiteurs

##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)

| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Ville | Zoo | attractivité/réputation | chercheur indirect |

##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)

| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Centre | Enclos | curiosité | détour si FX visibles |

##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)

| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Centre | Boutique | achat souvenir | dépense + |

##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)

| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Entrée | Centre | halo science | visite guidée |

### 6. Événements

#### Événements du Jeu  (tableau détaillé)

| Event | Déclencheur | Payload | Effet |
|---|---|---|---|
| `RESEARCH_UNIT_GAINED` | tick | amount | progression |

#### Événements du Carte (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| `BUILDING_ACTIVE_FX` | centre actif | bulles science |

#### Événements du Zoo (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| `RESEARCH_CENTER_FULL` | slots=3 | bloque assignation |

#### Événements du Ville / Visiteur (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| `VISITOR_INTEREST_SCIENCE` | centre proche | temps séjour + |

#### Événements du Visiteur (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| `VISITOR_PHOTO` | FX visibles | satisfaction + |

#### Événements du Joueur (tableau détaillé)

| Event | Déclencheur | Effet |
|---|---|---|
| `PLAYER_START_TRAINING` | bouton | start stage |

### 7. Progression

#### Tableau des Upgrades (tableau détaillé)

| Niveau | Coût | Effet | Débloque |
|---|---:|---|---|
| 1 | 0 | recrutement | base |
| 2 | 1500 | intelligence +2 | prod + |
| 3 | 3000 | fatigue -10% | endurance |
| 4 | 6000 | spécialités avancées | nouveaux domaines |

### 8. Logique et Interfaces 

#### Pseudo-code Impacts (tableau détaillé)

| Fonction | Entrées | Sorties | Notes |
|---|---|---|---|
| `update_researcher` | fatigue, intelligence | units | clamp + pause |
| `apply_synergy` | team | multiplier | 3 mêmes |

#### Messages d'Infos / Alerte (tableau détaillé)

| ID | Niveau | Message | Condition |
|---|---|---|---|
| `RESEARCH_CENTER_FULL` | Warning | "Centre complet." | slots=3 |
| `RESEARCHER_FATIGUED` | Warning | "Chercheur fatigué." | fatigue>80 |
| `RESEARCH_UNLOCKED` | Info | "Recherche débloquée." | units seuil |

## Annexes UX/UI 

### 1. Expérience Utilisateur (UX)

#### Description UX (tableau détaillé)

| Parcours | But | Friction | Réduction clics |
|---|---|---|---|
| Assigner chercheurs | augmenter production | slots | drag & drop dans slots |
| Former | améliorer prod | coût/temps | bouton direct sur carte employé |

#### Description UI (tableau détaillé)

| Composant | Contenu | États |
|---|---|---|
| Panel centre | slots 0/3, prod/h | actifs/plein |
| Carte chercheur | spécialité, fatigue | researching/training |

#### Emplacement (tableau détaillé)

| Zone UI | Position | Notes |
|---|---|---|
| Menu Employés | HUD | liste |
| Centre recherche | carte | sélection |

#### Intégration (tableau détaillé)

| Intégration | Contrat | Notes |
|---|---|---|
| Système unités | accumulation | pas de cache |
| Upgrades | coût/effet | via `achat_upgrade_*` |

#### Navigation (tableau détaillé)

| Action | Chemin | Résultat |
|---|---|---|
| Ouvrir centre | clic bâtiment | panel |
| Assigner | slot → choisir | start prod |

#### Événements (tableau détaillé)

| Event UI | Déclencheur | Effet |
|---|---|---|
| `OPEN_RESEARCH_CENTER` | clic centre | panel |
| `ASSIGN_RESEARCHER` | drag/drop | assign |

#### Assets Skinables

##### Musiques (tableau détaillé)

| Asset | Usage | Durée | Notes |
|---|---|---:|---|
| `research_center_loop.mp3` | ambiance centre | loop | discret |

##### Sons (tableau détaillé)

| Asset | Usage | Volume |
|---|---|---|
| `science_bubble.mp3` | FX | faible |
| `ui_assign.mp3` | assignation | faible |

##### Graphiques (tableau détaillé)

| Asset | Usage | Contraintes |
|---|---|---|
| `fx_atoms.png` | bulles science | overlay |
| `researcher_sprite_[dir].png` | sprite | 4 dirs |

##### Images (tableau détaillé)

| Asset | Usage |
|---|---|
| `icon_microscope.png` | icône |
| `portrait_researcher.png` | panel |

##### Vidéos (tableau détaillé)

| Asset | Usage | Durée |
|---|---|---:|
| `research_unlock.webm` | pop unlock | 1.0s |

##### Animations (tableau détaillé)

| Animation | Déclencheur | Notes |
|---|---|---|
| fioles qui montent | production | loop |
| badge “+units” | tick | 0.4s |

##### Couleurs (tableau détaillé)

| Token | Valeur | Usage |
|---|---|---|
| `research_primary` | #6EC6FF | UI |
| `research_accent` | #FFFFFF | highlights |

##### Textes (tableau détaillé)

| Clé | FR | EN |
|---|---|---|
| `research.assign` | Assigner | Assign |
| `research.train` | Former | Train |

##### Formes (tableau détaillé)

| Élément | Forme | Notes |
|---|---|---|
| Slots employés | cartes | drag target |
| Badge unités | pill | lisible |
