Files
builazoo/docs/specs/centre_recherche.md
2026-03-05 03:39:33 +01:00

675 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Spécifications : Centre de Recherche
## Définition
Bâtiment produisant des points de science/recherche.
## Fonctionnalités
- **Production** : Génère des unités de recherche périodiquement.
- **Déblocage** : Permet de payer l'agrandissement de la carte du monde.
- **Visibilité** : Donne accès aux niveaux d'animaux/bébés supérieurs dans les autres zoos (débloque la vue sur les offres rares).
## Niveaux d'Amélioration (7 niveaux)
- **Coût** : Progressif par palier.
- **Effet** : Augmente la production et le niveau de visibilité des offres externes.
- **Ratio** : 1 unité couvre la visibilité sur 10 zoos définis (par proximité).
# Annexes Techniques
## 1. Données et États
### Modèle de Données (JSON)
```json
{
"id": "uuid",
"type": "research_center",
"level": "integer (1-7)",
"stats": {
"points_generated": "integer",
"last_collection": "timestamp"
},
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer"
}
```
### Caractéristiques Initiales
| Caractéristique | Valeur Initiale (Niv 1) |
| :--- | :--- |
| Production | 10 pts / heure |
| Portée Radar | 10 zoos voisins |
| Rareté Visible | Niveau 1 (Commun) |
### Scores Initiaux
**Archives** : 0 découvertes.
## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Présent au démarrage.
### Conditions de Disparition
Indestructible (ou un seul obligatoire).
### Hérédité
**Archives** : 10% des points de recherche conservés au reset (Savoir accumulé).
## 3. Impacts Environnementaux
### Impact Température
**Surchauffe** : Production -10% si Canicule (Surchauffe serveurs/cerveaux).
### Impact Milieu (Biome)
**Stabilité** : Terrain stable requis (pas de marais). Si Marais : Coût construction x2.
### Impact Saisons
**Rentrée scolaire** : +10% production en Automne (Stagiaires).
**Vacances** : -5% production en Été.
### Impact Heure / Jour-Nuit
Production continue 24h/24.
## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
**Étude** : +50 pts recherche à chaque naissance rare dans le zoo.
### Impact Mort
**Autopsie** : +20 pts recherche à chaque mort (Triste mais utile).
### Impact Nourriture
**Cafétéria** : Consomme 5 unités nourriture/jour pour le personnel.
### Impact Attractivité (Visiteurs/Animaux)
**Conférences** : +10 Attractivité le week-end (Vulgarisation scientifique).
### Impact Valeur
**Brevets** : Valeur intrinsèque élevée. Revente impossible (Bien public).
## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
**Vitesse Recherche** :
| Niveau | Points / Heure |
| :--- | :--- |
| 1 | 10 |
| 2 | 20 |
| 3 | 40 |
| 4 | 80 |
| 5 | 150 |
| 6 | 300 |
| 7 | 600 |
### Dépenses (Boutiques/Visiteurs)
**Subventions** : Coût fonctionnement réduit de 50% si Réputation Zoo > 80.
### Trajet Visiteurs
**Musée** : Si module Musée (Niv 4+), attire visiteurs comme une attraction secondaire.
## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
* **Découverte** : Déblocage d'une nouvelle zone carte monde.
* **Percée** : Gain immédiat de 500 pts (Aléatoire).
## 7. Progression
### Tableau des Upgrades
| Niveau | Coût (Pièces) | Production | Portée (Zoos) | Rareté Visible | Temps Construction |
| :--- | :--- | :--- | :--- | :--- | :--- |
| 1 | 0 | 10 | 10 | 1 | 0s |
| 2 | 300 | 20 | 20 | 2 | 0s |
| 3 | 600 | 40 | 30 | 2 | 0s |
| 4 | 1200 | 80 | 50 | 3 | 0s |
| 5 | 2400 | 150 | 80 | 3 | 0s |
| 6 | 4800 | 300 | 120 | 4 | 0s |
| 7 | 9600 | 600 | Tout | 5 | 0s |
## 8. Logique et Interfaces
### Pseudo-code Impacts
```
function updateResearch(center):
points = center.productionRate * deltaTime
player.addResearchPoints(points)
visibleRarity = center.maxRarityVisible
updateWorldMapVisibility(center.range, visibleRarity)
```
### Messages d'Infos / Alerte
| ID | Niveau | Message |
| :--- | :--- | :--- |
| `RESEARCH_UNLOCK` | Info | "Nouvelle zone de carte découverte !" |
| `RESEARCH_BOOST` | Info | "Percée scientifique ! +500 pts." |
# 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.
## 1. Expérience Utilisateur (UX)
### Collecte de Points (Action)
**Description UX** : Les points de recherche s'accumulent. Le joueur clique sur le bâtiment pour les récolter (ou collecte auto si implémenté).
**Description UI** : Une icône "Fiole" ou "Atome" flotte au-dessus du bâtiment quand des points sont disponibles. Au clic, les points volent vers le compteur global.
**Emplacement** : Case Centre Recherche.
**Intégration** : Overlay au-dessus du sprite.
**Navigation** : Clic Bâtiment -> Collecte.
**Événements** : `COLLECT_RESEARCH`.
#### Assets
- **Musiques** : Son "Science" (synthé léger).
- **Sons** : `bubble_pop.mp3` ou `sci_fi_bloop.mp3`. **Design ASMR** : "Bloop" liquide ou tintement cristallin.
- **Graphiques** : Icône Fiole bleue/violette.
- **Images** : Particules d'atomes.
- **Vidéos** : Effet de liquide bouillonnant (shader).
- **Animations** : Flottement (bobbing) de l'icône. Trajectoire courbe des points vers le HUD.
- **Couleurs** : Bleu Science #0088FF.
- **Textes** : "+10 RP".
- **Formes** : Cercle ou Fiole.
### Consultation & Arbre Techno (Consultation)
**Description UX** : Le joueur veut voir sa production et débloquer des zones.
**Description UI** : **Bottom Sheet** affichant "Production : X/h". Un bouton "Carte du Monde" pour voir l'effet du radar.
**Emplacement** : Modal Centre Recherche.
**Intégration** : Lien vers la Carte du Monde.
**Navigation** : Clic Bâtiment (si pas de collecte ou double clic) -> Modal.
**Événements** : `OPEN_RESEARCH`.
#### Assets
- **Musiques** : Ambiance "Laboratoire" (bourdonnement machines).
- **Sons** : `ui_open.mp3`
- **Graphiques** : Style High-Tech / Labo.
- **Images** : `radar_icon.png`.
- **Vidéos** : Écran de contrôle avec données défilantes.
- **Animations** : Radar qui balaie (décoratif).
- **Couleurs** : Blanc, Gris, Bleu néon.
- **Textes** : "Portée Radar : X km".
- **Formes** : Panneaux anguleux.
### Amélioration (Upgrade)
**Description UX** : Augmenter la production et la portée.
**Description UI** : Bouton standard d'upgrade avec comparaison "Actuel vs Suivant".
**Emplacement** : Modal Centre Recherche.
**Intégration** : Standard.
**Navigation** : Clic Upgrade.
**Événements** : `UPGRADE_RESEARCH`.
#### Assets
- **Musiques** : Son "Upgrade" futuriste.
- **Sons** : `upgrade_tech.mp3` (son électronique).
- **Graphiques** : Schéma technique (Blueprint).
- **Images** : Icône Puce Électronique.
- **Vidéos** : Hologramme de construction.
- **Animations** : Flash bleu sur le bâtiment.
- **Couleurs** : Bleu.
- **Textes** : "Upgrade Terminé".
- **Formes** : Hexagones.
## Fonctions (tableau détaillé)
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|---|---|---|---|---|---|
| Production RP | Tick / delta | `level`, mod saison/météo | `research_points +` | Production continue 24h/24 ; modifs cumulables avec caps | Event `RESEARCH_TICK`, compteurs `/h` et `/jour` |
| Déblocage carte | Action joueur | `research_points`, coût | `world_map_unlocks +` | Dépense atomique, refuse si points insuffisants | Event `RESEARCH_SPEND_UNLOCK` |
| Radar offres | Tick visibilité | `range`, `rarity_visible` | UI offre filtrée | La visibilité est une règle daffichage, pas un cache | Event `WORLD_OFFER_VISIBILITY_UPDATED` |
| Musée / conférences | Calendrier | week-end, level | attractivité + | Actif si module/milestone atteint | Event `RESEARCH_TALK` |
## Icone de base
| Élément | Spécification |
|---|---|
| Représentation | Fiole / atome / radar |
| Couleur dominante | Bleu science |
| Variantes | `icon_research_flask.png`, `icon_research_atom.png`, `icon_research_radar.png` |
| États | Badge “collectable” (+RP), “boost” (éclair), “surchauffe” (thermo) |
## Interactions (tableau détaillé)
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|---|---|---|---|---|---|
| Collecter points | Action | points disponibles | Clic bâtiment | RP crédités | `RESEARCH_NOT_READY` |
| Ouvrir détail | Consultation | - | Double clic / bouton “Détails” | panneau stats/upgrade | - |
| Améliorer | Action | coins ≥ coût | Bouton upgrade | level +1 | `INSUFFICIENT_FUNDS` |
| Consommer RP | Action | RP ≥ coût | Arbre/Carte monde → déverrouiller | unlock | `INSUFFICIENT_RESEARCH_POINTS` |
| Affecter chercheurs | Action | slots < 3 | Panel centre → slots | production + | `RESEARCH_CENTER_FULL` |
## Annexes Techniques
### 1. Données et États (tableau détaillé)
| Donnée / État | Type | Exemple | Source | Contraintes |
|---|---|---|---|---|
| `id` | uuid | - | DB | unique |
| `type` | enum | `research_center` | DB | constante |
| `level` | int | 1..7 | DB | clamp |
| `stats.points_generated` | int | 0..∞ | runtime | monotone |
| `stats.last_collection` | timestamp | - | runtime | null au début |
| `production_rate_per_hour` | int | 10..600 | config | selon tableau |
| `range_zoos` | int/string | 10..Tout | config | niveau 7 = Tout |
| `rarity_visible` | int | 1..5 | config | 1=commun, 5=légendaire |
| `assigned_researchers` | uuid[] | max 3 | runtime | cf. `chercheur.md` |
| `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 |
|---|---:|---|---|
| Production | 10 | RP/heure | niv 1 |
| Portée radar | 10 | zoos | proximité |
| Rareté visible | 1 | niveau | commun |
| Slots chercheurs | 0/3 | slots | activés si feature employés |
#### Scores Initiaux (tableau détaillé)
| Score | Valeur initiale | Plage | Impact |
|---|---:|---|---|
| Archives découvertes | 0 | 0..∞ | progression méta |
| RP cumulés | 0 | 0..∞ | déverrouillages |
| Boost actif | 0 | 0/1 | modifie production |
### 2. Cycles de Vie et Apparition (tableau détaillé)
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|---|---|---|---|---|
| Apparition | début partie | seed | bâtiment | présent au démarrage |
| Production | tick | delta | RP + | 24h/24 |
| Collecte | clic | points | RP global + | atomicité |
| Disparition | supprimé compte | - | supprimé | indestructible en jeu |
#### Conditions d'Apparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Début partie | true | est | présent |
#### Conditions de Disparition (tableau détaillé)
| Condition | Seuil | Opérateur | Résultat |
|---|---:|---|---|
| Compte supprimé | true | est | supprimé |
| Destruction | - | interdit | refus |
#### Hérédité (tableau détaillé)
| Élément | Hérité | Règle |
|---|---|---|
| Archives | Oui | 10% des RP conservés |
| Level | Oui | persiste |
| RP non collectés | Non | convertis/collectés au login (lazy update) |
### 3. Impacts Environnementaux
#### Impact Température (tableau détaillé)
| Condition | Effet | Modificateur |
|---|---|---|
| Canicule | production - | -10% |
| Tempérée | neutre | 0% |
#### Impact Milieu (Biome) (tableau détaillé)
| Biome | Effet | Règle |
|---|---|---|
| Marais | coût construction | x2 |
| Terrain stable | normal | x1 |
#### Impact Saisons (tableau détaillé)
| Saison | Effet | Modificateur |
|---|---|---|
| Automne | rentrée | +10% |
| Été | vacances | -5% |
#### Impact Heure / Jour-Nuit (tableau détaillé)
| Période | Effet | Règle |
|---|---|---|
| Jour | production | normale |
| Nuit | production | normale (24h/24) |
### 4. Impacts Biologiques et Sociaux
#### Impact Reproduction (tableau détaillé)
| Déclencheur | Gain RP | Condition |
|---|---:|---|
| Naissance rare | +50 | rareté ≥ 3 |
#### Impact Mort (tableau détaillé)
| Déclencheur | Gain RP | Condition |
|---|---:|---|
| Mort | +20 | autopsie active |
#### Impact Nourriture (tableau détaillé)
| Poste | Consommation | Unité | Condition |
|---|---:|---|---|
| Cafétéria | 5 | unités/jour | personnel centre |
#### Impact Attractivité(Visiteurs (tableau détaillé)
| Action/État | Gain | Rayon | Notes |
|---|---:|---:|---|
| Conférences | +10 | zoo | week-end |
| Musée module | + | local | niv 4+ |
#### Impact Attractivité Animaux) (tableau détaillé)
| Action/État | Effet animaux | Condition |
|---|---|---|
| Aucune interaction directe | aucun | centre nest pas un enclos |
#### Impact Valeur (tableau détaillé)
| Facteur | Variation | Condition |
|---|---:|---|
| Brevets | valeur élevée | non revendable |
### 5. Impacts Logistiques et Économiques
#### Vitesse (Camion) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Livraison matériel | indirect | si feature équipement |
#### Vitesse (Nurserie) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Tech incub | accélère | si recherche débloquée |
#### Vitesse (Accueil) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | aucun | - |
#### Vitesse (Recherche) (tableau détaillé)
| Niveau | Points / Heure | Unité | Notes |
|---|---:|---|---|
| 1 | 10 | RP/h | base |
| 2 | 20 | RP/h | - |
| 3 | 40 | RP/h | - |
| 4 | 80 | RP/h | - |
| 5 | 150 | RP/h | - |
| 6 | 300 | RP/h | - |
| 7 | 600 | RP/h | - |
#### Vitesse (Labo) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| - | indirect | via tech |
#### Vitesse (Visite) (tableau détaillé)
| Paramètre | Effet | Condition |
|---|---|---|
| Temps de séjour | + | musée/conférences |
#### Dépenses (Billeterie) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| - | 0 | - | - |
#### Dépenses (Boutiques) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Souvenirs science | stock | coins | boutique |
#### Dépenses (Visiteurs) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Conférences | 0 | - | included |
#### Dépenses (Employés) (tableau détaillé)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Salaires chercheurs | variable | coins/jour | selon `chercheur.md` |
#### 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 |
|---|---:|---|---|
| Cafétéria | 5 | unités/jour | centre |
#### 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é | centre augmente attractivité |
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Centre | Enclos | curiosité | détour (si musée) |
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
| Source | Destination | Déclencheur | Effet |
|---|---|---|---|
| Centre | Boutique | souvenirs | 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_TICK` | tick | amount | RP+ |
| `RESEARCH_SPEND_UNLOCK` | spend | cost | unlock |
#### Événements du Carte (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `WORLD_OFFER_VISIBILITY_UPDATED` | level/range | UI filtre |
#### Événements du Zoo (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `RESEARCH_BOOST` | percée | +500 RP |
#### Événements du Ville / Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|
| `RESEARCH_TALK` | week-end | attractivité + |
#### Événements du Visiteur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|---|
| `VISITOR_INTEREST_SCIENCE` | musée | stay + |
#### Événements du Joueur (tableau détaillé)
| Event | Déclencheur | Effet |
|---|---|---|---|
| `COLLECT_RESEARCH` | clic | collecte |
### 7. Progression
#### Tableau des Upgrades (tableau détaillé)
| Niveau | Coût (Pièces) | Production | Portée (Zoos) | Rareté Visible | Notes |
|---|---:|---:|---|---:|---|
| 1 | 0 | 10 | 10 | 1 | base |
| 2 | 300 | 20 | 20 | 2 | - |
| 3 | 600 | 40 | 30 | 2 | - |
| 4 | 1200 | 80 | 50 | 3 | musée possible |
| 5 | 2400 | 150 | 80 | 3 | - |
| 6 | 4800 | 300 | 120 | 4 | - |
| 7 | 9600 | 600 | Tout | 5 | max |
### 8. Logique et Interfaces
#### Pseudo-code Impacts (tableau détaillé)
| Fonction | Entrées | Sorties | Notes |
|---|---|---|---|
| `updateResearch` | center, delta | rp | basé sur `level` |
| `updateWorldMapVisibility` | range, rarity | UI | pas de cache |
#### Messages d'Infos / Alerte (tableau détaillé)
| ID | Niveau | Message | Condition |
|---|---|---|---|
| `RESEARCH_UNLOCK` | Info | "Nouvelle zone de carte découverte !" | spend ok |
| `RESEARCH_BOOST` | Info | "Percée scientifique ! +500 pts." | random proc |
| `INSUFFICIENT_RESEARCH_POINTS` | Warning | "Points de recherche insuffisants." | spend fail |
## Annexes UX/UI
### 1. Expérience Utilisateur (UX)
#### Description UX (tableau détaillé)
| Parcours | But | Friction | Réduction clics |
|---|---|---|---|
| Collecter | récupérer RP | oubli | badge + clic direct |
| Upgrader | augmenter prod | coût | comparaison “actuel/suivant” |
| Déverrouiller | étendre monde | navigation | deep-link carte monde |
#### Description UI (tableau détaillé)
| Composant | Contenu | États |
|---|---|---|
| Badge RP | +RP | visible quand dispo |
| Panel centre | prod/h, portée, rareté | level 1..7 |
#### Emplacement (tableau détaillé)
| Zone UI | Position | Notes |
|---|---|---|
| Carte zoo | bâtiment | clic base |
| HUD | compteur RP | global |
#### Intégration (tableau détaillé)
| Intégration | Contrat | Notes |
|---|---|---|
| Carte monde | portée radar | overlay |
| Achats upgrades | coût coins | - |
#### Navigation (tableau détaillé)
| Action | Chemin | Résultat |
|---|---|---|
| Ouvrir panel | clic | panel |
| Aller carte monde | bouton | navigation |
#### Événements (tableau détaillé)
| Event UI | Déclencheur | Effet |
|---|---|---|
| `OPEN_RESEARCH` | clic | ouvre |
| `UPGRADE_RESEARCH` | bouton | upgrade |
#### Assets Skinables
##### Musiques (tableau détaillé)
| Asset | Usage | Durée | Notes |
|---|---|---:|---|
| `research_center_loop.mp3` | ambiance | loop | discret |
##### Sons (tableau détaillé)
| Asset | Usage | Volume |
|---|---|---|
| `sci_fi_bloop.mp3` | collecte | faible |
| `upgrade_tech.mp3` | upgrade | moyen |
##### Graphiques (tableau détaillé)
| Asset | Usage | Contraintes |
|---|---|---|
| `fx_atoms.png` | overlay | isométrique |
| `radar_sweep.png` | radar | décoratif |
##### Images (tableau détaillé)
| Asset | Usage |
|---|---|
| `radar_icon.png` | panel |
| `icon_research_atom.png` | HUD |
##### Vidéos (tableau détaillé)
| Asset | Usage | Durée |
|---|---|---:|
| `hologram_upgrade.webm` | upgrade | 1.2s |
##### Animations (tableau détaillé)
| Animation | Déclencheur | Notes |
|---|---|---|
| icône bobbing | points dispo | loop |
| trajectoire points | collecte | 0.6s |
##### Couleurs (tableau détaillé)
| Token | Valeur | Usage |
|---|---|---|
| `research_primary` | #0088FF | UI |
| `research_neon` | #00E5FF | accent |
##### Textes (tableau détaillé)
| Clé | FR | EN |
|---|---|---|
| `research.collect` | Collecter | Collect |
| `research.upgrade` | Améliorer | Upgrade |
##### Formes (tableau détaillé)
| Élément | Forme | Notes |
|---|---|---|
| Badge RP | cercle | lisible |
| Panel | bottom sheet | standard |