예제 #1
0
 /// <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);
 }
예제 #2
0
 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();
 }
예제 #3
0
 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();
     }
 }
예제 #4
0
 /// <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);
 }
예제 #5
0
 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);
 }
예제 #6
0
 public MainWindow()
 {
     InitializeComponent();
     WysrodkujOkno();
     UruchomZegar();
     Gracz.InicjalizacjaGracza();
     ZaladujSklep();
     AktualizujWartości();
     komunikat.Text = "Witaj w grze The Forest!";
 }
예제 #7
0
 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();
 }
예제 #8
0
        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.";
        }
예제 #9
0
 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);
     }
 }
예제 #10
0
 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);
 }
예제 #11
0
        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.";
            }
        }
예제 #12
0
 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);
 }
예제 #13
0
 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);
 }
예제 #14
0
            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);
            }