Decompiled source of Whiteshark Cheat Overhaul v0.3.26

WhitesharkCheatOverhaul/WhitesharkCheatOverhaul.dll

Decompiled 11 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Text;
using BepInEx;
using BepInEx.Logging;
using Game.Prefabs;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Newtonsoft.Json;
using UnityEngine;
using Wayz.CS2;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("WhitesharkCheatOverhaul")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("0.3.26.0")]
[assembly: AssemblyInformationalVersion("0.3.26+8a0f7cb9771f7c5b1a01c536b12d74c7f3a77afd")]
[assembly: AssemblyProduct("WhitesharkCheatOverhaul")]
[assembly: AssemblyTitle("WhitesharkCheatOverhaul")]
[assembly: AssemblyVersion("0.3.26.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
public interface ICityAttractiveness
{
	float CityAttractiveness { get; set; }
}
public interface ICityDisasterDamageRate
{
	float CityDisasterDamageRate { get; set; }
}
public interface ICityDisasterWarningTime
{
	float CityDisasterWarningTime { get; set; }
}
public interface ICityDiseaseprobability
{
	float CityDiseaseprobability { get; set; }
}
public interface ICityEntertainment
{
	float CityEntertainment { get; set; }
}
public interface ICityExportCost
{
	float CityExportCost { get; set; }
}
public interface ICityHospitalEfficiency
{
	float CityHospitalEfficiency { get; set; }
}
public interface ICityImportcost
{
	float CityImportcost { get; set; }
}
public interface ICityIndustrialEfficiency
{
	float CityIndustrialEfficiency { get; set; }
}
public interface ICityIndustrialElectronicDemand
{
	float CityIndustrialElectronicDemand { get; set; }
}
public interface ICityIndustrialElectronicEfficiency
{
	float CityIndustrialElectronicEfficiency { get; set; }
}
public interface ICityIndustrialGroundPollution
{
	float CityIndustrialGroundPollution { get; set; }
}
public interface ICityLoanIntrest
{
	float CityLoanIntrest { get; set; }
}
public interface ICityOfficeEfficiency
{
	float CityOfficeEfficiency { get; set; }
}
public interface ICityOfficeSoftwareDemand
{
	float CityOfficeSoftwareDemand { get; set; }
}
public interface ICityOfficeSoftwareEfficiency
{
	float CityOfficeSoftwareEfficiency { get; set; }
}
public interface ICityOilResourceAmmount
{
	float CityOilResourceAmmount { get; set; }
}
public interface ICityOreResourceAmmount
{
	float CityOreResourceAmmount { get; set; }
}
public interface ICityParkEntertainment
{
	float CityParkEntertainment { get; set; }
}
public interface ICityPollutionhealthAffect
{
	float CityPollutionhealthAffect { get; set; }
}
public interface ICityRecoverFailChange
{
	float CityRecoverFailChange { get; set; }
}
public interface ICityTelecomCapacity
{
	float CityTelecomCapacity { get; set; }
}
public interface ICityUniversityGraduation
{
	float CityUniversityGraduation { get; set; }
}
public interface ICityUniversityInterest
{
	float CityUniversityInterest { get; set; }
}
public interface ILocalWellbeing
{
	float LocalWellbeing { get; set; }

	float LocalWellbeingRadius { get; set; }
}
public interface ILocalCrimeAccumulation
{
	float LocalCrimeAccumulation { get; set; }

	float LocalCrimeAccumulationRadius { get; set; }
}
public interface ILocalForestFireHazard
{
	float LocalForestFireHazard { get; set; }

	float LocalForestFireHazardRadius { get; set; }
}
public interface ILocalForestFireResponseTime
{
	float LocalForestFireResponseTime { get; set; }

	float LocalForestFireResponseTimeRadius { get; set; }
}
public interface IMailboxOptions
{
	int Mailcapacity { get; set; }

	float ComfortFactor { get; set; }
}
namespace Wayz.CS2
{
	public static class WayzSettingsManager
	{
		public static T? GetSettings<T>(string modIdentifier, string settingName)
		{
			string text = Path.Combine(Application.persistentDataPath, "ModSettings", modIdentifier, settingName + ".json");
			if (!File.Exists(text))
			{
				throw new FileNotFoundException("Settings file not found at " + text);
			}
			string text2 = File.ReadAllText(text, Encoding.UTF8);
			return JsonConvert.DeserializeObject<T>(text2);
		}

		public static void SaveSettings<T>(string modIdentifier, string settingName, T settings)
		{
			if (!Directory.Exists(Path.Combine(Application.persistentDataPath, "ModSettings", modIdentifier)))
			{
				Directory.CreateDirectory(Path.Combine(Application.persistentDataPath, "ModSettings", modIdentifier));
			}
			string path = Path.Combine(Application.persistentDataPath, "ModSettings", modIdentifier, settingName + ".json");
			string contents = JsonConvert.SerializeObject((object)settings, (Formatting)1);
			File.WriteAllText(path, contents, Encoding.UTF8);
		}

		public static bool TryGetSettings<T>(string modIdentifier, string settingName, out T settings)
		{
			try
			{
				settings = GetSettings<T>(modIdentifier, settingName);
				return settings != null;
			}
			catch (FileNotFoundException)
			{
				settings = default(T);
				return false;
			}
		}

		public static T GetOrInitializeSettings<T>(string modIdentifier, string settingName) where T : new()
		{
			if (TryGetSettings<T>(modIdentifier, settingName, out var settings))
			{
				return settings;
			}
			T val = new T();
			SaveSettings(modIdentifier, settingName, val);
			return val;
		}
	}
}
namespace WhitesharkCheatOverhaul
{
	public class ModifyStats
	{
		public static void ModifyServiceConsumption(PrefabBase prefab, IServiceConsumptionOptions options)
		{
			ServiceConsumption component = ((ComponentBase)prefab).GetComponent<ServiceConsumption>();
			component.m_Upkeep = options.Upkeep;
			component.m_ElectricityConsumption = options.ElectricityConsumption;
			component.m_WaterConsumption = options.WaterConsumption;
			component.m_GarbageAccumulation = options.GarbageAccumulation;
			component.m_TelecomNeed = options.TelecomNeed;
		}

		public static void ModifyAttraction(PrefabBase prefab, IAttractionOptions options)
		{
			Attraction component = ((ComponentBase)prefab).GetComponent<Attraction>();
			component.m_Attractiveness = options.Attractiveness;
		}

		public static void ModifyBattery(PrefabBase prefab, IBatteryOptions options)
		{
			Battery component = ((ComponentBase)prefab).GetComponent<Battery>();
			component.m_Capacity = options.BatteryCapacity;
			component.m_PowerOutput = options.PowerOutput;
		}

		public static void ModifyCargoTransportStation(PrefabBase prefab, ICargoTransportStationOptions options)
		{
			CargoTransportStation component = ((ComponentBase)prefab).GetComponent<CargoTransportStation>();
			component.transports = options.Transports;
		}

		public static void ModifyIDeathcareFacility(PrefabBase prefab, IDeathcareFacilityOptions options)
		{
			DeathcareFacility component = ((ComponentBase)prefab).GetComponent<DeathcareFacility>();
			component.m_HearseCapacity = options.HearseCapacity;
			component.m_StorageCapacity = options.StorageCapacity;
			component.m_ProcessingRate = options.ProcessingRate;
		}

		public static void ModifyEmergencyShelter(PrefabBase prefab, IEmergencyShelterOptions options)
		{
			EmergencyShelter component = ((ComponentBase)prefab).GetComponent<EmergencyShelter>();
			component.m_ShelterCapacity = options.ShelterCapacity;
			component.m_VehicleCapacity = options.VehicleCapacity;
		}

		public static void ModifyFireStation(PrefabBase prefab, IFireStationOptions options)
		{
			FireStation component = ((ComponentBase)prefab).GetComponent<FireStation>();
			component.m_FireEngineCapacity = options.FireEngineCapacity;
			component.m_FireHelicopterCapacity = options.FireHelicopterCapacity;
			component.m_DisasterResponseCapacity = options.DisasterResponseCapacity;
			component.m_VehicleEfficiency = options.VehicleEfficiency;
		}

		public static void ModifyPollution(PrefabBase prefab, IPollutionOptions options)
		{
			Pollution component = ((ComponentBase)prefab).GetComponent<Pollution>();
			component.m_AirPollution = options.AirPollution;
			component.m_GroundPollution = options.GroundPollution;
			component.m_NoisePollution = options.NoisePollution;
		}

		public static void ModifyGarbageFacility(PrefabBase prefab, IGarbageFacilityOption options)
		{
			GarbageFacility component = ((ComponentBase)prefab).GetComponent<GarbageFacility>();
			component.m_GarbageCapacity = options.GarbageCapacity;
			component.m_VehicleCapacity = options.GarbageVehicleCapacity;
			component.m_TransportCapacity = options.GarbageTransportCapacity;
			component.m_ProcessingSpeed = options.GarbageProcessingspeed;
		}

		public static void ModifyPowerPlant(PrefabBase prefab, IPowerPlantOptions options)
		{
			PowerPlant component = ((ComponentBase)prefab).GetComponent<PowerPlant>();
			component.m_ElectricityProduction = options.ElectricityProduction;
		}

		public static void ModifyStorageLimit(PrefabBase prefab, IStorageLimitOptions options)
		{
			StorageLimit component = ((ComponentBase)prefab).GetComponent<StorageLimit>();
			component.storageLimit = options.StorageLimit;
		}

		public static void ModifyWaterPumpingStation(PrefabBase prefab, IWaterPumpingStationOptions options)
		{
			WaterPumpingStation component = ((ComponentBase)prefab).GetComponent<WaterPumpingStation>();
			component.m_Capacity = options.PumpCapacity;
			component.m_Purification = options.Purification;
		}

		public static void ModifyTelecomFacility(PrefabBase prefab, ITelecomFacilityOptions options)
		{
			TelecomFacility component = ((ComponentBase)prefab).GetComponent<TelecomFacility>();
			component.m_Range = options.TelecomRange;
			component.m_NetworkCapacity = options.NetworkCapacity;
		}

		public static void ModifyCityEntertainment(PrefabBase prefab, ICityEntertainment options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 20));
			val.m_Delta = options.CityEntertainment;
		}

		public static void ModifyCityTelecomCapacity(PrefabBase prefab, ICityTelecomCapacity options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 19));
			val.m_Delta = options.CityTelecomCapacity;
		}

		public static void ModifyCityAttractiveness(PrefabBase prefab, ICityAttractiveness options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 0));
			val.m_Delta = options.CityAttractiveness;
		}

		public static void ModifyGarbageTruck(PrefabBase prefab, IGarbageTruckOptions options)
		{
			GarbageTruck component = ((ComponentBase)prefab).GetComponent<GarbageTruck>();
			component.m_GarbageCapacity = options.GarbageTruckCapacity;
			component.m_UnloadRate = options.GarbageTruckUnloadRate;
		}

		public static void ModifyPublicTransportVehicle(PrefabBase prefab, IPublicTransportVehicle options)
		{
			PublicTransport component = ((ComponentBase)prefab).GetComponent<PublicTransport>();
			component.m_PassengerCapacity = options.PassengerCapacity;
			component.m_MaintenanceRange = options.Maintenancerange;
		}

		public static void ModifyParkingFacility(PrefabBase prefab, IParkingFacilityOptions options)
		{
			ParkingFacility component = ((ComponentBase)prefab).GetComponent<ParkingFacility>();
			component.m_GarageMarkerCapacity = options.GarageCapacity;
			component.m_ComfortFactor = options.Comfortfactor;
		}

		public static void ModifyServiceCoverage(PrefabBase prefab, IServiceCoverageOptions options)
		{
			ServiceCoverage component = ((ComponentBase)prefab).GetComponent<ServiceCoverage>();
			component.m_Range = options.ServiceCoverageRange;
			component.m_Capacity = options.ServiceCoverageCapacity;
			component.m_Magnitude = options.ServiceCoverageMagnitude;
		}

		public static void ModifyLeisureProvider(PrefabBase prefab, ILeisureProviderOptions options)
		{
			LeisureProvider component = ((ComponentBase)prefab).GetComponent<LeisureProvider>();
			component.m_Efficiency = options.LeisureEfficiency;
		}

		public static void ModifySewageOutlet(PrefabBase prefab, ISewageOutletOptions options)
		{
			SewageOutlet component = ((ComponentBase)prefab).GetComponent<SewageOutlet>();
			component.m_Capacity = options.SewageCapacity;
			component.m_Purification = options.SewagePurification;
		}

		public static void ModifyGarbagePowered(PrefabBase prefab, IGarbagePoweredOptions options)
		{
			GarbagePowered component = ((ComponentBase)prefab).GetComponent<GarbagePowered>();
			component.m_ProductionPerUnit = options.ProductionPerUnit;
			component.m_Capacity = options.ProductionCapacity;
		}

		public static void ModifyCityIndustrialGroundPollution(PrefabBase prefab, ICityIndustrialGroundPollution options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 9));
			val.m_Delta = options.CityIndustrialGroundPollution;
		}

		public static void ModifyHospital(PrefabBase prefab, IHospitalOptions options)
		{
			Hospital component = ((ComponentBase)prefab).GetComponent<Hospital>();
			component.m_AmbulanceCapacity = options.AmbulanceCapacity;
			component.m_MedicalHelicopterCapacity = options.HelicopterCapacity;
			component.m_PatientCapacity = options.PatientCapacity;
			component.m_TreatmentBonus = options.TreatmentBonus;
		}

		public static void ModifyPostOffice(PrefabBase prefab, IPostFacilityOptions options)
		{
			PostFacility component = ((ComponentBase)prefab).GetComponent<PostFacility>();
			component.m_MailBoxCapacity = options.MailboxCapacity;
			component.m_PostVanCapacity = options.PostVanCapacity;
			component.m_MailStorageCapacity = options.MailStorageCapacity;
			component.m_PostTruckCapacity = options.PostTrucksCapacity;
			component.m_SortingRate = options.SortingRate;
		}

		public static void ModifyWindPowered(PrefabBase prefab, IWindPoweredOptions options)
		{
			WindPowered component = ((ComponentBase)prefab).GetComponent<WindPowered>();
			component.m_Production = options.Production;
			component.m_MaximumWind = options.MaximumWind;
		}

		public static void ModifyGroundwaterPowered(PrefabBase prefab, IGroundWaterPoweredOptions options)
		{
			GroundWaterPowered component = ((ComponentBase)prefab).GetComponent<GroundWaterPowered>();
			component.m_Production = options.Production;
			component.m_MaximumGroundWater = options.MaximumGroundwater;
		}

		public static void ModifySolarPowered(PrefabBase prefab, ISolarPoweredOptions options)
		{
			SolarPowered component = ((ComponentBase)prefab).GetComponent<SolarPowered>();
			component.m_Production = options.Production;
		}

		public static void ModifyLocalWellbeing(PrefabBase prefab, ILocalWellbeing options)
		{
			LocalEffects component = ((ComponentBase)prefab).GetComponent<LocalEffects>();
			LocalEffectInfo val = ((IEnumerable<LocalEffectInfo>)component.m_Effects).FirstOrDefault((Func<LocalEffectInfo, bool>)((LocalEffectInfo effect) => (int)effect.m_Type == 3));
			val.m_Delta = options.LocalWellbeing;
			val.m_Radius = options.LocalWellbeingRadius;
		}

		public static void ModifyCityImportCost(PrefabBase prefab, ICityImportcost options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 26));
			val.m_Delta = options.CityImportcost;
		}

		public static void ModifyPostVan(PrefabBase prefab, IPostVanOptions options)
		{
			PostVan component = ((ComponentBase)prefab).GetComponent<PostVan>();
			component.m_MailCapacity = options.MailCapacity;
		}

		public static void ModifyLocalCrimeAccumulation(PrefabBase prefab, ILocalCrimeAccumulation options)
		{
			LocalEffects component = ((ComponentBase)prefab).GetComponent<LocalEffects>();
			LocalEffectInfo val = ((IEnumerable<LocalEffectInfo>)component.m_Effects).FirstOrDefault((Func<LocalEffectInfo, bool>)((LocalEffectInfo effect) => (int)effect.m_Type == 0));
			val.m_Delta = options.LocalCrimeAccumulation;
			val.m_Radius = options.LocalCrimeAccumulationRadius;
		}

		public static void ModifyCityOfficeEfficiency(PrefabBase prefab, ICityOfficeEfficiency options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 32));
			val.m_Delta = options.CityOfficeEfficiency;
		}

		public static void ModifyCityUniversityInterest(PrefabBase prefab, ICityUniversityInterest options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 14));
			val.m_Delta = options.CityUniversityInterest;
		}

		public static void ModifyCityUniversityGraduation(PrefabBase prefab, ICityUniversityGraduation options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 25));
			val.m_Delta = options.CityUniversityGraduation;
		}

		public static void ModifyLocalForestFireHazard(PrefabBase prefab, ILocalForestFireHazard options)
		{
			LocalEffects component = ((ComponentBase)prefab).GetComponent<LocalEffects>();
			LocalEffectInfo val = ((IEnumerable<LocalEffectInfo>)component.m_Effects).FirstOrDefault((Func<LocalEffectInfo, bool>)((LocalEffectInfo effect) => (int)effect.m_Type == 2));
			val.m_Delta = options.LocalForestFireHazard;
			val.m_Radius = options.LocalForestFireHazardRadius;
		}

		public static void ModifyLocalForestFireResponseTime(PrefabBase prefab, ILocalForestFireResponseTime options)
		{
			LocalEffects component = ((ComponentBase)prefab).GetComponent<LocalEffects>();
			LocalEffectInfo val = ((IEnumerable<LocalEffectInfo>)component.m_Effects).FirstOrDefault((Func<LocalEffectInfo, bool>)((LocalEffectInfo effect) => (int)effect.m_Type == 1));
			val.m_Delta = options.LocalForestFireResponseTime;
			val.m_Radius = options.LocalForestFireResponseTimeRadius;
		}

		public static void ModifyPoliceStation(PrefabBase prefab, IPoliceStationOptions options)
		{
			PoliceStation component = ((ComponentBase)prefab).GetComponent<PoliceStation>();
			component.m_PatrolCarCapacity = options.PatrolCarCapacity;
			component.m_PoliceHelicopterCapacity = options.PoliceHelicopterCapacity;
			component.m_JailCapacity = options.JailCapacity;
		}

		public static void ModifyPrison(PrefabBase prefab, IPrisonOptions options)
		{
			Prison component = ((ComponentBase)prefab).GetComponent<Prison>();
			component.m_PrisonVanCapacity = options.PrisonVanCapacity;
			component.m_PrisonerCapacity = options.PrisonerCapacity;
		}

		public static void ModifyCityDiseaseprobability(PrefabBase prefab, ICityDiseaseprobability options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 5));
			val.m_Delta = options.CityDiseaseprobability;
		}

		public static void ModifyCityPollutionhealthAffect(PrefabBase prefab, ICityPollutionhealthAffect options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 33));
			val.m_Delta = options.CityPollutionhealthAffect;
		}

		public static void ModifyCityParkEntertainment(PrefabBase prefab, ICityParkEntertainment options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 6));
			val.m_Delta = options.CityParkEntertainment;
		}

		public static void ModifyCityOreResourceAmount(PrefabBase prefab, ICityOreResourceAmmount options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 12));
			val.m_Delta = options.CityOreResourceAmmount;
		}

		public static void ModifyCityOilResourceAmount(PrefabBase prefab, ICityOilResourceAmmount options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 13));
			val.m_Delta = options.CityOilResourceAmmount;
		}

		public static void ModifySchool(PrefabBase prefab, ISchoolOptions options)
		{
			School component = ((ComponentBase)prefab).GetComponent<School>();
			component.m_StudentCapacity = options.StudentCapacity;
		}

		public static void ModifyCityIndustrialEfficiency(PrefabBase prefab, ICityIndustrialEfficiency options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 31));
			val.m_Delta = options.CityIndustrialEfficiency;
		}

		public static void ModifyCityDisasterDamageRate(PrefabBase prefab, ICityDisasterDamageRate options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 4));
			val.m_Delta = options.CityDisasterDamageRate;
		}

		public static void ModifyCityDisasterWarningTime(PrefabBase prefab, ICityDisasterWarningTime options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 3));
			val.m_Delta = options.CityDisasterWarningTime;
		}

		public static void ModifyCityLoanIntrest(PrefabBase prefab, ICityLoanIntrest options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 27));
			val.m_Delta = options.CityLoanIntrest;
		}

		public static void ModifyCityExportCost(PrefabBase prefab, ICityExportCost options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 29));
			val.m_Delta = options.CityExportCost;
		}

		public static void ModifyCityRecoveryFailChange(PrefabBase prefab, ICityRecoverFailChange options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 11));
			val.m_Delta = options.CityRecoverFailChange;
		}

		public static void ModifyCityHospitalEfficiency(PrefabBase prefab, ICityHospitalEfficiency options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 34));
			val.m_Delta = options.CityHospitalEfficiency;
		}

		public static void ModifyCityOfficeSoftwareDemand(PrefabBase prefab, ICityOfficeSoftwareDemand options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 15));
			val.m_Delta = options.CityOfficeSoftwareDemand;
		}

		public static void ModifyCityOfficeSoftwareEfficiency(PrefabBase prefab, ICityOfficeSoftwareEfficiency options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 17));
			val.m_Delta = options.CityOfficeSoftwareEfficiency;
		}

		public static void ModifyCityIndustrialElectronicsDemand(PrefabBase prefab, ICityIndustrialElectronicDemand options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 16));
			val.m_Delta = options.CityIndustrialElectronicDemand;
		}

		public static void ModifyCityIndustrialElectronicsEfficiency(PrefabBase prefab, ICityIndustrialElectronicEfficiency options)
		{
			CityEffects component = ((ComponentBase)prefab).GetComponent<CityEffects>();
			CityEffectInfo val = ((IEnumerable<CityEffectInfo>)component.m_Effects).FirstOrDefault((Func<CityEffectInfo, bool>)((CityEffectInfo effect) => (int)effect.m_Type == 18));
			val.m_Delta = options.CityIndustrialElectronicEfficiency;
		}

		public static void ModifyPublicTransportStops(PrefabBase prefab, ITransportStopOptions options)
		{
			TransportStop component = ((ComponentBase)prefab).GetComponent<TransportStop>();
			component.m_EnterDistance = options.EnterDistance;
			component.m_ExitDistance = options.ExitDistance;
			component.m_AccessDistance = options.AccessDistance;
			component.m_BoardingTime = options.BoardingTime;
			component.m_ComfortFactor = options.ComfortFactor;
			component.m_LoadingFactor = options.LoadingFactor;
		}

		public static void ModifyPublicTransportDepot(PrefabBase prefab, ITransportDepotOptions options)
		{
			TransportDepot component = ((ComponentBase)prefab).GetComponent<TransportDepot>();
			component.m_VehicleCapacity = options.VehicleCapacity;
			component.m_MaintenanceDuration = options.MaintenanceDuration;
			component.m_ProductionDuration = options.ProductionDuration;
		}

		public static void ModifyPublicTransportStation(PrefabBase prefab, ITransportStationOptions options)
		{
			TransportStation component = ((ComponentBase)prefab).GetComponent<TransportStation>();
			component.m_ComfortFactor = options.ComfortFactor;
		}

		public static void ModifyMailbox(PrefabBase prefab, IMailboxOptions options)
		{
			MailBox component = ((ComponentBase)prefab).GetComponent<MailBox>();
			component.m_MailCapacity = options.Mailcapacity;
			component.m_ComfortFactor = options.ComfortFactor;
		}

		public static void ModifyDeliveryTruck(PrefabBase prefab, IDeliveryTruckOptions options)
		{
			DeliveryTruck component = ((ComponentBase)prefab).GetComponent<DeliveryTruck>();
			component.m_CargoCapacity = options.CargoCapacity;
			component.m_CostToDrive = options.CostToDrive;
		}

		public static void ModifyMaintenanceVehicle(PrefabBase prefab, IMaintenanceVehicleOptions options)
		{
			MaintenanceVehicle component = ((ComponentBase)prefab).GetComponent<MaintenanceVehicle>();
			component.m_MaintenanceCapacity = options.MaintenanceCapacity;
			component.m_MaintenanceRate = options.MaintenanceRate;
		}

		public static void ModifyFireEngine(PrefabBase prefab, IFireEngineOptions options)
		{
			FireEngine component = ((ComponentBase)prefab).GetComponent<FireEngine>();
			component.m_ExtinguishingCapacity = options.ExtinguishingCapacity;
			component.m_ExtinguishingRate = options.ExtinguishingRate;
			component.m_ExtinguishingSpread = options.ExtinguishingSpread;
			component.m_DestroyedClearDuration = options.DestroyedClearDuration;
		}

		public static void ModifyPoliceCar(PrefabBase prefab, IPoliceCarOptions options)
		{
			PoliceCar component = ((ComponentBase)prefab).GetComponent<PoliceCar>();
			component.m_CriminalCapacity = options.CriminalCapacity;
			component.m_CrimeReductionRate = options.CrimeReductionRate;
		}

		public static void ModifyTrafficSpawner(PrefabBase prefab, ITrafficSpawnerOptions options)
		{
			TrafficSpawner component = ((ComponentBase)prefab).GetComponent<TrafficSpawner>();
			component.m_SpawnRate = options.TrafficSpawnerRate;
		}
	}
	public interface IAttractionOptions
	{
		int Attractiveness { get; set; }
	}
	public interface IBasePrefabOptions
	{
		string Name { get; set; }
	}
	public interface IBatteryOptions
	{
		int BatteryCapacity { get; set; }

		int PowerOutput { get; set; }
	}
	public interface ICargoTransportStationOptions
	{
		int Transports { get; set; }
	}
	public interface IDeathcareFacilityOptions
	{
		int HearseCapacity { get; set; }

		int StorageCapacity { get; set; }

		float ProcessingRate { get; set; }
	}
	public interface IEmergencyShelterOptions
	{
		int ShelterCapacity { get; set; }

		int VehicleCapacity { get; set; }
	}
	public interface IFireStationOptions
	{
		int FireEngineCapacity { get; set; }

		int FireHelicopterCapacity { get; set; }

		float VehicleEfficiency { get; set; }

		int DisasterResponseCapacity { get; set; }
	}
	public interface IGarbageFacilityOption
	{
		int GarbageCapacity { get; set; }

		int GarbageVehicleCapacity { get; set; }

		int GarbageTransportCapacity { get; set; }

		int GarbageProcessingspeed { get; set; }
	}
	public interface IGarbagePoweredOptions
	{
		float ProductionPerUnit { get; set; }

		int ProductionCapacity { get; set; }
	}
	public interface IGroundWaterPoweredOptions
	{
		int Production { get; set; }

		int MaximumGroundwater { get; set; }
	}
	public interface IHospitalOptions
	{
		int AmbulanceCapacity { get; set; }

		int HelicopterCapacity { get; set; }

		int PatientCapacity { get; set; }

		int TreatmentBonus { get; set; }
	}
	public interface ILeisureProviderOptions
	{
		int LeisureEfficiency { get; set; }
	}
	public interface IParkingFacilityOptions
	{
		int GarageCapacity { get; set; }

		float Comfortfactor { get; set; }
	}
	public interface IPoliceStationOptions
	{
		int PatrolCarCapacity { get; set; }

		int PoliceHelicopterCapacity { get; set; }

		int JailCapacity { get; set; }
	}
	public interface IPollutionOptions
	{
		int GroundPollution { get; set; }

		int AirPollution { get; set; }

		int NoisePollution { get; set; }
	}
	public interface IPostFacilityOptions
	{
		int MailboxCapacity { get; set; }

		int PostVanCapacity { get; set; }

		int MailStorageCapacity { get; set; }

		int PostTrucksCapacity { get; set; }

		int SortingRate { get; set; }
	}
	public interface IPowerPlantOptions
	{
		int ElectricityProduction { get; set; }
	}
	public interface IPrisonOptions
	{
		int PrisonVanCapacity { get; set; }

		int PrisonerCapacity { get; set; }
	}
	public interface ISchoolOptions
	{
		int StudentCapacity { get; set; }
	}
	public interface IServiceConsumptionOptions
	{
		int Upkeep { get; set; }

		int ElectricityConsumption { get; set; }

		int WaterConsumption { get; set; }

		int GarbageAccumulation { get; set; }

		int TelecomNeed { get; set; }
	}
	public interface IServiceCoverageOptions
	{
		float ServiceCoverageRange { get; set; }

		float ServiceCoverageCapacity { get; set; }

		float ServiceCoverageMagnitude { get; set; }
	}
	public interface ISewageOutletOptions
	{
		int SewageCapacity { get; set; }

		float SewagePurification { get; set; }
	}
	public interface ISolarPoweredOptions
	{
		int Production { get; set; }
	}
	public interface IStorageLimitOptions
	{
		int StorageLimit { get; set; }
	}
	public interface ITelecomFacilityOptions
	{
		int TelecomRange { get; set; }

		int NetworkCapacity { get; set; }
	}
	public interface ITrafficSpawnerOptions
	{
		float TrafficSpawnerRate { get; set; }
	}
	public interface ITransportDepotOptions
	{
		int VehicleCapacity { get; set; }

		float MaintenanceDuration { get; set; }

		float ProductionDuration { get; set; }
	}
	public interface ITransportStationOptions
	{
		float ComfortFactor { get; set; }
	}
	public interface ITransportStopOptions
	{
		float EnterDistance { get; set; }

		float ExitDistance { get; set; }

		float AccessDistance { get; set; }

		float BoardingTime { get; set; }

		float ComfortFactor { get; set; }

		float LoadingFactor { get; set; }
	}
	public interface IFireEngineOptions
	{
		int ExtinguishingCapacity { get; set; }

		int ExtinguishingRate { get; set; }

		int ExtinguishingSpread { get; set; }

		int DestroyedClearDuration { get; set; }
	}
	public interface IDeliveryTruckOptions
	{
		int CargoCapacity { get; set; }

		int CostToDrive { get; set; }
	}
	public interface IGarbageTruckOptions
	{
		int GarbageTruckCapacity { get; set; }

		int GarbageTruckUnloadRate { get; set; }
	}
	public interface IMaintenanceVehicleOptions
	{
		int MaintenanceCapacity { get; set; }

		int MaintenanceRate { get; set; }
	}
	public interface IPostVanOptions
	{
		int MailCapacity { get; set; }
	}
	public interface IPoliceCarOptions
	{
		int CriminalCapacity { get; set; }

		int CrimeReductionRate { get; set; }
	}
	public interface IPublicTransportVehicle
	{
		int PassengerCapacity { get; set; }

		int Maintenancerange { get; set; }
	}
	public interface IWaterPumpingStationOptions
	{
		int PumpCapacity { get; set; }

		float Purification { get; set; }
	}
	public interface IWindPoweredOptions
	{
		int Production { get; set; }

		float MaximumWind { get; set; }
	}
	public class AirportOptions : IBasePrefabOptions, IServiceConsumptionOptions, IStorageLimitOptions, ICargoTransportStationOptions, ITransportStationOptions, ICityAttractiveness, ICityOfficeEfficiency, ICityUniversityInterest, ICityOfficeSoftwareDemand
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int StorageLimit { get; set; }

		public int Transports { get; set; }

		public float ComfortFactor { get; set; }

		public float CityAttractiveness { get; set; }

		public float CityOfficeEfficiency { get; set; }

		public float CityUniversityInterest { get; set; }

		public float CityOfficeSoftwareDemand { get; set; }
	}
	public class CemeteryOptions : IBasePrefabOptions, IServiceConsumptionOptions, IDeathcareFacilityOptions, ILeisureProviderOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int HearseCapacity { get; set; }

		public int StorageCapacity { get; set; }

		public float ProcessingRate { get; set; }

		public int LeisureEfficiency { get; set; }
	}
	public class CentralBankOptions : IBasePrefabOptions, IServiceConsumptionOptions, ICityLoanIntrest, ICityImportcost, ICityExportCost
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float CityLoanIntrest { get; set; }

		public float CityImportcost { get; set; }

		public float CityExportCost { get; set; }
	}
	public class CityHallOptions : IBasePrefabOptions, IServiceConsumptionOptions, ICityLoanIntrest, ICityImportcost
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float CityLoanIntrest { get; set; }

		public float CityImportcost { get; set; }
	}
	public class CityparkOptions : IBasePrefabOptions, IServiceConsumptionOptions, IServiceCoverageOptions, IAttractionOptions, ILeisureProviderOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float ServiceCoverageRange { get; set; }

		public float ServiceCoverageCapacity { get; set; }

		public float ServiceCoverageMagnitude { get; set; }

		public int Attractiveness { get; set; }

		public int LeisureEfficiency { get; set; }
	}
	public class CrematoriumOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IDeathcareFacilityOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int HearseCapacity { get; set; }

		public int StorageCapacity { get; set; }

		public float ProcessingRate { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }
	}
	public class DeliveryTruckOptions : IBasePrefabOptions, IDeliveryTruckOptions
	{
		public string Name { get; set; } = null;


		public int CargoCapacity { get; set; }

		public int CostToDrive { get; set; }
	}
	public class DiseaseControlCenterOptions : IBasePrefabOptions, IServiceConsumptionOptions, IHospitalOptions, ICityDiseaseprobability, ICityPollutionhealthAffect
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int AmbulanceCapacity { get; set; }

		public int HelicopterCapacity { get; set; }

		public int PatientCapacity { get; set; }

		public int TreatmentBonus { get; set; }

		public float CityDiseaseprobability { get; set; }

		public float CityPollutionhealthAffect { get; set; }
	}
	public class EarlyDisasterWarningSystemOptions : IBasePrefabOptions, IServiceConsumptionOptions, ICityDisasterWarningTime, ICityDisasterDamageRate
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float CityDisasterWarningTime { get; set; }

		public float CityDisasterDamageRate { get; set; }
	}
	public class EmergencybatteryOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IBatteryOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int PowerOutput { get; set; }

		public int BatteryCapacity { get; set; }
	}
	public class FireEngineOptions : IBasePrefabOptions, IFireEngineOptions
	{
		public string Name { get; set; } = null;


		public int ExtinguishingRate { get; set; }

		public int ExtinguishingSpread { get; set; }

		public int ExtinguishingCapacity { get; set; }

		public int DestroyedClearDuration { get; set; }
	}
	public class FireFightingHelicopterDepotOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IFireStationOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int FireEngineCapacity { get; set; }

		public int FireHelicopterCapacity { get; set; }

		public float VehicleEfficiency { get; set; }

		public int DisasterResponseCapacity { get; set; }
	}
	public class FireStationOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IFireStationOptions, IServiceCoverageOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int FireEngineCapacity { get; set; }

		public int FireHelicopterCapacity { get; set; }

		public float VehicleEfficiency { get; set; }

		public int DisasterResponseCapacity { get; set; }

		public float ServiceCoverageRange { get; set; }

		public float ServiceCoverageCapacity { get; set; }

		public float ServiceCoverageMagnitude { get; set; }
	}
	public class FirewatchTowerOptions : IBasePrefabOptions, IServiceConsumptionOptions, ILocalForestFireHazard, ILocalForestFireResponseTime
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float LocalForestFireResponseTime { get; set; }

		public float LocalForestFireResponseTimeRadius { get; set; }

		public float LocalForestFireHazard { get; set; }

		public float LocalForestFireHazardRadius { get; set; }
	}
	public class GarbagetruckOptions : IBasePrefabOptions, IGarbageTruckOptions
	{
		public string Name { get; set; } = null;


		public int GarbageTruckCapacity { get; set; }

		public int GarbageTruckUnloadRate { get; set; }
	}
	public class GeologicalResearchCenterOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, ICityOreResourceAmmount, ICityOilResourceAmmount
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public float CityOreResourceAmmount { get; set; }

		public float CityOilResourceAmmount { get; set; }

		public float CityCollegegraduation { get; set; }
	}
	public class GeothermalpowerplantOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IGroundWaterPoweredOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int AirPollution { get; set; }

		public int GroundPollution { get; set; }

		public int NoisePollution { get; set; }

		public int Production { get; set; }

		public int MaximumGroundwater { get; set; }
	}
	public class HealthcareOptions : IBasePrefabOptions, IServiceConsumptionOptions, IServiceCoverageOptions, IHospitalOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int WaterConsumption { get; set; }

		public int ElectricityConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float ServiceCoverageCapacity { get; set; }

		public float ServiceCoverageRange { get; set; }

		public float ServiceCoverageMagnitude { get; set; }

		public int AmbulanceCapacity { get; set; }

		public int HelicopterCapacity { get; set; }

		public int PatientCapacity { get; set; }

		public int TreatmentBonus { get; set; }
	}
	public class HeathResearchInstituteOptions : IBasePrefabOptions, IServiceConsumptionOptions, ICityDiseaseprobability, ICityParkEntertainment
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float CityDiseaseprobability { get; set; }

		public float CityParkEntertainment { get; set; }
	}
	public class IncinerationPlantOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IGarbageFacilityOption, IPowerPlantOptions, IGarbagePoweredOptions, ICityIndustrialGroundPollution
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int GarbageCapacity { get; set; }

		public int GarbageVehicleCapacity { get; set; }

		public int GarbageTransportCapacity { get; set; }

		public int GarbageProcessingspeed { get; set; }

		public int ElectricityProduction { get; set; }

		public float ProductionPerUnit { get; set; }

		public int ProductionCapacity { get; set; }

		public float CityIndustrialGroundPollution { get; set; }
	}
	public class LargeEmergencyShelterOptions : IBasePrefabOptions, IServiceConsumptionOptions, IServiceCoverageOptions, IEmergencyShelterOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float ServiceCoverageRange { get; set; }

		public float ServiceCoverageCapacity { get; set; }

		public float ServiceCoverageMagnitude { get; set; }

		public int ShelterCapacity { get; set; }

		public int VehicleCapacity { get; set; }
	}
	public class LargeHadronColliderOptions : IBasePrefabOptions, IServiceConsumptionOptions, ICityUniversityInterest, ICityOfficeSoftwareDemand, ICityIndustrialElectronicDemand, ICityOfficeSoftwareEfficiency, ICityIndustrialElectronicEfficiency
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float CityUniversityInterest { get; set; }

		public float CityOfficeSoftwareDemand { get; set; }

		public float CityIndustrialElectronicDemand { get; set; }

		public float CityOfficeSoftwareEfficiency { get; set; }

		public float CityIndustrialElectronicEfficiency { get; set; }
	}
	public class MaintenanceVehiclesOptions : IBasePrefabOptions, IMaintenanceVehicleOptions
	{
		public string Name { get; set; } = null;


		public int MaintenanceCapacity { get; set; }

		public int MaintenanceRate { get; set; }
	}
	public class MedicalUniversityOptions : IBasePrefabOptions, IServiceConsumptionOptions, ISchoolOptions, IPollutionOptions, ICityRecoverFailChange, ICityHospitalEfficiency
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int StudentCapacity { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public float CityRecoverFailChange { get; set; }

		public float CityHospitalEfficiency { get; set; }
	}
	public class OutsideConnectionOptions : IBasePrefabOptions, IStorageLimitOptions, ISchoolOptions, IHospitalOptions, IGarbageFacilityOption, IFireStationOptions, IPoliceStationOptions, IDeathcareFacilityOptions, ITransportDepotOptions, ITrafficSpawnerOptions
	{
		public string Name { get; set; } = null;


		public int StorageLimit { get; set; }

		public int StudentCapacity { get; set; }

		public float GraduationModifier { get; set; }

		public int AmbulanceCapacity { get; set; }

		public int HelicopterCapacity { get; set; }

		public int PatientCapacity { get; set; }

		public int TreatmentBonus { get; set; }

		public int GarbageCapacity { get; set; }

		public int GarbageVehicleCapacity { get; set; }

		public int GarbageTransportCapacity { get; set; }

		public int GarbageProcessingspeed { get; set; }

		public int FireEngineCapacity { get; set; }

		public int FireHelicopterCapacity { get; set; }

		public int DisasterResponseCapacity { get; set; }

		public float VehicleEfficiency { get; set; }

		public int PatrolCarCapacity { get; set; }

		public int PoliceHelicopterCapacity { get; set; }

		public int JailCapacity { get; set; }

		public int HearseCapacity { get; set; }

		public int StorageCapacity { get; set; }

		public float ProcessingRate { get; set; }

		public int VehicleCapacity { get; set; }

		public float MaintenanceDuration { get; set; }

		public float ProductionDuration { get; set; }

		public float TrafficSpawnerRate { get; set; }
	}
	public class ParkinghallOptions : IBasePrefabOptions, IParkingFacilityOptions, IServiceConsumptionOptions, IPollutionOptions
	{
		public string Name { get; set; } = null;


		public int GarageCapacity { get; set; }

		public float Comfortfactor { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int Upkeep { get; set; }
	}
	public class PoliceCarOptions : IBasePrefabOptions, IPoliceCarOptions
	{
		public string Name { get; set; } = null;


		public int CriminalCapacity { get; set; }

		public int CrimeReductionRate { get; set; }
	}
	public class PoliceStationOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IPoliceStationOptions, IServiceCoverageOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int PatrolCarCapacity { get; set; }

		public int PoliceHelicopterCapacity { get; set; }

		public int JailCapacity { get; set; }

		public float ServiceCoverageRange { get; set; }

		public float ServiceCoverageCapacity { get; set; }

		public float ServiceCoverageMagnitude { get; set; }
	}
	public class PostMailboxOptions : IBasePrefabOptions, IMailboxOptions, IServiceCoverageOptions
	{
		public string Name { get; set; } = null;


		public int Mailcapacity { get; set; }

		public float ServiceCoverageRange { get; set; }

		public float ServiceCoverageCapacity { get; set; }

		public float ServiceCoverageMagnitude { get; set; }

		public float ComfortFactor { get; set; }
	}
	public class PostofficeOptions : IBasePrefabOptions, IServiceConsumptionOptions, IServiceCoverageOptions, IPollutionOptions, IPostFacilityOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float ServiceCoverageRange { get; set; }

		public float ServiceCoverageCapacity { get; set; }

		public float ServiceCoverageMagnitude { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int MailStorageCapacity { get; set; }

		public int MailboxCapacity { get; set; }

		public int PostVanCapacity { get; set; }

		public int PostTrucksCapacity { get; set; }

		public int SortingRate { get; set; }
	}
	public class PostVanOptions : IBasePrefabOptions, IPostVanOptions
	{
		public string Name { get; set; } = null;


		public int MailCapacity { get; set; }
	}
	public class PowerplantOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IPowerPlantOptions, IStorageLimitOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int AirPollution { get; set; }

		public int GroundPollution { get; set; }

		public int NoisePollution { get; set; }

		public int ElectricityProduction { get; set; }

		public int StorageLimit { get; set; }
	}
	public class PrisonOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IPrisonOptions, ILocalCrimeAccumulation
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int PrisonVanCapacity { get; set; }

		public int PrisonerCapacity { get; set; }

		public float LocalCrimeAccumulation { get; set; }

		public float LocalCrimeAccumulationRadius { get; set; }
	}
	public class PublicTransportDepotsOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, ITransportDepotOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int VehicleCapacity { get; set; }

		public float MaintenanceDuration { get; set; }

		public float ProductionDuration { get; set; }
	}
	public class PublicTransportStationsOptions : IBasePrefabOptions, IServiceConsumptionOptions, ITransportStationOptions, IPollutionOptions, IStorageLimitOptions, ICargoTransportStationOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int StorageLimit { get; set; }

		public int Transports { get; set; }

		public float ComfortFactor { get; set; }
	}
	public class PublicTransportStopsOptions : IBasePrefabOptions, ITransportStopOptions
	{
		public string Name { get; set; } = null;


		public float EnterDistance { get; set; }

		public float ExitDistance { get; set; }

		public float AccessDistance { get; set; }

		public float BoardingTime { get; set; }

		public float ComfortFactor { get; set; }

		public float LoadingFactor { get; set; }
	}
	public class PublicTransportVehicleOptions : IBasePrefabOptions, IPublicTransportVehicle
	{
		public string Name { get; set; } = null;


		public int PassengerCapacity { get; set; }

		public int Maintenancerange { get; set; }
	}
	public class RadioMastOptions : IBasePrefabOptions, IServiceConsumptionOptions, ITelecomFacilityOptions, IPollutionOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int TelecomRange { get; set; }

		public int NetworkCapacity { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }
	}
	public class RadioTelescopeOptions : IBasePrefabOptions, IServiceConsumptionOptions, ICityUniversityGraduation
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public float CityUniversityGraduation { get; set; }
	}
	public class SchoolOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions
	{
		public string Name { get; set; } = null;


		public int AirPollution { get; set; }

		public int Upkeep { get; set; }

		public int GroundPollution { get; set; }

		public int NoisePollution { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int WaterConsumption { get; set; }

		public int ElectricityConsumption { get; set; }
	}
	public class ServerfarmOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, ITelecomFacilityOptions, ICityEntertainment, ICityTelecomCapacity, ICityAttractiveness
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int TelecomRange { get; set; }

		public int NetworkCapacity { get; set; }

		public float CityEntertainment { get; set; }

		public float CityTelecomCapacity { get; set; }

		public float CityAttractiveness { get; set; }
	}
	public class SignatureCommercialbuildingOptions : IBasePrefabOptions, IAttractionOptions, ILocalWellbeing, IPollutionOptions, ICityAttractiveness, ICityImportcost
	{
		public string Name { get; set; } = null;


		public int Attractiveness { get; set; }

		public float LocalWellbeing { get; set; }

		public float LocalWellbeingRadius { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public float CityImportcost { get; set; }

		public float CityAttractiveness { get; set; }
	}
	public class SignatureMixedbuildingOptions : IBasePrefabOptions, IAttractionOptions, IPollutionOptions, ILocalWellbeing, ICityAttractiveness
	{
		public string Name { get; set; } = null;


		public int Attractiveness { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public float LocalWellbeing { get; set; }

		public float LocalWellbeingRadius { get; set; }

		public float CityAttractiveness { get; set; }
	}
	public class SignatureOfficebuildingOptions : IBasePrefabOptions, IAttractionOptions, IPollutionOptions, ILocalWellbeing, ILocalCrimeAccumulation, ICityOfficeEfficiency, ICityUniversityInterest, ICityUniversityGraduation
	{
		public string Name { get; set; } = null;


		public int Attractiveness { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public float LocalWellbeing { get; set; }

		public float LocalWellbeingRadius { get; set; }

		public float LocalCrimeAccumulation { get; set; }

		public float LocalCrimeAccumulationRadius { get; set; }

		public float CityOfficeEfficiency { get; set; }

		public float CityUniversityInterest { get; set; }

		public float CityUniversityGraduation { get; set; }
	}
	public class SignatureResidentialbuildingOptions : IBasePrefabOptions, ILocalWellbeing
	{
		public string Name { get; set; } = null;


		public float LocalWellbeing { get; set; }

		public float LocalWellbeingRadius { get; set; }
	}
	public class SolarpowerstationOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, ISolarPoweredOptions, IBatteryOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int Production { get; set; }

		public int PowerOutput { get; set; }

		public int BatteryCapacity { get; set; }
	}
	public class SpaceCenterOptions : IBasePrefabOptions, IServiceConsumptionOptions, ITransportDepotOptions, IAttractionOptions, ICityUniversityInterest, ICityOfficeSoftwareDemand, ICityIndustrialElectronicDemand, ICityAttractiveness, ILeisureProviderOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int VehicleCapacity { get; set; }

		public float MaintenanceDuration { get; set; }

		public float ProductionDuration { get; set; }

		public int Attractiveness { get; set; }

		public float CityAttractiveness { get; set; }

		public float CityIndustrialElectronicDemand { get; set; }

		public float CityUniversityInterest { get; set; }

		public float CityOfficeSoftwareDemand { get; set; }

		public int LeisureEfficiency { get; set; }
	}
	public class TechnicalUniversityOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, ISchoolOptions, ICityIndustrialEfficiency, ICityOfficeEfficiency
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int StudentCapacity { get; set; }

		public float CityIndustrialEfficiency { get; set; }

		public float CityOfficeEfficiency { get; set; }
	}
	public class TransformerstationOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }
	}
	public class WastewaterOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, ISewageOutletOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int SewageCapacity { get; set; }

		public float SewagePurification { get; set; }
	}
	public class WaterpumpOptions : IBasePrefabOptions, IServiceConsumptionOptions, IPollutionOptions, IWaterPumpingStationOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int ElectricityConsumption { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public int PumpCapacity { get; set; }

		public float Purification { get; set; }
	}
	public class WelfareOfficeOptions : IBasePrefabOptions, IServiceConsumptionOptions, IServiceCoverageOptions, IPollutionOptions
	{
		public string Name { get; set; } = null;


		public int Upkeep { get; set; }

		public int ElectricityConsumption { get; set; }

		public int WaterConsumption { get; set; }

		public int GarbageAccumulation { get; set; }

		public int TelecomNeed { get; set; }

		public int GroundPollution { get; set; }

		public int AirPollution { get; set; }

		public int NoisePollution { get; set; }

		public float ServiceCoverageRange { get; set; }

		public float ServiceCoverageCapacity { get; set; }

		public float ServiceCoverageMagnitude { get; set; }
	}
	public class WhitesharkCheatOverhaulOptions
	{
		public static WhitesharkCheatOverhaulOptions Default => new WhitesharkCheatOverhaulOptions
		{
			Version = 323,
			School_Options = new List<SchoolOptions>
			{
				new SchoolOptions
				{
					Name = "ElementarySchool01",
					AirPollution = 0,
					GroundPollution = 0,
					NoisePollution = 7500,
					GarbageAccumulation = 1900,
					TelecomNeed = 0,
					WaterConsumption = 1500,
					ElectricityConsumption = 1000
				},
				new SchoolOptions
				{
					Name = "HighSchool01",
					AirPollution = 0,
					GroundPollution = 0,
					NoisePollution = 7500,
					GarbageAccumulation = 1300,
					TelecomNeed = 0,
					WaterConsumption = 1500,
					ElectricityConsumption = 1500
				},
				new SchoolOptions
				{
					Name = "College01",
					AirPollution = 0,
					GroundPollution = 0,
					NoisePollution = 10000,
					GarbageAccumulation = 2400,
					TelecomNeed = 0,
					WaterConsumption = 1500,
					ElectricityConsumption = 2000
				},
				new SchoolOptions
				{
					Name = "University01",
					AirPollution = 0,
					GroundPollution = 0,
					NoisePollution = 10000,
					GarbageAccumulation = 2400,
					TelecomNeed = 0,
					WaterConsumption = 3000,
					ElectricityConsumption = 3000
				}
			},
			Powerplant_Options = new List<PowerplantOptions>
			{
				new PowerplantOptions
				{
					Name = "GasPowerPlant01",
					Upkeep = 655555,
					ElectricityConsumption = 0,
					WaterConsumption = 48000,
					GarbageAccumulation = 30000,
					TelecomNeed = 0,
					AirPollution = 10000,
					GroundPollution = 10000,
					NoisePollution = 10000,
					ElectricityProduction = 2500000,
					StorageLimit = 5000
				},
				new PowerplantOptions
				{
					Name = "GasPowerPlant01 Additional Turbine",
					Upkeep = 200000,
					ElectricityConsumption = 0,
					WaterConsumption = 24000,
					GarbageAccumulation = 6000,
					TelecomNeed = 0,
					AirPollution = 3000,
					GroundPollution = 3000,
					NoisePollution = 3000,
					ElectricityProduction = 1000000
				},
				new PowerplantOptions
				{
					Name = "GasPowerPlant01 Advanced Furnace",
					Upkeep = 80000,
					ElectricityConsumption = 0,
					WaterConsumption = 0,
					GarbageAccumulation = 0,
					TelecomNeed = 0
				},
				new PowerplantOptions
				{
					Name = "GasPowerPlant01 Exhaust Filter",
					Upkeep = 100000,
					ElectricityConsumption = 0,
					WaterConsumption = 0,
					GarbageAccumulation = 7500,
					TelecomNeed = 0
				},
				new PowerplantOptions
				{
					Name = "GasPowerPlant01 Fuel Storage Extention",
					Upkeep = 150000,
					ElectricityConsumption = 0,
					WaterConsumption = 0,
					GarbageAccumulation = 6000,
					TelecomNeed = 0,
					AirPollution = 5000,
					GroundPollution = 5000,
					NoisePollution = 5000,
					StorageLimit = 2500
				},
				new PowerplantOptions
				{
					Name = "CoalPowerPlant01",
					Upkeep = 15000,
					ElectricityConsumption = 0,
					WaterConsumption = 60000,
					GarbageAccumulation = 50000,
					TelecomNeed = 0,
					AirPollution = 100000,
					GroundPollution = 100000,
					NoisePollution = 100000,
					ElectricityProduction = 3000000,
					StorageLimit = 500000
				},
				new PowerplantOptions
				{
					Name = "CoalPowerPlant01 Additional Turbine Building",
					Upkeep = 50000,
					ElectricityConsumption = 0,
					WaterConsumption = 30000,
					GarbageAccumulation = 10000,
					TelecomNeed = 0,
					AirPollution = 50000,
					GroundPollution = 50000,
					NoisePollution = 50000,
					ElectricityProduction = 1000000
				},
				new PowerplantOptions
				{
					Name = "CoalPowerPlant01 Exhaust Filter",
					Upkeep = 50000,
					ElectricityConsumption = 0,
					WaterConsumption = 0,
					GarbageAccumulation = 12500,
					TelecomNeed = 0
				},
				new PowerplantOptions
				{
					Name = "CoalPowerPlant01 Advanced Furnace",
					Upkeep = 60000,
					ElectricityConsumption = 0,
					WaterConsumption = 0,
					GarbageAccumulation = 0,
					TelecomNeed = 0
				},
				new PowerplantOptions
				{
					Name = "CoalPowerPlant01 Coal Storage Yard",
					Upkeep = 25000,
					ElectricityConsumption = 0,
					WaterConsumption = 0,
					GarbageAccumulation = 10000,
					AirPollution = 25000,
					GroundPollution = 25000,
					NoisePollution = 25000,
					StorageLimit = 2500000,
					TelecomNeed = 0
				},
				new PowerplantOptions
				{
					Name = "NuclearPowerPlant01",
					Upkeep = 1000000,
					ElectricityConsumption = 0,
					WaterConsumption = 400000,
					GarbageAccumulation = 40000,
					AirPollution = 0,
					GroundPollution = 0,
					NoisePollution = 150000,
					ElectricityProduction = 7500000,
					TelecomNeed = 0
				},
				new PowerplantOptions
				{
					Name = "SmallCoalPowerPlant01",
					Upkeep = 10000,
					ElectricityConsumption = 0,
					WaterConsumption = 15000,
					GarbageAccumulation = 25000,
					AirPollution = 30000,
					GroundPollution = 30000,
					NoisePollution = 30000,
					ElectricityProduction = 200000,
					TelecomNeed = 0
				}
			},
			Waterpump_Options = new List<WaterpumpOptions>
			{
				new WaterpumpOptions
				{
					Name = "WaterPumpingStation01",
					Upkeep = 60000,
					WaterConsumption = 0,
					PumpCapacity = 100000,
					GarbageAccumulation = 12500,
					ElectricityConsumption = 3000,
					NoisePollution = 5000,
					AirPollution = 0,
					GroundPollution = 0,
					TelecomNeed = 0
				},
				new WaterpumpOptions
				{
					Name = "WaterPumpingStation01 Extra Pump",
					Upkeep = 7000,
					WaterConsumption = 0,
					PumpCapacity = 50000,
					GarbageAccumulation = 2500,
					ElectricityConsumption = 1000,
					NoisePollution = 2500,
					AirPollution = 0,
					GroundPollution = 0,
					TelecomNeed = 0
				},
				new WaterpumpOptions
				{
					Name = "GroundwaterPumpingStation01",
					Upkeep = 20000,
					WaterConsumption = 0,
					PumpCapacity = 75000,
					GarbageAccumulation = 10000,
					ElectricityConsumption = 3000,
					NoisePollution = 5000,
					AirPollution = 0,
					GroundPollution = 0,
					TelecomNeed = 0
				},
				new WaterpumpOptions
				{
					Name = "GroundwaterPumpingStation01 Advanced Filtering System",
					Upkeep = 11000,
					WaterConsumption = 0,
					PumpCapacity = 0,
					GarbageAccumulation = 2500,
					ElectricityConsumption = 1000,
					Purification = 0.5f,
					TelecomNeed = 0
				},
				new WaterpumpOptions
				{
					Name = "GroundwaterPumpingStation01 Extra Pump",
					Upkeep = 7000,
					WaterConsumption = 0,
					PumpCapacity = 37500,
					GarbageAccumulation = 2000,
					ElectricityConsumption = 500,
					NoisePollution = 2500,
					AirPollution = 0,
					GroundPollution = 0,
					TelecomNeed = 0
				},
				new WaterpumpOptions
				{
					Name = "DesalinationPlant01",
					Upkeep = 95000,
					WaterConsumption = 0,
					PumpCapacity = 1000000,
					GarbageAccumulation = 62500,
					ElectricityConsumption = 3000,
					NoisePollution = 25000,
					AirPollution = 0,
					GroundPollution = 0,
					TelecomNeed = 0
				},
				new WaterpumpOptions
				{
					Name = "WaterTower01",
					Upkeep = 30000,
					WaterConsumption = 0,
					PumpCapacity = 30000,
					GarbageAccumulation = 0,
					ElectricityConsumption = 0,
					NoisePollution = 2500,
					AirPollution = 0,
					GroundPollution = 0,
					TelecomNeed = 0
				}
			},
			Transformerstation_Options = new List<TransformerstationOptions>
			{
				new TransformerstationOptions
				{
					Name = "TransformerStation01",
					Upkeep = 6000,
					ElectricityConsumption = 0,
					WaterConsumption = 0,
					GarbageAccumulation = 100,
					NoisePollution = 5000,
					AirPollution = 0,
					GroundPollution = 0,
					TelecomNeed = 0
				}
			},
			Serverfarm_Options = new List<ServerfarmOptions>
			{
				new ServerfarmOptions
				{
					Name = "ServerFarm01",
					Upkeep = 50000,
					ElectricityConsumption = 20000,
					WaterConsumption = 10000,
					GarbageAccumulation = 3000,
					TelecomRange = 2500,
					NetworkCapacity = 20000,
					NoisePollution = 20000,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				},
				new ServerfarmOptions
				{
					Name = "SatelliteUplink01",
					Upkeep = 320000,
					ElectricityConsumption = 5000,
					WaterConsumption = 500,
					GarbageAccumulation = 5000,
					TelecomRange = 0,
					NetworkCapacity = 0,
					GroundPollution = 0,
					AirPollution = 0,
					NoisePollution = 5000,
					CityEntertainment = 50f,
					CityTelecomCapacity = 0.2f,
					CityAttractiveness = 0.1f,
					TelecomNeed = 0
				},
				new ServerfarmOptions
				{
					Name = "TelecomTower01",
					Upkeep = 95000,
					ElectricityConsumption = 5000,
					WaterConsumption = 1000,
					GarbageAccumulation = 0,
					TelecomRange = 5000,
					NetworkCapacity = 15000,
					NoisePollution = 10000,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				},
				new ServerfarmOptions
				{
					Name = "ServerFarm01 Fiber Optic Cable",
					Upkeep = 10000,
					ElectricityConsumption = 10000,
					WaterConsumption = 0,
					GarbageAccumulation = 0,
					TelecomRange = 500,
					NetworkCapacity = 0,
					TelecomNeed = 0
				},
				new ServerfarmOptions
				{
					Name = "ServerFarm01 Server Upgrade",
					Upkeep = 20000,
					ElectricityConsumption = 10000,
					WaterConsumption = 2500,
					GarbageAccumulation = 1000,
					TelecomRange = 0,
					NetworkCapacity = 10000,
					TelecomNeed = 0
				}
			},
			Garbagetruck_Options = new List<GarbagetruckOptions>
			{
				new GarbagetruckOptions
				{
					Name = "GarbageTruck01",
					GarbageTruckCapacity = 20000,
					GarbageTruckUnloadRate = 4000
				}
			},
			PublicTransportVehicle_Options = new List<PublicTransportVehicleOptions>
			{
				new PublicTransportVehicleOptions
				{
					Name = "Bus01",
					PassengerCapacity = 80,
					Maintenancerange = 200
				},
				new PublicTransportVehicleOptions
				{
					Name = "Bus02",
					PassengerCapacity = 80,
					Maintenancerange = 250
				},
				new PublicTransportVehicleOptions
				{
					Name = "Bus03",
					PassengerCapacity = 80,
					Maintenancerange = 200
				},
				new PublicTransportVehicleOptions
				{
					Name = "TrainPassengerCar01",
					PassengerCapacity = 120,
					Maintenancerange = 1000
				},
				new PublicTransportVehicleOptions
				{
					Name = "TrainPassengerEngine01",
					PassengerCapacity = 120,
					Maintenancerange = 1000
				},
				new PublicTransportVehicleOptions
				{
					Name = "SubwayCar01",
					PassengerCapacity = 150,
					Maintenancerange = 850
				},
				new PublicTransportVehicleOptions
				{
					Name = "SubwayEngine01",
					PassengerCapacity = 120,
					Maintenancerange = 850
				},
				new PublicTransportVehicleOptions
				{
					Name = "TramCar01",
					PassengerCapacity = 80,
					Maintenancerange = 600
				},
				new PublicTransportVehicleOptions
				{
					Name = "TramEngine01",
					PassengerCapacity = 80,
					Maintenancerange = 600
				}
			},
			Parkinghall_Options = new List<ParkinghallOptions>
			{
				new ParkinghallOptions
				{
					Name = "ParkingLot01",
					Upkeep = 2200,
					GarageCapacity = 0,
					Comfortfactor = 0.5f,
					ElectricityConsumption = 200,
					WaterConsumption = 0,
					GarbageAccumulation = 200,
					NoisePollution = 2500,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				},
				new ParkinghallOptions
				{
					Name = "ParkingLot02",
					Upkeep = 3000,
					GarageCapacity = 0,
					Comfortfactor = 0.5f,
					ElectricityConsumption = 300,
					WaterConsumption = 0,
					GarbageAccumulation = 300,
					NoisePollution = 2500,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				},
				new ParkinghallOptions
				{
					Name = "ParkingLot03",
					Upkeep = 7000,
					GarageCapacity = 0,
					Comfortfactor = 0.5f,
					ElectricityConsumption = 700,
					WaterConsumption = 0,
					GarbageAccumulation = 700,
					NoisePollution = 5000,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				},
				new ParkinghallOptions
				{
					Name = "ParkingLot04",
					Upkeep = 16000,
					GarageCapacity = 0,
					Comfortfactor = 0.5f,
					ElectricityConsumption = 1600,
					WaterConsumption = 0,
					GarbageAccumulation = 1700,
					NoisePollution = 5000,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				},
				new ParkinghallOptions
				{
					Name = "ParkingHall01",
					Upkeep = 30000,
					GarageCapacity = 0,
					Comfortfactor = 0.6f,
					ElectricityConsumption = 2400,
					WaterConsumption = 2000,
					GarbageAccumulation = 1600,
					NoisePollution = 2500,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				},
				new ParkinghallOptions
				{
					Name = "ParkingHall01 Car Wash",
					Upkeep = 5000,
					GarageCapacity = 0,
					Comfortfactor = 0.1f,
					ElectricityConsumption = 2400,
					WaterConsumption = 2000,
					GarbageAccumulation = 1600,
					TelecomNeed = 0
				},
				new ParkinghallOptions
				{
					Name = "ParkingHall02",
					Upkeep = 40000,
					GarageCapacity = 100,
					Comfortfactor = 0.65f,
					ElectricityConsumption = 3000,
					WaterConsumption = 2000,
					GarbageAccumulation = 2000,
					NoisePollution = 2500,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				},
				new ParkinghallOptions
				{
					Name = "AutomatedParkingBuilding01",
					Upkeep = 130000,
					GarageCapacity = 416,
					Comfortfactor = 0.75f,
					ElectricityConsumption = 7000,
					WaterConsumption = 3000,
					GarbageAccumulation = 2500,
					NoisePollution = 2500,
					GroundPollution = 0,
					AirPollution = 0,
					TelecomNeed = 0
				}
			},
			Citypark_Options = new List<CityparkOptions>
			{
				new CityparkOptions
				{
					Name = "CityPark01",
					Upkeep = 2000,
					ElectricityConsumption = 500,
					WaterConsumption = 0,
					GarbageAccumulation = 100,
					ServiceCoverageRange = 2500f,
					ServiceCoverageCapacity = 800f,
					ServiceCoverageMagnitude = 10f,
					Attractiveness = 1,
					LeisureEfficiency = 1,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "CityPark02",
					Upkeep = 4000,
					ElectricityConsumption = 750,
					WaterConsumption = 500,
					GarbageAccumulation = 200,
					ServiceCoverageRange = 4000f,
					ServiceCoverageCapacity = 1200f,
					ServiceCoverageMagnitude = 10f,
					Attractiveness = 5,
					LeisureEfficiency = 2,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "Playground01",
					Upkeep = 1000,
					ElectricityConsumption = 250,
					WaterConsumption = 0,
					GarbageAccumulation = 200,
					ServiceCoverageRange = 2000f,
					ServiceCoverageCapacity = 600f,
					ServiceCoverageMagnitude = 10f,
					Attractiveness = 1,
					LeisureEfficiency = 2,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "DogPark01",
					Upkeep = 2000,
					ElectricityConsumption = 250,
					WaterConsumption = 0,
					GarbageAccumulation = 200,
					ServiceCoverageRange = 3500f,
					ServiceCoverageCapacity = 800f,
					ServiceCoverageMagnitude = 10f,
					Attractiveness = 1,
					LeisureEfficiency = 2,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "CampireSite01",
					Upkeep = 6000,
					ElectricityConsumption = 0,
					WaterConsumption = 0,
					GarbageAccumulation = 400,
					ServiceCoverageRange = 6000f,
					ServiceCoverageCapacity = 1600f,
					ServiceCoverageMagnitude = 10f,
					Attractiveness = 10,
					LeisureEfficiency = 5,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "CityPark03",
					Upkeep = 8500,
					ElectricityConsumption = 10000,
					WaterConsumption = 750,
					GarbageAccumulation = 300,
					ServiceCoverageRange = 3000f,
					ServiceCoverageCapacity = 1600f,
					ServiceCoverageMagnitude = 14f,
					Attractiveness = 10,
					LeisureEfficiency = 3,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "CityPark04",
					Upkeep = 12500,
					ElectricityConsumption = 1500,
					WaterConsumption = 1000,
					GarbageAccumulation = 400,
					ServiceCoverageRange = 4000f,
					ServiceCoverageCapacity = 2000f,
					ServiceCoverageMagnitude = 14f,
					Attractiveness = 15,
					LeisureEfficiency = 5,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "Playground02",
					Upkeep = 2500,
					ElectricityConsumption = 500,
					WaterConsumption = 0,
					GarbageAccumulation = 400,
					ServiceCoverageRange = 2500f,
					ServiceCoverageCapacity = 800f,
					ServiceCoverageMagnitude = 14f,
					Attractiveness = 5,
					LeisureEfficiency = 5,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "TennisCourt01",
					Upkeep = 2500,
					ElectricityConsumption = 500,
					WaterConsumption = 0,
					GarbageAccumulation = 400,
					ServiceCoverageRange = 3500f,
					ServiceCoverageCapacity = 800f,
					ServiceCoverageMagnitude = 14f,
					Attractiveness = 5,
					LeisureEfficiency = 5,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "GymPark01",
					Upkeep = 3000,
					ElectricityConsumption = 500,
					WaterConsumption = 0,
					GarbageAccumulation = 400,
					ServiceCoverageRange = 3500f,
					ServiceCoverageCapacity = 1000f,
					ServiceCoverageMagnitude = 10f,
					Attractiveness = 5,
					LeisureEfficiency = 5,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "SkatePark01",
					Upkeep = 3000,
					ElectricityConsumption = 500,
					WaterConsumption = 0,
					GarbageAccumulation = 400,
					ServiceCoverageRange = 3500f,
					ServiceCoverageCapacity = 1000f,
					ServiceCoverageMagnitude = 10f,
					Attractiveness = 5,
					LeisureEfficiency = 5,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "BasketballCourt01",
					Upkeep = 2500,
					ElectricityConsumption = 510,
					WaterConsumption = 0,
					GarbageAccumulation = 400,
					ServiceCoverageRange = 3500f,
					ServiceCoverageCapacity = 800f,
					ServiceCoverageMagnitude = 14f,
					Attractiveness = 5,
					LeisureEfficiency = 5,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "AmericanFootballField01",
					Upkeep = 30000,
					ElectricityConsumption = 2500,
					WaterConsumption = 0,
					GarbageAccumulation = 1500,
					ServiceCoverageRange = 4000f,
					ServiceCoverageCapacity = 4000f,
					ServiceCoverageMagnitude = 16f,
					Attractiveness = 25,
					LeisureEfficiency = 25,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "FootballField01",
					Upkeep = 30000,
					ElectricityConsumption = 2510,
					WaterConsumption = 0,
					GarbageAccumulation = 1500,
					ServiceCoverageRange = 4000f,
					ServiceCoverageCapacity = 4000f,
					ServiceCoverageMagnitude = 16f,
					Attractiveness = 25,
					LeisureEfficiency = 20,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "CommunityPool01",
					Upkeep = 16000,
					ElectricityConsumption = 3000,
					WaterConsumption = 10000,
					GarbageAccumulation = 1500,
					ServiceCoverageRange = 3500f,
					ServiceCoverageCapacity = 2000f,
					ServiceCoverageMagnitude = 16f,
					Attractiveness = 15,
					LeisureEfficiency = 20,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "ObservationTower01",
					Upkeep = 320000,
					ElectricityConsumption = 3500,
					WaterConsumption = 5000,
					GarbageAccumulation = 5700,
					ServiceCoverageRange = 7500f,
					ServiceCoverageCapacity = 6000f,
					ServiceCoverageMagnitude = 18f,
					Attractiveness = 40,
					LeisureEfficiency = 75,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "BronzeStatue01",
					Upkeep = 320000,
					ElectricityConsumption = 3000,
					WaterConsumption = 1000,
					GarbageAccumulation = 1900,
					ServiceCoverageRange = 5000f,
					ServiceCoverageCapacity = 5000f,
					ServiceCoverageMagnitude = 16f,
					Attractiveness = 50,
					LeisureEfficiency = 25,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "WaterPark01",
					Upkeep = 80000,
					ElectricityConsumption = 15000,
					WaterConsumption = 20000,
					GarbageAccumulation = 1900,
					ServiceCoverageRange = 5000f,
					ServiceCoverageCapacity = 3000f,
					ServiceCoverageMagnitude = 16f,
					Attractiveness = 75,
					LeisureEfficiency = 25,
					TelecomNeed = 0
				},
				new CityparkOptions
				{
					Name = "OldCastle01",
					Upkeep = 480000,
					ElectricityConsumption = 1000,
					WaterConsumption = 1000,
					GarbageAccumulation = 1500,
					ServiceCoverageRange = 7500f,
					ServiceCoverageCapacity = 4000f,
					ServiceCoverageMagnitude = 16f,
					Attractiveness = 85,
					LeisureEfficiency = 20,
					TelecomNeed = 0
				}
			},
			Wastewater_Options = new List<WastewaterOptions>
			{
				new WastewaterOptions
				{
					Name = "WastewaterTreatmentPlant01",
					Upkeep = 120000,
					WaterConsumption = 0,
					SewageCapacity = 400000,
					SewagePurification = 0.5f,
					GarbageAccumulation = 50000,
					GroundPollution = 7500,
					AirPollution = 7500,
					NoisePollution = 15000,
					ElectricityConsumption = 3000,
					TelecomNeed = 0
				},
				new WastewaterOptions
				{
					Name = "WastewaterTreatmentPlant01 Advanced Filtering System",
					Upkeep = 20000,
					WaterConsumption = 0,
					SewageCapacity = 0,
					SewagePurification = 0.1f,
					GarbageAccumulation = 12500,
					GroundPollution = 0,
					AirPollution = 0,
					NoisePollution = 0,
					ElectricityConsumption = 2000,
					TelecomNeed = 0
				},
				new WastewaterOptions
				{
					Name = "WastewaterTreatmentPlant01 Extra Processing Unit",
					Upkeep = 40000,
					WaterConsumption = 0,
					SewageCapacity = 100000,
					SewagePurification = 0f,
					GarbageAccumulation = 10000,
					GroundPollution = 2500,
					AirPollution = 2500,
					NoisePollution = 7500,
					ElectricityConsumption = 1000,
					TelecomNeed = 0
				},
				new WastewaterOptions
				{
					Name = "SewageOutlet01",
					Upkeep = 20000,
					WaterConsumption = 0,
					SewageCapacity = 100000,
					SewagePurification = 0f,
					GarbageAccumulation = 0,
					GroundPollution = 0,
					AirPollution = 5000,
					NoisePollution = 5000,
					ElectricityConsumption = 0,
					TelecomNeed = 0
				},
				new WastewaterOptions
				{
					Name = "SewageOutlet01 Chemical Purification",
					Upkeep = 4000,
					WaterConsumption = 0,
					SewageCapacity = 0,
					SewagePurification = 0.25f,
					GarbageAccumulation = 0,
					GroundPollution = 0,
					AirPollution = 2500,
					NoisePollution = 5000,
					ElectricityConsumption = 0,
					TelecomNeed = 0
				},
				new WastewaterOptions
				{
					Name = "SewageOutlet01 Extra Settling Tank",
					Upkeep = 10000,
					WaterConsumption = 0,
					SewageCapacity = 0,
					SewagePurification = 0.1f,
					GarbageAccumulation = 0,
					GroundPollution = 2500,
					AirPollution = 2500,
					NoisePollution = 5000,
					ElectricityConsumption = 0,
					TelecomNeed = 0
				}
			},
			IncinerationPlant_Options = new List<IncinerationPlantOptions>
			{
				new IncinerationPlantOptions
				{
					Name = "IncinerationPlant01",
					GarbageCapacity = 3000000,
					GarbageVehicleCapacity = 50,
					GarbageTransportCapacity = 1,
					GarbageProcessingspeed = 3000000,
					GarbageAccumulation = 0,
					ElectricityProduction = 0,
					ProductionPerUnit = 7.5f,
					ElectricityConsumption = 0,
					ProductionCapacity = 400000,
					Upkeep = 210000,
					WaterConsumption = 25000,
					GroundPollution = 40000,
					AirPollution = 40000,
					NoisePollution = 40000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "IncinerationPlant01 Extra Incinerator Furnace",
					GarbageCapacity = 0,
					GarbageVehicleCapacity = 0,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 1500000,
					GarbageAccumulation = 0,
					ElectricityProduction = 0,
					ProductionPerUnit = 75f,
					ElectricityConsumption = 0,
					ProductionCapacity = 200000,
					Upkeep = 85000,
					WaterConsumption = 15000,
					GroundPollution = 20000,
					AirPollution = 20000,
					NoisePollution = 20000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "IncinerationPlant01 Garbage Truck Depot",
					GarbageCapacity = 0,
					GarbageVehicleCapacity = 25,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 0,
					GarbageAccumulation = 0,
					ElectricityConsumption = 0,
					Upkeep = 40000,
					WaterConsumption = 0,
					GroundPollution = 0,
					AirPollution = 0,
					NoisePollution = 10000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "IncinerationPlant01 Storage Extention",
					GarbageCapacity = 600000,
					GarbageVehicleCapacity = 0,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 0,
					GarbageAccumulation = 0,
					ElectricityConsumption = 0,
					Upkeep = 30000,
					WaterConsumption = 0,
					GroundPollution = 5000,
					AirPollution = 5000,
					NoisePollution = 5000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "Landfill01",
					GarbageCapacity = 20000,
					GarbageVehicleCapacity = 20,
					GarbageTransportCapacity = 1,
					GarbageProcessingspeed = 100000,
					GarbageAccumulation = 0,
					Upkeep = 30000,
					ElectricityConsumption = 1000,
					WaterConsumption = 2500,
					GroundPollution = 20000,
					AirPollution = 20000,
					NoisePollution = 40000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "Landfill01 Garbage Truck Depot",
					GarbageCapacity = 0,
					GarbageVehicleCapacity = 10,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 0,
					GarbageAccumulation = 0,
					Upkeep = 20000,
					ElectricityConsumption = 750,
					WaterConsumption = 0,
					GroundPollution = 0,
					AirPollution = 0,
					NoisePollution = 10000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "Landfill01 Hazardous Waste Collection Point",
					GarbageCapacity = 0,
					GarbageVehicleCapacity = 0,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 50000,
					GarbageAccumulation = 0,
					Upkeep = 30000,
					ElectricityConsumption = 750,
					WaterConsumption = 0,
					GroundPollution = 5000,
					AirPollution = 5000,
					NoisePollution = 5000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "Landfill01Waste Recycling Unit",
					GarbageCapacity = 0,
					GarbageVehicleCapacity = 0,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 50000,
					GarbageAccumulation = 0,
					Upkeep = 30000,
					ElectricityConsumption = 750,
					WaterConsumption = 1000,
					GroundPollution = 5000,
					AirPollution = 5000,
					NoisePollution = 5000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "RecyclingCenter01",
					GarbageCapacity = 1500000,
					GarbageVehicleCapacity = 15,
					GarbageTransportCapacity = 1,
					GarbageProcessingspeed = 1500000,
					GarbageAccumulation = 0,
					Upkeep = 1500000,
					ElectricityConsumption = 2500,
					WaterConsumption = 10000,
					GroundPollution = 10000,
					AirPollution = 5000,
					NoisePollution = 15000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "RecyclingCenter01 Garbage Truck Depot",
					GarbageCapacity = 0,
					GarbageVehicleCapacity = 15,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 0,
					GarbageAccumulation = 0,
					Upkeep = 30000,
					ElectricityConsumption = 750,
					WaterConsumption = 1000,
					GroundPollution = 0,
					AirPollution = 0,
					NoisePollution = 5000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "RecyclingCenter01 Hazardous Waste Collection Point",
					GarbageCapacity = 0,
					GarbageVehicleCapacity = 0,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 50000,
					GarbageAccumulation = 0,
					Upkeep = 40000,
					ElectricityConsumption = 750,
					WaterConsumption = 2000,
					GroundPollution = 5000,
					AirPollution = 5000,
					NoisePollution = 5000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "RecyclingCenter01 Storage Extention",
					GarbageCapacity = 100000,
					GarbageVehicleCapacity = 0,
					GarbageTransportCapacity = 0,
					GarbageProcessingspeed = 0,
					GarbageAccumulation = 0,
					Upkeep = 30000,
					ElectricityConsumption = 750,
					WaterConsumption = 0,
					GroundPollution = 5000,
					AirPollution = 5000,
					NoisePollution = 5000,
					TelecomNeed = 0
				},
				new IncinerationPlantOptions
				{
					Name = "HazardousWasteProcessingSite01",
					GarbageCapacity = 50000000,
					GarbageVehicleCapacity = 250,
					GarbageTransportCapacity = 1,
					GarbageProcessingspeed = 50000000,
					GarbageAccumulation = 0,
					Upkeep = 450000,
					ElectricityConsumption = 15000,
					WaterConsumption = 25000,
					CityIndustrialGroundPollution = -0.15f,
					GroundPollution = 50000,
					AirPollution = 50000,
					NoisePollution = 50000,
					TelecomNeed = 0
				}
			},
			Healthcare_Options = new List<HealthcareOptions>
			{
				new HealthcareOptions
				{
					Name = "MedicalClinic01",
					Upkeep = 40000,
					WaterConsumption = 1000,
					ElectricityConsumption = 2500,
					GarbageAccumulation = 1900,
					AmbulanceCapacity = 5,
					HelicopterCapacity = 0,
					PatientCapacity = 100,
					TreatmentBonus = 15,
					ServiceCoverageCapacity = 15000f,
					ServiceCoverageRange = 5000f,
					ServiceCoverageMagnitude = 5f,
					TelecomNeed = 0
				},
				new HealthcareOptions
				{
					Name = "MedicalClinic01 Ambulance Depot",
					Upkeep = 7000,
					WaterConsumption = 250,
					ElectricityConsumption = 500,
					GarbageAccumulation = 400,
					AmbulanceCapacity = 5,
					HelicopterCapacity = 0,
					PatientCapacity = 0,
					TreatmentBonus = 0,
					TelecomNeed = 0
				},
				new HealthcareOptions
				{
					Name = "MedicalClinic01 Extention Wing",
					Upkeep = 25000,
					WaterConsumption = 500,
					ElectricityConsumption = 1000,
					GarbageAccumulation = 700,
					AmbulanceCapacity = 0,
					HelicopterCapacity = 0,
					PatientCapacity = 25,
					TreatmentBonus = 0,
					TelecomNeed = 0
				},
				new HealthcareOptions
				{
					Name = "Hospital01",
					Upkeep = 450000,
					WaterConsumption = 5000,
					ElectricityConsumption = 10000,
					GarbageAccumulation = 9400,
					AmbulanceCapacity = 30,
					HelicopterCapacity = 0,
					PatientCapacity = 500,
					TreatmentBonus = 30,
					ServiceCoverageCapacity = 50000f,
					ServiceCoverageRange = 7500f,
					ServiceCoverageMagnitude = 10f,
					TelecomNeed = 0
				},
				new HealthcareOptions
				{
					Name = "Hospital01 Helipad",
					Upkeep = 35000,
					WaterConsumption = 250,
					ElectricityConsumption = 1000,
					GarbageAccumulation = 1000,
					AmbulanceCapacity = 0,
					HelicopterCapacity = 1,
					PatientCapacity = 0,
					TreatmentBonus = 0,
					TelecomNeed = 0
				},
				new HealthcareOptions
				{
					Name = "Hospital01 Special Ward",
					Upkeep = 100000,
					WaterConsumption = 2500,
					ElectricityConsumption = 2000,
					GarbageAccumulation = 3200,
					AmbulanceCapacity = 0,
					HelicopterCapacity = 0,
					PatientCapacity = 0,
					TreatmentBonus = 0,
					TelecomNeed = 0
				},
				new HealthcareOptions
				{
					Name = "Hospital01 Trauma Center",
					Upkeep = 80000,
					WaterConsumption = 2500,
					ElectricityConsumption = 2000,
					GarbageAccumulation = 3200,
					AmbulanceCapacity = 0,
					HelicopterCapacity = 0,
					PatientCapacity = 0,
					TreatmentBonus = 15,
					TelecomNeed = 0
				}
			},
			Postoffice_Options = new List<PostofficeOptions>
			{
				new PostofficeOptions
				{
					Name = "PostOffice01",
					Upkeep = 45000,
					WaterConsumption = 1000,
					ElectricityConsumption = 500,
					GarbageAccumulation = 1900,
					NoisePollution = 5000,
					AirPollution = 0,
					GroundPollution = 0,
					MailboxCapacity = 500,
					PostVanCapacity = 20,
					PostTrucksCapacity = 0,
					MailStorageCapacity = 100000,
					ServiceCoverageCapacity = 15000f,
					ServiceCoverageRange = 2000f,
					ServiceCoverageMagnitude = 2f,
					SortingRate = 0,
					TelecomNeed = 0
				},
				new PostofficeOptions
				{
					Name = "PostOffice01 Post Van Garage",
					Upkeep = 6000,
					WaterConsumption = 250,
					ElectricityConsumption = 350,
					GarbageAccumulation = 900,
					NoisePollution = 2500,
					AirPollution = 0,
					GroundPollution = 0,
					MailboxCapacity = 0,
					PostVanCapacity = 10,
					PostTrucksCapacity = 0,
					MailStorageCapacity = 0,
					SortingRate = 0,
					TelecomNeed = 0
				},
				new PostofficeOptions
				{
					Name = "PostOffice01 Mail Storage Extention",
					Upkeep = 5000,
					WaterConsumption = 0,
					ElectricityConsumption = 350,
					GarbageAccumulation = 400,
					NoisePollution = 2500,
					AirPollution = 0,
					GroundPollution = 0,
					MailboxCapacity = 0,
					PostVanCapacity = 0,
					PostTrucksCapacity = 0,
					MailStorageCapacity = 25000,
					SortingRate = 0,
					TelecomNeed = 0
				},
				new PostofficeOptions
				{
					Name = "PostSortingFacility01",
					Upkeep = 80000,
					WaterConsumption = 2500,
					ElectricityConsumption = 8000,
					GarbageAccumulation = 9000,
					NoisePollution = 20000,
					AirPollution = 0,
					GroundPollution = 0,
					MailboxCapacity = 0,
					PostVanCapacity = 0,
					PostTrucksCapacity = 5,
					MailStorageCapacity = 500000,
					SortingRate = 50000,
					TelecomNeed = 0
				},
				new PostofficeOptions
				{
					Name = "PostSortingFacility01 Extra Loading Ramp",
					Upkeep = 10000,
					WaterConsumption = 0,
					ElectricityConsumption = 0,
					GarbageAccumulation = 1800,
					NoisePollution = 5000,
					AirPollution = 0,
					GroundPollution = 0,
					MailboxCapacity = 0,
					PostVanCapacity = 0,
					PostTrucksCapacity = 5,
					MailStorageCapacity = 0,
					SortingRate = 0,
					TelecomNeed = 0
				},
				new PostofficeOptions
				{
					Name = "PostSortingFacility01 Automated Sorting",
					Upkeep = 80000,
					WaterConsumption = 2500,
					ElectricityConsumption = 8000,
					GarbageAccumulation = 9000,
					MailboxCapacity = 0,