private void OnVisibleChanged(object sender, EventArgs e) { if (Visible) { if (Gioco.Giocatore.GiocatoreCarte.IsGameOver) { Gioco.Giocatore.Restart(); missione.TurnoNemico(); //faccio muovere i nemici per mettere apposto le celle missione.Ranking.IncGameOver(); //aumenta il conteggio dei tuoi game over Gioco.Giocatore.Stats.Pa = Gioco.Giocatore.Stats.PaMax; EnergiaNave_label.Text = "Punti azione: " + Gioco.Giocatore.Stats.Pa + "/" + Gioco.Giocatore.Stats.PaMax; //aggiorna energia_label Griglia_pictureBox[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y].BackgroundImage = Resources.nave_pirata; switch (missione.Griglia_numerica.Mat[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y]) { case 0: missione.Mappa.temp = Resources.mare; break; case 1: missione.Mappa.temp = Resources.isola1; break; case -1: missione.Mappa.temp = Resources.cross; break; } } } foreach (var n in missione.Nemici) { n.Affonda(missione);// controllo automatico della vita in Affonda } //se la nave nemico e quella giocatore sono sovrapposte //la giocatore viene ripristinata Griglia_pictureBox[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y].BackgroundImage = Resources.nave_pirata; Attacca_button.Hide(); }
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(); }
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; }