/// <summary> /// 0 - czyMaEnergię 0 - nie / 1 - tak /// 1 - drewno /// 2 - kamień /// 3 - skóra /// 4 - metal /// 5 - energia /// 6 - czas /// </summary> /// <returns></returns> public static int[] Zbieraj() { int[] dane = new int[7]; if (Gracz.Energia() > 0) { dane[0] = 1; Random los = new Random(); dane[1] = los.Next(0, ((Gracz.Atak() + Gracz.Obrona() + Gracz.Doswiadczenie()) / 20) + 2); dane[2] = los.Next(0, ((Gracz.Atak() + Gracz.Obrona() + Gracz.Doswiadczenie()) / 10) + 2); dane[3] = los.Next(0, ((Gracz.Atak() + Gracz.Obrona() + Gracz.Doswiadczenie()) / 5000) + 2); dane[4] = los.Next(0, ((Gracz.Atak() + Gracz.Obrona() + Gracz.Doswiadczenie()) / 3000) + 2); Ekwipunek.ekwipunek_ilosci[1] += dane[1]; Ekwipunek.ekwipunek_ilosci[2] += dane[2]; Ekwipunek.ekwipunek_ilosci[3] += dane[3]; Ekwipunek.ekwipunek_ilosci[4] += dane[4]; dane[5] = los.Next(0, 10); if (Gracz.Energia() - dane[5] < 0) { dane[5] = Gracz.Energia(); } Gracz.ZmienEnergie(-dane[5]); dane[6] = los.Next(20, 60); Gracz.czas = Gracz.czas.AddMinutes(dane[6]); } else { dane[0] = 0; } return(dane); }
private void Reset(object sender, RoutedEventArgs e) { Ekwipunek.posiadanaBron.ResetujWartosci(); Ekwipunek.posiadanaZbroja.ResetujWartosci(); Gracz.InicjalizacjaGracza(); Ekwipunek.ekwipunek_ilosci[0] = 3; Ekwipunek.ekwipunek_ilosci[1] = 0; Ekwipunek.ekwipunek_ilosci[2] = 0; Ekwipunek.ekwipunek_ilosci[3] = 0; Ekwipunek.ekwipunek_ilosci[4] = 0; Gracz.czas = Gracz.czasPoczątkowy; przycisk_wczytaj.IsEnabled = true; przycisk_zapisz.IsEnabled = true; przycisk_kup.IsEnabled = true; przycisk_sprzedaj.IsEnabled = true; przycisk_poluj.IsEnabled = true; przycisk_zbieraj.IsEnabled = true; przycisk_odpoczywaj.IsEnabled = true; przycisk_low.IsEnabled = true; przycisk_jedz.IsEnabled = true; przycisk_spij.IsEnabled = true; przycisk_pauza.IsEnabled = true; przycisk_boss.IsEnabled = true; komunikat.Text = "Może tym razem pójdzie ci lepiej."; pole_konca_gry.Visibility = Visibility.Hidden; AktualizujWartości(); }
private void AktualizujWartości() { Gracz.AktualizujAtakIObrone(Ekwipunek.posiadanaBron.Atak(), Ekwipunek.posiadanaZbroja.Obrona()); pieniadze.Text = Convert.ToString(Gracz.Pieniadze()); jedzenie.Text = Convert.ToString(Ekwipunek.ekwipunek_ilosci[0]); drewno.Text = Convert.ToString(Ekwipunek.ekwipunek_ilosci[1]); kamien.Text = Convert.ToString(Ekwipunek.ekwipunek_ilosci[2]); skora.Text = Convert.ToString(Ekwipunek.ekwipunek_ilosci[3]); metal.Text = Convert.ToString(Ekwipunek.ekwipunek_ilosci[4]); bron.Text = Convert.ToString(Ekwipunek.posiadanaBron.Nazwa()); zbroja.Text = Convert.ToString(Ekwipunek.posiadanaZbroja.Nazwa()); zycie.Text = Convert.ToString(Gracz.Zycie()); energia.Text = Convert.ToString(Gracz.Energia()); atak.Text = Convert.ToString(Gracz.Atak()); obrona.Text = Convert.ToString(Gracz.Obrona()); doswiadczenie.Text = Convert.ToString(Gracz.Doswiadczenie()); godzina.Text = String.Format("{0:t}", Gracz.Czas()); dzien.Text = Convert.ToString(Convert.ToInt32((Gracz.czas - Gracz.czasPoczątkowy).TotalDays + 1)); nazwa_domu.Text = Obozowisko.Dom.posiadany_dom.Nazwa(); wytrzymalosc_domu.Text = Convert.ToString(Obozowisko.Dom.posiadany_dom.Wytrzymalosc()); if (!Gracz.CzyZyje()) { KoniecGry(); } }
/// <summary> /// 0 - czyMożnaZapolować 0 - nie / 1 - tak /// 1 - jedzenie /// 2 - energia /// 3 - zycie /// 4 - doswiadczenie /// 5 - czas /// </summary> /// <returns></returns> public static int[] Poluj() { int[] dane = new int[6]; if (Gracz.Energia() > 0 && Gracz.Zycie() > 0) { dane[0] = 1; Random los = new Random(); dane[1] = los.Next(0, (Gracz.Atak() + Gracz.Doswiadczenie()) / 100 + 2); Ekwipunek.ekwipunek_ilosci[0] += dane[1]; dane[2] = los.Next(1, 10); if (Gracz.Energia() - dane[2] < 0) { dane[2] = Gracz.Energia(); } Gracz.ZmienEnergie(-dane[2]); dane[3] = los.Next(1, 12 - (Gracz.Obrona() / 10)); Gracz.ZmienZycie(-dane[3]); dane[4] = los.Next(2, 4); Gracz.ZmienDoswiadczenie(dane[4]); dane[5] = los.Next(30, 60); Gracz.czas = Gracz.czas.AddMinutes(dane[5]); } else { dane[0] = 0; } return(dane); }
public static int[] Spij() { int[] dane = new int[5]; // 0 - warunek // 0 - jest dzień, nie można spać // 1 - sen odbyty // 1 - energia // 2 - zycie // 3 - czas snu - godziny // 4 - czas snu - minuty if (Gracz.Czas().Hour >= 19 || Gracz.Czas().Hour <= 2) { dane[0] = 1; Random los = new Random(); dane[1] = los.Next(50, 80); if (dane[1] + Gracz.Energia() > 100) { dane[1] -= dane[1] + Gracz.Energia() - 100; } Gracz.ZmienEnergie(dane[1]); dane[2] = los.Next(3, 7); if (dane[2] + Gracz.Zycie() > 100) { dane[2] -= dane[2] + Gracz.Zycie() - 100; } Gracz.ZmienZycie(dane[2]); dane[3] = los.Next(40, 49) * 10 + los.Next(0, 10); Gracz.czas = Gracz.czas.AddMinutes(dane[3]); dane[4] = dane[3] % 60; dane[3] = (dane[3] - dane[4]) / 60; } else { dane[0] = 0; } return(dane); }
public MainWindow() { InitializeComponent(); WysrodkujOkno(); UruchomZegar(); Gracz.InicjalizacjaGracza(); ZaladujSklep(); AktualizujWartości(); komunikat.Text = "Witaj w grze The Forest!"; }
private void PokonajFinalnegoPotwora(object sender, RoutedEventArgs e) { if (Gracz.Obrona() > 90 && Gracz.Atak() > 90 && Obozowisko.Dom.posiadany_dom.Wytrzymalosc() > 25) { komunikat.Text = "Udało ci się pokonać końcowego potwora!"; } else { Gracz.ZmienZycie(-(Gracz.Zycie() - 1)); komunikat.Text = "Nie udało ci się pokonać potwora. Następnym razem przygotuj się lepiej."; } AktualizujWartości(); }
private void Zapisz(object sender, RoutedEventArgs e) { File.Delete(nazwaPliku); FileStream plik = new FileStream(nazwaPliku, FileMode.OpenOrCreate, FileAccess.ReadWrite); plik.Seek(0, SeekOrigin.End); StreamWriter strumienZapisu = new StreamWriter(plik); strumienZapisu.WriteLine("pieniadze=" + Convert.ToString(Gracz.Pieniadze())); //0 pieniadze strumienZapisu.WriteLine("jedzenie=" + Convert.ToString(Ekwipunek.ekwipunek_ilosci[0])); //1 jedzenie strumienZapisu.WriteLine("drewno=" + Convert.ToString(Ekwipunek.ekwipunek_ilosci[1])); //2 drewno strumienZapisu.WriteLine("kamien=" + Convert.ToString(Ekwipunek.ekwipunek_ilosci[2])); //3 kamień strumienZapisu.WriteLine("skora=" + Convert.ToString(Ekwipunek.ekwipunek_ilosci[3])); //4 skóra strumienZapisu.WriteLine("metal=" + Convert.ToString(Ekwipunek.ekwipunek_ilosci[4])); //5 metal // strumienZapisu.WriteLine("bronNazwa=" + Convert.ToString(Ekwipunek.posiadanaBron.Nazwa())); //6 nazwa broni strumienZapisu.WriteLine("bronAtak=" + Convert.ToString(Ekwipunek.posiadanaBron.Atak())); //7 atak broni strumienZapisu.WriteLine("bronCena=" + Convert.ToString(Ekwipunek.posiadanaBron.Cena())); //8 cena broni strumienZapisu.WriteLine("bronDrewno=" + Convert.ToString(Ekwipunek.posiadanaBron.Drewno())); //9 drewno broni strumienZapisu.WriteLine("bronKamien=" + Convert.ToString(Ekwipunek.posiadanaBron.Kamien())); //10 kamien broni strumienZapisu.WriteLine("bronSkora=" + Convert.ToString(Ekwipunek.posiadanaBron.Skora())); //11 skora broni strumienZapisu.WriteLine("bronMetal=" + Convert.ToString(Ekwipunek.posiadanaBron.Metal())); //12 metal broni // strumienZapisu.WriteLine("zbrojaNazwa=" + Convert.ToString(Ekwipunek.posiadanaZbroja.Nazwa())); //13 nazwa zbroji strumienZapisu.WriteLine("zbrojaObrona=" + Convert.ToString(Ekwipunek.posiadanaZbroja.Obrona())); //14 atak zbroji strumienZapisu.WriteLine("zbrojaCena=" + Convert.ToString(Ekwipunek.posiadanaZbroja.Cena())); //15 cena zbroji strumienZapisu.WriteLine("zbrojaDrewno=" + Convert.ToString(Ekwipunek.posiadanaZbroja.Drewno())); //16 drewno zbroji strumienZapisu.WriteLine("zbrojaKamien=" + Convert.ToString(Ekwipunek.posiadanaZbroja.Kamien())); //17 kamien zbroji strumienZapisu.WriteLine("zbrojaSkora=" + Convert.ToString(Ekwipunek.posiadanaZbroja.Skora())); //18 skora zbroji strumienZapisu.WriteLine("zbrojaMetal=" + Convert.ToString(Ekwipunek.posiadanaZbroja.Metal())); //19 metal zbroji // strumienZapisu.WriteLine("domNazwa=" + Convert.ToString(Obozowisko.Dom.posiadany_dom.Nazwa())); //20 nazwa domu strumienZapisu.WriteLine("domWytrzymalosc=" + Convert.ToString(Obozowisko.Dom.posiadany_dom.Wytrzymalosc())); //21 wytrzymalosc domu strumienZapisu.WriteLine("domCena=" + Convert.ToString(Obozowisko.Dom.posiadany_dom.Cena())); //22 cena domu strumienZapisu.WriteLine("domDrewno=" + Convert.ToString(Obozowisko.Dom.posiadany_dom.Drewno())); //23 drewno domu strumienZapisu.WriteLine("domKamien=" + Convert.ToString(Obozowisko.Dom.posiadany_dom.Kamien())); //24 kamien domu strumienZapisu.WriteLine("domSkora=" + Convert.ToString(Obozowisko.Dom.posiadany_dom.Skora())); //25 skora domu strumienZapisu.WriteLine("domMetal=" + Convert.ToString(Obozowisko.Dom.posiadany_dom.Metal())); //26 metal domu // strumienZapisu.WriteLine("zycie=" + Convert.ToString(Gracz.Zycie())); //27 zycie strumienZapisu.WriteLine("energia=" + Convert.ToString(Gracz.Energia())); //28 energia strumienZapisu.WriteLine("atak=" + Convert.ToString(Gracz.Atak())); //29 atak strumienZapisu.WriteLine("obrona=" + Convert.ToString(Gracz.Obrona())); //30 obrona strumienZapisu.WriteLine("doswiadczenie=" + Convert.ToString(Gracz.Doswiadczenie())); //31 doswiadczenie strumienZapisu.WriteLine("czas=" + Convert.ToString(Gracz.czas)); //32 czas strumienZapisu.Close(); plik.Close(); komunikat.Text = "Zapisano stan gry."; }
private void AktualizujZegar(object sender, EventArgs e) { if (Gracz.czas.Hour > 3 && Gracz.czas.Hour < 6) { AtakNaObozowisko(); Gracz.czas = Gracz.czas.AddHours(3); } godzina.Text = String.Format("{0:t}", Gracz.Czas()); dzien.Text = Convert.ToString(Convert.ToInt32((Gracz.czas - Gracz.czasPoczątkowy).TotalDays + 1)); if (Gracz.CzyZyje()) { Gracz.czas = Gracz.czas.AddMinutes(1); } }
public static int[] Low() { int[] dane = new int[5]; if (Gracz.Energia() > 0) { dane[0] = 1; Random los = new Random(); dane[1] = los.Next(0, 2); Ekwipunek.ekwipunek_ilosci[0] += dane[1]; dane[2] = los.Next(30, 90); Gracz.czas = Gracz.czas.AddMinutes(dane[2]); dane[3] = los.Next(1, 3); Gracz.ZmienDoswiadczenie(dane[3]); dane[4] = los.Next(5, 15); Gracz.ZmienEnergie(-dane[4]); } else { dane[0] = 0; } return(dane); }
private void Wczytaj(object sender, RoutedEventArgs e) { if (File.Exists(nazwaPliku)) { FileStream plik = new FileStream(nazwaPliku, FileMode.Open, FileAccess.Read); StreamReader strumienOdczytu = new StreamReader(nazwaPliku); string[] linijki = strumienOdczytu.ReadToEnd().ToString().Split('\n'); string[] dane = new string[linijki.Length]; for (int i = 0; i < linijki.Length - 1; i++) { int znak = linijki[i].IndexOf('='); dane[i] = linijki[i].Substring(znak + 1); dane[i] = Regex.Replace(dane[i], "\r", string.Empty); } Gracz.UstawWartosciGracza(Convert.ToInt32(dane[27]), Convert.ToInt32(dane[28]), Convert.ToInt32(dane[0]), Convert.ToInt32(dane[29]), Convert.ToInt32(dane[30]), Convert.ToInt32(dane[31])); Ekwipunek.ekwipunek_ilosci[0] = Convert.ToInt32(dane[1]); Ekwipunek.ekwipunek_ilosci[1] = Convert.ToInt32(dane[2]); Ekwipunek.ekwipunek_ilosci[2] = Convert.ToInt32(dane[3]); Ekwipunek.ekwipunek_ilosci[3] = Convert.ToInt32(dane[4]); Ekwipunek.ekwipunek_ilosci[4] = Convert.ToInt32(dane[5]); Ekwipunek.Bron wczytanaBron = new Ekwipunek.Bron(Convert.ToString(dane[6]), Convert.ToInt32(dane[7]), Convert.ToInt32(dane[8]), Convert.ToInt32(dane[9]), Convert.ToInt32(dane[10]), Convert.ToInt32(dane[11]), Convert.ToInt32(dane[12])); Ekwipunek.posiadanaBron = wczytanaBron; Ekwipunek.Zbroja wczytanaZbroja = new Ekwipunek.Zbroja(Convert.ToString(dane[13]), Convert.ToInt32(dane[14]), Convert.ToInt32(dane[15]), Convert.ToInt32(dane[16]), Convert.ToInt32(dane[17]), Convert.ToInt32(dane[18]), Convert.ToInt32(dane[19])); Ekwipunek.posiadanaZbroja = wczytanaZbroja; Obozowisko.Dom wczytanyDom = new Obozowisko.Dom(Convert.ToString(dane[20]), Convert.ToInt32(dane[21]), Convert.ToInt32(dane[22]), Convert.ToInt32(dane[23]), Convert.ToInt32(dane[24]), Convert.ToInt32(dane[25]), Convert.ToInt32(dane[26])); Obozowisko.Dom.posiadany_dom = wczytanyDom; Gracz.czas = Convert.ToDateTime(dane[32]); strumienOdczytu.Close(); plik.Close(); AktualizujWartości(); komunikat.Text = "Wczytano stan gry."; } }
public static int[] Odpoczywaj() { int[] dane = new int[3]; if (Gracz.Energia() == 100) { dane[0] = 0; //wypoczęty - energia 100 } else { dane[0] = 1; Random los = new Random(); //czas odpoczynku musi być wprost proporcjonalny do uzyskanej energii dane[1] = los.Next(5, 20); if (dane[1] + Gracz.Energia() > 100) { dane[1] -= dane[1] + Gracz.Energia() - 100; } Gracz.ZmienEnergie(dane[1]); dane[2] = dane[1] * 4; Gracz.czas = Gracz.czas.AddMinutes(dane[2]); } return(dane); }
public static int[] Jedz() { int[] dane = new int[4]; // 0 - warunek // 0 - zycie 100 i energia 100 // 1 - zjadł // 2 - nie ma jedzenia // 1 - ile dodno życia // 2 - ile dodano energii // 3 - ile minęło czasu if (Gracz.Zycie() == 100 && Gracz.Energia() == 100) { dane[0] = 0; } else if (Ekwipunek.ekwipunek_ilosci[0] > 0) { dane[0] = 1; Random los = new Random(); Ekwipunek.ekwipunek_ilosci[0] = Ekwipunek.ekwipunek_ilosci[0] - 1; dane[1] = 10; // Ile dodać życia if (dane[1] + Gracz.Zycie() > 100) { dane[1] -= dane[1] + Gracz.Zycie() - 100; } Gracz.ZmienZycie(dane[1]); dane[2] = 10; // Ile dodać energii if (dane[2] + Gracz.Energia() > 100) { dane[2] -= dane[2] + Gracz.Energia() - 100; } Gracz.ZmienEnergie(dane[2]); dane[3] = los.Next(10, 20); Gracz.czas = Gracz.czas.AddMinutes(dane[3]); } else { dane[0] = 2; } return(dane); }
public static int[] Atak() { int[] dane = new int[8]; // 0 - czy był atak? // 0 - nie // 1 - tak // 1 - zabrane życie // 2 - zabrana energia // 3 - zabrane drewno // 4 - zabrane kamienie // 5 - zabrana skora // 6 - zabrany metal // 7 - zyskane doświadczenie Random los = new Random(); if (los.Next(0, 101) >= Obozowisko.Dom.posiadany_dom.Wytrzymalosc() * 3) { dane[0] = 1; int mocAtaku = los.Next(0, 35 - Obozowisko.Dom.posiadany_dom.Wytrzymalosc()); // od 5 do 35, zależnie od wytrzymałości domu //zycie dane[1] = los.Next(0, mocAtaku); if (Gracz.Zycie() - dane[1] < 0) { dane[1] -= Gracz.Zycie() - dane[1]; } //energia dane[2] = los.Next(0, mocAtaku); if (Gracz.Energia() - dane[2] < 0) { dane[2] -= Gracz.Energia() - dane[2]; } //drewno dane[3] = los.Next(0, mocAtaku / 2); if (Ekwipunek.ekwipunek_ilosci[1] - dane[3] < 0) { dane[3] -= dane[3] - Ekwipunek.ekwipunek_ilosci[1]; } //kamień dane[4] = los.Next(0, mocAtaku / 2); if (Ekwipunek.ekwipunek_ilosci[2] - dane[4] < 0) { dane[4] -= dane[4] - Ekwipunek.ekwipunek_ilosci[2]; } //skora dane[5] = los.Next(0, mocAtaku / 10); if (Ekwipunek.ekwipunek_ilosci[3] - dane[5] < 0) { dane[5] -= dane[5] - Ekwipunek.ekwipunek_ilosci[3]; } //metal dane[6] = los.Next(0, mocAtaku / 10); if (Ekwipunek.ekwipunek_ilosci[4] - dane[6] < 0) { dane[6] -= dane[6] - Ekwipunek.ekwipunek_ilosci[4]; } dane[7] = los.Next(0, mocAtaku / 2); Gracz.ZmienZycie(-dane[1]); Gracz.ZmienEnergie(-dane[2]); Gracz.ZmienDoswiadczenie(dane[7]); Ekwipunek.ekwipunek_ilosci[1] -= dane[3]; Ekwipunek.ekwipunek_ilosci[2] -= dane[4]; Ekwipunek.ekwipunek_ilosci[3] -= dane[5]; Ekwipunek.ekwipunek_ilosci[4] -= dane[6]; } else { dane[0] = 0; } return(dane); }