Files
builazoo/docs/features/grille-lancement.md
ncantu c7d389ecbb Lint: fix errors and remove unused variables
**Motivations:**
- Ensure lint config is not degraded and fix all lint errors for pousse workflow.

**Root causes:**
- Unused variables kept with _ prefix instead of removed (_row, _questReward, _i).
- getAnimalBlockOrigin had 5 parameters (max 4).
- use of continue statement (no-continue rule).

**Correctifs:**
- ESLint config verified; no eslint-disable in codebase.
- Removed unused variable _row (biome-rules); removed dead function _questReward (quests); removed unused map param _i (state.js).
- getAnimalBlockOrigin refactored to 4 params (pos object instead of x, y).
- Replaced continue with if (cell) block in normalizeLoadedCells (state.js).
- JSDoc param names aligned with _height, _y (biome-rules).

**Evolutions:**
- (none)

**Pages affectées:**
- web/js/biome-rules.js
- web/js/quests.js
- web/js/state.js
- web/js/placement.js
2026-03-04 15:32:27 +01:00

4.1 KiB
Raw Blame History

Grille au lancement et 3 couples reproducteurs

Objectif : Au premier lancement (nouveau zoo ou après prestige), le joueur dispose dune grille zoo complète (recherche, billeterie, nurserie, accueil, nourriture, école) et de 3 couples reproducteurs danimaux 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 quelles 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 addStarterAnimals(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 36 : 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 danalyse

  • 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 dupgrade 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 limplé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.