/// <summary> /// Bewegt alle Einheiten, die sich bewegen wollten /// </summary> static void EinheitenBewegen() { foreach (Einheit e in SpaceGame.HoleAlleEinheiten()) { if (e.LangerBefehl == null || e.LangerBefehl[0].ToUpper() != "NACH" || e.LangerBefehl.Length != 2) { // Einheit wollte sich gar nicht bewegen - überspringen continue; } string richtung = e.LangerBefehl[1].ToUpper(); int dx = 0; int dy = 0; switch (richtung) { case "OBEN": dy = -1; break; case "UNTEN": dy = 1; break; case "LINKS": dx = -1; break; case "RECHTS": dx = 1; break; default: Console.WriteLine("Fehler im NACH-Befehl von Einheit " + e.Nummer + ". Richtung " + richtung + " nicht erkannt."); continue; } int x = e.Sektor.X + dx; int y = e.Sektor.Y + dy; Sektor ziel = SpaceGame.FindeSektor(x, y); if (ziel == null) { Console.WriteLine("Fehler im NACH-Befehl von Einheit " + e.Nummer + ". Bei (" + x + "," + y + ") gibt es keinen Sektor."); continue; } // Wir haben einen gültigen Zielsektor. Bewege die Einheit! e.Sektor = ziel; ziel.Einheiten.Add(e); } }
static void TestdatenErzeugen() { SpaceGame.Daten.Sektoren = new List <Sektor>(); SpaceGame.Daten.Faktionen = new List <Faktion>(); SpaceGame.Daten.NächsteFaktionsNummer = 1; SpaceGame.Daten.NächsteEinheitenNummer = 1; Sektor s0 = new Sektor(); s0.Name = "Milchstrasse"; s0.X = 0; s0.Y = 0; s0.Metall = 100000; s0.Spookies = 20000; s0.Bewohner = 3244; Sektor s1 = new Sektor(); s1.Name = "Beteigeuze"; s1.X = 0; s1.Y = 1; s1.Metall = 100000; s1.Spookies = 200; s1.Bewohner = 30; Sektor s2 = new Sektor(); s2.Name = "Rigel"; s2.X = 1; s2.Y = 0; s2.Metall = 50; s2.Spookies = 1000; s2.Bewohner = 300; SpaceGame.Daten.Sektoren.Add(s0); SpaceGame.Daten.Sektoren.Add(s1); SpaceGame.Daten.Sektoren.Add(s2); Faktion polizei = new Faktion("poli", "zei", "Raumpolizei"); Faktion piraten = new Faktion("pi", "raten", "FiesRaumPiraten"); SpaceGame.Daten.Faktionen.Add(polizei); SpaceGame.Daten.Faktionen.Add(piraten); Einheit streifealpha = new Einheit(polizei, "Weltraumstreife Alpha"); streifealpha.Mitglieder = 10; streifealpha.Metall = 1000; streifealpha.Spookies = 1000; s0.Einheiten.Add(streifealpha); Einheit pirat1 = new Einheit(piraten, "Raumbart der Schreckliche"); pirat1.Mitglieder = 1; pirat1.Metall = 100000; pirat1.Spookies = 333333; s0.Einheiten.Add(pirat1); Einheit pirat2 = new Einheit(piraten, "Quatschibus Crew"); pirat2.Mitglieder = 8; pirat2.Metall = 10; pirat2.Spookies = 80; s0.Einheiten.Add(pirat2); Einheit pirat3 = new Einheit(piraten, "Schutzcrew Beteigeuze"); pirat3.Mitglieder = 10; pirat3.Metall = 100; pirat3.Spookies = 800; s1.Einheiten.Add(pirat3); }