This commit is contained in:
2026-03-05 03:39:33 +01:00
parent 349f3b8ac3
commit dfecb09b7c
14 changed files with 10081 additions and 28 deletions

View File

@@ -60,3 +60,472 @@ Employé travaillant dans le Centre de Recherche pour générer des points de sc
* **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 ninteragit 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 |