public void Attaquer() { // Si le survivant que le zombie suivait est allé se caché, il ne le prend plus comme cible if (CiblePersonnage != null && CiblePersonnage.EstCache) { etat = new EtatNormal_Z(this); return; } if (prochaineAttaque <= 0) { // Si la cible est un survivant, il l'attaque // Sinon, il attaque le camp adverse if (CiblePersonnage != null) { if (CalculerDistance(position, CiblePersonnage.Position) <= rayonAttaque) { CiblePersonnage.RecevoirDegats(force, this); prochaineAttaque = rythmeAttaque; } else { MouvementVersCible(CiblePersonnage.Position); } } else { CampAdverse.InfligerDegats(force); prochaineAttaque = rythmeAttaque; } } }
/// <summary> /// Se déplacer vers le camp adverse ou l'attaquer si l'Acteur est assez près /// </summary> public virtual void AttaquerCampEnnemi() { if (CalculerDistance(position, CampAdverse.Cible) <= rayonAttaque) { if (prochaineAttaque <= 0) { prochaineAttaque = rythmeAttaque; CampAdverse.InfligerDegats(force); } } else { MouvementVersCible(CampAdverse.Cible); } }