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

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.