public override void Update() { prochaineAttaque--; // Priorité no2: Attaquer le tank près de la base s'il y en a un if (Alerte && !(etat is EtatAlerte)) { etat = new EtatAlerte(this); } else if (!Alerte) { // Toujours chercher la cible la plus proche si le soldat n'est pas en train de se regénérer if (!(etat is EtatCache)) { CiblePersonnage = TrouverEnnemiPlusProche(position); } // Attaquer la cible si ce n'est pas déjà le cas if (CiblePersonnage != null && !(etat is EtatOffensif)) { etat = new EtatOffensif(this); } } // Priorité no1: Aller se cacher si <25% de point de vie if (pointsDeVie <= VIE_MAX_SOLDAT / 4 && !(etat is EtatCache)) { //TrouverCouvertPlusProche(); //CiblePersonnage = null; etat = new EtatCache(this); } base.Update(); etat.OnUpdate(); }
public override void Update() { prochaineAttaque--; // Priorité no2: Se replier quand il y a trop de zombies près de la base if (Game1.NbZombiesCampSurvivants >= 5 && !(etat is EtatRepli)) { etat = new EtatRepli(this); } else if (CiblePersonnage == null && (etat is EtatNormal)) { CiblePersonnage = TrouverEnnemiPlusProche(position); // Attaquer une cible if (CiblePersonnage != null) { etat = new EtatOffensif(this); } // Par défaut: Attaquer le camp ennemi else { etat = new EtatNormal(this); } } // Priorité no1: Aller se cacher si <25% de point de vie if (pointsDeVie <= VIE_MAX_ESCRIMEUR / 4 && !(etat is EtatCache)) { //TrouverCouvertPlusProche(); //CiblePersonnage = null; etat = new EtatCache(this); } base.Update(); etat.OnUpdate(); }
public override void Update() { prochaineAttaque--; // Priorité no2: Attaquer le tank près de la base s'il y en a un if (Alerte && !(etat is EtatAlerte)) { etat = new EtatAlerte(this); } else if (!Alerte) { // Si le sniper n'a plus de cible et qu'il est dans son nid, il choisi // comme nouvelle cible l'ennemi le plus près de la base if (CiblePersonnage == null && positionDepart == Position) { CiblePersonnage = TrouverEnnemiPlusProche(CampAmi.Cible); if (CiblePersonnage != null) { etat = new EtatOffensif(this); } } } // Priorité no1: Aller se cacher si <25% de point de vie if (pointsDeVie <= PointsDeVieMax / 4) { //TrouverCouvertPlusProche(); etat = new EtatCache(this); //CiblePersonnage = null; } base.Update(); etat.OnUpdate(); }