/// <summary>
        /// Checks the value-ranges of all properties.
        /// </summary>
        public void RuleCheck()
        {
            // TODO: Strings into res-files

            // Playground
            if (PlayGroundBaseSize < 100000)
            {
                throw new ConfigurationErrorsException("Grundgröße des Spielfeldes muss größer 100.000 sein");
            }

            if (PlayGroundSizePlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Playground Playermultiplikator darf nicht kleiner 0 sein");
            }

            if (AntHillRadius < 0)
            {
                throw new ConfigurationErrorsException("Ameisenbau braucht einen Radius >= 0");
            }

            if (BattleRange < 0)
            {
                throw new ConfigurationErrorsException("Angriffsradius der Wanze darf nicht kleiner 0 sein");
            }

            if (AntHillRandomDisplacement < 0f || AntHillRandomDisplacement > 1f)
            {
                throw new ConfigurationErrorsException("Der Wert der Zufälligen verschiebung vom Kreispunkt muss zwischen 0.0 (0%) und 1.0 (100%) liegen.");
            }

            if (SpawnCellSize < 1 && SpawnCellSize != 0)
            {
                throw new ConfigurationErrorsException("Die Größe der Spawnzelle darf nicht kleiner 1 sein.");
            }

            //überprüfen ob genug Spawnzellen da sind
            int cellsX = (int)Math.Ceiling((PlayGroundBaseSize * (4f / 3f)) / SpawnCellSize) - 2;
            int cellsY = (int)Math.Ceiling((PlayGroundBaseSize * (3f / 4f)) / SpawnCellSize) - 2;

            if (cellsX * cellsY < SugarSimultaneousCount + FruitSimultaneousCount)
            {
                throw new ConfigurationErrorsException("Die Größe der Spawnzellen ist zu groß, so das es nicht gewährleistet ist, dass genug Spawnzellen für alle Nahrung vorhanden sind.");
            }

            if (RestrictedZoneRadius < 0)
            {
                throw new ConfigurationErrorsException("Der Radius der gesperrten Zone um den Ameisenbau darf nicht kleiner 0 sein.");
            }

            if (FarZoneRadius < 0)
            {
                throw new ConfigurationErrorsException("Der Radius der zu weit entfernten Zone darf nicht kleiner 0 sein.");
            }

            if (DecreaseValue < 0)
            {
                throw new ConfigurationErrorsException("Der verringerungs Wert für Nachbarzellen darf nicht kleiner 0 sein");
            }

            if (RegenerationValue < 0)
            {
                throw new ConfigurationErrorsException("Der regenerirungs Wert aller Zellen darf nicht kleiner 0 sein");
            }

            // Livetime and Respawn
            if (AntSimultaneousCount < 0)
            {
                throw new ConfigurationErrorsException("Weniger als 0 simultane Ameisen sind nicht möglich");
            }

            if (BugSimultaneousCount < 0)
            {
                throw new ConfigurationErrorsException("Weniger als 0 simultane Wanzen sind nicht möglich");
            }

            if (SugarSimultaneousCount < 0)
            {
                throw new ConfigurationErrorsException("Weniger als 0 simultane Zuckerberge sind nicht möglich");
            }

            if (FruitSimultaneousCount < 0)
            {
                throw new ConfigurationErrorsException("Weniger als 0 simultanes Obst sind nicht möglich");
            }

            if (BugCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Wanzen ist nicht zulässig");
            }

            if (SugarCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Zucker ist nicht zulässig");
            }

            if (FruitCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Obst ist nicht zulässig");
            }

            if (AntCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Ameisen ist nicht zulässig");
            }

            if (AntTotalCount < 0)
            {
                throw new ConfigurationErrorsException("Negative Gesamtmenge bei Ameisen ist nicht zulässig");
            }

            if (BugTotalCount < 0)
            {
                throw new ConfigurationErrorsException("Negative Gesamtmenge bei Wanzen ist nicht zulässig");
            }

            if (SugarTotalCount < 0)
            {
                throw new ConfigurationErrorsException("Negative Gesamtmenge bei Zucker ist nicht zulässig");
            }

            if (FruitTotalCount < 0)
            {
                throw new ConfigurationErrorsException("Negative Gesamtmenge bei Obst ist nicht zulässig");
            }

            if (AntTotalCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Ameisen ist nicht zulässig");
            }

            if (BugTotalCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Wanzen ist nicht zulässig");
            }

            if (SugarTotalCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Zucker ist nicht zulässig");
            }

            if (FruitTotalCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Obst ist nicht zulässig");
            }

            if (AntRespawnDelay < 0)
            {
                throw new ConfigurationErrorsException("Negative Respawnzeit bei Ameisen ist nicht zulässig");
            }

            if (BugRespawnDelay < 0)
            {
                throw new ConfigurationErrorsException("Negative Respawnzeit bei Wanzen ist nicht zulässig");
            }

            if (SugarRespawnDelay < 0)
            {
                throw new ConfigurationErrorsException("Negative Respawnzeit bei Zucker ist nicht zulässig");
            }

            if (FruitRespawnDelay < 0)
            {
                throw new ConfigurationErrorsException("Negative Respawnzeit bei Obst ist nicht zulässig");
            }

            // Bugsettings
            if (BugAttack < 0)
            {
                throw new ConfigurationErrorsException("Negativer Angriffswert für Wanzen ist nicht zulässig");
            }

            if (BugRotationSpeed < 0)
            {
                throw new ConfigurationErrorsException("Negative Rotationsgeschwindigkeit für Wanzen ist nicht zulässig");
            }

            if (BugEnergy < 0)
            {
                throw new ConfigurationErrorsException("Negativer Energiewert für Wanzen ist nicht zulässig");
            }

            if (BugSpeed < 0)
            {
                throw new ConfigurationErrorsException("Negativer Geschwindigkeitswert für Wanzen ist nicht zulässig");
            }

            if (BugRadius < 0)
            {
                throw new ConfigurationErrorsException("Negativer Radius für Wanzen ist nicht zulässig");
            }

            if (BugRegenerationValue < 0)
            {
                throw new ConfigurationErrorsException("Negativer Regenerationswert für Wanzen ist nicht zulässig");
            }

            if (BugRegenerationDelay < 0)
            {
                throw new ConfigurationErrorsException("Negativer Regenerationsdelay für Wanzen ist nicht zulässig");
            }

            // Foodstuff
            if (SugarAmountMinimum < 0)
            {
                throw new ConfigurationErrorsException("Negativer Nahrungswert bei Zucker ist nicht zulässig");
            }

            if (SugarAmountMaximum < 0)
            {
                throw new ConfigurationErrorsException("Negativer Nahrungswert bei Zucker ist nicht zulässig");
            }

            if (FruitAmountMinimum < 0)
            {
                throw new ConfigurationErrorsException("Negativer Nahrungswert bei Obst ist nicht zulässig");
            }

            if (FruitAmountMaximum < 0)
            {
                throw new ConfigurationErrorsException("Negativer Nahrungswert bei Obst ist nicht zulässig");
            }

            if (FruitLoadMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negativer Loadmultiplikator bei Obst ist nicht zulässig");
            }

            if (FruitRadiusMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negativer Radiusmultiplikator bei Obst ist nicht zulässig");
            }

            // Marker

            if (MarkerSizeMinimum < 0)
            {
                throw new ConfigurationErrorsException("Negative Minimalgröße bei Markierung ist nicht zulässig");
            }

            if (MarkerDistance < 0)
            {
                throw new ConfigurationErrorsException("Negative Mindestdistanz bei Markierung ist nicht zulässig");
            }

            if (MarkerMaximumAge < 0)
            {
                throw new ConfigurationErrorsException("Negative maximallebensdauer bei Markierungen ist nicht zulässig");
            }

            // Castes
            CasteSettings.RuleCheck();
        }
        /// <summary>
        /// Checks the value-ranges of all properties.
        /// </summary>
        public void RuleCheck()
        {
            // TODO: Strings into res-files

            // Playground
            if (PlayGroundBaseSize < 100000)
            {
                throw new ConfigurationErrorsException("Grundgröße des Spielfeldes muss größer 100.000 sein");
            }

            if (PlayGroundSizePlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Playground Playermultiplikator darf nicht kleiner 0 sein");
            }

            if (AntHillRadius < 0)
            {
                throw new ConfigurationErrorsException("Ameisenbau braucht einen Radius >= 0");
            }

            if (BattleRange < 0)
            {
                throw new ConfigurationErrorsException("Angriffsradius der Wanze darf nicht kleiner 0 sein");
            }

            // Livetime and Respawn
            if (AntSimultaneousCount < 0)
            {
                throw new ConfigurationErrorsException("Weniger als 0 simultane Ameisen sind nicht möglich");
            }

            if (BugSimultaneousCount < 0)
            {
                throw new ConfigurationErrorsException("Weniger als 0 simultane Wanzen sind nicht möglich");
            }

            if (SugarSimultaneousCount < 0)
            {
                throw new ConfigurationErrorsException("Weniger als 0 simultane Zuckerberge sind nicht möglich");
            }

            if (FruitSimultaneousCount < 0)
            {
                throw new ConfigurationErrorsException("Weniger als 0 simultanes Obst sind nicht möglich");
            }

            if (BugCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Wanzen ist nicht zulässig");
            }

            if (SugarCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Zucker ist nicht zulässig");
            }

            if (FruitCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Obst ist nicht zulässig");
            }

            if (AntCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Ameisen ist nicht zulässig");
            }

            if (AntTotalCount < 0)
            {
                throw new ConfigurationErrorsException("Negative Gesamtmenge bei Ameisen ist nicht zulässig");
            }

            if (BugTotalCount < 0)
            {
                throw new ConfigurationErrorsException("Negative Gesamtmenge bei Wanzen ist nicht zulässig");
            }

            if (SugarTotalCount < 0)
            {
                throw new ConfigurationErrorsException("Negative Gesamtmenge bei Zucker ist nicht zulässig");
            }

            if (FruitTotalCount < 0)
            {
                throw new ConfigurationErrorsException("Negative Gesamtmenge bei Obst ist nicht zulässig");
            }

            if (AntTotalCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Ameisen ist nicht zulässig");
            }

            if (BugTotalCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Wanzen ist nicht zulässig");
            }

            if (SugarTotalCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Zucker ist nicht zulässig");
            }

            if (FruitTotalCountPlayerMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negative Spielermuliplikatoren bei Obst ist nicht zulässig");
            }

            if (AntRespawnDelay < 0)
            {
                throw new ConfigurationErrorsException("Negative Respawnzeit bei Ameisen ist nicht zulässig");
            }

            if (BugRespawnDelay < 0)
            {
                throw new ConfigurationErrorsException("Negative Respawnzeit bei Wanzen ist nicht zulässig");
            }

            if (SugarRespawnDelay < 0)
            {
                throw new ConfigurationErrorsException("Negative Respawnzeit bei Zucker ist nicht zulässig");
            }

            if (FruitRespawnDelay < 0)
            {
                throw new ConfigurationErrorsException("Negative Respawnzeit bei Obst ist nicht zulässig");
            }

            // Bugsettings
            if (BugAttack < 0)
            {
                throw new ConfigurationErrorsException("Negativer Angriffswert für Wanzen ist nicht zulässig");
            }

            if (BugRotationSpeed < 0)
            {
                throw new ConfigurationErrorsException("Negative Rotationsgeschwindigkeit für Wanzen ist nicht zulässig");
            }

            if (BugEnergy < 0)
            {
                throw new ConfigurationErrorsException("Negativer Energiewert für Wanzen ist nicht zulässig");
            }

            if (BugSpeed < 0)
            {
                throw new ConfigurationErrorsException("Negativer Geschwindigkeitswert für Wanzen ist nicht zulässig");
            }

            if (BugRadius < 0)
            {
                throw new ConfigurationErrorsException("Negativer Radius für Wanzen ist nicht zulässig");
            }

            if (BugRegenerationValue < 0)
            {
                throw new ConfigurationErrorsException("Negativer Regenerationswert für Wanzen ist nicht zulässig");
            }

            if (BugRegenerationDelay < 0)
            {
                throw new ConfigurationErrorsException("Negativer Regenerationsdelay für Wanzen ist nicht zulässig");
            }

            // Foodstuff
            if (SugarAmountMinimum < 0)
            {
                throw new ConfigurationErrorsException("Negativer Nahrungswert bei Zucker ist nicht zulässig");
            }

            if (SugarAmountMaximum < 0)
            {
                throw new ConfigurationErrorsException("Negativer Nahrungswert bei Zucker ist nicht zulässig");
            }

            if (FruitAmountMinimum < 0)
            {
                throw new ConfigurationErrorsException("Negativer Nahrungswert bei Obst ist nicht zulässig");
            }

            if (FruitAmountMaximum < 0)
            {
                throw new ConfigurationErrorsException("Negativer Nahrungswert bei Obst ist nicht zulässig");
            }

            if (FruitLoadMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negativer Loadmultiplikator bei Obst ist nicht zulässig");
            }

            if (FruitRadiusMultiplier < 0)
            {
                throw new ConfigurationErrorsException("Negativer Radiusmultiplikator bei Obst ist nicht zulässig");
            }

            // Marker

            if (MarkerSizeMinimum < 0)
            {
                throw new ConfigurationErrorsException("Negative Minimalgröße bei Markierung ist nicht zulässig");
            }

            if (MarkerDistance < 0)
            {
                throw new ConfigurationErrorsException("Negative Mindestdistanz bei Markierung ist nicht zulässig");
            }

            if (MarkerMaximumAge < 0)
            {
                throw new ConfigurationErrorsException("Negative maximallebensdauer bei Markierungen ist nicht zulässig");
            }

            // Castes
            CasteSettings.RuleCheck();
        }