**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
4.0 KiB
4.0 KiB
Affiche Enclos
1. Définition
Panneau informatif fixé sur la clôture d'un enclos, présentant l'espèce animale qui y réside. Il apparaît automatiquement lorsqu'un enclos est créé et se positionne sur une section horizontale visible de la barrière.
2. Fonctions
- Information : Indique aux visiteurs (et au joueur) quel animal se trouve ici.
- Éducation : Augmente légèrement le score d'éducation du zoo (les visiteurs s'arrêtent pour lire).
- Esthétique : Habille les clôtures et rend le zoo plus réaliste.
3. Icone
- Représentation : Panneau rectangulaire avec une photo d'animal.
- Couleur dominante : Bois et Blanc.
4. Interactions
- Clic : Ouvre la fiche encyclopédique de l'animal ("Zoopédia").
- Personnalisation : (Optionnel) Changer le style du cadre ou l'image.
- Maintenance : Peut être vandalisé (tagué) ou cassé, nécessitant une réparation par un agent d'entretien.
5. Annexes Techniques
Données (JSON)
{
"sign_id": "sign_lion_01",
"parent_enclosure_id": "enclosure_lions_01",
"created_at": "timestamp",
"updated_at": "timestamp",
"position": {
"x": 10,
"y": 11,
"face": "enum (NORTH, SOUTH, EAST, WEST)"
},
"style_id": "wood_basic",
"status": "enum (OK, BROKEN, TAGGED)",
"status_since": "timestamp",
"repair_cost": "integer",
"clean_cost": "integer",
"cooldowns": {
"next_interaction_at": "timestamp"
},
"animal_info": {
"name": "Lion d'Afrique",
"scientific_name": "Panthera leo",
"conservation_status": "VU"
},
"i18n": {
"title_key": "string",
"subtitle_key": "string"
},
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer"
}
Règles Métier
- Placement Auto : Le jeu détermine la meilleure position (côté sud ou est généralement, face au chemin le plus proche).
- Unicité : Une seule affiche par enclos fusionné (ou une tous les X cases de périmètre).
- Mise à jour : Si l'animal change (enclos vidé puis rempli avec autre chose), l'affiche se met à jour automatiquement.
- Dégradation :
TAGGED: n’affecte pas la lisibilité mais réduit l’attractivité (ex. -5 rayon 6 cases) jusqu’au nettoyage.BROKEN: la Zoopédia est inaccessible au clic, et malus attractivité plus fort (ex. -15 rayon 8 cases).
- Cooldown clic : éviter les spams ; appliquer
next_interaction_at(ex. 1s) sur ouverture Zoopédia.
Algorithme de Placement
def place_sign(enclosure):
# Trouver les murs adjacents à un chemin
valid_walls = []
for wall in enclosure.walls:
if is_path(wall.neighbor):
valid_walls.append(wall)
# Priorité : Sud > Est > Ouest > Nord (pour visibilité isométrique)
best_wall = select_best_wall(valid_walls)
create_sign(best_wall.position, best_wall.orientation)
6. Annexes UX/UI
- Visuel : Petit panneau en bois avec une image miniature de l'animal.
- Lisibilité : Doit être visible sans cacher les animaux derrière.
- Zoom : Devient plus détaillé ou affiche une bulle d'info au survol de la souris.
- Vue Isométrique :
- Orientation : Le sprite doit correspondre à l'orientation du mur (4 sprites différents).
- Z-Index : Doit être dessiné après la clôture mais avant les visiteurs passant devant.
Messages i18n (exemples)
ENCLOSURE_SIGN_OPEN: FR "Ouvrir la Zoopédia" / EN "Open Zoopedia"ENCLOSURE_SIGN_TAGGED: FR "Affiche taguée" / EN "Sign tagged"ENCLOSURE_SIGN_BROKEN: FR "Affiche cassée" / EN "Sign broken"
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.