Decompiled source of Sandswept v0.8.1

Sandswept.dll

Decompiled 5 months 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.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using EntityStates;
using EntityStates.Bandit2;
using EntityStates.Croco;
using EntityStates.Mage.Weapon;
using HG;
using HG.Reflection;
using HarmonyLib;
using IL.RoR2;
using JetBrains.Annotations;
using Microsoft.CodeAnalysis;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using On.EntityStates.Mage.Weapon;
using On.RoR2;
using R2API;
using R2API.Utils;
using RoR2;
using RoR2.Achievements;
using RoR2.Audio;
using RoR2.ContentManagement;
using RoR2.EntitlementManagement;
using RoR2.EntityLogic;
using RoR2.ExpansionManagement;
using RoR2.HudOverlay;
using RoR2.Navigation;
using RoR2.Projectile;
using RoR2.Skills;
using RoR2.UI;
using Sandswept.Artifact;
using Sandswept.Buffs;
using Sandswept.Elites;
using Sandswept.Equipment;
using Sandswept.Items;
using Sandswept.Skills.Ranger;
using Sandswept.Survivors;
using Sandswept.Survivors.Ranger.Crosshairs;
using Sandswept.Survivors.Ranger.Hooks;
using Sandswept.Survivors.Ranger.Pod;
using Sandswept.Survivors.Ranger.Projectiles;
using Sandswept.Survivors.Ranger.Skilldefs;
using Sandswept.Survivors.Ranger.States;
using Sandswept.Survivors.Ranger.VFX;
using Sandswept.Utils;
using Sandswept.Utils.Assets;
using Sandswept.Utils.Components;
using TMPro;
using ThreeEyedGames;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Audio;
using UnityEngine.Events;
using UnityEngine.Networking;
using UnityEngine.Rendering;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
[assembly: AssemblyCompany("Sandswept")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Sandswept")]
[assembly: AssemblyTitle("Sandswept")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace Sandswept
{
	internal static class Log
	{
		internal static ManualLogSource _logSource;

		internal static void Init(ManualLogSource logSource)
		{
			_logSource = logSource;
		}

		internal static void LogDebug(object data)
		{
			_logSource.LogDebug(data);
		}

		internal static void LogError(object data)
		{
			_logSource.LogError(data);
		}

		internal static void LogFatal(object data)
		{
			_logSource.LogFatal(data);
		}

		internal static void LogInfo(object data)
		{
			_logSource.LogInfo(data);
		}

		internal static void LogMessage(object data)
		{
			_logSource.LogMessage(data);
		}

		internal static void LogWarning(object data)
		{
			_logSource.LogWarning(data);
		}
	}
	[BepInPlugin("com.TeamSandswept.Sandswept", "Sandswept", "0.8.1")]
	[BepInDependency("com.bepis.r2api.skins", "1.0.0")]
	[BepInDependency("com.bepis.r2api.dot", "1.0.0")]
	[BepInDependency("com.bepis.r2api.items", "1.0.1")]
	[BepInDependency("com.bepis.r2api.elites", "1.0.1")]
	[BepInDependency("com.bepis.r2api.damagetype", "1.0.3")]
	[BepInDependency("com.bepis.r2api.prefab", "1.0.1")]
	[BepInDependency("com.bepis.r2api.language", "1.0.0")]
	[BepInDependency("com.bepis.r2api.recalculatestats", "1.2.0")]
	[BepInDependency("com.bepis.r2api.content_management", "1.0.1")]
	[BepInDependency("com.bepis.r2api.networking", "1.0.2")]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	public class Main : BaseUnityPlugin
	{
		public const string ModGuid = "com.TeamSandswept.Sandswept";

		public const string ModName = "Sandswept";

		public const string ModVer = "0.8.1";

		public static AssetBundle MainAssets;

		public static AssetBundle Assets;

		public static AssetBundle prodAssets;

		public static AssetBundle hifuSandswept;

		public static ModdedDamageType HeatSelfDamage = DamageAPI.ReserveDamageType();

		public static Dictionary<string, string> ShaderLookup = new Dictionary<string, string>
		{
			{ "StubbedShader/deferred/hgstandard", "shaders/deferred/hgstandard" },
			{ "stubbed hopoo games/fx/hgcloud intersection remap", "shaders/fx/hgintersectioncloudremap" },
			{ "stubbed hopoo games/fx/hgcloud remap", "shaders/fx/hgcloudremap" },
			{ "stubbed hopoo games/fx/hgdistortion", "shaders/fx/hgdistortion" },
			{ "stubbed hopoo games/deferred/hgsnow topped", "shaders/deferred/hgsnowtopped" },
			{ "stubbed hopoo games/fx/hgsolid parallax", "shaders/fx/hgsolidparallax" }
		};

		public List<ArtifactBase> Artifacts = new List<ArtifactBase>();

		public List<ItemBase> Items = new List<ItemBase>();

		public List<EquipmentBase> Equipments = new List<EquipmentBase>();

		public List<BuffBase> Buffs = new List<BuffBase>();

		public List<EliteEquipmentBase> EliteEquipments = new List<EliteEquipmentBase>();

		public static List<UnlockableDef> Unlocks = new List<UnlockableDef>();

		public static List<GameObject> EffectPrefabs = new List<GameObject>();

		public static Dictionary<BuffBase, bool> BuffStatusDictionary = new Dictionary<BuffBase, bool>();

		public static ManualLogSource ModLogger;

		public static ConfigFile config;

		public static ConfigFile backupConfig;

		public static ConfigEntry<bool> enableLogging { get; set; }

		public ConfigEntry<bool> enableAutoConfig { get; private set; }

		public ConfigEntry<string> latestVersion { get; private set; }

		private void Awake()
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Expected O, but got Unknown
			//IL_0247: 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_03ab: Unknown result type (might be due to invalid IL or missing references)
			Stopwatch stopwatch = Stopwatch.StartNew();
			ModLogger = ((BaseUnityPlugin)this).Logger;
			config = ((BaseUnityPlugin)this).Config;
			backupConfig = new ConfigFile(Paths.ConfigPath + "\\com.TeamSandswept.Sandswept.Backup.cfg", true);
			backupConfig.Bind<string>(": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :");
			enableAutoConfig = config.Bind<bool>("Config", "Enable Auto Config Sync", true, "Disabling this would stop Sandswept from syncing config whenever a new version is found.");
			bool flag = !((Dictionary<ConfigDefinition, string>)AccessTools.DeclaredPropertyGetter(typeof(ConfigFile), "OrphanedEntries").Invoke(config, null)).Keys.Any((ConfigDefinition x) => x.Key == "Latest Version");
			latestVersion = config.Bind<string>("Config", "Latest Version", "0.8.1", "DO NOT CHANGE THIS");
			if (enableAutoConfig.Value && (flag || latestVersion.Value != "0.8.1"))
			{
				latestVersion.Value = "0.8.1";
				ConfigManager.VersionChanged = true;
				ModLogger.LogInfo((object)"Config Autosync Enabled.");
			}
			Assets = AssetBundle.LoadFromFile(Assembly.GetExecutingAssembly().Location.Replace("Sandswept.dll", "sandsweptassets2"));
			prodAssets = AssetBundle.LoadFromFile(Assembly.GetExecutingAssembly().Location.Replace("Sandswept.dll", "sandsweep3"));
			hifuSandswept = AssetBundle.LoadFromFile(Assembly.GetExecutingAssembly().Location.Replace("Sandswept.dll", "hifusandswept"));
			RangerPod.Init();
			Ranger.Init();
			InitVFX.Init();
			Eclipse8.Init();
			Sandswept.Survivors.Ranger.Projectiles.DirectCurrent.Init();
			ChargeGain.Init();
			AutoRunCollector.HandleAutoRun();
			ConfigManager.HandleConfigAttributes(Assembly.GetExecutingAssembly(), ((BaseUnityPlugin)this).Config);
			using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Sandswept.sandsweptassets"))
			{
				MainAssets = AssetBundle.LoadFromStream(stream);
			}
			SwapAllShaders(MainAssets);
			Material val = Assets.LoadAsset<Material>("matRanger.mat");
			val.shader = Shader.HGStandard;
			val.SetColor("_EmColor", Color.white);
			val.SetFloat("_EmPower", 2.5f);
			val.EnableKeyword("DITHER");
			SwapAllShaders(prodAssets);
			SwapAllShaders(hifuSandswept);
			DamageColourHelper.Init();
			Material val2 = Object.Instantiate<Material>(Material.matHealingPotionGlass);
			val2.SetFloat("_Boost", 0.25f);
			val2.SetFloat("_RimPower", 1.706559f);
			val2.SetFloat("_RimStrength", 3.538423f);
			val2.SetFloat("_AlphaBoost", 1.147384f);
			val2.SetFloat("IntersectionStrength", 1f);
			GameObject val3 = hifuSandswept.LoadAsset<GameObject>("Assets/Sandswept/RedSpringWaterHolder.prefab");
			Transform child = val3.transform.GetChild(0);
			MeshRenderer component = ((Component)child.GetChild(0)).GetComponent<MeshRenderer>();
			((Renderer)component).material = val2;
			GameObject val4 = MainAssets.LoadAsset<GameObject>("SunFragmentPrefab.prefab");
			Material material = ((Renderer)((Component)val4.transform.GetChild(0)).GetComponent<MeshRenderer>()).material;
			material.SetFloat("_NormalStrength", 0.8263923f);
			GameObject val5 = MainAssets.LoadAsset<GameObject>("UniVIPPrefab.prefab");
			Material material2 = ((Renderer)((Component)val5.transform.GetChild(0)).GetComponent<MeshRenderer>()).material;
			material2.SetColor("_Color", Color32.op_Implicit(new Color32((byte)205, (byte)205, (byte)205, (byte)249)));
			IEnumerable<Type> enumerable = from type in Assembly.GetExecutingAssembly().GetTypes()
				where !type.IsAbstract && type.IsSubclassOf(typeof(ArtifactBase))
				select type;
			foreach (Type item in enumerable)
			{
				ArtifactBase artifactBase = (ArtifactBase)Activator.CreateInstance(item);
				if (ValidateArtifact(artifactBase, Artifacts))
				{
					artifactBase.Init(((BaseUnityPlugin)this).Config);
				}
			}
			IEnumerable<Type> enumerable2 = from type in Assembly.GetExecutingAssembly().GetTypes()
				where !type.IsAbstract && type.IsSubclassOf(typeof(ItemBase))
				select type;
			foreach (Type item2 in enumerable2)
			{
				ItemBase itemBase = (ItemBase)Activator.CreateInstance(item2);
				if (ValidateItem(itemBase, Items))
				{
					itemBase.Init(((BaseUnityPlugin)this).Config);
				}
			}
			IEnumerable<Type> enumerable3 = from type in Assembly.GetExecutingAssembly().GetTypes()
				where !type.IsAbstract && type.IsSubclassOf(typeof(EquipmentBase))
				select type;
			foreach (Type item3 in enumerable3)
			{
				EquipmentBase equipmentBase = (EquipmentBase)Activator.CreateInstance(item3);
				if (ValidateEquipment(equipmentBase, Equipments))
				{
					equipmentBase.Init(((BaseUnityPlugin)this).Config);
				}
			}
			IEnumerable<Type> enumerable4 = from type in Assembly.GetExecutingAssembly().GetTypes()
				where !type.IsAbstract && type.IsSubclassOf(typeof(EliteEquipmentBase))
				select type;
			foreach (Type item4 in enumerable4)
			{
				EliteEquipmentBase eliteEquipmentBase = (EliteEquipmentBase)Activator.CreateInstance(item4);
				if (ValidateEliteEquipment(eliteEquipmentBase, EliteEquipments))
				{
					eliteEquipmentBase.Init(((BaseUnityPlugin)this).Config);
				}
			}
			IEnumerable<Type> enumerable5 = from type in Assembly.GetExecutingAssembly().GetTypes()
				where !type.IsAbstract && type.IsSubclassOf(typeof(BuffBase))
				select type;
			foreach (Type item5 in enumerable5)
			{
				BuffBase buffBase = (BuffBase)Activator.CreateInstance(item5);
				if (ValidateBuff(buffBase, Buffs))
				{
					buffBase.Init();
				}
			}
			ScanTypes(delegate(SkillBase x)
			{
				x.Init();
			});
			ScanTypes(delegate(SurvivorBase x)
			{
				x.Init();
			});
			new ContentPacks().Initialize();
			ModLogger.LogDebug((object)"#SANDSWEEP");
			ModLogger.LogDebug((object)("Initialized mod in " + stopwatch.ElapsedMilliseconds + "ms"));
		}

		internal static void ScanTypes<T>(Action<T> action)
		{
			IEnumerable<Type> enumerable = from x in Assembly.GetExecutingAssembly().GetTypes()
				where !x.IsAbstract && x.IsSubclassOf(typeof(T))
				select x;
			foreach (Type item in enumerable)
			{
				T obj = (T)Activator.CreateInstance(item);
				action(obj);
			}
		}

		public bool ValidateArtifact(ArtifactBase artifact, List<ArtifactBase> artifactList)
		{
			bool flag = ArtifactBase.DefaultEnabledCallback(artifact);
			if (flag)
			{
				artifactList.Add(artifact);
			}
			return flag;
		}

		public bool ValidateItem(ItemBase item, List<ItemBase> itemList)
		{
			bool flag = ItemBase.DefaultEnabledCallback(item);
			if (flag)
			{
				itemList.Add(item);
			}
			return flag;
		}

		public bool ValidateEquipment(EquipmentBase equipment, List<EquipmentBase> equipmentList)
		{
			if (EquipmentBase.DefaultEnabledCallback(equipment))
			{
				equipmentList.Add(equipment);
				return true;
			}
			return false;
		}

		public bool ValidateEliteEquipment(EliteEquipmentBase eliteEquipment, List<EliteEquipmentBase> eliteEquipmentList)
		{
			if (EliteEquipmentBase.DefaultEnabledCallback(eliteEquipment))
			{
				eliteEquipmentList.Add(eliteEquipment);
				return true;
			}
			return false;
		}

		public bool ValidateBuff(BuffBase buff, List<BuffBase> buffList)
		{
			BuffStatusDictionary.Add(buff, value: true);
			buffList.Add(buff);
			return true;
		}

		public void SwapAllShaders(AssetBundle bundle)
		{
			Material[] array = bundle.LoadAllAssets<Material>();
			Material[] array2 = array;
			foreach (Material val in array2)
			{
				switch (((Object)val.shader).name)
				{
				case "Stubbed Hopoo Games/Deferred/Standard":
					val.shader = Resources.Load<Shader>("shaders/deferred/hgstandard");
					break;
				case "StubbedShader/deferred/hgstandard":
					val.shader = Shader.HGStandard;
					break;
				case "StubbedShader/fx/hgintersectioncloudremap":
					val.shader = Resources.Load<Shader>("shaders/fx/hgintersectioncloudremap");
					break;
				case "Stubbed Hopoo Games/Deferred/Snow Topped":
					val.shader = Resources.Load<Shader>("shaders/deferred/hgsnowtopped");
					break;
				case "Stubbed Hopoo Games/FX/Cloud Remap":
					val.shader = Resources.Load<Shader>("shaders/fx/hgcloudremap");
					break;
				case "Stubbed Hopoo Games/FX/Cloud Intersection Remap":
					val.shader = Resources.Load<Shader>("shaders/fx/hgintersectioncloudremap");
					break;
				case "Stubbed Hopoo Games/FX/Opaque Cloud Remap":
					val.shader = Resources.Load<Shader>("shaders/fx/hgopaquecloudremap");
					break;
				case "Stubbed Hopoo Games/FX/Distortion":
					val.shader = Resources.Load<Shader>("shaders/fx/hgdistortion");
					break;
				case "Stubbed Hopoo Games/FX/Solid Parallax":
					val.shader = Resources.Load<Shader>("shaders/fx/hgsolidparallax");
					break;
				case "Stubbed Hopoo Games/Environment/Distant Water":
					val.shader = Resources.Load<Shader>("shaders/environment/hgdistantwater");
					break;
				}
			}
		}
	}
	[AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
	public class ConfigFieldAttribute : SearchableAttribute
	{
		public string name;

		public string desc;

		public object defaultValue;

		public ConfigFieldAttribute(string name, string desc, object defaultValue)
		{
			this.name = name;
			this.desc = desc;
			this.defaultValue = defaultValue;
		}
	}
	[AttributeUsage(AttributeTargets.Class)]
	public class ConfigSectionAttribute : Attribute
	{
		public string name;

		public ConfigSectionAttribute(string name)
		{
			this.name = name;
		}
	}
	public class ConfigManager
	{
		internal static bool ConfigChanged;

		internal static bool VersionChanged;

		public static void HandleConfigAttributes(Assembly assembly, ConfigFile config)
		{
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Expected O, but got Unknown
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: Expected O, but got Unknown
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Expected O, but got Unknown
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0161: Expected O, but got Unknown
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Expected O, but got Unknown
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Expected O, but got Unknown
			Type[] types = assembly.GetTypes();
			foreach (Type type in types)
			{
				TypeInfo typeInfo = type.GetTypeInfo();
				ConfigSectionAttribute customAttribute = typeInfo.GetCustomAttribute<ConfigSectionAttribute>();
				if (customAttribute == null)
				{
					continue;
				}
				FieldInfo[] fields = typeInfo.GetFields();
				foreach (FieldInfo fieldInfo in fields)
				{
					if (!fieldInfo.IsStatic)
					{
						continue;
					}
					Type fieldType = fieldInfo.FieldType;
					ConfigFieldAttribute customAttribute2 = ((MemberInfo)fieldInfo).GetCustomAttribute<ConfigFieldAttribute>();
					if (customAttribute2 != null)
					{
						MethodInfo methodInfo = (from x in typeof(ConfigFile).GetMethods()
							where x.Name == "Bind"
							select x).First();
						methodInfo = methodInfo.MakeGenericMethod(fieldType);
						ConfigEntryBase val = (ConfigEntryBase)methodInfo.Invoke(config, new object[3]
						{
							(object)new ConfigDefinition(customAttribute.name, customAttribute2.name),
							customAttribute2.defaultValue,
							(object)new ConfigDescription(customAttribute2.desc, (AcceptableValueBase)null, Array.Empty<object>())
						});
						ConfigEntryBase val2 = (ConfigEntryBase)methodInfo.Invoke(Main.backupConfig, new object[3]
						{
							(object)new ConfigDefinition(Regex.Replace(config.ConfigFilePath, "\\W", "") + " : " + customAttribute.name, customAttribute2.name),
							val.DefaultValue,
							(object)new ConfigDescription(customAttribute2.desc, (AcceptableValueBase)null, Array.Empty<object>())
						});
						if (!ConfigEqual(val2.DefaultValue, val2.BoxedValue) && VersionChanged)
						{
							val.BoxedValue = val.DefaultValue;
							val2.BoxedValue = val2.DefaultValue;
						}
						if (!ConfigEqual(val.DefaultValue, val.BoxedValue))
						{
							ConfigChanged = true;
						}
						fieldInfo.SetValue(null, val.BoxedValue);
					}
				}
			}
		}

		private static bool ConfigEqual(object a, object b)
		{
			if (a.Equals(b))
			{
				return true;
			}
			if (float.TryParse(a.ToString(), out var result) && float.TryParse(b.ToString(), out var result2) && (double)Mathf.Abs(result - result2) < 0.0001)
			{
				return true;
			}
			return false;
		}
	}
}
namespace Sandswept.Utils
{
	[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
	internal sealed class AutoRunAttribute : Attribute
	{
	}
	internal sealed class AutoRunCollector
	{
		public static void HandleAutoRun()
		{
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				TypeInfo typeInfo = type.GetTypeInfo();
				MethodInfo[] methods = typeInfo.GetMethods((BindingFlags)(-1));
				foreach (MethodInfo methodInfo in methods)
				{
					AutoRunAttribute customAttribute = methodInfo.GetCustomAttribute<AutoRunAttribute>();
					if (customAttribute != null && methodInfo.IsStatic)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
		}
	}
	public static class ConfigExtension
	{
		public static ConfigOption<T> ActiveBind<T>(this ConfigFile configWrapper, string categoryName, string configOptionName, T defaultValue, string fullDescription)
		{
			return new ConfigOption<T>(configWrapper, categoryName, configOptionName, defaultValue, fullDescription);
		}
	}
	public class ConfigOption<T>
	{
		private ConfigEntry<T> Bind;

		public ConfigOption(ConfigFile config, string categoryName, string configOptionName, T defaultValue, string fullDescription)
		{
			Bind = config.Bind<T>(categoryName, configOptionName, defaultValue, fullDescription);
		}

		public static implicit operator T(ConfigOption<T> x)
		{
			return x.Bind.Value;
		}

		public override string ToString()
		{
			return Bind.Value.ToString();
		}
	}
	public class ContentPacks : IContentPackProvider
	{
		internal ContentPack contentPack = new ContentPack();

		public string identifier => "Sandswept";

		public void Initialize()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders);
		}

		private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider)
		{
			addContentPackProvider.Invoke((IContentPackProvider)(object)this);
		}

		public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args)
		{
			contentPack.identifier = identifier;
			contentPack.unlockableDefs.Add(Main.Unlocks.ToArray());
			contentPack.effectDefs.Add(Main.EffectPrefabs.ConvertAll((Converter<GameObject, EffectDef>)((GameObject x) => new EffectDef(x))).ToArray());
			args.ReportProgress(1f);
			yield break;
		}

		public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args)
		{
			ContentPack.Copy(contentPack, args.output);
			args.ReportProgress(1f);
			yield break;
		}

		public IEnumerator FinalizeAsync(FinalizeAsyncArgs args)
		{
			args.ReportProgress(1f);
			yield break;
		}
	}
	public static class DamageColourHelper
	{
		[CompilerGenerated]
		private static class <>O
		{
			public static hook_FindColor <0>__DamageColor_FindColor;
		}

		public static List<DamageColorIndex> registeredColorIndicies = new List<DamageColorIndex>();

		internal static void Init()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Expected O, but got Unknown
			object obj = <>O.<0>__DamageColor_FindColor;
			if (obj == null)
			{
				hook_FindColor val = DamageColor_FindColor;
				<>O.<0>__DamageColor_FindColor = val;
				obj = (object)val;
			}
			DamageColor.FindColor += (hook_FindColor)obj;
		}

		private static Color DamageColor_FindColor(orig_FindColor orig, DamageColorIndex colorIndex)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			if (registeredColorIndicies.Contains(colorIndex))
			{
				return DamageColor.colors[colorIndex];
			}
			return orig.Invoke(colorIndex);
		}

		public static DamageColorIndex RegisterDamageColor(Color color)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			int num = DamageColor.colors.Length;
			DamageColorIndex val = (DamageColorIndex)(byte)num;
			ArrayUtils.ArrayAppend<Color>(ref DamageColor.colors, ref color);
			registeredColorIndicies.Add(val);
			return val;
		}
	}
	public static class CharacterExtensions
	{
		public static bool HasSkillEquipped(this CharacterBody body, SkillDef skill)
		{
			GenericSkill[] components = ((Component)body).GetComponents<GenericSkill>();
			foreach (GenericSkill val in components)
			{
				if ((Object)(object)val.skillDef == (Object)(object)skill)
				{
					return true;
				}
			}
			return false;
		}

		public static void ClearInventory(this CharacterBody body)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: 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)
			if (!Object.op_Implicit((Object)(object)body.inventory))
			{
				return;
			}
			List<ItemDef> list = new List<ItemDef>();
			foreach (ItemIndex item in body.inventory.itemAcquisitionOrder)
			{
				ItemDef itemDef = ItemCatalog.GetItemDef(item);
				list.Add(itemDef);
			}
			foreach (ItemDef item2 in list)
			{
				body.inventory.RemoveItem(item2, body.inventory.GetItemCount(item2));
			}
		}

		public static void ClearInventory(this CharacterBody body, bool hidden)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: 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)
			if (!Object.op_Implicit((Object)(object)body.inventory))
			{
				return;
			}
			List<ItemDef> list = new List<ItemDef>();
			foreach (ItemIndex item in body.inventory.itemAcquisitionOrder)
			{
				ItemDef itemDef = ItemCatalog.GetItemDef(item);
				if (hidden)
				{
					list.Add(itemDef);
				}
				else if (!itemDef.hidden)
				{
					list.Add(itemDef);
				}
			}
			foreach (ItemDef item2 in list)
			{
				body.inventory.RemoveItem(item2, body.inventory.GetItemCount(item2));
			}
		}
	}
	public static class EnumeratorExtensions
	{
		public static T GetRandom<T>(this IEnumerable<T> self)
		{
			return self.ElementAt(Random.Range(0, self.Count()));
		}

		public static T GetRandom<T>(this IEnumerable<T> self, Xoroshiro128Plus rng)
		{
			return self.ElementAt(rng.RangeInt(0, self.Count()));
		}

		public static T GetRandom<T>(this IEnumerable<T> self, Func<T, bool> predicate)
		{
			try
			{
				return self.Where(predicate).ElementAt(Random.Range(0, self.Count()));
			}
			catch
			{
				return default(T);
			}
		}

		public static T GetRandom<T>(this IEnumerable<T> self, Xoroshiro128Plus rng, Func<T, bool> predicate)
		{
			try
			{
				return self.Where(predicate).ElementAt(rng.RangeInt(0, self.Count()));
			}
			catch
			{
				return default(T);
			}
		}
	}
	public static class StringExtensions
	{
		public static void Add(this string str, string text)
		{
			LanguageAPI.Add(str, text);
		}

		public static T Load<T>(this string str)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				return Addressables.LoadAssetAsync<T>((object)str).WaitForCompletion();
			}
			catch
			{
				return default(T);
			}
		}

		public static string RemoveUnsafeCharacters(this string str)
		{
			string[] array = new string[17]
			{
				"\n", "'", " ", "!", "`", "&", "-", ")", "(", "{",
				"}", "|", "@", "<", ">", ".", "\\"
			};
			string text = str;
			string[] array2 = array;
			foreach (string oldValue in array2)
			{
				text = text.Replace(oldValue, "");
			}
			return text;
		}

		public static string RemoveUnsafeCharacters(this string str, string[] unsafeChars)
		{
			string text = str;
			foreach (string oldValue in unsafeChars)
			{
				text = text.Replace(oldValue, "");
			}
			return text;
		}

		public static string AutoFormat(this string str)
		{
			return Formatter.FormatString(str);
		}
	}
	internal class Formatter
	{
		internal struct Format
		{
			public string match;

			public string expanded;
		}

		private static List<Format> formats = new List<Format>
		{
			new Format
			{
				match = "$su",
				expanded = "<style=cIsUtility>"
			},
			new Format
			{
				match = "$sd",
				expanded = "<style=cIsDamage>"
			},
			new Format
			{
				match = "$ss",
				expanded = "<style=cStack>"
			},
			new Format
			{
				match = "$sr",
				expanded = "<style=cDeath>"
			},
			new Format
			{
				match = "$sh",
				expanded = "<style=cIsHealing>"
			},
			new Format
			{
				match = "$se",
				expanded = "</style>"
			},
			new Format
			{
				match = "$rc",
				expanded = "<color=#36D7A9>"
			},
			new Format
			{
				match = "$ec",
				expanded = "</color>"
			},
			new Format
			{
				match = "$pc",
				expanded = "<color=#406096>"
			}
		};

		internal static string FormatString(string str)
		{
			foreach (Format format in formats)
			{
				str = str.Replace(format.match, format.expanded);
			}
			return str;
		}
	}
	public static class UnityExtensions
	{
		public static void RemoveComponent<T>(this GameObject self) where T : Component
		{
			Object.Destroy((Object)(object)self.GetComponent<T>());
		}

		public static void RemoveComponents<T>(this GameObject self) where T : Component
		{
			T[] components = self.GetComponents<T>();
			for (int i = 0; i < components.Length; i++)
			{
				Object.Destroy((Object)(object)components[i]);
			}
		}

		public static void RemoveComponent<T>(this Component self) where T : Component
		{
			Object.Destroy((Object)(object)self.GetComponent<T>());
		}

		public static void RemoveComponents<T>(this Component self) where T : Component
		{
			T[] components = self.GetComponents<T>();
			for (int i = 0; i < components.Length; i++)
			{
				Object.Destroy((Object)(object)components[i]);
			}
		}

		public static T AddComponent<T>(this Component self) where T : Component
		{
			return self.gameObject.AddComponent<T>();
		}

		public static Sprite MakeSprite(this Texture2D self)
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			return Sprite.Create(new Rect(0f, 0f, 512f, 512f), new Vector2(256f, 256f), 1f, self);
		}
	}
	[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
	public class HookAttribute : SearchableAttribute
	{
		public Type type;

		public string eventName;

		public HookAttribute(Type type, string eventName)
		{
			this.type = type;
			this.eventName = eventName;
		}
	}
	public class HookAttributeHandler
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static hook_OnLoad <>9__0_0;

			internal IEnumerator <Hook>b__0_0(orig_OnLoad orig, RoR2Application self)
			{
				Initialize();
				return orig.Invoke(self);
			}
		}

		[AutoRun]
		internal static void Hook()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Expected O, but got Unknown
			object obj = <>c.<>9__0_0;
			if (obj == null)
			{
				hook_OnLoad val = delegate(orig_OnLoad orig, RoR2Application self)
				{
					Initialize();
					return orig.Invoke(self);
				};
				<>c.<>9__0_0 = val;
				obj = (object)val;
			}
			RoR2Application.OnLoad += (hook_OnLoad)obj;
		}

		internal static void Initialize()
		{
			List<HookAttribute> list = new List<HookAttribute>();
			SearchableAttribute.GetInstances<HookAttribute>(list);
			foreach (HookAttribute item in list)
			{
				if ((((SearchableAttribute)item).target as MethodInfo).IsStatic)
				{
					EventInfo @event = item.type.GetEvent(item.eventName);
					Delegate handler = Delegate.CreateDelegate(@event.EventHandlerType, null, ((SearchableAttribute)item).target as MethodInfo);
					@event.AddEventHandler(@event.DeclaringType, handler);
				}
			}
		}
	}
	public static class ItemHelpers
	{
		public static RendererInfo[] ItemDisplaySetup(GameObject obj, bool debugmode = false)
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			List<Renderer> list = new List<Renderer>();
			MeshRenderer[] componentsInChildren = obj.GetComponentsInChildren<MeshRenderer>();
			if (componentsInChildren.Length != 0)
			{
				list.AddRange((IEnumerable<Renderer>)(object)componentsInChildren);
			}
			SkinnedMeshRenderer[] componentsInChildren2 = obj.GetComponentsInChildren<SkinnedMeshRenderer>();
			if (componentsInChildren2.Length != 0)
			{
				list.AddRange((IEnumerable<Renderer>)(object)componentsInChildren2);
			}
			RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[list.Count];
			for (int i = 0; i < list.Count; i++)
			{
				if (debugmode)
				{
					MaterialControllerComponents.HGControllerFinder hGControllerFinder = ((Component)list[i]).gameObject.AddComponent<MaterialControllerComponents.HGControllerFinder>();
					hGControllerFinder.Renderer = list[i];
				}
				array[i] = new RendererInfo
				{
					defaultMaterial = ((list[i] is SkinnedMeshRenderer) ? list[i].sharedMaterial : list[i].material),
					renderer = list[i],
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				};
			}
			return array;
		}

		public static string OrderManifestLoreFormatter(string deviceName, string estimatedDelivery, string sentTo, string trackingNumber, string devicePickupDesc, string shippingMethod, string orderDetails)
		{
			string[] value = new string[19]
			{
				"<align=left>Estimated Delivery:<indent=70%>Sent To:</indent></align>",
				"<align=left>" + estimatedDelivery + "<indent=70%>" + sentTo + "</indent></align>",
				"",
				"<indent=1%><style=cIsDamage><size=125%><u>  Shipping Details:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</u></size></style></indent>",
				"",
				"<indent=2%>-Order: <style=cIsUtility>" + deviceName + "</style></indent>",
				"<indent=4%><style=cStack>Tracking Number:  " + trackingNumber + "</style></indent>",
				"",
				"<indent=2%>-Order Description: " + devicePickupDesc + "</indent>",
				"",
				"<indent=2%>-Shipping Method: <style=cIsHealth>" + shippingMethod + "</style></indent>",
				"",
				"",
				"",
				"<indent=2%>-Order Details: " + orderDetails + "</indent>",
				"",
				"",
				"",
				"<style=cStack>Delivery being brought to you by the brand new </style><style=cIsUtility>Orbital Drop-Crate System (TM)</style>. <style=cStack><u>No refunds.</u></style>"
			};
			return string.Join("\n", value);
		}

		public static void RefreshTimedBuffs(CharacterBody body, BuffDef buffDef, float duration)
		{
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			if (!Object.op_Implicit((Object)(object)body) || body.GetBuffCount(buffDef) <= 0)
			{
				return;
			}
			foreach (TimedBuff timedBuff in body.timedBuffs)
			{
				if (buffDef.buffIndex == timedBuff.buffIndex)
				{
					timedBuff.timer = duration;
				}
			}
		}

		public static void RefreshTimedBuffs(CharacterBody body, BuffDef buffDef, float taperStart, float taperDuration)
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			if (!Object.op_Implicit((Object)(object)body) || body.GetBuffCount(buffDef) <= 0)
			{
				return;
			}
			int num = 0;
			foreach (TimedBuff timedBuff in body.timedBuffs)
			{
				if (buffDef.buffIndex == timedBuff.buffIndex)
				{
					timedBuff.timer = taperStart + (float)num * taperDuration;
					num++;
				}
			}
		}

		public static void AddBuffAndDot(BuffDef buff, float duration, int stackCount, CharacterBody body)
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Invalid comparison between Unknown and I4
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			if (!NetworkServer.active)
			{
				return;
			}
			DotIndex val = (DotIndex)Array.FindIndex(DotController.dotDefs, (DotDef dotDef) => (Object)(object)dotDef.associatedBuff == (Object)(object)buff);
			for (int i = 0; i < stackCount; i++)
			{
				if ((int)val != -1)
				{
					DotController.InflictDot(((Component)body).gameObject, ((Component)body).gameObject, val, duration, 0.25f, (uint?)null);
				}
				else
				{
					body.AddTimedBuff(buff.buffIndex, duration);
				}
			}
		}

		public static DotIndex FindAssociatedDotForBuff(BuffDef buff)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			return (DotIndex)Array.FindIndex(DotController.dotDefs, (DotDef dotDef) => (Object)(object)dotDef.associatedBuff == (Object)(object)buff);
		}
	}
	public static class Keywords
	{
		public static string Poison = "KEYWORD_POISON";

		public static string Regenerative = "KEYWORD_RAPID_REGEN";

		public static string Agile = "KEYWORD_AGILE";

		public static string HealthCost = "KEYWORD_PERCENT_HP";

		public static string Disperse = "KEYWORD_SONIC_BOOM";

		public static string Weak = "KEYWORD_WEAK";

		public static string Heavy = "KEYWORD_HEAVY";

		public static string Freeze = "KEYWORD_FREEZING";

		public static string Stun = "KEYWORD_STUNNING";

		public static string Expose = "KEYWORD_EXPOSE";

		public static string Shock = "KEYWORD_SHOCKING";

		public static string Slayer = "KEYWORD_SLAYER";

		public static string Hemorrhage = "KEYWORD_SUPERBLEED";

		public static string Ignite = "KEYWORD_IGNITE";

		public static string Weakpoint = "KEYWORD_WEAKPOINT";

		public static string ActiveReload = "KEYWORD_ACTIVERELOAD";

		public static string VoidCorruption = "KEYWORD_VOIDCORRUPTION";

		public static string OverdriveFormPrimary = "SANDSWEPT_KEYWORD_OVERDRIVE_PRIMARY";

		public static string OverdriveFormSecondary = "SANDSWEPT_KEYWORD_OVERDRIVE_SECONDARY";

		public static string OverdriveFormUtility = "SANDSWEPT_KEYWORD_OVERDRIVE_UTILITY";

		public static string OverdriveFormSpecial = "SANDSWEPT_KEYWORD_OVERDRIVE_SPECIAL";

		[AutoRun]
		public static void SetupKeywords()
		{
			OverdriveFormPrimary.Add("<style=cKeywordName>Overdriven Form</style><style=cIsUtility>Agile</style>. Fire a rapid stream of bullets for <style=cIsDamage>90% damage</style>. <style=cDeath>Heat increases spread and ignite chance</style>.");
			OverdriveFormSecondary.Add("<style=cKeywordName>Overdriven Form</style><style=cIsDamage>Ignite</style>. Fire a short-range heat burst for <style=cIsDamage>8x180% damage</style>. Increase <style=cDeath>heat</style> by <style=cDeath>15%</style>.");
			OverdriveFormUtility.Add("<style=cKeywordName>Overdriven Form</style><style=cIsUtility>Agile</style>. <style=cIsDamage>Stunning</style>. <style=cIsUtility>Sidestep</style> a very short distance and deal <style=cIsDamage>250% damage</style>. Hitting enemies generates <color=#36D7A9>3 Charge</style>.");
			OverdriveFormSpecial.Add("<style=cKeywordName>Overdriven Form</style><style=cIsUtility>Agile</style>. <style=cIsDamage>Ignite</style>. Release a <style=cIsDamage>fire nova</style> around you that deals <style=cIsDamage>300%</style> damage, increasing up to <style=cIsDamage>900%</style> in full heat. <style=cIsUtility>Consume all heat</style>, gaining an <style=cIsDamage>attack speed</style> boost, and <style=cDeath>exit overdrive</style>.");
		}
	}
	public static class MathHelpers
	{
		public static string FloatToPercentageString(float number, float numberBase = 100f)
		{
			return (number * numberBase).ToString("##0") + "%";
		}

		public static Vector3 ClosestPointOnSphereToPoint(Vector3 origin, float radius, Vector3 targetPosition)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			Vector3 val = targetPosition - origin;
			val = Vector3.Normalize(val);
			val *= radius;
			return origin + val;
		}

		public static List<Vector3> DistributePointsEvenlyAroundSphere(int points, float radius, Vector3 origin)
		{
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			List<Vector3> list = new List<Vector3>();
			double num = Math.PI * (3.0 - Math.Sqrt(5.0));
			for (int i = 0; i < points; i++)
			{
				int num2 = 1 - i / (points - 1) * 2;
				double num3 = Math.Sqrt(1 - num2 * num2);
				double num4 = num * (double)i;
				float num5 = (float)(Math.Cos(num4) * num3);
				float num6 = (float)(Math.Sin(num4) * num3);
				Vector3 val = origin + new Vector3(num5, (float)num2, num6);
				list.Add(val * radius);
			}
			return list;
		}

		public static List<Vector3> DistributePointsEvenlyAroundCircle(int points, float radius, Vector3 origin, float angleOffset = 0f)
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			List<Vector3> list = new List<Vector3>();
			Vector3 item = default(Vector3);
			for (int i = 0; i < points; i++)
			{
				double num = Math.PI * 2.0 / (double)points;
				double num2 = num * (double)i + (double)angleOffset;
				((Vector3)(ref item))..ctor((float)((double)radius * Math.Cos(num2) + (double)origin.x), origin.y, (float)((double)radius * Math.Sin(num2) + (double)origin.z));
				list.Add(item);
			}
			return list;
		}

		public static Vector3 GetPointOnUnitSphereCap(Quaternion targetDirection, float angle)
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: 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)
			float num = Random.Range(0f, angle) * (MathF.PI / 180f);
			Vector2 insideUnitCircle = Random.insideUnitCircle;
			Vector2 val = ((Vector2)(ref insideUnitCircle)).normalized * Mathf.Sin(num);
			Vector3 val2 = default(Vector3);
			((Vector3)(ref val2))..ctor(val.x, val.y, Mathf.Cos(num));
			return targetDirection * val2;
		}

		public static Vector3 GetPointOnUnitSphereCap(Vector3 targetDirection, float angle)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			return GetPointOnUnitSphereCap(Quaternion.LookRotation(targetDirection), angle);
		}

		public static Vector3 RandomPointOnCircle(Vector3 origin, float radius, Xoroshiro128Plus random)
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: 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)
			float num = random.RangeFloat(0f, MathF.PI * 2f);
			return origin + new Vector3(Mathf.Cos(num), 0f, Mathf.Sin(num)) * radius;
		}

		public static float InverseHyperbolicScaling(float baseValue, float additionalValue, float maxValue, int itemCount)
		{
			return baseValue + (maxValue - baseValue) * (1f - 1f / (1f + additionalValue * (float)(itemCount - 1)));
		}

		public static float CustomHyperbolic(float amplificationPercentage, float max = 100f)
		{
			return (1f - max / (max + amplificationPercentage)) * max;
		}
	}
	public static class MiscUtils
	{
		public static Vector3? RaycastToDirection(Vector3 position, float maxDistance, Vector3 direction, int layer)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			RaycastHit val = default(RaycastHit);
			if (Physics.Raycast(new Ray(position, direction), ref val, maxDistance, layer, (QueryTriggerInteraction)1))
			{
				return ((RaycastHit)(ref val)).point;
			}
			return null;
		}

		public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> toShuffle, Xoroshiro128Plus random)
		{
			List<T> list = new List<T>();
			foreach (T item in toShuffle)
			{
				list.Insert(random.RangeInt(0, list.Count + 1), item);
			}
			return list;
		}

		public static Vector3 FindClosestNodeToPosition(Vector3 position, HullClassification hullClassification, bool checkAirNodes = false)
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			NodeGraph val = (checkAirNodes ? SceneInfo.instance.airNodes : SceneInfo.instance.groundNodes);
			NodeIndex val2 = val.FindClosestNode(position, hullClassification, float.PositiveInfinity);
			if (val2 != NodeIndex.invalid)
			{
				Vector3 result = default(Vector3);
				val.GetNodePosition(val2, ref result);
				return result;
			}
			Main.ModLogger.LogInfo((object)$"No closest node to be found for XYZ: {position}, returning 0,0,0");
			return Vector3.zero;
		}

		public static bool TeleportBody(CharacterBody characterBody, GameObject target, GameObject teleportEffect, HullClassification hullClassification, Xoroshiro128Plus rng, float minDistance = 20f, float maxDistance = 45f, bool teleportAir = false)
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: 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_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Expected O, but got Unknown
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Expected O, but got Unknown
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			if (!Object.op_Implicit((Object)(object)characterBody))
			{
				return false;
			}
			SpawnCard val = ScriptableObject.CreateInstance<SpawnCard>();
			val.hullSize = hullClassification;
			val.nodeGraphType = (GraphType)(teleportAir ? 1 : 0);
			val.prefab = Resources.Load<GameObject>("SpawnCards/HelperPrefab");
			GameObject val2 = DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest(val, new DirectorPlacementRule
			{
				placementMode = (PlacementMode)1,
				position = target.transform.position,
				minDistance = minDistance,
				maxDistance = maxDistance
			}, rng));
			if (Object.op_Implicit((Object)(object)val2))
			{
				TeleportHelper.TeleportBody(characterBody, val2.transform.position);
				if (Object.op_Implicit((Object)(object)teleportEffect))
				{
					EffectManager.SimpleEffect(teleportEffect, val2.transform.position, Quaternion.identity, true);
				}
				Object.Destroy((Object)(object)val2);
				Object.Destroy((Object)(object)val);
				return true;
			}
			Object.Destroy((Object)(object)val);
			return false;
		}

		public static Vector3? AboveTargetVectorFromDamageInfo(DamageInfo damageInfo, float distanceAboveTarget)
		{
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0176: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			if (damageInfo.rejected || !Object.op_Implicit((Object)(object)damageInfo.attacker))
			{
				return null;
			}
			CharacterBody component = damageInfo.attacker.GetComponent<CharacterBody>();
			if (Object.op_Implicit((Object)(object)component))
			{
				TeamMask enemyTeams = TeamMask.GetEnemyTeams(component.teamComponent.teamIndex);
				HurtBox val = new SphereSearch
				{
					radius = 1f,
					mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask,
					origin = damageInfo.position
				}.RefreshCandidates().FilterCandidatesByHurtBoxTeam(enemyTeams).OrderCandidatesByDistance()
					.FilterCandidatesByDistinctHurtBoxEntities()
					.GetHurtBoxes()
					.FirstOrDefault();
				if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.healthComponent) && Object.op_Implicit((Object)(object)val.healthComponent.body))
				{
					CharacterBody body = val.healthComponent.body;
					Vector3 val2 = body.mainHurtBox.collider.ClosestPointOnBounds(body.transform.position + new Vector3(0f, 10000f, 0f));
					Vector3? val3 = RaycastToDirection(val2, distanceAboveTarget, Vector3.up, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask));
					if (val3.HasValue)
					{
						return val3.Value;
					}
					return val2 + Vector3.up * distanceAboveTarget;
				}
			}
			return null;
		}

		public static Vector3? AboveTargetBody(CharacterBody body, float distanceAbove)
		{
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			if (!Object.op_Implicit((Object)(object)body))
			{
				return null;
			}
			Vector3 val = body.mainHurtBox.collider.ClosestPointOnBounds(body.transform.position + new Vector3(0f, 10000f, 0f));
			Vector3? val2 = RaycastToDirection(val, distanceAbove, Vector3.up, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask));
			if (val2.HasValue)
			{
				return val2.Value;
			}
			return val + Vector3.up * distanceAbove;
		}

		public static Dictionary<string, Vector3> GetAimSurfaceAlignmentInfo(Ray ray, int layerMask, float distance)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			Dictionary<string, Vector3> dictionary = new Dictionary<string, Vector3>();
			RaycastHit val = default(RaycastHit);
			if (!Physics.Raycast(ray, ref val, distance, layerMask, (QueryTriggerInteraction)1))
			{
				Main.ModLogger.LogInfo((object)$"GetAimSurfaceAlignmentInfo did not hit anything in the aim direction on the specified layer ({layerMask}).");
				return null;
			}
			Vector3 point = ((RaycastHit)(ref val)).point;
			Vector3 val2 = Vector3.Cross(((Ray)(ref ray)).direction, Vector3.up);
			Vector3 val3 = Vector3.ProjectOnPlane(((RaycastHit)(ref val)).normal, val2);
			Vector3 value = Vector3.Cross(val2, val3);
			dictionary.Add("Position", point);
			dictionary.Add("Right", val2);
			dictionary.Add("Forward", value);
			dictionary.Add("Up", val3);
			return dictionary;
		}
	}
	public static class NetworkingHelpers
	{
		public static T GetObjectFromNetIdValue<T>(uint netIdValue)
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			NetworkInstanceId key = default(NetworkInstanceId);
			((NetworkInstanceId)(ref key))..ctor(netIdValue);
			NetworkIdentity value = null;
			if (NetworkServer.active)
			{
				NetworkServer.objects.TryGetValue(key, out value);
			}
			else
			{
				ClientScene.objects.TryGetValue(key, out value);
			}
			if (Object.op_Implicit((Object)(object)value))
			{
				T component = ((Component)value).GetComponent<T>();
				if (component != null)
				{
					return component;
				}
			}
			return default(T);
		}
	}
	public static class Scenes
	{
		public static string AphelianSanctuary = "ancientloft";

		public static string VoidFields = "arena";

		public static string DistantRoost = "blackbeach";

		public static string DistantRoostAlt = "blackbeach2";

		public static string AbyssalDepths = "dampcavesimple";

		public static string WetlandAspect = "foggyswamp";

		public static string RallypointDelta = "frozenwall";

		public static string TitanicPlains = "golemplains";

		public static string TitanicPlainsAlt = "golemplains2";

		public static string AbandonedAqueduct = "goolake";

		public static string Commencement = "moon2";

		public static string SunderedGrove = "rootjungle";

		public static string SirensCall = "shipgraveyard";

		public static string SkyMeadow = "skymeadow";

		public static string SiphonedForest = "snowyforest";

		public static string SulfurPools = "sulfurpools";

		public static string VoidLocus = "voidstage";

		public static string Planetarium = "voidraid";

		public static string ScorchedAcres = "wispgraveyard";

		public static string BulwarksAmbry = "artifactword";

		public static string Bazaar = "bazaar";

		public static string GildedCoast = "goldshores";

		public static string MomentWhole = "limbo";

		public static string MomentFractured = "mysteryspace";

		public static string[] AllStandard = new string[18]
		{
			AphelianSanctuary, VoidFields, DistantRoost, DistantRoostAlt, AbyssalDepths, WetlandAspect, RallypointDelta, TitanicPlains, TitanicPlainsAlt, AbandonedAqueduct,
			Commencement, SunderedGrove, SkyMeadow, SirensCall, SiphonedForest, SulfurPools, ScorchedAcres, BulwarksAmbry
		};
	}
	public static class TotallyNotStolenUtils
	{
		public enum ItemIconBackgroundType
		{
			Tier1,
			Tier2,
			Tier3,
			Boss,
			Equipment,
			Lunar,
			Survivor
		}

		private static Dictionary<ItemTier, ItemIconBackgroundType> itemTierToIconBackgroundType = new Dictionary<ItemTier, ItemIconBackgroundType>
		{
			{
				(ItemTier)0,
				ItemIconBackgroundType.Tier1
			},
			{
				(ItemTier)1,
				ItemIconBackgroundType.Tier2
			},
			{
				(ItemTier)2,
				ItemIconBackgroundType.Tier3
			},
			{
				(ItemTier)4,
				ItemIconBackgroundType.Boss
			},
			{
				(ItemTier)3,
				ItemIconBackgroundType.Lunar
			}
		};

		public static ItemIconBackgroundType GetItemIconBackgroundTypeFromTier(ItemTier tier)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			if (itemTierToIconBackgroundType.ContainsKey(tier))
			{
				return itemTierToIconBackgroundType[tier];
			}
			return ItemIconBackgroundType.Tier1;
		}

		public static Sprite AddItemIconBackgroundToSprite(Sprite originalSprite, ItemIconBackgroundType bgType)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Expected O, but got Unknown
			//IL_01de: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: Expected O, but got Unknown
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_022c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_034e: Unknown result type (might be due to invalid IL or missing references)
			//IL_035d: Unknown result type (might be due to invalid IL or missing references)
			//IL_024e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0253: Unknown result type (might be due to invalid IL or missing references)
			//IL_025a: Unknown result type (might be due to invalid IL or missing references)
			//IL_025f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Unknown result type (might be due to invalid IL or missing references)
			//IL_0273: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Unknown result type (might be due to invalid IL or missing references)
			//IL_028c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0298: 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_02a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			Texture2D texture = originalSprite.texture;
			Texture2D val = new Texture2D(((Texture)texture).width, ((Texture)texture).height, (TextureFormat)5, false);
			Graphics.ConvertTexture((Texture)(object)texture, (Texture)(object)val);
			RenderTexture temporary = RenderTexture.GetTemporary(((Texture)val).width, ((Texture)val).height, 24, (RenderTextureFormat)0);
			temporary.Create();
			RenderTexture.active = temporary;
			Graphics.Blit((Texture)(object)val, temporary);
			val.ReadPixels(new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), 0, 0);
			val.Apply();
			RenderTexture.active = null;
			RenderTexture.ReleaseTemporary(temporary);
			Sprite val2 = null;
			val2 = (Sprite)(bgType switch
			{
				ItemIconBackgroundType.Tier1 => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texTier1BGIcon.png").WaitForCompletion(), 
				ItemIconBackgroundType.Tier2 => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texTier2BGIcon.png").WaitForCompletion(), 
				ItemIconBackgroundType.Tier3 => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texTier3BGIcon.png").WaitForCompletion(), 
				ItemIconBackgroundType.Boss => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texBossBGIcon.png").WaitForCompletion(), 
				ItemIconBackgroundType.Equipment => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texEquipmentBGIcon.png").WaitForCompletion(), 
				ItemIconBackgroundType.Lunar => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texLunarBGIcon.png").WaitForCompletion(), 
				ItemIconBackgroundType.Survivor => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texSurvivorBGIcon.png").WaitForCompletion(), 
				_ => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texTier1BGIcon.png").WaitForCompletion(), 
			});
			Texture2D val3 = new Texture2D(((Texture)val).width, ((Texture)val).height, (TextureFormat)5, false);
			Graphics.ConvertTexture((Texture)(object)val2.texture, (Texture)(object)val3);
			temporary = RenderTexture.GetTemporary(((Texture)val3).width, ((Texture)val3).height, 24, (RenderTextureFormat)0);
			temporary.Create();
			RenderTexture.active = temporary;
			Graphics.Blit((Texture)(object)val3, temporary);
			val3.ReadPixels(new Rect(0f, 0f, (float)((Texture)val3).width, (float)((Texture)val3).height), 0, 0);
			val3.Apply();
			RenderTexture.active = null;
			RenderTexture.ReleaseTemporary(temporary);
			Texture2D val4 = new Texture2D(((Texture)val).width, ((Texture)val).height, val.format, false);
			((Texture)val4).wrapMode = ((Texture)val).wrapMode;
			((Texture)val4).filterMode = ((Texture)val).filterMode;
			for (int i = 0; i < ((Texture)val4).width; i++)
			{
				for (int j = 0; j < ((Texture)val4).height; j++)
				{
					Color pixel = val3.GetPixel(i, j);
					Color pixel2 = val.GetPixel(i, j);
					val4.SetPixel(i, j, new Color(pixel.r * (1f - pixel2.a) + pixel2.r * pixel2.a, pixel.g * (1f - pixel2.a) + pixel2.g * pixel2.a, pixel.b * (1f - pixel2.a) + pixel2.b * pixel2.a, Mathf.Clamp01(pixel.a + pixel2.a)));
				}
			}
			val4.Apply();
			return Sprite.Create(val4, new Rect(0f, 0f, (float)((Texture)val4).width, (float)((Texture)val4).height), new Vector2(0.5f, 0.5f), 25f, 1u, (SpriteMeshType)1);
		}

		public static Sprite CreateItemIconWithBackgroundFromItem(ItemDef itemDef)
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)itemDef) && Object.op_Implicit((Object)(object)itemDef.pickupIconSprite))
			{
				return AddItemIconBackgroundToSprite(itemDef.pickupIconSprite, GetItemIconBackgroundTypeFromTier(itemDef.tier));
			}
			return null;
		}

		public static Sprite CreateItemIconWithBackgroundFromEquipment(EquipmentDef equipmentDef)
		{
			if (Object.op_Implicit((Object)(object)equipmentDef) && Object.op_Implicit((Object)(object)equipmentDef.pickupIconSprite))
			{
				return AddItemIconBackgroundToSprite(equipmentDef.pickupIconSprite, ItemIconBackgroundType.Equipment);
			}
			return null;
		}
	}
	public static class Events
	{
		public static uint Play_wBisonDeath = 1113517888u;

		public static uint Play_wBisonHit = 1197473233u;

		public static uint Play_wBisonShoot1 = 3268390400u;

		public static uint Play_wBisonSpawn = 1249767875u;

		public static uint Play_wBlastdoor = 3043230225u;

		public static uint Play_wBoarDeath = 3944593657u;

		public static uint Play_wBoarExplosion = 3091761946u;

		public static uint Play_wBoarHit = 1332006904u;

		public static uint Play_wBoarMDeath = 2887033908u;

		public static uint Play_wBoarShoot1 = 2651342963u;

		public static uint Play_wBoss1Shoot1 = 3380168965u;

		public static uint Play_wBoss1Shoot2 = 3380168966u;

		public static uint Play_wBossSkill2 = 857592033u;

		public static uint Play_wBubbleShield = 3999340508u;

		public static uint Play_wBullet1 = 3448409474u;

		public static uint Play_wBullet2 = 3448409473u;

		public static uint Play_wBullet3 = 3448409472u;

		public static uint Play_wCasing = 1800381192u;

		public static uint Play_wChainLightning = 1913174254u;

		public static uint Play_wChat = 1231583519u;

		public static uint Play_wChefShoot2_1 = 4002996080u;

		public static uint Play_wChest0 = 273185112u;

		public static uint Play_wChest1 = 273185113u;

		public static uint Play_wChest2 = 273185114u;

		public static uint Play_wChest5 = 273185117u;

		public static uint Play_wChildDeath = 3731152613u;

		public static uint Play_wChildGShoot1 = 2978407106u;

		public static uint Play_wChildHit = 4072685316u;

		public static uint Play_wChildShoot1 = 4260787991u;

		public static uint Play_wClayDeath = 1853199952u;

		public static uint Play_wClayHit = 2864197409u;

		public static uint Play_wClayShoot1 = 1969574576u;

		public static uint Play_wClaySpawn = 1481867283u;

		public static uint Play_wClick = 1105771879u;

		public static uint Play_wCoin = 1232716514u;

		public static uint Play_wCoins = 2360199605u;

		public static uint Play_wCrabDeath = 2914438815u;

		public static uint Play_wCrabSpawn = 400103432u;

		public static uint Play_wCrit_01 = 3774687669u;

		public static uint Play_wCrowbar = 2755541643u;

		public static uint Play_wCutsceneAlarm = 2172459452u;

		public static uint Play_wCutsceneJet = 197474154u;

		public static uint Play_wCutscenePass = 1461112566u;

		public static uint Play_wDifficulty = 3657652262u;

		public static uint Play_wDoll = 1118795882u;

		public static uint Play_wDrill = 1252691444u;

		public static uint Play_wDrone1Spawn = 3109566651u;

		public static uint Play_wEfMushroom = 3355655210u;

		public static uint Play_wEmbryo = 3519041107u;

		public static uint Play_wError = 2120356473u;

		public static uint Play_wExplosiveShot = 1244890662u;

		public static uint Play_wFeralShoot1 = 732734997u;

		public static uint Play_wFeralShoot2 = 732734998u;

		public static uint Play_wFrozen = 1850209911u;

		public static uint Play_wGeyser = 2014257388u;

		public static uint Play_wGiantJellyExplosion = 923348941u;

		public static uint Play_wGiantJellyHit = 3830172407u;

		public static uint Play_wGolemAttack1 = 1019251312u;

		public static uint Play_wGolemDeath = 469957963u;

		public static uint Play_wGolemHit = 1924739498u;

		public static uint Play_wGolemSpawn = 2658053020u;

		public static uint Play_wGuardDeath = 2195517878u;

		public static uint Play_wGuardHit = 3726358359u;

		public static uint Play_wGuardSpawn = 1193575573u;

		public static uint Play_wHeavyShoot1 = 2266555164u;

		public static uint Play_wHitlist = 1828045284u;

		public static uint Play_wHuntressShoot1 = 2714607293u;

		public static uint Play_wHuntressShoot3 = 2714607295u;

		public static uint Play_wImpDeath = 1405469125u;

		public static uint Play_wImpGShoot1 = 702433570u;

		public static uint Play_wImpHit = 2697432036u;

		public static uint Play_wImpShoot1 = 2776445175u;

		public static uint Play_wImpShoot2 = 2776445172u;

		public static uint Play_wJanitorShoot1_1 = 2483794322u;

		public static uint Play_wJanitorShoot1_2 = 2483794321u;

		public static uint Play_wJanitorShoot2_1 = 1409879677u;

		public static uint Play_wJanitorShoot2_2 = 1409879678u;

		public static uint Play_wJanitorShoot4_1 = 1410865383u;

		public static uint Play_wJanitorShoot4_2 = 1410865380u;

		public static uint Play_wJarSouls = 4162844532u;

		public static uint Play_wJellyDeath = 2679553851u;

		public static uint Play_wJellyHit = 213554906u;

		public static uint Play_wLevelUp = 1919980434u;

		public static uint Play_wLevelUpWar = 4023542052u;

		public static uint Play_wLightning = 1330288141u;

		public static uint Play_wLizardDeath = 2074794113u;

		public static uint Play_wLizardGDeath = 4177291774u;

		public static uint Play_wLizardGHit = 1425978735u;

		public static uint Play_wLizardGShoot1 = 1170430294u;

		public static uint Play_wLizardGSpawn = 2684018717u;

		public static uint Play_wLizardHit = 4207177744u;

		public static uint Play_wLizardShoot1 = 287412267u;

		public static uint Play_wLizardSpawn = 1283696654u;

		public static uint Play_wMine = 1021358464u;

		public static uint Play_wMinerShoot1 = 1056078324u;

		public static uint Play_wMinerShoot2 = 1056078327u;

		public static uint Play_wMinerShoot3 = 1056078326u;

		public static uint Play_wMinerShoot4 = 1056078321u;

		public static uint Play_wMissileLaunch = 3415171634u;

		public static uint Play_wMS = 3023098025u;

		public static uint Play_wMush = 1473662818u;

		public static uint Play_wMushDeath = 3463803836u;

		public static uint Play_wMushHit = 2887429069u;

		public static uint Play_wMushShoot1 = 487910212u;

		public static uint Play_wMushSpawn = 4208364455u;

		public static uint Play_wNautShoot1 = 874719151u;

		public static uint Play_wPickup = 745840569u;

		public static uint Play_wPigShoot1 = 4172429713u;

		public static uint Play_wPodDeath = 368641344u;

		public static uint Play_wPodHit = 4069172177u;

		public static uint Play_wPyroShoot1 = 1977581991u;

		public static uint Play_wReflect = 3534459008u;

		public static uint Play_wReload = 1935874270u;

		public static uint Play_wRevive = 3924543518u;

		public static uint Play_wRiotGrenade = 1170699791u;

		public static uint Play_wRiotShoot1 = 392428577u;

		public static uint Play_wSamuraiShoot1 = 2292726403u;

		public static uint Play_wSamuraiShoot2 = 2292726400u;

		public static uint Play_wScavengerHit = 3803292342u;

		public static uint Play_wShield = 144484126u;

		public static uint Play_wShrine1 = 1516352125u;

		public static uint Play_wSmite = 1676655215u;

		public static uint Play_wSniper = 1326789400u;

		public static uint Play_wSniper2 = 2522836730u;

		public static uint Play_wSniperShoot3 = 3029163620u;

		public static uint Play_wSpiderHit = 1534240581u;

		public static uint Play_wSpiderShoot1 = 4018099836u;

		public static uint Play_wSpitterHit = 530229631u;

		public static uint Play_wSpitterShoot1 = 1863108870u;

		public static uint Play_wSpitterSpawn = 291139117u;

		public static uint Play_wSqueaky = 1860044956u;

		public static uint Play_wTeleporter = 1289080377u;

		public static uint Play_wUse = 1100859862u;

		public static uint Play_wWatch = 3354880454u;

		public static uint Play_wWispBDeath = 3021624856u;

		public static uint Play_wWispBShoot1 = 2025586984u;

		public static uint Play_wWispDeath = 3169292106u;

		public static uint Play_wWispGDeath = 1968672835u;

		public static uint Play_wWispGShoot1 = 969982957u;

		public static uint Play_wWispHit = 2561235483u;

		public static uint Play_wWispShoot1 = 914723770u;

		public static uint Play_wWispSpawn = 3436613665u;

		public static uint Play_wWormBurning = 2192059253u;

		public static uint Play_wWormDeath = 3793594386u;

		public static uint Play_wWormExplosion = 2529227609u;

		public static uint Play_wWormHit = 3504753139u;

		public static uint Play_wWormRoar = 1700089088u;

		public static uint Kill_loops = 3633988413u;

		public static uint Pause_All = 3864097025u;

		public static uint Play_Achievement = 3433956687u;

		public static uint Play_acid_larva_attack1_explo = 2451117845u;

		public static uint Play_acid_larva_attack1_loop = 3362763155u;

		public static uint Play_acid_larva_attack1_start = 1646746355u;

		public static uint Play_acid_larva_death = 3568098837u;

		public static uint Play_acid_larva_idle = 2621183947u;

		public static uint Play_acid_larva_impact = 2231265675u;

		public static uint Play_acid_larva_spawn = 3730906858u;

		public static uint Play_acid_larva_sprint_land = 2824450583u;

		public static uint Play_acid_larva_sprint_leap = 2639308470u;

		public static uint Play_acid_larva_step = 828559811u;

		public static uint Play_acrid_m1_bigSlash = 1656148530u;

		public static uint Play_acrid_m1_hit = 1822928838u;

		public static uint Play_acrid_m1_slash = 1719910342u;

		public static uint Play_acrid_m2_bite_hit = 2714436782u;

		public static uint Play_acrid_m2_bite_shoot = 456215952u;

		public static uint Play_acrid_m2_explode = 2736075181u;

		public static uint Play_acrid_m2_fly_loop = 644013190u;

		public static uint Play_acrid_m2_shoot = 999289595u;

		public static uint Play_acrid_R_fly_loop = 1915769387u;

		public static uint Play_acrid_R_infect = 1007919396u;

		public static uint Play_acrid_R_shoot = 1160201708u;

		public static uint Play_acrid_shift_fly_loop = 642600073u;

		public static uint Play_acrid_shift_jump = 1749522733u;

		public static uint Play_acrid_shift_land = 320622162u;

		public static uint Play_acrid_shift_puddle_loop = 1556265730u;

		public static uint Play_acrid_sprint_start = 801642819u;

		public static uint Play_acrid_sprint_stop = 3680364993u;

		public static uint Play_acrid_step = 372958860u;

		public static uint Play_acrid_step_sprint = 2575316715u;

		public static uint Play_acrid_step_sprint_hand = 3560327381u;

		public static uint Play_affix_mendingBomb_explode = 841626335u;

		public static uint Play_affix_mendingChain_loop = 3768810533u;

		public static uint Play_affix_void_bug_infect = 939369398u;

		public static uint Play_affix_void_bug_loop = 1959624827u;

		public static uint Play_affix_void_bug_spawn = 3394761874u;

		public static uint Play_affix_void_spawn = 1535219985u;

		public static uint Play_AMB_zone_arena = 1539048487u;

		public static uint Play_AMB_zone_artifactWorld = 4134483156u;

		public static uint Play_AMB_zone_char_select = 1641027481u;

		public static uint Play_AMB_zone_damp_cave_simple = 1142851345u;

		public static uint Play_AMB_zone_dark_rain = 938309267u;

		public static uint Play_AMB_zone_desert = 56392161u;

		public static uint Play_AMB_zone_limbo = 1359925925u;

		public static uint Play_AMB_zone_moon = 3075336325u;

		public static uint Play_AMB_zone_rootJungle = 2348244945u;

		public static uint Play_AMB_zone_ship_graveyard = 642154978u;

		public static uint Play_AMB_zone_skyMeadow = 3453798682u;

		public static uint Play_AMB_zone_skyMeadow_hiddenLab = 3040657526u;

		public static uint Play_AMB_zone_tundra = 38798342u;

		public static uint Play_AMB_zone_wisp_graveyard = 751162865u;

		public static uint Play_arenaCrab_idle_VO = 158852972u;

		public static uint Play_arenaCrab_swim_land = 2386788264u;

		public static uint Play_arenaCrab_swim_loop = 2401300333u;

		public static uint Play_arenaCrab_swim_plant = 1572198610u;

		public static uint Play_arenaCrab_swim_stroke = 2022745195u;

		public static uint Play_arenaCrab_swim_uproot = 3172304260u;

		public static uint Play_artifactBoss_attack1_explode = 71177277u;

		public static uint Play_artifactBoss_attack1_flightLoop = 2591078442u;

		public static uint Play_artifactBoss_attack1_shoot = 2196529419u;

		public static uint Play_artifactBoss_death = 4163357724u;

		public static uint Play_artifactBoss_idle_VO = 1345400638u;

		public static uint Play_artifactBoss_loop_level1 = 184703648u;

		public static uint Play_artifactBoss_loop_level2 = 184703651u;

		public static uint Play_artifactBoss_loop_level3 = 184703650u;

		public static uint Play_artifactBoss_spawn = 188493575u;

		public static uint Play_artifactBoss_takehit = 1098257974u;

		public static uint Play_bandit2_m1_reload_bullet = 452712768u;

		public static uint Play_bandit2_m1_reload_finish = 888917029u;

		public static uint Play_bandit2_m1_rifle = 2347126876u;

		public static uint Play_bandit2_m1_shotgun = 4206201632u;

		public static uint Play_bandit2_m2_alt_throw = 595565201u;

		public static uint Play_bandit2_m2_impact = 2278422317u;

		public static uint Play_bandit2_m2_slash = 4103120750u;

		public static uint Play_bandit2_R_alt_kill = 4143438424u;

		public static uint Play_bandit2_R_fire = 1435016856u;

		public static uint Play_bandit2_R_kill = 3719464252u;

		public static uint Play_bandit2_R_load = 3765877048u;

		public static uint Play_bandit2_shift_enter = 2967307668u;

		public static uint Play_bandit2_shift_exit = 850833398u;

		public static uint Play_bandit2_step = 3692683083u;

		public static uint Play_bandit2_step_sprint = 1764271662u;

		public static uint Play_bandit_M1_pump = 1853111450u;

		public static uint Play_bandit_M1_shot = 3033552564u;

		public static uint Play_bandit_M2_load = 2190546849u;

		public static uint Play_bandit_M2_shot = 1980580961u;

		public static uint Play_bandit_shift_end = 2770013503u;

		public static uint Play_bandit_shift_jump = 1325724668u;

		public static uint Play_bandit_shift_land = 1259710815u;

		public static uint Play_beetle_guard_attack1 = 763398245u;

		public static uint Play_beetle_guard_attack2_initial = 2581251415u;

		public static uint Play_beetle_guard_attack2_spikeLoop = 542781083u;

		public static uint Play_beetle_guard_death = 1527577102u;

		public static uint Play_beetle_guard_idle_VO = 3561602500u;

		public static uint Play_beetle_guard_impact = 2349109310u;

		public static uint Play_beetle_guard_spawn = 515189165u;

		public static uint Play_beetle_guard_step = 2628071246u;

		public static uint Play_beetle_queen_attack1 = 555937964u;

		public static uint Play_beetle_queen_attack2_impact = 3157521796u;

		public static uint Play_beetle_queen_attack2_projectile_loop = 1477410428u;

		public static uint Play_beetle_queen_attack2_shoot = 4217844119u;

		public static uint Play_beetle_queen_death = 451763711u;

		public static uint Play_beetle_queen_impact = 806513485u;

		public static uint Play_beetle_queen_spawn = 2698326632u;

		public static uint Play_beetle_queen_step = 2551161845u;

		public static uint Play_beetle_queen_VO_idle = 1845046503u;

		public static uint Play_beetle_worker_attack = 4241852727u;

		public static uint Play_beetle_worker_death = 383219511u;

		public static uint Play_beetle_worker_idle = 1901530073u;

		public static uint Play_beetle_worker_impact = 1338816453u;

		public static uint Play_beetle_worker_spawn = 1471942880u;

		public static uint Play_beetle_worker_step = 1809191501u;

		public static uint Play_bellBody_attackCreate = 780374380u;

		public static uint Play_bellBody_attackLand = 1732098311u;

		public static uint Play_bellBody_attackShoot = 4097802741u;

		public static uint Play_bellBody_death = 2182572274u;

		public static uint Play_bellBody_idle_loop = 345208571u;

		public static uint Play_bellBody_idle_VO = 4021378928u;

		public static uint Play_bellBody_impact = 2147523650u;

		public static uint Play_bellBody_spawn = 4144720393u;

		public static uint Play_bison_charge_attack_collide = 2909411958u;

		public static uint Play_bison_charge_attack_end_skid = 2235015895u;

		public static uint Play_bison_charge_attack_start = 2509443544u;

		public static uint Play_bison_charge_attack_tell = 4101791573u;

		public static uint Play_bison_death = 3590751484u;

		public static uint Play_bison_headbutt_attack_hit = 3802411724u;

		public static uint Play_bison_headbutt_attack_swing = 1417054473u;

		public static uint Play_bison_idle_graze = 2516815946u;

		public static uint Play_bison_idle_VO = 3855060446u;

		public static uint Play_bison_impact = 4030239748u;

		public static uint Play_bison_spawn = 3910957799u;

		public static uint Play_bison_step = 2839275484u;

		public static uint Play_bison_step_charge = 532574671u;

		public static uint Play_bleedOnCritAndExplode_explode = 2693964769u;

		public static uint Play_bleedOnCritAndExplode_impact = 3570667772u;

		public static uint Play_blindVermin_attack1_bite = 901504895u;

		public static uint Play_blindVermin_death = 3786262665u;

		public static uint Play_blindVermin_idle_VO = 2536191415u;

		public static uint Play_blindVermin_impact = 121244671u;

		public static uint Play_blindVermin_spawn = 2995165238u;

		public static uint Play_blindVermin_step = 294344023u;

		public static uint Play_boss_spawn_radius_appear = 4035156426u;

		public static uint Play_boss_spawn_rumble = 2327315087u;

		public static uint Play_captain_drone_idle_VO = 1028355892u;

		public static uint Play_captain_drone_quick_move = 8118127u;

		public static uint Play_captain_drone_zap = 3992615829u;

		public static uint Play_captain_m1_chargeStart = 2544146878u;

		public static uint Play_captain_m1_hit = 3819278833u;

		public static uint Play_captain_m1_reload = 2226849933u;

		public static uint Play_captain_m1_shootWide = 532604026u;

		public static uint Play_captain_m1_shotgun_charge_loop = 2453063032u;

		public static uint Play_captain_m1_shotgun_shootTight = 1348536996u;

		public static uint Play_captain_m2_tazed_loop = 3117407908u;

		public static uint Play_captain_m2_tazer_bounce = 1888136956u;

		public static uint Play_captain_m2_tazer_impact = 58834266u;

		public static uint Play_captain_m2_tazer_shoot = 832597929u;

		public static uint Play_captain_R_aim = 364785367u;

		public static uint Play_captain_R_aiming_loop = 1040620982u;

		public static uint Play_captain_R_confirmLocation = 1531948689u;

		public static uint Play_captain_R_impact = 3902637834u;

		public static uint Play_captain_R_turret_build = 1359756347u;

		public static uint Play_captain_R_turret_healing_loop = 788149618u;

		public static uint Play_captain_shift_active_loop = 3941125189u;

		public static uint Play_captain_shift_confirm = 2140775262u;

		public static uint Play_captain_shift_end = 803261989u;

		public static uint Play_captain_shift_impact = 3269630552u;

		public static uint Play_captain_shift_preImpact = 1069989355u;

		public static uint Play_captain_shift_start = 2113266862u;

		public static uint Play_captain_sprint_start = 3430012852u;

		public static uint Play_captain_sprint_stop = 1094493224u;

		public static uint Play_captain_step = 1226612947u;

		public static uint Play_captain_step_sprint = 2831720022u;

		public static uint Play_captain_utility_variant_impact = 1357225738u;

		public static uint Play_captain_utility_variant_laser_loop = 2451237826u;

		public static uint Play_captain_utility_variant_preImpact = 3461917085u;

		public static uint Play_char_glass_death = 359633836u;

		public static uint Play_char_jump_VO = 1654395377u;

		public static uint Play_char_land = 81910470u;

		public static uint Play_char_land_fall_damage = 2642009198u;

		public static uint Play_clayboss_death = 2559714313u;

		public static uint Play_clayboss_idle_loop = 3870838284u;

		public static uint Play_clayboss_idle_VO = 628079927u;

		public static uint Play_clayboss_impact = 1890981503u;

		public static uint Play_clayboss_M1_explo = 2368148000u;

		public static uint Play_clayboss_m1_lidClose = 1576056771u;

		public static uint Play_clayboss_m1_lidOpen = 1470926389u;

		public static uint Play_clayboss_m1_shoot = 2922284055u;

		public static uint Play_clayboss_m2_explo = 4043539191u;

		public static uint Play_clayboss_m2_projectile_loop = 3593581531u;

		public static uint Play_clayboss_m2_rise = 916955724u;

		public static uint Play_clayboss_m2_shoot = 600290068u;

		public static uint Play_clayboss_R_mulch_loop = 968500644u;

		public static uint Play_clayboss_R_start = 988517284u;

		public static uint Play_clayboss_R_tether_loop = 3132967749u;

		public static uint Play_clayboss_spawn = 1768616886u;

		public static uint Play_clayboss_step = 3088890839u;

		public static uint Play_clayboss_step_legMove = 869404285u;

		public static uint Play_clayboss_walk_loop = 212114079u;

		public static uint Play_clayBruiser_attack1_shoot_bullet = 491470286u;

		public static uint Play_clayBruiser_attack1_shoot_flyby = 3572694566u;

		public static uint Play_clayBruiser_attack1_shootLoop = 649113537u;

		public static uint Play_clayBruiser_attack1_windDown = 263088688u;

		public static uint Play_clayBruiser_attack1_windUp = 1916278867u;

		public static uint Play_clayBruiser_attack2_shoot = 1288244652u;

		public static uint Play_clayBruiser_death = 3332873880u;

		public static uint Play_clayBruiser_idle_VO = 2519366882u;

		public static uint Play_clayBruiser_impact = 1250949200u;

		public static uint Play_clayBruiser_spawn = 817063995u;

		public static uint Play_clayBruiser_step = 1697475496u;

		public static uint Play_clayGrenadier_attack1_chargeup = 318212996u;

		public static uint Play_clayGrenadier_attack1_explode = 2432531130u;

		public static uint Play_clayGrenadier_attack1_launch = 1826024586u;

		public static uint Play_clayGrenadier_attack2_chargeup = 1264580837u;

		public static uint Play_clayGrenadier_attack2_explode = 1475316029u;

		public static uint Play_clayGrenadier_attack2_throw = 3151664278u;

		public static uint Play_clayGrenadier_death = 4008628731u;

		public static uint Play_clayGrenadier_idle_VO = 2834945965u;

		public static uint Play_clayGrenadier_impact = 216053097u;

		public static uint Play_clayGrenadier_spawn = 1404722828u;

		public static uint Play_clayGrenadier_step = 2998452545u;

		public static uint Play_commando_M1 = 4060526873u;

		public static uint Play_commando_M2 = 4060526874u;

		public static uint Play_commando_M2_grenade_beep = 767972256u;

		public static uint Play_commando_M2_grenade_bounce = 2406813524u;

		public static uint Play_commando_M2_grenade_explo = 1805372450u;

		public static uint Play_commando_M2_grenade_throw = 2891623396u;

		public static uint Play_commando_M2_impact = 3856027043u;

		public static uint Play_commando_R = 1872804647u;

		public static uint Play_commando_R_stun = 856897882u;

		public static uint Play_commando_shift = 4030773325u;

		public static uint Play_deathProjectile_activate = 4274104951u;

		public static uint Play_deathProjectile_activeLoop = 4274851604u;

		public static uint Play_deathProjectile_exit = 2255177404u;

		public static uint Play_deathProjectile_pulse = 3311061351u;

		public static uint Play_deathProjectile_throw = 3241022660u;

		public static uint Play_drone_active_loop = 1397126242u;

		public static uint Play_drone_attack = 2284311463u;

		public static uint Play_drone_deathpt1 = 263213456u;

		public static uint Play_drone_deathpt2 = 263213459u;

		public static uint Play_drone_repair = 1856960692u;

		public static uint Play_elite_antiHeal_spawn = 691984684u;

		public static uint Play_elite_antiHeal_turret_die = 3657700870u;

		public static uint Play_elite_antiHeal_turret_shot = 669631748u;

		public static uint Play_elite_antiHeal_turret_spawn = 308571281u;

		public static uint Play_elite_antiHeal_urchin_activeLoop = 3295205085u;

		public static uint Play_elite_antiHeal_urchin_land = 962572750u;

		public static uint Play_elite_antiHeal_urchin_spawn = 569941158u;

		public static uint Play_elite_haunt_ghost_convert = 2762055418u;

		public static uint Play_elite_haunt_hauntorb_activeLoop = 543514253u;

		public static uint Play_elite_haunt_spawn = 265705826u;

		public static uint Play_emergency_drone_heal_loop = 2145196828u;

		public static uint Play_engi_M1_chargeLoop = 1143106461u;

		public static uint Play_engi_M1_chargeStock = 1582860475u;

		public static uint Play_engi_M1_explo = 2460302619u;

		public static uint Play_engi_M1_land = 1224228428u;

		public static uint Play_engi_M1_shot = 2716114991u;

		public static uint Play_engi_M2_arm = 801551500u;

		public static uint Play_engi_M2_explo = 1876447108u;

		public static uint Play_engi_M2_land = 1942736441u;

		public static uint Play_engi_M2_spider_dash = 2039062976u;

		public static uint Play_engi_M2_throw = 2382761590u;

		public static uint Play_engi_R_activate = 3298597612u;

		public static uint Play_engi_R_place = 643340344u;

		public static uint Play_engi_R_turret_death = 4245687690u;

		public static uint Play_engi_R_turret_rotate_start = 3711319792u;

		public static uint Play_engi_R_turret_rotate_stop = 3202539612u;

		public static uint Play_engi_R_turret_shot = 3407965588u;

		public static uint Play_engi_R_turret_spawn = 4130025569u;

		public static uint Play_engi_R_walkingTurret_laser_end = 3407461464u;

		public static uint Play_engi_R_walkingTurret_laser_start = 1126280707u;

		public static uint Play_engi_R_walkingTurret_step = 2412533739u;

		public static uint Play_engi_seekerMissile_explode = 2273471583u;

		public static uint Play_engi_seekerMissile_HUD_close = 872995266u;

		public static uint Play_engi_seekerMissile_HUD_loop = 3389061272u;

		public static uint Play_engi_seekerMissile_HUD_open = 1095370646u;

		public static uint Play_engi_seekerMissile_lockOn = 407672846u;

		public static uint Play_engi_seekerMissile_shoot = 2951980765u;

		public static uint Play_engi_shift_end = 1395092584u;

		public static uint Play_engi_shift_hit = 1846263908u;

		public static uint Play_engi_shift_start = 729856403u;

		public static uint Play_engi_sprint_end = 1589710056u;

		public static uint Play_engi_sprint_start = 1694535187u;

		public static uint Play_env_dampCave_crystalLight_loop = 3080548713u;

		public static uint Play_env_dampCave_steamVent_loop = 2932480344u;

		public static uint Play_env_desert_wind_gust = 363197352u;

		public static uint Play_env_fan_activate = 1753248287u;

		public static uint Play_env_geyser_launch = 3684346483u;

		public static uint Play_env_geyser_loop = 2001038684u;

		public static uint Play_env_gooWaterfall_loop = 3671383336u;

		public static uint Play_env_hiddenLab_laptop_activate = 1191732790u;

		public static uint Play_env_hiddenLab_laptop_active_loop = 3198839584u;

		public static uint Play_env_hiddenLab_laptop_button_cycle = 1729294674u;

		public static uint Play_env_hiddenLab_laptop_sequence_fail = 3795285125u;

		public static uint Play_env_hiddenLab_laptop_sequence_lock = 535095044u;

		public static uint Play_env_hiddenLab_laptop_sequence_success = 2883328426u;

		public static uint Play_env_hiddenLab_TP_active_loop = 1656660852u;

		public static uint Play_env_hiddenLab_TP_VO = 1027544848u;

		public static uint Play_env_light_flicker = 1529618755u;

		public static uint Play_env_moon_planet_destroying_loop = 56354104u;

		public static uint Play_env_moon_shuttle_engineIdle_loop = 979450395u;

		public static uint Play_env_roach_scatter = 1578037490u;

		public static uint Play_env_rootJungle_mushroom_bounce = 1759858961u;

		public static uint Play_env_ship_interior_loop = 2037610980u;

		public static uint Play_env_ship_pulsing_energy_loop = 2105493367u;

		public static uint Play_env_teleporter_active_button = 2694206298u;

		public static uint Play_env_vase_shatter = 3320446911u;

		public static uint Play_fireballsOnHit_aliveLoop = 3330327238u;

		public static uint Play_fireballsOnHit_impact = 1308908475u;

		public static uint Play_fireballsOnHit_pool_aliveLoop = 289286259u;

		public static uint Play_fireballsOnHit_shoot = 2071974498u;

		public static uint Play_flyingVermin_attack1_explo = 2325827633u;

		public static uint Play_flyingVermin_attack1_loop = 959625319u;

		public static uint Play_flyingVermin_attack1_start = 2469277671u;

		public static uint Play_flyingVermin_death = 2852936633u;

		public static uint Play_flyingVermin_idle_VO = 1488967u;

		public static uint Play_flyingVermin_impact = 1482226543u;

		public static uint Play_flyingVermin_spawn = 2569421798u;

		public static uint Play_flyingVermin_wingFlap = 2482198841u;

		public static uint Play_golem_clap = 3011704479u;

		public static uint Play_golem_death = 4251967229u;

		public static uint Play_golem_idle = 4196494707u;

		public static uint Play_golem_impact = 790462995u;

		public static uint Play_golem_laser_charge = 3644347705u;

		public static uint Play_golem_laser_fire = 3454198445u;

		public static uint Play_golem_spawn = 1773057618u;

		public static uint Play_golem_step = 4056609419u;

		public static uint Play_grandParent_attack1_boulderLarge_impact = 124225148u;

		public static uint Play_grandParent_attack1_boulderSmall_impact = 3157690056u;

		public static uint Play_grandParent_attack1_flightLoop = 1108205171u;

		public static uint Play_grandParent_attack1_throw = 659529741u;

		public static uint Play_grandParent_attack1_windUp = 1356813166u;

		public static uint Play_grandParent_attack2_loop = 1723739392u;

		public static uint Play_grandParent_attack2_spawn = 1710100275u;

		public static uint Play_grandParent_attack3_spawn = 1361990298u;

		public static uint Play_grandParent_attack3_sun_activeLoop = 3203163036u;

		public static uint Play_grandParent_attack3_sun_damageLoop = 406969537u;

		public static uint Play_grandParent_attack3_sun_destroy = 2118002602u;

		public static uint Play_grandParent_attack3_sun_spawn = 2441414753u;

		public static uint Play_grandParent_death = 1713910539u;

		public static uint Play_grandparent_handStep = 2848869794u;

		public static uint Play_grandParent_idle_VO = 779063965u;

		public static uint Play_grandParent_impact = 2762774137u;

		public static uint Play_grandparent_rotate = 19433626u;

		public static uint Play_grandParent_spawn = 3902005852u;

		public static uint Play_gravekeeper_attack1_close = 351879350u;

		public static uint Play_gravekeeper_attack1_explode = 1862008297u;

		public static uint Play_gravekeeper_attack1_fire = 187415678u;

		public static uint Play_gravekee