//Alle Staemme anzeigen static void ShowAllClans() { Console.WriteLine("### 1: Staemme anzeigen ###"); Console.WriteLine("Stammname Stammesgründung Stammesfuehrer"); //Schleife für alle Staemme foreach (var stamm in AlleClans) { //Berechnung des Machtfaktors des Clans int MachtDesClans = Stamm.SummeDesMachtfaktors(stamm); Console.Write("" + stamm.Name + "(" + MachtDesClans + ") " + stamm.GruendungNdK + "ndK "); //Wenn wir den Stammesfuehrer nicht kennen wollen wir nicht einfach einen leeren Eintrag anzeigen, sondern etwas ausgeben. if (!string.IsNullOrEmpty(stamm.Stammeshaupt)) { Console.Write("" + stamm.Stammeshaupt + ", seit " + stamm.StammeshauptSeit + " Jahren"); } else { Console.Write("unbekannter Stammesfuehrer"); } Console.WriteLine("\n Besteuerung: " + (MachtDesClans * SteuerBasisSatz)); } //Schauen wir mal, ob der Benutzer fertig ist, oder noch etwas erledigen möchte. ResetProgram(); }
//Einen Stamm editieren static void EditAClan() { Console.WriteLine("### 2: Staemme editieren ###"); Console.WriteLine("Welchen Stamm möchten Sie editieren?"); int countOfClans = 0; int curremtstamm = 0; foreach (var stamm in AlleClans) { countOfClans += 1; //Berechnung des Machtfaktors des Clans int MachtDesClans = Stamm.SummeDesMachtfaktors(stamm); Console.Write("" + countOfClans + " : " + stamm.Name + "(" + MachtDesClans + ")\n"); //Wenn wir den Stammesfuehrer nicht kennen wollen wir nicht einfach einen leeren Eintrag anzeigen, sondern etwas ausgeben. } try { //Auswahl des Nutzers übernehmen curremtstamm = (int.Parse(Console.ReadLine()) - 1); } catch { //Bei Problem dem Nutzer eine zweite Eingabe zur Verfügung stellen Console.WriteLine("Bitte geben Sie eine gültige Stammeszahl an ('1' - '" + AlleClans.Count() + "')!"); int stamm = int.Parse(Console.ReadLine()); } //Namensänderung des Stammes Console.WriteLine("Namensänderung: " + AlleClans[curremtstamm].Name + " - leer lassen um nicht zu verändern."); string newName = Console.ReadLine(); if (newName.Length > 0) { //Wenn der Name geändert wird, brauchen die Bewohnere eine Benachrichtigung, sonst wird das nächste Stammestreffen peinlich für sie. foreach (var bewohner in AlleBewohner) { if (bewohner.Stamm.Equals(AlleClans[curremtstamm].Name)) { bewohner.Stamm = newName; } } //Namen des Stamms ändern AlleClans[curremtstamm].Name = newName; } //Gründungszeit ändern Console.WriteLine("Gründung: " + AlleClans[curremtstamm].GruendungNdK + " - leer lassen um nicht zu verändern."); string newFounding = Console.ReadLine(); if (!string.IsNullOrEmpty(newFounding)) { if (int.Parse(newFounding) > 0) { AlleClans[curremtstamm].GruendungNdK = int.Parse(newFounding); } } //Bewohner in Charge ändern Console.WriteLine("Führungsänderung (Bewohner): " + AlleClans[curremtstamm].Stammeshaupt + " - leer lassen um nicht zu verändern."); string newLeader = Console.ReadLine(); bool fuehrerGefunden = false; if (newLeader.Length > 0) { foreach (var bewohner in AlleBewohner) { if (AlleClans[curremtstamm].Mitglieder.Contains(bewohner)) { AlleClans[curremtstamm].Stammeshaupt = newLeader; fuehrerGefunden = true; } //Wenn kein Bewohner passt, gibt es diesen (noch) nicht } if (!fuehrerGefunden) { Console.WriteLine("Dieser Bewohner ist nicht einmal im Stamm - netter Versuch!"); } } //Zeit der Machtübernahme ändern, falls Führung vorhanden - ansonsten übersprungen if (AlleClans[curremtstamm].Stammeshaupt != "") { Console.WriteLine("Führungsänderung (Zeit in Jahren): " + AlleClans[curremtstamm].StammeshauptSeit + " - leer lassen um nicht zu verändern."); string newLeaderSince = Console.ReadLine(); try { if (!string.IsNullOrEmpty(newLeaderSince)) { if (int.Parse(newLeaderSince) > 0) { AlleClans[curremtstamm].StammeshauptSeit = int.Parse(newLeaderSince); } } } catch (Exception) { Console.WriteLine("Ungültige Eingabe"); throw; } } ResetProgram(); }