private void Attacca_button_Click(object sender, EventArgs e)
        {
            for (int i = -1; i < 2; i++)
            {
                for (int j = -1; j < 2; j++)
                {
                    foreach (var n in missione.Nemici)
                    {
                        var pLoc = new Loc2D(Gioco.Giocatore.Loc.X + i, Gioco.Giocatore.Loc.Y + j);
                        if (pLoc.IsEqualTo(n.Loc) && !n.IsGameOver)
                        {
                            Gioco.Giocatore.Attacca(missione, n);
                            Gioco.Giocatore.Stats.Pa = 0;

                            //affonda se la vita è pari o inferiore a 0
                            n.Affonda(missione);

                            if (n.IsGameOver)
                            {
                                Attacca_button.Hide();
                            }
                            //return;
                            break;
                        }
                    }
                }
            }

            UpdateComponenti();

            //modifica colori perchè è finita l'energia
            EnergiaNave_label.Text =
                "Punti azione: " + Gioco.Giocatore.Stats.Pa + "/" +
                Gioco.Giocatore.Stats.PaMax; //aggiorna energia_label

            EnergiaNave_label.ForeColor = Color.Red;


            Sopra_button.ForeColor    = Color.LightCoral;
            Sotto_button.ForeColor    = Color.LightCoral;
            Destra_button.ForeColor   = Color.LightCoral;
            Sinistra_button.ForeColor = Color.LightCoral;

            //gli attacchi contano come turni
            missione.Ranking.IncTurni();
        }
 /// <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);
 }
        internal void UpdateComponenti()
        {
            void CercaNemico()
            {
                for (int i = -1; i < 2; i++)
                {
                    for (int j = -1; j < 2; j++)
                    {
                        foreach (var n in missione.Nemici)
                        {
                            var tempLoc = new Loc2D(Gioco.Giocatore.Loc.X + i, Gioco.Giocatore.Loc.Y + j);
                            if (tempLoc.IsEqualTo(n.Loc) && !n.IsGameOver)
                            {
                                Attacca_button.Enabled = true;
                                Attacca_button.Show();
                                Attacca_button.Text = "Attacca: " + n.Nome + "\nHP: " + n.Stats.Hp + "/" + n.Stats.HpMax;
                                return;
                            }
                            else
                            {
                                Attacca_button.Hide();
                            }
                        }
                    }
                }
            }

            if (Gioco.Giocatore.Stats.Pa > 0)// controllo attacco
            {
                CercaNemico();
            }
            else
            {
                Attacca_button.Text    = "Attacca:\nNon hai energia";
                Attacca_button.Enabled = false;
            }


            // Controllo per scavare
            if (missione.Griglia_numerica.Mat[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y] == 1)
            {
                Scavo_button.Show();
            }
            else
            {
                Scavo_button.Hide();
            }

            //aggiorno il label ubriachezza
            AntiUbriachezza_label.Text = "AntiUbriachezza rimasti: " + Gioco.Giocatore.Inventario.AntiUbriachezza;
            Ubriachezza_label.Text     =
                "Ubriachezza: " + Gioco.Giocatore.Ubriachezza + "/" + Gioco.Giocatore.UbriachezzaMax;
            //aggiorno il label determinazione
            BevandaDet_label.Text     = "Bevande Det Rimaste: " + Gioco.Giocatore.Inventario.BevandaDeterminazione;
            Determinazione_label.Text = "Determinazione: " + Gioco.Giocatore.Determinazione + "/" +
                                        Gioco.Giocatore.DeterminazioneMax;
            //aggiorno label assi legno
            AssLeg_label.Text = "Assi rimaste: " + Gioco.Giocatore.Inventario.AssiLegno;
            //aggiorno label rum
            Rum_label.Text = "Rum rimasto: " + Gioco.Giocatore.Inventario.Rum;
            //aggiorna energia_label
            EnergiaNave_label.Text = "Punti azione: " + Gioco.Giocatore.Stats.Pa + "/" + Gioco.Giocatore.Stats.PaMax;
            // aggiorna label vita
            VitaNave_label.Text = "Punti Vita: " + Gioco.Giocatore.Stats.Hp + "/" + Gioco.Giocatore.Stats.HpMax;
        }