// Définie le type d'interraction suivant les Nuisibles qui se rencontres public void interagitAvec(Nuisible nuisible) { // Si le Nuisible est mort, il n'y a aucune interraction if (nuisible._etat == Etat.Mort || _etat == Etat.Mort) { return; } // Si le Nuisible est un Zombie, il transforme le Nuisible rencontré if (_etat == Etat.Zombie) { nuisible._etat = Etat.Zombie; nuisible._vitesse = Zombie.Vitesse; } // Si le nuisible est un Pigeon mutant, tue obligatoirement le Rat else if (nuisible._etat != Etat.Zombie && this.GetType() != nuisible.GetType() && nuisible.GetType() != typeof(Pigeon) && this.GetType() == typeof(PigeonMutant)) { nuisible._etat = Etat.Mort; } // Si le Nuisible est un Rat ou un Pigeon, tue aléatoirement un des deux Nuisibles else if (nuisible._etat != Etat.Zombie && this.GetType() != nuisible.GetType() && nuisible.GetType() != typeof(PigeonMutant) && this.GetType() != typeof(PigeonMutant)) { Random aleatoire = new Random(); if (aleatoire.Next(0, 2) == 0) { nuisible._etat = Etat.Mort; } else { this._etat = Etat.Mort; } } }
// Test si deux Nuisibles se trouve sur la même case public bool memeCase(Nuisible nuisible) { return(this._position.x == nuisible._position.x && this._position.y == nuisible._position.y); }