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:
@@ -13,7 +13,23 @@
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
**Transaction** : `{ "id": "uuid", "type": "BUY/UPGRADE", "item": "string", "cost": "int", "timestamp": "date" }`.
|
||||
**Transaction** :
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "BUY/UPGRADE",
|
||||
"item_type": "string",
|
||||
"item_id": "uuid",
|
||||
"cost": "int",
|
||||
"currency": "coins",
|
||||
"status": "enum (SUCCESS, FAILED)",
|
||||
"failure_reason": "string (optional)",
|
||||
"timestamp": "date",
|
||||
"iso_x": "integer",
|
||||
"iso_y": "integer",
|
||||
"z_index": "integer"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
**Solde Joueur** : Voir `joueur.md`.
|
||||
@@ -36,7 +52,7 @@
|
||||
**Isolation** : Les bâtiments de haut niveau résistent mieux aux coûts énergétiques (Chauffage/Clim -10% par niveau).
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
**Adaptation** : Construire sur un biome "difficile" (Toundra, Désert) coûte +20% à l'achat initial.
|
||||
**Adaptation** : Construire sur un biome "difficile" (Toundra, Désert) coûte +20% à l'achat initial (frais de fondations).
|
||||
|
||||
### Impact Saisons
|
||||
**Soldes** : Certains items moins chers en Hiver (-15% sur les chauffages).
|
||||
@@ -94,21 +110,44 @@
|
||||
### Pseudo-code Impacts
|
||||
```javascript
|
||||
function processPurchase(player, item):
|
||||
# Vérification pré-requis (ex: niveau joueur)
|
||||
if player.level < item.required_level:
|
||||
emitEvent("BUY_FAIL", "Niveau joueur insuffisant")
|
||||
return
|
||||
|
||||
# Vérification espace (si applicable)
|
||||
if item.is_physical and not map.hasSpace(item.size):
|
||||
emitEvent("BUY_FAIL", "Pas de place")
|
||||
return
|
||||
|
||||
if player.coins >= item.cost:
|
||||
player.coins -= item.cost
|
||||
player.inventory.add(item)
|
||||
emitEvent("BUY_SUCCESS")
|
||||
logTransaction(player, item, "SUCCESS")
|
||||
else:
|
||||
emitEvent("BUY_FAIL", "Fonds insuffisants")
|
||||
logTransaction(player, item, "FAILED")
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `FUNDS_LOW` | Alerte | "Pas assez de pièces !" |
|
||||
| `LEVEL_LOW` | Alerte | "Niveau X requis pour acheter ceci." |
|
||||
| `NO_SPACE` | Alerte | "Impossible de construire ici." |
|
||||
|
||||
# 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)
|
||||
### Interface d'Achat (Consultation)
|
||||
**Description UX** : Le joueur ouvre le menu de construction ou d'upgrade.
|
||||
|
||||
Reference in New Issue
Block a user