using System;
using System.Collections.Generic; //do używania stack<>
namespace ConsoleApp1
{
public class Rozgrywka
{
public delegate void PobierzImieDelegate(string imie);
public event PobierzImieDelegate pobierzImieDelegate;
public int lvl, dmg, zycie, dmg_w, zycie_w, zycie_y, dmg_y;
public string imie, ekwipunek, lokalizacja;
public Stack<string> LokalizacjeStos = new Stack<string>(); //tutaj będę przechowywać dane o aktualnej lokalizacji użytkownika, dzięki temu będę ją wyswietlać na ekranie
//---------------HERMETYZACJA - GETTERY I SETTERY-----------------
public int Lvl
{
get { return lvl; }
set { lvl = value; }
}
public int Dmg
{
get { return dmg; }
set { dmg = value; }
}
public int Zycie
{
get { return zycie; }
set { zycie = value; }
}
public int Dmg_w
{
get { return dmg_w; }
set { dmg_w = value; }
}
public int Zycie_w
{
get { return zycie_w; }
set { zycie_w = value; }
}
public int Zycie_y
{
get { return zycie_y; }
set { zycie_y = value; }
}
public int Dmg_y
{
get { return dmg_y; }
set { dmg_y = value; }
}
public string Lokalizacja
{
get { return lokalizacja; }
set { lokalizacja = value; }
}
public string Ekwipunek
{
get { return ekwipunek; }
set { ekwipunek = value; }
}
public Rozgrywka() //konstruktor klasy bazowej
{
Lvl = 1;
Dmg = 10;
Zycie = 9;
Dmg_w = 14;
Zycie_w = 8;
Zycie_y = 30;
Dmg_y = 24;
LokalizacjeStos.Push("Senna Kotlina - START"); //dodaje na stos tę wartość
Lokalizacja = LokalizacjeStos.Peek();
Ekwipunek = "Twój plecak jest pusty";
}
public void PobierzImie() //pobieranie od użytkownika imienia za pomoca delegata oraz obsługiwania wydarzenia do tego
{
//if (pobierzImieDelegate != null)
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Wpisz swój nick:");
Console.ResetColor();
this.imie = Console.ReadLine();
pobierzImieDelegate?.Invoke(this.imie);
Wybor1();
}
//---------------METODY WYWOŁUJĄCE STATYSTYKI-----------------
//--GRACZ--
public virtual void Statystyki(int lvl, int zycie, int dmg, string lokalizacja, string ekwipunek)
{
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("----------------------------------------------------------------------------------");
Console.Write(" ");
Console.BackgroundColor = ConsoleColor.DarkMagenta;
Console.Write("STATYSTYKI GRACZA - " + imie);
Console.ResetColor();
string statystyki = $" \n Twój poziom gry: {lvl} \n Twoje punkty życia: {zycie} \n Twoje punkty walki: {dmg} \n Twoja aktualna lokalizacja: {lokalizacja} \n Zawartość Twojego plecaka: {ekwipunek},"; //łańcuch interpolowany
Console.WriteLine(statystyki);
Console.WriteLine("----------------------------------------------------------------------------------");
Console.WriteLine("");
Console.WriteLine("");
}
//--WILKOŁAK--
public void Wilkolak(int dmg_w, int zycie_w)
{
this.dmg_w = dmg_w;
this.zycie_w = zycie_w;
}
public void Statystyki_w(int zycie_w, int dmg_w)
{
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("----------------------------------------------------------------------------------");
Console.ResetColor();
Console.Write(" ");
Console.BackgroundColor = ConsoleColor.Blue;
Console.Write("STATYSTYKI WILKOŁAKA");
Console.ResetColor();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Blue;
string statystyki_w = $" \n Punkty życia Wilkołaka: {zycie_w} \n Punkty walki Wilkołaka: {dmg_w}";
Console.WriteLine(statystyki_w);
Console.WriteLine("----------------------------------------------------------------------------------");
Console.ResetColor();
}
//--YETI--
public void Yeti(int dmg_y, int zycie_y)
{
this.dmg_y = dmg_y;
this.zycie_y = zycie_y;
}
public void Statystyki_y(int zycie_y, int dmg_y)
{
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("----------------------------------------------------------------------------------");
Console.ResetColor();
Console.Write(" ");
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.Write("STATYSTYKI Yetiego");
Console.ResetColor();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.DarkGray;
string statystyki_y = $" \n Punkty życia Yetiego: {zycie_y} \n Punkty walki Wilkołaka: {dmg_y}";
Console.WriteLine(statystyki_y);
Console.WriteLine("----------------------------------------------------------------------------------");
Console.ResetColor();
}
//------------WYBÓR PIERWSZEJ LOKALIZACJI------------
public void Wybor1()
{
Console.WriteLine("Stajesz przed swoim pierwszym poważnym wyborem. \n Przed Tobą znajdują się trzy ścieżki, zadecyduj, którą chcesz podążać najpierw");
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.Write("Wybierz odpowiednią cyfrę na klawiaturze: ");
Console.WriteLine();
Console.ResetColor();
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkGreen;
Console.Write(" 1 ");
Console.ResetColor();
Console.Write(" -jeśli chcesz podążać mroczną leśną ścieżką");
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.Write(" 2 ");
Console.ResetColor();
Console.Write(" -jeśli bliskie Ci wspinaczki górskie");
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkCyan;
Console.Write(" 3 ");
Console.ResetColor();
Console.Write(" -jeśli uspokaja Cię szum fal");
Console.WriteLine();
var dobrywybor1 = false; //var - domyślna zmienna
while (!dobrywybor1)
{
ConsoleKeyInfo keyInfo = Console.ReadKey();
Console.WriteLine();
if (Char.IsDigit(keyInfo.KeyChar))
{
double wybor1 = double.Parse(keyInfo.KeyChar.ToString());
if (wybor1 == 1)
{
Console.Clear();
Console.WriteLine("Wybrałeś mroczną leśną ścieżkę. Przed Tobą pierwsze wyzwanie! " + this.imie);
//LokalizacjeStos.Push("las"); //dodaję nową lokalizację na szczyt stosu
//Lokalizacja = LokalizacjeStos.Peek();
//Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Lokalizacje lokalizacje = new Lokalizacje(); // tworzenie obiektu klasy Lokalizacje
lokalizacje.ObslugaPobierzImie(imie);
lokalizacje.Las(); // wywołanie metody Las na obiekcie lokalizacje
dobrywybor1 = true;
}
else if (wybor1 == 2)
{
Console.Clear();
Console.WriteLine("Wybrałeś wspinaczki górskie. Przed Tobą pierwsze wyzwanie! " + this.imie);
LokalizacjeStos.Push("góry");
Lokalizacja = LokalizacjeStos.Peek();
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Lokalizacje lokalizacje = new Lokalizacje();
//lokalizacje.Gory();
dobrywybor1 = true;
}
else if (wybor1 == 3)
{
Console.Clear();
Console.WriteLine("Wybrałeś szum fal. Przed Tobą pierwsze wyzwanie! " + this.imie);
LokalizacjeStos.Push("morze");
Lokalizacja = LokalizacjeStos.Peek();
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Lokalizacje lokalizacje = new Lokalizacje();
//lokalizacje.Morze();
dobrywybor1 = true;
}
else
{
Console.WriteLine("Dokonałeś złego wyboru! Wybierz poprawną liczbę, aby przejść dalej:");
//wybor1 = Convert.ToDouble(Console.ReadLine());
}
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Dokonałeś złego wyboru! Wybierz poprawną liczbę, aby przejść dalej:");
Console.ResetColor();
}
}
}
//-----------DIALOGI----------
public void Rozmowa() //dla przejrzystości kodu, przerwa przed dialogiem
{
Console.WriteLine();
Console.WriteLine();
Console.Write(" ");
Console.BackgroundColor = ConsoleColor.White;
Console.ForegroundColor = ConsoleColor.Black;
Console.Write("Rozmowa");
Console.ResetColor();
Console.WriteLine();
Console.WriteLine();
}
public void Dialog(string postac, string kwestia)
{
ConsoleColor kolor;
if (postac == "Kowal")
{
kolor = ConsoleColor.Blue;
}
else if (postac == this.imie)
{
kolor = ConsoleColor.Red;
}
else
{
kolor = ConsoleColor.DarkMagenta;
}
Console.ForegroundColor = kolor;
Console.Write(postac + ": ");
Console.ResetColor();
Console.WriteLine(kwestia);
}
}
public class Lokalizacje : Rozgrywka //dziedziczenie klas
{
int licznik_lokalizacji = 0;
public string imie_lokalizacje;
public delegate void PobierzImieLokalizacjeDelegate(string imie);
public event PobierzImieLokalizacjeDelegate pobierzImieLokalizacjeDelegate;
public void ObslugaPobierzImie(string imie)
{
this.imie_lokalizacje = imie;
//Console.WriteLine(imie_lokalizacje);
pobierzImieLokalizacjeDelegate?.Invoke(imie_lokalizacje);
}
public override void Statystyki(int lvl, int zycie, int dmg, string lokalizacja, string ekwipunek)
{
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("----------------------------------------------------------------------------------");
Console.Write(" ");
Console.BackgroundColor = ConsoleColor.DarkMagenta;
Console.Write("STATYSTYKI GRACZA - " + imie_lokalizacje);
Console.ResetColor();
string statystyki = $" \n Twój poziom gry: {lvl} \n Twoje punkty życia: {zycie} \n Twoje punkty walki: {dmg} \n Twoja aktualna lokalizacja: {lokalizacja} \n Zawartość Twojego plecaka: {ekwipunek},";
Console.WriteLine(statystyki);
Console.WriteLine("----------------------------------------------------------------------------------");
Console.WriteLine("");
Console.WriteLine("");
}
public Lokalizacje() : base() //konstruktor klasy dziedziczącej
{
Lvl = 1;
Dmg = 10;
Zycie = 9;
Dmg_w = 14;
Zycie_w = 8;
Zycie_y = 30;
dmg_y = 24;
Ekwipunek = "Twój plecak jest pusty";
}
//------------WYJŚCIE Z GRY------------
public void WyjsciezGry()
{
if (licznik_lokalizacji == 10)
{
Console.WriteLine("Był_ś już w każdej lokalizacji" + imie_lokalizacje);
Console.WriteLine("Dziękujemy za grę! Mamy nadzieję, że Ci się podobało! Oto Twoje końcowe statystyki {0}: ", imie_lokalizacje);
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Console.ReadLine();
Environment.Exit(0);
}
else
{
var grawtrakcie = true;
Console.WriteLine("Pora na kolejną przygodę! Czy jesteś gotowy?");
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Naciśnij dowolny przycisk, by kontynuować, \nlub naciśnij ESC, jeśli masz dosyć przygód na dziś \ni chcesz zakończyć grę w tym miejscu, w którym aktualnie jesteś");
Console.ResetColor();
while (grawtrakcie)
{
ConsoleKeyInfo wyjscie = Console.ReadKey(true);
if (wyjscie.Key == ConsoleKey.Escape)
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Czy jesteś pewny, że chcesz zakończyć grę? Naciśnij ENTER, jeśli to Twoja ostateczna decyzja lub dowolny klawisz, by pozostać w grze");
Console.ResetColor();
ConsoleKeyInfo wyjscie_ostateczne = Console.ReadKey(true);
if (wyjscie_ostateczne.Key == ConsoleKey.Enter)
{
Console.Clear();
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine("Dziękujemy za grę!");
Console.ResetColor();
Console.WriteLine("Mamy nadzieję, że Ci się podobało! Oto Twoje końcowe statystyki {0}: ", imie_lokalizacje);
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek); //za pomoca get i set odwołujemy się do własności jak do zwykłego publicznego pola
grawtrakcie = false;
Console.ReadLine();
Environment.Exit(0);
}
else
{
Console.Clear();
Console.WriteLine("Cieszymy się, że zostajesz z nami, teraz możesz wybrać swoją kolejną lokalizację");
WyborLokalizacji();
}
}
else
{
Console.Clear();
WyborLokalizacji();
}
}
}
}
//--------------------------WYBOR KOLEJNEJ LOKALIZACJI--------------------------
public void WyborLokalizacji()
{
Console.Write("Twoja ostatnia lokalizacja: ");
if (Lokalizacja == "las")
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(Lokalizacja);
Console.ResetColor();
Console.WriteLine();
}
else if (Lokalizacja == "góry")
{
Console.ForegroundColor = ConsoleColor.Gray;
Console.Write(Lokalizacja);
Console.ResetColor();
Console.WriteLine();
}
else
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write(Lokalizacja);
Console.ResetColor();
Console.WriteLine();
}
var dobrywybor2 = false;
switch (licznik_lokalizacji)
{
case 1:
{
Console.WriteLine("Byłeś tylko w lesie.");
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Po wybraniu następnej lokalizacji wciśnij ENTER");
Console.ResetColor();
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.Write(" 2 ");
Console.ResetColor();
Console.Write(" -jeśli bliskie Ci wspinaczki górskie");
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkCyan;
Console.Write(" 3 ");
Console.ResetColor();
Console.Write(" -jeśli uspokaja Cię szum fal");
Console.WriteLine();
while (!dobrywybor2)
{
double wybor2;
if (double.TryParse(Console.ReadLine(), out wybor2)) //sprawdzamy, czy to co wpisał użytkownik można przekonwertować do double, jesli nie to wyświetlamy błąd
{
Console.WriteLine();
if (wybor2 == 2)
{
Console.WriteLine("Wybrałeś wspinaczki górskie. Przed Tobą koeljne wyzwanie! " + imie_lokalizacje);
//Gory();
dobrywybor2 = true;
}
else if (wybor2 == 3)
{
Console.WriteLine("Wybrałeś szum fal. Przed Tobą kolejne wyzwanie! " + imie_lokalizacje);
//Morze();
dobrywybor2 = true;
}
else
{
Console.WriteLine("Dokonałeś złego wyboru! Wybierz poprawną liczbę, aby przejść dalej:");
}
}
else
{
Console.WriteLine("Dokonałeś złego wyboru! Wybierz poprawną liczbę, aby przejść dalej:");
}
}
break;
}
case 2:
{
Console.WriteLine("Byłeś tylko nad morzem.");
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Po wybraniu następnej lokalizacji wciśnij ENTER");
Console.ResetColor();
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkGreen;
Console.Write(" 1 ");
Console.ResetColor();
Console.Write(" -jeśli chcesz podążać mroczną leśną ścieżką");
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.Write(" 2 ");
Console.ResetColor();
Console.Write(" -jeśli bliskie Ci wspinaczki górskie");
Console.WriteLine();
while (!dobrywybor2)
{
double wybor2;
if (double.TryParse(Console.ReadLine(), out wybor2))
{
Console.WriteLine();
if (wybor2 == 1)
{
Console.WriteLine("Wybrałeś mroczną ścieżkę. Przed Tobą kolejne wyzwanie! " + imie_lokalizacje);
Las();
dobrywybor2 = true;
}
else if (wybor2 == 2)
{
Console.WriteLine("Wybrałeś górskie wspinaczki. Przed Tobą kolejne wyzwanie! " + imie_lokalizacje);
//Gory();
dobrywybor2 = true;
}
else
{
Console.WriteLine("Dokonałeś złego wyboru! Wybierz poprawną liczbę, aby przejść dalej:");
}
}
else
{
Console.WriteLine("Dokonałeś złego wyboru! Wybierz poprawną liczbę, aby przejść dalej:");
}
}
break;
}
case 3:
{
Console.WriteLine("Byłeś nad morzem i w lesie. Pozostają Ci tylko góry, {0}!", imie_lokalizacje);
//Gory();
break;
}
case 7:
{
Console.WriteLine("Byłeś tylko w górach.");
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Po wybraniu następnej lokalizacji wciśnij ENTER");
Console.ResetColor();
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkGreen;
Console.Write(" 1 ");
Console.ResetColor();
Console.Write(" -jeśli chcesz podążać mroczną leśną ścieżką");
Console.WriteLine();
Console.BackgroundColor = ConsoleColor.DarkCyan;
Console.Write(" 3 ");
Console.ResetColor();
Console.Write(" -jeśli uspokaja Cię szum fal");
Console.WriteLine();
while (!dobrywybor2)
{
double wybor2;
if (double.TryParse(Console.ReadLine(), out wybor2))
{
Console.WriteLine();
if (wybor2 == 1)
{
Console.WriteLine("Wybrałeś mroczną ścieżkę. Przed Tobą kolejne wyzwanie! " + imie_lokalizacje);
dobrywybor2 = true;
}
else if (wybor2 == 3)
{
Console.WriteLine("Wybrałeś szum fal. Przed Tobą kolejne wyzwanie! " + imie_lokalizacje);
dobrywybor2 = true;
}
else
{
Console.WriteLine("Dokonałeś złego wyboru! Wybierz poprawną liczbę, aby przejść dalej:");
}
}
else
{
Console.WriteLine("Dokonałeś złego wyboru! Wybierz poprawną liczbę, aby przejść dalej:");
}
}
break;
}
case 8:
{
Console.WriteLine("Byłeś w lesie i w górach. Pozostaje Ci tylko morze, {0}!", imie_lokalizacje);
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
//Morze();
break;
}
case 9:
{
Console.WriteLine("Byłeś nad morzem i w górach. Pozostają Ci tylko las, {0}!", imie_lokalizacje);
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Las();
break;
}
}
}
//--------------------------LAS--------------------------
public void Las()
{
Console.Clear();
LokalizacjeStos.Push("las"); //dodaję nową lokalizację na szczyt stosu
Lokalizacja = LokalizacjeStos.Peek();
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
licznik_lokalizacji++;
Console.Write(" ");
Console.BackgroundColor = ConsoleColor.DarkGreen;
Console.ForegroundColor = ConsoleColor.Gray;
Console.Write("LAS");
Console.ResetColor();
Console.ResetColor();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Witaj w mrocznym lesie, gdzie ciemność i tajemnica splatają się w gęstej koronie drzew.\nTo miejsce pełne legend i opowieści, które od dawna przerażają serca śmiałków.\nKażdy krok może prowadzić do nieznanych przepaści, a złowrogie dźwięki i szepty wokół sprawiają, że włosy stają dęba.");
Console.WriteLine("\nLas jest obfity w leśne przysmaki! \nNa wejściu znajdujesz ciekawą roślinę - tojad.");
Console.BackgroundColor = ConsoleColor.DarkYellow;
Console.ForegroundColor = ConsoleColor.Black;
Console.WriteLine("Czy chcesz podnieść tojad?");
Console.ResetColor();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Napisz TAK, jeśli chcesz zabrać ze sobą tojad");
Console.ResetColor();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("W przeciwnym wypadku napisz NIE");
Console.ResetColor();
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("\nUWAGA! Stajesz przed swoim pierwszym wyborem w mrocznym lesie! \nPamiętaj, że każda decyzja ma ogromne znaczenie!");
Console.ResetColor();
string wybor2;
var dobrywybor2 = false;
while (!dobrywybor2)
{
wybor2 = Console.ReadLine().ToLower();
Console.WriteLine();
if (wybor2 == "tak")
{
Console.Clear();
Console.WriteLine("Postanowił_ś podnieść tajemniczną roślinę " + imie_lokalizacje);
if (Ekwipunek.Contains("pusty"))
Ekwipunek = "tojad ";
else
Ekwipunek += "tojad ";
Console.WriteLine("Zawartość Twojego plecaka: " + Ekwipunek);
dobrywybor2 = true;
}
else if (wybor2 == "nie")
{
Console.Clear();
Console.WriteLine("Postanowił_ś nie zabierać ze sobą tojadu!" + imie_lokalizacje);
Console.WriteLine("Zawartość Twojego plecaka: " + Ekwipunek);
dobrywybor2 = true;
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Dokonałeś złego wyboru! Wpisz TAK lub NIE, by dokonać wyboru");
Console.ResetColor();
}
}
Rozmowa();
Console.WriteLine("\nPodczas przechadzki po lesie zauważasz małą chatkę, a obok niej nieznajomą postać.\nPostanawiasz podejść bliżej i się przywitać.\n");
Dialog("Kowal", "Witaj w mrocznym lesie, podróżniku! W czym mogę Ci pomoć?\n ");
Dialog(imie_lokalizacje, "Witaj! Wędruję przez las, szukając przygód i tajemnic. Czy masz jakieś porady dla mnie?\n");
Dialog("Kowal", "Nazywam się Edward i jestem lokalnym kowalem.\nJako kuźnik jestem pochłonięty sztuką kowalstwa oraz tworzeniem unikatowych oraz fukcjonalnych przedmiotów. \nMyślę, że to może Cię zainteresować. Mam dla Ciebie szybką zagadkę.\nJeśli ją rozwiążesz, może wytworzę dla Ciebie przydatną broń. \nZainteresowany?");
Console.ForegroundColor = ConsoleColor.Black;
Console.WriteLine("\nWybór:");
Console.ResetColor();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Jeżeli jesteś zainteresowany wciśnij dowolny przycik na klawiaturze, aby usłyszeć zagadkę kowala.");
Console.ResetColor();
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.WriteLine("Jeżeli nie chcesz rozwiązywać zagadki wciśnij ESC");
Console.ResetColor();
ConsoleKeyInfo zagadka = Console.ReadKey(true);
if (zagadka.Key == ConsoleKey.Escape)
{
Console.Clear();
WalkazWilkiem();
}
else
{
Console.Clear();
Console.BackgroundColor = ConsoleColor.DarkBlue;
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine("ZAGADKA OD KOWALA");
Console.ResetColor();
Console.WriteLine("Co ma korzenie, ale nie rośnie? \nMoże być gorące lub zimne. \nJest wykorzystywane przez wielu ludzi. \nCo to jest?");
Console.WriteLine("1 - Woda \n2 - Drzewo \n3 - Elektryczność \n4 - Kawa");
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Wybierz odpowiedź, wpisując jedną z podanych powyżej cyfr");
Console.ResetColor();
double wybor3;
var dobrywybor3 = false;
while (!dobrywybor3)
{
ConsoleKeyInfo keyInfo = Console.ReadKey();
Console.WriteLine();
if (Char.IsDigit(keyInfo.KeyChar))
{
wybor3 = double.Parse(keyInfo.KeyChar.ToString());
if (wybor3 == 3)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Clear();
Console.WriteLine("Super {0}, odpowiedział_ś poprawnie na zagadkę. \nWchodzisz na nowy level!");
Console.WriteLine("Elektryczność ma swoje korzenie w zjawisku elektrycznym, ale sama w sobie nie rośnie. \nMoże być zarówno gorąca, jak i zimna, w zależności od zastosowania. \nJest szeroko wykorzystywana przez wielu ludzi w różnych dziedzinach życia");
Console.ResetColor();
Lvl++;
if (Ekwipunek.Contains("tojad"))
{
Console.WriteLine("Ponadto w swoim ekwipunku posiadał_ś tojad, \ndzięki temu Kowal mógł wytworzyć śmiercionośną broń!");
if (Ekwipunek.Contains("pusty"))
Ekwipunek = "włócznia ";
else
Ekwipunek += "włócznia ";
}
dobrywybor3 = true;
}
else
{
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.Clear();
Console.WriteLine("Niestety {0}, odpowiedział_ś źle, musimy Ci odebrać 5 punktów walki", imie_lokalizacje);
Console.WriteLine("Poprawna odpowiedź to - elektrycznośc");
Console.WriteLine("Elektryczność ma swoje korzenie w zjawisku elektrycznym, ale sama w sobie nie rośnie. \nMoże być zarówno gorąca, jak i zimna, w zależności od zastosowania. \nJest szeroko wykorzystywana przez wielu ludzi w różnych dziedzinach życia");
Console.ResetColor();
Dmg -= 5;
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Console.WriteLine("Pomimo to, nie poddawaj się!! Musimy ruszać dalej!");
dobrywybor3 = true;
}
}
}
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Wcisnij dowolny przycisk aby przejść dalej");
Console.ResetColor();
Console.ReadKey();
Console.Clear();
RozmowaWilk();
Console.WriteLine();
Console.ForegroundColor= ConsoleColor.DarkGray;
Console.WriteLine("Wcisnij dowolny przycisk, aby stanąć do Walki z wilkolakiem");
Console.ResetColor();
Console.ReadKey();
Console.Clear();
WalkazWilkiem();
}
}
public void RozmowaWilk()
{
Rozmowa();
Console.WriteLine("Żegnasz się z kowalem i wyruszasz w dalszą drogę.\nNie zdajesz sobie sprawy, że w zakamarkach lasu czyha na Ciebie niebezpieczeństwo...");
Dialog(imie_lokalizacje, "Edward! Muszę się już żegnać. Nadszedł czas, aby kontynuować moją podróż\n");
Dialog("Kowal", "Och, to smutne wieści. Jednak rozumiem, że podróżnicy mają swoje własne cele i tęsknią za dalekimi miejscami.\nDo zobaczenia i pamiętaj, że zawsze będziesz mile widziany w moim domu!");
Dialog(imie_lokalizacje, "Jeszcze raz dziękuje za miłą rozmowę! Do zobaczenia!\n");
Console.WriteLine("Wyruszyłeś dalej w przygodę.\nPodczas swojej wędrówki w pewnym momęcie poczuł_ś niepokój. \nNagle zauważył_ś świecące oczy oraz ostre jak brzytwa kły, wyłaniające się zza zarośli!");
Console.WriteLine("Zamarł_ś na chwilę, czując, jak adrenalina przepływa przez Twoje żyły.\nGdy spojrzał_ś w żarzące się oczy wilka, wiedział_ś, że musisz działać szybko.");
Console.WriteLine("Niestety nie było żadnej drogi ucieczki, więc musiał_ś stanąć do walki z bestią\n");
}
public void WalkazWilkiem()
{
if (Ekwipunek.Contains("włócznia"))
{
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Wciśnij SPACJĘ, aby rzucić włócznią w wilkołaka");
Console.ResetColor();
ConsoleKeyInfo klawisz = Console.ReadKey(true);
if (klawisz.Key == ConsoleKey.Spacebar)
{
double szansaTrafienia = new Random().NextDouble();
if (szansaTrafienia <= 2)
{
Console.Clear();
Zycie_w = 0;
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Udało Ci się pokonać wilkołaka, w nagrodzę dostajesz 4 punkty życia i wchodzisz poziom wyżej. Gratulacje {0}", imie_lokalizacje);
Console.WriteLine("Niestety podczas walki włócznia się złamała.");
Zycie += 4;
Lvl++;
Console.ResetColor();
Ekwipunek = Ekwipunek.Replace("włócznia", "");
if (String.IsNullOrEmpty(Ekwipunek))
{
Ekwipunek = "Twój plecak jest pusty";
}
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Statystyki_w(Zycie_w, Dmg_w);
WyjsciezGry();
}
else
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Niestety trafiłeś włócznią w drzewo, jedyne co Ci pozostało to walka ręczna");
Console.ResetColor();
Ekwipunek = Ekwipunek.Replace("włócznia", "");
if (String.IsNullOrEmpty(Ekwipunek))
{
Ekwipunek = "Twój plecak jest pusty";
}
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
WalkazWilkiem();
}
}
else
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Niestety trafiłeś włócznią w drzewo, jedyne co Ci pozostało to walka ręczna");
Console.ResetColor();
Ekwipunek = Ekwipunek.Replace("włócznia", "");
if (String.IsNullOrEmpty(Ekwipunek))
{
Ekwipunek = "Twój plecak jest pusty";
}
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
WalkazWilkiem();
}
}
else
{
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Musisz stoczyć walkę z wilkołakiem, klikaj SPACJĘ, by zadawać mu ciosy"); //DODAJCIE DO WALKI Z WILKOŁAKIEM ZMIENIANIE POZIOMÓW NA NIŻSZY ITD.
Console.ResetColor();
while (Zycie_w > 0 && Zycie > 0 && Dmg > 0 && Dmg_w > 0)
{
ConsoleKeyInfo keyInfo = Console.ReadKey(true);
if (keyInfo.Key == ConsoleKey.Spacebar)
{
if (Dmg > 0)
{
Zycie_w--;
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.WriteLine("Zadajesz obrażenia wilkołakowi! Pozostałe punkty życia wilkołaka: " + Zycie_w);
Console.ResetColor();
}
if (Dmg_w > 0)
{
Zycie--;
Dmg_w = Dmg_w - 1;
Console.ForegroundColor = ConsoleColor.DarkBlue;
Console.WriteLine("Wilkołak zadał Ci obrażenia! Twoje pozostałe punkty życia: " + Zycie);
Console.ResetColor();
}
}
}
if (Zycie_w <= 0 && (Zycie > 0 && Dmg >= 0))
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Wilkołak stracił wszystkie punkty życia! Dzięki temu wchodzisz na wyższy poziom ");
Console.ResetColor();
Lvl++;
Console.ForegroundColor= ConsoleColor.DarkGray;
Console.WriteLine("Oto statystyki Twoje, {0} oraz Twojego przeciwnika: ", imie_lokalizacje);
Console.ResetColor();
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Statystyki_w(Zycie_w, Dmg_w);
Console.WriteLine("W nagrode dostajesz: ");
WyjsciezGry();
}
else if ((Zycie_w > 0 && Dmg_w >= 0) && Zycie <= 0)
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Wilkołak Cię pokonał! Oto statystyki Twoje, {0} oraz Twojego przeciwnika: ", imie_lokalizacje);
Console.ResetColor();
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Statystyki_w(Zycie_w, Dmg_w);
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.WriteLine("GAME OVER");
Console.ResetColor();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Wciśnij dowolny przycisk, aby opuścić grę");
Console.ResetColor();
Console.ReadKey();
Environment.Exit(0);
}
else if ((Zycie_w >= 0 && Zycie >= 0) || (Dmg <= 0 && Dmg_w <= 0))
{
Console.Clear();
Lvl--;
Console.WriteLine("Nie udało Ci się go pokonać, spadasz na niższy lvl. Ważne, że uszedłeś z życiem! Ruszaj w dalszą podróż!");
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Oto statystyki Twoje {0} oraz Twojego przeciwnika: ", imie_lokalizacje);
Console.ResetColor();
Statystyki(Lvl, Zycie, Dmg, Lokalizacja, Ekwipunek);
Statystyki_w(Zycie_w, Dmg_w);
WyjsciezGry();
}
}
}
class Program
{
static void Main(string[] args)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine("PRZYGODY W SENNEJ KOTLINIE");
Console.ResetColor();
Console.WriteLine("Witam w Sennej Kotlinie");
Console.WriteLine("Dzisiaj stoczysz walkę dobra ze złem, próbując uratować mieszkańców Sennej Kotliny, \nna których czyhają przerażające potwory. \nPamiętaj, że każdy wybór ma swoje konsekwencje, a czasu nie można cofnąć. \nSłuchaj swojej intuicji, ale również nie zapominaj o logicznym myśleniu. \nPoza tym baw się dobrze i nie daj się pożreć!");
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Na sam początek podaj nam swój nick,\ndzięki temu będziemy wiedzieć, jak się do Ciebie zwracać przez całą grę!");
Console.ResetColor();
Rozgrywka ustawienia = new Rozgrywka();
Lokalizacje lokalizacje = new Lokalizacje();
ustawienia.pobierzImieDelegate += (imie) =>
{
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("Ustawiłeś swój nick na: " + imie);
Console.ResetColor();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Cześć {0}!", imie);
Console.ResetColor();
lokalizacje.ObslugaPobierzImie(imie);
};
ustawienia.pobierzImieDelegate += lokalizacje.ObslugaPobierzImie;
ustawienia.PobierzImie();
Console.ReadKey();
}
}
}
}