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
This commit is contained in:
41
docs/features/causes-mort-audit.md
Normal file
41
docs/features/causes-mort-audit.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user