ok
This commit is contained in:
@@ -203,3 +203,472 @@ function updateResearch(center):
|
||||
- **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` |
|
||||
|
||||
## 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 |
|
||||
|
||||
Reference in New Issue
Block a user