Files
builazoo/docs/specs/affiche_enclos.md
Nicolas Cantu e92c1355d0 Enrichissement exhaustif des specs : Vue Isométrique et Design
**Motivations:**
- Aligner toute la documentation technique avec la nouvelle direction artistique isométrique (Réf IMG_20260303_170253).
- Faciliter l'implémentation en ajoutant les contraintes techniques liées à la 2.5D (Z-index, Sprites 4 directions).

**Root causes:**
- Besoin de cohérence visuelle et technique sur l'ensemble du projet.

**Correctifs:**
- N/A

**Evolutions:**
- Ajout systématique de la section "Direction Artistique & Vue" dans `Annexes UX/UI` de tous les fichiers.
- Enrichissement des modèles JSON avec coordonnées isométriques (`iso_x`, `iso_y`, `z_index`).
- Précision des interactions (clic, survol) adaptées à la grille losange.
- Conservation stricte de la structure existante (aucun titre supprimé).

**Pages affectées:**
- docs/specs/*
2026-03-05 02:10:32 +01:00

3.2 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)",
  "animal_info": {
    "name": "Lion d'Afrique",
    "scientific_name": "Panthera leo",
    "conservation_status": "VU"
  },
  "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.

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.

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.