**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/*
100 lines
3.4 KiB
Markdown
100 lines
3.4 KiB
Markdown
# 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.
|