**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
42 lines
2.4 KiB
Markdown
42 lines
2.4 KiB
Markdown
# Audit des causes de mort (§12)
|
|
|
|
**Référence :** Cahier des charges §12 (Mort).
|
|
|
|
## Liste du cahier
|
|
|
|
1. Seuls
|
|
2. Pas visités
|
|
3. Manque de nourriture
|
|
4. Tué par un autre animal d'un autre zoo
|
|
5. Niveau de recherche trop inférieur par rapport au niveau de l'animal
|
|
6. Bébé non vendu dans les délais
|
|
7. Bébé de nurserie prêt non placé dans les délais
|
|
8. Animal d'accueil prêt non placé sur la carte après un délai
|
|
9. Animal non placé sur la carte dans les délais (vente échouée)
|
|
10. Température trop en écart avec la température de l'animal
|
|
11. 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`, `filterPendingBabies` dans `checkDeathCauses`.
|
|
- **Animal accueil prêt non placé** : `Reception.MaxSecondsReadyNotPlaced`, `filterReceptionAnimals` dans `checkDeathCauses`.
|
|
- **Bébé non vendu dans les délais** : `Sale.ListingDurationSeconds`, `tickSaleListings` (trade.js) ; annonce expirée et `isBaby` → `deathCountRecent` incrémenté. Côté serveur : `expireSaleListings` (db.js).
|
|
|
|
## Non implémenté
|
|
|
|
- **Seuls** : pas de règle « animal seul meurt ».
|
|
- **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.
|
|
- **Animal (adulte) vente échouée** : à l'expiration d'une annonce adulte (`isBaby: false`), `deathCountRecent` n'est pas incrémenté (actuellement seul le bébé invendu est compté).
|
|
|
|
## Fichiers
|
|
|
|
- `web/js/food.js` : `checkDeathCauses`, `maybeDeathBlock`, `filterPendingBabies`, `filterReceptionAnimals`.
|
|
- `web/js/trade.js` : `tickSaleListings` (expiration bébé).
|
|
- `web/js/animal-visits.js` : `lastVisitedAt` pour cause « pas visités ».
|
|
- `server/db.js` : `expireSaleListings` (bébé invendu).
|