**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/*
3.4 KiB
3.4 KiB
Spécifications : Achat et Upgrade des Cases du Zoo (Agrandissement)
Agrandissement du Zoo
- 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).
{
"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).
7. Progression
Tableau des Upgrades (Agrandissement)
| Extension | Coût (Pièces) | Gain |
|---|---|---|
| +1 Colonne (Est) | 1000 | +Hauteur cases (6) |
| +1 Ligne (Sud) | 1000 | +Largeur cases (5) |
| +1 Colonne (Ouest) | 2000 | +Hauteur cases |
| +1 Ligne (Nord) | 2000 | +Largeur cases |
| +1 Colonne (Est 2) | 5000 | +Hauteur cases |
| +1 Ligne (Sud 2) | 5000 | +Largeur cases |
8. Logique et Interfaces
Algorithme d'Expansion
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.
Description UI : Zone grisée ou avec panneau "À Vendre". Au survol, prix affiché.
Emplacement : Bords de la Carte Zoo.
Intégration : Grille étendue.
Navigation : Clic Zone Grisée -> Confirmer Achat.
Événements : EXPAND_ZOO.
Assets
- Musiques : Son "Vent dans les plaines" lors du survol.
- Sons :
land_buy.mp3. - Graphiques : Panneau "For Sale".
- Images : Texture herbe (cachée par brouillard).
- Vidéos : Timelapse accéléré de la construction des clôtures (2s).
- Animations : Brouillard se dissipe, herbe apparaît.
- 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.