예제 #1
0
        public void NäytäRepunSisältö(int kursoriVasen, int kursoriYlä)
        {
            // Kolmipaikkainen reppu

            Console.SetCursorPosition(kursoriVasen, kursoriYlä + 7);

            int i = 0;

            while (i < repunSlottienMäärä)
            {
                Konsoli.UusiRivi(kursoriVasen);
                if (i < Moottori.Pelaaja.Reppu.Count)
                {
                    var palkinleveys     = ReppupalkinLeveys;
                    var teksti           = Moottori.Pelaaja.Reppu[i].Nimi;
                    var keskitettyTeksti = teksti.PadLeft(((palkinleveys - teksti.Length) / 2) + teksti.Length).PadRight(palkinleveys);

                    Console.Write("[");
                    Console.ForegroundColor = Moottori.Pelaaja.Reppu[i].Väri;
                    Console.Write(keskitettyTeksti);
                    Console.ResetColor();
                    Console.Write("]");
                }
                else
                {
                    Console.Write("[");
                    Console.Write(new string(' ', ReppupalkinLeveys));
                    Console.Write("]");
                }

                i++;
            }
        }
예제 #2
0
        public static void PiirräPelastus()
        {
            TyhjennäKonsoli();
            Console.ResetColor();
            string teksti = @"
 _    _     _      _                     _ _       _ 
| |  | |   (_)_   (_)_                  | (_)     | |
| |  | |__  _| |_  _| |_     ____   ____| |_ ____ | |
 \ \/ / _ \| |  _)| |  _)   |  _ \ / _  ) | |  _ \|_|
  \  / |_| | | |__| | |__   | | | ( (/ /| | | | | |_ 
   \/ \___/|_|\___)_|\___)  | ||_/ \____)_|_|_| |_|_|
                            |_|                      
";

            PiirräReunatStringBuilder(4, 2, KonsoliKorkeus - 3, KonsoliLeveys - 5);
            Console.SetCursorPosition(14, 8);
            string[] rivit = teksti.Split('\n');
            foreach (var rivi in rivit)
            {
                Console.Write(rivi);
                Konsoli.UusiRivi(14);
            }
            Konsoli.UusiRivi(20);
            Console.Write($"{Moottori.Pelaaja.Nimi} voitti pelin seuraavilla statseilla:");
            TulostaLopetusStatsit();
        }
예제 #3
0
        public static void PiirräReunatConsole(int vasenYläkulma_SarakeNro, int vasenYläkulma_RiviNro, int rivimäärä, int sarakemäärä)
        {  // Piirtää reunat objekteille suoraan Consolella
            Console.SetCursorPosition(vasenYläkulma_SarakeNro - 2, vasenYläkulma_RiviNro - 1);

            Console.Write("╔");
            for (int i = 0; i < sarakemäärä; i++)
            {
                Console.Write("═");                         // yläreuna
            }
            Console.Write("╗");
            for (int j = 0; j < rivimäärä; j++)
            {
                Konsoli.UusiRivi(vasenYläkulma_SarakeNro - 2);
                Console.Write("║");                         // vasen reuna

                for (int k = 0; k < sarakemäärä; k++)
                {
                    Console.Write(" ");
                }
                Console.Write("║");                         // oikea reuna
            }
            Konsoli.UusiRivi(vasenYläkulma_SarakeNro - 2);
            Console.Write("╚");
            for (int i = 0; i < sarakemäärä; i++)
            {
                Console.Write("═");                         // alareuna
            }
            Console.Write("╝");
        }
