Files
builazoo/docs/specs/carte_zoo.md
Nicolas Cantu e031c9a1d2 Initial commit
**Motivations:**
- Initialisation du versionning git pour le projet

**Root causes:**
- N/A (Nouveau projet)

**Correctifs:**
- N/A

**Evolutions:**
- Structure initiale du projet
- Ajout du .gitignore

**Pages affectées:**
- Tous les fichiers
2026-03-03 22:24:17 +01:00

167 lines
4.2 KiB
Markdown

# Spécifications : Carte du Zoo
## Définition
La carte du zoo est l'espace principal de gestion du joueur où il place ses bâtiments et ses animaux.
## Structure
- **Grille** : Composée de cases individuelles.
- **Biomes** : Divisée en tiers de largeur :
- Gauche : Prairie
- Milieu : Océan
- Droite : Montagne
- **Dégradés** : Couleurs et températures varient doucement au sein des biomes.
## Contenu Initial (Lancement)
- 1 Case Agrandissement du zoo (+1 case, payant)
- 1 Case Recherche (Coin haut gauche)
- 1 Case Billeterie (Coin haut gauche)
- 1 Case Nurserie (Coin haut gauche)
- 1 Case Accueil nouveaux animaux (Coin haut gauche)
- 1 Case Nourriture générale (Coin haut gauche)
- 1 Case Camion (Coin haut gauche)
- 24 Cases de terrain (3 couleurs différentes réparties selon les biomes)
## Mécaniques
- **Placement** : Le joueur peut placer des œufs, des animaux et des bâtiments sur les cases vides.
- **Déplacement** : Glisser-déposer pour réorganiser.
- **Visiteurs** : Les visiteurs se déplacent sur la grille.
- **Feedbacks** : L'état du terrain (herbe jaunie, givre) reflète l'adéquation avec les animaux.
# Annexes Techniques
## 1. Données et États
### Modèle de Données (JSON)
```json
{
"id": "uuid",
"owner_id": "uuid",
"width": "integer (init 5)",
"height": "integer (init 6)",
"cases": [ ... ]
}
```
### Caractéristiques Initiales
| Caractéristique | Valeur Initiale |
| :--- | :--- |
| Taille | 30 cases (5x6 approx) |
| Biomes | 3 (Tiers) |
### Scores Initiaux
N/A
## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Création du compte joueur.
### Conditions de Disparition
N/A
### Hérédité
N/A
## 3. Impacts Environnementaux
### Impact Température
N/A (Géré par case)
### Impact Milieu (Biome)
N/A (Géré par case)
### Impact Saisons
N/A
### Impact Heure / Jour-Nuit
N/A
## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
N/A
### Impact Mort
N/A
### Impact Nourriture
N/A
### Impact Attractivité (Visiteurs/Animaux)
N/A
### Impact Valeur
N/A
## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
N/A
### Dépenses (Boutiques/Visiteurs)
N/A
### Trajet Visiteurs
Support du pathfinding (A* sur la grille).
## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
* **Agrandissement** : Ajout d'une colonne/ligne ou case adjacente.
## 7. Progression
### Tableau des Upgrades
Voir `achat_upgrade_case_zoo.md`.
## 8. Logique et Interfaces
### Pseudo-code Impacts
```
function initZooMap():
width = 6
height = 5
for x in 0..width:
for y in 0..height:
biome = getBiomeByColumn(x, width)
createCase(x, y, biome)
```
### Messages d'Infos / Alerte
N/A
# Annexes UX/UI
## 1. Expérience Utilisateur (UX)
### Interaction Grille (Action)
**Description UX** : Le joueur clique sur une case pour voir son contenu ou construire.
**Description UI** : Surbrillance de la case au survol. Clic ouvre un **Panneau Latéral (Bottom Sheet)** non bloquant (Info/Construire).
**Emplacement** : Grille.
**Intégration** : Curseur.
**Navigation** : Clic -> Menu.
**Événements** : `CLICK_CASE`.
#### Assets
- **Musiques** : N/A
- **Sons** : `click_tile.mp3`.
- **Graphiques** : Cadre de sélection blanc/brillant.
- **Images** : N/A
- **Vidéos** : N/A
- **Animations** : Pulsation du cadre.
- **Couleurs** : Blanc.
- **Textes** : N/A
- **Formes** : Carré.
### Mode Construction (Action)
**Description UX** : Le joueur place un bâtiment ou modifie le terrain.
**Description UI** : Grille visible. Cases valides en vert, invalides en rouge.
**Mode Peinture** : Le joueur peut glisser son doigt (Drag) pour construire/modifier plusieurs cases d'affilée (ex: peindre un biome ou poser une route).
**Alternative Accessibilité** : Tap to Select (Bâtiment) -> Tap to Place (Case) pour éviter le Drag & Drop.
**Emplacement** : Grille.
**Intégration** : Overlay.
**Navigation** : Drag -> Drop.
**Événements** : `ENTER_BUILD_MODE`.
#### Assets
- **Musiques** : N/A
- **Sons** : `grid_snap.mp3`.
- **Graphiques** : Grille semi-transparente.
- **Images** : N/A
- **Vidéos** : N/A
- **Animations** : Snap to grid.
- **Couleurs** : Vert/Rouge (Alpha 0.5).
- **Textes** : N/A
- **Formes** : Carrés.