/// <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(); }