internal static List <string> ReaktionAusgabe(this Reaktion reaktion, KampfAktionsTyp typ, GegnerBase gegner) { List <string> ausgabe; switch (typ) { case KampfAktionsTyp.SpielerAngriff: case KampfAktionsTyp.SpielerMagie: ausgabe = AusgabeSpielerAktion(reaktion); break; case KampfAktionsTyp.GegnerAngriff: ausgabe = AusgabeGegnerAktion(reaktion, gegner); break; case KampfAktionsTyp.SpielerItem: ausgabe = AusgabeSpielerItem(reaktion, gegner); break; default: ausgabe = new List <string>(); break; } return(ausgabe); }
private int SchadenBerechnen(KampfAktionsTyp typ) { int schaden = typ switch { KampfAktionsTyp.SpielerAngriff => BerechneSchadenNormal(), KampfAktionsTyp.SpielerMagie => BerechneSchadenMagie(), KampfAktionsTyp.GegnerAngriff => BerechneSchadenGegnerAngriff(), _ => 10, }; return(Math.Max(0, schaden)); }
/// <summary> /// Führt eine Aktion des entsprechenden <see cref="KampfAktionsTyp"/>s aus. /// </summary> /// <param name="typ">Der Typ der Aktion.</param> public void AktionAusführen(KampfAktionsTyp typ) { Reaktion reaktion = null; switch (typ) { case KampfAktionsTyp.SpielerAngriff: reaktion = SchadenAusteilenAngriff(); break; case KampfAktionsTyp.SpielerMagie: reaktion = SchadenAusteilenMagie(); break; case KampfAktionsTyp.SpielerItem: reaktion = ItemBenutzen(); break; case KampfAktionsTyp.GegnerAngriff: reaktion = SchadenErhalten(); break; case KampfAktionsTyp.GegnerSpezial: reaktion = SpezialAktionAusführen(); break; } Ausgabe.AddRange(reaktion.ReaktionAusgabe(typ, Gegner)); if (reaktion != null && Spieler.Lebenspunkte > 0 && Gegner.Lebenspunkte > 0) { Aktion(); } else { if (Gegner.Lebenspunkte <= 0) { Ausgabe.Add(Gegner.TodesText); } SchreibeAusgabe(); IstZuende = true; } }