Decompiled source of EnemySkinRegistry v1.4.6
plugins/EnemySkinRegistry/EnemySkinRegistry.dll
Decompiled 2 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Text; using System.Text.RegularExpressions; using AntlerShed.SkinRegistry.Events; using AntlerShed.SkinRegistry.View; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalConfig; using LethalConfig.ConfigItems; using LethalConfig.ConfigItems.Options; using LethalLevelLoader; using NUnit.Framework; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using TMPro; using Unity.Collections; using Unity.Netcode; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyVersion("0.0.0.0")] [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[3404] { 0, 0, 0, 1, 0, 0, 0, 49, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 68, 117, 109, 109, 121, 83, 107, 105, 110, 110, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 52, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 69, 110, 101, 109, 121, 82, 101, 112, 111, 115, 105, 116, 111, 114, 121, 46, 99, 115, 0, 0, 0, 8, 0, 0, 0, 54, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 66, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 69, 118, 101, 110, 116, 115, 92, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 82, 101, 112, 111, 115, 105, 116, 111, 114, 121, 46, 99, 115, 0, 0, 0, 25, 0, 0, 0, 57, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 69, 118, 101, 110, 116, 115, 92, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 67, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 101, 116, 104, 97, 108, 76, 101, 118, 101, 108, 76, 111, 97, 100, 101, 114, 67, 111, 109, 112, 97, 116, 105, 98, 105, 108, 105, 116, 121, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 51, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 111, 111, 110, 82, 101, 112, 111, 115, 105, 116, 111, 114, 121, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 68, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 66, 97, 98, 111, 111, 110, 72, 97, 119, 107, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 64, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 66, 97, 114, 98, 101, 114, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 65, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 66, 114, 97, 99, 107, 101, 110, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 70, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 66, 117, 110, 107, 101, 114, 83, 112, 105, 100, 101, 114, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 64, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 66, 117, 116, 108, 101, 114, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 69, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 67, 105, 114, 99, 117, 105, 116, 66, 101, 101, 115, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 66, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 67, 111, 105, 108, 104, 101, 97, 100, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 72, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 69, 97, 114, 116, 104, 76, 101, 118, 105, 97, 116, 104, 97, 110, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 63, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 69, 110, 101, 109, 121, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 68, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 69, 121, 101, 108, 101, 115, 115, 68, 111, 103, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 70, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 70, 111, 114, 101, 115, 116, 75, 101, 101, 112, 101, 114, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 67, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 71, 104, 111, 115, 116, 71, 105, 114, 108, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 68, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 72, 111, 97, 114, 100, 101, 114, 66, 117, 103, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 67, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 72, 121, 103, 114, 111, 100, 101, 114, 101, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 64, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 74, 101, 115, 116, 101, 114, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 70, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 75, 105, 100, 110, 97, 112, 112, 101, 114, 70, 111, 120, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 66, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 77, 97, 110, 101, 97, 116, 101, 114, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 67, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 77, 97, 110, 116, 105, 99, 111, 105, 108, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 64, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 78, 101, 115, 116, 84, 114, 97, 99, 107, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 68, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 78, 117, 116, 99, 114, 97, 99, 107, 101, 114, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 65, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 79, 108, 100, 66, 105, 114, 100, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 71, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 82, 111, 97, 109, 105, 110, 103, 76, 111, 99, 117, 115, 116, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 67, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 83, 110, 97, 114, 101, 70, 108, 101, 97, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 69, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 83, 112, 111, 114, 101, 76, 105, 122, 97, 114, 100, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 65, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 84, 104, 117, 109, 112, 101, 114, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 68, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 69, 110, 101, 109, 105, 101, 115, 92, 84, 117, 108, 105, 112, 83, 110, 97, 107, 101, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 64, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 97, 116, 99, 104, 101, 115, 92, 73, 110, 105, 116, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 80, 97, 116, 99, 104, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 49, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 101, 115, 115, 105, 111, 110, 83, 116, 97, 116, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 41, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 107, 105, 110, 46, 99, 115, 0, 0, 0, 14, 0, 0, 0, 47, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 107, 105, 110, 67, 111, 110, 102, 105, 103, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 44, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 107, 105, 110, 110, 101, 114, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 51, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 107, 105, 110, 82, 101, 112, 111, 115, 105, 116, 111, 114, 121, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 53, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 107, 105, 110, 83, 121, 110, 99, 104, 114, 111, 110, 105, 122, 101, 114, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 41, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 84, 101, 115, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 59, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 105, 101, 119, 92, 65, 118, 97, 105, 108, 97, 98, 108, 101, 83, 107, 105, 110, 86, 105, 101, 119, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 64, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 105, 101, 119, 92, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 86, 105, 101, 119, 77, 111, 100, 101, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 68, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 105, 101, 119, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 77, 101, 110, 117, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 62, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 105, 101, 119, 92, 77, 97, 112, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 86, 105, 101, 119, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 60, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 105, 101, 119, 92, 83, 97, 118, 101, 80, 114, 111, 102, 105, 108, 101, 80, 111, 112, 111, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 53, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 105, 101, 119, 92, 83, 101, 108, 102, 68, 101, 115, 116, 114, 111, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 59, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 105, 101, 119, 92, 83, 107, 105, 110, 70, 114, 101, 113, 117, 101, 110, 99, 121, 86, 105, 101, 119, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 56, 92, 65, 115, 115, 101, 116, 115, 92, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 105, 101, 119, 92, 84, 101, 115, 116, 67, 111, 110, 102, 105, 103, 77, 101, 110, 117, 46, 99, 115 }; result.TypesData = new byte[5752] { 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 68, 117, 109, 109, 121, 83, 107, 105, 110, 110, 101, 114, 0, 0, 0, 0, 39, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 110, 101, 109, 121, 82, 101, 112, 111, 115, 105, 116, 111, 114, 121, 0, 0, 0, 0, 47, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 68, 117, 112, 108, 105, 99, 97, 116, 101, 69, 110, 101, 109, 121, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 49, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 73, 110, 118, 97, 108, 105, 100, 69, 110, 101, 109, 121, 84, 121, 112, 101, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 41, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 110, 101, 109, 121, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 0, 0, 0, 0, 45, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 68, 101, 102, 97, 117, 108, 116, 83, 107, 105, 110, 67, 111, 110, 102, 105, 103, 68, 97, 116, 97, 0, 0, 0, 0, 44, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 80, 114, 111, 102, 105, 108, 101, 78, 97, 109, 101, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 33, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 110, 101, 109, 121, 73, 110, 102, 111, 0, 0, 0, 0, 32, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 77, 111, 111, 110, 73, 110, 102, 111, 0, 0, 0, 0, 40, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 107, 105, 110, 68, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 0, 0, 0, 0, 37, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 107, 105, 110, 84, 104, 114, 101, 115, 104, 111, 108, 100, 0, 0, 0, 0, 31, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 77, 111, 100, 68, 105, 102, 102, 0, 0, 0, 0, 57, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 69, 110, 101, 109, 121, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 67, 111, 110, 116, 97, 105, 110, 101, 114, 0, 0, 0, 0, 48, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 69, 110, 101, 109, 121, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 50, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 66, 114, 97, 99, 107, 101, 110, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 66, 97, 98, 111, 111, 110, 72, 97, 119, 107, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 55, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 66, 117, 110, 107, 101, 114, 83, 112, 105, 100, 101, 114, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 51, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 67, 111, 105, 108, 104, 101, 97, 100, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 57, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 69, 97, 114, 116, 104, 76, 101, 118, 105, 97, 116, 104, 97, 110, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 69, 121, 101, 108, 101, 115, 115, 68, 111, 103, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 55, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 70, 111, 114, 101, 115, 116, 75, 101, 101, 112, 101, 114, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 52, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 71, 104, 111, 115, 116, 71, 105, 114, 108, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 72, 111, 97, 114, 100, 101, 114, 66, 117, 103, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 52, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 72, 121, 103, 114, 111, 100, 101, 114, 101, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 49, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 74, 101, 115, 116, 101, 114, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 78, 117, 116, 99, 114, 97, 99, 107, 101, 114, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 52, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 83, 110, 97, 114, 101, 70, 108, 101, 97, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 54, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 83, 112, 111, 114, 101, 76, 105, 122, 97, 114, 100, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 50, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 84, 104, 117, 109, 112, 101, 114, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 49, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 66, 117, 116, 108, 101, 114, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 50, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 79, 108, 100, 66, 105, 114, 100, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 49, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 66, 97, 114, 98, 101, 114, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 55, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 75, 105, 100, 110, 97, 112, 112, 101, 114, 70, 111, 120, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 84, 117, 108, 105, 112, 83, 110, 97, 107, 101, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 67, 105, 114, 99, 117, 105, 116, 66, 101, 101, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 56, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 82, 111, 97, 109, 105, 110, 103, 76, 111, 99, 117, 115, 116, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 52, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 77, 97, 110, 116, 105, 99, 111, 105, 108, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 51, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 118, 101, 110, 116, 115, 124, 77, 97, 110, 101, 97, 116, 101, 114, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 54, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 76, 101, 116, 104, 97, 108, 76, 101, 118, 101, 108, 76, 111, 97, 100, 101, 114, 67, 111, 109, 112, 97, 116, 105, 98, 105, 108, 105, 116, 121, 0, 0, 0, 0, 38, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 77, 111, 111, 110, 82, 101, 112, 111, 115, 105, 116, 111, 114, 121, 0, 0, 0, 0, 49, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 77, 111, 111, 110, 75, 101, 121, 67, 111, 108, 108, 105, 115, 105, 111, 110, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 46, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 73, 110, 118, 97, 108, 105, 100, 77, 111, 111, 110, 73, 100, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 39, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 66, 97, 98, 111, 111, 110, 72, 97, 119, 107, 80, 97, 116, 99, 104, 0, 0, 0, 0, 59, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 66, 97, 98, 111, 111, 110, 72, 97, 119, 107, 80, 97, 116, 99, 104, 124, 66, 97, 98, 111, 111, 110, 72, 97, 119, 107, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 35, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 66, 97, 114, 98, 101, 114, 80, 97, 116, 99, 104, 0, 0, 0, 0, 51, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 66, 97, 114, 98, 101, 114, 80, 97, 116, 99, 104, 124, 66, 97, 114, 98, 101, 114, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 66, 114, 97, 99, 107, 101, 110, 80, 97, 116, 99, 104, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 66, 114, 97, 99, 107, 101, 110, 80, 97, 116, 99, 104, 124, 66, 114, 97, 99, 107, 101, 110, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 41, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 66, 117, 110, 107, 101, 114, 83, 112, 105, 100, 101, 114, 80, 97, 116, 99, 104, 0, 0, 0, 0, 35, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 66, 117, 116, 108, 101, 114, 80, 97, 116, 99, 104, 0, 0, 0, 0, 40, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 67, 105, 114, 99, 117, 105, 116, 66, 101, 101, 115, 80, 97, 116, 99, 104, 0, 0, 0, 0, 37, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 67, 111, 105, 108, 104, 101, 97, 100, 80, 97, 116, 99, 104, 0, 0, 0, 0, 43, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 97, 114, 116, 104, 76, 101, 118, 105, 97, 116, 104, 97, 110, 80, 97, 116, 99, 104, 0, 0, 0, 0, 47, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 97, 114, 116, 104, 76, 101, 118, 105, 97, 116, 104, 97, 110, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 34, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 110, 101, 109, 121, 80, 97, 116, 99, 104, 0, 0, 0, 0, 49, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 110, 101, 109, 121, 80, 97, 116, 99, 104, 124, 69, 110, 101, 109, 121, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 39, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 121, 101, 108, 101, 115, 115, 68, 111, 103, 80, 97, 116, 99, 104, 0, 0, 0, 0, 59, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 69, 121, 101, 108, 101, 115, 115, 68, 111, 103, 80, 97, 116, 99, 104, 124, 69, 121, 101, 108, 101, 115, 115, 68, 111, 103, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 41, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 70, 111, 114, 101, 115, 116, 75, 101, 101, 112, 101, 114, 80, 97, 116, 99, 104, 0, 0, 0, 0, 38, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 71, 104, 111, 115, 116, 71, 105, 114, 108, 80, 97, 116, 99, 104, 0, 0, 0, 0, 39, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 72, 111, 97, 114, 100, 101, 114, 66, 117, 103, 80, 97, 116, 99, 104, 0, 0, 0, 0, 52, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 72, 111, 97, 114, 100, 101, 114, 66, 117, 103, 80, 97, 116, 99, 104, 124, 66, 117, 103, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 38, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 72, 121, 103, 114, 111, 100, 101, 114, 101, 80, 97, 116, 99, 104, 0, 0, 0, 0, 35, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 74, 101, 115, 116, 101, 114, 80, 97, 116, 99, 104, 0, 0, 0, 0, 41, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 75, 105, 100, 110, 97, 112, 112, 101, 114, 70, 111, 120, 80, 97, 116, 99, 104, 0, 0, 0, 0, 54, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 75, 105, 100, 110, 97, 112, 112, 101, 114, 70, 111, 120, 80, 97, 116, 99, 104, 124, 70, 111, 120, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 37, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 77, 97, 110, 101, 97, 116, 101, 114, 80, 97, 116, 99, 104, 0, 0, 0, 0, 38, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 77, 97, 110, 116, 105, 99, 111, 105, 108, 80, 97, 116, 99, 104, 0, 0, 0, 0, 35, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 78, 101, 115, 116, 84, 114, 97, 99, 107, 101, 114, 0, 0, 0, 0, 39, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 78, 117, 116, 99, 114, 97, 99, 107, 101, 114, 80, 97, 116, 99, 104, 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 79, 108, 100, 66, 105, 114, 100, 80, 97, 116, 99, 104, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 79, 108, 100, 66, 105, 114, 100, 80, 97, 116, 99, 104, 124, 79, 108, 100, 66, 105, 114, 100, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 42, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 82, 111, 97, 109, 105, 110, 103, 76, 111, 99, 117, 115, 116, 80, 97, 116, 99, 104, 0, 0, 0, 0, 38, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 110, 97, 114, 101, 70, 108, 101, 97, 80, 97, 116, 99, 104, 0, 0, 0, 0, 57, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 83, 110, 97, 114, 101, 70, 108, 101, 97, 80, 97, 116, 99, 104, 124, 83, 110, 97, 114, 101, 70, 108, 101, 97, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 40, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 112, 111, 114, 101, 76, 105, 122, 97, 114, 100, 80, 97, 116, 99, 104, 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 84, 104, 117, 109, 112, 101, 114, 80, 97, 116, 99, 104, 0, 0, 0, 0, 53, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 84, 104, 117, 109, 112, 101, 114, 80, 97, 116, 99, 104, 124, 84, 104, 117, 109, 112, 101, 114, 86, 105, 101, 119, 83, 116, 97, 116, 101, 0, 0, 0, 0, 39, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 84, 117, 108, 105, 112, 83, 110, 97, 107, 101, 80, 97, 116, 99, 104, 0, 0, 0, 0, 43, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 73, 110, 105, 116, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 80, 97, 116, 99, 104, 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 101, 115, 115, 105, 111, 110, 83, 116, 97, 116, 101, 0, 0, 0, 0, 47, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 83, 101, 115, 115, 105, 111, 110, 83, 116, 97, 116, 101, 124, 88, 79, 82, 83, 104, 105, 102, 116, 51, 50, 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 107, 105, 110, 73, 110, 115, 116, 97, 110, 99, 101, 0, 0, 0, 0, 28, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 107, 105, 110, 0, 0, 0, 0, 32, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 78, 101, 115, 116, 83, 107, 105, 110, 0, 0, 0, 0, 34, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 107, 105, 110, 67, 111, 110, 102, 105, 103, 0, 0, 0, 0, 47, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 68, 101, 102, 97, 117, 108, 116, 77, 97, 112, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 0, 0, 0, 0, 45, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 68, 101, 102, 97, 117, 108, 116, 77, 97, 112, 67, 111, 110, 102, 105, 103, 69, 110, 116, 114, 121, 0, 0, 0, 0, 48, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 68, 101, 102, 97, 117, 108, 116, 83, 107, 105, 110, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 0, 0, 0, 0, 46, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 68, 101, 102, 97, 117, 108, 116, 83, 107, 105, 110, 67, 111, 110, 102, 105, 103, 69, 110, 116, 114, 121, 0, 0, 0, 0, 30, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 67, 111, 110, 102, 105, 103, 0, 0, 0, 0, 31, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 42, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 110, 101, 109, 121, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 0, 0, 0, 0, 40, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 77, 97, 112, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 0, 0, 0, 0, 39, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 107, 105, 110, 67, 111, 110, 102, 105, 103, 69, 110, 116, 114, 121, 0, 0, 0, 0, 39, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 67, 111, 110, 102, 105, 103, 67, 111, 110, 118, 101, 114, 116, 101, 114, 0, 0, 0, 0, 40, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 80, 114, 111, 102, 105, 108, 101, 67, 111, 110, 118, 101, 114, 116, 101, 114, 0, 0, 0, 0, 44, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 69, 110, 101, 109, 121, 67, 111, 110, 102, 105, 103, 67, 111, 110, 118, 101, 114, 116, 101, 114, 0, 0, 0, 0, 47, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 67, 111, 110, 102, 105, 103, 74, 115, 111, 110, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 0, 0, 0, 0, 31, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 107, 105, 110, 110, 101, 114, 0, 0, 0, 0, 38, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 83, 107, 105, 110, 82, 101, 112, 111, 115, 105, 116, 111, 114, 121, 0, 0, 0, 0, 44, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 77, 105, 115, 115, 105, 110, 103, 83, 107, 105, 110, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 46, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 68, 117, 112, 108, 105, 99, 97, 116, 101, 83, 107, 105, 110, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 46, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 73, 110, 118, 97, 108, 105, 100, 83, 107, 105, 110, 73, 100, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 67, 111, 110, 102, 105, 103, 83, 101, 114, 118, 101, 114, 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 67, 111, 110, 102, 105, 103, 67, 108, 105, 101, 110, 116, 0, 0, 0, 0, 36, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 124, 80, 114, 111, 102, 105, 108, 101, 84, 101, 115, 116, 115, 0, 0, 0, 0, 45, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 80, 114, 111, 102, 105, 108, 101, 84, 101, 115, 116, 115, 124, 70, 97, 107, 101, 83, 107, 105, 110, 0, 0, 0, 0, 46, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 65, 118, 97, 105, 108, 97, 98, 108, 101, 83, 107, 105, 110, 86, 105, 101, 119, 0, 0, 0, 0, 51, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 86, 105, 101, 119, 77, 111, 100, 101, 108, 0, 0, 0, 0, 55, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 69, 110, 101, 109, 121, 83, 107, 105, 110, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 77, 101, 110, 117, 0, 0, 0, 0, 49, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 77, 97, 112, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 86, 105, 101, 119, 0, 0, 0, 0, 47, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 83, 97, 118, 101, 80, 114, 111, 102, 105, 108, 101, 80, 111, 112, 111, 118, 101, 114, 0, 0, 0, 0, 40, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 83, 101, 108, 102, 68, 101, 115, 116, 114, 111, 121, 0, 0, 0, 0, 46, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 83, 107, 105, 110, 70, 114, 101, 113, 117, 101, 110, 99, 121, 86, 105, 101, 119, 0, 0, 0, 0, 37, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 84, 101, 115, 116, 83, 107, 105, 110, 0, 0, 0, 0, 43, 65, 110, 116, 108, 101, 114, 83, 104, 101, 100, 46, 83, 107, 105, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 86, 105, 101, 119, 124, 84, 101, 115, 116, 67, 111, 110, 102, 105, 103, 77, 101, 110, 117 }; result.TotalFiles = 49; result.TotalTypes = 117; result.IsEditorOnly = false; return result; } } namespace AntlerShed.SkinRegistry { internal class DummySkinner : Skinner { public void Apply(GameObject enemy) { } public void Remove(GameObject enemy) { } } internal class EnemyRepository { private IDictionary<string, EnemyInfo> enemyRegistry = new Dictionary<string, EnemyInfo>(); internal Dictionary<string, EnemyInfo> Enemies => new Dictionary<string, EnemyInfo>(enemyRegistry); internal void RegisterEnemy(string enemyType, string name, SpawnLocation location) { if (string.IsNullOrEmpty(enemyType)) { throw new InvalidEnemyTypeException(enemyType); } if (enemyRegistry.ContainsKey(enemyType)) { throw new DuplicateEnemyException(enemyType); } enemyRegistry.Add(enemyType, new EnemyInfo(name, enemyType, location)); } } internal class DuplicateEnemyException : Exception { internal DuplicateEnemyException(string enemyType) : base("Enemy with type \"" + enemyType + "\" has already been registered.") { } } internal class InvalidEnemyTypeException : Exception { internal InvalidEnemyTypeException(string badType) : base("\"" + (badType ?? "null") + "\" is not a valid enemy type.") { } } [BepInPlugin("antlershed.lethalcompany.enemyskinregistry", "EnemySkinRegistry", "1.4.6")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class EnemySkinRegistry : BaseUnityPlugin { public const string modGUID = "antlershed.lethalcompany.enemyskinregistry"; public const string modName = "EnemySkinRegistry"; public const string modVersion = "1.4.6"; public const string GHOST_GIRL_ID = "LethalCompany.GhostGirl"; public const string THUMPER_ID = "LethalCompany.Thumper"; public const string HOARDER_BUG_ID = "LethalCompany.HoarderBug"; public const string NUTCRACKER_ID = "LethalCompany.Nutcracker"; public const string JESTER_ID = "LethalCompany.Jester"; public const string SPIDER_ID = "LethalCompany.BunkerSpider"; public const string HYGRODERE_ID = "LethalCompany.Hygrodere"; public const string COILHEAD_ID = "LethalCompany.Coilhead"; public const string SNARE_FLEA_ID = "LethalCompany.SnareFlea"; public const string SPORE_LIZARD_ID = "LethalCompany.SporeLizard"; public const string BRACKEN_ID = "LethalCompany.Bracken"; public const string EYELESS_DOG_ID = "LethalCompany.EyelessDog"; public const string BABOON_HAWK_ID = "LethalCompany.BaboonHawk"; public const string FOREST_KEEPER_ID = "LethalCompany.ForestKeeper"; public const string EARTH_LEVIATHAN_ID = "LethalCompany.EarthLeviathan"; public const string MANTICOIL_ID = "LethalCompany.Manticoil"; public const string CIRCUIT_BEES_ID = "LethalCompany.CircuitBees"; public const string ROAMING_LOCUST_ID = "LethalCompany.RoamingLocust"; public const string OLD_BIRD_ID = "LethalCompany.OldBird"; public const string BUTLER_ID = "LethalCompany.Butler"; public const string TULIP_SNAKE_ID = "LethalCompany.TulipSnake"; public const string BARBER_ID = "LethalCompany.Barber"; public const string KIDNAPPER_FOX_ID = "LethalCompany.KidnapperFox"; public const string MANEATER_ID = "LethalCompany.Maneater"; public const string EXPERIMENTATION_ID = "41 Experimentation"; public const string ASSURANCE_ID = "220 Assurance"; public const string VOW_ID = "56 Vow"; public const string MARCH_ID = "61 March"; public const string REND_ID = "85 Rend"; public const string DINE_ID = "7 Dine"; public const string OFFENSE_ID = "21 Offense"; public const string TITAN_ID = "8 Titan"; public const string ARTIFICE_ID = "68 Artifice"; public const string EMBRION_ID = "5 Embrion"; public const string ADAMANCE_ID = "20 Adamance"; public const string WASTELAND_TAG = "wasteland"; public const string CANYON_TAG = "canyon"; public const string VALLEY_TAG = "valley"; public const string TUNDRA_TAG = "tundra"; public const string MARSH_TAG = "marsh"; public const string MILITARY_TAG = "military"; public const string ROCKY_TAG = "rocky"; public const string FREE_TAG = "free"; public const string PAID_TAG = "paid"; private readonly Harmony harmony = new Harmony("antlershed.lethalcompany.enemyskinregistry"); private static bool configInitialized = false; private static SkinRepository skins = new SkinRepository(); private static EnemyRepository enemies = new EnemyRepository(); private static MoonRepository moons = new MoonRepository(); private static SessionState sessionState = new SessionState(); private static SkinConfig skinConfig; private static ConfigServer configServer = new ConfigServer(); private static ConfigClient configClient = new ConfigClient(); private static EnemyEventHandlerContainer EventHandlers = new EnemyEventHandlerContainer(); internal static ManualLogSource SkinLogger { get; private set; } = Logger.CreateLogSource("antlershed.lethalcompany.enemyskinregistry"); internal static LogLevel LogLevelSetting => skinConfig?.LogLevelSetting?.Value ?? LogLevel.INFO; internal static bool AllowSyncSetting => (skinConfig?.AllowSyncSetting?.Value).GetValueOrDefault(); internal static bool AttemptSyncSetting => (skinConfig?.AttemptSyncSetting?.Value).GetValueOrDefault(); internal static bool AllowIndoorOutdoorConfig => skinConfig?.IndoorOutdoorSetting?.Value ?? true; internal static bool ClientSyncActive { get { ConfigClient obj = configClient; if (obj != null && obj.Running) { return AttemptSyncSetting; } return false; } } private void Awake() { //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Expected O, but got Unknown //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Expected O, but got Unknown //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05f7: Expected O, but got Unknown //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_060c: Expected O, but got Unknown //IL_0617: Unknown result type (might be due to invalid IL or missing references) //IL_0621: Expected O, but got Unknown skinConfig = new SkinConfig(((BaseUnityPlugin)this).Config); harmony.PatchAll(typeof(BaboonHawkPatch)); harmony.PatchAll(typeof(BrackenPatch)); harmony.PatchAll(typeof(BunkerSpiderPatch)); harmony.PatchAll(typeof(CoilheadPatch)); harmony.PatchAll(typeof(EarthLeviathanPatch)); harmony.PatchAll(typeof(EyelessDogPatch)); harmony.PatchAll(typeof(ForestKeeperPatch)); harmony.PatchAll(typeof(GhostGirlPatch)); harmony.PatchAll(typeof(HoarderBugPatch)); harmony.PatchAll(typeof(HygroderePatch)); harmony.PatchAll(typeof(JesterPatch)); harmony.PatchAll(typeof(NutcrackerPatch)); harmony.PatchAll(typeof(SnareFleaPatch)); harmony.PatchAll(typeof(SporeLizardPatch)); harmony.PatchAll(typeof(ThumperPatch)); harmony.PatchAll(typeof(CircuitBeesPatch)); harmony.PatchAll(typeof(RoamingLocustPatch)); harmony.PatchAll(typeof(TulipSnakePatch)); harmony.PatchAll(typeof(EnemyPatch)); harmony.PatchAll(typeof(InitializationPatch)); harmony.PatchAll(typeof(ButlerPatch)); harmony.PatchAll(typeof(OldBirdPatch)); harmony.PatchAll(typeof(BarberPatch)); harmony.PatchAll(typeof(KidnapperFoxPatch)); harmony.PatchAll(typeof(ManeaterPatch)); if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogMessage((object)"Finished Patching Skin Events"); } RegisterEnemy("LethalCompany.GhostGirl", "Ghost Girl", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.Thumper", "Thumper", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.HoarderBug", "Hoarder Bug", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.Nutcracker", "Nutcracker", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.Jester", "Jester", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.BunkerSpider", "Bunker Spider", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.Hygrodere", "Hygrodere", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.Coilhead", "Coilhead", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.SnareFlea", "Snare Flea", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.SporeLizard", "Spore Lizard", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.Bracken", "Bracken", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.EyelessDog", "Eyeless Dog", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.BaboonHawk", "Baboon Hawk", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.ForestKeeper", "Forest Keeper", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.EarthLeviathan", "Earth Leviathan", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.CircuitBees", "Circuit Bees", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.Manticoil", "Manticoil", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.RoamingLocust", "Roaming Locusts", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.OldBird", "Old Bird", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.Butler", "Butler", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.TulipSnake", "Tulip Snake", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.KidnapperFox", "Kidnapper Fox", SpawnLocation.OUTDOOR); RegisterEnemy("LethalCompany.Barber", "Barber", SpawnLocation.INDOOR); RegisterEnemy("LethalCompany.Maneater", "Maneater", SpawnLocation.INDOOR); if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogMessage((object)"Registered Vanilla Enemies"); } RegisterMoon("41 Experimentation", "Experimentation", new string[2] { "wasteland", "free" }, null); RegisterMoon("220 Assurance", "Assurance", new string[2] { "canyon", "free" }, null); RegisterMoon("56 Vow", "Vow", new string[2] { "valley", "free" }, null); RegisterMoon("21 Offense", "Offense", new string[2] { "canyon", "free" }, null); RegisterMoon("61 March", "March", new string[2] { "valley", "free" }, null); RegisterMoon("85 Rend", "Rend", new string[2] { "tundra", "paid" }, null); RegisterMoon("7 Dine", "Dine", new string[2] { "tundra", "paid" }, null); RegisterMoon("8 Titan", "Titan", new string[2] { "tundra", "paid" }, null); RegisterMoon("20 Adamance", "Adamance", new string[2] { "valley", "free" }, null); RegisterMoon("68 Artifice", "Artifice", new string[3] { "marsh", "military", "paid" }, null); RegisterMoon("5 Embrion", "Embrion", new string[2] { "rocky", "paid" }, null); if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogMessage((object)"Registered Vanilla Moons"); } string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); AssetBundle bundle = AssetBundle.LoadFromFile(Path.Combine(directoryName, "AssetBundles/assets")); LethalConfigManager.AddConfigItem((BaseConfigItem)new GenericButtonConfigItem("Menu Access", "Enemy Skin Configuration Menu", "Nested configuration menu for editing skins", "Open", (GenericButtonHandler)delegate { GameObject obj = GameObject.Find("QuickMenu"); Transform val = ((obj != null) ? obj.transform : null) ?? ((Component)Object.FindFirstObjectByType<MenuManager>()).transform.parent; Dictionary<string, Skin[]> dictionary = new Dictionary<string, Skin[]>(); foreach (EnemyInfo enemy in enemies.Enemies.Values) { dictionary.Add(enemy.Id, skins.Skins.Values.Where((Skin skin) => skin.EnemyId.Equals(enemy.Id)).ToArray()); } ConfigurationViewModel viewModel = new ConfigurationViewModel(moons.Moons.Values.ToArray(), moons.MoonTags.ToArray(), enemies.Enemies, dictionary, skinConfig.GetProfiles(), skinConfig.GetWorkingProfile().Copy(), (from pair in skinConfig.DefaultSkinConfigs where skins.Skins.ContainsKey(pair.Key) select new KeyValuePair<string, string>(pair.Key, skins.Skins[pair.Key].Label)).ToDictionary((KeyValuePair<string, string> pair) => pair.Key, (KeyValuePair<string, string> pair) => pair.Value), (from pair in skinConfig.DefaultMoonConfigs where moons.Moons.ContainsKey(pair.Key) select new KeyValuePair<string, string>(pair.Key, moons.Moons[pair.Key].Name)).ToDictionary((KeyValuePair<string, string> pair) => pair.Key, (KeyValuePair<string, string> pair) => pair.Value)); Object.Instantiate<GameObject>(bundle.LoadAsset<GameObject>("assets/enemyskinregistry/ui/skinconfigurationmenu.prefab"), val).GetComponent<EnemySkinConfigurationMenu>().Init(viewModel); })); LethalConfigManager.AddConfigItem((BaseConfigItem)new BoolCheckBoxConfigItem(skinConfig.AttemptSyncSetting, false)); LethalConfigManager.AddConfigItem((BaseConfigItem)new BoolCheckBoxConfigItem(skinConfig.AllowSyncSetting, false)); LethalConfigManager.AddConfigItem((BaseConfigItem)new BoolCheckBoxConfigItem(skinConfig.IndoorOutdoorSetting, false)); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)new EnumDropDownConfigItem<LogLevel>(skinConfig.LogLevelSetting, false)); } internal static void InitConfig() { if (configInitialized) { return; } try { if (AppDomain.CurrentDomain.GetAssemblies().Any((Assembly a) => a.GetName().Name == "LethalLevelLoader")) { if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogMessage((object)"Found lethal level loader plugin"); } LethalLevelLoaderCompatibility.RegisterLLLMaps(); } } catch { } if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogMessage((object)"Initializing config"); } skinConfig.InitConfigForAllSkins(enemies.Enemies.Values.ToArray(), skins.Skins.Values.ToArray(), moons.Moons.Values.Select((MoonInfo moon) => moon.Id).ToArray(), moons.MoonTags.ToHashSet()); configInitialized = true; } public static void RegisterSkin(Skin skin, DefaultSkinConfigData? defaultConfig = null) { try { skins.RegisterSkin(skin); if (defaultConfig.HasValue) { skinConfig.AddDefaultSkinConfig(new DefaultSkinConfiguration(skin.Id, defaultConfig.Value.defaultEntries, defaultConfig.Value.defaultOutdoorFrequency, defaultConfig.Value.vanillaFallbackOutdoorFrequency, defaultConfig.Value.defaultIndoorFrequency, defaultConfig.Value.vanillaFallbackIndoorFrequency)); } if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogInfo((object)("Registered skin \"" + skin.Label + "\"")); } } catch (Exception ex) { if (ex is DuplicateSkinException || ex is InvalidSkinIdException) { if (LogLevelSetting >= LogLevel.ERROR) { SkinLogger.LogError((object)ex.Message); } return; } throw ex; } } public static void RegisterSkin(Skin skin) { RegisterSkin(skin, null); } public static void RegisterNestSkin(NestSkin nestSkin) { try { skins.RegisterNestSkin(nestSkin); } catch (Exception ex) { if (ex is DuplicateSkinException || ex is InvalidSkinIdException || ex is MissingSkinException) { if (LogLevelSetting >= LogLevel.ERROR) { SkinLogger.LogError((object)ex.Message); } return; } throw ex; } } public static void RegisterMoon(string planetName, string configLabel, string[] tags, DefaultMapConfigEntry[] defaultConfig) { try { moons.RegisterMoon(planetName, configLabel, tags); if (defaultConfig != null && defaultConfig.Length != 0) { skinConfig.AddDefaultMoonConfig(new DefaultMapConfiguration(planetName, defaultConfig)); } if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogInfo((object)("Registered moon with id \"" + planetName + "\"")); } } catch (Exception ex) { if (ex is MoonKeyCollisionException || ex is InvalidMoonIdException) { if (LogLevelSetting >= LogLevel.ERROR) { SkinLogger.LogError((object)ex.Message); } return; } throw ex; } } public static Skin PickSkinAtValue(string enemyType, SpawnLocation spawnLocation, float val) { MoonInfo? moon = moons.GetMoon(RoundManager.Instance?.currentLevel?.PlanetName); string skinAtValue = skinConfig.GetConfiguredDistribution(moon?.Id ?? null, moon?.Tags.ToArray() ?? new string[0], enemyType, spawnLocation).GetSkinAtValue(val); return skins.GetSkin(skinAtValue); } public static Skin SelectSpawnSkin(GameObject enemy, string enemyType, SpawnLocation location, float value) { if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogInfo((object)$"Attempting to skin an enemy of type {enemyType}:{location} with randomValue {value} on moon with level id: {RoundManager.Instance?.currentLevel?.PlanetName}"); } if (sessionState.SpawnedFromNest(enemy)) { string text = sessionState.RetrieveStagedSkin(enemy); if (text == null || !skins.Skins.ContainsKey(text)) { return null; } return skins.Skins[text]; } return PickSkinAtValue(enemyType, location, value); } public static void ApplySkin(Skin skin, string enemyTypeId, GameObject enemy) { Skinner skinner = skin?.CreateSkinner() ?? new DummySkinner(); sessionState.AddSkinner(enemy, skin?.Id, enemyTypeId, skinner); skinner.Apply(enemy); if (LogLevelSetting >= LogLevel.INFO && skin != null) { SkinLogger.LogInfo((object)("Applying skin with id \"" + skin.Id + "\" to enemy of type \"" + enemyTypeId + "\"")); } } public static void ApplyNestSkin(string skinId, string enemyTypeId, EnemyAINestSpawnObject nest) { Skinner skinner = ((skinId != null && skins.NestSkins.ContainsKey(skinId)) ? skins.NestSkins[skinId] : null)?.CreateNestSkinner() ?? new DummySkinner(); sessionState.AddSkinner(((Component)nest).gameObject, skinId, enemyTypeId, skinner); sessionState.AddSkinNest(nest, skinId); skinner.Apply(((Component)nest).gameObject); if (LogLevelSetting >= LogLevel.INFO && skinId != null && skins.NestSkins.ContainsKey(skinId)) { SkinLogger.LogInfo((object)("Applying nest skin with id \"" + skinId + "\" to enemy nest of type \"" + enemyTypeId + "\"")); } } public static void RemoveSkinner(GameObject enemy) { sessionState.GetSkinner(enemy)?.Remove(enemy); sessionState.RemoveInstance(enemy); if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogInfo((object)"Removed skinner from enemy instance"); } } public static void RegisterEnemy(string enemyId, string label, SpawnLocation spawnLocation) { try { enemies.RegisterEnemy(enemyId, label, spawnLocation); if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogInfo((object)("Registered enemy with name \"" + label + "\"")); } } catch (Exception ex) { if (ex is DuplicateEnemyException || ex is InvalidEnemyTypeException) { if (LogLevelSetting >= LogLevel.ERROR) { SkinLogger.LogError((object)ex.Message); } return; } throw ex; } } public static void ReassignSkin(GameObject enemy, string newSkinId) { Skinner skinner = sessionState.GetSkinner(enemy); string enemyType = sessionState.GetEnemyType(enemy); if (enemyType != null && skinner != null) { Skin skin = skins.GetSkin(newSkinId); if (skin != null && enemyType.Equals(skins.GetSkin(newSkinId).EnemyId)) { skinner.Remove(enemy); sessionState.ClearSkinner(enemy); Skinner skinner2 = skin?.CreateSkinner(); sessionState.AddSkinner(enemy, skin?.Id, skin.EnemyId, skinner2); skinner2.Apply(enemy); } else if (skin == null) { if (LogLevelSetting >= LogLevel.WARN) { SkinLogger.LogWarning((object)("No skin was found for id \"" + newSkinId + ".\" This enemy will be left as is.")); } } else if (!enemyType.Equals(skins.GetSkin(newSkinId).EnemyId) && LogLevelSetting >= LogLevel.WARN) { SkinLogger.LogWarning((object)("You're trying to assign a skin with enemy type \"" + skin.EnemyId + "\" to an enemy with type \"" + enemyType + ".\" This enemy will be left as is.")); } } else if (LogLevelSetting >= LogLevel.WARN) { SkinLogger.LogWarning((object)("No skinner was found for object \"" + ((Object)enemy).name + ".\" Use EnemySkinRegistry.ApplySkin for enemies that do not have a skinner instance on them for whatever reason.")); } } public static string GetSkinId(GameObject enemy) { return sessionState.GetSkinId(enemy); } public Skin GetSkinData(string skinId) { return skins.GetSkin(skinId); } public static string GetEnemyType(GameObject enemy) { return sessionState.GetEnemyType(enemy); } public static Skinner GetSkinnerInstance(GameObject enemy) { return sessionState.GetSkinner(enemy); } [Obsolete("The old signature for register enemy is deprecatecd. If you were previously using this method to register your enemy, call RegisterEnemy(string, string, Spawnlocation) instead to configure it's usual spawn location type. Ths method defaults to indoor.")] public static void RegisterEnemy(string enemyId, string label) { RegisterEnemy(enemyId, label, SpawnLocation.INDOOR); } internal static void UpdateConfiguration(Profile updatedProfile) { if (!configClient.Running || !AttemptSyncSetting) { skinConfig.UpdateConfiguration(updatedProfile.Copy()); } if (configServer.Running) { configServer.BroadcastSyncMessage(skinConfig.GetWorkingProfile()); } applyDeactivatedSkins(); } private static void applyDeactivatedSkins() { foreach (GameObject item in sessionState.GetSkinnedObject()) { string enemyType = sessionState.GetEnemyType(item); string skinId = sessionState.GetSkinId(item); Skinner skinner = sessionState.GetSkinner(item); if (enemyType != null && skinId != null && skinner != null && !(skinConfig.GetWorkingProfile().GetEnemyConfig(enemyType)?.ActiveSkins ?? new string[0]).Contains(skinId)) { skinner.Remove(item); sessionState.ClearSkinner(item); } } } public static List<EnemyEventHandler> GetEnemyEventHandlers(EnemyAI enemy) { return EventHandlers.GetEventHandlers(enemy); } public static void RegisterEnemyEventHandler(EnemyAI enemy, EnemyEventHandler handler) { EventHandlers.RegisterEnemyEventHandler(enemy, handler); if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogInfo((object)"Registered event handler for enemy."); } } public static void RemoveEnemyEventHandler(EnemyAI enemy, EnemyEventHandler handler) { EventHandlers.RemoveEnemyEventHandler(enemy, handler); if (LogLevelSetting >= LogLevel.INFO) { SkinLogger.LogInfo((object)"Removed event handler for enemy."); } } public static void StageSkin(GameObject spawnedEnemy, EnemyAINestSpawnObject spawner) { sessionState.StageSkinForSpawn(spawner, spawnedEnemy); } internal static string VanillaIdFromInstance(EnemyAI enemy) { if (!(enemy is FlowermanAI)) { if (!(enemy is HoarderBugAI)) { if (!(enemy is SandSpiderAI)) { if (!(enemy is BaboonBirdAI)) { if (!(enemy is SpringManAI)) { if (!(enemy is SandWormAI)) { if (!(enemy is MouthDogAI)) { if (!(enemy is ForestGiantAI)) { if (!(enemy is DressGirlAI)) { if (!(enemy is BlobAI)) { if (!(enemy is JesterAI)) { if (!(enemy is NutcrackerEnemyAI)) { if (!(enemy is CentipedeAI)) { if (!(enemy is PufferAI)) { if (!(enemy is CrawlerAI)) { if (!(enemy is RedLocustBees)) { if (!(enemy is DocileLocustBeesAI)) { if (!(enemy is DoublewingAI)) { if (!(enemy is ButlerEnemyAI)) { if (!(enemy is RadMechAI)) { if (!(enemy is FlowerSnakeEnemy)) { if (!(enemy is ClaySurgeonAI)) { if (!(enemy is BushWolfEnemy)) { if (enemy is CaveDwellerAI) { return "LethalCompany.Maneater"; } return null; } return "LethalCompany.KidnapperFox"; } return "LethalCompany.Barber"; } return "LethalCompany.TulipSnake"; } return "LethalCompany.OldBird"; } return "LethalCompany.Butler"; } return "LethalCompany.Manticoil"; } return "LethalCompany.RoamingLocust"; } return "LethalCompany.CircuitBees"; } return "LethalCompany.Thumper"; } return "LethalCompany.SporeLizard"; } return "LethalCompany.SnareFlea"; } return "LethalCompany.Nutcracker"; } return "LethalCompany.Jester"; } return "LethalCompany.Hygrodere"; } return "LethalCompany.GhostGirl"; } return "LethalCompany.ForestKeeper"; } return "LethalCompany.EyelessDog"; } return "LethalCompany.EarthLeviathan"; } return "LethalCompany.Coilhead"; } return "LethalCompany.BaboonHawk"; } return "LethalCompany.BunkerSpider"; } return "LethalCompany.HoarderBug"; } return "LethalCompany.Bracken"; } internal static void ApplyDefaultSkinConfiguration(string skinId, Profile config) { if (skinId != null && skins.Skins.ContainsKey(skinId)) { skinConfig.ApplyDefaultSkinConfig(skinId, config, skins.Skins[skinId].EnemyId, moons.Moons.Keys.ToArray(), moons.MoonTags.ToArray()); } else if (LogLevelSetting >= LogLevel.WARN) { SkinLogger.LogWarning((object)("Skipping default configuration for skin with id \"" + skinId + "\" because it is not installed.")); } } internal static void ApplyDefaultMoonConfiguration(string moonId, Profile config) { if (moonId != null && moons.Moons.ContainsKey(moonId)) { skinConfig.ApplyDefaultMoonConfig(moonId, config, skins.Skins.Keys.ToArray()); } else if (LogLevelSetting >= LogLevel.WARN) { SkinLogger.LogWarning((object)("Skipping default configuration for moon with id \"" + moonId + "\" because it is not installed.")); } } internal static Profile GetWorkingProfile() { return skinConfig.GetWorkingProfile(); } internal static void SyncWithRemoteProfile(Profile cfg) { List<string> list2 = cfg.ConfigData.Select((EnemyConfiguration enemyConfig) => enemyConfig.EnemyId).ToHashSet().Except(enemies.Enemies.Keys.ToHashSet()) .ToList(); List<string> list3 = cfg.ConfigData.Select((EnemyConfiguration enemyConfig) => enemyConfig.ActiveSkins).Aggregate(new HashSet<string>(), (HashSet<string> list, string[] arr) => list.Union(arr).ToHashSet()).Except(skins.Skins.Keys.ToHashSet()) .ToList(); List<string> list4 = cfg.ConfigData.Select((EnemyConfiguration enemyConfig) => enemyConfig.MapConfigs).Aggregate(new HashSet<string>(), (HashSet<string> list, MapConfiguration[] moonCfgs) => list.Union(moonCfgs.Select((MapConfiguration moonCfg) => moonCfg.Id)).ToHashSet()).Except(moons.Moons.Keys.ToHashSet()) .ToList(); if (list2.Count > 0 && LogLevelSetting >= LogLevel.ERROR) { SkinLogger.LogError((object)("Could not sync with remote profile. This client is missing the following enemies: " + list2.Aggregate("", (string current, string enemy) => current + (string.IsNullOrEmpty(current) ? "" : ", ") + enemy))); } if (list3.Count > 0 && LogLevelSetting >= LogLevel.ERROR) { SkinLogger.LogError((object)("Could not sync with remote profile. This client is missing the following skins: " + list3.Aggregate("", (string current, string skin) => current + (string.IsNullOrEmpty(current) ? "" : ", ") + skin))); } if (list4.Count > 0 && LogLevelSetting >= LogLevel.ERROR) { SkinLogger.LogError((object)("Could not sync with remote profile. This client is missing the following moons: " + list4.Aggregate("", (string current, string moon) => current + (string.IsNullOrEmpty(current) ? "" : ", ") + moon))); } if (list4.Count == 0 && list3.Count == 0 && list2.Count == 0) { skinConfig.SyncConfiguration(cfg); applyDeactivatedSkins(); } } internal static string[] GetStoredProfiles() { return skinConfig.GetProfiles(); } internal static string StoreProfile(Profile tempProfile, string label) { string text = new Regex("[^a-zA-Z0-9_-]").Replace(label, ""); if (string.IsNullOrEmpty(text)) { throw new ProfileNameException(); } skinConfig.StoreProfile(tempProfile, text); return text; } internal static string OverwriteProfile(Profile tempProfile, string label) { string text = new Regex("[^a-zA-Z0-9_-]").Replace(label, ""); if (string.IsNullOrEmpty(text)) { throw new ProfileNameException(); } skinConfig.OverwriteProfile(tempProfile, text); return text; } internal static Profile GetProfile(string profile) { if (skinConfig.GetProfiles().Contains(profile)) { return skinConfig.LoadProfile(profile); } throw new KeyNotFoundException(); } internal static void StartConfigServer() { if (configServer != null && skinConfig != null && !configServer.Running) { configServer.Start(); configServer.BroadcastSyncMessage(skinConfig.GetWorkingProfile()); } } internal static void StopConfigServer() { if (configServer != null && configServer.Running) { configServer.Stop(); } } internal static void StartConfigClient() { if (configClient != null && !configClient.Running) { configClient.Start(); configClient.SendSyncRequestToServer(); } } internal static void StopConfigClient() { if (configClient != null && configClient.Running) { configClient.Stop(); skinConfig.LoadLocalProfile(); } } } public enum LogLevel { NONE, ERROR, WARN, INFO } public struct DefaultSkinConfigData { internal DefaultSkinConfigEntry[] defaultEntries; internal float defaultIndoorFrequency; internal float vanillaFallbackIndoorFrequency; internal float defaultOutdoorFrequency; internal float vanillaFallbackOutdoorFrequency; public DefaultSkinConfigData(DefaultSkinConfigEntry[] entries, float defaultOutdoorFrequency, float vanillafallbackOutdoor, float defaultIndoorFrequency, float vanillafallbackIndoor) { defaultEntries = entries; this.defaultOutdoorFrequency = defaultOutdoorFrequency; this.defaultIndoorFrequency = defaultIndoorFrequency; vanillaFallbackOutdoorFrequency = vanillafallbackOutdoor; vanillaFallbackIndoorFrequency = vanillafallbackIndoor; } public DefaultSkinConfigData(DefaultSkinConfigEntry[] entries, float defaultFrequency = 1f, float vanillafallback = 0f) { defaultEntries = entries; defaultIndoorFrequency = defaultFrequency; defaultOutdoorFrequency = defaultFrequency; vanillaFallbackIndoorFrequency = vanillafallback; vanillaFallbackOutdoorFrequency = vanillafallback; } } internal class ProfileNameException : Exception { public ProfileNameException() : base("Skin names need at least one alphanumeric character, dash, or underscore") { } } public enum SpawnLocation { INDOOR, OUTDOOR } internal struct EnemyInfo { public string Name { get; } public string Id { get; } public SpawnLocation DefaultSpawnLocation { get; } public EnemyInfo(string name, string id, SpawnLocation spawnLocation) { Name = name; Id = id; DefaultSpawnLocation = spawnLocation; } } internal struct MoonInfo { private HashSet<string> tags; public string Name { get; } public string Id { get; } public HashSet<string> Tags => tags; internal MoonInfo(string name, string id, HashSet<string> tags) { Name = name; Id = id; this.tags = tags ?? new HashSet<string>(); } } internal class SkinDistribution { private SkinThreshold[] skins; internal SkinDistribution(SkinThreshold[] skins) { this.skins = skins; } internal SkinDistribution() { skins = new SkinThreshold[0]; } internal string GetSkinAtValue(float value) { int i; for (i = 0; i < skins.Length && value > skins[i].Threshold; i++) { } if (i >= skins.Length) { return null; } return skins[i].SkinId; } } internal struct SkinThreshold { public float Threshold { get; } public string SkinId { get; } public SkinThreshold(string skinId, float threshold) { Threshold = threshold; SkinId = skinId; } } internal struct ModDiff { public string[] Skins { get; } public string[] Moons { get; } public string[] Enemies { get; } public ModDiff(string[] skins, string[] moons, string[] enemies) { Skins = skins; Moons = moons; Enemies = enemies; } } internal class LethalLevelLoaderCompatibility { internal static void RegisterLLLMaps() { HashSet<string> hashSet = new HashSet<string>(); foreach (ExtendedLevel extendedLevel in PatchedContent.ExtendedLevels) { if ((Object)(object)extendedLevel.SelectableLevel != (Object)null) { EnemySkinRegistry.RegisterMoon(extendedLevel.SelectableLevel.PlanetName, extendedLevel.NumberlessPlanetName, ((ExtendedContent)extendedLevel).ContentTags.Select((ContentTag tag) => tag.contentTagName.ToLower()).ToArray(), null); hashSet.Add(extendedLevel.SelectableLevel.PlanetName); } } foreach (ExtendedMod extendedMod in PatchedContent.ExtendedMods) { foreach (ExtendedLevel extendedLevel2 in extendedMod.ExtendedLevels) { if ((Object)(object)extendedLevel2.SelectableLevel != (Object)null && !hashSet.Contains(extendedLevel2.SelectableLevel.PlanetName)) { EnemySkinRegistry.RegisterMoon(extendedLevel2.SelectableLevel.PlanetName, extendedLevel2.NumberlessPlanetName, ((ExtendedContent)extendedLevel2).ContentTags.Select((ContentTag tag) => tag.contentTagName.ToLower()).ToArray(), null); hashSet.Add(extendedLevel2.SelectableLevel.PlanetName); } } } } } internal class MoonRepository { private IDictionary<string, MoonInfo> moonRegistry = new Dictionary<string, MoonInfo>(); private ISet<string> tags = new HashSet<string>(); internal IDictionary<string, MoonInfo> Moons => new Dictionary<string, MoonInfo>(moonRegistry); internal ISet<string> MoonTags => new HashSet<string>(tags); internal void RegisterMoon(string key, string label, string[] tags) { if (string.IsNullOrEmpty(key)) { throw new InvalidMoonIdException(key); } if (moonRegistry.ContainsKey(key)) { throw new MoonKeyCollisionException(key); } if (this.tags.Contains(key)) { this.tags.Remove(key); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.WARN) { EnemySkinRegistry.SkinLogger.LogWarning((object)("Moon \"" + key + "\" had the same id as an existing tag. The tag is being removed in favor of the moon. Moon names should be prefixed with a number and tags should not have the same names as moons.")); } } moonRegistry.Add(key, new MoonInfo(label, key, tags?.ToHashSet() ?? new HashSet<string>())); foreach (string text in tags) { if (!moonRegistry.ContainsKey(text)) { this.tags.Add(text); } else if (EnemySkinRegistry.LogLevelSetting >= LogLevel.WARN) { EnemySkinRegistry.SkinLogger.LogWarning((object)("Tag \"" + text + "\" from moon \"" + key + "\" had the same id as an existing moon. The tag has been skipped in favor of the moon. Moon names should be prefixed with a number and tags should not have the same names as moons.")); } } } internal MoonInfo? GetMoon(string key) { if (key == null || !moonRegistry.ContainsKey(key)) { return null; } return moonRegistry[key]; } } internal class MoonKeyCollisionException : Exception { internal MoonKeyCollisionException(string moonId) : base("Moon or Tag \"" + moonId + "\" has already been registered.") { } } internal class InvalidMoonIdException : Exception { internal InvalidMoonIdException(string badId) : base("\"" + (badId ?? "null") + "\" is not a valid moon Id") { } } internal class BaboonHawkPatch { private class BaboonHawkViewState { public bool inKillAnimation; public int aggressionState; public bool sleeping; public bool sitting; } private const int NONE = 0; private const int INTIMIDATE = 1; private const int ATTACK = 2; private static Dictionary<BaboonBirdAI, BaboonHawkViewState> viewState = new Dictionary<BaboonBirdAI, BaboonHawkViewState>(); [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "Start")] private static void PostfixStart(BaboonBirdAI __instance, bool ___doingKillAnimation) { viewState[__instance] = new BaboonHawkViewState(); viewState[__instance].inKillAnimation = ___doingKillAnimation; } [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "OnCollideWithPlayer")] private static void PostfixOnCollideWithPlayer(BaboonBirdAI __instance, bool ___doingKillAnimation, float ___timeSinceHitting, Collider other) { if (___timeSinceHitting != 0f) { return; } PlayerControllerB controller = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, ((EnemyAI)__instance).inSpecialAnimation || ___doingKillAnimation, false); if ((Object)(object)controller != (Object)null) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnAttackPlayer(__instance, controller); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk Attack Player"); } } } [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "OnCollideWithEnemy")] private static void PostfixOnCollideWithEnemy(BaboonBirdAI __instance, float ___timeSinceHitting, EnemyAI enemyScript) { if (___timeSinceHitting == 0f) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnAttackEnemy(__instance, enemyScript); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk Attack Enemy"); } } } [HarmonyPrefix] [HarmonyPatch(typeof(BaboonBirdAI), "killPlayerAnimation")] private static void PrefixKillAnimation(BaboonBirdAI __instance, int playerObject) { PlayerControllerB killedPlayer = StartOfRound.Instance.allPlayerScripts[playerObject]; EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnKillPlayer(__instance, killedPlayer); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk Start Kill Player"); } } [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "StopKillAnimation")] private static void PostfixStopKillAnimation(BaboonBirdAI __instance) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnFinishKillPlayerAnimation(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk Cancel Kill Animation"); } } [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "EnemyEnterRestModeClientRpc")] private static void PostfixEnterRestMode(BaboonBirdAI __instance, bool sleep) { if (!viewState.ContainsKey(__instance)) { return; } if (sleep && !viewState[__instance].sleeping) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnSleep(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk Sleep"); } } else if (!sleep && !viewState[__instance].sitting) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnSit(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk Sit"); } } viewState[__instance].sleeping = sleep; viewState[__instance].sitting = !sleep; } [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "EnemyGetUpClientRpc")] private static void PostfixEnemyGetUp(BaboonBirdAI __instance) { if (viewState.ContainsKey(__instance) && (viewState[__instance].sitting || viewState[__instance].sleeping)) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnGetUp(__instance); }); viewState[__instance].sleeping = false; viewState[__instance].sitting = false; } } [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "GrabScrap")] private static void PostfixGrabScrap(BaboonBirdAI __instance) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnPickUpScrap(__instance, __instance.heldScrap); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk pick up scrap"); } } [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "DropScrap")] private static void PostfixDropScrap(BaboonBirdAI __instance) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnDropScrap(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk Drop Scrap"); } } [HarmonyPrefix] [HarmonyPatch(typeof(BaboonBirdAI), "Update")] private static void PrefixUpdate(BaboonBirdAI __instance, int ___previousAggressiveMode, int ___aggressiveMode) { if (((EnemyAI)__instance).isEnemyDead || !viewState.ContainsKey(__instance) || viewState[__instance].aggressionState == ___aggressiveMode) { return; } viewState[__instance].aggressionState = ___aggressiveMode; switch (___aggressiveMode) { case 0: EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnCalmDown(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Calm Down"); } break; case 1: EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnIntimidate(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk Intimidate"); } break; case 2: EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnEnterAttackMode(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Attack State"); } break; } } [HarmonyPostfix] [HarmonyPatch(typeof(BaboonBirdAI), "Update")] private static void PostfixUpdate(BaboonBirdAI __instance, bool ___doingKillAnimation) { if (!viewState.ContainsKey(__instance) || viewState[__instance].inKillAnimation == ___doingKillAnimation) { return; } if (!___doingKillAnimation) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BaboonHawkEventHandler)?.OnFinishKillPlayerAnimation(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"BB Hawk End Kill"); } } viewState[__instance].inKillAnimation = ___doingKillAnimation; } [HarmonyPostfix] [HarmonyPatch(typeof(EnemyAI), "OnDestroy")] private static void PostfixDestroyed(EnemyAI __instance) { if (__instance is BaboonBirdAI && (Object)(object)__instance != (Object)null && viewState.ContainsKey((BaboonBirdAI)(object)((__instance is BaboonBirdAI) ? __instance : null))) { RemoveViewState((BaboonBirdAI)(object)((__instance is BaboonBirdAI) ? __instance : null)); } } internal static void RemoveViewState(BaboonBirdAI __instance) { viewState.Remove(__instance); } } internal class BarberPatch { private class BarberViewState { public bool wasJumping; } private static Dictionary<ClaySurgeonAI, BarberViewState> viewState = new Dictionary<ClaySurgeonAI, BarberViewState>(); [HarmonyPostfix] [HarmonyPatch(typeof(ClaySurgeonAI), "Update")] private static void PostFixUpdate(ClaySurgeonAI __instance) { if (!viewState.ContainsKey(__instance)) { return; } if (__instance.isJumping != viewState[__instance].wasJumping) { if (__instance.isJumping) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BarberEventHandler)?.OnStartJump(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Barber started jump"); } } else { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BarberEventHandler)?.OnStopJump(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Barber stopped jump"); } } } viewState[__instance].wasJumping = __instance.isJumping; } [HarmonyPostfix] [HarmonyPatch(typeof(ClaySurgeonAI), "KillPlayerClientRpc")] private static void PostfixCollideWithPlayer(ClaySurgeonAI __instance) { } } internal class BrackenPatch { private class BrackenViewState { public bool carryingBody; } internal const int SNEAKING = 0; internal const int EVADING = 1; internal const int ENRAGED = 2; private static Dictionary<FlowermanAI, BrackenViewState> viewState = new Dictionary<FlowermanAI, BrackenViewState>(); [HarmonyPrefix] [HarmonyPatch(typeof(EnemyAI), "SwitchToBehaviourStateOnLocalClient")] private static void PrefixSwitchBehavior(EnemyAI __instance, int stateIndex) { if (stateIndex == __instance.currentBehaviourStateIndex || !(__instance is FlowermanAI)) { return; } switch (stateIndex) { case 0: EnemySkinRegistry.GetEnemyEventHandlers(__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BrackenEventHandler)?.OnSneakStateEntered((FlowermanAI)(object)((__instance is FlowermanAI) ? __instance : null)); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Bracken Switch To Sneak"); } break; case 1: EnemySkinRegistry.GetEnemyEventHandlers(__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BrackenEventHandler)?.OnEvadeStateEntered((FlowermanAI)(object)((__instance is FlowermanAI) ? __instance : null)); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Bracken Switch To Evade"); } break; case 2: EnemySkinRegistry.GetEnemyEventHandlers(__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BrackenEventHandler)?.OnEnragedStateEntered((FlowermanAI)(object)((__instance is FlowermanAI) ? __instance : null)); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Bracken Switch To Enrage"); } break; } } [HarmonyPostfix] [HarmonyPatch(typeof(FlowermanAI), "killAnimation")] private static void PostFixKillPlayer(FlowermanAI __instance) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BrackenEventHandler)?.OnSnapPlayerNeck(__instance, ((EnemyAI)__instance).inSpecialAnimationWithPlayer); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Bracken Kill"); } } [HarmonyPostfix] [HarmonyPatch(typeof(FlowermanAI), "Update")] private static void PostFixUpdate(FlowermanAI __instance) { if (!viewState.ContainsKey(__instance)) { return; } if (__instance.carryingPlayerBody != viewState[__instance].carryingBody) { if (__instance.carryingPlayerBody) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BrackenEventHandler)?.OnPickUpCorpse(__instance, __instance.bodyBeingCarried); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Bracken Pickup Corpse"); } } else { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BrackenEventHandler)?.OnDropCorpse(__instance); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Bracken Drop Corpse"); } } } viewState[__instance].carryingBody = __instance.carryingPlayerBody; } [HarmonyPostfix] [HarmonyPatch(typeof(EnemyAI), "OnDestroy")] private static void PostfixDestroyed(EnemyAI __instance) { if (__instance is FlowermanAI && (Object)(object)__instance != (Object)null && viewState.ContainsKey((FlowermanAI)(object)((__instance is FlowermanAI) ? __instance : null))) { viewState.Remove((FlowermanAI)(object)((__instance is FlowermanAI) ? __instance : null)); } } } internal class BunkerSpiderPatch { internal const int WEB_PLACING = 0; internal const int WAITING = 1; internal const int CHASING = 2; [HarmonyPrefix] [HarmonyPatch(typeof(SandSpiderAI), "turnBodyIntoWeb")] private static void PrefixSpoolBody(SandSpiderAI __instance, DeadBodyInfo ___currentlyHeldBody) { if ((Object)(object)___currentlyHeldBody != (Object)null) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BunkerSpiderEventHandler)?.OnWrapBody(__instance, ___currentlyHeldBody); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Spider Spooled Body"); } } } [HarmonyPrefix] [HarmonyPatch(typeof(SandSpiderAI), "CancelSpoolingBody")] private static void PrefixCancelSpoolBody(SandSpiderAI __instance, DeadBodyInfo ___currentlyHeldBody) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BunkerSpiderEventHandler)?.OnCancelWrappingBody(__instance, ___currentlyHeldBody); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Spider Spooling interrupted"); } } [HarmonyPrefix] [HarmonyPatch(typeof(SandSpiderAI), "HangBodyFromCeiling")] private static void PrefixHangBody(SandSpiderAI __instance, DeadBodyInfo ___currentlyHeldBody) { if ((Object)(object)___currentlyHeldBody != (Object)null) { EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BunkerSpiderEventHandler)?.OnHangBody(__instance, ___currentlyHeldBody); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Spider Hang Body"); } } } [HarmonyPrefix] [HarmonyPatch(typeof(EnemyAI), "SwitchToBehaviourStateOnLocalClient")] private static void PrefixSwitchBehavior(EnemyAI __instance, int stateIndex) { if (stateIndex == __instance.currentBehaviourStateIndex || !(__instance is SandSpiderAI)) { return; } switch (stateIndex) { case 0: EnemySkinRegistry.GetEnemyEventHandlers(__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BunkerSpiderEventHandler)?.OnEnterWebbingState((SandSpiderAI)(object)((__instance is SandSpiderAI) ? __instance : null)); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Spider Enter Webbing State"); } break; case 1: EnemySkinRegistry.GetEnemyEventHandlers(__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BunkerSpiderEventHandler)?.OnEnterWaitingState((SandSpiderAI)(object)((__instance is SandSpiderAI) ? __instance : null)); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Spider entered waiting state"); } break; case 2: EnemySkinRegistry.GetEnemyEventHandlers(__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BunkerSpiderEventHandler)?.OnEnterChasingState((SandSpiderAI)(object)((__instance is SandSpiderAI) ? __instance : null)); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Spider entered chasing state"); } break; } } [HarmonyPostfix] [HarmonyPatch(typeof(SandSpiderAI), "OnCollideWithPlayer")] private static void PostfixOnCollideWithPlayer(SandSpiderAI __instance, float ___timeSinceHittingPlayer, bool ___spoolingPlayerBody, Collider other) { if (___timeSinceHittingPlayer == 0f) { PlayerControllerB playerControllerB = ((EnemyAI)__instance).MeetsStandardPlayerCollisionConditions(other, ___spoolingPlayerBody, false); EnemySkinRegistry.GetEnemyEventHandlers((EnemyAI)(object)__instance).ForEach(delegate(EnemyEventHandler handler) { (handler as BunkerSpiderEventHandler)?.OnAttackPlayer(__instance, playerControllerB); }); if (EnemySkinRegistry.LogLevelSetting >= LogLevel.INFO) { EnemySkinRegistry.SkinLogger.LogInfo((object)"Spider hit player"); } } } } internal class ButlerPatch { internal const int SWEEPING = 0; internal const int PREMEDITATING = 1; internal const int MURDERING = 2; [HarmonyPostfix] [HarmonyPatch(typeof(ButlerBeesEnemyAI), "Start")] private static void PostfixHornetsSpawned(ButlerBeesEnemyAI __instance) { if (!((Object)(object)__instance != (Object)null)) { return; } ButlerEnemyAI butler = Object.FindObjectsOfType<ButlerEnemyAI>().Aggregate(null, delegate(ButlerEnemyAI current, ButlerEnemyAI next) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL