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

78 lines
2.3 KiB
Markdown

# Spécifications : Case (Générique)
## Définition
Une case est l'unité élémentaire de la grille (Zoo ou Monde).
## Propriétés
- **Coordonnées** : Position (x, y) dans la grille.
- **Couleur (Milieu)** : Définit le biome et l'environnement visuel.
- **Température** : Liée à la couleur/biome.
- **Contenu** : Peut contenir un bâtiment, un animal, un visiteur, ou être vide.
- **État** : Peut avoir des indicateurs visuels (herbe jaunie, givre, fertilité).
# Annexes Techniques
## 1. Données et États
### Modèle de Données (JSON)
```json
{
"x": "integer",
"y": "integer",
"biome_id": "integer",
"temperature_offset": "float",
"content_ref": "uuid | null",
"content_type": "string",
"fertility_level": "float (0-100)",
"state_flags": ["frozen", "dry", "dirty", "fertilized"],
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer"
}
```
## 8. Logique et Interfaces
### Pseudo-code Impacts
```python
def fertilize_case(case, player):
cost = 50
if player.money < cost: return error("NO_MONEY")
player.money -= cost
case.fertility_level = 100
case.state_flags.append("fertilized")
# Si plante dessus, boost croissance
if case.content and case.content.type == "plant":
case.content.growth_rate *= 1.5
return success("CASE_FERTILIZED")
```
# 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)
### Fertilisation (Action)
**Description UX** : Le joueur améliore le sol pour que l'herbe repousse plus vite.
**Description UI** : Outil "Sac d'engrais". Clic sur la case.
**Emplacement** : Menu Outils -> Case.
**Intégration** : Curseur.
**Navigation** : Clic.
**Événements** : `FERTILIZE_SOIL`.
#### Assets
- **Musiques** : Bruit de poudre.
- **Sons** : `scatter.mp3`.
- **Graphiques** : Particules vertes/brunes.
- **Images** : Texture terre riche (plus foncée).
- **Animations** : Poussière qui retombe.
- **Couleurs** : Marron foncé.