**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
1.8 KiB
1.8 KiB
Phase 6 – Reproduction
Objectif : Deux animaux de même type, dont au moins un provient d’un 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 l’adé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,fromOtherZoosur 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, migrationloadStatepourreproductionTimers. - zoo.js :
addPendingBaby(state, animalId, fromOtherZoo?),placeMatureBabyOnCell/placeReceptionAnimalOnCellrenseignentfromOtherZoosur l’animal placé ;tryBuyBabyappelleaddPendingBaby(..., true). - reproduction.js :
getReproductionScore,getBiomeReproductionFactor,getTemperatureFactor,findReproductionPairs,tickReproduction; appel depuis la game loop aprèscheckDeathCauses.
Modalités de déploiement
- Aucun déploiement serveur. Rechargement client suffit.
Modalités d’analyse
- 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.reproductionTimersdoit contenir les paires en attente avecdueAt; après échéance, entrée retirée etbirthCountincrémenté.