# 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). ```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). ## 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 ```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. **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.