예제 #4
0
        public static void PiirräGameOver()
        {
            TyhjennäKonsoli();
            Console.ResetColor();
            string teksti = @"
[##   [##    [##     [##      [####       [##       [##  [###[######
[##  [##     [##     [##    [##    [##    [##       [##      [##    
[## [##      [##     [##  [##        [##  [##       [##      [##    
[# [#        [##     [##  [##        [##  [##       [##      [##    
[##  [##     [##     [##  [##        [##  [##       [##      [##    
[##   [##    [##     [##    [##     [##   [##       [##      [##    
[##     [##    [#####         [####       [######## [##      [##
            ";

            PiirräReunatStringBuilder(4, 2, KonsoliKorkeus - 3, KonsoliLeveys - 5);
            Console.SetCursorPosition(14, 8);
            string[] rivit = teksti.Split('\n');
            foreach (var rivi in rivit)
            {
                Console.Write(rivi);
                Konsoli.UusiRivi(14);
            }
            Konsoli.UusiRivi(20);
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.Write(Moottori.Pelaaja.Nimi);
            Console.ResetColor();
            Console.Write($" heitti veivit seuraavilla statseilla:");
            TulostaLopetusStatsit();
            Konsoli.UusiRivi(20);
            Konsoli.UusiRivi(20);
            Console.Write("Paina ESC lopettaaksesi");
        }
예제 #5
0
        public static void piirräAloitusnäyttö()
        {
            TyhjennäKonsoli();
            Console.ResetColor();
            string kuva      = @"
               ,@@@@@@@,
       ,,,.   ,@@@@@@/@@,  .oo8888o.
    ,&%%&%&&%,@@@@@/@@@@@@,8888\88/8o
   ,%&\%&&%&&%,@@@\@@@/@@@88\88888/88'
   %&&%&%&/%&&%@@\@@/ /@@@88888\88888'
   %&&%/ %&%%&&@@\ V /@@' `88\8 `/88'
   `&%\ ` /%&'    |.|        \ '|8'
       |o|        | |         | |
       |.|        | |         | |
    \\/ ._\//_/__/  ,\_//__\\/.  \_//__/_";
            string pelinNimi = @"
 __, __, __, _ __, __, __, _  _,
 |_) |_  |_) | |_  |_  |_) | /_\
 |   |   | \ | |   |   | \ | | |
 ^   ^^^ ^ ^ ^ ^   ^^^ ^ ^ ^ ^ ^";

            PiirräReunatStringBuilder(4, 2, KonsoliKorkeus - 3, KonsoliLeveys - 5);
            Console.SetCursorPosition(30, 5);
            string[] rivit = pelinNimi.Split('\n');
            foreach (var rivi in rivit)
            {
                Console.Write(rivi);
                Konsoli.UusiRivi(30);
            }
            Konsoli.UusiRivi(25);
            string[] kuvaRivit = kuva.Split('\n');
            foreach (var rivi in kuvaRivit)
            {
                Console.Write(rivi);
                Konsoli.UusiRivi(25);
            }

            Konsoli.UusiRivi(20);
            Konsoli.UusiRivi(20);
            Console.Write("Huomaat eksyneesi tiheäkasvuiseen metsään. Asutuksesta");
            Konsoli.UusiRivi(20);
            Console.Write("ei ole havaittavissa minkäänlaisia merkkejä. Huomaat, ");
            Konsoli.UusiRivi(20);
            Console.Write("ettei sinulla ole mukanasi vesileiliä, ja repustasi");
            Konsoli.UusiRivi(20);
            Console.Write("löytyy vain retkisaha. Löydätköhän koskaan pois?");

            Konsoli.UusiRivi(33);
            Konsoli.UusiRivi(33);
            Console.Write("Paina välilyönti tai ENTER");
            Konsoli.UusiRivi(25);
            ConsoleKey jatka;

            do
            {
                jatka = Console.ReadKey(true).Key;
            } while (jatka != ConsoleKey.Spacebar && jatka != ConsoleKey.Enter);
            Console.Clear();
        }
예제 #6
0
        // HAHMORUUDUN PIIRROT

        public void Piirrä(int kursoriVasen, int kursoriYlä)
        {
            // Asetetaan kursorin aloituspaikka
            Console.SetCursorPosition(kursoriVasen, kursoriYlä);
            Konsoli.PiirräReunatStringBuilder(kursoriVasen, kursoriYlä, hahmoruudunMaxKorkeus, hahmoruudunMaxLeveys);

            // Piirretään pelaajan tiedot
            PiirräPelaajanTiedot(kursoriVasen, kursoriYlä);

            // Piirretään muiden pelihahmojen tiedot
            PiirräEntiteettienTiedot(kursoriVasen, kursoriYlä);
        }
예제 #7
0
        public void PiirräEntiteettienTiedot(int kursoriVasen, int kursoriYlä)
        {
            Console.SetCursorPosition(kursoriVasen, kursoriYlä + 13);
            Console.ResetColor();

            // Pelin hahmot (muut kuin pelaaja) listattuna

            foreach (Hahmo entiteetti in Moottori.NykyinenKartta.Entiteetit.Where(e => e is Hahmo).OrderBy(e => (e as Hahmo).EtäisyysPelaajasta))
            {
                Console.ResetColor();

                // Tiedot jos hahmo vihollinen

                if (entiteetti is Vihollinen)
                {
                    float hpProsentti = (float)entiteetti.HP / (float)entiteetti.MaksimiHP * 100.0f;

                    if (entiteetti.HP == 0)
                    {
                        Console.ForegroundColor = ConsoleColor.DarkGray;
                        Console.Write(entiteetti.Merkki + " = " + entiteetti.Nimi + "      ");
                        Konsoli.UusiRivi(kursoriVasen);
                        Console.Write($"LVL:{entiteetti.Taso}  V:{entiteetti.Voima}  N:{entiteetti.Nopeus}  O:{entiteetti.Onnekkuus}");
                        Konsoli.UusiRivi(kursoriVasen);
                        Console.Write($"HP:{entiteetti.HP,4}/{entiteetti.MaksimiHP,-4}\u2502");
                        Console.Write($"{PiirräPalkki((int)hpProsentti),-10}");
                        Console.Write("\u2502");
                        Konsoli.UusiRivi(kursoriVasen);
                    }
                    else
                    {
                        entiteetti.Piirrä();
                        //Console.Write(" = " + entiteetti.Nimi + new string(' ', (hahmoruudunMaxLeveys - 6 - entiteetti.Nimi.Length)));
                        Console.Write($" = {entiteetti.Nimi}         ");
                        Console.ResetColor();
                        Konsoli.UusiRivi(kursoriVasen);
                        Console.Write($"LVL:{entiteetti.Taso}  V:{entiteetti.Voima}  N:{entiteetti.Nopeus}  O:{entiteetti.Onnekkuus}");
                        Konsoli.UusiRivi(kursoriVasen);
                        Console.Write($"HP:{entiteetti.HP,4}/{entiteetti.MaksimiHP,-4}\u2502");
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write($"{PiirräPalkki((int)hpProsentti),-10}");
                        Console.ResetColor();
                        Console.Write("\u2502");
                        Konsoli.UusiRivi(kursoriVasen);
                    }

                    Console.ResetColor();
                }

                // Tiedot jos hahmo ystävä tai tavara
            }
        }
예제 #8
0
 public void Piirrä()
 {
     //Essin
     Konsoli.PiirräReunatStringBuilder(Konsoli.ViestiLokiOffset_Vasen, Konsoli.ViestiLokiOffset_Ylä, MaksimiRivit, MaksimiLeveys);
     //
     Console.SetCursorPosition(Konsoli.ViestiLokiOffset_Vasen, Konsoli.ViestiLokiOffset_Ylä);
     foreach (Tuple <string, ConsoleColor> v in Viestit)
     {
         Console.ForegroundColor = v.Item2;
         Console.Write(v.Item1);
         Konsoli.UusiRivi(Konsoli.ViestiLokiOffset_Vasen);
     }
 }
예제 #9
0
        public void PiirräPelaajanTiedot(int kursoriVasen, int kursoriYlä)
        {
            Console.SetCursorPosition(kursoriVasen, kursoriYlä);
            Console.ResetColor();

            // Pelaajan tiedot
            Console.Write("Pelaaja ");
            Moottori.Pelaaja.Piirrä();
            Console.ResetColor();
            Console.Write($": {Moottori.Pelaaja.Nimi,-10}");
            Konsoli.UusiRivi(kursoriVasen);

            // Pelaajan numerostatsit
            Console.Write("LVL: " + Moottori.Pelaaja.Taso + "   ");
            Konsoli.UusiRivi(kursoriVasen);
            Console.Write("Voima: " + Moottori.Pelaaja.Voima + "   ");
            Konsoli.UusiRivi(kursoriVasen);
            Console.Write("Nopeus: " + Moottori.Pelaaja.Nopeus + "   ");
            Konsoli.UusiRivi(kursoriVasen);
            Console.Write("Onnekkuus: " + Moottori.Pelaaja.Onnekkuus + "   ");
            Konsoli.UusiRivi(kursoriVasen);

            // Pelaajan HP-palkki

            Console.SetCursorPosition(kursoriVasen, kursoriYlä + 5);
            Console.Write($"HP:{Moottori.Pelaaja.HP,4}/{Moottori.Pelaaja.MaksimiHP,-4}\u2502");
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.Write($"{PiirräPalkki(Moottori.Pelaaja.HP),-10}");
            Console.ResetColor();
            Console.Write("\u2502");
            Console.ResetColor();
            Konsoli.UusiRivi(kursoriVasen);

            // Pelaajan Nesteytys-palkki
            Console.SetCursorPosition(kursoriVasen, kursoriYlä + 6);
            Console.Write("Nesteytys:  \u2502");
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.Write($"{PiirräPalkki(Moottori.Pelaaja.Nesteytys),-10}");
            Console.ResetColor();
            Console.Write("\u2502");
            Konsoli.UusiRivi(kursoriVasen);

            // Pelaajan repun sisältö
            Console.Write("Repun sisältö: ");
            NäytäRepunSisältö(kursoriVasen, kursoriYlä);
            Konsoli.UusiRivi(kursoriVasen);
            Konsoli.UusiRivi(kursoriVasen);
        }
예제 #10
0
 public static void TulostaLopetusStatsit()
 {
     Konsoli.UusiRivi(20);
     Konsoli.UusiRivi(20);
     Console.Write($"\tTaso:\t\t\t{Moottori.Pelaaja.Taso}");
     Konsoli.UusiRivi(20);
     Console.Write($"\tVaelletut kartat:\t{Moottori.Kartat.Count}");
     Konsoli.UusiRivi(20);
     Console.Write($"\tTapetut:\t\t{Moottori.Pelaaja.MontakoTapettu}");
     Konsoli.UusiRivi(20);
     Console.Write($"\tPisteet:\t\t{Moottori.Pelaaja.Pisteet}");
     for (int i = 0; i < 5; i++)
     {
         Konsoli.UusiRivi(20);
     }
 }
예제 #11
0
        public static void HahmonLuonti()
        {
            int    valinta        = 0;
            int    maxValinta     = 5;
            int    voima          = 1;
            int    nopeus         = 1;
            int    onnekkus       = 1;
            int    maksimiStatsit = 10;
            int    hp             = 100;
            string nimi           = "";

            Moottori.Vaikeustasot vaikeustaso = Moottori.Vaikeustasot.HELPPO;
            Console.Clear();
            PiirräReunatStringBuilder(4, 2, KonsoliKorkeus - 3, KonsoliLeveys - 5);
            Console.SetCursorPosition(5, 2);
            Console.ForegroundColor = ConsoleColor.DarkGreen;
            Console.Write("Pelihahmon luonti");
            Konsoli.UusiRivi(5);
            Konsoli.UusiRivi(5);
            Console.ResetColor();
            Console.Write("Nimi: ");
            Konsoli.UusiRivi(5);
            Konsoli.UusiRivi(5);
            Console.Write("Vaikeustaso: ");
            Konsoli.UusiRivi(5);
            Konsoli.UusiRivi(5);
            Console.Write("Voima: ");
            Konsoli.UusiRivi(5);
            Console.Write("Nopeus: ");
            Konsoli.UusiRivi(5);
            Console.Write("Onnekkuus: ");
            Konsoli.UusiRivi(20);
            Console.Write(" X jäljellä");



            bool flag = true;

            while (flag)
            {
                piirräNimiKenttä(nimi, 4, 20, valinta == 0);
                piirräVaikeustaso(vaikeustaso, 6, 20, valinta == 1);
                PiirräStatsPalkit(voima, nopeus, onnekkus, 8, 20, valinta, maksimiStatsit);
                PiirräJatkaNappi(voima, nopeus, onnekkus, 15, 5, valinta == 5, maksimiStatsit);

                ConsoleKeyInfo näppäin = Console.ReadKey(true);
                switch (näppäin.Key)
                {
                case ConsoleKey.DownArrow:
                    if (valinta == 0 && nimi.Length < 1)
                    {
                        nimi = "Pekka";
                    }
                    if (valinta == 0 && nimi.ToLower() == "maija")
                    {
                        maksimiStatsit = 15;
                        hp             = 1000;
                        voima          = 5;
                        nopeus         = 5;
                        onnekkus       = 5;
                    }
                    if (valinta == 0 && nimi.ToLower() == "hannu")
                    {
                        maksimiStatsit = 22;
                        voima          = 1;
                        nopeus         = 1;
                        onnekkus       = 20;
                    }

                    if (valinta < maxValinta && !(valinta == maxValinta - 1 && voima + nopeus + onnekkus != maksimiStatsit))
                    {
                        valinta++;
                    }

                    break;

                case ConsoleKey.UpArrow:
                    if (valinta > 0)
                    {
                        valinta--;
                    }
                    if (valinta == 0 && nimi == "Pekka")
                    {
                        nimi = "";
                    }

                    break;

                case ConsoleKey.LeftArrow:
                    if (valinta == 1)
                    {
                        switch (vaikeustaso)
                        {
                        case Moottori.Vaikeustasot.HELPPO:
                            break;

                        case Moottori.Vaikeustasot.VAIKEA:
                            vaikeustaso = Moottori.Vaikeustasot.HELPPO;
                            break;

                        case Moottori.Vaikeustasot.VAIKEIN:
                            vaikeustaso = Moottori.Vaikeustasot.VAIKEA;
                            break;
                        }
                    }
                    else if (valinta == 2 || valinta == 3 || valinta == 4)
                    {
                        switch (valinta)
                        {
                        case 2:         // voima
                            if (voima == 1)
                            {
                                break;
                            }
                            voima--;
                            break;

                        case 3:         // nopeus
                            if (nopeus == 1)
                            {
                                break;
                            }
                            nopeus--;
                            break;

                        case 4:         // onnekkuus
                            if (onnekkus == 1)
                            {
                                break;
                            }
                            onnekkus--;
                            break;
                        }
                    }

                    break;

                case ConsoleKey.RightArrow:
                    if (valinta == 1)
                    {
                        switch (vaikeustaso)
                        {
                        case Moottori.Vaikeustasot.HELPPO:
                            vaikeustaso = Moottori.Vaikeustasot.VAIKEA;
                            break;

                        case Moottori.Vaikeustasot.VAIKEA:
                            vaikeustaso = Moottori.Vaikeustasot.VAIKEIN;
                            break;

                        case Moottori.Vaikeustasot.VAIKEIN:
                            break;
                        }
                    }
                    else if (valinta == 2 || valinta == 3 || valinta == 4)
                    {
                        if (voima + nopeus + onnekkus == maksimiStatsit)
                        {
                            break;
                        }
                        switch (valinta)
                        {
                        case 2:         // voima
                            if (voima >= 5)
                            {
                                break;
                            }
                            voima++;
                            break;

                        case 3:         // nopeus
                            if (nopeus >= 5)
                            {
                                break;
                            }
                            nopeus++;
                            break;

                        case 4:         // onnekkuus
                            if (onnekkus >= 5)
                            {
                                break;
                            }
                            onnekkus++;
                            break;
                        }
                    }

                    break;

                case ConsoleKey.Enter:
                    if (valinta == maxValinta)
                    {
                        Moottori.Pelaaja.Voima     = voima;
                        Moottori.Pelaaja.Nopeus    = nopeus;
                        Moottori.Pelaaja.Onnekkuus = onnekkus;
                        Moottori.Pelaaja.Nimi      = nimi;
                        Moottori.Pelaaja.HP        = hp;
                        Moottori.Pelaaja.MaksimiHP = hp;
                        Moottori.Vaikeustaso       = vaikeustaso;


                        flag = false;
                    }

                    break;

                case ConsoleKey.Backspace:
                    if (valinta == 0 && nimi.Length > 0)
                    {
                        nimi = nimi.Substring(0, nimi.Length - 1);
                    }
                    break;

                default:
                    if (char.IsLetter(näppäin.KeyChar) && nimi.Length < 10)
                    {
                        nimi += näppäin.KeyChar;
                    }
                    break;
                }
            }
        }