**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 : 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.
{
"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
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.