Dépot de sel à la mort d'un animal

This commit is contained in:
Mylloon 2022-04-12 15:20:21 +02:00
parent 68c22bf5ea
commit 346fe5f2e9
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
2 changed files with 14 additions and 3 deletions

View file

@ -2,6 +2,7 @@
#define ECOSYSTEME_ANIMAL_HPP 1
#include "univers.hpp"
#include "sel.hpp"
/* Un animal possède une vitesse, plus il est rapide,
* plus vite il se déplacera à chaque tour, par exemple :
@ -23,6 +24,9 @@ class Animal: public Organisme {
bool m_reproduire = true; // est-ce que l'animal peut se reproduire ?
// vrai si l'animal doit déposé des sédiment au sol à sa mort
bool m_deposer_sediment = true;
// Renvoie une vitesse aléatoire (+ élevé = + rapide)
virtual int generationVitesse(void) const noexcept = 0;

View file

@ -15,9 +15,16 @@ Animal::Animal(const int univers_ID, const int age_max,
Animal::~Animal(void) {
suppresionVecteurs(false);
// Vérifie si l'ont doit déposé des sédiments
if(m_deposer_sediment) {
// Vérfie que il n'y a rien sur la case
// -> s'il y a quelque chose = on ne fais rien (sel/herbe)
// -> s'il n'y a rien = on dépose des sels minéraux sur la case
auto debut = Univers::m_index_libres_univers[m_univers_ID].first.begin();
auto fin = Univers::m_index_libres_univers[m_univers_ID].first.end();
auto it = std::find(debut, fin, m_index);
if(it != fin) { // il n'y a rien, on dépose des sels minéraux sur la case
new Sel(m_univers_ID, m_index);
} // else -> on ne fais rien
}
}
std::vector<int> Animal::casesPossible(void) const noexcept {