/// <summary> /// Erstellt eine Regel aus der Konfiguration. /// </summary> /// <param name="regel">Eine beliebige Regel.</param> /// <param name="element">Das zugehörige Element.</param> /// <returns>Gesetzt, wenn die Regel ausgewertet werden konnte.</returns> private static bool RegelAnwenden( Energieregel regel, GrundElement element ) { // Prüfen if (regel == null) return false; // Lebensenergie auslesen und Regel erzeugen var lebensenergie = regel.Lebensenergie; if (lebensenergie != 0) element.RegelAnmelden( regel.ArtDerKollision, KollisionsRegel.LebenskraftDesSpielersÄndern( lebensenergie ) ); // Fertig return true; }
/// <summary> /// Rekonstruiert ein Element aus einer älteren Konfiguration. /// </summary> /// <param name="alteDarstellung">Die ursprüngliche Konfiguration.</param> protected Element( V1.Element alteDarstellung ) { // Abschliessen Kollisionsregeln = new List<Kollisionsregel>(); // Alles kopieren Breite = alteDarstellung.Width; Hoehe = alteDarstellung.Height; Melodie = alteDarstellung.Melodie; VertikalePosition = alteDarstellung.Bottom; HorizontalePosition = alteDarstellung.Left; // Lebensenergie auswerten var lebensenergie = alteDarstellung.Lebensenergie; if (lebensenergie != 0) { // Regel anlegen var energieRegel = new Energieregel { Lebensenergie = lebensenergie }; // Konfiguration der Regel abschliessen if (lebensenergie > 0) energieRegel.ArtDerKollision = KollisionsArten.VomSpielerGetroffen; else if (alteDarstellung.ElementArt == V1.ElementArt.Beweglich) energieRegel.ArtDerKollision = KollisionsArten.VomSpielerSeitlichGetroffen; else energieRegel.ArtDerKollision = KollisionsArten.VomSpielerGetroffen; // Regel eintragen Kollisionsregeln.Add( energieRegel ); } // Ausgang anmelden if (alteDarstellung.ElementArt == V1.ElementArt.Ausgang) Kollisionsregeln.Add( new Enderegel { Gewonnen = true, ArtDerKollision = KollisionsArten.VomSpielerGetroffen } ); // Element ausblenden - das muss immer die letzte Regel sein if (alteDarstellung.ElementArt == V1.ElementArt.Beweglich) Kollisionsregeln.Add( new Verschwinderegel { ArtDerKollision = KollisionsArten.VomSpielerGetroffen } ); }