private void Scavo_button_Click(object sender, EventArgs e) { if (missione.Griglia_numerica.Mat[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y] != -1) { //Puoi scavare solo se hai abbastanza determinazione if (Gioco.Giocatore.Determinazione > 0) { //riporto i label ai colori normali Ubriachezza_label.ForeColor = Color.Black; Determinazione_label.ForeColor = Color.Black; VitaNave_label.ForeColor = Color.Black; Gioco.Giocatore.DecDeterminazione(3); //aggiorna label Determinazione_label.Text = "Determinazione: " + Gioco.Giocatore.Determinazione + "/" + Gioco.Giocatore.DeterminazioneMax; //cambia colore Determinazione_label.ForeColor = Color.Red; var rand = new Random(); var rng = rand.Next() * 100; if (rng < 70) { temp = Resources.cross; //sostituisco la texure sabbia con quella scavo } else { temp = Resources.ruby; //sostituisco la texure sabbia con rubino Gioco.Dominio.CassaRubini++; //ottieni un rubino missione.Ranking.IncRubini(); //aumenta il conteggio per il ranking //aggiorna label Rubini_label.Text = "Rubini: " + Gioco.Dominio.CassaRubini; //cambia colore Rubini_label.ForeColor = Color.Green; } //uso la matrice di inizializzazione per verificare se le celle sono già state scavate missione.Griglia_numerica.Mat[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y] = -1; Scavo_button.Hide(); //la componente non serve più quindi la si nasconde } } UpdateComponenti(); }
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; }