public void feldPrüfen(Spieler Spieler1, Karte Karte, HeldStatus HUD, Gegenstande Inventar, Eventhandler Events, int feldnummer) { switch (feldnummer) { case 0: break; case 1: break; case 2: Spieler1.sammelMunze(HUD, Spieler1, Inventar); Karte.feldMenge--; break; case 3: Spieler1.sammelHP(HUD, Spieler1, Inventar); Karte.feldMenge--; break; case 4: Events.starteKampf(Spieler1, Inventar, HUD, Karte); Karte.zeichneKarte(); zeichneSpielerPos(Spieler1); Karte.feldMenge--; break; } if (Karte.feldMenge <= 0) { Karte.initKarte(Events, HUD); Karte.zeichneKarte(); zeichneSpielerPos(Spieler1); } }
//MünzCount public void sammelMunze(HeldStatus HUD, Spieler Spieler1, Gegenstande Inventar) { Random randMünze = new Random(); int Munze = randMünze.Next(1, 10); Console.SetCursorPosition(1, 25); Console.WriteLine("Super " + Munze + " Münzen gefunden ! "); setSpielerMunzen = getSpielerMunzen + Munze; HUD.zeichneHud(Spieler1, Inventar); setPunktzahl = getPunktZahl + Munze; }
//Rüstungsauswahl public void selectArmor(HeldStatus HUD, Spieler Spieler1) { for (int i = armorChoice; armorChoice <= 10; i++) { if (hatLeder == true & i == 1) { Spieler1.setSpielerArmor = 1; HUD.aktualisiereArmor(Leder); armorChoice = 2; break; } if (hatKetten == true & i == 2) { Spieler1.setSpielerArmor = 2; HUD.aktualisiereArmor(Ketten); armorChoice = 3; break; } if (hatSchuppen == true & i == 3) { Spieler1.setSpielerArmor = 5; HUD.aktualisiereArmor(Schuppen); armorChoice = 4; break; } if (hatDrachenschuppen == true & i == 4) { Spieler1.setSpielerArmor = 7; HUD.aktualisiereArmor(Drachenschuppen); armorChoice = 5; break; } if (hatKeineArmor == true & i == 4) { Spieler1.setSpielerArmor = 0; HUD.aktualisiereArmor(leererArmorSlot); armorChoice = 1; break; } armorChoice = 1; } //Ring Auswahl }
public void selectRing(HeldStatus HUD, Spieler Spieler1) { for (int i = ringChoice; ringChoice <= 10; i++) { if (hatSilberRing == true & i == 1) { Spieler1.setSpielerRingHP = 10; HUD.aktualisiereRing(SilberRing); ringChoice = 2; break; } if (hatRubinRing == true & i == 2) { Spieler1.setSpielerRingHP = 15; HUD.aktualisiereRing(RubinRing); ringChoice = 3; break; } if (hatDiamantRing == true & i == 3) { Spieler1.setSpielerRingHP = 20; HUD.aktualisiereRing(DiamantRing); ringChoice = 4; break; } if (hatZauberRing == true & i == 4) { Spieler1.setSpielerRingHP = 50; HUD.aktualisiereRing(ZauberRing); ringChoice = 5; break; } if (hatKeinRing == true & i == 4) { Spieler1.setSpielerRingHP = 0; HUD.aktualisiereRing(leererRingSlot); ringChoice = 1; break; } ringChoice = 1; } }
//Waffenauswahl public void selectWeapon(HeldStatus HUD, Spieler Spieler1) { for (int i = WaffenWahl; WaffenWahl <= 10; i++) { if (istImBesitzDolch == true & i == 1) { Spieler1.setSpielerWaffe = 1; HUD.aktualisiereWaffen(Dolch); WaffenWahl = 2; break; } if (istImBesitzSchwert == true & i == 2) { Spieler1.setSpielerWaffe = 2; HUD.aktualisiereWaffen(Schwert); WaffenWahl = 3; break; } if (istImBesitzSabel == true & i == 3) { Spieler1.setSpielerWaffe = 3; HUD.aktualisiereWaffen(Sabel); WaffenWahl = 4; break; } if (istImBesitzFeurigesSchwert == true & i == 4) { Spieler1.setSpielerWaffe = 5; HUD.aktualisiereWaffen(FeurigesSchwert); WaffenWahl = 5; break; } if (hatKeineWaffe == true & i == 5) { Spieler1.setSpielerWaffe = 0; HUD.aktualisiereWaffen(leererWaffenslot); WaffenWahl = 1; break; } WaffenWahl = 1; } }
//SammelHP public void sammelHP(HeldStatus HUD, Spieler Spieler1, Gegenstande Inventar) { Random randHP = new Random(); int HP = randHP.Next(2, 7); setSpielerLeben = getSpielerLeben + HP; Console.ForegroundColor = ConsoleColor.Green; Console.SetCursorPosition(1, 25); Console.WriteLine("Heiltrank gefunden HP + " + HP + " ! "); setPunktzahl = getPunktZahl + HP; Console.ResetColor(); if (Spieler1.getSpielerMaxLeben + Spieler1.getSpielerRingHP < Spieler1.getSpielerLeben) { setSpielerLeben = Spieler1.getSpielerMaxLeben + Spieler1.getSpielerRingHP; } HUD.zeichneHud(Spieler1, Inventar); }
//Karte Initsialisieren und Felder belegen public void initKarte(Eventhandler Events, HeldStatus HUD) { feldStatus = new int[kartenHöhe, kartenBreite]; Random ZufallsGenerator = new Random(); //Feld Daten füllen for (int y = 0; y < kartenHöhe; y++) //Y Achse { for (int x = 0; x < kartenBreite; x++) //X Achse { Console.SetCursorPosition(x + 0, y + 0); if (y == 0 | x == 0 | y == kartenHöhe - 1 | x == kartenBreite - 1) { feldStatus[y, x] = 1; } else { feldStatus[y, x] = 0; //Zufalls Generator 1-100 entweder 2: Geld, 3: Item, 4: Gegner int feldZufall = ZufallsGenerator.Next(1, 100); switch (feldZufall) { case 2: feldStatus[y, x] = 2; feldMenge++; break; case 3: feldStatus[y, x] = 3; feldMenge++; break; case 4: feldStatus[y, x] = 4; feldMenge++; break; } //Felder zuweisen Ende } } } Level = Level + 0.2; }
//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; } } }
public void spielSchleife(Karte Karte, HeldStatus HUD, Eventhandler Events, Spieler Spieler1, Menu Startmenu, Gegenstande Inventar, Shop Kaufen) { //Spieler1 Start Werte Console.SetCursorPosition(1, 1); Spieler1.setXSpielerPos = 1; Spieler1.setYSpielerPos = 1; Console.Write("@"); while (istSpielAktiv == true) { //Tasten Abfragen Console.SetCursorPosition(1, 22); ConsoleKeyInfo taste; taste = Console.ReadKey(); HUD.zeichneHud(Spieler1, Inventar); switch (taste.Key) { //Pfeil Rauf case ConsoleKey.UpArrow: switch (Karte.feldStatus[Spieler1.getySpielerPos - 1, Spieler1.getxSpielerPos]) { case 0: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 0); Spieler1.spielerGehtHoch(Spieler1, Karte); break; case 1: break; case 2: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 2); Spieler1.spielerGehtHoch(Spieler1, Karte); break; case 3: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 3); Spieler1.spielerGehtHoch(Spieler1, Karte); break; case 4: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 4); Spieler1.spielerGehtHoch(Spieler1, Karte); break; } break; //Pfeil Runter case ConsoleKey.DownArrow: switch (Karte.feldStatus[Spieler1.getySpielerPos + 1, Spieler1.getxSpielerPos]) { case 0: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 0); Spieler1.spielerGehtRunter(Spieler1, Karte); break; case 1: break; case 2: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 2); Spieler1.spielerGehtRunter(Spieler1, Karte); break; case 3: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 3); Spieler1.spielerGehtRunter(Spieler1, Karte); break; case 4: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 4); Spieler1.spielerGehtRunter(Spieler1, Karte); break; } break; //Pfeil Links case ConsoleKey.LeftArrow: switch (Karte.feldStatus[Spieler1.getySpielerPos, Spieler1.getxSpielerPos - 1]) { case 0: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 0); Spieler1.spielerGehtLinks(Spieler1, Karte); break; case 1: break; case 2: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 2); Spieler1.spielerGehtLinks(Spieler1, Karte); break; case 3: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 3); Spieler1.spielerGehtLinks(Spieler1, Karte); break; case 4: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 4); Spieler1.spielerGehtLinks(Spieler1, Karte); break; } break; //Pfeil Rechts case ConsoleKey.RightArrow: switch (Karte.feldStatus[Spieler1.getySpielerPos, Spieler1.getxSpielerPos + 1]) { case 0: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 0); Spieler1.spielerGehtRechts(Spieler1, Karte); break; case 1: break; case 2: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 2); Spieler1.spielerGehtRechts(Spieler1, Karte); break; case 3: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 3); Spieler1.spielerGehtRechts(Spieler1, Karte); break; case 4: feldPrüfen(Spieler1, Karte, HUD, Inventar, Events, 4); Spieler1.spielerGehtRechts(Spieler1, Karte); break; } break; //Austrüstungs Auswahl case ConsoleKey.W: Inventar.selectWeapon(HUD, Spieler1); HUD.zeichneHud(Spieler1, Inventar); Karte.zeichneKarte(); zeichneSpielerPos(Spieler1); break; case ConsoleKey.A: Inventar.selectArmor(HUD, Spieler1); HUD.zeichneHud(Spieler1, Inventar); Karte.zeichneKarte(); zeichneSpielerPos(Spieler1); break; case ConsoleKey.R: Inventar.selectRing(HUD, Spieler1); HUD.zeichneHud(Spieler1, Inventar); Karte.zeichneKarte(); zeichneSpielerPos(Spieler1); break; case ConsoleKey.E: Kaufen.verkaufeItem(Spieler1, Inventar); HUD.zeichneHud(Spieler1, Inventar); Karte.zeichneKarte(); zeichneSpielerPos(Spieler1); Inventar.selectArmor(HUD, Spieler1); Inventar.selectWeapon(HUD, Spieler1); Inventar.selectRing(HUD, Spieler1); break; } } }