# Spécifications : Agrandissement de la Carte du Monde ## Concept La carte du monde est vaste, mais le joueur ne voit initialement qu'une petite zone autour de son zoo. ## Mécanique - **Coût** : Ne se paie pas en pièces, mais en **Unités de Recherche** produites par les Centres de Recherche. - **Palier** : Chaque niveau d'agrandissement coûte plus cher. - **Effet** : Dézoome la carte / Débloque le brouillard de guerre, révélant de nouveaux zoos, villes et laboratoires plus lointains. - **Intérêt** : Accès à plus de marchés (achat/vente), plus de villes (visiteurs potentiels). # Annexes Techniques ## 1. Données et États ### Modèle de Données (JSON) Propriété `view_radius` sur `Zoo` ou `Player`. ```json { "player_id": "uuid", "world_map_state": { "view_radius_km": 100, "unlocked_zones": ["zone_0_0", "zone_0_1"], "fog_of_war_mask": "bitmask_string" } } ``` ### Caractéristiques Initiales | Caractéristique | Valeur Initiale | | :--- | :--- | | Rayon Vue | 100 km | ## 7. Progression ### Tableau des Upgrades | Niveau | Coût (Points Recherche) | Rayon Vue | | :--- | :--- | :--- | | 1 | 0 | 100 km | | 2 | 100 | 200 km | | 3 | 250 | 350 km | | 4 | 500 | 550 km | | 5 | 1000 | 800 km | | 6 | 2500 | 1200 km | | 7 | 5000 | 2000 km | ## 8. Logique et Interfaces ### Algorithme d'Exploration ```python def explore_world(player): next_level = get_next_exploration_level(player.exploration_level) cost = next_level.cost if player.research_points < cost: return error("NOT_ENOUGH_RP", "Points de recherche insuffisants.") player.research_points -= cost player.exploration_level += 1 player.view_radius = next_level.radius # Révéler les POI dans le nouveau rayon new_pois = find_pois_in_radius(player.zoo_location, player.view_radius) notify_discovery(new_pois) return success("EXPLORATION_SUCCESS") ``` # 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) ### Découverte (Passif/Action) **Description UX** : En payant des points de recherche, le brouillard de guerre recule sur la carte du monde. **Description UI** : Animation de nuages qui s'écartent. De nouvelles icônes (Villes, Zoos) apparaissent. **Emplacement** : Carte Monde. **Intégration** : Vue globale. **Navigation** : Bouton "Explorer" (HUD) -> Animation. **Événements** : `EXPLORE_WORLD`. #### Assets - **Musiques** : Jingle découverte (style Zelda/Civ). - **Sons** : `wind_whoosh.mp3`. - **Graphiques** : Nuages (Brouillard de guerre). - **Images** : Carte au trésor (Icône). - **Vidéos** : Effet de dissipation de brume. - **Animations** : Fade out des nuages. Scale up de la vue (Dezoom). - **Couleurs** : Blanc/Gris (Nuages). - **Textes** : "Nouvelle zone découverte !". - **Formes** : Cercle (Rayon de vue). ### Vue Isométrique - **Carte** : La carte du monde peut être stylisée comme une carte papier posée sur une table, ou un globe holographique. - **Bords** : Les bords de la zone connue sont flous ou déchirés.