**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/*
101 lines
3.6 KiB
Markdown
101 lines
3.6 KiB
Markdown
# Spécifications : Achat et Upgrade des Boutiques
|
|
|
|
## Construction
|
|
- Peut être construite sur n'importe quelle case vide de type "Terrain".
|
|
- Nécessite une connexion à un chemin pour être accessible aux visiteurs.
|
|
|
|
## Upgrade (7 Niveaux)
|
|
- **Attrait** : Attire les visiteurs de plus loin sur la grille (Rayon d'action).
|
|
- **Revenu** : Augmente le montant dépensé par chaque visiteur qui passe sur la case (Multiplicateur de prix).
|
|
- **Capacité** : Augmente le nombre de visiteurs pouvant interagir simultanément (File d'attente).
|
|
|
|
# Annexes Techniques
|
|
|
|
## 1. Données et États
|
|
### Modèle de Données (Transaction Upgrade)
|
|
```json
|
|
{
|
|
"transaction_id": "uuid",
|
|
"building_id": "uuid",
|
|
"building_type": "shop",
|
|
"current_level": "integer",
|
|
"target_level": "integer",
|
|
"cost": "float",
|
|
"currency": "coins",
|
|
"status": "enum (PENDING, COMPLETED, FAILED)",
|
|
"timestamp": "timestamp"
|
|
}
|
|
```
|
|
*Voir `boutique.md` pour le modèle de données de l'entité Boutique.*
|
|
|
|
## 7. Progression
|
|
### Tableau des Upgrades
|
|
*Voir `boutique.md` pour le tableau détaillé des coûts et effets par niveau.*
|
|
|
|
## 8. Logique et Interfaces
|
|
### Pseudo-code Interaction
|
|
```python
|
|
def upgrade_shop(shop, player_wallet):
|
|
# Vérification niveau max
|
|
if shop.level >= MAX_LEVEL:
|
|
return error("MAX_LEVEL_REACHED")
|
|
|
|
next_level_config = get_shop_config(shop.type, shop.level + 1)
|
|
cost = next_level_config.cost
|
|
|
|
# Vérification fonds
|
|
if player_wallet.coins < cost:
|
|
return error("INSUFFICIENT_FUNDS")
|
|
|
|
# Transaction
|
|
player_wallet.debit(cost)
|
|
shop.level += 1
|
|
shop.stats = next_level_config.stats
|
|
shop.visual_state = "UPGRADING" # Déclenche anim
|
|
|
|
start_upgrade_timer(shop, next_level_config.build_time)
|
|
|
|
return success("UPGRADE_STARTED")
|
|
```
|
|
|
|
### Cas Limites
|
|
- **Fonds insuffisants** : Bouton grisé + Tooltip rouge.
|
|
- **Upgrade en cours** : Impossible de lancer un autre upgrade tant que le précédent n'est pas fini.
|
|
- **Boutique utilisée** : L'upgrade n'éjecte pas les visiteurs actuels, mais bloque l'entrée de nouveaux pendant les travaux (si temps > 0).
|
|
|
|
# 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)
|
|
### Rénovation (Action)
|
|
**Description UX** : Améliorer la boutique change son apparence et ses stats.
|
|
**Description UI** : Le sprite du bâtiment change (devient plus grand/beau).
|
|
**Emplacement** : Case Boutique.
|
|
**Intégration** : Visuel immédiat.
|
|
**Navigation** : Upgrade -> Validation.
|
|
**Événements** : `UPGRADE_SHOP_VISUAL`.
|
|
|
|
#### Assets
|
|
- **Musiques** : Musique d'ascenseur (Muzak) apaisante.
|
|
- **Sons** : `construction_finish.mp3`.
|
|
- **Graphiques** : Sprites Boutiques Niv 1-7.
|
|
- **Images** : Photo avant/après (style émission rénovation).
|
|
- **Vidéos** : Ruban d'inauguration coupé.
|
|
- **Animations** : Effet de "pop" ou échafaudage rapide.
|
|
- **Couleurs** : Doré (pour les niveaux élevés).
|
|
- **Textes** : "Niveau Supérieur !".
|
|
- **Formes** : Particules Étoiles.
|
|
|
|
### Vue Isométrique
|
|
- **Travaux** : Si l'upgrade prend du temps, afficher un sprite "En travaux" (bâche, échafaudage) par-dessus la boutique.
|
|
- **Particules** : Lors de la complétion, explosion de confettis/étoiles en 3D isométrique au-dessus du toit.
|
|
- **Feedback** : Le bâtiment peut faire un petit saut (scale up/down) pour signifier l'upgrade.
|