Decompiled source of WinterFest v1.0.6

Winterfest.dll

Decompiled 2 days ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using DM;
using FhpSLib;
using HarmonyLib;
using InControl;
using Landfall.TABS;
using Landfall.TABS.AI.Components.Modifiers;
using Landfall.TABS.AI.Systems;
using Landfall.TABS.GameState;
using Landfall.TABS.UnitEditor;
using Landfall.TABS_Input;
using Pathfinding;
using SLMA;
using TFBGames;
using Unity.Entities;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Rendering;
using UnityEngine.SceneManagement;
using WinterfestFunctions;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("WinterFest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("GeeztJeez")]
[assembly: AssemblyProduct("WinterFest")]
[assembly: AssemblyCopyright("Copyright © Lifetime")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("7acfaef0-7669-4401-8bff-5a9a02e18c75")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.6.0")]
[module: UnverifiableCode]
namespace WinterFest
{
	public static class UManager
	{
		private static string comment;

		public static AssetBundle bundle;

		public static void SetBlueprint(UnitBlueprint unit, LandfallContentDatabase db)
		{
			//IL_0166: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ac: Expected O, but got Unknown
			//IL_03ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0573: Unknown result type (might be due to invalid IL or missing references)
			//IL_0579: Expected O, but got Unknown
			//IL_0587: Unknown result type (might be due to invalid IL or missing references)
			//IL_058d: Unknown result type (might be due to invalid IL or missing references)
			//IL_070d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0713: Expected O, but got Unknown
			//IL_0721: Unknown result type (might be due to invalid IL or missing references)
			//IL_0727: Unknown result type (might be due to invalid IL or missing references)
			//IL_0866: Unknown result type (might be due to invalid IL or missing references)
			//IL_086c: Expected O, but got Unknown
			//IL_0887: Unknown result type (might be due to invalid IL or missing references)
			//IL_088d: Expected O, but got Unknown
			//IL_08a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ae: Expected O, but got Unknown
			//IL_08c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_08cf: Expected O, but got Unknown
			//IL_08ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f0: Expected O, but got Unknown
			//IL_090b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0911: Expected O, but got Unknown
			//IL_0943: Unknown result type (might be due to invalid IL or missing references)
			//IL_094a: Expected O, but got Unknown
			//IL_097f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0986: Expected O, but got Unknown
			//IL_09b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b7: Expected O, but got Unknown
			//IL_09e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e7: Expected O, but got Unknown
			//IL_0a0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a12: Expected O, but got Unknown
			//IL_0a36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3d: Expected O, but got Unknown
			//IL_0a9a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa0: Expected O, but got Unknown
			//IL_0b08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d89: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fed: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff3: Unknown result type (might be due to invalid IL or missing references)
			if (unit.Entity.Name == "Abnormal Envoy")
			{
				SLMATool.UnitCost(unit, 1300);
				unit.UnitBase = UPool.MyPool.GetObject("AbnormalEnvoy_Base");
				s.SetField<UnitBlueprint>(unit, "VocalRef", (object)"Secret Attack Vocals/Raptor");
				s.SetField<UnitBlueprint>(unit, "DeathRef", (object)"Secret Death Vocals/Raptor");
				s.SetField<UnitBlueprint>(unit, "footRef", (object)"Footsteps/Raptor");
				s.SetField<UnitBlueprint>(unit, "VoicePitch", (object)0.85f);
				unit.health = 500f;
				unit.minSizeRandom = 0.99f;
				unit.maxSizeRandom = 1.01f;
				unit.sizeMultiplier = 1.4f;
				unit.stepMultiplier = 3f;
				unit.massMultiplier = 5f;
				unit.balanceMultiplier = 1.4f;
				unit.animationMultiplier = 1.4f;
				unit.balanceForceMultiplier = 1.2f;
				unit.movementSpeedMuiltiplier = 1.3f;
				unit.LeftWeapon = UPool.MyPool.GetObject("EnvoyExtendedClaw");
				unit.RightWeapon = UPool.MyPool.GetObject("EnvoyExtendedClaw");
				unit.objectsToSpawnAsChildren = (GameObject[])(object)new GameObject[3]
				{
					UPool.MyPool.GetObject("Move_EnvoyBite"),
					UPool.MyPool.GetObject("Move_EnvoyOfMadness"),
					UPool.MyPool.GetObject("Move_WildJump")
				};
				unit.MovementComponents = new List<IMovementComponent> { (IMovementComponent)(object)default(NeverStopRunning) };
			}
			if (unit.Entity.Name == "Frigid Huntress")
			{
				SLMATool.UnitCost(unit, 2000);
				unit.UnitBase = UPool.MyPool.GetObject("FrigidHuntress_Base");
				s.SetField<UnitBlueprint>(unit, "VocalRef", (object)"Farmer Attack Vocals/Pitchfork");
				s.SetField<UnitBlueprint>(unit, "DeathRef", (object)"Farmer Death Vocals/Pitchfork");
				s.SetField<UnitBlueprint>(unit, "VoicePitch", (object)0.75f);
				unit.health = 400f;
				unit.minSizeRandom = 0.99f;
				unit.maxSizeRandom = 1.01f;
				unit.sizeMultiplier = 1.1f;
				unit.massMultiplier = 3f;
				unit.stepMultiplier = 2f;
				unit.balanceMultiplier = 1.4f;
				unit.animationMultiplier = 1.5f;
				unit.balanceForceMultiplier = 1.4f;
				unit.movementSpeedMuiltiplier = 1.2f;
				unit.holdinigWithTwoHands = true;
				unit.RightWeapon = UPool.MyPool.GetObject("FrigidHuntingLongbow");
				unit.m_props = (GameObject[])(object)new GameObject[12]
				{
					UPool.MyPool.GetObject("FrigidHuntressArrows"),
					UPool.MyPool.GetObject("FrigidHuntressBoots"),
					UPool.MyPool.GetObject("FrigidHuntressHair"),
					UPool.MyPool.GetObject("FrigidHuntressInnerShirt"),
					UPool.MyPool.GetObject("FrigidHuntressLeftArmStocking"),
					UPool.MyPool.GetObject("FrigidHuntressMask"),
					UPool.MyPool.GetObject("FrigidHuntressMouthCover"),
					UPool.MyPool.GetObject("FrigidHuntressPants"),
					UPool.MyPool.GetObject("FrigidHuntressRightGlove"),
					UPool.MyPool.GetObject("FrigidHuntressRightHandStocking"),
					UPool.MyPool.GetObject("FrigidHuntressTorsoArmor"),
					UPool.MyPool.GetObject("SpawnEyes_FrigidHuntress")
				};
				unit.objectsToSpawnAsChildren = (GameObject[])(object)new GameObject[3]
				{
					UPool.MyPool.GetObject("Move_ArrowStep"),
					UPool.MyPool.GetObject("Move_GazingPierces"),
					(GameObject)SLMALoader.SDic["moves"]["Small_Hover"]
				};
				unit.MovementComponents = new List<IMovementComponent> { (IMovementComponent)(object)default(KeepPreferredDistance) };
			}
			if (unit.Entity.Name == "Skrægore")
			{
				SLMATool.UnitCost(unit, 4400);
				unit.UnitBase = UPool.MyPool.GetObject("Skraegore_Base");
				s.SetField<UnitBlueprint>(unit, "VocalRef", (object)"Effects/PriestHeal");
				s.SetField<UnitBlueprint>(unit, "DeathRef", (object)"Effects/PriestHeal");
				s.SetField<UnitBlueprint>(unit, "footRef", (object)"Footsteps/Big");
				s.SetField<UnitBlueprint>(unit, "VoicePitch", (object)0.8f);
				unit.health = 1000f;
				unit.minSizeRandom = 0.99f;
				unit.maxSizeRandom = 1.01f;
				unit.sizeMultiplier = 2f;
				unit.stepMultiplier = 2f;
				unit.massMultiplier = 50f;
				unit.balanceMultiplier = 1f;
				unit.animationMultiplier = 1f;
				unit.balanceForceMultiplier = 1f;
				unit.movementSpeedMuiltiplier = 0.1f;
				unit.LeftWeapon = UPool.MyPool.GetObject("Throw_HaywireSickle");
				unit.RightWeapon = UPool.MyPool.GetObject("Throw_HaywireSickle");
				unit.m_props = (GameObject[])(object)new GameObject[3]
				{
					UPool.MyPool.GetObject("SkraegoreStrawOldHat"),
					UPool.MyPool.GetObject("SkraegoreScarecrowButchedMask"),
					UPool.MyPool.GetObject("SkraegoreRaggedShirt")
				};
				unit.objectsToSpawnAsChildren = (GameObject[])(object)new GameObject[3]
				{
					UPool.MyPool.GetObject("Move_Lifereaping"),
					UPool.MyPool.GetObject("Move_BountifulHarvest"),
					(GameObject)SLMALoader.SDic["moves"]["Small_Hover"]
				};
				unit.MovementComponents = new List<IMovementComponent> { (IMovementComponent)(object)default(KeepPreferredDistance) };
			}
			if (unit.Entity.Name == "Dreamful Oracle")
			{
				SLMATool.UnitCost(unit, 16000);
				unit.UnitBase = UPool.MyPool.GetObject("DreamerUnit_Base");
				s.SetField<UnitBlueprint>(unit, "VocalRef", (object)"Western Attack Vocals/Deadeye");
				s.SetField<UnitBlueprint>(unit, "DeathRef", (object)"Western Death Vocals/Deadeye");
				s.SetField<UnitBlueprint>(unit, "footRef", (object)"Footsteps/Small");
				s.SetField<UnitBlueprint>(unit, "VoicePitch", (object)0.8f);
				unit.health = 9000f;
				unit.minSizeRandom = 0.99f;
				unit.maxSizeRandom = 1.01f;
				unit.sizeMultiplier = 1.25f;
				unit.massMultiplier = 20f;
				unit.animationMultiplier = 5f;
				unit.movementSpeedMuiltiplier = 1f;
				unit.LeftWeapon = UPool.MyPool.GetObject("Throw_SleepySand");
				unit.RightWeapon = UPool.MyPool.GetObject("Throw_SleepySand");
				unit.m_props = (GameObject[])(object)new GameObject[1] { UPool.MyPool.GetObject("DreamerHair") };
				unit.objectsToSpawnAsChildren = (GameObject[])(object)new GameObject[4]
				{
					UPool.MyPool.GetObject("Move_Bedridden"),
					UPool.MyPool.GetObject("Move_SirenLullaby"),
					UPool.MyPool.GetObject("Move_NightmarishPersistence"),
					(GameObject)SLMALoader.SDic["moves"]["Hover"]
				};
				unit.MovementComponents = new List<IMovementComponent> { (IMovementComponent)(object)default(NeverStopRunning) };
			}
			if (unit.Entity.Name == "Miraculus")
			{
				SLMATool.UnitCost(unit, 50000);
				unit.UnitBase = UPool.MyPool.GetObject("Miraculus_Base");
				s.SetField<UnitBlueprint>(unit, "VocalRef", (object)"Farmer Attack Vocals/Halfling");
				s.SetField<UnitBlueprint>(unit, "DeathRef", (object)"Farmer Death Vocals/Halfling");
				s.SetField<UnitBlueprint>(unit, "footRef", (object)"Footsteps/Skeleton");
				s.SetField<UnitBlueprint>(unit, "VoicePitch", (object)0.5f);
				unit.health = 25000f;
				unit.minSizeRandom = 0.99f;
				unit.maxSizeRandom = 1.01f;
				unit.sizeMultiplier = 1.5f;
				unit.stepMultiplier = 1.4f;
				unit.massMultiplier = 100f;
				unit.balanceMultiplier = 1.4f;
				unit.animationMultiplier = 1.2f;
				unit.balanceForceMultiplier = 1.2f;
				unit.movementSpeedMuiltiplier = 1.2f;
				unit.holdinigWithTwoHands = true;
				unit.RightWeapon = UPool.MyPool.GetObject("JoyousBlade");
				unit.m_props = (GameObject[])(object)new GameObject[8]
				{
					(GameObject)SLMALoader.SDic["clothes"]["VikingHelmet001"],
					(GameObject)SLMALoader.SDic["clothes"]["Viking_Ullr_Shirt001"],
					(GameObject)SLMALoader.SDic["clothes"]["misc_shirt002"],
					(GameObject)SLMALoader.SDic["clothes"]["Western_gloves002"],
					(GameObject)SLMALoader.SDic["clothes"]["Ottoman_pants002"],
					(GameObject)SLMALoader.SDic["clothes"]["Pirate_Shoes001"],
					UPool.MyPool.GetObject("ContagiousSmile"),
					UPool.MyPool.GetObject("SpawnEyes_Miraculus")
				};
				PropItemData[] array = (PropItemData[])(object)new PropItemData[6];
				int num = 0;
				PropItemData val = new PropItemData();
				val.m_colors = new int[3] { 76, 58, 0 };
				val.m_isTeamColor = new bool[3] { false, false, true };
				array[num] = val;
				PropItemData val2 = new PropItemData();
				val2.m_colors = new int[5] { 63, 53, 63, -1, 76 };
				val2.m_isTeamColor = new bool[5];
				array[1] = val2;
				val2 = new PropItemData();
				val2.m_colors = new int[2] { 73, 63 };
				val2.m_isTeamColor = new bool[2];
				array[2] = val2;
				val2 = new PropItemData();
				val2.m_colors = new int[1] { 62 };
				val2.m_isTeamColor = new bool[1];
				array[3] = val2;
				val2 = new PropItemData();
				val2.m_colors = new int[1];
				val2.m_isTeamColor = new bool[1] { true };
				array[4] = val2;
				int num2 = 5;
				val = new PropItemData();
				val.m_colors = new int[4] { 0, -1, 76, 76 };
				val.m_isTeamColor = new bool[4] { true, false, false, false };
				array[num2] = val;
				unit.m_propData = array;
				unit.objectsToSpawnAsChildren = (GameObject[])(object)new GameObject[6]
				{
					(GameObject)SLMALoader.SDic["moves"]["Small_Hover"],
					UPool.MyPool.GetObject("Move_ConstellationAura"),
					UPool.MyPool.GetObject("Move_ShiningStar"),
					UPool.MyPool.GetObject("Move_MarchingPressure"),
					UPool.MyPool.GetObject("Move_Masochist"),
					UPool.MyPool.GetObject("Move_DopamineOverdose")
				};
				unit.MovementComponents = new List<IMovementComponent> { (IMovementComponent)(object)default(NeverStopRunning) };
			}
			if (unit.Entity.Name == "Flame Apostle")
			{
				SLMATool.UnitCost(unit, 7000000);
				unit.Entity.SetUnlockKey("SECRET_FLAMEAPOSTLE_NEW");
				unit.UnitBase = UPool.MyPool.GetObject("FlameApostle_Base");
				s.SetField<UnitBlueprint>(unit, "VocalRef", (object)"Halloween Attack Vocals/Reaper");
				s.SetField<UnitBlueprint>(unit, "DeathRef", (object)"Halloween Death Vocals/Reaper");
				s.SetField<UnitBlueprint>(unit, "footRef", (object)"Footsteps/Big");
				s.SetField<UnitBlueprint>(unit, "VoicePitch", (object)0.65f);
				unit.health = 3000000f;
				unit.minSizeRandom = 0.99f;
				unit.maxSizeRandom = 1.01f;
				unit.sizeMultiplier = 1.5f;
				unit.stepMultiplier = 0.15f;
				unit.massMultiplier = 200f;
				unit.animationMultiplier = 0.8f;
				unit.movementSpeedMuiltiplier = 1.5f;
				unit.LeftWeapon = UPool.MyPool.GetObject("OrderOfBlazesWeapon");
				unit.RightWeapon = UPool.MyPool.GetObject("FireFistWeapon");
				unit.m_props = (GameObject[])(object)new GameObject[11]
				{
					UPool.MyPool.GetObject("FireShepherdShouldersFierceArmor"),
					UPool.MyPool.GetObject("SpawnEyes_FireShepherd"),
					UPool.MyPool.GetObject("FireShepherdPant"),
					UPool.MyPool.GetObject("FireShepherdHat"),
					UPool.MyPool.GetObject("FireShepherdGloves"),
					UPool.MyPool.GetObject("FireShepherdGasMask"),
					UPool.MyPool.GetObject("FireShepherdCover"),
					UPool.MyPool.GetObject("FireShepherdCoat"),
					UPool.MyPool.GetObject("FireShepherdChestArmor"),
					UPool.MyPool.GetObject("FireShepherdBoots"),
					UPool.MyPool.GetObject("FireShepherdBelt")
				};
				unit.objectsToSpawnAsChildren = (GameObject[])(object)new GameObject[6]
				{
					UPool.MyPool.GetObject("Move_HeavyBreathing"),
					UPool.MyPool.GetObject("Move_FlamingExecution"),
					UPool.MyPool.GetObject("Move_SwiftBurningAshes"),
					UPool.MyPool.GetObject("Move_BaptismWarfield"),
					UPool.MyPool.GetObject("Move_InfernalDictator"),
					UPool.MyPool.GetObject("Move_BoilingHatred")
				};
				unit.MovementComponents = new List<IMovementComponent> { (IMovementComponent)(object)default(KeepPreferredDistance) };
			}
			if (unit.Entity.Name == "Cryobomination")
			{
				SLMATool.UnitCost(unit, int.MaxValue);
				unit.Entity.SetUnlockKey("SECRET_CRYOBOMINATION_NEW");
				unit.UnitBase = UPool.MyPool.GetObject("Cryobomination_Base");
				s.SetField<UnitBlueprint>(unit, "VocalRef", (object)"Halloween Attack Vocals/Reaper");
				s.SetField<UnitBlueprint>(unit, "DeathRef", (object)"Halloween Death Vocals/Reaper");
				s.SetField<UnitBlueprint>(unit, "footRef", (object)"Footsteps/IceGiant");
				s.SetField<UnitBlueprint>(unit, "VoicePitch", (object)0.35f);
				unit.health = float.PositiveInfinity;
				unit.minSizeRandom = 0.99f;
				unit.maxSizeRandom = 1.01f;
				unit.sizeMultiplier = 1.01f;
				unit.massMultiplier = 800f;
				unit.stepMultiplier = 1.5f;
				unit.animationMultiplier = 1.5f;
				unit.movementSpeedMuiltiplier = 2f;
				unit.holdinigWithTwoHands = false;
				unit.RightWeapon = UPool.MyPool.GetObject("UndeadLordGreatsword");
				unit.m_props = (GameObject[])(object)new GameObject[2]
				{
					UPool.MyPool.GetObject("CryobominationCrown"),
					UPool.MyPool.GetObject("CryobominationRobe")
				};
				unit.objectsToSpawnAsChildren = (GameObject[])(object)new GameObject[14]
				{
					UPool.MyPool.GetObject("Move_Cryopathic"),
					UPool.MyPool.GetObject("Move_Mountmover"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_Cryocataclysm"),
					UPool.MyPool.GetObject("Move_AbominableEmbrace"),
					UPool.MyPool.GetObject("Move_WinterStormFog")
				};
				unit.MovementComponents = new List<IMovementComponent> { (IMovementComponent)(object)default(NeverStopRunning) };
			}
		}

		public static void SetMoves(GameObject move, LandfallContentDatabase db)
		{
			//IL_041b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0420: Unknown result type (might be due to invalid IL or missing references)
			//IL_0436: Unknown result type (might be due to invalid IL or missing references)
			//IL_043b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0451: Unknown result type (might be due to invalid IL or missing references)
			//IL_0456: Unknown result type (might be due to invalid IL or missing references)
			//IL_046c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0471: Unknown result type (might be due to invalid IL or missing references)
			//IL_0487: Unknown result type (might be due to invalid IL or missing references)
			//IL_048c: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_GazingPierces"))
			{
				move.AddComponent<GazingPiercesMovement>().eyeExplosionObject = Utilities.Utility.LoadBundleGameObject("Exp_EyeGazePierces");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_Lifereaping"))
			{
				move.AddComponent<LifereapingPassiveBehaviour>();
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_NightmarishPersistence"))
			{
				move.AddComponent<NightmarishPersistencePassiveBehaviour>().indicationObject = Utilities.Utility.LoadBundleGameObject("PersistenceIndication");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_ShiningStar"))
			{
				move.GetComponentInChildren<SpawnObject>().objectToSpawn = UPool.MyPool.GetObject("P_UltiStarr");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_MarchingPressure"))
			{
				MarchingPressureMovement marchingPressureMovement = move.AddComponent<MarchingPressureMovement>();
				marchingPressureMovement.trackerObject = Utilities.Utility.LoadBundleGameObject("MarchingPressureMarker");
				marchingPressureMovement.vanishExplosion = UPool.MyPool.GetObject("Exp_Vanish");
				marchingPressureMovement.toTheMoonExplosion = UPool.MyPool.GetObject("Exp_ToTheMoon");
				marchingPressureMovement.starrRaptureExplosion = UPool.MyPool.GetObject("Exp_StarrRapture");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_Masochist"))
			{
				move.AddComponent<MasochistBehaviour>();
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_DopamineOverdose"))
			{
				move.AddComponent<DopamineOverdoseBehaviour>();
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_SwiftBurningAshes"))
			{
				move.GetComponentInChildren<SpawnObject>().objectToSpawn = UPool.MyPool.GetObject("Exp_SwiftBurningAshes");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_BaptismWarfield"))
			{
				move.AddComponent<WarfieldBaptismMovement>().projectile = UPool.MyPool.GetObject("P_WarfieldRocket");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_FlamingExecution"))
			{
				move.GetComponentInChildren<SpawnObject>().objectToSpawn = UPool.MyPool.GetObject("FlamingShotgunInfernalShepherdCollisionEffectNameTection");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_BoilingHatred"))
			{
				move.AddComponent<BoilingHatredPassive>().indicationObject = Utilities.Utility.LoadBundleGameObject("BoilingHatredIndication");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_InfernalDictator"))
			{
				AddInfernalDictator addInfernalDictator = move.AddComponent<AddInfernalDictator>();
				addInfernalDictator.soundEffect = "Effects/FireArrowEffect";
				addInfernalDictator.scorchedMaterial = Utilities.Utility.LoadBundleMaterial("ScorchedBrickMaterial");
				addInfernalDictator.indicationObject = Utilities.Utility.LoadBundleGameObject("IndicationScorchEffectObject");
				addInfernalDictator.effectBase = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_AbominableEmbrace"))
			{
				AbominableEmbraceBehaviour abominableEmbraceBehaviour = move.AddComponent<AbominableEmbraceBehaviour>();
				abominableEmbraceBehaviour.moveSpeed = 25f;
				abominableEmbraceBehaviour.cooldown = 0.1f;
				abominableEmbraceBehaviour.explosionTimer = 1f;
				abominableEmbraceBehaviour.activationRange = 25f;
				abominableEmbraceBehaviour.healthPercentage = 0.5f;
				abominableEmbraceBehaviour.possessedMultiplier = 10f;
				abominableEmbraceBehaviour.forceAddMultiplier = 4f;
				abominableEmbraceBehaviour.forceReductionPercentage = 0.85f;
				abominableEmbraceBehaviour.stormExplosion = UPool.MyPool.GetObject("Exp_AbominableEmbrace");
				abominableEmbraceBehaviour.headObject = Utilities.Utility.LoadBundleGameObject("IceAbominationHead");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_Mountmover"))
			{
				MountmoverBehaviour mountmoverBehaviour = move.AddComponent<MountmoverBehaviour>();
				mountmoverBehaviour.explosionDelay = 7f;
				mountmoverBehaviour.bigExplosion = UPool.MyPool.GetObject("Exp_Cryocataclysm");
				mountmoverBehaviour.bigIndication = Utilities.Utility.LoadBundleGameObject("CryocataclysmTargetIndication");
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_Cryocataclysm"))
			{
				CryocataclysmBehaviour cryocataclysmBehaviour = move.AddComponent<CryocataclysmBehaviour>();
				cryocataclysmBehaviour.spawnAmount = 1;
				cryocataclysmBehaviour.rootAmount = 80;
				cryocataclysmBehaviour.rootDelay = 1f;
				cryocataclysmBehaviour.rootYOffset = 120f;
				cryocataclysmBehaviour.rootDelayOffset = 0.2f;
				cryocataclysmBehaviour.cameraShakeForce = 200f;
				cryocataclysmBehaviour.rootHorizontalOffzet = 200f;
				cryocataclysmBehaviour.pointObject = Utilities.Utility.LoadBundleGameObject("IcePointCryopathicCarnageEffectNameTection");
				cryocataclysmBehaviour.unitEffectBase = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Cryopathy").GetComponentInChildren<Effect_IceArrow>();
			}
			if ((Object)(object)move == (Object)(object)UPool.MyPool.GetObject("Move_Cryopathic"))
			{
				AddCryopathicBehaviour addCryopathicBehaviour = move.AddComponent<AddCryopathicBehaviour>();
				addCryopathicBehaviour.colors = (Color[])(object)new Color[5]
				{
					new Color(0.3f, 0.65f, 0.8f),
					new Color(0.15f, 0.45f, 0.7f),
					new Color(0.5f, 0.75f, 0.8f),
					new Color(0.25f, 0.7f, 0.65f),
					new Color(0.4f, 0.6f, 0.75f)
				};
				addCryopathicBehaviour.volume = 1f;
				addCryopathicBehaviour.pitch = 1.2f;
				addCryopathicBehaviour.disableOnNameDetection = "WFLS_";
				addCryopathicBehaviour.soundEffect = "Effects/IceArrowEffect";
				addCryopathicBehaviour.apostleSceneDetection = "09_Lvl1_Western_VC";
				addCryopathicBehaviour.nameFilterDetection = "CryopathicCarnageEffectNameTection";
				addCryopathicBehaviour.iceMaterial = Utilities.Utility.LoadBundleMaterial("MapBaseMaterial");
				addCryopathicBehaviour.coldEffectMaterial = Utilities.Utility.LoadBundleMaterial("WinternIceMaterial");
				addCryopathicBehaviour.frozenWaterMaterial = Utilities.Utility.LoadBundleMaterial("WinternWaterMaterial");
				addCryopathicBehaviour.flameApostleSecretObject = Utilities.Utility.LoadBundleGameObject("FlameApostleSecretProp");
				addCryopathicBehaviour.effectBase = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Cryopathy").GetComponentInChildren<Effect_IceArrow>();
			}
		}

		public static void SetUnits(Unit unit, LandfallContentDatabase db)
		{
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: 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_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01de: Unknown result type (might be due to invalid IL or missing references)
			//IL_0206: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0272: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Expected O, but got Unknown
			//IL_0283: Unknown result type (might be due to invalid IL or missing references)
			//IL_028d: Expected O, but got Unknown
			//IL_02a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c0: 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_034a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0353: Unknown result type (might be due to invalid IL or missing references)
			//IL_035c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0365: Unknown result type (might be due to invalid IL or missing references)
			//IL_036e: Unknown result type (might be due to invalid IL or missing references)
			//IL_069d: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06be: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d3: Expected O, but got Unknown
			//IL_06df: Unknown result type (might be due to invalid IL or missing references)
			//IL_045a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0464: Expected O, but got Unknown
			//IL_046b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0475: Expected O, but got Unknown
			//IL_048a: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f9: Expected O, but got Unknown
			//IL_0600: Unknown result type (might be due to invalid IL or missing references)
			//IL_060a: Expected O, but got Unknown
			//IL_061f: Unknown result type (might be due to invalid IL or missing references)
			//IL_063d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0525: Unknown result type (might be due to invalid IL or missing references)
			//IL_0527: Unknown result type (might be due to invalid IL or missing references)
			//IL_052c: Unknown result type (might be due to invalid IL or missing references)
			//IL_052e: Unknown result type (might be due to invalid IL or missing references)
			//IL_072d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0736: Unknown result type (might be due to invalid IL or missing references)
			//IL_073f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0748: Unknown result type (might be due to invalid IL or missing references)
			//IL_0751: Unknown result type (might be due to invalid IL or missing references)
			//IL_075a: Unknown result type (might be due to invalid IL or missing references)
			if (unit.Entity.Name == "AbnormalEnvoy_Base")
			{
				AbnormEnvoyDeathEvent abnormEnvoyDeathEvent = ((Component)unit).gameObject.AddComponent<AbnormEnvoyDeathEvent>();
				abnormEnvoyDeathEvent.bigLog = Utilities.Utility.LoadBundleGameObject("EnvoyRemainsBigLog");
				abnormEnvoyDeathEvent.logs = Utilities.Utility.LoadBundleGameObject("EnvoyRemainsLogs");
				Transform transform = ((Component)((Component)((Component)((Component)unit).transform.FindChild("Rigidbodies")).transform.FindChild("Mesh")).transform.FindChild("Armature")).transform;
				((Component)transform.FindChild("M_Hip")).transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
				((Component)transform.FindChild("M_Torso")).transform.localScale = new Vector3(0.8f, 1f, 0.8f);
				((Component)transform.FindChild("M_Arm_Left")).transform.localScale = new Vector3(1f, 0.8f, 0.8f);
				((Component)transform.FindChild("M_Arm_Right")).transform.localScale = new Vector3(1f, 0.8f, 0.8f);
				((Component)transform.FindChild("M_Elbow_Left")).transform.localScale = new Vector3(1.2f, 0.8f, 0.8f);
				((Component)transform.FindChild("M_Elbow_Right")).transform.localScale = new Vector3(1.2f, 0.8f, 0.8f);
				((Component)transform.FindChild("M_Leg_Left")).transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
				((Component)transform.FindChild("M_Leg_Right")).transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
				((Component)transform.FindChild("M_Knee_Left")).transform.localScale = new Vector3(0.8f, 1f, 0.8f);
				((Component)transform.FindChild("M_Knee_Right")).transform.localScale = new Vector3(0.8f, 1f, 0.8f);
				SkinnedMeshRenderer[] componentsInChildren = ((Component)unit).GetComponentsInChildren<SkinnedMeshRenderer>();
				for (int i = 0; i < componentsInChildren.Length; i++)
				{
					((Component)componentsInChildren[i]).gameObject.tag = "UnitMesh";
				}
			}
			if (unit.Entity.Name == "FrigidHuntress_Base")
			{
				((Component)unit).GetComponentInChildren<RigidbodyHolder>().randomizeRigidbodySizes = false;
				TeamColor[] componentsInChildren2 = ((Component)unit).GetComponentsInChildren<TeamColor>();
				foreach (TeamColor obj in componentsInChildren2)
				{
					obj.redMaterial = new Material(obj.redMaterial);
					obj.blueMaterial = new Material(obj.blueMaterial);
					obj.redMaterial.color = new Color(1f, 0.8f, 0.8f);
					obj.blueMaterial.color = new Color(0.8f, 0.8f, 1f);
				}
			}
			ConfigurableJoint[] componentsInChildren3;
			if (unit.Entity.Name == "Skraegore_Base")
			{
				((Component)unit).GetComponentInChildren<RigidbodyHolder>().randomizeRigidbodySizes = false;
				ConfigurableJointMotion val = (ConfigurableJointMotion)0;
				componentsInChildren3 = ((Component)unit).GetComponentsInChildren<ConfigurableJoint>();
				foreach (ConfigurableJoint val2 in componentsInChildren3)
				{
					if (!((Object)((Component)val2).gameObject).name.Contains("Head") || !((Object)((Component)val2).gameObject).name.Contains("Torso"))
					{
						val2.xMotion = val;
						val2.yMotion = val;
						val2.zMotion = val;
						val2.angularXMotion = val;
						val2.angularYMotion = val;
						val2.angularZMotion = val;
					}
				}
				SkinnedMeshRenderer[] componentsInChildren4 = ((Component)unit).GetComponentsInChildren<SkinnedMeshRenderer>();
				for (int k = 0; k < componentsInChildren4.Length; k++)
				{
					((Component)componentsInChildren4[k]).gameObject.tag = "UnitMesh";
				}
			}
			if (unit.Entity.Name == "DreamerUnit_Base")
			{
				((Component)unit).GetComponentInChildren<RigidbodyHolder>().randomizeRigidbodySizes = false;
				SkinnedMeshRenderer[] componentsInChildren5 = ((Component)unit).GetComponentsInChildren<SkinnedMeshRenderer>();
				for (int l = 0; l < componentsInChildren5.Length; l++)
				{
					((Component)componentsInChildren5[l]).gameObject.tag = "UnitMesh";
				}
			}
			if (unit.Entity.Name == "Miraculus_Base")
			{
				unit.neverStopRunning = true;
				unit.data.takeFallDamage = false;
				unit.targetingPriorityMultiplier = 2f;
				((Component)unit).GetComponentInChildren<RigidbodyHolder>().randomizeRigidbodySizes = false;
				TeamColor[] componentsInChildren2 = ((Component)unit).GetComponentsInChildren<TeamColor>();
				foreach (TeamColor obj2 in componentsInChildren2)
				{
					obj2.redMaterial = new Material(obj2.redMaterial);
					obj2.blueMaterial = new Material(obj2.blueMaterial);
					obj2.redMaterial.color = new Color(0.5f, 0.3f, 0.3f);
					obj2.blueMaterial.color = new Color(0.3f, 0.3f, 0.5f);
				}
				Material val3 = Utilities.Utility.LoadBundleMaterial("StarrGlowMaterial");
				Color val4 = default(Color);
				((Color)(ref val4))..ctor(2f, 2f, 2f);
				((Component)unit).GetComponentInChildren<EyeSpawner>().randomizeEyes = false;
				((Component)unit).GetComponentInChildren<EyeSpawner>().eyeObject = UPool.MyPool.GetObject("GooglyEye_Miraculus");
				ParticleTeamColor[] componentsInChildren6 = ((Component)unit).GetComponentsInChildren<ParticleTeamColor>();
				foreach (ParticleTeamColor obj3 in componentsInChildren6)
				{
					obj3.redMat = val3;
					obj3.blueMat = val3;
					obj3.redColor = val4;
					obj3.blueColor = val4;
				}
				ParticleSystem[] componentsInChildren7 = ((Component)unit).GetComponentsInChildren<ParticleSystem>();
				foreach (ParticleSystem obj4 in componentsInChildren7)
				{
					obj4.startSize *= 10f;
				}
				ParticleSystemRenderer[] componentsInChildren8 = ((Component)unit).GetComponentsInChildren<ParticleSystemRenderer>();
				for (int n = 0; n < componentsInChildren8.Length; n++)
				{
					((Renderer)componentsInChildren8[n]).material = val3;
				}
			}
			if (unit.Entity.Name == "FlameApostle_Base")
			{
				unit.neverStopRunning = true;
				unit.data.takeFallDamage = false;
				unit.targetingPriorityMultiplier = 2f;
				((Component)unit).GetComponentInChildren<RigidbodyHolder>().randomizeRigidbodySizes = false;
				TeamColor[] componentsInChildren2 = ((Component)unit).GetComponentsInChildren<TeamColor>();
				foreach (TeamColor obj5 in componentsInChildren2)
				{
					obj5.redMaterial = new Material(obj5.redMaterial);
					obj5.blueMaterial = new Material(obj5.blueMaterial);
					obj5.redMaterial.color = new Color(0.5f, 0.3f, 0.3f);
					obj5.blueMaterial.color = new Color(0.3f, 0.3f, 0.5f);
				}
			}
			if (!(unit.Entity.Name == "Cryobomination_Base"))
			{
				return;
			}
			((Component)unit).gameObject.AddComponent<NeverShowHealthBar>();
			OnDeathFreeze onDeathFreeze = ((Component)unit).gameObject.AddComponent<OnDeathFreeze>();
			onDeathFreeze.material = Utilities.Utility.LoadBundleMaterial("WinternIceMaterial");
			onDeathFreeze.soundEffect = "Effects/IceArrowEffect";
			onDeathFreeze.color = new UnitColorInstance
			{
				acceptWhenDead = true,
				color = new Color(0.05f, 0.2f, 0.2f),
				colorName = "Eff_Cryopathy"
			};
			unit.targetingPriorityMultiplier = 50f;
			ConfigurableJointMotion val5 = (ConfigurableJointMotion)0;
			componentsInChildren3 = ((Component)unit).GetComponentsInChildren<ConfigurableJoint>();
			foreach (ConfigurableJoint val6 in componentsInChildren3)
			{
				string name = ((Object)((Component)val6).gameObject).name;
				if (name.Contains("Knee") || name.Contains("Elbow") || name.Contains("Hip"))
				{
					val6.xMotion = val5;
					val6.yMotion = val5;
					val6.zMotion = val5;
					val6.angularXMotion = val5;
					val6.angularYMotion = val5;
					val6.angularZMotion = val5;
				}
			}
			SkinnedMeshRenderer[] componentsInChildren9 = ((Component)unit).GetComponentsInChildren<SkinnedMeshRenderer>();
			for (int num = 0; num < componentsInChildren9.Length; num++)
			{
				((Component)componentsInChildren9[num]).gameObject.tag = "UnitMesh";
			}
		}

		public static void Init(LandfallContentDatabase db)
		{
			//IL_0066: 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_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Expected O, but got Unknown
			//IL_0afc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b16: Expected O, but got Unknown
			//IL_0b7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b94: Expected O, but got Unknown
			//IL_0d01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d1b: Expected O, but got Unknown
			//IL_0d4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d64: Expected O, but got Unknown
			//IL_0d93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dad: Expected O, but got Unknown
			//IL_0eb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eca: Expected O, but got Unknown
			//IL_0ef9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f13: Expected O, but got Unknown
			//IL_0f42: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f5c: Expected O, but got Unknown
			//IL_1278: Unknown result type (might be due to invalid IL or missing references)
			//IL_1292: Expected O, but got Unknown
			//IL_12f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1310: Expected O, but got Unknown
			//IL_13a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_13c3: Expected O, but got Unknown
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Create Starting Object";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Sprite val = Utilities.Utility.LoadBundleTextureToSprite("factionicon_winterland");
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Create Custom Faction";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Faction val2 = Utilities.Utility.SetFactionHidden(SLMATool.CreateFaction("Winterland", (UnitBlueprint[])null, val, Utilities.Utility.IDChecker(Utilities.AssetType.Faction, 4123212)));
			val2.m_FactionCatagory = (FactionCatagory)0;
			val2.m_FactionColor = new Color(0.5f, 0.5f, 0.8f);
			val2.index = 4;
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Create Custom Units";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			SLMATool.CreateUnit("Abnormal Envoy", (UnitBlueprint)null, val2, Utilities.Utility.LoadBundleTextureToSprite("icon_abnormalenvoy"));
			SLMATool.CreateUnit("Frigid Huntress", (UnitBlueprint)null, val2, Utilities.Utility.LoadBundleTextureToSprite("icon_frigidhuntress"));
			SLMATool.CreateUnit("Skrægore", (UnitBlueprint)null, val2, Utilities.Utility.LoadBundleTextureToSprite("icon_skrægore"));
			SLMATool.CreateUnit("Dreamful Oracle", (UnitBlueprint)null, val2, Utilities.Utility.LoadBundleTextureToSprite("icon_dreamfuloracle"));
			SLMATool.CreateUnit("Miraculus", (UnitBlueprint)null, val2, Utilities.Utility.LoadBundleTextureToSprite("icon_miraculus"));
			SLMATool.CreateUnit("Flame Apostle", (UnitBlueprint)null, Utilities.Utility.SetFactionHidden((Faction)SLMALoader.SDic["factions"]["Western"]), Utilities.Utility.LoadBundleTextureToSprite("icon_flameapostle"));
			SLMATool.CreateUnit("Cryobomination", (UnitBlueprint)null, val2, Utilities.Utility.LoadBundleTextureToSprite("icon_iceabomination"));
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Weapons";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("EnvoyExtendedClaw", Utilities.Utility.LoadBundleGameObject("EnvoyExtendedClaw"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Weapon, 76435234), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntingLongbow", Utilities.Utility.LoadBundleGameObject("FrigidHuntingLongbow"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Weapon, 421422), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Throw_HaywireSickle", Utilities.Utility.LoadBundleGameObject("Throw_HaywireSickle"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Weapon, 6243433), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("OrderOfBlazesWeapon", Utilities.Utility.LoadBundleGameObject("OrderOfBlazesWeapon"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Weapon, 72345243), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Throw_SleepySand", Utilities.Utility.LoadBundleGameObject("Throw_SleepySand"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Weapon, 9743654), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("JoyousBlade", Utilities.Utility.LoadBundleGameObject("JoyousBlade"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Weapon, 76324151), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireFistWeapon", Utilities.Utility.LoadBundleGameObject("FireFistWeapon"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Weapon, 73452532), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("UndeadLordGreatsword", Utilities.Utility.LoadBundleGameObject("UndeadLordGreatsword"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Weapon, 6546546), true), "Winterfest", (TagType)0);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Clothing";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressArrows", Utilities.Utility.LoadBundleGameObject("FrigidHuntressArrows"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123213), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressBoots", Utilities.Utility.LoadBundleGameObject("FrigidHuntressBoots"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123214), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressHair", Utilities.Utility.LoadBundleGameObject("FrigidHuntressHair"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123215), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressInnerShirt", Utilities.Utility.LoadBundleGameObject("FrigidHuntressInnerShirt"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123216), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressLeftArmStocking", Utilities.Utility.LoadBundleGameObject("FrigidHuntressLeftArmStocking"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123217), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressMask", Utilities.Utility.LoadBundleGameObject("FrigidHuntressMask"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123218), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressMouthCover", Utilities.Utility.LoadBundleGameObject("FrigidHuntressMouthCover"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123219), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressPants", Utilities.Utility.LoadBundleGameObject("FrigidHuntressPants"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123220), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressRightGlove", Utilities.Utility.LoadBundleGameObject("FrigidHuntressRightGlove"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123221), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressRightHandStocking", Utilities.Utility.LoadBundleGameObject("FrigidHuntressRightHandStocking"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123222), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntressTorsoArmor", Utilities.Utility.LoadBundleGameObject("FrigidHuntressTorsoArmor"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 5123223), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("SpawnEyes_FrigidHuntress", Utilities.Utility.LoadBundleGameObject("SpawnEyes_FrigidHuntress"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 62343323), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("SkraegoreStrawOldHat", Utilities.Utility.LoadBundleGameObject("SkraegoreStrawOldHat"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 12455123), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("SkraegoreScarecrowButchedMask", Utilities.Utility.LoadBundleGameObject("SkraegoreScarecrowButchedMask"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 52342343), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("SkraegoreRaggedShirt", Utilities.Utility.LoadBundleGameObject("SkraegoreRaggedShirt"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 6412342), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("DreamerHair", Utilities.Utility.LoadBundleGameObject("DreamerHair"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 62343243), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("SpawnEyes_Dreamer", Utilities.Utility.LoadBundleGameObject("SpawnEyes_Dreamer"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 85363454), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("ContagiousSmile", Utilities.Utility.LoadBundleGameObject("ContagiousSmile"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 605284341), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("SpawnEyes_Miraculus", Utilities.Utility.LoadBundleGameObject("SpawnEyes_Miraculus"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 12342412), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("GooglyEye_Miraculus", Utilities.Utility.LoadBundleGameObject("GooglyEye_Miraculus"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdShouldersFierceArmor", Utilities.Utility.LoadBundleGameObject("FireShepherdShouldersFierceArmor"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 8363453), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdPant", Utilities.Utility.LoadBundleGameObject("FireShepherdPant"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 73252343), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdHat", Utilities.Utility.LoadBundleGameObject("FireShepherdHat"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 13567134), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdGloves", Utilities.Utility.LoadBundleGameObject("FireShepherdGloves"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 84624533), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdGasMask", Utilities.Utility.LoadBundleGameObject("FireShepherdGasMask"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 98475634), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdCover", Utilities.Utility.LoadBundleGameObject("FireShepherdCover"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 9534643), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdCoat", Utilities.Utility.LoadBundleGameObject("FireShepherdCoat"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 95775463), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdChestArmor", Utilities.Utility.LoadBundleGameObject("FireShepherdChestArmor"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 96134342), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdBoots", Utilities.Utility.LoadBundleGameObject("FireShepherdBoots"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 97846535), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FireShepherdBelt", Utilities.Utility.LoadBundleGameObject("FireShepherdBelt"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 83453543), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("SpawnEyes_FireShepherd", Utilities.Utility.LoadBundleGameObject("SpawnEyes_FireShepherd"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 72453532), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("CryobominationRobe", Utilities.Utility.LoadBundleGameObject("CryobominationRobe"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 845624523), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("CryobominationCrown", Utilities.Utility.LoadBundleGameObject("CryobominationCrown"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Prop, 634523423), true), "Winterfest", (TagType)0);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Abilities";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_EnvoyOfMadness", Utilities.Utility.LoadBundleGameObject("Move_EnvoyOfMadness"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 62343343), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_EnvoyBite", Utilities.Utility.LoadBundleGameObject("Move_EnvoyBite"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 73454323), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_WildJump", Utilities.Utility.LoadBundleGameObject("Move_WildJump"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 32131231), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_GazingPierces", (GameObject)SLMALoader.SDic["moves"]["Head_up"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 7353234), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_ArrowStep", Utilities.Utility.LoadBundleGameObject("Move_ArrowStep"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 6524234), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_Lifereaping", (GameObject)SLMALoader.SDic["moves"]["Head_up"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 64532434), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_BountifulHarvest", Utilities.Utility.LoadBundleGameObject("Move_BountifulHarvest"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 734544345), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_Bedridden", Utilities.Utility.LoadBundleGameObject("Move_Bedridden"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 6234232), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_SirenLullaby", Utilities.Utility.LoadBundleGameObject("Move_SirenLullaby"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 6234523), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_NightmarishPersistence", Utilities.Utility.LoadBundleGameObject("Move_NightmarishPersistence"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 74253432), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_ConstellationAura", Utilities.Utility.LoadBundleGameObject("Move_ConstellationAura"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 52343232), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_ShiningStar", Utilities.Utility.LoadBundleGameObject("Move_ShiningStar"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 123132412), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_MarchingPressure", (GameObject)SLMALoader.SDic["moves"]["Head_up"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 432453231), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_Masochist", (GameObject)SLMALoader.SDic["moves"]["Head_up"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 542343242), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_DopamineOverdose", (GameObject)SLMALoader.SDic["moves"]["Head_up"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 532443223), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_HeavyBreathing", Utilities.Utility.LoadBundleGameObject("Move_HeavyBreathing"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 8456523), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_FlamingExecution", Utilities.Utility.LoadBundleGameObject("Move_FlamingExecution"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 9845563), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_SwiftBurningAshes", Utilities.Utility.LoadBundleGameObject("Move_SwiftBurningAshes"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 456343534), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_BaptismWarfield", Utilities.Utility.LoadBundleGameObject("Move_BaptismWarfield"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 235363433), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_BoilingHatred", (GameObject)SLMALoader.SDic["moves"]["Head_up"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 8456544), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_InfernalDictator", (GameObject)SLMALoader.SDic["moves"]["Head_up"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 46754634), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_Cryopathic", (GameObject)SLMALoader.SDic["moves"]["Head_up"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 6546542), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_Cryocataclysm", Utilities.Utility.LoadBundleGameObject("Move_Cryocataclysm"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 12456132), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_WinterStormFog", Utilities.Utility.LoadBundleGameObject("Move_WinterStormFog"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 43534532), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_AbominableEmbrace", Utilities.Utility.LoadBundleGameObject("Move_AbominableEmbrace"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 736344345), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Move_Mountmover", Utilities.Utility.LoadBundleGameObject("Move_Mountmover"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Ability, 534234232), true), "Winterfest", (TagType)0);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Projectiles";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_EnvoyOfMadness", Utilities.Utility.LoadBundleGameObject("P_EnvoyOfMadness"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 6324321), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_FrigidBow", Utilities.Utility.LoadBundleGameObject("P_FrigidBow"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 5324323), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_HaywireSickle", Utilities.Utility.LoadBundleGameObject("P_HaywireSickle"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 62443223), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_SleepySand", Utilities.Utility.LoadBundleGameObject("P_SleepySand"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 7345345), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_UltiStarr", Utilities.Utility.LoadBundleGameObject("P_UltiStarr"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 313241232), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_Firefist", Utilities.Utility.LoadBundleGameObject("P_Firefist"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 65463452), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_WarfieldRocket", Utilities.Utility.LoadBundleGameObject("P_WarfieldRocket"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 62453423), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_FlamingShotgun", Utilities.Utility.LoadBundleGameObject("P_FlamingShotgun"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 62482342), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("P_FireTsunamiOrder", Utilities.Utility.LoadBundleGameObject("P_FireTsunamiOrder"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.Projectile, 734135432), true), "Winterfest", (TagType)0);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Unit Bases";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FlameApostle_Base", (GameObject)SLMALoader.SDic["bases"]["Humanoid"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.UnitBase, 62432332), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Skraegore_Base", Utilities.Utility.LoadBundleGameObject("SkraegoreUnitBase"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.UnitBase, 735344534), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FrigidHuntress_Base", (GameObject)SLMALoader.SDic["bases"]["Humanoid"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.UnitBase, 56123212), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("DreamerUnit_Base", Utilities.Utility.LoadBundleGameObject("DreamerUnitBase"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.UnitBase, 623424332), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("AbnormalEnvoy_Base", Utilities.Utility.LoadBundleGameObject("AbnormalEnvoyUnitBase"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.UnitBase, 62432432), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Miraculus_Base", (GameObject)SLMALoader.SDic["bases"]["Humanoid"], true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.UnitBase, 78216192), true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Cryobomination_Base", Utilities.Utility.LoadBundleGameObject("CryobominationUnitBase"), true, (HideFlags)52, val, Utilities.Utility.IDChecker(Utilities.AssetType.UnitBase, 6543421), true), "Winterfest", (TagType)0);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Effect";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Eff_Paranoid", Utilities.Utility.LoadBundleGameObject("Eff_Paranoid"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Eff_FrigidIce", Utilities.Utility.LoadBundleGameObject("Eff_FrigidIce"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Eff_Insomnia", Utilities.Utility.LoadBundleGameObject("Eff_Insomnia"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Eff_Lullabied", Utilities.Utility.LoadBundleGameObject("Eff_Lullabied"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Eff_RunningDarkness", Utilities.Utility.LoadBundleGameObject("Eff_RunningDarkness"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Eff_Hatemark", Utilities.Utility.LoadBundleGameObject("Eff_Hatemark"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Eff_StarrFire", Utilities.Utility.LoadBundleGameObject("Eff_StarrFire"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Eff_Cryopathy", Utilities.Utility.LoadBundleGameObject("Eff_Cryopathy"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Explosions";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_WildJump", Utilities.Utility.LoadBundleGameObject("Exp_WildJump"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_BountifulHarvest", Utilities.Utility.LoadBundleGameObject("Exp_BountifulHarvest"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_Haywire", Utilities.Utility.LoadBundleGameObject("Exp_Haywire"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_Vanish", Utilities.Utility.LoadBundleGameObject("Exp_Vanish"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_ToTheMoon", Utilities.Utility.LoadBundleGameObject("Exp_ToTheMoon"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_StarrRapture", Utilities.Utility.LoadBundleGameObject("Exp_StarrRapture"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_WarfieldRocket", Utilities.Utility.LoadBundleGameObject("Exp_Cryocataclysm"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_FieryDescend", Utilities.Utility.LoadBundleGameObject("Exp_FieryDescend"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_BurningTornado", Utilities.Utility.LoadBundleGameObject("Exp_BurningTornado"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_SwiftBurningAshes", Utilities.Utility.LoadBundleGameObject("Exp_SwiftBurningAshes"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_FlamingShotgun", Utilities.Utility.LoadBundleGameObject("Exp_FlamingShotgun"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_Firefist", Utilities.Utility.LoadBundleGameObject("Exp_Firefist"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_AbominableEmbrace", Utilities.Utility.LoadBundleGameObject("Exp_AbominableEmbrace"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("Exp_Cryocataclysm", Utilities.Utility.LoadBundleGameObject("Exp_Cryocataclysm"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Object";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Utilities.Utility.ItemCategorizer.SetTag(UPool.MyPool.AddObject("FlamingShotgunInfernalShepherdCollisionEffectNameTection", Utilities.Utility.LoadBundleGameObject("FlamingShotgunInfernalShepherdCollisionEffectNameTection"), true, (HideFlags)52, val, 0, true), "Winterfest", (TagType)0);
		}

		public static void SetWeapon(GameObject weapon, MeleeWeapon melee, RangeWeapon range, LandfallContentDatabase db)
		{
			//IL_036e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0373: Unknown result type (might be due to invalid IL or missing references)
			//IL_0389: Unknown result type (might be due to invalid IL or missing references)
			//IL_038e: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a9: 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)
			//IL_03da: Unknown result type (might be due to invalid IL or missing references)
			//IL_03df: Unknown result type (might be due to invalid IL or missing references)
			//IL_026b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0270: 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_028b: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)weapon == (Object)(object)UPool.MyPool.GetObject("FrigidHuntingLongbow"))
			{
				weapon.AddComponent<AimedRigidbodyAtTargetBehaviour>();
				range.ObjectToSpawn = UPool.MyPool.GetObject("P_FrigidBow");
			}
			if ((Object)(object)weapon == (Object)(object)UPool.MyPool.GetObject("Throw_HaywireSickle"))
			{
				range.ObjectToSpawn = UPool.MyPool.GetObject("P_HaywireSickle");
			}
			if ((Object)(object)weapon == (Object)(object)UPool.MyPool.GetObject("Throw_SleepySand"))
			{
				range.ObjectToSpawn = UPool.MyPool.GetObject("P_SleepySand");
			}
			if ((Object)(object)weapon == (Object)(object)UPool.MyPool.GetObject("JoyousBlade"))
			{
				weapon.AddComponent<MoreWeaponHandling>();
				weapon.AddComponent<SwingStarrFallBehaviour>().explosion = UPool.MyPool.GetObject("Exp_ToTheMoon");
			}
			if ((Object)(object)weapon == (Object)(object)UPool.MyPool.GetObject("FireFistWeapon"))
			{
				weapon.GetComponentInChildren<MeleeWeaponAddEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
				range.ObjectToSpawn = UPool.MyPool.GetObject("P_Firefist");
			}
			if ((Object)(object)weapon == (Object)(object)UPool.MyPool.GetObject("OrderOfBlazesWeapon"))
			{
				weapon.GetComponentInChildren<MeleeWeaponAddEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
				OrderOfBlazesFunction orderOfBlazesFunction = weapon.AddComponent<OrderOfBlazesFunction>();
				orderOfBlazesFunction.objectObeyPrefab = UPool.MyPool.GetObject("Exp_FieryDescend");
				orderOfBlazesFunction.objectHaltPrefab = UPool.MyPool.GetObject("P_FireTsunamiOrder");
				orderOfBlazesFunction.objectBurnPrefab = UPool.MyPool.GetObject("Exp_BurningTornado");
				orderOfBlazesFunction.objectInfiltratePrefab = UPool.MyPool.GetObject("Exp_SwiftBurningAshes");
				orderOfBlazesFunction.soundEffect = "Effects/Shout";
				orderOfBlazesFunction.pitch = 1f;
				orderOfBlazesFunction.volume = 1f;
			}
			if (!((Object)(object)weapon == (Object)(object)UPool.MyPool.GetObject("UndeadLordGreatsword")))
			{
				return;
			}
			Collider[] componentsInChildren = weapon.GetComponentsInChildren<Collider>();
			ProjToIceBehaviour projToIceBehaviour = default(ProjToIceBehaviour);
			CryopathicCollision cryopathicCollision = default(CryopathicCollision);
			for (int i = 0; i < componentsInChildren.Length; i++)
			{
				if (!((Component)componentsInChildren[i]).gameObject.TryGetComponent<ProjToIceBehaviour>(ref projToIceBehaviour))
				{
					((Component)componentsInChildren[i]).gameObject.AddComponent<ProjToIceBehaviour>().iceMaterial = Utilities.Utility.LoadBundleMaterial("WinternIceMaterial");
				}
				Transform parent = ((Component)componentsInChildren[i]).transform.parent;
				if (Object.op_Implicit((Object)(object)parent) && !((Component)parent).gameObject.TryGetComponent<CryopathicCollision>(ref cryopathicCollision))
				{
					CryopathicCollision cryopathicCollision2 = ((Component)parent).gameObject.AddComponent<CryopathicCollision>();
					cryopathicCollision2.colors = (Color[])(object)new Color[5]
					{
						new Color(0.3f, 0.65f, 0.8f),
						new Color(0.15f, 0.45f, 0.7f),
						new Color(0.5f, 0.75f, 0.8f),
						new Color(0.25f, 0.7f, 0.65f),
						new Color(0.4f, 0.6f, 0.75f)
					};
					cryopathicCollision2.pitch = 1f;
					cryopathicCollision2.volume = 1f;
					cryopathicCollision2.soundEffect = "Effects/IceArrowEffect";
					cryopathicCollision2.nameFilterDetection = "CryopathicCarnageEffectNameTection";
					cryopathicCollision2.iceMaterial = Utilities.Utility.LoadBundleMaterial("WinternIceMaterial");
					cryopathicCollision2.unitEffectBase = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Cryopathy").GetComponentInChildren<Effect_IceArrow>();
				}
			}
			CryopathicCollision cryopathicCollision3 = weapon.AddComponent<CryopathicCollision>();
			cryopathicCollision3.colors = (Color[])(object)new Color[5]
			{
				new Color(0.3f, 0.65f, 0.8f),
				new Color(0.15f, 0.45f, 0.7f),
				new Color(0.5f, 0.75f, 0.8f),
				new Color(0.25f, 0.7f, 0.65f),
				new Color(0.4f, 0.6f, 0.75f)
			};
			cryopathicCollision3.pitch = 1f;
			cryopathicCollision3.volume = 1f;
			cryopathicCollision3.soundEffect = "Effects/IceArrowEffect";
			cryopathicCollision3.nameFilterDetection = "CryopathicCarnageEffectNameTection";
			cryopathicCollision3.iceMaterial = Utilities.Utility.LoadBundleMaterial("WinternIceMaterial");
			cryopathicCollision3.unitEffectBase = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Cryopathy").GetComponentInChildren<Effect_IceArrow>();
		}

		public static void SetExplosion(GameObject explosion)
		{
			if ((Object)(object)explosion == (Object)(object)UPool.MyPool.GetObject("Exp_SwiftBurningAshes"))
			{
				explosion.GetComponentInChildren<AddObjectEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
			}
			if ((Object)(object)explosion == (Object)(object)UPool.MyPool.GetObject("Exp_FieryDescend"))
			{
				explosion.GetComponentInChildren<AddObjectEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
			}
			if ((Object)(object)explosion == (Object)(object)UPool.MyPool.GetObject("Exp_BurningTornado"))
			{
				explosion.GetComponentInChildren<AddObjectEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
			}
			if ((Object)(object)explosion == (Object)(object)UPool.MyPool.GetObject("Exp_Firefist"))
			{
				explosion.GetComponentInChildren<AddObjectEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
			}
			if ((Object)(object)explosion == (Object)(object)UPool.MyPool.GetObject("Exp_AbominableEmbrace"))
			{
				explosion.GetComponentInChildren<AddObjectEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Cryopathy").GetComponentInChildren<Effect_IceArrow>();
			}
		}

		public static void SetProjectile(GameObject proj, ProjectileHit projhit, LandfallContentDatabase db)
		{
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_010e: 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)
			//IL_012b: Expected O, but got Unknown
			if ((Object)(object)proj == (Object)(object)UPool.MyPool.GetObject("P_FrigidBow"))
			{
				CatchOrAddComponent(typeof(SpeedingArrowBehaviour), proj);
			}
			if ((Object)(object)proj == (Object)(object)UPool.MyPool.GetObject("P_SleepySand"))
			{
				CatchOrAddComponent(typeof(SlowingProjectile), proj);
			}
			if ((Object)(object)proj == (Object)(object)UPool.MyPool.GetObject("P_UltiStarr"))
			{
				((StarrProjEnlargeBehaviour)(object)CatchOrAddComponent(typeof(StarrProjEnlargeBehaviour), proj)).explosion = UPool.MyPool.GetObject("Exp_StarrRapture");
			}
			if ((Object)(object)proj == (Object)(object)UPool.MyPool.GetObject("P_FireTsunamiOrder"))
			{
				CatchOrAddComponent(typeof(SlowingProjectile), proj);
				AddObjectEffect[] componentsInChildren = proj.GetComponentsInChildren<AddObjectEffect>();
				for (int i = 0; i < componentsInChildren.Length; i++)
				{
					componentsInChildren[i].EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
				}
			}
			if ((Object)(object)proj == (Object)(object)UPool.MyPool.GetObject("P_Firefist"))
			{
				projhit.objectsToSpawn = (ObjectToSpawn[])(object)new ObjectToSpawn[1]
				{
					new ObjectToSpawn
					{
						destroy = true,
						objectToSpawn = UPool.MyPool.GetObject("Exp_Firefist")
					}
				};
				proj.GetComponentInChildren<AddObjectEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
			}
		}

		public static void SetAllGameObject(GameObject gameObject)
		{
			if ((Object)(object)gameObject == (Object)(object)UPool.MyPool.GetObject("GooglyEye_Miraculus"))
			{
				CatchOrAddComponent(typeof(RandomEyeSizeBehaviours), gameObject);
			}
			if ((Object)(object)gameObject == (Object)(object)UPool.MyPool.GetObject("Eff_Hatemark"))
			{
				CatchOrAddComponent(typeof(HateMarkEffectBehaviour), gameObject);
			}
			if ((Object)(object)gameObject == (Object)(object)UPool.MyPool.GetObject("Exp_BurningTornado"))
			{
				gameObject.GetComponentInChildren<AddObjectEffect>().EffectPrefab = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Hatemark").GetComponentInChildren<DamageOverTimeEffect>();
			}
			if ((Object)(object)gameObject == (Object)(object)UPool.MyPool.GetObject("FlamingShotgunInfernalShepherdCollisionEffectNameTection"))
			{
				((BurningExecutionShotgunBehaviour)(object)CatchOrAddComponent(typeof(BurningExecutionShotgunBehaviour), gameObject)).projectile = UPool.MyPool.GetObject("P_FlamingShotgun");
			}
			if (!((Object)(object)gameObject == (Object)(object)UPool.MyPool.GetObject("Exp_Cryocataclysm")))
			{
				return;
			}
			BoxCollider[] componentsInChildren = gameObject.GetComponentsInChildren<BoxCollider>();
			for (int i = 0; i < componentsInChildren.Length; i++)
			{
				Transform parent = ((Component)componentsInChildren[i]).transform.parent;
				if (Object.op_Implicit((Object)(object)parent))
				{
					CryocataclysmCollision obj = (CryocataclysmCollision)(object)CatchOrAddComponent(typeof(CryocataclysmCollision), ((Component)parent).gameObject);
					obj.unitEffectBase = (UnitEffectBase)(object)UPool.MyPool.GetObject("Eff_Cryopathy").GetComponentInChildren<Effect_IceArrow>();
					obj.soundEffect = "Effects/IceArrowEffect";
				}
			}
		}

		public static Component CatchOrAddComponent(Type typeToSeek, GameObject obj)
		{
			Component val = obj.GetComponentInChildren(typeToSeek, true);
			if ((Object)(object)val == (Object)null)
			{
				val = obj.AddComponent(typeToSeek);
			}
			return val;
		}

		public static void SetClothes(GameObject cloth, LandfallContentDatabase db)
		{
			if ((Object)(object)cloth == (Object)(object)UPool.MyPool.GetObject("SpawnEyes_Miraculus"))
			{
				cloth.GetComponentInChildren<EyeSpawner>().eyeObject = UPool.MyPool.GetObject("GooglyEye_Miraculus");
			}
		}
	}
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("GeeztJeez.Winterfest", "WinterFest", "1.0.6")]
	internal class Loader : BaseUnityPlugin
	{
		public AssetBundle assetBundle;

		public AssetBundle sceneBundle;

		private void Awake()
		{
			ApplyHarmony();
			((MonoBehaviour)this).StartCoroutine(Call());
		}

		private IEnumerator Call()
		{
			yield return (object)new WaitUntil((Func<bool>)(() => (Object)(object)Object.FindObjectOfType<ServiceLocator>() != (Object)null));
			yield return (object)new WaitUntil((Func<bool>)(() => ServiceLocator.GetService<ISaveLoaderService>() != null));
			Debug.Log((object)"Loading WinterFest!");
			SLMALoader.GetInstance();
			LandfallContentDatabase landfallContentDatabase = ContentDatabase.Instance().LandfallContentDatabase;
			Utilities.bundle = (assetBundle = LoadBundle("winterfestassetsbundle"));
			sceneBundle = LoadBundle("winterfestscenesbundle");
			List<MapAsset> list = ((MapAsset[])typeof(LandfallContentDatabase).GetField("m_orderedMapAssets", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(landfallContentDatabase)).ToList();
			Dictionary<DatabaseID, int> dictionary = (Dictionary<DatabaseID, int>)typeof(LandfallContentDatabase).GetField("m_mapAssetIndexLookup", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(landfallContentDatabase);
			foreach (MapAsset allMapAsset in GetAllMapAssets(assetBundle))
			{
				if (!list.Contains(allMapAsset) && !dictionary.ContainsKey(allMapAsset.Entity.GUID))
				{
					list.Add(allMapAsset);
					dictionary.Add(allMapAsset.Entity.GUID, list.IndexOf(allMapAsset));
					Debug.Log((object)("Added the map asset named " + allMapAsset.MapName));
				}
			}
			foreach (SoundBank allSoundBank in GetAllSoundBanks(assetBundle))
			{
				if (((Object)allSoundBank).name.Contains("Sound"))
				{
					SoundBank soundBank = ServiceLocator.GetService<SoundPlayer>().soundBank;
					SoundBankCategory[] categories = allSoundBank.Categories;
					for (int i = 0; i < categories.Length; i++)
					{
						categories[i].categoryMixerGroup = soundBank.Categories[0].categoryMixerGroup;
					}
					List<SoundBankCategory> list2 = soundBank.Categories.ToList();
					list2.AddRange(allSoundBank.Categories);
					soundBank.Categories = list2.ToArray();
				}
				if (!((Object)allSoundBank).name.Contains("Music"))
				{
					continue;
				}
				SoundBank bank = ServiceLocator.GetService<MusicHandler>().bank;
				List<SoundBankCategory> list3 = bank.Categories.ToList();
				list3.AddRange(allSoundBank.Categories);
				SoundBankCategory[] categories2 = allSoundBank.Categories;
				foreach (SoundBankCategory val in categories2)
				{
					SoundEffectInstance[] soundEffects = val.soundEffects;
					foreach (SoundEffectInstance val2 in soundEffects)
					{
						SongInstance val3 = new SongInstance();
						val3.clip = val2.clipTypes[0].clips[0];
						val3.soundEffectInstance = val2;
						val3.songRef = val.categoryName + "/" + val2.soundRef;
						ServiceLocator.GetService<MusicHandler>().m_songs.Add(val3.songRef, val3);
					}
				}
				bank.Categories = list3.ToArray();
			}
			typeof(LandfallContentDatabase).GetField("m_orderedMapAssets", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(landfallContentDatabase, list.ToArray());
			typeof(LandfallContentDatabase).GetField("m_mapAssetIndexLookup", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(landfallContentDatabase, dictionary);
			UManager.Init(landfallContentDatabase);
			GameObject[] array = Resources.FindObjectsOfTypeAll<GameObject>();
			for (int l = 0; l < array.Length; l++)
			{
				if (Object.op_Implicit((Object)(object)array[l].GetComponent<PropItem>()))
				{
					UManager.SetClothes(array[l], landfallContentDatabase);
				}
				if (Object.op_Implicit((Object)(object)array[l].GetComponent<Unit>()))
				{
					UManager.SetUnits(array[l].GetComponent<Unit>(), landfallContentDatabase);
				}
				if (Object.op_Implicit((Object)(object)array[l].GetComponent<Explosion>()))
				{
					UManager.SetExplosion(array[l]);
				}
				if (Object.op_Implicit((Object)(object)array[l].GetComponent<ProjectileHit>()))
				{
					UManager.SetProjectile(array[l], array[l].GetComponent<ProjectileHit>(), landfallContentDatabase);
				}
				if (Object.op_Implicit((Object)(object)array[l].GetComponent<WeaponItem>()))
				{
					UManager.SetWeapon(array[l], array[l].GetComponent<MeleeWeapon>(), array[l].GetComponent<RangeWeapon>(), landfallContentDatabase);
				}
				if (Object.op_Implicit((Object)(object)array[l].GetComponent<SpecialAbility>()))
				{
					UManager.SetMoves(array[l], landfallContentDatabase);
				}
				UManager.SetAllGameObject(array[l]);
			}
			UnitBlueprint[] array2 = Resources.FindObjectsOfTypeAll<UnitBlueprint>();
			for (int m = 0; m < array2.Length; m++)
			{
				UManager.SetBlueprint(array2[m], landfallContentDatabase);
				array2[m].Validate();
			}
			SceneManager.sceneLoaded += SceneLoaded;
			Debug.Log((object)"Loaded WinterFest Successfully!");
		}

		public void SceneLoaded(Scene scene, LoadSceneMode loadSceneMode)
		{
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Expected O, but got Unknown
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: 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_0299: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				if (((Scene)(ref scene)).name == "04_Sandbox_Viking_VC")
				{
					Object.Instantiate<GameObject>(Utilities.Utility.LoadBundleGameObject("WinternSecretProp"));
				}
				if (((Scene)(ref scene)).name == "WFLS_WinternLandscape")
				{
					RenderSettings.fog = false;
					RenderSettings.fogColor = Color.white;
					RenderSettings.fogStartDistance = 0f;
					RenderSettings.fogEndDistance = 100000f;
					RenderSettings.fogMode = (FogMode)2;
					RenderSettings.fogDensity = 0.5f;
					RenderSettings.ambientMode = (AmbientMode)3;
					RenderSettings.ambientLight = new Color(0.2f, 0.3f, 0.3f);
					QualitySettings.shadowProjection = (ShadowProjection)1;
					QualitySettings.shadowCascades = 4;
					QualitySettings.shadowCascade4Split = new Vector3(0.1f, 0.2f, 0.5f);
					QualitySettings.shadows = (ShadowQuality)2;
					QualitySettings.shadowResolution = (ShadowResolution)3;
					QualitySettings.shadowDistance = 400f;
				}
				if (!((Scene)(ref scene)).name.Contains("WFLS_"))
				{
					return;
				}
				GameObject val = null;
				MapSettings val2 = null;
				GameObject[] rootGameObjects = ((Scene)(ref scene)).GetRootGameObjects();
				foreach (GameObject val3 in rootGameObjects)
				{
					if (((Object)val3).name == "AStar")
					{
						val = val3;
					}
					if (Object.op_Implicit((Object)(object)val3.GetComponent<MapSettings>()))
					{
						val2 = val3.GetComponent<MapSettings>();
					}
					if (((Object)val3).name == "AddLightBehaviour")
					{
						val3.AddComponent<AddWinternLightZoneBehaviour>().lightObject = (GameObject)assetBundle.LoadAsset("WinterfestAttachUnitLight");
					}
				}
				if (!((Object)(object)val != (Object)null) || !((Object)(object)val2 != (Object)null))
				{
					return;
				}
				AstarPath componentInChildren = val.GetComponentInChildren<AstarPath>(true);
				if (!((Object)(object)componentInChildren != (Object)null))
				{
					return;
				}
				if (componentInChildren.data.graphs != null)
				{
					NavGraph[] graphs = componentInChildren.data.graphs;
					foreach (NavGraph val4 in graphs)
					{
						if (val4 != null)
						{
							componentInChildren.data.RemoveGraph(val4);
						}
					}
				}
				Debug.Log((object)"[Winterfest] Scanning graph for AstarPath.");
				NavGraph obj = componentInChildren.data.AddGraph(typeof(RecastGraph));
				RecastGraph val5 = (RecastGraph)(object)((obj is RecastGraph) ? obj : null);
				if (val5 != null)
				{
					float num = val2.m_mapRadius * 2f;
					((NavmeshBase)val5).forcedBoundsSize = new Vector3(num, num * val2.mapRadiusYMultiplier, num);
					val5.rasterizeTrees = true;
					val5.rasterizeMeshes = true;
					val5.rasterizeTerrain = true;
					val5.rasterizeColliders = true;
					val5.minRegionSize = num * num;
					val5.characterRadius = 0.3f;
					val5.walkableClimb = 1f;
					val5.walkableHeight = 1f;
					val5.cellSize = num * num;
					val5.mask = LayerMask.op_Implicit(LayerMask.GetMask(new string[1] { "Map" }));
					componentInChildren.Scan((NavGraph[])null);
				}
				Debug.Log((object)"[Winterfest] AstarPath graph scanned successfully.");
			}
			catch (Exception arg)
			{
				Debug.LogError((object)$"[Winterfest] SceneLoaded failed: {arg}");
			}
		}

		public AssetBundle LoadBundle(string assetBundleName)
		{
			Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(assetBundleName);
			if (manifestResourceStream == null)
			{
				return null;
			}
			if (!manifestResourceStream.CanRead)
			{
				return null;
			}
			return AssetBundle.LoadFromStream(manifestResourceStream);
		}

		private void ApplyHarmony()
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				new Harmony("WinterFest").PatchAll(Assembly.GetExecutingAssembly());
				Debug.Log((object)"[WinterFest] Harmony patched successfully!");
			}
			catch (Exception ex)
			{
				Debug.LogError((object)("[WinterFest] Harmony patch failed: " + ex));
				Debug.Log((object)"Please contact Geezt Jeez or try reloading the game for proper installation...");
			}
		}

		public static List<MapAsset> GetAllMapAssets(AssetBundle bundle)
		{
			List<MapAsset> list = new List<MapAsset>();
			if ((Object)(object)bundle == (Object)null)
			{
				Debug.LogWarning((object)"[AssetBundleUtils] Bundle is null!");
				return list;
			}
			string[] allAssetNames = bundle.GetAllAssetNames();
			foreach (string text in allAssetNames)
			{
				Object obj = bundle.LoadAsset(text, typeof(MapAsset));
				MapAsset val = (MapAsset)(object)((obj is MapAsset) ? obj : null);
				if ((Object)(object)val != (Object)null)
				{
					list.Add(val);
				}
			}
			Debug.Log((object)$"[AssetBundleUtils] Loaded {list.Count} MapAssets from bundle '{((Object)bundle).name}'.");
			return list;
		}

		public static List<SoundBank> GetAllSoundBanks(AssetBundle bundle)
		{
			List<SoundBank> list = new List<SoundBank>();
			if ((Object)(object)bundle == (Object)null)
			{
				Debug.LogWarning((object)"[AssetBundleUtils] Bundle is null!");
				return list;
			}
			string[] allAssetNames = bundle.GetAllAssetNames();
			foreach (string text in allAssetNames)
			{
				Object obj = bundle.LoadAsset(text, typeof(SoundBank));
				SoundBank val = (SoundBank)(object)((obj is SoundBank) ? obj : null);
				if ((Object)(object)val != (Object)null)
				{
					list.Add(val);
				}
			}
			Debug.Log((object)$"[AssetBundleUtils] Loaded {list.Count} SoundBanks from bundle '{((Object)bundle).name}'.");
			return list;
		}

		private void LateUpdate()
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			Scene activeScene = SceneManager.GetActiveScene();
			if (!((Scene)(ref activeScene)).name.Contains("WFLS_"))
			{
				return;
			}
			float farClipPlane = 100000f;
			if ((Object)(object)Camera.main != (Object)null)
			{
				Camera.main.farClipPlane = farClipPlane;
			}
			Camera[] allCameras = Camera.allCameras;
			foreach (Camera val in allCameras)
			{
				if ((Object)(object)val != (Object)null)
				{
					val.farClipPlane = farClipPlane;
				}
			}
		}
	}
}
namespace WinterfestFunctions
{
	public class SwingStarrFallBehaviour : MonoBehaviour
	{
		private MeleeWeapon weapon;

		private Unit unit;

		public float counter;

		public Vector3 position;

		public GameObject explosion;

		public int spawnAmount = 5;

		public float cooldown = 1f;

		public void Start()
		{
			weapon = ((Component)this).GetComponentInChildren<MeleeWeapon>();
			unit = ((Component)((Component)this).transform.root).GetComponentInChildren<Unit>();
		}

		public void Update()
		{
			//IL_0082: 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_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_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Expected O, but got Unknown
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			if (!Object.op_Implicit((Object)(object)weapon) || !Object.op_Implicit((Object)(object)unit) || !Object.op_Implicit((Object)(object)unit.data) || unit.data.Dead)
			{
				return;
			}
			counter += Time.deltaTime;
			if (counter >= cooldown && weapon.isSwinging)
			{
				counter = 0f;
				TeamHolder val = new TeamHolder
				{
					team = unit.Team,
					spawner = ((Component)unit).gameObject
				};
				for (int i = 0; i < spawnAmount; i++)
				{
					TeamHolder.AddTeamHolder(Object.Instantiate<GameObject>(explosion, RandomVector3Strike(), Quaternion.identity, (Transform)null), unit, val);
				}
			}
		}

		private Vector3 RandomVector3Strike(float offset = 40f)
		{
			//IL_0010: 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_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			float num = unit.data.mainRig.position.x + Random.Range(0f - offset, offset);
			float num2 = unit.data.mainRig.position.y + offset;
			float num3 = unit.data.mainRig.position.z + Random.Range(0f - offset, offset);
			return new Vector3(num, num2, num3);
		}
	}
	public class StormLineEditor : MonoBehaviour
	{
		public float highestY = 6000000f;

		public float lowestY = -6000000f;

		private void Update()
		{
			//IL_0052: 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)
			((Component)((Component)((Component)((Component)this).transform.FindChild("Storm")).gameObject.transform.FindChild("LineEffect")).gameObject.transform.FindChild("T1")).gameObject.transform.localPosition = new Vector3(0f, 0f, highestY);
			((Component)((Component)((Component)((Component)this).transform.FindChild("Storm")).gameObject.transform.FindChild("LineEffect")).gameObject.transform.FindChild("T2")).gameObject.transform.localPosition = new Vector3(0f, 0f, lowestY);
		}
	}
	public class StarrProjEnlargeBehaviour : MonoBehaviour
	{
		public GameObject explosion;

		private float delay = 1f;

		public float counter;

		public float cooldown = 0.05f;

		public float enlargeRate = 0.2f;

		public string soundEffect = "Effects/VoidMonarchTransformation";

		public float pitch = 1f;

		public float volume = 1f;

		public void Update()
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			Enlarge();
			ServiceLocator.GetService<SoundPlayer>().PlaySoundEffect(soundEffect, volume, ((Component)this).transform.position, (MaterialType)0, ((Component)this).gameObject.transform, pitch);
		}

		private void Enlarge()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: 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)
			counter += Time.deltaTime;
			if (counter >= cooldown)
			{
				Transform transform = ((Component)this).transform;
				transform.localScale += Vector3.one * enlargeRate;
			}
		}

		public IEnumerator<WaitForSeconds> StarrShatterExplosion(float delay, GameObject explosion)
		{
			yield return new WaitForSeconds(delay);
			TeamHolder.AddTeamHolder(Object.Instantiate<GameObject>(explosion, ((Component)this).transform.position, Quaternion.identity), ((Component)this).gameObject);
			Object.Destroy((Object)(object)((Component)this).gameObject);
		}

		public void Start()
		{
			((MonoBehaviour)this).StartCoroutine((IEnumerator)StarrShatterExplosion(delay, explosion));
		}
	}
	public class DopamineOverdoseBehaviour : MonoBehaviour
	{
		private Unit unit;

		private float counter;

		public void Start()
		{
			unit = ((Component)((Component)this).transform.root).GetComponentInChildren<Unit>();
		}

		public void Update()
		{
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)unit) && Object.op_Implicit((Objec