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
This commit is contained in:
45
docs/features/grille-lancement.md
Normal file
45
docs/features/grille-lancement.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Grille au lancement et 3 couples reproducteurs
|
||||
|
||||
**Objectif :** Au premier lancement (nouveau zoo ou après prestige), le joueur dispose d’une grille zoo complète (recherche, billeterie, nurserie, accueil, nourriture, école) et de 3 couples reproducteurs d’animaux basiques déjà placés.
|
||||
|
||||
**Référence :** Cahier des charges §1 (garanties au démarrage), §10 (carte du zoo, layout).
|
||||
|
||||
## Impacts
|
||||
|
||||
- **Nouveau zoo / pas de sauvegarde :** `defaultState()` produit une grille 6×6 avec 6 cases fixes en ligne 1 et 6 animaux (3 couples) en ligne 2. Les 24 autres cases restent vides (3 biomes visuels par tiers de largeur, pas de champ biome sur les cases).
|
||||
- **Prestige :** `doPrestige()` réinitialise la grille avec le même layout et les mêmes 3 couples.
|
||||
- **Chargement ancienne sauvegarde :** `applyLoadStateLegacyCells` et `ensureSchoolCell` conservent la compatibilité (2_1 forcé en nurserie si manquant ou ancien plotUpgrade ; école ajoutée en 1_1 si absente). Les anciennes parties gardent 1_1 école et 2_1 nurserie tant qu’elles ne sont pas réinitialisées.
|
||||
|
||||
## Modifications
|
||||
|
||||
- **web/js/default-grid-layout.js** (nouveau, partagé) : `buildDefaultRow1Cells()`, `STARTER_ANIMAL_IDS_BY_BIOME`, `STARTER_ANIMAL_POSITIONS`, `addStarterAnimals(state)`.
|
||||
- **state.js**
|
||||
- `buildDefaultCells()` : appelle `buildDefaultRow1Cells()` du module partagé `default-grid-layout.js` (research, billeterie, nursery, reception, food, school en ligne 1).
|
||||
- `addStarterAnimals(state)` : importée depuis `default-grid-layout.js` ; place 6 animaux (3 couples) sur la ligne 2.
|
||||
- `defaultState()` : construit le state puis appelle `addDefaultStarterAnimals(state)` avant retour.
|
||||
- **prestige.js**
|
||||
- Même layout de grille et mêmes 3 couples après reset, via `buildDefaultRow1Cells()` et `addStarterAnimals()` importés de `default-grid-layout.js`. Réinitialisation de `pendingBabies` et `receptionAnimals`.
|
||||
|
||||
## Layout détaillé
|
||||
|
||||
- **Niveau 1 (6×6) :** `plotSizeFromLevel(1)` → largeur 6, hauteur 6.
|
||||
- **Ligne 1 :** 1_1 research, 2_1 billeterie, 3_1 nursery, 4_1 reception, 5_1 food, 6_1 school.
|
||||
- **Ligne 2 :** 1_2 et 2_2 = couple Meadow (c0_r0), 3_2 et 4_2 = couple Ocean (c5_r0), 5_2 et 6_2 = couple Mountain (c10_r0).
|
||||
- **Lignes 3–6 :** vides ; 24 cases libres pour placement (affichage 3 couleurs/biomes par tiers de largeur, sans donnée biome sur cellule).
|
||||
|
||||
## Modalités de déploiement
|
||||
|
||||
- Client uniquement. Aucune migration BDD. Rechargement suffit. Les nouveaux zoos et les resets prestige utilisent le nouveau layout ; les sauvegardes existantes ne sont pas modifiées de force.
|
||||
|
||||
## Modalités d’analyse
|
||||
|
||||
- Nouveau jeu : grille avec 6 bâtiments ligne 1, 6 animaux ligne 2, 24 cases vides.
|
||||
- Prestige : même grille + 3 couples ; pièces à 0, niveaux plot/conveyor/camion/carte à 1, listes pendingBabies/receptionAnimals vides.
|
||||
- Chargement ancienne sauvegarde : pas de réécriture des cases 1_1/2_1 si déjà présentes (sauf correction legacy 2_1 = nursery si manquant ou ancien plotUpgrade).
|
||||
|
||||
## Carte du monde au lancement (§11)
|
||||
|
||||
- **Agrandissement carte** : niveau `worldMapLevel` (1 par défaut) ; zone d’upgrade en unités de recherche (config `WorldMap.MapUpgrade`). Affichage dans la vue carte du monde.
|
||||
- **Compteurs** : affichés en haut de la vue carte (Bébés à vendre, Animaux à vendre, Laboratoires, Zoos, Villes). Valeurs dérivées du state et de la config (`state.saleListings`, `state.worldZoos`, `GameConfig.WorldMap.Cities`, etc.).
|
||||
- **Accueil / Nourriture / Camion** : sur la carte du monde, ces fonctions sont couvertes par la même zone « camion » (achat d’œufs, vente) et les panneaux ventes (Mes ventes, À récupérer, Enchères). Pas de grille dédiée « 24 cases 3 couleurs » sur la carte du monde dans l’implémentation actuelle ; la carte affiche zoos, villes, laboratoire, compteurs et panneaux ventes.
|
||||
- **Layout actuel** : zone carte (zoos, villes, labo), panneau ventes à gauche, compteurs en haut. Alignement §11 partiel (compteurs + agrandissement carte) ; les « 24 cases 3 couleurs » et les cases Accueil/Nourriture/Camion sur la carte monde restent optionnels ou à préciser en design.
|
||||
Reference in New Issue
Block a user