private static void piirräVaikeustaso(Moottori.Vaikeustasot vaikeustaso, int y, int x, bool valittu) { Console.SetCursorPosition(x, y); piirräVaikustasoPalkki("Helppo", vaikeustaso == Moottori.Vaikeustasot.HELPPO, valittu); piirräVaikustasoPalkki("Vaikea", vaikeustaso == Moottori.Vaikeustasot.VAIKEA, valittu); piirräVaikustasoPalkki("Ei kannata", vaikeustaso == Moottori.Vaikeustasot.VAIKEIN, valittu); }
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; } } }