# 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 d’affichage, 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` | ## Personnage contextuel (événements & interaction) Voir `chercheur.md`. ### Affichage Le chercheur s’affiche lorsque : - le module est **actionné** (ouverture du centre, affectation, collecte, upgrade) ; - un **événement** de recherche survient (gain RP, percée, déverrouillage). ### Déclencheurs (exemples) | Event | Condition | Effet UI personnage | |---|---|---| | `OPEN_RESEARCH` | ouverture panel | portrait + production/h + slots | | `RESEARCH_TICK` / `RESEARCH_UNIT_GAINED` | tick | bulles science + feedback UI | | `RESEARCH_BOOST` | percée | bulle “Percée” + détails | | `INSUFFICIENT_RESEARCH_POINTS` | dépense refusée | bulle cause + CTA “Collecter / Attendre” | ### Skins & thèmes Uniforme et accessoires suivent `theme.md` ; variantes via `inventaire_skins.md` si skins de staff. ## 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 n’est 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 |