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/*
This commit is contained in:
@@ -4,12 +4,23 @@
|
||||
- **Action** : Acheter une nouvelle parcelle de terrain adjacente à la grille existante.
|
||||
- **Coût** : Très élevé, progressif selon la taille actuelle du zoo.
|
||||
- **Contenu** : La nouvelle case arrive avec un biome par défaut (selon sa position géographique Prairie/Océan/Montagne) et vide.
|
||||
- **Contraintes** : Limité par la taille de la carte globale ("Monde" ou "Région").
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Action sur l'objet `Zoo` (dimensions).
|
||||
```json
|
||||
{
|
||||
"zoo_id": "uuid",
|
||||
"dimensions": { "width": 5, "height": 6 },
|
||||
"expansion_history": [
|
||||
{ "direction": "EAST", "cost": 1000, "timestamp": "..." }
|
||||
],
|
||||
"max_dimensions": { "width": 20, "height": 20 }
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
**Taille Initiale** : 5x6 cases (30 cases).
|
||||
@@ -25,8 +36,39 @@ Action sur l'objet `Zoo` (dimensions).
|
||||
| +1 Colonne (Est 2) | 5000 | +Hauteur cases |
|
||||
| +1 Ligne (Sud 2) | 5000 | +Largeur cases |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Algorithme d'Expansion
|
||||
```python
|
||||
def expand_zoo(zoo, direction, player):
|
||||
cost = calculate_expansion_cost(zoo, direction)
|
||||
|
||||
if player.money < cost:
|
||||
return error("INSUFFICIENT_FUNDS")
|
||||
|
||||
if reaches_world_limit(zoo, direction):
|
||||
return error("WORLD_LIMIT_REACHED")
|
||||
|
||||
player.money -= cost
|
||||
|
||||
# Mise à jour de la grille
|
||||
new_cells = generate_new_strip(direction, zoo.dimensions)
|
||||
zoo.grid.merge(new_cells)
|
||||
zoo.update_dimensions(direction)
|
||||
|
||||
return success("ZOO_EXPANDED")
|
||||
```
|
||||
|
||||
# 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)
|
||||
### Achat Parcelle (Action)
|
||||
**Description UX** : Le joueur clique sur une zone "Hors Limites" adjacente pour l'acheter.
|
||||
@@ -46,3 +88,8 @@ Action sur l'objet `Zoo` (dimensions).
|
||||
- **Couleurs** : Gris (Inaccessible) -> Vert (Accessible).
|
||||
- **Textes** : "Acheter Terrain (X Pièces)".
|
||||
- **Formes** : Carré.
|
||||
|
||||
### Vue Isométrique
|
||||
- **Brouillard de Guerre** : Les zones non achetées sont couvertes par des nuages ou un brouillard semi-transparent.
|
||||
- **Dévoilement** : Lors de l'achat, les nuages se dissipent (fade out + scale up) pour révéler le nouveau terrain.
|
||||
- **Clôtures** : Les clôtures délimitant le zoo se déplacent automatiquement vers la nouvelle limite.
|
||||
|
||||
Reference in New Issue
Block a user