//Kampfsystem public void starteKampf(Spieler Spieler1, Gegenstande Inventar, HeldStatus HUD, Karte Karte) { //Kampf Initsialisieren Objekte erstellen Werte zuweisen Boolean istImKampf = true; Random randMonsterSchaden = new Random(); Random randSchaden = new Random(); Random randBlockchance = new Random(); Gegner Monster = new Gegner(); ConsoleKeyInfo taste; Monster.erstelleMonster(Monster, Karte.Level); //Kampfwerte Übergeben int SpielerHP = Spieler1.getSpielerLeben; int SpielerMaxHP = Spieler1.getSpielerMaxLeben + Spieler1.getSpielerRingHP; int SpielerArmor = Spieler1.getSpielerArmor; int SpielerAngriff = Spieler1.getSpielerAngriff + Spieler1.getSpielerWaffe; //Monster Werte int MonsterHP = Monster.getMonsterHP; int MonsterMaxHP = Monster.getMonsterMaxHP; int MonsterAngriff = Monster.getMonsterAngriff; String MonsterTyp = Monster.getMonsterTyp; int MonsterKrit = 0; //StartText HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, SpielerAngriff, MonsterHP, MonsterMaxHP, MonsterTyp, MonsterAngriff, 1); //Monster erstellen while (istImKampf == true) { //Kritschischer Treffer taste = Console.ReadKey(); switch (taste.Key) { //Angriff ! case ConsoleKey.A: //Spielerschaden int SpielerSchaden = SpielerAngriff + randSchaden.Next(1, 5); MonsterHP = MonsterHP - SpielerSchaden; HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, SpielerSchaden, MonsterHP, MonsterMaxHP, MonsterTyp, MonsterAngriff, 2); //Monsterschaden int MonsterSchaden = MonsterAngriff + randMonsterSchaden.Next(1, 5) - SpielerArmor; if (MonsterKrit == 5) { MonsterSchaden = 5 + Convert.ToInt32(MonsterSchaden * 1.5); } if (MonsterSchaden <= 0) { MonsterSchaden = 0; } SpielerHP = SpielerHP - MonsterSchaden; //HUD Aktualisieren HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, SpielerSchaden, MonsterHP, MonsterMaxHP, MonsterTyp, MonsterSchaden, 3); break; //Verteidigen case ConsoleKey.D: int Block = randBlockchance.Next(1, 5); int SpielerSchadenBlock = SpielerAngriff + randSchaden.Next(1, 3); int MonsterSchadenBlock = MonsterAngriff + randMonsterSchaden.Next(1, 5) - SpielerArmor; switch (Block) { //Fall nicht geblockt ! case 1: MonsterSchadenBlock = MonsterAngriff + randMonsterSchaden.Next(1, 5) - SpielerArmor; //Bei Krit Schaden erhöhen if (MonsterKrit == 5) { MonsterSchadenBlock = MonsterSchadenBlock * 2; } if (MonsterSchadenBlock <= 0) { MonsterSchadenBlock = 0; } SpielerHP = SpielerHP - MonsterSchadenBlock; //HUD Aktualisieren HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, SpielerSchadenBlock, MonsterHP, MonsterMaxHP, MonsterTyp, MonsterSchadenBlock, 6); break; //Fall geblockt ! default: MonsterSchadenBlock = randBlockchance.Next(1, 5); MonsterHP = MonsterHP - MonsterSchadenBlock; HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, SpielerSchadenBlock, MonsterHP, MonsterMaxHP, MonsterTyp, MonsterSchadenBlock, 5); HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, SpielerSchadenBlock, MonsterHP, MonsterMaxHP, MonsterTyp, MonsterSchadenBlock, 1); break; } break; } HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, SpielerAngriff, MonsterHP, MonsterMaxHP, MonsterTyp, MonsterAngriff, 1); //Gewonnen oder verloren if (SpielerHP <= 0) { Console.Clear(); HighScore Spiel = new HighScore(); Spiel.dateiErstellen(Spieler1, Spieler1.getPunktZahl); Spiel.dateiLesen(Spieler1); System.Environment.Exit(0); } if (MonsterHP <= 0) { //Game Over if (SpielerHP <= 0) { Console.Clear(); HighScore Spiel = new HighScore(); Spiel.dateiErstellen(Spieler1, Spieler1.getPunktZahl); Spiel.dateiLesen(Spieler1); System.Environment.Exit(0); } Spieler1.setSpielerLeben = SpielerHP; HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, SpielerAngriff, MonsterHP, MonsterMaxHP, MonsterTyp, MonsterAngriff, 4); int Erfahrung = Convert.ToInt32(Karte.Level); Spieler1.setSpielerErfahrung = Spieler1.getSpielerErfahrung + Erfahrung; Spieler1.setPunktzahl = Spieler1.getPunktZahl + 5 + Erfahrung; Spieler1.levelUP(Spieler1); HUD.zeichneHud(Spieler1, Inventar); break; } //Crit oder kein Crit MonsterKrit = randMonsterSchaden.Next(1, 7); if (MonsterKrit == 5) { HUD.erstelleKampftext(SpielerHP, SpielerMaxHP, 0, MonsterHP, MonsterMaxHP, MonsterTyp, 0, 7); } } //Game Over if (SpielerHP <= 0) { Console.Clear(); HighScore Spiel = new HighScore(); Spiel.dateiErstellen(Spieler1, Spieler1.getPunktZahl); Spiel.dateiLesen(Spieler1); System.Environment.Exit(0); } }
//Grundlegendes Menü aufbauen public void initStartMenu(Menu Startmenu) { while (istImStartMenu == true) { Console.Clear(); Console.SetCursorPosition(26, 4); Console.WriteLine("Willkommen beim Pixel Doom"); Console.SetCursorPosition(28, 14); Console.WriteLine("[ 1 ]-Neues Spiel"); Console.SetCursorPosition(28, 15); Console.WriteLine("[ 2 ]-Highscore"); Console.SetCursorPosition(28, 16); Console.WriteLine("[ 3 ]-Exit"); Console.SetCursorPosition(46, 35); Console.WriteLine("Produziert von Michael Börner"); Console.SetCursorPosition(5, 35); Console.WriteLine("Alle Rechte Vorbehalten"); //Switch Auswahl string menuAuswahl; Console.SetCursorPosition(26, 23); Console.Write("Bitte Auswahl eingeben: "); menuAuswahl = Console.ReadLine(); switch (menuAuswahl) { case "1": //ALLE OBJEKTE ERSTELLEN FÜR DEN START Karte Karte = new Karte(20, 40, 20, 20); //Kartenhöhe Kartenbreite und Cursor X Y HeldStatus HUD = new HeldStatus(20, 40); Eventhandler Events = new Eventhandler(); Hauptschleife Spielschleife = new Hauptschleife(); Spieler Spieler1 = new Spieler(); Gegenstande Inventar = new Gegenstande(); HighScore Punkte = new HighScore(); Shop Kaufen = new Shop(); Karte.initKarte(Events, HUD); Karte.zeichneKarte(); HUD.zeichneHud(Spieler1, Inventar); Spielschleife.spielSchleife(Karte, HUD, Events, Spieler1, Startmenu, Inventar, Kaufen); break; //Highscore case "2": Console.Clear(); Spieler Spieler2 = new Spieler(); HighScore punkteAbfragen = new HighScore(); punkteAbfragen.dateiLesen(Spieler2); Console.ReadKey(); break; case "3": System.Environment.Exit(0); break; default: break; } } }