776 lines
28 KiB
Markdown
776 lines
28 KiB
Markdown
# Spécifications : Accueil des Animaux
|
||
|
||
## Définition
|
||
Zone tampon pour les nouveaux animaux arrivant dans le zoo (achats adultes ou transferts). C'est le point d'entrée unique pour tout animal avant son placement en enclos.
|
||
|
||
## Fonctionnalités
|
||
- **Acclimatation** : Période obligatoire avant de pouvoir placer l'animal sur la grille active.
|
||
- **Stockage temporaire** : Évite de devoir placer immédiatement un animal acheté si le terrain n'est pas prêt.
|
||
- **Inspection** : Permet au joueur de voir les stats de l'animal avant placement.
|
||
|
||
## Niveaux d'Amélioration (7 niveaux)
|
||
- **Coût** : Progressif par palier.
|
||
- **Effet** : Réduit le temps d'acclimatation. Améliore le potentiel reproducteur de l'animal entrant.
|
||
- **Ratio** : 1 unité couvre 1 animal en cours d'accueil.
|
||
|
||
# Annexes Techniques
|
||
|
||
## 1. Données et États
|
||
### Modèle de Données (JSON)
|
||
```json
|
||
{
|
||
"id": "uuid",
|
||
"type": "building_reception",
|
||
"created_at": "timestamp",
|
||
"updated_at": "timestamp",
|
||
"level": "integer (1-7)",
|
||
"position": { "x": "integer", "y": "integer" },
|
||
"slots": [
|
||
{
|
||
"slot_id": "integer (0-index)",
|
||
"animal_id": "uuid (nullable)",
|
||
"status": "enum (EMPTY, OCCUPIED, READY)",
|
||
"arrival_time": "timestamp",
|
||
"acclimatization_end_time": "timestamp",
|
||
"bonus_applied": "boolean"
|
||
}
|
||
],
|
||
"iso_x": "integer",
|
||
"iso_y": "integer",
|
||
"z_index": "integer"
|
||
}
|
||
```
|
||
|
||
### Caractéristiques Initiales
|
||
| Caractéristique | Valeur Initiale (Niv 1) | Valeur Max (Niv 7) |
|
||
| :--- | :--- | :--- |
|
||
| Temps Acclimatation | 600 secondes (10 min) | 0 secondes (Instantané) |
|
||
| Capacité | 1 animal | 7 animaux |
|
||
|
||
### Scores Initiaux
|
||
| Score | Valeur Initiale | Plage (Min-Max) | Impact |
|
||
| :--- | :--- | :--- | :--- |
|
||
| Confort Quarantaine | 60 | 0-100 | Modifie le stress initial de l’animal lors du placement (\(-\)stress = +confort). |
|
||
| Risque Contamination | 2% | 0-25% | Probabilité d’incident sanitaire (quarantaine prolongée, coût supplémentaire) par animal accueilli. |
|
||
| Traçabilité | 80 | 0-100 | Qualité des infos affichées au joueur (traits révélés, historique). |
|
||
|
||
## 2. Cycles de Vie et Apparition
|
||
### Conditions d'Apparition
|
||
Présent au démarrage du jeu (Tutorial ou Nouvelle Partie). Position fixe généralement près de l'entrée.
|
||
|
||
### Conditions de Disparition
|
||
Indestructible. Ne peut pas être vendu ni déplacé (sauf si feature de réaménagement global).
|
||
|
||
### Hérédité
|
||
| Parent | Trait Transmis | Probabilité | Mutation Possible |
|
||
|---|---|---|---|
|
||
| Accueil Niv 4+ | Trait temporaire “Calme” (+5 Satisfaction Visiteurs à proximité après placement) | 100% | Non (effet temporaire, non génétique) |
|
||
| Accueil Niv 7 | Trait temporaire “Confiant” (stress \(-15\) au placement) | 100% | Non |
|
||
|
||
## 3. Impacts Environnementaux
|
||
### Impact Température
|
||
Zone neutre (T° idéale simulée). Les animaux ne subissent pas de dégâts de température ici.
|
||
|
||
### Impact Milieu (Biome)
|
||
Zone neutre. Compatible avec tous les biomes d'animaux.
|
||
|
||
### Impact Saisons
|
||
Protégé des intempéries.
|
||
|
||
### Impact Heure / Jour-Nuit
|
||
Fonctionne 24/7. Pas de pénalité la nuit.
|
||
|
||
## 4. Impacts Biologiques et Sociaux
|
||
### Impact Reproduction
|
||
**Bonus Repro** : Un animal passant par un accueil de haut niveau gagne un bonus temporaire de fertilité.
|
||
- Niv 1-3 : +0%
|
||
- Niv 4-6 : +10% fertilité (durée 2 jours in-game)
|
||
- Niv 7 : +25% fertilité (durée 5 jours in-game)
|
||
|
||
### Impact Mort
|
||
Pas de mort possible en zone d'accueil (Stase). Les jauges de faim/soif/santé sont gelées.
|
||
|
||
### Impact Nourriture
|
||
Nourri automatiquement (coût nul ou inclus dans les frais de gestion globaux).
|
||
|
||
### Impact Attractivité (Visiteurs/Animaux)
|
||
| Action/État | Gain Attractivité | Rayon d'action |
|
||
|---|---:|---:|
|
||
| Façade entretenue (Propreté > 80) | +5 | 6 cases |
|
||
| File d’attente visible (Capacité saturée) | -10 | 8 cases |
|
||
| Livraison spectaculaire (animal rare) | +20 | 10 cases |
|
||
|
||
### Impact Valeur
|
||
| Facteur | Variation Prix | Condition |
|
||
|---|---:|---|
|
||
| Niveau Accueil | +5% / niveau | Appliqué à la valeur du zoo (bâtiment clé non revendable). |
|
||
| Historique sans incident | +10% | Si aucun événement `QUARANTINE_ALERT` sur 7 jours in-game. |
|
||
|
||
## 5. Impacts Logistiques et Économiques
|
||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||
**Réduction Temps Acclimatation** :
|
||
| Niveau | Temps Base | Réduction % |
|
||
| :--- | :--- | :--- |
|
||
| 1 | 10 min | 0% |
|
||
| 2 | 8 min | 20% |
|
||
| 3 | 6 min | 40% |
|
||
| 4 | 4 min | 60% |
|
||
| 5 | 2 min | 80% |
|
||
| 6 | 1 min | 90% |
|
||
| 7 | Instantané | 100% |
|
||
|
||
### Dépenses (Boutiques/Visiteurs)
|
||
| Poste | Coût Hebdo | Maintenance |
|
||
|---|---:|---:|
|
||
| Consommables quarantaine | 50 pièces | 10 pièces |
|
||
| Nettoyage & désinfection | 30 pièces | 5 pièces |
|
||
| Contrôle vétérinaire | 80 pièces | 0 pièce (service périodique) |
|
||
|
||
### Trajet Visiteurs
|
||
| Trajet | Condition | Effet | Détails |
|
||
|---|---|---|---|
|
||
| Visiteurs passent devant | Chemin adjacent | Attraction faible | Le bâtiment n’est pas une attraction nominale, mais une façade visible peut influer sur l’ambiance. |
|
||
| Visiteurs évitent la zone | `QUARANTINE_ALERT` actif | Déviation | Les visiteurs recalculent leur chemin pour éviter un rayon de 6 cases autour. |
|
||
|
||
## 6. Événements
|
||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||
* **Arrivée (`ANIMAL_ARRIVAL`)** : Animal livré par camion, entre dans un slot libre.
|
||
* **Prêt (`ANIMAL_READY`)** : Le temps d'acclimatation est écoulé.
|
||
* **Placement (`ANIMAL_PLACED`)** : Le joueur sort l'animal de l'accueil vers un enclos.
|
||
|
||
## 7. Progression
|
||
### Tableau des Upgrades
|
||
| Niveau | Coût (Pièces) | Capacité | Temps Acclimatation | Temps Construction |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| 1 | 100 | 1 | 10 min | 0s |
|
||
| 2 | 200 | 2 | 8 min | 10s |
|
||
| 3 | 400 | 3 | 6 min | 30s |
|
||
| 4 | 800 | 4 | 4 min | 1m |
|
||
| 5 | 1600 | 5 | 2 min | 2m |
|
||
| 6 | 3200 | 6 | 1 min | 5m |
|
||
| 7 | 6400 | 7 | 0 min | 10m |
|
||
|
||
## 8. Logique et Interfaces
|
||
### Pseudo-code Impacts
|
||
```python
|
||
def update_reception(reception_center, current_time):
|
||
# Vérification de l'intégrité
|
||
if not reception_center or not reception_center.slots:
|
||
return error("Invalid reception center")
|
||
|
||
for slot in reception_center.slots:
|
||
if slot.status == "OCCUPIED":
|
||
# Vérifier si le temps est écoulé
|
||
if current_time >= slot.acclimatization_end_time:
|
||
slot.status = "READY"
|
||
trigger_event("ANIMAL_READY", {"animal_id": slot.animal_id})
|
||
|
||
def add_animal_to_reception(reception_center, animal):
|
||
# Trouver un slot vide
|
||
empty_slot = find_first_empty_slot(reception_center.slots)
|
||
|
||
if not empty_slot:
|
||
return error("RECEPTION_FULL")
|
||
|
||
# Calcul du temps selon le niveau
|
||
duration = get_acclimatization_duration(reception_center.level)
|
||
|
||
empty_slot.animal_id = animal.id
|
||
empty_slot.arrival_time = now()
|
||
empty_slot.acclimatization_end_time = now() + duration
|
||
empty_slot.status = "OCCUPIED"
|
||
|
||
return success()
|
||
```
|
||
|
||
### Messages d'Infos / Alerte
|
||
| ID | Niveau | Message | Condition |
|
||
| :--- | :--- | :--- | :--- |
|
||
| `ANIMAL_READY` | Info | "Un nouvel animal est prêt à rejoindre le zoo !" | `slot.status` passe à `READY` |
|
||
| `RECEPTION_FULL` | Warning | "Accueil saturé, impossible d'acheter." | Tentative d'achat sans slot libre |
|
||
| `PLACEMENT_ERROR` | Error | "Impossible de placer ici (Enclos plein / Biome incompatible)." | Drag & Drop invalide |
|
||
|
||
# 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)
|
||
### Arrivée Animal (Passif)
|
||
**Description UX** : Le camion décharge un animal. Il apparaît dans l'Accueil en mode "Attente".
|
||
**Description UI** : Notification "Livraison effectuée". L'icône de l'Accueil change (ex: porte fermée -> porte avec caisse devant).
|
||
**Notification Push** : "Votre [Animal] est arrivé à l'accueil !" envoyée si le joueur est hors ligne.
|
||
**Emplacement** : Case Accueil.
|
||
**Intégration** : Suite de l'action Camion.
|
||
**Navigation** : Clic sur Accueil → Bottom Sheet “Accueil” (liste slots) → action “Placer” ouvre le mode placement sur la carte du zoo.
|
||
**Événements** : `DELIVERY_COMPLETE`.
|
||
|
||
#### Assets
|
||
- **Musiques** : `ambience_stable_soft.mp3` (léger, discret, pas intrusif).
|
||
- **Sons** : `truck_door.mp3`, `crate_drop.mp3`.
|
||
- **Graphiques** : Sprite Caisse en bois.
|
||
- **Images** : `reception_building.png` (bâtiment), `reception_icon.png` (icône), `badge_quarantine.png` (badge).
|
||
- **Vidéos** : `delivery_short.webm` (2s, loop optionnel sur notif).
|
||
- **Animations** : Camion qui repart.
|
||
- **Couleurs** : Marron (Caisse).
|
||
- **Textes** : `RECEPTION_DELIVERY_DONE` = "Livraison effectuée", `RECEPTION_ANIMAL_ARRIVED` = "Votre {animalName} est arrivé à l'accueil !"
|
||
- **Formes** : Bulle (notif), badge rond (état).
|
||
|
||
### Consultation & Acclimatation (Consultation)
|
||
**Description UX** : Le joueur vérifie le temps restant avant de pouvoir placer l'animal.
|
||
**Description UI** : **Bottom Sheet** listant les animaux en transit. Barre de progression "Acclimatation" pour chacun.
|
||
**Emplacement** : Modal Accueil.
|
||
**Intégration** : Liste verticale.
|
||
**Navigation** : Clic Accueil -> Modal.
|
||
**Événements** : `OPEN_RECEPTION`.
|
||
|
||
#### Assets
|
||
- **Musiques** : `ui_modal_soft.mp3` (jingle court).
|
||
- **Sons** : `ui_open.mp3`
|
||
- **Graphiques** : Style "Quarantaine" ou "Étable propre".
|
||
- **Images** : Portrait animal.
|
||
- **Vidéos** : `progress_fill.webm` (0.8s loop) pour la barre d’acclimatation (optionnel).
|
||
- **Animations** : Barre de progression qui avance.
|
||
- **Couleurs** : Orange (En cours), Vert (Prêt).
|
||
- **Textes** : "Prêt dans X min".
|
||
- **Formes** : Barres arrondies.
|
||
|
||
### Transfert vers Zoo (Action)
|
||
**Description UX** : L'animal est prêt. Le joueur le glisse vers le zoo.
|
||
**Description UI** : Bouton "Placer" ou Drag & Drop depuis la liste.
|
||
**Alternative** : Tap to Select -> Tap to Place.
|
||
**Emplacement** : Modal Accueil -> Carte Zoo.
|
||
**Intégration** : Mode placement (comme Nurserie).
|
||
**Navigation** : Drag -> Drop.
|
||
**Événements** : `PLACE_ANIMAL`.
|
||
|
||
#### Assets
|
||
- **Musiques** : `ui_confirm_place.mp3` (jingle court de confirmation).
|
||
- **Sons** : `animal_happy.mp3` (cri de l'animal).
|
||
- **Graphiques** : Sprite Animal.
|
||
- **Images** : `placement_ghost_ok.png`, `placement_ghost_ko.png` (surbrillance vert/rouge).
|
||
- **Vidéos** : `placement_glow.webm` (1.2s, non loop).
|
||
- **Animations** : Animal qui saute de joie au placement.
|
||
- **Couleurs** : Vert (#2ECC71) placement valide, Rouge (#E74C3C) placement invalide, Ambre (#F39C12) état “en acclimatation”.
|
||
- **Textes** : `BTN_PLACE` = "Placer", `RECEPTION_READY` = "Prêt"
|
||
- **Formes** : Badge “!” (prêt), sablier (en cours).
|
||
|
||
### Vue Isométrique
|
||
- **Sprite Bâtiment** : 4 directions isométriques (Nord-Est, Sud-Est, Sud-Ouest, Nord-Ouest) pour s'aligner avec les chemins.
|
||
- **Occlusion** : Le bâtiment doit être semi-transparent si le joueur passe la souris derrière (pour voir les objets cachés).
|
||
- **Indicateur d'état** : Une icône flottante (bulle) au-dessus du bâtiment indique si un animal est prêt (point d'exclamation vert) ou en cours (sablier).
|
||
- **Z-Index** : Doit être trié correctement par rapport aux visiteurs passant devant.
|
||
|
||
## Définition
|
||
|
||
| Champ | Valeur |
|
||
|---|---|
|
||
| Concept | Bâtiment “Accueil des animaux” : point d’entrée unique des animaux livrés/achetés, avec slots, acclimatation/quarantaine, et passage vers placement sur la grille. |
|
||
| Rôle | Éviter le placement immédiat, révéler/afficher des informations avant placement, appliquer des règles d’acclimatation et incidents sanitaires observables. |
|
||
| Portée | Une instance de bâtiment sur la carte zoo (iso), gérant une liste de slots `EMPTY/OCCUPIED/READY`. |
|
||
| Contrainte | Timers et statuts recalculés à la volée (lazy update), sans cache/mémorisation ; aucun fallback silencieux en cas d’incohérence (log + erreur + message). |
|
||
|
||
## Fonctions (tableau détaillé)
|
||
|
||
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||
|---|---|---|---|---|---|
|
||
| Ouvrir accueil | clic bâtiment | `reception_id` | bottom sheet slots | liste slots + progression | Event `OPEN_RECEPTION` |
|
||
| Réceptionner un animal | livraison camion/achat | `animal_id`, `arrival_time` | slot OCCUPIED | 1 slot libre requis, sinon `RECEPTION_FULL` | Event `ANIMAL_ARRIVAL` |
|
||
| Calculer fin acclimatation | arrivée/upgrade | level, baseDuration | `acclimatization_end_time` | formule par niveau ; clamp ≥ now | Event `ACCLIMATIZATION_SCHEDULED` |
|
||
| Passer READY | tick lazy | now, end_time | status READY | idempotent ; pas de skip | Event `ANIMAL_READY` |
|
||
| Inspection pré-placement | ouverture slot | `animal_id` | UI stats | révèle traits selon “Traçabilité” | Event `RECEPTION_INSPECTED` |
|
||
| Placement vers zoo | action joueur | `animal_id`, coord/enclos | animal placé | valide biome/enclos/case, sinon `PLACEMENT_ERROR` | Event `ANIMAL_PLACED` |
|
||
| Appliquer bonus temporaire | sortie accueil | level | modifs temporaires | fertilité + calm/confident selon niveau | Event `RECEPTION_BONUS_APPLIED` |
|
||
| Déclencher incident quarantaine | tick (par animal) | `risk_contamination` | quarantaine prolongée/coût | probabilité explicite ; jamais silencieux | Event `QUARANTINE_ALERT` |
|
||
| Gestion saturation | slot plein | - | signal UI | badge + réduction attractivité façade | Event `RECEPTION_SATURATED` |
|
||
|
||
## Icone de base
|
||
|
||
| Élément | Spécification |
|
||
|---|---|
|
||
| Représentation | Porte/étable + caisse, badge quarantaine |
|
||
| Couleur dominante | Ambre/bois (caisse), vert (prêt) |
|
||
| Variantes | `reception_building_dir_{N,E,S,W}.png`, `reception_icon.png` |
|
||
| États | `idle`, `occupied`, `ready`, `quarantine_alert`, `full` |
|
||
|
||
## Interactions (tableau détaillé)
|
||
|
||
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||
|---|---|---|---|---|---|
|
||
| Ouvrir slots | Consultation | - | clic accueil | bottom sheet | - |
|
||
| Inspecter animal | Consultation | slot OCCUPIED/READY | clic slot | panneau détail | `ANIMAL_NOT_FOUND` |
|
||
| Placer animal | Action | slot READY | bouton “Placer” → mode placement | placement | `PLACEMENT_ERROR` |
|
||
| Détails incident | Consultation | `QUARANTINE_ALERT` actif | clic badge | panneau cause/coût | - |
|
||
| Quitter | Navigation | sheet ouvert | fermer | retour carte | - |
|
||
|
||
## Personnage contextuel (événements & interaction)
|
||
Voir `personnel_accueil.md`.
|
||
|
||
### Affichage
|
||
Le personnel d’accueil s’affiche lorsque :
|
||
- le module est **actionné** (ouverture de l’accueil, inspection d’un slot, lancement du placement) ;
|
||
- un **événement** lié à l’accueil survient (arrivée, prêt, saturation, quarantaine).
|
||
|
||
### Déclencheurs (événements)
|
||
| Event | Condition | Effet UI personnage |
|
||
|---|---|---|
|
||
| `OPEN_RECEPTION` | clic bâtiment | portrait + état slots, CTA vers slot/placement |
|
||
| `ANIMAL_ARRIVAL` | slot affecté | bulle “Arrivée enregistrée” + deep-link inspection |
|
||
| `ANIMAL_READY` | slot passe READY | bulle “Prêt à placer” + CTA “Placer” |
|
||
| `RECEPTION_FULL` | pas de slot libre | bulle “Accueil saturé” + CTA “Voir slots” |
|
||
| `QUARANTINE_ALERT` | incident actif | bulle “Alerte quarantaine” + CTA “Voir détails” |
|
||
|
||
### Skins & thèmes
|
||
Le rendu du personnage suit `theme.md` et les skins éventuels via `inventaire_skins.md` (uniforme, badge, clipboard).
|
||
|
||
## Annexes Techniques
|
||
|
||
### 1. Données et États (tableau détaillé)
|
||
|
||
| Donnée / État | Type | Exemple | Source | Contraintes |
|
||
|---|---|---|---|---|
|
||
| `id` | uuid_v4 | `uuid_v4` | DB | - |
|
||
| `type` | string | `building_reception` | DB | constant |
|
||
| `level` | int | 1 | DB | 1..7 |
|
||
| `position.x` | int | 10 | DB | grid |
|
||
| `position.y` | int | 12 | DB | grid |
|
||
| `iso_x` | int | 120 | DB/calcul | rendu iso |
|
||
| `iso_y` | int | 88 | DB/calcul | rendu iso |
|
||
| `z_index` | int | 12088 | calcul | profondeur |
|
||
| `slots[].slot_id` | int | 0 | DB | 0..capacity-1 |
|
||
| `slots[].animal_id` | uuid_v4 \| null | `uuid_v4` | DB | null si vide |
|
||
| `slots[].status` | enum | `OCCUPIED` | DB | `EMPTY/OCCUPIED/READY` |
|
||
| `slots[].arrival_time` | timestamp \| null | - | DB | UTC |
|
||
| `slots[].acclimatization_end_time` | timestamp \| null | - | DB | UTC |
|
||
| `slots[].bonus_applied` | boolean | false | DB | idempotent |
|
||
| `scores.comfort_quarantine` | int | 60 | calcul/config | 0..100 |
|
||
| `scores.risk_contamination` | float | 0.02 | config | 0..0.25 |
|
||
| `scores.traceability` | int | 80 | config | 0..100 |
|
||
|
||
#### Caractéristiques Initiales (tableau détaillé)
|
||
|
||
| Caractéristique | Valeur initiale | Unité | Notes |
|
||
|---|---:|---|---|
|
||
| Capacité | 1 | slots | level 1 |
|
||
| Temps acclimatation | 600 | s | base |
|
||
| Zone température | neutre | - | stase |
|
||
| Nourrissage | auto | bool | coût inclus |
|
||
|
||
#### Scores Initiaux (tableau détaillé)
|
||
|
||
| Score | Valeur initiale | Plage | Impact |
|
||
|---|---:|---|---|
|
||
| Confort quarantaine | 60 | 0..100 | stress initial \(\downarrow\) |
|
||
| Risque contamination | 2% | 0..25% | incident sanitaire |
|
||
| Traçabilité | 80 | 0..100 | traits révélés |
|
||
|
||
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||
|
||
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||
|---|---|---|---|---|
|
||
| Apparition | début jeu | - | bâtiment présent | indestructible |
|
||
| Entrée animal | livraison | animal_id | slot OCCUPIED | capacité |
|
||
| READY | fin timer | now | status READY | idempotent |
|
||
| Sortie | placement | coord | animal placé | slot libéré |
|
||
| Incident | tirage risque | risk | prolongation/coût | observable |
|
||
|
||
#### Conditions d'Apparition (tableau détaillé)
|
||
|
||
| Condition | Seuil | Opérateur | Résultat |
|
||
|---|---:|---|---|
|
||
| Nouvelle partie | true | est | accueil présent |
|
||
|
||
#### Conditions de Disparition (tableau détaillé)
|
||
|
||
| Condition | Seuil | Opérateur | Résultat |
|
||
|---|---:|---|---|
|
||
| - | - | - | indestructible |
|
||
|
||
#### Hérédité (tableau détaillé)
|
||
|
||
| Élément | Hérité | Règle |
|
||
|---|---|---|
|
||
| Bonus temporaires | Non | expirent |
|
||
| Niveau accueil | Oui | persiste |
|
||
|
||
### 3. Impacts Environnementaux
|
||
|
||
#### Impact Température (tableau détaillé)
|
||
|
||
| Condition | Effet accueil | Notes |
|
||
|---|---|---|
|
||
| - | neutre | pas de dégâts température |
|
||
|
||
#### Impact Milieu (Biome) (tableau détaillé)
|
||
|
||
| Biome | Effet accueil | Notes |
|
||
|---|---|---|
|
||
| - | neutre | compatible tous |
|
||
|
||
#### Impact Saisons (tableau détaillé)
|
||
|
||
| Saison | Effet accueil | Notes |
|
||
|---|---|---|
|
||
| - | protégé | pas d’intempéries |
|
||
|
||
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||
|
||
| Période | Effet accueil | Notes |
|
||
|---|---|---|
|
||
| Nuit | aucun | 24/7 |
|
||
|
||
### 4. Impacts Biologiques et Sociaux
|
||
|
||
#### Impact Reproduction (tableau détaillé)
|
||
|
||
| Facteur | Effet sur taux | Condition |
|
||
|---|---|---|
|
||
| Level 4..6 | +10% temporaire | 2 jours in-game |
|
||
| Level 7 | +25% temporaire | 5 jours in-game |
|
||
|
||
#### Impact Mort (tableau détaillé)
|
||
|
||
| Cas | Effet | Condition |
|
||
|---|---|---|
|
||
| Stase | pas de mort | jauges gelées |
|
||
|
||
#### Impact Nourriture (tableau détaillé)
|
||
|
||
| Ressource | Effet | Condition |
|
||
|---|---|---|
|
||
| Stock global | nourri auto | coût inclus |
|
||
|
||
#### Impact Attractivité(Visiteurs (tableau détaillé)
|
||
|
||
| Action/État | Gain | Rayon | Notes |
|
||
|---|---:|---:|---|
|
||
| Façade propre > 80 | +5 | 6 cases | ambiance |
|
||
| File visible (saturation) | -10 | 8 cases | frustration |
|
||
| Livraison animal rare | +20 | 10 cases | spectacle |
|
||
|
||
#### Impact Attractivité Animaux) (tableau détaillé)
|
||
|
||
| Action/État | Effet animaux | Condition |
|
||
|---|---|---|
|
||
| Quarantaine visible | stress voisin + | proximité |
|
||
|
||
#### Impact Valeur (tableau détaillé)
|
||
|
||
| Facteur | Variation | Condition |
|
||
|---|---:|---|
|
||
| Niveau accueil | +5% / niveau | valeur zoo |
|
||
| Sans incident 7 jours | +10% | aucun `QUARANTINE_ALERT` |
|
||
|
||
### 5. Impacts Logistiques et Économiques
|
||
|
||
#### Vitesse (Camion) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Livraison | pousse slot OCCUPIED | camion arrive |
|
||
|
||
#### Vitesse (Nurserie) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| - | - | - |
|
||
|
||
#### Vitesse (Accueil) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Temps acclimatation | table par level | 1..7 |
|
||
|
||
#### Vitesse (Recherche) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Traçabilité | + | score |
|
||
|
||
#### Vitesse (Labo) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| - | - | - |
|
||
|
||
#### Vitesse (Visite) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Saturation | détour visiteurs | `QUARANTINE_ALERT` |
|
||
|
||
#### Dépenses (Billeterie) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| - | 0 | - | - |
|
||
|
||
#### Dépenses (Boutiques) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Consommables quarantaine | 50 | coins / semaine | utilisation |
|
||
| Nettoyage/désinfection | 30 | coins / semaine | maintenance |
|
||
| Contrôle vétérinaire | 80 | coins / semaine | périodique |
|
||
|
||
#### Dépenses (Visiteurs) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| - | 0 | - | - |
|
||
|
||
#### Dépenses (Employés) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Intervention quarantaine | 10 | coins | incident |
|
||
|
||
#### 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 |
|
||
|---|---:|---|---|
|
||
| Nourrissage auto | 0 | - | inclus |
|
||
|
||
#### Dépenses (Acceuil des animaux) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Maintenance accueil | 10 | coins / semaine | base |
|
||
|
||
#### 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 | réputation | fréquentation \(\downarrow\) si incidents |
|
||
|
||
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Allées | Accueil | curiosité façade | détour faible |
|
||
|
||
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Accueil | Boutique | stress/peur | détour fuite |
|
||
|
||
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Accueil | Sortie | quarantaine visible | sortie anticipée |
|
||
|
||
### 6. Événements
|
||
|
||
#### Événements du Jeu (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Payload | Effet |
|
||
|---|---|---|---|
|
||
| `ANIMAL_ARRIVAL` | camion | animal_id | slot OCCUPIED |
|
||
| `ANIMAL_READY` | timer | animal_id | status READY |
|
||
| `ANIMAL_PLACED` | placement | animal_id, coord | sortie slot |
|
||
| `RECEPTION_FULL` | livraison | - | message |
|
||
| `QUARANTINE_ALERT` | tirage | animal_id | avoidance visiteurs |
|
||
|
||
#### Événements du Carte (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| - | - | - |
|
||
|
||
#### Événements du Zoo (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `OPEN_RECEPTION` | clic | bottom sheet |
|
||
|
||
#### Événements du Ville / Visiteur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `VISITOR_AVOIDS_QUARANTINE` | `QUARANTINE_ALERT` | reroute |
|
||
|
||
#### Événements du Visiteur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `VISITOR_SEES_QUEUE` | saturation | satisfaction - |
|
||
|
||
#### Événements du Joueur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `PLAYER_PLACES_ANIMAL_FROM_RECEPTION` | CTA | placement |
|
||
|
||
### 7. Progression
|
||
|
||
#### Tableau des Upgrades (tableau détaillé)
|
||
|
||
| Niveau | Coût | Effet | Débloque |
|
||
|---|---:|---|---|
|
||
| 1 | 100 | 1 slot, 10 min | base |
|
||
| 4 | 800 | fertilité +10% (2j) | bonus calme |
|
||
| 7 | 6400 | instant, fertilité +25% (5j) | bonus confiant |
|
||
|
||
### 8. Logique et Interfaces
|
||
|
||
#### Pseudo-code Impacts (tableau détaillé)
|
||
|
||
| Fonction | Entrées | Sorties | Notes |
|
||
|---|---|---|---|
|
||
| `getAcclimatizationDuration` | level | seconds | table |
|
||
| `updateReceptionSlots` | reception, now | reception | READY idempotent |
|
||
| `tryStartQuarantineIncident` | slot, risk | incident? | observable |
|
||
| `applyReceptionBonus` | animal, level | animal | temporaire |
|
||
|
||
#### Messages d'Infos / Alerte (tableau détaillé)
|
||
|
||
| ID | Niveau | Message | Condition |
|
||
|---|---|---|---|
|
||
| `ANIMAL_READY` | Info | "Un animal est prêt à rejoindre le zoo." | slot READY |
|
||
| `RECEPTION_FULL` | Warning | "Accueil saturé." | pas de slot libre |
|
||
| `PLACEMENT_ERROR` | Error | "Impossible de placer ici." | placement invalide |
|
||
| `QUARANTINE_ALERT` | Warning | "Alerte quarantaine." | incident |
|
||
|
||
## Annexes UX/UI
|
||
|
||
### 1. Expérience Utilisateur (UX)
|
||
|
||
#### Description UX (tableau détaillé)
|
||
|
||
| Parcours | But | Friction | Réduction clics |
|
||
|---|---|---|---|
|
||
| Voir arrivées | savoir quoi faire | dispersion | notif → deep-link accueil |
|
||
| Inspecter | vérifier stats | menus | clic slot direct |
|
||
| Placer | intégrer au zoo | erreurs | overlay OK/KO + CTA |
|
||
|
||
#### Description UI (tableau détaillé)
|
||
|
||
| Composant | Contenu | États |
|
||
|---|---|---|
|
||
| Bottom sheet accueil | liste slots | open/closed |
|
||
| Slot | portrait + barre | empty/occupied/ready |
|
||
| Badge état | sablier/! | visible au-dessus bâtiment |
|
||
|
||
#### Emplacement (tableau détaillé)
|
||
|
||
| Zone UI | Position | Notes |
|
||
|---|---|---|
|
||
| Carte zoo | bâtiment | sélection base sprite |
|
||
| HUD | notifications | deep-link |
|
||
|
||
#### Intégration (tableau détaillé)
|
||
|
||
| Intégration | Contrat | Notes |
|
||
|---|---|---|
|
||
| `camion.md` | livraison | pousse vers accueil |
|
||
| `enclos.md` | placement | validation |
|
||
|
||
#### Navigation (tableau détaillé)
|
||
|
||
| Action | Chemin | Résultat |
|
||
|---|---|---|
|
||
| Ouvrir accueil | clic bâtiment | slots |
|
||
| Aller depuis notif | clic notif | focus slot |
|
||
| Placer | CTA | mode placement |
|
||
|
||
#### Événements (tableau détaillé)
|
||
|
||
| Event UI | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `OPEN_RECEPTION` | clic | sheet |
|
||
| `CLICK_PLACE_FROM_RECEPTION` | CTA | placement |
|
||
|
||
#### Assets Skinables
|
||
|
||
##### Musiques (tableau détaillé)
|
||
|
||
| Asset | Usage | Durée | Notes |
|
||
|---|---|---:|---|
|
||
| `ambience_stable_soft.mp3` | accueil | loop | discret |
|
||
|
||
##### Sons (tableau détaillé)
|
||
|
||
| Asset | Usage | Volume |
|
||
|---|---|---|
|
||
| `crate_drop.mp3` | arrivée | moyen |
|
||
| `ui_open.mp3` | ouvrir | bas |
|
||
| `ui_confirm_place.mp3` | placer | bas |
|
||
|
||
##### Graphiques (tableau détaillé)
|
||
|
||
| Asset | Usage | Contraintes |
|
||
|---|---|---|
|
||
| `badge_quarantine.png` | état | contraste |
|
||
| `reception_icon_ready.png` | prêt | lisible |
|
||
|
||
##### Images (tableau détaillé)
|
||
|
||
| Asset | Usage |
|
||
|---|---|
|
||
| `reception_building.png` | bâtiment |
|
||
| `placement_ghost_ok.png` | overlay |
|
||
|
||
##### Vidéos (tableau détaillé)
|
||
|
||
| Asset | Usage | Durée |
|
||
|---|---|---:|
|
||
| `delivery_short.webm` | notif | 2.0s |
|
||
|
||
##### Animations (tableau détaillé)
|
||
|
||
| Animation | Déclencheur | Notes |
|
||
|---|---|---|
|
||
| badge sablier | OCCUPIED | loop |
|
||
| badge ! vert | READY | loop |
|
||
|
||
##### Couleurs (tableau détaillé)
|
||
|
||
| Token | Valeur | Usage |
|
||
|---|---|---|
|
||
| `reception_amber` | #F39C12 | en cours |
|
||
| `reception_green` | #2ECC71 | prêt |
|
||
| `reception_red` | #E74C3C | erreur |
|
||
|
||
##### Textes (tableau détaillé)
|
||
|
||
| Clé | FR | EN |
|
||
|---|---|---|
|
||
| `reception.delivery_done` | Livraison effectuée | Delivery complete |
|
||
| `reception.ready` | Prêt | Ready |
|
||
| `reception.full` | Accueil saturé | Reception full |
|
||
|
||
##### Formes (tableau détaillé)
|
||
|
||
| Élément | Forme | Notes |
|
||
|---|---|---|
|
||
| Slot | rectangle arrondi | lisible |
|
||
| Badge état | rond | visible |
|