public Twoja_Chata(Bohater bohater, Ekwipunek plecak, Bron bron, Pancerz pancerz) { int indeks = 0; bool wyjdz = false; Console.SetCursorPosition(145, 31); Console.Write("Tu możesz odpocząc"); Console.SetCursorPosition(145, 32); Console.Write("zregenerować się przed"); Console.SetCursorPosition(145, 33); Console.Write("następną walką. I ma tu"); Console.SetCursorPosition(145, 34); Console.Write("na myśli życie "); Console.SetCursorPosition(145, 35); Console.Write("i wytrzymałość."); Console.SetCursorPosition(145, 36); Console.Write("Ot tak za darmo!. :D"); Console.SetCursorPosition(145, 37); Console.Write("A i możesz tu zapisać grę"); Console.SetCursorPosition(145, 38); Console.Write("jak coś."); Ramka.Rysuj_ramke(90, 18, 17, 47); bohater.Regeneracja_zycia(1000); bohater.Regeneracja_staminy(1000); do { for (int i = 0; i < 15; i++) { Console.SetCursorPosition(91, 19 + i); Console.WriteLine(" "); } Console.SetCursorPosition(105, 22); Console.Write("Chcesz Zapisać grę"); Ramka.Rysuj_ramke(108, 24, 6, 9); Menu menu = new Menu(2); menu.UstawElement(" Tak ", 0); menu.UstawElement(" Nie ", 1); menu.Dzialaj(111, 26); indeks = menu.Indeks_wybranego; switch (indeks) { case 0: { Zapisz zapisz = new Zapisz(bohater, plecak); break; } case 1: { wyjdz = true; break; } default: break; } } while (wyjdz == false); }
public Walka(Bohater bohater, Ekwipunek plecak, Bron bron, Pancerz pancerz) { Random rand = new Random(); ConsoleKeyInfo k = new ConsoleKeyInfo(); int pozycja_kursora_Logu = 6; int odliczanie_do_ataku = 0; int czyszczenie_informacji = 0; bool czy_czyslcimy = false; bool czy_atak_gracza = false; bool czy_atak = false; bool czy_konczymy = false; int Szansa_na_atak = 0; int Szansa_na_zmiane_obrony = 0; string[] kierunek = { "góra", "dół", "lewo", "prawo" }; bool czy_lecimy_dalej = false; int poziom = 1; string kierunek_ataku_potwora = "góra", kierunek_bez_obrony_potwora = "góra"; string kierunek_obrony_gracza = "góra", kierunek_ataku_gracza = "góra"; do { Console.Clear(); Potwor potwor = generuj_potwora(poziom); Rysuj_interface(bohater, potwor, bron, pancerz, plecak); while ((bohater.Czy_Zyje == true && potwor.Czy_zyje == true) && czy_konczymy == false) { if (Console.KeyAvailable) { k = Console.ReadKey(); if (k.Key == ConsoleKey.Escape) { czy_konczymy = true; } else if (k.Key == ConsoleKey.W || k.Key == ConsoleKey.S || k.Key == ConsoleKey.A || k.Key == ConsoleKey.D) { switch (k.Key) { case ConsoleKey.W: Wskaznik_ataku.czyszczenie_wskazania_wewn_gracza(35, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("", "góra", 35, 20, 7); kierunek_obrony_gracza = "góra"; break; case ConsoleKey.S: Wskaznik_ataku.czyszczenie_wskazania_wewn_gracza(35, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("", "dół", 35, 20, 7); kierunek_obrony_gracza = "dół"; break; case ConsoleKey.A: Wskaznik_ataku.czyszczenie_wskazania_wewn_gracza(35, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("", "lewo", 35, 20, 7); kierunek_obrony_gracza = "lewo"; break; case ConsoleKey.D: Wskaznik_ataku.czyszczenie_wskazania_wewn_gracza(35, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("", "prawo", 35, 20, 7); kierunek_obrony_gracza = "prawo"; break; } } else if (k.Key == ConsoleKey.UpArrow || k.Key == ConsoleKey.DownArrow || k.Key == ConsoleKey.LeftArrow || k.Key == ConsoleKey.RightArrow) { switch (k.Key) { case ConsoleKey.UpArrow: Wskaznik_ataku.czyszczenie_wskazania_zewn(105, 20, 7); Wskaznik_ataku.Wskazanie_potwora("góra", "", 105, 20, 7); if (bohater.Stamina >= bron.Zmeczenie - pancerz.Bonus_staminy) { kierunek_ataku_gracza = "góra"; bohater.Zmecznie(bron.Zmeczenie - pancerz.Bonus_staminy); czy_atak_gracza = true; } else { Console.SetCursorPosition(95, 29); Console.Write("Jesteś zbyt wyczerpany!"); czy_czyslcimy = true; } break; case ConsoleKey.DownArrow: Wskaznik_ataku.czyszczenie_wskazania_zewn(105, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("dół", "", 105, 20, 7); if (bohater.Stamina >= bron.Zmeczenie - pancerz.Bonus_staminy) { kierunek_ataku_gracza = "dół"; bohater.Zmecznie(bron.Zmeczenie - pancerz.Bonus_staminy); czy_atak_gracza = true; } else { Console.SetCursorPosition(95, 29); Console.Write("Jesteś zbyt wyczerpany!"); czy_czyslcimy = true; } break; case ConsoleKey.LeftArrow: Wskaznik_ataku.czyszczenie_wskazania_zewn(105, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("lewo", "", 105, 20, 7); if (bohater.Stamina >= bron.Zmeczenie - pancerz.Bonus_staminy) { kierunek_ataku_gracza = "lewo"; bohater.Zmecznie(bron.Zmeczenie - pancerz.Bonus_staminy); czy_atak_gracza = true; } else { Console.SetCursorPosition(95, 29); Console.Write("Jesteś zbyt wyczerpany!"); czy_czyslcimy = true; } break; case ConsoleKey.RightArrow: Wskaznik_ataku.czyszczenie_wskazania_zewn(105, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("prawo", "", 105, 20, 7); if (bohater.Stamina >= bron.Zmeczenie - pancerz.Bonus_staminy) { kierunek_ataku_gracza = "prawo"; bohater.Zmecznie(bron.Zmeczenie - pancerz.Bonus_staminy); czy_atak_gracza = true; } else { Console.SetCursorPosition(95, 29); Console.Write("Jesteś zbyt wyczerpany!"); czy_czyslcimy = true; } break; } } else if (k.Key == ConsoleKey.Spacebar) { if (plecak.Ile_potionow > 0) { Console.SetCursorPosition(20, 29); Console.Write(" "); Console.SetCursorPosition(28, 29); Console.Write("Używasz Potiona"); czy_czyslcimy = true; bohater.Regeneracja_zycia(40); plecak.minus_potion(); } else { Console.SetCursorPosition(20, 29); Console.Write(" "); Console.SetCursorPosition(28, 29); Console.Write("Nie masz Potionów"); czy_czyslcimy = true; } } else { } } if (Szansa_na_zmiane_obrony > rand.Next(5, 95)) { kierunek_bez_obrony_potwora = kierunek[rand.Next(0, 4)]; switch (kierunek_bez_obrony_potwora) { case "góra": { Wskaznik_ataku.Wskazanie_potwora("", "góra", 105, 20, 7); Szansa_na_zmiane_obrony = 0; break; } case "dół": { Wskaznik_ataku.Wskazanie_potwora("", "dół", 105, 20, 7); Szansa_na_zmiane_obrony = 0; break; } case "lewo": { Wskaznik_ataku.Wskazanie_potwora("", "lewo", 105, 20, 7); Szansa_na_zmiane_obrony = 0; break; } case "prawo": { Wskaznik_ataku.Wskazanie_potwora("", "prawo", 105, 20, 7); Szansa_na_zmiane_obrony = 0; break; } default: break; } } if (Szansa_na_atak > rand.Next(1, 100)) { kierunek_ataku_potwora = kierunek[rand.Next(0, 4)]; switch (kierunek_ataku_potwora) { case "góra": { Wskaznik_ataku.czyszczenie_wskazania_zewn(35, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("góra", "", 35, 20, 7); Szansa_na_atak = 0; czy_atak = true; break; } case "dół": { Wskaznik_ataku.czyszczenie_wskazania_zewn(35, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("dół", "", 35, 20, 7); Szansa_na_atak = 0; czy_atak = true; break; } case "lewo": { Wskaznik_ataku.czyszczenie_wskazania_zewn(35, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("lewo", "", 35, 20, 7); Szansa_na_atak = 0; czy_atak = true; break; } case "prawo": { Wskaznik_ataku.czyszczenie_wskazania_zewn(35, 20, 7); Wskaznik_ataku.Wskazanie_Gracza("prawo", "", 35, 20, 7); Szansa_na_atak = 0; czy_atak = true; break; } default: break; } } if (Szansa_na_atak < 100) { Szansa_na_atak += 1; } else { Szansa_na_atak = 100; } if (Szansa_na_zmiane_obrony < 100) { Szansa_na_zmiane_obrony += 10; } else { Szansa_na_zmiane_obrony = 100; } if (czy_atak == true) { Szansa_na_atak = 0; if (kierunek_ataku_potwora != kierunek_obrony_gracza) { odliczanie_do_ataku++; if (odliczanie_do_ataku >= 16) { if (pancerz.Zycie_pancerza > 0) { pancerz.Obrażenia_pancerza(potwor.Obrazenia); } else { bohater.Zadane_obrazenia(potwor.Obrazenia); } odliczanie_do_ataku = 0; czy_atak = false; Console.SetCursorPosition(20, 29); Console.Write(" "); Console.SetCursorPosition(28, 29); Console.Write("Obrona Nieudana!"); czy_czyslcimy = true; Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("{0} {1} atakuje", potwor.Typ, potwor.Nazwa); Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("Obrywasz za {0}!", potwor.Obrazenia); Console.SetCursorPosition(144, pozycja_kursora_Logu++); } } else { odliczanie_do_ataku = 0; czy_atak = false; Console.SetCursorPosition(20, 29); Console.Write(" "); Console.SetCursorPosition(28, 29); Console.Write("Obrona Udana!"); czy_czyslcimy = true; Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("{0} {1} atakuje", potwor.Typ, potwor.Nazwa); Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("Bronisz się!"); Console.SetCursorPosition(144, pozycja_kursora_Logu++); } } if (czy_atak_gracza == true) { if (kierunek_ataku_gracza == kierunek_bez_obrony_potwora) { Console.SetCursorPosition(90, 29); Console.Write(" "); Console.SetCursorPosition(98, 29); Console.Write("Atak Udany!"); czy_czyslcimy = true; potwor.Zadane_obrazenia(bron.Obrazenia_goly); Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("Twój atak ominął gardę"); Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("Zadajesz {0} obrażeń", bron.Obrazenia_goly); Console.SetCursorPosition(144, pozycja_kursora_Logu++); } else { if (bron.Obrazenia_zasloniety > 0) { Console.SetCursorPosition(90, 29); Console.Write(" "); Console.SetCursorPosition(94, 29); Console.Write("Atak w gardę Udany!"); czy_czyslcimy = true; potwor.Zadane_obrazenia(bron.Obrazenia_zasloniety); Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("Twój atak rozbił gardę"); Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("Zadajesz {0} obrażeń", bron.Obrazenia_zasloniety); Console.SetCursorPosition(144, pozycja_kursora_Logu++); } else { Console.SetCursorPosition(90, 29); Console.Write(" "); Console.SetCursorPosition(96, 29); Console.Write("Atak Sparowany!"); czy_czyslcimy = true; Console.SetCursorPosition(144, pozycja_kursora_Logu++); Console.Write("Twój atak nie przeszedł gardy"); Console.SetCursorPosition(144, pozycja_kursora_Logu++); } } } if (czy_czyslcimy == true) { if (czyszczenie_informacji >= 8) { Console.SetCursorPosition(20, 29); Console.Write(" "); Console.SetCursorPosition(90, 29); Console.Write(" "); czyszczenie_informacji = 0; czy_czyslcimy = false; } else { czyszczenie_informacji++; } } if (pozycja_kursora_Logu >= 35) { for (int i = 0; i < 30; i++) { Console.SetCursorPosition(141, 6 + i); Console.WriteLine(" "); pozycja_kursora_Logu = 6; } } Pasek_postepu.pasek(4, 6, 1, 60, 0, Convert.ToDouble(bohater.Max_stamina), Convert.ToDouble(bohater.Stamina), 1); Pasek_postepu.pasek(4, 3, 1, 38, 0, Convert.ToDouble(bohater.Max_zycie), Convert.ToDouble(bohater.Zycie), 1); Pasek_postepu.pasek(54, 3, 1, 10, 0, Convert.ToDouble(pancerz.Bonus_zycia), Convert.ToDouble(pancerz.Zycie_pancerza), 1); Pasek_postepu.pasek(75, 3, 2, 58, 0, Convert.ToDouble(potwor.Max_zycie), Convert.ToDouble(potwor.Zycie), 2); bohater.Regeneracja_staminy(0.25); czy_atak_gracza = false; System.Threading.Thread.Sleep(125); } if (potwor.Czy_zyje == false) { pozycja_kursora_Logu = 6; lup = lup + potwor.Kasa; poziom++; Console.Clear(); Ramka.Rysuj_ramke(60, 12, 15, 60); Console.SetCursorPosition(75, 20); Console.Write("Gotory na następnego potwora?"); Console.SetCursorPosition(75, 22); Console.Write("TAK [ENTER] DO MIASTA [ESC]"); k = Console.ReadKey(); if (k.Key == ConsoleKey.Enter) { czy_lecimy_dalej = true; } if (k.Key == ConsoleKey.Escape) { Console.Clear(); Ramka.Rysuj_ramke(60, 12, 15, 60); Console.SetCursorPosition(82, 16); Console.Write("Wracasz do miasta"); Console.SetCursorPosition(85, 18); Console.Write("ZEBRANY ŁUP"); Console.SetCursorPosition(90 - (Convert.ToString(lup).Length / 2), 20); Console.Write(lup); plecak.Zysk(lup); czy_lecimy_dalej = false; } } if (bohater.Czy_Zyje == false) { Console.Clear(); Ramka.Rysuj_ramke(60, 12, 15, 60); Console.SetCursorPosition(85, 16); Console.Write("!!NIE ŻYJESZ!!"); Console.SetCursorPosition(70, 18); Console.Write("ZOSTAJEZ ZABRANY DO MIASTA I WSKRZESZONY"); Console.SetCursorPosition(78, 20); Console.Write("TRACISZ CAŁY ZEBRANY ŁUP"); Console.SetCursorPosition(90 - (Convert.ToString(lup).Length / 2), 22); Console.Write(lup); Console.ReadKey(); czy_lecimy_dalej = false; } if (czy_konczymy == true) { Console.Clear(); Ramka.Rysuj_ramke(60, 12, 15, 60); Console.SetCursorPosition(82, 16); Console.Write("Wracasz do miasta"); Console.SetCursorPosition(85, 18); Console.Write("ZEBRANY ŁUP"); Console.SetCursorPosition(90 - (Convert.ToString(lup).Length / 2), 20); Console.Write(lup); plecak.Zysk(lup); czy_lecimy_dalej = false; } }while (czy_lecimy_dalej == true); Console.ReadKey(); }