예제 #1
0
        static public void Taidonnosto()
        {
            Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");

            Console.Clear();
            ConsoleKeyInfo nappiInfo;

            do
            {
                Console.Clear();

                Console.WriteLine("\nValitse nostettava taito: \n1) STR {0} \n2) DEX {1} \n3) DEF {2}", pelaaja.Str, pelaaja.Dex, pelaaja.Def);
                nappiInfo = Console.ReadKey(true);
                if (nappiInfo.Key == ConsoleKey.D2)
                {
                    break;
                }
                if (nappiInfo.Key == ConsoleKey.D3)
                {
                    break;
                }
            } while (nappiInfo.Key != ConsoleKey.D1);
            if (nappiInfo.Key == ConsoleKey.D1)
            {
                Console.Clear();
                pelaaja.Str++;
                Console.WriteLine("\nVoimaa nostettu.");
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("   STR {0}", pelaaja.Str);
                Console.ResetColor();
                Console.WriteLine("   DEX {0}\n   DEF {1}", pelaaja.Dex, pelaaja.Def);
            }
            if (nappiInfo.Key == ConsoleKey.D2)
            {
                Console.Clear();
                pelaaja.Dex++;
                Console.WriteLine("\nNopeutta nostettu");

                Console.WriteLine("   STR {0}", pelaaja.Str);
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("   DEX {0}", pelaaja.Dex);
                Console.ResetColor();
                Console.WriteLine("   DEF {0}", pelaaja.Def);
            }
            if (nappiInfo.Key == ConsoleKey.D3)
            {
                Console.Clear();
                pelaaja.Def++;
                pelaaja.LisääHptä(pelaaja.Def, pelaaja.Hp, pelaaja.MaxHp);
                Console.WriteLine("\nPuolustusta nostettu");
                Console.WriteLine("   STR {0}\n   DEX {1}", pelaaja.Str, pelaaja.Dex);
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("   DEF {0}", pelaaja.Def);
                Console.ResetColor();
            }
            System.Threading.Thread.Sleep(400);
        }
예제 #2
0
        public static void LuoUusiPelaaja()
        {
            Areenalista.Add(new Pelaaja("Pelaaja", 5, 1, 1, 1, 5));
            Hahmo pelaaja = Areenalista.Find(item => item.Nimi == "Pelaaja");

            pelaaja.LisääHptä(pelaaja.Def, pelaaja.Hp, pelaaja.MaxHp);
        }
예제 #3
0
        static public void SaaTavara(string tavara)
        {
            Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");

            Random arvonta = new Random();
            int    arpaNro = arvonta.Next(1, 11);

            if (pelaaja.Dex >= arpaNro)
            {
                Console.Clear();
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("Löysit {0}n.", tavara);
                if (tavara == "Pommi")
                {
                    Tavaralista.Add(new Tavara("Pommi"));
                }
                if (tavara == "Juoma")
                {
                    Tavaralista.Add(new Tavara("Juoma"));
                }
                Console.ResetColor();
            }
            else
            {
                //Console.Clear();
                //Console.WriteLine("Et löytänyt mitään ({0} vs. {1})", pelaaja.Dex, arpaNro);
            }

            System.Threading.Thread.Sleep(600);
        }
