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++; } }
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(); }
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("╝"); }
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"); }
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(); }
// 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ä); }
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 } }
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); } }
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); }
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); } }
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; } } }