示例#1
0
        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;
                }
            }
        }
示例#2
0
 /// <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);
     }
 }