Files
builazoo/docs/features/reproduction-phase6.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

1.8 KiB
Raw Permalink Blame History

Phase 6 Reproduction

Objectif : Deux animaux de même type, dont au moins un provient dun autre zoo, en proximité produisent un bébé après un délai. Le délai est réduit par le score de reproduction du zoo et ladéquation température/milieu.

Référence : docs/plan-implementation-rappel-grandes-regles.md phase 6.

Impacts

  • Nouveau module web/js/reproduction.js (détection de paires, timers, naissances).
  • État : reproductionTimers, fromOtherZoo sur animaux et bébés.
  • Bébés créés par reproduction vont en nurserie si place libre, sinon en saleListings (vente phase 10).

Modifications

  • types.js : AnimalCell.fromOtherZoo?, PendingBaby.fromOtherZoo?, GameState.reproductionTimers?.
  • config.js : Reproduction.BaseSeconds, Reproduction.MaxDistance.
  • state.js : defaultState.reproductionTimers, migration loadState pour reproductionTimers.
  • zoo.js : addPendingBaby(state, animalId, fromOtherZoo?), placeMatureBabyOnCell / placeReceptionAnimalOnCell renseignent fromOtherZoo sur lanimal placé ; tryBuyBaby appelle addPendingBaby(..., true).
  • reproduction.js : getReproductionScore, getBiomeReproductionFactor, getTemperatureFactor, findReproductionPairs, tickReproduction ; appel depuis la game loop après checkDeathCauses.

Modalités de déploiement

  • Aucun déploiement serveur. Rechargement client suffit.

Modalités danalyse

  • Vérifier en jeu : placer deux animaux de même type (dont un acheté en accueil/conveyor) sur deux cases adjacentes ; après le délai (réduit par score/biome/temp), un bébé apparaît en nurserie ou en vente.
  • state.reproductionTimers doit contenir les paires en attente avec dueAt ; après échéance, entrée retirée et birthCount incrémenté.