Files
builazoo/docs/specs/personnage_generique.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

6.3 KiB
Raw Blame History

Spécifications : Personnage (Générique)

Définition

Entité active dans le jeu, qu'elle soit contrôlée par un humain, une IA ou un script.

Types

  • Joueur : Utilisateur humain gérant son zoo.
  • Bot : IA gérant un zoo concurrent.
  • Visiteur : PNJ se promenant dans le zoo.
  • Animal : Entité biologique gérée par le joueur.

Annexes Techniques

1. Données et États

Modèle de Données (JSON)

Classe abstraite ou interface commune.

{
  "id": "uuid",
  "type": "enum('player','bot','visitor','animal','staff')",
  "created_at": "timestamp",
  "updated_at": "timestamp",
  "position": { "x": "int", "y": "int" },
  "active": "boolean",
  "status_flags": ["enum('selected','moving','interacting','hidden','dead','sleeping','busy')"],
  "hitbox": "enum('tile','base_sprite','custom_polygon')",
  "iso_x": "integer",
  "iso_y": "integer",
  "z_index": "integer"
}

Caractéristiques Initiales

Caractéristique Valeur Initiale Type Description
active true bool Lentité est simulée/rendue si active.
hitbox base_sprite enum Sélection via base sprite (isométrique).
status_flags [] enum[] Liste vide au spawn, enrichie par le comportement.

Scores Initiaux

Score Valeur Initiale Plage (Min-Max) Impact
visibilité 100 0-100 Probabilité dêtre rendu/affiché (ex. foule dense).
priorité interaction 50 0-100 Arbitre quel élément capte le clic en cas de chevauchement.

2. Cycles de Vie et Apparition

Conditions d'Apparition

Condition Seuil Opérateur Résultat
Spawn système true Est Création de lentité (par règle métier).
Ressources dispo selon type >= Autorise création (ex. staff payé).

Conditions de Disparition

Condition Seuil Opérateur Résultat
active false Est Retrait du rendu/simulation.
status_flags contient dead true Est Retrait ou état “cadavre” selon design.

Hérédité

Parent Trait Transmis Probabilité Mutation Possible
Classe dérivée Champs spécifiques 100% Non
Skins Palette/cosmétiques 100% Non

3. Impacts Environnementaux

Impact Température

Plage Température Effet sur lentité Bonus/Malus
< 0°C Animations “froid” (si entité sensible) vitesse -10% (visiteurs)
> 30°C Animations “chaud” soif +20% (visiteurs)

Impact Milieu (Biome)

Biome Compatibilité Bonus/Malus
Chemin 100% coût de mouvement 1.0
Herbe 100% coût de mouvement 1.2
Boue 60% coût de mouvement 1.5

Impact Saisons

Saison Effet Modificateur
Été foule + visiteurs +
Hiver foule - visiteurs -

Impact Heure / Jour-Nuit

Période Activité Visibilité
Jour simulation normale haute
Nuit entités “dorment” selon type moyenne/basse

4. Impacts Biologiques et Sociaux

Impact Reproduction

Facteur Effet sur Taux Condition
Proximité augmente si entité = animal

Impact Mort

Cause Conséquence Durée
État critique passage dead selon règles type

Impact Nourriture

Type Nourriture Gain Santé Coût Préférence
selon type variable variable 15

Impact Attractivité (Visiteurs/Animaux)

Action/État Gain Attractivité Rayon d'action
entité rare visible + 8 cases

Impact Valeur

Facteur Variation Prix Condition
rareté cosmétique + si skin rare

5. Impacts Logistiques et Économiques

Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)

Domaine Paramètre Valeur Unité
Déplacement coût de mouvement >= 1.0 multiplicateur

Dépenses (Boutiques/Visiteurs)

Poste Coût Unité Condition
maintenance entité variable /jour si staff/bâtiment associé

Trajet Visiteurs

Trajet Règle Priorité Notes
vers POI A* pondéré 50 chemins préférés

6. Événements

Événements du Jeu / Carte / Zoo / Ville / Visiteur

Event Déclencheur Effet Durée
ENTITY_SPAWN création rendu + simulation instant
ENTITY_DESPAWN suppression retrait instant

7. Progression

Tableau des Upgrades

Niveau Coût Prérequis Bonus Débloqué
1 0 - comportement de base

8. Logique et Interfaces

Pseudo-code Impacts

computeZIndex(x, y):
  return y * 1000 + x

hitTest(click):
  candidates = entities.sortedBy(z_index desc)
  return first(entity where click inside entity.hitbox)

Messages d'Infos / Alerte

Type Message Condition Priorité
Info "Entité sélectionnée." clic valide 2
Warn "Interaction impossible." état busy/dead 4

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)

Identification (Passif)

Description UX : Reconnaître le type de personnage au premier coup d'œil. Description UI : Silhouette distincte, Code couleur, Badge/Nom au survol. Emplacement : Grille. Intégration : Tooltip. Navigation : Survol souris / Tap. Événements : HOVER_CHARACTER.

Assets

  • Musiques : ui_hover_soft.mp3 (jingle court, optionnel).
  • Sons : ui_hover.mp3, ui_select.mp3.
  • Graphiques : Silhouettes archétypales.
  • Images : badge_player.png, badge_bot.png, badge_visitor.png, badge_animal.png.
  • Vidéos : hover_glow.webm (0.6s loop, optionnel).
  • Animations : Glow pulse (hover), pop (select).
  • Couleurs : Joueur (Bleu), Bot (Rouge/Gris), Visiteur (Multicolore), Animal (Naturel).
  • Textes : Nom, Rôle.
  • Formes : Badge rond + tooltip rect arrondi.