Decompiled source of CimBehaviorImprovements v1.0.1

CimBehaviorImprovements/CimBehaviorImprovements.dll

Decompiled 10 months ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using Colossal;
using Colossal.Collections;
using Colossal.Entities;
using Game;
using Game.Agents;
using Game.Areas;
using Game.Buildings;
using Game.Citizens;
using Game.City;
using Game.Common;
using Game.Companies;
using Game.Debug;
using Game.Economy;
using Game.Net;
using Game.Notifications;
using Game.Objects;
using Game.Prefabs;
using Game.Simulation;
using Game.Tools;
using Game.Triggers;
using Game.Zones;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Unity.Burst;
using Unity.Burst.Intrinsics;
using Unity.Collections;
using Unity.Entities;
using Unity.Jobs;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.Scripting;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyCompany("ResponsibleCims")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Responsible Cims")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("ResponsibleCims")]
[assembly: AssemblyTitle("ResponsibleCims")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[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.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace ResponsibleCims
{
	[CompilerGenerated]
	public class ApplyToSchoolSystem : GameSystemBase
	{
		[BurstCompile]
		public struct ApplyToSchoolJob : IJobChunk
		{
			[ReadOnly]
			public EntityTypeHandle m_EntityType;

			[ReadOnly]
			public SharedComponentTypeHandle<UpdateFrame> m_UpdateFrameType;

			public ComponentTypeHandle<Citizen> m_CitizenType;

			[ReadOnly]
			public ComponentTypeHandle<Worker> m_WorkerType;

			[ReadOnly]
			public ComponentLookup<PrefabRef> m_Prefabs;

			[ReadOnly]
			public ComponentLookup<SchoolData> m_SchoolDatas;

			[ReadOnly]
			public BufferLookup<HouseholdCitizen> m_HouseholdCitizens;

			[ReadOnly]
			public ComponentTypeHandle<HouseholdMember> m_HouseholdMemberType;

			[ReadOnly]
			public ComponentLookup<HouseholdMember> m_HouseholdMembers;

			[ReadOnly]
			public ComponentLookup<Household> m_HouseholdDatas;

			[ReadOnly]
			public BufferLookup<Resources> m_Resources;

			[ReadOnly]
			public ComponentLookup<PropertyRenter> m_PropertyRenters;

			[ReadOnly]
			public BufferLookup<CityModifier> m_CityModifiers;

			[ReadOnly]
			public BufferLookup<ServiceFee> m_Fees;

			[ReadOnly]
			public ComponentLookup<TouristHousehold> m_TouristHouseholds;

			[ReadOnly]
			public ComponentLookup<Citizen> m_EntityCitizen;

			[ReadOnly]
			public RandomSeed m_RandomSeed;

			public uint m_UpdateFrameIndex;

			public Entity m_City;

			public uint m_SimulationFrame;

			public EconomyParameterData m_EconomyParameters;

			public TimeData m_TimeData;

			public ParallelWriter m_CommandBuffer;

			public void Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask)
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_002b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0030: Unknown result type (might be due to invalid IL or missing references)
				//IL_0035: Unknown result type (might be due to invalid IL or missing references)
				//IL_003d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				//IL_004a: Unknown result type (might be due to invalid IL or missing references)
				//IL_004f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0069: Unknown result type (might be due to invalid IL or missing references)
				//IL_006e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0077: Unknown result type (might be due to invalid IL or missing references)
				//IL_007c: Unknown result type (might be due to invalid IL or missing references)
				//IL_008b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0090: Unknown result type (might be due to invalid IL or missing references)
				//IL_0094: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Unknown result type (might be due to invalid IL or missing references)
				//IL_009b: Unknown result type (might be due to invalid IL or missing references)
				//IL_009e: Invalid comparison between Unknown and I4
				//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fb: Invalid comparison between Unknown and I4
				//IL_0121: Unknown result type (might be due to invalid IL or missing references)
				//IL_0126: Unknown result type (might be due to invalid IL or missing references)
				//IL_012b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0130: Unknown result type (might be due to invalid IL or missing references)
				//IL_0102: Unknown result type (might be due to invalid IL or missing references)
				//IL_0105: Invalid comparison between Unknown and I4
				//IL_013c: Unknown result type (might be due to invalid IL or missing references)
				//IL_014b: Unknown result type (might be due to invalid IL or missing references)
				//IL_014d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0152: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_0179: Unknown result type (might be due to invalid IL or missing references)
				//IL_0181: Unknown result type (might be due to invalid IL or missing references)
				//IL_0183: Unknown result type (might be due to invalid IL or missing references)
				//IL_018e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0190: Unknown result type (might be due to invalid IL or missing references)
				//IL_019e: Unknown result type (might be due to invalid IL or missing references)
				//IL_01aa: Unknown result type (might be due to invalid IL or missing references)
				//IL_01af: Unknown result type (might be due to invalid IL or missing references)
				//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e3: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01fc: Unknown result type (might be due to invalid IL or missing references)
				//IL_0201: Unknown result type (might be due to invalid IL or missing references)
				//IL_020c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0217: Unknown result type (might be due to invalid IL or missing references)
				//IL_0220: Unknown result type (might be due to invalid IL or missing references)
				//IL_0228: Unknown result type (might be due to invalid IL or missing references)
				//IL_022b: Invalid comparison between Unknown and I4
				//IL_023d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0251: Unknown result type (might be due to invalid IL or missing references)
				//IL_0253: Unknown result type (might be due to invalid IL or missing references)
				//IL_0258: Unknown result type (might be due to invalid IL or missing references)
				//IL_03e7: Unknown result type (might be due to invalid IL or missing references)
				//IL_02ee: Unknown result type (might be due to invalid IL or missing references)
				//IL_026a: Unknown result type (might be due to invalid IL or missing references)
				//IL_026f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0274: Unknown result type (might be due to invalid IL or missing references)
				//IL_0279: Unknown result type (might be due to invalid IL or missing references)
				//IL_027d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0282: Unknown result type (might be due to invalid IL or missing references)
				//IL_0284: Unknown result type (might be due to invalid IL or missing references)
				//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
				//IL_0288: Unknown result type (might be due to invalid IL or missing references)
				//IL_028b: Invalid comparison between Unknown and I4
				//IL_028d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0290: Invalid comparison between Unknown and I4
				//IL_031a: Unknown result type (might be due to invalid IL or missing references)
				//IL_031c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0321: Unknown result type (might be due to invalid IL or missing references)
				//IL_0326: Unknown result type (might be due to invalid IL or missing references)
				//IL_032f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0334: Unknown result type (might be due to invalid IL or missing references)
				//IL_033d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0341: Unknown result type (might be due to invalid IL or missing references)
				//IL_034d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0352: Unknown result type (might be due to invalid IL or missing references)
				//IL_0357: Unknown result type (might be due to invalid IL or missing references)
				//IL_0366: Unknown result type (might be due to invalid IL or missing references)
				//IL_036a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0379: Unknown result type (might be due to invalid IL or missing references)
				//IL_0388: Unknown result type (might be due to invalid IL or missing references)
				//IL_038c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0394: Unknown result type (might be due to invalid IL or missing references)
				//IL_0396: Unknown result type (might be due to invalid IL or missing references)
				//IL_039b: Unknown result type (might be due to invalid IL or missing references)
				//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
				//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
				//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
				//IL_03bf: Unknown result type (might be due to invalid IL or missing references)
				//IL_03c4: Unknown result type (might be due to invalid IL or missing references)
				if (((ArchetypeChunk)(ref chunk)).GetSharedComponent<UpdateFrame>(m_UpdateFrameType).m_Index != m_UpdateFrameIndex)
				{
					return;
				}
				NativeArray<Entity> nativeArray = ((ArchetypeChunk)(ref chunk)).GetNativeArray(m_EntityType);
				NativeArray<Citizen> nativeArray2 = ((ArchetypeChunk)(ref chunk)).GetNativeArray<Citizen>(ref m_CitizenType);
				NativeArray<Worker> nativeArray3 = ((ArchetypeChunk)(ref chunk)).GetNativeArray<Worker>(ref m_WorkerType);
				DynamicBuffer<CityModifier> val = m_CityModifiers[m_City];
				NativeArray<HouseholdMember> nativeArray4 = ((ArchetypeChunk)(ref chunk)).GetNativeArray<HouseholdMember>(ref m_HouseholdMemberType);
				Random random = ((RandomSeed)(ref m_RandomSeed)).GetRandom(unfilteredChunkIndex);
				for (int i = 0; i < ((ArchetypeChunk)(ref chunk)).Count; i++)
				{
					Citizen val2 = nativeArray2[i];
					CitizenAge age = ((Citizen)(ref val2)).GetAge();
					if ((int)age == 3)
					{
						continue;
					}
					int num = ((Random)(ref random)).NextInt(100);
					int num2 = ((Random)(ref random)).NextInt(100);
					int num3 = (((int)age == 0) ? 1 : (((Citizen)(ref val2)).GetEducationLevel() + 1));
					int failedEducationCount = ((Citizen)(ref val2)).GetFailedEducationCount();
					if (failedEducationCount == 0 && num3 == 3)
					{
						num3 = 4;
					}
					bool flag = (int)age == 0 || ((int)age == 1 && num3 >= 2) || ((int)age == 2 && num3 >= 3);
					Entity household = m_HouseholdMembers[nativeArray[i]].m_Household;
					if (!flag || !m_HouseholdDatas.HasComponent(household) || (m_HouseholdDatas[household].m_Flags & 4) == 0 || failedEducationCount >= 3 || num3 < 1 || num3 > 4)
					{
						continue;
					}
					int householdWorth = EconomyUtils.GetHouseholdWorth(household, m_HouseholdDatas[household], m_Resources[household]);
					float fee = ServiceFeeSystem.GetFee(ServiceFeeSystem.GetEducationResource(num3), m_Fees[m_City]);
					SchoolData val3 = default(SchoolData);
					float num4 = 1f;
					float dropoutProbability = GraduationSystem.GetDropoutProbability(val2, num3, 0f, fee, householdWorth, m_SimulationFrame, ref m_EconomyParameters, val3, val, num4, m_TimeData);
					Random pseudoRandom = ((Citizen)(ref val2)).GetPseudoRandom((CitizenPseudoRandom)1176609278);
					float willingness = ((Random)(ref pseudoRandom)).NextFloat();
					float num5 = GetEnteringProbability(age, nativeArray3.IsCreated, num3, val2.m_WellBeing, willingness, val);
					if ((int)age == 2 && m_HouseholdCitizens.HasBuffer(household))
					{
						DynamicBuffer<HouseholdCitizen> val4 = m_HouseholdCitizens[household];
						for (int j = 0; j < val4.Length; j++)
						{
							Citizen val5 = m_EntityCitizen[val4[j].m_Citizen];
							CitizenAge age2 = ((Citizen)(ref val5)).GetAge();
							if ((int)age2 == 0 || (int)age2 == 1 || (int)age2 == 3)
							{
								num5 /= 4f;
							}
						}
					}
					if ((float)num2 > 100f * dropoutProbability && (float)num < 100f * num5)
					{
						if (m_PropertyRenters.HasComponent(household) && !m_TouristHouseholds.HasComponent(household))
						{
							Entity property = m_PropertyRenters[household].m_Property;
							Entity val6 = ((ParallelWriter)(ref m_CommandBuffer)).CreateEntity(unfilteredChunkIndex);
							((ParallelWriter)(ref m_CommandBuffer)).AddComponent<Owner>(unfilteredChunkIndex, val6, new Owner
							{
								m_Owner = nativeArray[i]
							});
							((ParallelWriter)(ref m_CommandBuffer)).AddComponent<SchoolSeeker>(unfilteredChunkIndex, val6, new SchoolSeeker
							{
								m_Level = num3
							});
							((ParallelWriter)(ref m_CommandBuffer)).AddComponent<CurrentBuilding>(unfilteredChunkIndex, val6, new CurrentBuilding
							{
								m_CurrentBuilding = property
							});
							((ParallelWriter)(ref m_CommandBuffer)).AddComponent<HasSchoolSeeker>(unfilteredChunkIndex, nativeArray[i], new HasSchoolSeeker
							{
								m_Seeker = val6
							});
						}
					}
					else
					{
						((Citizen)(ref val2)).SetFailedEducationCount(math.min(3, failedEducationCount + 1));
						nativeArray2[i] = val2;
					}
				}
			}

			void IJobChunk.Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask)
			{
				Execute(in chunk, unfilteredChunkIndex, useEnabledMask, in chunkEnabledMask);
			}
		}

		private struct TypeHandle
		{
			public SharedComponentTypeHandle<UpdateFrame> __Game_Simulation_UpdateFrame_SharedComponentTypeHandle;

			public ComponentTypeHandle<Citizen> __Game_Citizens_Citizen_RW_ComponentTypeHandle;

			[ReadOnly]
			public EntityTypeHandle __Unity_Entities_Entity_TypeHandle;

			[ReadOnly]
			public ComponentTypeHandle<Worker> __Game_Citizens_Worker_RO_ComponentTypeHandle;

			[ReadOnly]
			public ComponentLookup<HouseholdMember> __Game_Citizens_HouseholdMember_RO_ComponentLookup;

			[ReadOnly]
			public BufferLookup<HouseholdCitizen> __Game_Citizens_HouseholdCitizen_RO_BufferTypeHandle;

			[ReadOnly]
			public ComponentLookup<PropertyRenter> __Game_Buildings_PropertyRenter_RO_ComponentLookup;

			[ReadOnly]
			public BufferLookup<CityModifier> __Game_City_CityModifier_RO_BufferLookup;

			[ReadOnly]
			public ComponentLookup<PrefabRef> __Game_Prefabs_PrefabRef_RO_ComponentLookup;

			[ReadOnly]
			public ComponentLookup<SchoolData> __Game_Prefabs_SchoolData_RO_ComponentLookup;

			[ReadOnly]
			public ComponentLookup<Household> __Game_Citizens_Household_RO_ComponentLookup;

			[ReadOnly]
			public BufferLookup<Resources> __Game_Economy_Resources_RO_BufferLookup;

			[ReadOnly]
			public BufferLookup<ServiceFee> __Game_City_ServiceFee_RO_BufferLookup;

			[ReadOnly]
			public ComponentLookup<TouristHousehold> __Game_Citizens_TouristHousehold_RO_ComponentLookup;

			[ReadOnly]
			public ComponentLookup<Citizen> __Game_Citizens_Citizen_RO_ComponentLookup;

			[MethodImpl(MethodImplOptions.AggressiveInlining)]
			public void __AssignHandles(ref SystemState state)
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0021: Unknown result type (might be due to invalid IL or missing references)
				//IL_0029: Unknown result type (might be due to invalid IL or missing references)
				//IL_002e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0036: Unknown result type (might be due to invalid IL or missing references)
				//IL_003b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0050: Unknown result type (might be due to invalid IL or missing references)
				//IL_0055: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0062: Unknown result type (might be due to invalid IL or missing references)
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0077: Unknown result type (might be due to invalid IL or missing references)
				//IL_007c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0084: Unknown result type (might be due to invalid IL or missing references)
				//IL_0089: Unknown result type (might be due to invalid IL or missing references)
				//IL_0091: Unknown result type (might be due to invalid IL or missing references)
				//IL_0096: Unknown result type (might be due to invalid IL or missing references)
				//IL_009e: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
				__Game_Simulation_UpdateFrame_SharedComponentTypeHandle = ((SystemState)(ref state)).GetSharedComponentTypeHandle<UpdateFrame>();
				__Game_Citizens_Citizen_RW_ComponentTypeHandle = ((SystemState)(ref state)).GetComponentTypeHandle<Citizen>(false);
				__Unity_Entities_Entity_TypeHandle = ((SystemState)(ref state)).GetEntityTypeHandle();
				__Game_Citizens_Worker_RO_ComponentTypeHandle = ((SystemState)(ref state)).GetComponentTypeHandle<Worker>(true);
				__Game_Citizens_HouseholdMember_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<HouseholdMember>(true);
				__Game_Buildings_PropertyRenter_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<PropertyRenter>(true);
				__Game_City_CityModifier_RO_BufferLookup = ((SystemState)(ref state)).GetBufferLookup<CityModifier>(true);
				__Game_Prefabs_PrefabRef_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<PrefabRef>(true);
				__Game_Prefabs_SchoolData_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<SchoolData>(true);
				__Game_Citizens_Household_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<Household>(true);
				__Game_Economy_Resources_RO_BufferLookup = ((SystemState)(ref state)).GetBufferLookup<Resources>(true);
				__Game_City_ServiceFee_RO_BufferLookup = ((SystemState)(ref state)).GetBufferLookup<ServiceFee>(true);
				__Game_Citizens_TouristHousehold_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<TouristHousehold>(true);
				__Game_Citizens_HouseholdCitizen_RO_BufferTypeHandle = ((SystemState)(ref state)).GetBufferLookup<HouseholdCitizen>(true);
				__Game_Citizens_Citizen_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<Citizen>(true);
			}
		}

		public const uint UPDATE_INTERVAL = 8192u;

		private EntityQuery m_CitizenGroup;

		private SimulationSystem m_SimulationSystem;

		private EndFrameBarrier m_EndFrameBarrier;

		private CitySystem m_CitySystem;

		private TypeHandle __TypeHandle;

		private EntityQuery __query_2069025488_0;

		private EntityQuery __query_2069025488_1;

		public override int GetUpdateInterval(SystemUpdatePhase phase)
		{
			return 512;
		}

		[Preserve]
		protected override void OnCreate()
		{
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Expected O, but got Unknown
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			((GameSystemBase)this).OnCreate();
			m_SimulationSystem = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<SimulationSystem>();
			m_EndFrameBarrier = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<EndFrameBarrier>();
			m_CitySystem = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<CitySystem>();
			EntityQueryDesc[] array = new EntityQueryDesc[1];
			EntityQueryDesc val = new EntityQueryDesc();
			val.All = (ComponentType[])(object)new ComponentType[2]
			{
				ComponentType.ReadWrite<Citizen>(),
				ComponentType.ReadOnly<UpdateFrame>()
			};
			val.None = (ComponentType[])(object)new ComponentType[5]
			{
				ComponentType.ReadOnly<HealthProblem>(),
				ComponentType.ReadOnly<HasJobSeeker>(),
				ComponentType.ReadOnly<HasSchoolSeeker>(),
				ComponentType.ReadOnly<Student>(),
				ComponentType.ReadOnly<Deleted>()
			};
			array[0] = val;
			m_CitizenGroup = ((ComponentSystemBase)this).GetEntityQuery((EntityQueryDesc[])(object)array);
			((ComponentSystemBase)this).RequireForUpdate(m_CitizenGroup);
			((ComponentSystemBase)this).RequireForUpdate<EconomyParameterData>();
			((ComponentSystemBase)this).RequireForUpdate<TimeData>();
		}

		[Preserve]
		protected override void OnUpdate()
		{
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01df: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0203: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0227: Unknown result type (might be due to invalid IL or missing references)
			//IL_022c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0239: Unknown result type (might be due to invalid IL or missing references)
			//IL_023e: Unknown result type (might be due to invalid IL or missing references)
			//IL_024b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: Unknown result type (might be due to invalid IL or missing references)
			//IL_025d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0262: Unknown result type (might be due to invalid IL or missing references)
			//IL_026f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0274: Unknown result type (might be due to invalid IL or missing references)
			//IL_027b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0280: Unknown result type (might be due to invalid IL or missing references)
			//IL_029f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0306: Unknown result type (might be due to invalid IL or missing references)
			//IL_030c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0311: Unknown result type (might be due to invalid IL or missing references)
			//IL_0323: Unknown result type (might be due to invalid IL or missing references)
			uint updateFrameWithInterval = SimulationUtils.GetUpdateFrameWithInterval(m_SimulationSystem.frameIndex, (uint)((GameSystemBase)this).GetUpdateInterval((SystemUpdatePhase)12), 16);
			__TypeHandle.__Game_Citizens_TouristHousehold_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_City_ServiceFee_RO_BufferLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Economy_Resources_RO_BufferLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Household_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Prefabs_SchoolData_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Prefabs_PrefabRef_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_City_CityModifier_RO_BufferLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Buildings_PropertyRenter_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_HouseholdMember_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Worker_RO_ComponentTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			((EntityTypeHandle)(ref __TypeHandle.__Unity_Entities_Entity_TypeHandle)).Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Citizen_RW_ComponentTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Simulation_UpdateFrame_SharedComponentTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_HouseholdCitizen_RO_BufferTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Citizen_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			ApplyToSchoolJob applyToSchoolJob = default(ApplyToSchoolJob);
			applyToSchoolJob.m_UpdateFrameType = __TypeHandle.__Game_Simulation_UpdateFrame_SharedComponentTypeHandle;
			applyToSchoolJob.m_CitizenType = __TypeHandle.__Game_Citizens_Citizen_RW_ComponentTypeHandle;
			applyToSchoolJob.m_EntityType = __TypeHandle.__Unity_Entities_Entity_TypeHandle;
			applyToSchoolJob.m_WorkerType = __TypeHandle.__Game_Citizens_Worker_RO_ComponentTypeHandle;
			applyToSchoolJob.m_HouseholdMembers = __TypeHandle.__Game_Citizens_HouseholdMember_RO_ComponentLookup;
			applyToSchoolJob.m_HouseholdCitizens = __TypeHandle.__Game_Citizens_HouseholdCitizen_RO_BufferTypeHandle;
			applyToSchoolJob.m_PropertyRenters = __TypeHandle.__Game_Buildings_PropertyRenter_RO_ComponentLookup;
			applyToSchoolJob.m_CityModifiers = __TypeHandle.__Game_City_CityModifier_RO_BufferLookup;
			applyToSchoolJob.m_Prefabs = __TypeHandle.__Game_Prefabs_PrefabRef_RO_ComponentLookup;
			applyToSchoolJob.m_SchoolDatas = __TypeHandle.__Game_Prefabs_SchoolData_RO_ComponentLookup;
			applyToSchoolJob.m_HouseholdDatas = __TypeHandle.__Game_Citizens_Household_RO_ComponentLookup;
			applyToSchoolJob.m_Resources = __TypeHandle.__Game_Economy_Resources_RO_BufferLookup;
			applyToSchoolJob.m_Fees = __TypeHandle.__Game_City_ServiceFee_RO_BufferLookup;
			applyToSchoolJob.m_TouristHouseholds = __TypeHandle.__Game_Citizens_TouristHousehold_RO_ComponentLookup;
			applyToSchoolJob.m_RandomSeed = RandomSeed.Next();
			applyToSchoolJob.m_SimulationFrame = m_SimulationSystem.frameIndex;
			applyToSchoolJob.m_EconomyParameters = ((EntityQuery)(ref __query_2069025488_0)).GetSingleton<EconomyParameterData>();
			applyToSchoolJob.m_TimeData = ((EntityQuery)(ref __query_2069025488_1)).GetSingleton<TimeData>();
			applyToSchoolJob.m_City = m_CitySystem.City;
			applyToSchoolJob.m_UpdateFrameIndex = updateFrameWithInterval;
			EntityCommandBuffer val = ((SafeCommandBufferSystem)m_EndFrameBarrier).CreateCommandBuffer();
			applyToSchoolJob.m_CommandBuffer = ((EntityCommandBuffer)(ref val)).AsParallelWriter();
			applyToSchoolJob.m_EntityCitizen = __TypeHandle.__Game_Citizens_Citizen_RO_ComponentLookup;
			ApplyToSchoolJob applyToSchoolJob2 = applyToSchoolJob;
			((SystemBase)this).Dependency = JobChunkExtensions.ScheduleParallel<ApplyToSchoolJob>(applyToSchoolJob2, m_CitizenGroup, ((SystemBase)this).Dependency);
			m_EndFrameBarrier.AddJobHandleForProducer(((SystemBase)this).Dependency);
		}

		public static float GetEnteringProbability(CitizenAge age, bool worker, int level, int wellbeing, float willingness, DynamicBuffer<CityModifier> cityModifiers)
		{
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Invalid comparison between Unknown and I4
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Invalid comparison between Unknown and I4
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			if (level == 1)
			{
				if ((int)age > 0)
				{
					return 0f;
				}
				return 1f;
			}
			if ((int)age == 0 || (int)age == 3)
			{
				return 0f;
			}
			float num = (float)wellbeing / 100f * (0.5f + willingness);
			switch (level)
			{
			case 2:
				if ((int)age != 1)
				{
					return 0f;
				}
				return 0.77f * (worker ? 0.9f : 1f) * math.log(2.6f * num + 1f);
			case 3:
				return 0.5f * (worker ? 0.75f : 1f) * math.log(1.6f * num + 1f);
			case 4:
			{
				float result = 0.3f * (worker ? 0.6f : 1f) * num;
				CityUtils.ApplyModifier(ref result, cityModifiers, (CityModifierType)14);
				return result;
			}
			default:
				return 0f;
			}
		}

		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		private void __AssignQueries(ref SystemState state)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Expected O, but got Unknown
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			EntityQueryDesc[] array = new EntityQueryDesc[1];
			EntityQueryDesc val = new EntityQueryDesc();
			val.All = (ComponentType[])(object)new ComponentType[1] { ComponentType.ReadOnly<EconomyParameterData>() };
			val.Any = (ComponentType[])(object)new ComponentType[0];
			val.None = (ComponentType[])(object)new ComponentType[0];
			val.Disabled = (ComponentType[])(object)new ComponentType[0];
			val.Absent = (ComponentType[])(object)new ComponentType[0];
			val.Options = (EntityQueryOptions)16;
			array[0] = val;
			__query_2069025488_0 = ((SystemState)(ref state)).GetEntityQuery((EntityQueryDesc[])(object)array);
			EntityQueryDesc[] array2 = new EntityQueryDesc[1];
			val = new EntityQueryDesc();
			val.All = (ComponentType[])(object)new ComponentType[1] { ComponentType.ReadOnly<TimeData>() };
			val.Any = (ComponentType[])(object)new ComponentType[0];
			val.None = (ComponentType[])(object)new ComponentType[0];
			val.Disabled = (ComponentType[])(object)new ComponentType[0];
			val.Absent = (ComponentType[])(object)new ComponentType[0];
			val.Options = (EntityQueryOptions)16;
			array2[0] = val;
			__query_2069025488_1 = ((SystemState)(ref state)).GetEntityQuery((EntityQueryDesc[])(object)array2);
		}

		protected override void OnCreateForCompiler()
		{
			((ComponentSystemBase)this).OnCreateForCompiler();
			__AssignQueries(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__AssignHandles(ref ((SystemBase)this).CheckedStateRef);
		}

		[Preserve]
		public ApplyToSchoolSystem()
		{
		}
	}
	[CompilerGenerated]
	public class BirthSystem : GameSystemBase
	{
		[BurstCompile]
		private struct CheckBirthJob : IJobChunk
		{
			public Concurrent m_DebugBirthCounter;

			[ReadOnly]
			public TimeData m_TimeData;

			[ReadOnly]
			public uint m_SimulationFrame;

			[ReadOnly]
			public EntityTypeHandle m_EntityType;

			[ReadOnly]
			public ComponentTypeHandle<Citizen> m_CitizenType;

			[ReadOnly]
			public ComponentTypeHandle<HouseholdMember> m_MemberType;

			[ReadOnly]
			public SharedComponentTypeHandle<UpdateFrame> m_UpdateFrameType;

			[ReadOnly]
			public BufferLookup<HouseholdCitizen> m_HouseholdCitizens;

			[ReadOnly]
			public ComponentLookup<Citizen> m_Citizens;

			[ReadOnly]
			public ComponentLookup<Student> m_Students;

			[ReadOnly]
			public ComponentLookup<PropertyRenter> m_PropertyRenters;

			public uint m_UpdateFrameIndex;

			public RandomSeed m_RandomSeed;

			[ReadOnly]
			public int m_BirthChance;

			[ReadOnly]
			public NativeList<Entity> m_CitizenPrefabs;

			[ReadOnly]
			public NativeList<ArchetypeData> m_CitizenPrefabArchetypes;

			public ParallelWriter m_CommandBuffer;

			public ParallelWriter<StatisticsEvent> m_StatisticsEventQueue;

			private Entity SpawnBaby(int index, Entity household, ref Random random, Entity building)
			{
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_002b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0033: Unknown result type (might be due to invalid IL or missing references)
				//IL_0038: Unknown result type (might be due to invalid IL or missing references)
				//IL_0040: Unknown result type (might be due to invalid IL or missing references)
				//IL_0041: Unknown result type (might be due to invalid IL or missing references)
				//IL_0046: Unknown result type (might be due to invalid IL or missing references)
				//IL_004b: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0056: Unknown result type (might be due to invalid IL or missing references)
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_0063: Unknown result type (might be due to invalid IL or missing references)
				//IL_0064: Unknown result type (might be due to invalid IL or missing references)
				//IL_006e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0076: Unknown result type (might be due to invalid IL or missing references)
				//IL_0077: Unknown result type (might be due to invalid IL or missing references)
				//IL_007c: Unknown result type (might be due to invalid IL or missing references)
				//IL_007e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0087: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				//IL_0092: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
				//IL_00de: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
				((Concurrent)(ref m_DebugBirthCounter)).Increment();
				int num = ((Random)(ref random)).NextInt(m_CitizenPrefabs.Length);
				Entity prefab = m_CitizenPrefabs[num];
				ArchetypeData val = m_CitizenPrefabArchetypes[num];
				Entity val2 = ((ParallelWriter)(ref m_CommandBuffer)).CreateEntity(index, val.m_Archetype);
				PrefabRef val3 = default(PrefabRef);
				val3.m_Prefab = prefab;
				((ParallelWriter)(ref m_CommandBuffer)).SetComponent<PrefabRef>(index, val2, val3);
				HouseholdMember val4 = default(HouseholdMember);
				val4.m_Household = household;
				HouseholdMember val5 = val4;
				((ParallelWriter)(ref m_CommandBuffer)).AddComponent<HouseholdMember>(index, val2, val5);
				Citizen val6 = default(Citizen);
				val6.m_BirthDay = 0;
				val6.m_State = (CitizenFlags)0;
				Citizen val7 = val6;
				((ParallelWriter)(ref m_CommandBuffer)).SetComponent<Citizen>(index, val2, val7);
				((ParallelWriter)(ref m_CommandBuffer)).AddComponent<CurrentBuilding>(index, val2, new CurrentBuilding
				{
					m_CurrentBuilding = building
				});
				return val2;
			}

			public void Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask)
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_002b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0030: Unknown result type (might be due to invalid IL or missing references)
				//IL_0035: Unknown result type (might be due to invalid IL or missing references)
				//IL_003d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				//IL_004a: Unknown result type (might be due to invalid IL or missing references)
				//IL_004f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0075: Unknown result type (might be due to invalid IL or missing references)
				//IL_007a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0085: Unknown result type (might be due to invalid IL or missing references)
				//IL_008b: Invalid comparison between Unknown and I4
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_008f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Unknown result type (might be due to invalid IL or missing references)
				//IL_009b: Invalid comparison between Unknown and I4
				//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
				//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
				//IL_00df: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_010a: Unknown result type (might be due to invalid IL or missing references)
				//IL_010c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0111: Unknown result type (might be due to invalid IL or missing references)
				//IL_011b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0120: Unknown result type (might be due to invalid IL or missing references)
				//IL_012f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0134: Unknown result type (might be due to invalid IL or missing references)
				//IL_0139: Unknown result type (might be due to invalid IL or missing references)
				//IL_0141: Unknown result type (might be due to invalid IL or missing references)
				//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
				//IL_0155: Unknown result type (might be due to invalid IL or missing references)
				//IL_0157: Unknown result type (might be due to invalid IL or missing references)
				//IL_015c: Unknown result type (might be due to invalid IL or missing references)
				//IL_015e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0160: Unknown result type (might be due to invalid IL or missing references)
				//IL_0166: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0171: Invalid comparison between Unknown and I4
				//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
				//IL_017c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0205: Unknown result type (might be due to invalid IL or missing references)
				//IL_0280: Unknown result type (might be due to invalid IL or missing references)
				//IL_0284: Unknown result type (might be due to invalid IL or missing references)
				//IL_0286: Unknown result type (might be due to invalid IL or missing references)
				//IL_0294: Unknown result type (might be due to invalid IL or missing references)
				//IL_029e: Unknown result type (might be due to invalid IL or missing references)
				//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_023e: Unknown result type (might be due to invalid IL or missing references)
				if (((ArchetypeChunk)(ref chunk)).GetSharedComponent<UpdateFrame>(m_UpdateFrameType).m_Index != m_UpdateFrameIndex)
				{
					return;
				}
				NativeArray<Entity> nativeArray = ((ArchetypeChunk)(ref chunk)).GetNativeArray(m_EntityType);
				NativeArray<Citizen> nativeArray2 = ((ArchetypeChunk)(ref chunk)).GetNativeArray<Citizen>(ref m_CitizenType);
				NativeArray<HouseholdMember> nativeArray3 = ((ArchetypeChunk)(ref chunk)).GetNativeArray<HouseholdMember>(ref m_MemberType);
				Random random = ((RandomSeed)(ref m_RandomSeed)).GetRandom(unfilteredChunkIndex);
				for (int i = 0; i < nativeArray.Length; i++)
				{
					Entity val = nativeArray[i];
					Citizen val2 = nativeArray2[i];
					string text = "";
					if ((int)((Citizen)(ref val2)).GetAge() != 2 || (val2.m_State & 0x608) > 0)
					{
						continue;
					}
					Entity household = nativeArray3[i].m_Household;
					Entity val3 = Entity.Null;
					if (m_PropertyRenters.HasComponent(household))
					{
						val3 = m_PropertyRenters[household].m_Property;
					}
					if (val3 == Entity.Null)
					{
						continue;
					}
					DynamicBuffer<HouseholdCitizen> val4 = m_HouseholdCitizens[household];
					int num = m_BirthChance;
					Entity @null = Entity.Null;
					for (int j = 0; j < val4.Length; j++)
					{
						@null = val4[j].m_Citizen;
						if (m_Citizens.HasComponent(@null))
						{
							Citizen val5 = m_Citizens[@null];
							if ((val5.m_State & 8) != 0 && (int)((Citizen)(ref val5)).GetAge() == 2 && ((Citizen)(ref val5)).GetAgeInDays(m_SimulationFrame, m_TimeData) <= 63f)
							{
								num += 80;
								break;
							}
						}
					}
					if (m_Students.HasComponent(val) || val4.Length >= 4 || ((Citizen)(ref val2)).GetAgeInDays(m_SimulationFrame, m_TimeData) >= 63f)
					{
						if (m_Students.HasComponent(val))
						{
							num /= 4;
						}
						if (val4.Length >= 4)
						{
							num /= 4;
						}
						if (((Citizen)(ref val2)).GetAgeInDays(m_SimulationFrame, m_TimeData) >= 63f)
						{
							num /= 4;
						}
					}
					if (((Random)(ref random)).NextInt(1000 * kUpdatesPerDay) < num)
					{
						SpawnBaby(unfilteredChunkIndex, household, ref random, val3);
						m_StatisticsEventQueue.Enqueue(new StatisticsEvent
						{
							m_Statistic = (StatisticType)27,
							m_Change = 1
						});
					}
				}
			}

			void IJobChunk.Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask)
			{
				Execute(in chunk, unfilteredChunkIndex, useEnabledMask, in chunkEnabledMask);
			}
		}

		[BurstCompile]
		private struct SumBirthJob : IJob
		{
			public NativeCounter m_DebugBirthCount;

			public NativeValue<int> m_DebugBirth;

			public void Execute()
			{
				m_DebugBirth.value = ((NativeCounter)(ref m_DebugBirthCount)).Count;
			}
		}

		private struct TypeHandle
		{
			[ReadOnly]
			public EntityTypeHandle __Unity_Entities_Entity_TypeHandle;

			[ReadOnly]
			public ComponentTypeHandle<Citizen> __Game_Citizens_Citizen_RO_ComponentTypeHandle;

			[ReadOnly]
			public ComponentTypeHandle<HouseholdMember> __Game_Citizens_HouseholdMember_RO_ComponentTypeHandle;

			public SharedComponentTypeHandle<UpdateFrame> __Game_Simulation_UpdateFrame_SharedComponentTypeHandle;

			[ReadOnly]
			public ComponentLookup<Citizen> __Game_Citizens_Citizen_RO_ComponentLookup;

			[ReadOnly]
			public BufferLookup<HouseholdCitizen> __Game_Citizens_HouseholdCitizen_RO_BufferLookup;

			[ReadOnly]
			public ComponentLookup<Student> __Game_Citizens_Student_RO_ComponentLookup;

			[ReadOnly]
			public ComponentLookup<PropertyRenter> __Game_Buildings_PropertyRenter_RO_ComponentLookup;

			[MethodImpl(MethodImplOptions.AggressiveInlining)]
			public void __AssignHandles(ref SystemState state)
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0022: Unknown result type (might be due to invalid IL or missing references)
				//IL_0029: Unknown result type (might be due to invalid IL or missing references)
				//IL_002e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0036: Unknown result type (might be due to invalid IL or missing references)
				//IL_003b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0050: Unknown result type (might be due to invalid IL or missing references)
				//IL_0055: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0062: Unknown result type (might be due to invalid IL or missing references)
				__Unity_Entities_Entity_TypeHandle = ((SystemState)(ref state)).GetEntityTypeHandle();
				__Game_Citizens_Citizen_RO_ComponentTypeHandle = ((SystemState)(ref state)).GetComponentTypeHandle<Citizen>(true);
				__Game_Citizens_HouseholdMember_RO_ComponentTypeHandle = ((SystemState)(ref state)).GetComponentTypeHandle<HouseholdMember>(true);
				__Game_Simulation_UpdateFrame_SharedComponentTypeHandle = ((SystemState)(ref state)).GetSharedComponentTypeHandle<UpdateFrame>();
				__Game_Citizens_Citizen_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<Citizen>(true);
				__Game_Citizens_HouseholdCitizen_RO_BufferLookup = ((SystemState)(ref state)).GetBufferLookup<HouseholdCitizen>(true);
				__Game_Citizens_Student_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<Student>(true);
				__Game_Buildings_PropertyRenter_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<PropertyRenter>(true);
			}
		}

		public static readonly int kUpdatesPerDay = 16;

		private EndFrameBarrier m_EndFrameBarrier;

		private SimulationSystem m_SimulationSystem;

		private CityStatisticsSystem m_CityStatisticsSystem;

		private TriggerSystem m_TriggerSystem;

		[DebugWatchValue]
		private NativeValue<int> m_DebugBirth;

		private NativeCounter m_DebugBirthCounter;

		private EntityQuery m_CitizenQuery;

		private EntityQuery m_CitizenPrefabQuery;

		private EntityQuery m_TimeDataQuery;

		public int m_BirthChance = 20;

		private TypeHandle __TypeHandle;

		public override int GetUpdateInterval(SystemUpdatePhase phase)
		{
			return 262144 / (kUpdatesPerDay * 16);
		}

		[Preserve]
		protected override void OnCreate()
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_0115: Unknown result type (might be due to invalid IL or missing references)
			((GameSystemBase)this).OnCreate();
			m_DebugBirthCounter = new NativeCounter((Allocator)4);
			m_DebugBirth = new NativeValue<int>((Allocator)4);
			m_EndFrameBarrier = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<EndFrameBarrier>();
			m_SimulationSystem = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<SimulationSystem>();
			m_CityStatisticsSystem = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<CityStatisticsSystem>();
			m_TriggerSystem = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<TriggerSystem>();
			m_CitizenQuery = ((ComponentSystemBase)this).GetEntityQuery((ComponentType[])(object)new ComponentType[6]
			{
				ComponentType.ReadOnly<Citizen>(),
				ComponentType.ReadOnly<HouseholdMember>(),
				ComponentType.ReadOnly<UpdateFrame>(),
				ComponentType.ReadOnly<CurrentBuilding>(),
				ComponentType.Exclude<Deleted>(),
				ComponentType.Exclude<Temp>()
			});
			m_CitizenPrefabQuery = ((ComponentSystemBase)this).GetEntityQuery((ComponentType[])(object)new ComponentType[2]
			{
				ComponentType.ReadOnly<CitizenData>(),
				ComponentType.ReadOnly<ArchetypeData>()
			});
			m_TimeDataQuery = ((ComponentSystemBase)this).GetEntityQuery((ComponentType[])(object)new ComponentType[1] { ComponentType.ReadOnly<TimeData>() });
			((ComponentSystemBase)this).RequireForUpdate(m_CitizenPrefabQuery);
			((ComponentSystemBase)this).RequireForUpdate(m_CitizenQuery);
		}

		[Preserve]
		protected override void OnDestroy()
		{
			((GameSystemBase)this).OnDestroy();
			((NativeCounter)(ref m_DebugBirthCounter)).Dispose();
			m_DebugBirth.Dispose();
		}

		[Preserve]
		protected override void OnUpdate()
		{
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0176: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_0218: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0221: Unknown result type (might be due to invalid IL or missing references)
			//IL_022e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0251: Unknown result type (might be due to invalid IL or missing references)
			//IL_0257: Unknown result type (might be due to invalid IL or missing references)
			//IL_025c: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: Unknown result type (might be due to invalid IL or missing references)
			//IL_025f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_0265: Unknown result type (might be due to invalid IL or missing references)
			//IL_0277: Unknown result type (might be due to invalid IL or missing references)
			//IL_0289: Unknown result type (might be due to invalid IL or missing references)
			//IL_029b: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
			uint updateFrame = SimulationUtils.GetUpdateFrame(m_SimulationSystem.frameIndex, kUpdatesPerDay, 16);
			__TypeHandle.__Game_Buildings_PropertyRenter_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Student_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_HouseholdCitizen_RO_BufferLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Citizen_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Simulation_UpdateFrame_SharedComponentTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_HouseholdMember_RO_ComponentTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Citizen_RO_ComponentTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			((EntityTypeHandle)(ref __TypeHandle.__Unity_Entities_Entity_TypeHandle)).Update(ref ((SystemBase)this).CheckedStateRef);
			CheckBirthJob checkBirthJob = default(CheckBirthJob);
			checkBirthJob.m_DebugBirthCounter = ((NativeCounter)(ref m_DebugBirthCounter)).ToConcurrent();
			checkBirthJob.m_EntityType = __TypeHandle.__Unity_Entities_Entity_TypeHandle;
			checkBirthJob.m_CitizenType = __TypeHandle.__Game_Citizens_Citizen_RO_ComponentTypeHandle;
			checkBirthJob.m_MemberType = __TypeHandle.__Game_Citizens_HouseholdMember_RO_ComponentTypeHandle;
			checkBirthJob.m_UpdateFrameType = __TypeHandle.__Game_Simulation_UpdateFrame_SharedComponentTypeHandle;
			checkBirthJob.m_Citizens = __TypeHandle.__Game_Citizens_Citizen_RO_ComponentLookup;
			checkBirthJob.m_HouseholdCitizens = __TypeHandle.__Game_Citizens_HouseholdCitizen_RO_BufferLookup;
			checkBirthJob.m_Students = __TypeHandle.__Game_Citizens_Student_RO_ComponentLookup;
			checkBirthJob.m_PropertyRenters = __TypeHandle.__Game_Buildings_PropertyRenter_RO_ComponentLookup;
			JobHandle val = default(JobHandle);
			checkBirthJob.m_CitizenPrefabArchetypes = ((EntityQuery)(ref m_CitizenPrefabQuery)).ToComponentDataListAsync<ArchetypeData>(AllocatorHandle.op_Implicit(((RewindableAllocator)(ref ((ComponentSystemBase)this).World.UpdateAllocator)).ToAllocator), ref val);
			JobHandle val2 = default(JobHandle);
			checkBirthJob.m_CitizenPrefabs = ((EntityQuery)(ref m_CitizenPrefabQuery)).ToEntityListAsync(AllocatorHandle.op_Implicit(((RewindableAllocator)(ref ((ComponentSystemBase)this).World.UpdateAllocator)).ToAllocator), ref val2);
			checkBirthJob.m_BirthChance = m_BirthChance;
			checkBirthJob.m_RandomSeed = RandomSeed.Next();
			checkBirthJob.m_UpdateFrameIndex = updateFrame;
			EntityCommandBuffer val3 = ((SafeCommandBufferSystem)m_EndFrameBarrier).CreateCommandBuffer();
			checkBirthJob.m_CommandBuffer = ((EntityCommandBuffer)(ref val3)).AsParallelWriter();
			JobHandle val4 = default(JobHandle);
			checkBirthJob.m_StatisticsEventQueue = m_CityStatisticsSystem.GetStatisticsEventQueue(ref val4).AsParallelWriter();
			checkBirthJob.m_TimeData = ((EntityQuery)(ref m_TimeDataQuery)).GetSingleton<TimeData>();
			checkBirthJob.m_SimulationFrame = m_SimulationSystem.frameIndex;
			CheckBirthJob checkBirthJob2 = checkBirthJob;
			((SystemBase)this).Dependency = JobChunkExtensions.ScheduleParallel<CheckBirthJob>(checkBirthJob2, m_CitizenQuery, JobUtils.CombineDependencies(((SystemBase)this).Dependency, val4, val2, val));
			m_EndFrameBarrier.AddJobHandleForProducer(((SystemBase)this).Dependency);
			m_TriggerSystem.AddActionBufferWriter(((SystemBase)this).Dependency);
			m_CityStatisticsSystem.AddWriter(((SystemBase)this).Dependency);
			SumBirthJob sumBirthJob = default(SumBirthJob);
			sumBirthJob.m_DebugBirth = m_DebugBirth;
			sumBirthJob.m_DebugBirthCount = m_DebugBirthCounter;
			SumBirthJob sumBirthJob2 = sumBirthJob;
			((SystemBase)this).Dependency = IJobExtensions.Schedule<SumBirthJob>(sumBirthJob2, ((SystemBase)this).Dependency);
		}

		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		private void __AssignQueries(ref SystemState state)
		{
		}

		protected override void OnCreateForCompiler()
		{
			((ComponentSystemBase)this).OnCreateForCompiler();
			__AssignQueries(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__AssignHandles(ref ((SystemBase)this).CheckedStateRef);
		}

		[Preserve]
		public BirthSystem()
		{
		}
	}
	[HarmonyPatch]
	internal class Patches
	{
		[HarmonyPatch(typeof(BirthSystem), "OnCreate")]
		[HarmonyPrefix]
		private static bool OnCreate(BirthSystem __instance)
		{
			((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<BirthSystem>();
			((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<UpdateSystem>().UpdateAt<BirthSystem>((SystemUpdatePhase)12);
			return true;
		}

		[HarmonyPatch(typeof(BirthSystem), "OnCreateForCompiler")]
		[HarmonyPrefix]
		private static bool OnCreateForCompiler()
		{
			return false;
		}

		[HarmonyPatch(typeof(BirthSystem), "OnUpdate")]
		[HarmonyPrefix]
		private static bool OnUpdate(BirthSystem __instance)
		{
			((ComponentSystemBase)((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<BirthSystem>()).Update();
			return false;
		}

		[HarmonyPatch(typeof(ApplyToSchoolSystem), "OnCreate")]
		[HarmonyPrefix]
		private static bool OnCreate(ApplyToSchoolSystem __instance)
		{
			((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<ApplyToSchoolSystem>();
			((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<UpdateSystem>().UpdateAt<ApplyToSchoolSystem>((SystemUpdatePhase)12);
			return true;
		}

		[HarmonyPatch(typeof(PayWageSystem), "OnCreate")]
		[HarmonyPrefix]
		private static bool OnCreate(PayWageSystem __instance)
		{
			((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<PayWageSystem>();
			((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<UpdateSystem>().UpdateAt<PayWageSystem>((SystemUpdatePhase)12);
			return true;
		}

		[HarmonyPatch(typeof(PayWageSystem), "OnUpdate")]
		[HarmonyPrefix]
		private static bool OnUpdate(PayWageSystem __instance)
		{
			((ComponentSystemBase)((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<PayWageSystem>()).Update();
			return false;
		}

		[HarmonyPatch(typeof(RentAdjustSystem), "OnCreate")]
		[HarmonyPrefix]
		private static bool OnCreate(RentAdjustSystem __instance)
		{
			((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<RentAdjustSystem>();
			((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<UpdateSystem>().UpdateAt<RentAdjustSystem>((SystemUpdatePhase)12);
			return true;
		}

		[HarmonyPatch(typeof(RentAdjustSystem), "OnUpdate")]
		[HarmonyPrefix]
		private static bool OnUpdate(RentAdjustSystem __instance)
		{
			((ComponentSystemBase)((ComponentSystemBase)__instance).World.GetOrCreateSystemManaged<RentAdjustSystem>()).Update();
			return false;
		}
	}
	[CompilerGenerated]
	public class PayWageSystem : GameSystemBase
	{
		private struct Payment
		{
			public Entity m_Target;

			public int m_Amount;
		}

		[BurstCompile]
		private struct PayJob : IJob
		{
			public NativeQueue<Payment> m_PaymentQueue;

			public BufferLookup<Resources> m_Resources;

			public void Execute()
			{
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0029: Unknown result type (might be due to invalid IL or missing references)
				//IL_002e: Unknown result type (might be due to invalid IL or missing references)
				Payment payment = default(Payment);
				while (m_PaymentQueue.TryDequeue(ref payment))
				{
					if (m_Resources.HasBuffer(payment.m_Target))
					{
						EconomyUtils.AddResources((Resource)1, payment.m_Amount, m_Resources[payment.m_Target]);
					}
				}
			}
		}

		[BurstCompile]
		private struct PayWageJob : IJobChunk
		{
			[ReadOnly]
			public EntityTypeHandle m_EntityType;

			public ComponentTypeHandle<TaxPayer> m_TaxPayerType;

			[ReadOnly]
			public BufferTypeHandle<HouseholdCitizen> m_HouseholdCitizenType;

			public BufferTypeHandle<Resources> m_ResourcesType;

			[ReadOnly]
			public SharedComponentTypeHandle<UpdateFrame> m_UpdateFrameType;

			[ReadOnly]
			public ComponentTypeHandle<CommuterHousehold> m_CommuterHouseholdType;

			[ReadOnly]
			public ComponentLookup<CompanyData> m_Companies;

			[ReadOnly]
			public ComponentLookup<Citizen> m_Citizens;

			[ReadOnly]
			public ComponentLookup<Worker> m_Workers;

			[ReadOnly]
			public ComponentLookup<Student> m_Students;

			[ReadOnly]
			public NativeArray<int> m_TaxRates;

			public EconomyParameterData m_EconomyParameters;

			public uint m_UpdateFrameIndex;

			public ParallelWriter<Payment> m_PaymentQueue;

			private void PayWage(Entity workplace, Entity worker, Entity household, Worker workerData, ref TaxPayer taxPayer, DynamicBuffer<Resources> resources, CitizenAge age, bool isCommuter, bool isStudent, ref EconomyParameterData economyParameters)
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_0004: Unknown result type (might be due to invalid IL or missing references)
				//IL_0080: Unknown result type (might be due to invalid IL or missing references)
				//IL_008e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0096: Unknown result type (might be due to invalid IL or missing references)
				//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
				//IL_001a: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
				//IL_0105: Unknown result type (might be due to invalid IL or missing references)
				//IL_0020: Unknown result type (might be due to invalid IL or missing references)
				//IL_0023: Invalid comparison between Unknown and I4
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0064: Invalid comparison between Unknown and I4
				int num = 0;
				int num3;
				if (!(workplace != Entity.Null))
				{
					if (1 == 0)
					{
					}
					int num2 = (((int)age == 0) ? (economyParameters.m_FamilyAllowance / kUpdatesPerDay) : (((int)age != 3) ? (economyParameters.m_UnemploymentBenefit / kUpdatesPerDay) : (economyParameters.m_Pension / kUpdatesPerDay)));
					if (1 == 0)
					{
					}
					num3 = num2;
					if (isStudent && (int)age == 2)
					{
						num3 = 1000;
					}
				}
				else
				{
					int num4 = ((EconomyParameterData)(ref economyParameters)).GetWage((int)workerData.m_Level);
					num = TaxSystem.GetResidentialTaxRate((int)workerData.m_Level, m_TaxRates);
					if (isCommuter)
					{
						num4 = Mathf.RoundToInt((float)num4 * economyParameters.m_CommuterWageMultiplier);
					}
					num3 = num4 / kUpdatesPerDay;
					if (m_Companies.HasComponent(workplace))
					{
						m_PaymentQueue.Enqueue(new Payment
						{
							m_Target = workplace,
							m_Amount = -num3
						});
					}
				}
				EconomyUtils.AddResources((Resource)1, num3, resources);
				num3 -= economyParameters.m_ResidentialMinimumEarnings / kUpdatesPerDay;
				if (!isCommuter && num != 0 && num3 > 0)
				{
					taxPayer.m_AverageTaxRate = Mathf.RoundToInt(math.lerp((float)taxPayer.m_AverageTaxRate, (float)num, (float)num3 / (float)(num3 + taxPayer.m_UntaxedIncome)));
					taxPayer.m_UntaxedIncome += num3;
				}
			}

			public void Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask)
			{
				//IL_0009: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0038: Unknown result type (might be due to invalid IL or missing references)
				//IL_003d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				//IL_004a: Unknown result type (might be due to invalid IL or missing references)
				//IL_004f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0064: Unknown result type (might be due to invalid IL or missing references)
				//IL_0069: Unknown result type (might be due to invalid IL or missing references)
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_007d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0083: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				//IL_008e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0093: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Unknown result type (might be due to invalid IL or missing references)
				//IL_009e: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00be: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0170: Unknown result type (might be due to invalid IL or missing references)
				//IL_0109: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
				//IL_0100: Unknown result type (might be due to invalid IL or missing references)
				//IL_0121: Unknown result type (might be due to invalid IL or missing references)
				//IL_0123: Unknown result type (might be due to invalid IL or missing references)
				//IL_0128: Unknown result type (might be due to invalid IL or missing references)
				//IL_012c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0131: Unknown result type (might be due to invalid IL or missing references)
				//IL_0134: Unknown result type (might be due to invalid IL or missing references)
				//IL_0136: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013a: Unknown result type (might be due to invalid IL or missing references)
				//IL_013e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0140: Unknown result type (might be due to invalid IL or missing references)
				if (m_UpdateFrameIndex != ((ArchetypeChunk)(ref chunk)).GetSharedComponent<UpdateFrame>(m_UpdateFrameType).m_Index)
				{
					return;
				}
				bool isCommuter = ((ArchetypeChunk)(ref chunk)).Has<CommuterHousehold>(ref m_CommuterHouseholdType);
				NativeArray<Entity> nativeArray = ((ArchetypeChunk)(ref chunk)).GetNativeArray(m_EntityType);
				NativeArray<TaxPayer> nativeArray2 = ((ArchetypeChunk)(ref chunk)).GetNativeArray<TaxPayer>(ref m_TaxPayerType);
				BufferAccessor<HouseholdCitizen> bufferAccessor = ((ArchetypeChunk)(ref chunk)).GetBufferAccessor<HouseholdCitizen>(ref m_HouseholdCitizenType);
				BufferAccessor<Resources> bufferAccessor2 = ((ArchetypeChunk)(ref chunk)).GetBufferAccessor<Resources>(ref m_ResourcesType);
				for (int i = 0; i < ((ArchetypeChunk)(ref chunk)).Count; i++)
				{
					Entity household = nativeArray[i];
					DynamicBuffer<HouseholdCitizen> val = bufferAccessor[i];
					DynamicBuffer<Resources> resources = bufferAccessor2[i];
					TaxPayer taxPayer = nativeArray2[i];
					for (int j = 0; j < val.Length; j++)
					{
						Entity citizen = val[j].m_Citizen;
						Entity workplace = Entity.Null;
						Worker workerData = default(Worker);
						bool isStudent = false;
						if (m_Workers.HasComponent(citizen))
						{
							workplace = m_Workers[citizen].m_Workplace;
							workerData = m_Workers[citizen];
						}
						if (m_Students.HasComponent(citizen))
						{
							isStudent = true;
						}
						Citizen val2 = m_Citizens[citizen];
						CitizenAge age = ((Citizen)(ref val2)).GetAge();
						PayWage(workplace, citizen, household, workerData, ref taxPayer, resources, age, isCommuter, isStudent, ref m_EconomyParameters);
					}
					nativeArray2[i] = taxPayer;
				}
			}

			void IJobChunk.Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask)
			{
				Execute(in chunk, unfilteredChunkIndex, useEnabledMask, in chunkEnabledMask);
			}
		}

		private struct TypeHandle
		{
			[ReadOnly]
			public EntityTypeHandle __Unity_Entities_Entity_TypeHandle;

			[ReadOnly]
			public BufferTypeHandle<HouseholdCitizen> __Game_Citizens_HouseholdCitizen_RO_BufferTypeHandle;

			public BufferTypeHandle<Resources> __Game_Economy_Resources_RW_BufferTypeHandle;

			public ComponentTypeHandle<TaxPayer> __Game_Agents_TaxPayer_RW_ComponentTypeHandle;

			[ReadOnly]
			public ComponentTypeHandle<CommuterHousehold> __Game_Citizens_CommuterHousehold_RO_ComponentTypeHandle;

			[ReadOnly]
			public ComponentLookup<Worker> __Game_Citizens_Worker_RO_ComponentLookup;

			[ReadOnly]
			public ComponentLookup<Citizen> __Game_Citizens_Citizen_RO_ComponentLookup;

			[ReadOnly]
			public ComponentLookup<CompanyData> __Game_Companies_CompanyData_RO_ComponentLookup;

			[ReadOnly]
			public ComponentLookup<Student> __Game_Citizens_Student_RO_ComponentLookup;

			public BufferLookup<Resources> __Game_Economy_Resources_RW_BufferLookup;

			[MethodImpl(MethodImplOptions.AggressiveInlining)]
			public void __AssignHandles(ref SystemState state)
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0022: Unknown result type (might be due to invalid IL or missing references)
				//IL_002a: Unknown result type (might be due to invalid IL or missing references)
				//IL_002f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0044: Unknown result type (might be due to invalid IL or missing references)
				//IL_0049: Unknown result type (might be due to invalid IL or missing references)
				//IL_0051: Unknown result type (might be due to invalid IL or missing references)
				//IL_0056: Unknown result type (might be due to invalid IL or missing references)
				//IL_005e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0063: Unknown result type (might be due to invalid IL or missing references)
				//IL_006b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0070: Unknown result type (might be due to invalid IL or missing references)
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_007d: Unknown result type (might be due to invalid IL or missing references)
				__Unity_Entities_Entity_TypeHandle = ((SystemState)(ref state)).GetEntityTypeHandle();
				__Game_Citizens_HouseholdCitizen_RO_BufferTypeHandle = ((SystemState)(ref state)).GetBufferTypeHandle<HouseholdCitizen>(true);
				__Game_Economy_Resources_RW_BufferTypeHandle = ((SystemState)(ref state)).GetBufferTypeHandle<Resources>(false);
				__Game_Agents_TaxPayer_RW_ComponentTypeHandle = ((SystemState)(ref state)).GetComponentTypeHandle<TaxPayer>(false);
				__Game_Citizens_CommuterHousehold_RO_ComponentTypeHandle = ((SystemState)(ref state)).GetComponentTypeHandle<CommuterHousehold>(true);
				__Game_Citizens_Worker_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<Worker>(true);
				__Game_Citizens_Citizen_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<Citizen>(true);
				__Game_Companies_CompanyData_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<CompanyData>(true);
				__Game_Economy_Resources_RW_BufferLookup = ((SystemState)(ref state)).GetBufferLookup<Resources>(false);
				__Game_Citizens_Student_RO_ComponentLookup = ((SystemState)(ref state)).GetComponentLookup<Student>(true);
			}
		}

		public static readonly int kUpdatesPerDay = 32;

		private SimulationSystem m_SimulationSystem;

		private TaxSystem m_TaxSystem;

		private EntityQuery m_EconomyParameterGroup;

		private EntityQuery m_HouseholdGroup;

		private NativeQueue<Payment> m_PaymentQueue;

		private TypeHandle __TypeHandle;

		public override int GetUpdateInterval(SystemUpdatePhase phase)
		{
			return 262144 / (kUpdatesPerDay * 16);
		}

		[Preserve]
		protected override void OnCreate()
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			((GameSystemBase)this).OnCreate();
			m_SimulationSystem = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<SimulationSystem>();
			m_TaxSystem = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<TaxSystem>();
			m_PaymentQueue = new NativeQueue<Payment>(AllocatorHandle.op_Implicit((Allocator)4));
			m_EconomyParameterGroup = ((ComponentSystemBase)this).GetEntityQuery((ComponentType[])(object)new ComponentType[1] { ComponentType.ReadOnly<EconomyParameterData>() });
			m_HouseholdGroup = ((ComponentSystemBase)this).GetEntityQuery((ComponentType[])(object)new ComponentType[6]
			{
				ComponentType.ReadOnly<Household>(),
				ComponentType.ReadOnly<UpdateFrame>(),
				ComponentType.ReadOnly<HouseholdCitizen>(),
				ComponentType.Exclude<TouristHousehold>(),
				ComponentType.Exclude<Deleted>(),
				ComponentType.Exclude<Temp>()
			});
			((ComponentSystemBase)this).RequireForUpdate(m_EconomyParameterGroup);
			((ComponentSystemBase)this).RequireForUpdate(m_HouseholdGroup);
		}

		[Preserve]
		protected override void OnDestroy()
		{
			m_PaymentQueue.Dispose();
			((GameSystemBase)this).OnDestroy();
		}

		[Preserve]
		protected override void OnUpdate()
		{
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0176: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_01af: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01df: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0224: Unknown result type (might be due to invalid IL or missing references)
			//IL_0229: Unknown result type (might be due to invalid IL or missing references)
			//IL_0231: Unknown result type (might be due to invalid IL or missing references)
			//IL_0236: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Unknown result type (might be due to invalid IL or missing references)
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			uint updateFrame = SimulationUtils.GetUpdateFrame(m_SimulationSystem.frameIndex, kUpdatesPerDay, 16);
			__TypeHandle.__Game_Companies_CompanyData_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Citizen_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Worker_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_CommuterHousehold_RO_ComponentTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Agents_TaxPayer_RW_ComponentTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Economy_Resources_RW_BufferTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_HouseholdCitizen_RO_BufferTypeHandle.Update(ref ((SystemBase)this).CheckedStateRef);
			((EntityTypeHandle)(ref __TypeHandle.__Unity_Entities_Entity_TypeHandle)).Update(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__Game_Citizens_Student_RO_ComponentLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			PayWageJob payWageJob = default(PayWageJob);
			payWageJob.m_EntityType = __TypeHandle.__Unity_Entities_Entity_TypeHandle;
			payWageJob.m_HouseholdCitizenType = __TypeHandle.__Game_Citizens_HouseholdCitizen_RO_BufferTypeHandle;
			payWageJob.m_ResourcesType = __TypeHandle.__Game_Economy_Resources_RW_BufferTypeHandle;
			payWageJob.m_TaxPayerType = __TypeHandle.__Game_Agents_TaxPayer_RW_ComponentTypeHandle;
			payWageJob.m_CommuterHouseholdType = __TypeHandle.__Game_Citizens_CommuterHousehold_RO_ComponentTypeHandle;
			payWageJob.m_UpdateFrameType = ((ComponentSystemBase)this).GetSharedComponentTypeHandle<UpdateFrame>();
			payWageJob.m_Workers = __TypeHandle.__Game_Citizens_Worker_RO_ComponentLookup;
			payWageJob.m_Citizens = __TypeHandle.__Game_Citizens_Citizen_RO_ComponentLookup;
			payWageJob.m_Companies = __TypeHandle.__Game_Companies_CompanyData_RO_ComponentLookup;
			payWageJob.m_EconomyParameters = ((EntityQuery)(ref m_EconomyParameterGroup)).GetSingleton<EconomyParameterData>();
			payWageJob.m_UpdateFrameIndex = updateFrame;
			payWageJob.m_PaymentQueue = m_PaymentQueue.AsParallelWriter();
			payWageJob.m_TaxRates = m_TaxSystem.GetTaxRates();
			payWageJob.m_Students = __TypeHandle.__Game_Citizens_Student_RO_ComponentLookup;
			JobHandle val = JobChunkExtensions.ScheduleParallel<PayWageJob>(payWageJob, m_HouseholdGroup, ((SystemBase)this).Dependency);
			m_TaxSystem.AddReader(val);
			__TypeHandle.__Game_Economy_Resources_RW_BufferLookup.Update(ref ((SystemBase)this).CheckedStateRef);
			PayJob payJob = default(PayJob);
			payJob.m_Resources = __TypeHandle.__Game_Economy_Resources_RW_BufferLookup;
			payJob.m_PaymentQueue = m_PaymentQueue;
			PayJob payJob2 = payJob;
			((SystemBase)this).Dependency = IJobExtensions.Schedule<PayJob>(payJob2, val);
		}

		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		private void __AssignQueries(ref SystemState state)
		{
		}

		protected override void OnCreateForCompiler()
		{
			((ComponentSystemBase)this).OnCreateForCompiler();
			__AssignQueries(ref ((SystemBase)this).CheckedStateRef);
			__TypeHandle.__AssignHandles(ref ((SystemBase)this).CheckedStateRef);
		}

		[Preserve]
		public PayWageSystem()
		{
		}
	}
	[BepInPlugin("ResponsibleCims", "ResponsibleCims", "1.0.0")]
	public class Plugin : BaseUnityPlugin
	{
		private void Awake()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Expected O, but got Unknown
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin ResponsibleCims is loaded!");
			Harmony val = new Harmony("ResponsibleCims");
			val.PatchAll();
		}
	}
	[CompilerGenerated]
	public class RentAdjustSystem : GameSystemBase
	{
		[BurstCompile]
		private struct AdjustRentJob : IJobChunk
		{
			[ReadOnly]
			public EntityTypeHandle m_EntityType;

			public BufferTypeHandle<Renter> m_RenterType;

			[ReadOnly]
			public SharedComponentTypeHandle<UpdateFrame> m_UpdateFrameType;

			[NativeDisableParallelForRestriction]
			public ComponentLookup<PropertyRenter> m_Renters;

			[ReadOnly]
			public ComponentLookup<Household> m_Households;

			[ReadOnly]
			public ComponentLookup<Worker> m_Workers;

			[NativeDisableParallelForRestriction]
			public ComponentLookup<Building> m_Buildings;

			[ReadOnly]
			public ComponentLookup<PrefabRef> m_Prefabs;

			[ReadOnly]
			public ComponentLookup<BuildingPropertyData> m_BuildingProperties;

			[ReadOnly]
			public ComponentLookup<BuildingData> m_BuildingDatas;

			[ReadOnly]
			public ComponentLookup<WorkProvider> m_WorkProviders;

			[ReadOnly]
			public ComponentLookup<IndustrialProcessData> m_ProcessDatas;

			[ReadOnly]
			public ComponentLookup<ServiceAvailable> m_ServiceAvailables;

			[ReadOnly]
			public ComponentLookup<ServiceCompanyData> m_ServiceCompanyDatas;

			[ReadOnly]
			public ComponentLookup<ProcessingCompany> m_ProcessingCompanies;

			[ReadOnly]
			public ComponentLookup<BuyingCompany> m_BuyingCompanies;

			[ReadOnly]
			public ComponentLookup<CompanyNotifications> m_CompanyNotifications;

			[ReadOnly]
			public ComponentLookup<Attached> m_Attached;

			[ReadOnly]
			public ComponentLookup<Lot> m_Lots;

			[ReadOnly]
			public ComponentLookup<Geometry> m_Geometries;

			[ReadOnly]
			public ComponentLookup<Extractor> m_AreaExtractors;

			[ReadOnly]
			public ComponentLookup<LandValue> m_LandValues;

			[NativeDisableParallelForRestriction]
			public ComponentLookup<PropertyOnMarket> m_OnMarkets;

			[ReadOnly]
			public ComponentLookup<ConsumptionData> m_ConsumptionDatas;

			[ReadOnly]
			public BufferLookup<HouseholdCitizen> m_Citizens;

			[ReadOnly]
			public BufferLookup<ServiceCoverage> m_ServiceCoverages;

			[ReadOnly]
			public BufferLookup<ResourceAvailability> m_Availabilities;

			[ReadOnly]
			public BufferLookup<SubArea> m_SubAreas;

			[ReadOnly]
			public ComponentLookup<SpawnableBuildingData> m_SpawnableBuildings;

			[ReadOnly]
			public ComponentLookup<ResourceData> m_ResourceDatas;

			[ReadOnly]
			public ComponentLookup<StorageCompany> m_StorageCompanies;

			[ReadOnly]
			public ComponentLookup<WorkplaceData> m_WorkplaceDatas;

			[ReadOnly]
			public ComponentLookup<Abandoned> m_Abandoned;

			[ReadOnly]
			public ComponentLookup<Destroyed> m_Destroyed;

			[ReadOnly]
			public ComponentLookup<CrimeProducer> m_Crimes;

			[ReadOnly]
			public ComponentLookup<Transform> m_Transforms;

			[ReadOnly]
			public ComponentLookup<Locked> m_Locked;

			[ReadOnly]
			public BufferLookup<CityModifier> m_CityModifiers;

			[ReadOnly]
			public ComponentLookup<CurrentDistrict> m_Districts;

			[ReadOnly]
			public BufferLookup<DistrictModifier> m_DistrictModifiers;

			[ReadOnly]
			public ComponentLookup<HealthProblem> m_HealthProblems;

			[ReadOnly]
			public BufferLookup<Employee> m_Employees;

			[ReadOnly]
			public BufferLookup<Efficiency> m_BuildingEfficiencies;

			[ReadOnly]
			public ComponentLookup<ExtractorAreaData> m_ExtractorDatas;

			[ReadOnly]
			public ComponentLookup<Citizen> m_CitizenDatas;

			[ReadOnly]
			public ComponentLookup<Student> m_Students;

			[ReadOnly]
			public ComponentLookup<SpawnableBuildingData> m_SpawnableBuildingData;

			[ReadOnly]
			public ComponentLookup<ZoneData> m_ZoneData;

			[ReadOnly]
			public BufferLookup<TradeCost> m_TradeCosts;

			[ReadOnly]
			public ComponentLookup<ElectricityConsumer> m_ElectricityConsumers;

			[ReadOnly]
			public ComponentLookup<AdjustHappinessData> m_AdjustHappinessDatas;

			[ReadOnly]
			public ComponentLookup<WaterConsumer> m_WaterConsumers;

			[ReadOnly]
			public ComponentLookup<GarbageProducer> m_GarbageProducers;

			[ReadOnly]
			public ComponentLookup<MailProducer> m_MailProducers;

			[ReadOnly]
			public ComponentLookup<Abandoned> m_Abandoneds;

			[ReadOnly]
			public ComponentLookup<ExtractorProperty> m_ExtractorProperties;

			[NativeDisableParallelForRestriction]
			public ComponentLookup<BuildingNotifications> m_BuildingNotifications;

			[ReadOnly]
			public NativeArray<AirPollution> m_AirPollutionMap;

			[ReadOnly]
			public NativeArray<GroundPollution> m_PollutionMap;

			[ReadOnly]
			public NativeArray<NoisePollution> m_NoiseMap;

			[ReadOnly]
			public CellMapData<TelecomCoverage> m_TelecomCoverages;

			[ReadOnly]
			public NativeArray<int> m_Unemployment;

			[ReadOnly]
			public BufferLookup<Resources> m_Resources;

			[ReadOnly]
			public ComponentLookup<HouseholdMember> m_HouseholdMembers;

			public ExtractorParameterData m_ExtractorParameters;

			public HealthcareParameterData m_HealthcareParameters;

			public ParkParameterData m_ParkParameters;

			public EducationParameterData m_EducationParameters;

			public TelecomParameterData m_TelecomParameters;

			public GarbageParameterData m_GarbageParameters;

			public PoliceConfigurationData m_PoliceParameters;

			public CitizenHappinessParameterData m_CitizenHappinessParameterData;

			public BuildingConfigurationData m_BuildingConfigurationData;

			public PollutionParameterData m_PollutionParameters;

			public IconCommandBuffer m_IconCommandBuffer;

			[ReadOnly]
			public NativeArray<int> m_TaxRates;

			[ReadOnly]
			public ResourcePrefabs m_ResourcePrefabs;

			public uint m_UpdateFrameIndex;

			public float m_BaseConsumptionSum;

			[ReadOnly]
			public Entity m_City;

			public EconomyParameterData m_EconomyParameters;

			public DemandParameterData m_DemandParameters;

			public ParallelWriter m_CommandBuffer;

			private bool CanDisplayHighRentWarnIcon(Dyn