Files
builazoo/docs/specs/objet_enclos.md
Nicolas Cantu 5143a79890 docs: enrich docs/specs and remove placeholders
**Motivations:**
- Make docs/specs implementation-ready without empty sections or placeholders.

**Root causes:**
- Multiple specs still contained non-actionable placeholders (N/A, “see above”, "..."), and inconsistent “no cache” wording.

**Correctifs:**
- Replace placeholders with explicit tables, structures, and typed examples.
- Align “no cache / no memorization” statements where relevant.

**Evolutions:**
- Add a features doc entry to track the documentation enrichment effort.

**Pages affectées:**
- docs/specs/*
- docs/features/docs-specs-enrichment.md
- docs/leo.md
- docs/plan-enrich-docs-specs.md
2026-03-05 03:08:15 +01:00

81 lines
3.3 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.
# Objet Enclos
## 1. Définition
Élément d'enrichissement spécifique à chaque espèce animale, placé à l'intérieur de l'enclos pour améliorer le bien-être et stimuler les comportements naturels. Chaque animal possède son objet unique (ex: Arbre à singe, Grattoir à ours, Rocher chauffant pour lézards).
## 2. Fonctions
* **Bien-être :** Augmente significativement le bonheur des animaux.
* **Animation :** Déclenche des animations uniques (le singe grimpe, l'ours se frotte, etc.).
* **Attractivité :** Les visiteurs adorent voir les animaux interagir avec ces objets.
## 3. Icone
* **Représentation :** Ballon de jeu ou Tronc d'arbre.
* **Couleur dominante :** Variable selon l'objet.
## 4. Interactions
* **Achat/Placement :** Via le menu de l'enclos ou la boutique (onglet "Enrichissement").
* **Interaction Animal :** L'animal s'y rend périodiquement pour jouer ou se reposer.
## 5. Annexes Techniques
### Données (JSON)
```json
{
"object_id": "enrichment_monkey_tree",
"name": "Arbre à Singe",
"compatible_animals": ["chimpanzee", "lemur"],
"cost": 150,
"created_at": "timestamp",
"updated_at": "timestamp",
"durability": 100,
"repair_cost": 30,
"bonus_happiness": 20,
"bonus_attractiveness": 10,
"cooldowns": {
"use_interval_seconds": 120,
"next_usable_at": "timestamp"
},
"placement": {
"enclosure_id": "uuid",
"grid": { "x": "integer", "y": "integer" },
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer",
"hitbox": "enum('tile','base_sprite','custom_polygon')"
},
"render": {
"sprite_id": "string",
"variant_seed": "integer"
}
}
```
### Règles Métier
* **Exclusivité :** Un objet conçu pour les lions ne fonctionnera pas (ou mal) pour les pingouins.
* **Espace :** Occupe de la place dans l'enclos (réduit la surface "libre" mais augmente la qualité).
* **Limite :** 1 objet spécial par X cases d'enclos pour éviter la surcharge.
* **Effet “mauvaise compatibilité”** : si un animal non compatible interagit, bonus réduit à 10% et risque de casse +5%.
* **Usure** : `durability` baisse à chaque utilisation (ex. -1) et par jour (ex. -2/jour). En dessous de 20 : animation “abîmé” + malus (bonus_happiness / 2).
* **Réparation** : action joueur ou employé (soigneur/agent selon design) ramène `durability` à 100 contre `repair_cost`.
* **Pathfinding** : lobjet est un obstacle interne à lenclos (visiteurs ne le traversent pas si lenclos est visitable ; animaux lutilisent comme target).
## 6. Annexes UX/UI
* **Visuel 3D/Iso :** Modèle détaillé correspondant au thème de l'animal.
* **Feedback :** Cœurs ou étoiles émanant de l'animal lorsqu'il utilise l'objet.
### États visuels
* **Neuf** : couleurs vives + petite animation idle.
* **Usé** (`durability < 50`) : texture éraflée, bruit plus sec.
* **Cassé** (`durability <= 0`) : sprite “cassé”, interaction désactivée jusquà réparation.
# 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.