예제 #4
0
        public static void VihollisenVuoro(Hahmo vihollinen)
        {
            Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");

            try
            {
                if (pelaaja.Kuollut == false)
                {
                    Console.Clear();

                    if (Areena.Areenalista.Contains(vihollinen))
                    {
                        //Console.WriteLine("Vuorossa {0}", vihollinen.Nimi);

                        if (pelaaja.Väistä() == false)
                        {
                            pelaaja.MenetäHPtä(vihollinen.Hyökkää(pelaaja, vihollinen));
                            Console.WriteLine("\n\n...");
                            Console.ReadKey(true);
                        }
                        else
                        {
                            Console.WriteLine("{0} hyökkäsi, pelaaja väisti.", vihollinen.Nimi);
                            System.Threading.Thread.Sleep(900);
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
예제 #5
0
        public void LaskePuolustus()
        {
            Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");

            Def            = Def - puolustusDef;
            Dex            = Dex - 1;
            Puolustautunut = false;
            Tagi           = "";
        }
예제 #6
0
        static void Main(string[] args)
        {
            UI.Päävalikko();

            //Lisätään pelaaja areenalistaan
            Areena.LuoUusiPelaaja();

            Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");

            Pelaaja.Hahmonluonti(9);

            Pelaaja.SaaTavara("Juoma");
            Pelaaja.SaaTavara("Pommi");


            //Taistelun asetukset
            int taisteluita = 3, luurankoMin = 1, luurankoMax = 1, vampyyriMin = 1, vampyyriMax = 1;

            for (int i = 0; i < taisteluita; i++)
            {
                Areena.LuoVihollisia(Areena.VihollisMääränArvonta(luurankoMin, luurankoMax), "Luuranko");
                if (i > 0)
                {
                    Areena.LuoVihollisia(Areena.VihollisMääränArvonta(vampyyriMin, vampyyriMax), "Vampyyri");
                }


                if (pelaaja.Kuollut == false)
                {
                    AloitaTaistelu();
                }
                luurankoMin++;
                luurankoMax++;

                if (pelaaja.Kuollut)
                {
                    break;
                }
            }

            //Pelin loppu
            if (pelaaja.Kuollut == false)
            {
                Console.Clear();
                Console.WriteLine("VOITIT");
                Console.ReadKey(true);
            }
            else
            {
                Console.Clear();
                Console.WriteLine("Hävisit.");
                Console.ReadKey(true);
            }
        }
예제 #7
0
        public static void HeitäPommi(Hahmo heittäjä, Hahmo vihollinen, List <Hahmo> toissijaisetViholliset)
        {
            Random arvonta = new Random();

            int vahinkoKerroin      = arvonta.Next(4, 9);
            int toissijainenKerroin = arvonta.Next(2, 5) + heittäjä.Dex;

            int vahinko = (vahinkoKerroin + heittäjä.Dex) - vihollinen.Def;

            if (vahinko < 1)
            {
                int torjuttuVahinko = (4 * vahinkoKerroin) - 1;
                vahinko = 1;
                Console.Write("{0} heitti pommin, {1} menetti ", heittäjä.Nimi, vihollinen.Nimi);
                UI.VahinkoVäri(vahinko);
                Console.Write(":n kestopisteen (" + torjuttuVahinko + " vastustettu)\n");
            }
            else
            {
                Console.Write("{0} heitti pommin, {1} menetti ", heittäjä.Nimi, vihollinen.Nimi);
                UI.VahinkoVäri(vahinko);
                Console.Write(" kestopistettä (" + vihollinen.Def + " vastustettu)\n");
            }

            //toissijainen vahinko
            for (int i = 0; i < toissijaisetViholliset.Count; i++)
            {
                int toissijainenVahinko = toissijainenKerroin - toissijaisetViholliset[i].Def;

                if (toissijainenVahinko < 1)
                {
                    int torjuttuVahinko = toissijainenKerroin - 1;
                    toissijainenVahinko           = 1;
                    toissijaisetViholliset[i].Hp -= toissijainenVahinko;
                    Console.Write("\nMyös {0} menetti ", toissijaisetViholliset[i].Nimi);
                    UI.VahinkoVäri(toissijainenVahinko);
                    Console.Write(" kestopistettä (" + torjuttuVahinko + " vastustettu)\n");
                    Areena.PoistaKuolleet();
                }
                else
                {
                    toissijaisetViholliset[i].Hp -= toissijainenVahinko;
                    Console.Write("\nMyös {0} menetti ", toissijaisetViholliset[i].Nimi);
                    UI.VahinkoVäri(toissijainenVahinko);
                    Console.Write(" kestopistettä (" + toissijaisetViholliset[i].Def + " vastustettu)\n");
                    Areena.PoistaKuolleet();
                }
            }
            Areena.PoistaKuolleet();
            vihollinen.MenetäHPtä(vahinko);
            System.Threading.Thread.Sleep(2500);
        }
예제 #8
0
        public int Hyökkää(Hahmo puolustaja, Hahmo hyökkääjä)
        {
            Random arvonta           = new Random();
            int    vahinkoKerroin    = arvonta.Next(1, 4);
            int    kriittinenArvonta = arvonta.Next(1, 101);
            int    vahinko           = (Str * vahinkoKerroin) - puolustaja.Def;

            if (hyökkääjä.Dex >= kriittinenArvonta)//kriittinen osuma
            {
                vahinko = (vahinko + 1) * 2;
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("Kriittinen osuma");
                Console.ResetColor();
            }

            if (vahinko < 1)
            {
                int torjuttuVahinko = (Str * vahinkoKerroin) - 1;
                vahinko = 1;
                Console.Write("{0} hyökkäsi, {1}{2} menetti ", Nimi, puolustaja.Nimi, puolustaja.Tagi);
                UI.VahinkoVäri(vahinko);
                Console.Write(":n kestopisteen (" + torjuttuVahinko + " vastustettu)\n");
            }
            else
            {
                Console.Write("{0} hyökkäsi, {1}{2} menetti ", Nimi, puolustaja.Nimi, puolustaja.Tagi);
                UI.VahinkoVäri(vahinko);
                Console.Write(" kestopistettä (" + puolustaja.Def + " vastustettu)\n");
            }

            if (hyökkääjä.Nimi.Contains("Vampyyri"))
            {
                if (hyökkääjä.Hp < hyökkääjä.MaxHp)
                {
                    hyökkääjä.Hp += vahinko;
                    Console.Write("\n{0} sai takaisin ", hyökkääjä.Nimi);
                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                    Console.Write(vahinko);
                    Console.ResetColor();
                    Console.Write(" kestopistettä.");
                    if (hyökkääjä.Hp > hyökkääjä.MaxHp)
                    {
                        hyökkääjä.Hp = hyökkääjä.MaxHp;
                    }
                }
            }

            return(vahinko);
        }
예제 #9
0
        public static List <Hahmo> ValitseToissijaisetViholliset(Hahmo ensisijainenVihollinen)
        {
            List <Hahmo> excludeLista = new List <Hahmo>();
            Hahmo        pelaaja      = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");

            excludeLista.Add(ensisijainenVihollinen);
            excludeLista.Add(pelaaja);

            var tulos = Areena.Areenalista.Except(excludeLista);

            List <Hahmo> toissijaisetViholliset = tulos.ToList();

            return(toissijaisetViholliset);
        }
예제 #10
0
        public void Puolusta()
        {
            Random arvonta = new Random();
            Hahmo  pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");

            ExtraVuoronArvonta();

            int arpaNro = arvonta.Next(1, 4);

            puolustusDef   = arpaNro + Def;
            Def            = Def + puolustusDef;
            Dex            = Dex + 1;
            Puolustautunut = true;
            Tagi           = "[puolustautunut]";
        }
예제 #11
0
        public static void JuoJuoma(Hahmo juoja)
        {
            int parannusMäärä = juoja.Def * 2 + 5;

            juoja.Hp += parannusMäärä;

            if (juoja.Hp > juoja.MaxHp)
            {
                juoja.Hp = juoja.MaxHp;
            }

            Console.Write("Juoma paransi ");
            Console.ForegroundColor = ConsoleColor.DarkGreen;
            Console.Write(parannusMäärä);
            Console.ResetColor();
            Console.Write(" kestopistettä");
            System.Threading.Thread.Sleep(950);
        }
예제 #12
0
        static public void SaaKokemusta(int exp)
        {
            Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");

            Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("Sait {0} kokemuspistettä.", exp);
            Exp = Exp + exp;
            Console.WriteLine("\n\n...");
            Console.ReadKey(true);
            if (Exp >= 5 && Taso < 2)
            {
                Console.Clear();
                Console.Write("Nousit tasolle 2.");
                Taso++;
                System.Threading.Thread.Sleep(900);
                Console.ResetColor();
                pelaaja.MaxHp += 5;
                pelaaja.Hp    += 5;
                Taidonnosto();
            }
            else if (Exp >= 15 && Taso < 3)
            {
                Console.Clear();
                Console.Write("Nousit tasolle 3.");
                Taso++;
                System.Threading.Thread.Sleep(900);
                Console.ResetColor();
                pelaaja.MaxHp += 5;
                pelaaja.Hp    += 5;
                Taidonnosto();
            }
            else if (Exp >= 30 && Taso < 4)
            {
                Console.Clear();
                Console.Write("Nousit tasolle 4.");
                Taso++;
                System.Threading.Thread.Sleep(900);
                Console.ResetColor();
                pelaaja.MaxHp += 5;
                pelaaja.Hp    += 5;
                Taidonnosto();
            }
            else if (Exp >= 50 && Taso < 5)
            {
                Console.Clear();
                Console.Write("Nousit tasolle 5.");
                Taso++;
                System.Threading.Thread.Sleep(900);
                Console.ResetColor();
                pelaaja.MaxHp += 5;
                pelaaja.Hp    += 5;
                Taidonnosto();
            }
            else if (Exp >= 75 && Taso < 5)
            {
                Console.Clear();
                Console.Write("Nousit tasolle 5.");
                Taso++;
                System.Threading.Thread.Sleep(900);
                Console.ResetColor();
                pelaaja.MaxHp += 5;
                pelaaja.Hp    += 5;
                Taidonnosto();
            }
            Console.ResetColor();
        }
예제 #13
0
        public static void PelaajanVuoro(Hahmo pelaaja)
        {
            if (pelaaja.Kuollut == false)
            {
                Hahmo vihollinen;

                if (pelaaja.Puolustautunut && pelaaja.ExtraVuoro == false)
                {
                    pelaaja.LaskePuolustus();
                }

                ConsoleKeyInfo nappiInfo;
                do
                {
                    Console.Clear();
                    if (pelaaja.ExtraVuoro == false)
                    {
                        Console.WriteLine("\nPelaajan vuoro\nValitse komento: \n1) Hyökkää \n2) Tavara \n3) Puolusta");
                        nappiInfo = Console.ReadKey(true);
                        if (nappiInfo.Key == ConsoleKey.D2)
                        {
                            break;
                        }
                        if (nappiInfo.Key == ConsoleKey.D3)
                        {
                            break;
                        }
                    }
                    else
                    {
                        Console.WriteLine("\nEXTRAVUORO\nValitse komento: \n1) Hyökkää \n2) Tavara");
                        nappiInfo          = Console.ReadKey(true);
                        pelaaja.ExtraVuoro = false;
                        if (nappiInfo.Key == ConsoleKey.D2 && Pelaaja.Tavaralista.Count() > 0)
                        {
                            break;
                        }
                        else if (nappiInfo.Key == ConsoleKey.D2 && Pelaaja.Tavaralista.Count() < 1)
                        {
                            Console.Clear();
                            Console.WriteLine("Ei tavaroita");
                            pelaaja.ExtraVuoro = true;
                            System.Threading.Thread.Sleep(600);
                        }
                    }
                } while (nappiInfo.Key != ConsoleKey.D1);

                //Hyökkäys
                if (nappiInfo.Key == ConsoleKey.D1 || nappiInfo.Key == ConsoleKey.NumPad1)
                {
                    vihollinen = UI.ValitseVihollinen();

                    if (vihollinen.Väistä() == false)
                    {
                        vihollinen.MenetäHPtä(pelaaja.Hyökkää(vihollinen, pelaaja));
                        Console.WriteLine("\n\n...");
                        Console.ReadKey(true);
                    }
                    else
                    {
                        Console.WriteLine("{0} hyökkäsi, {1} väisti.", pelaaja.Nimi, vihollinen.Nimi);
                        System.Threading.Thread.Sleep(900);
                    }
                }
                //Puolustus
                if (nappiInfo.Key == ConsoleKey.D3 || nappiInfo.Key == ConsoleKey.NumPad3)
                {
                    pelaaja.Puolusta();
                    Console.Clear();
                    Console.WriteLine("Pelaaja puolustautuu");
                    System.Threading.Thread.Sleep(600);
                }
                //Tavara
                if (nappiInfo.Key == ConsoleKey.D2 || nappiInfo.Key == ConsoleKey.NumPad2)
                {
                    if (Pelaaja.Tavaralista.Count() > 0)
                    {
                        Tavara valittuTavara = UI.ValitseTavara();
                        if (valittuTavara.Nimi == "Juoma")
                        {
                            Tavara.JuoJuoma(pelaaja);
                            Pelaaja.Tavaralista.Remove(valittuTavara);
                        }
                        if (valittuTavara.Nimi == "Pommi")
                        {
                            vihollinen = UI.ValitseVihollinen();
                            Tavara.HeitäPommi(pelaaja, vihollinen, UI.ValitseToissijaisetViholliset(vihollinen));
                            Pelaaja.Tavaralista.Remove(valittuTavara);
                        }
                    }
                    else
                    {
                        Console.Clear();
                        Console.WriteLine("Ei tavaroita.");
                        System.Threading.Thread.Sleep(600);
                        PelaajanVuoro(pelaaja);
                    }
                }

                if (pelaaja.ExtraVuoro == true) //uusi vuoro
                {
                    PelaajanVuoro(pelaaja);
                }
            }
        }
예제 #14
0
        static public void AloitaTaistelu()
        {
            #region Taistelun alku
            Console.Clear();
            Console.WriteLine("Taistelu {0}", Pelaaja.voitetutTaistelut + 1);
            System.Threading.Thread.Sleep(1100);

            Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja");
            #endregion

            for (int j = 0; pelaaja.Hp > 0; j++) //taistelu jatkuu, kunnes pelaajan hp loppuu
            {
                #region Taistelun voittoehdot
                bool voittoehdotTäytetty = Vuoro.TaistelunVoittoehdotTäytetty();
                if (voittoehdotTäytetty) //Taistelun voitto
                {
                    Console.Clear();
                    Pelaaja.voitetutTaistelut++;
                    Console.WriteLine("Taisteluja voitettu {0}/3", Pelaaja.voitetutTaistelut);
                    System.Threading.Thread.Sleep(950);
                    Console.ResetColor();
                    break;
                }
                #endregion

                #region Kierroksen alku

                //kierroksen alussa järjestetään areenalista dex:n mukaan:
                List <Hahmo> järjestettyLista = Vuoro.SuurinDex(Areena.Areenalista);

                Console.Clear(); Console.ResetColor();
                Console.Write("Kierros {0}\n\nVuorojärjestys:", (j + 1));
                for (int k = 0; k < järjestettyLista.Count(); k++) //Käydään areenalista läpi
                {
                    if (järjestettyLista[k] != null)
                    {
                        int vuoroNro = k + 1;
                        Console.Write("\n " + vuoroNro + ". " + järjestettyLista[k].Nimi + ", HP: ");
                        UI.HpVäri(järjestettyLista[k].Hp, järjestettyLista[k].MaxHp);
                        if (järjestettyLista[k].Puolustautunut)
                        {
                            Console.Write(" [puolustautuu]");
                        }
                    }
                }
                Console.WriteLine("\n\n...");
                Console.ReadKey(true);
                #endregion


                for (int i = 0; i < Areena.Areenalista.Count(); i++)
                {
                    Hahmo vuorossa = järjestettyLista[i];

                    if (vuorossa == pelaaja)
                    {
                        Vuoro.PelaajanVuoro(pelaaja);
                    }
                    else
                    {
                        Vuoro.VihollisenVuoro(vuorossa);
                    }
                }
            }
        }