**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
3.0 KiB
3.0 KiB
Audit des causes de mort (§12)
Référence : Cahier des charges §12 (Mort).
Liste du cahier
- Seuls
- Pas visités
- Manque de nourriture
- Tué par un autre animal d'un autre zoo
- Niveau de recherche trop inférieur par rapport au niveau de l'animal
- Bébé non vendu dans les délais
- Bébé de nurserie prêt non placé dans les délais
- Animal d'accueil prêt non placé sur la carte après un délai
- Animal non placé sur la carte dans les délais (vente échouée)
- Température trop en écart avec la température de l'animal
- Milieu (couleur) trop en écart avec la température de l'animal
Implémenté
- Pas visités :
Visitor.MaxSecondsWithoutVisit,checkDeathCauses→maybeDeathBlock(visitedOk),food.js+animal-visits.js. - Manque de nourriture :
Food.MaxSecondsWithoutFood,maybeDeathBlock(fedOk),tickFeeding/checkDeathCauses. - Température en écart :
maybeDeathBlock(tempOk),getDisplayTemperature,idealTemperature/temperatureTolerance(loot-tables). - Milieu (couleur) en écart :
maybeDeathBlock(biomeOk),isAnimalAllowedOnBiome,getDisplayBiome. - Bébé nurserie prêt non placé :
Nursery.MaxSecondsMatureNotPlaced,filterPendingBabiesdanscheckDeathCauses. - Animal accueil prêt non placé :
Reception.MaxSecondsReadyNotPlaced,filterReceptionAnimalsdanscheckDeathCauses. - Bébé non vendu dans les délais :
Sale.ListingDurationSeconds,tickSaleListings(trade.js) ; annonce expirée etisBaby→deathCountRecentincrémenté. Côté serveur :expireSaleListings(db.js).
Non implémenté
- Seuls :
pas de règle « animal seul meurt ».Implémenté :GameConfig.Animal.MinSameSpeciesInRadius,RadiusCells,MaxSecondsAlone;checkNotAlonedansfood.js; retrait etdeathCountRecentsi seul depuis trop longtemps. - Tué par un autre animal d'un autre zoo : pas de mécanique inter-zoo.
- Niveau de recherche trop inférieur :
pas de vérification niveau recherche vs niveau animal.Implémenté : dansmaybeDeathBlock(food.js), sidef.rarityLevel > getSkillLevel(state)→ retrait etdeathCountRecent. - Animal (adulte) vente échouée :
à l'expiration d'une annonce adulte (Implémenté :isBaby: false), deathCountRecent n'est pas incrémenté.tickSaleListings(trade.js) incrémentedeathCountRecentpour les listings expirés adulte comme bébé.
Fichiers
web/js/food.js:checkDeathCauses,maybeDeathBlock,checkNotAlone,filterPendingBabies,filterReceptionAnimals; cause recherche (getSkillLevel), cause seuls (Animal config).web/js/trade.js:tickSaleListings(expiration bébé et adulte → deathCountRecent).web/js/animal-visits.js:lastVisitedAtpour cause « pas visités ».server/db.js:expireSaleListings(bébé invendu).web/js/config.js:Animal.MinSameSpeciesInRadius,RadiusCells,MaxSecondsAlone.