/// <summary>
 /// Attacca la nave specificata nella missione specificata.
 /// </summary>
 /// <param name="nave">Nave da attaccare.</param>
 /// <param name="missione">Missione in cui attaccare.</param>
 /// <returns>true se la nave ha attaccato, false se non ha attaccato.</returns>
 public override bool Attacca(Missione missione, Nave nave)
 {
     for (int i = -dimTrigger + 1; i < dimTrigger; i++)
     {
         for (int j = -dimTrigger + 1; j < dimTrigger; j++)
         {
             Loc2D tempLoc = new Loc2D(i + Loc.X, j + Loc.Y);
             if (tempLoc.IsEqualTo(nave.Loc))
             {
                 int remPunti = new Random().Next(Stats.MinHit, Stats.MaxHit);
                 nave.DecPuntiVita(remPunti);
                 missione.Mappa.UpdateComponenti();
                 return(true);
             }
         }
     }
     return(false);
 }
 /// <summary>
 /// Attacca la neva specificata con danno random.
 /// </summary>
 /// <param name="nave">Nave da attaccare</param>
 public abstract bool Attacca(Missione missione, Nave nave);
 /// <summary>
 /// Attacca la nave specificata nella missione specificata.
 /// </summary>
 /// <param name="nave">Nave da attaccare.</param>
 /// <param name="missione">Missione in cui attaccare</param>
 public override bool Attacca(Missione missione, Nave nave)
 {
     nave.DecPuntiVita(new Random().Next(Stats.MinHit, Stats.MaxHit));
     missione.Mappa.UpdateComponenti();
     return(true);
 }