Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of EeveeFrenzy v1.0.2
plugins/EeveeFrenzy/EeveeFrenzy.dll
Decompiled 7 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.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using Dawn; using Dawn.Utils; using Dusk; using EeveeFrenzy.NetcodePatcher; using EeveeFrenzy.src.Content.Enemies; using EeveeFrenzy.src.Content.Items; using EeveeFrenzy.src.Patches; using EeveeFrenzy.src.Util; using EeveeFrenzy.src.Util.Extensions; using GameNetcodeStuff; using HarmonyLib; using Microsoft.CodeAnalysis; using On; using Unity.Netcode; using Unity.Netcode.Components; using UnityEngine; using UnityEngine.AI; using UnityEngine.Events; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("EeveeFrenzy")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyDescription("Mod that adds 7 eeveelutions as new enemies!!")] [assembly: AssemblyFileVersion("1.0.2.0")] [assembly: AssemblyInformationalVersion("1.0.2+a9b4d185d57a97d3de6da79d569382c958528ad9")] [assembly: AssemblyProduct("EeveeFrenzy")] [assembly: AssemblyTitle("EeveeFrenzy")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.2.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: NetcodePatchedAssembly] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace EeveeFrenzy { public static class MyPluginInfo { public const string PLUGIN_GUID = "EeveeFrenzy"; public const string PLUGIN_NAME = "EeveeFrenzy"; public const string PLUGIN_VERSION = "1.0.2"; } [GeneratedCode("DawnLib", "0.4.3")] public static class EeveeFrenzyEnemyKeys { public static NamespacedKey<DawnEnemyInfo> Espeon = NamespacedKey<DawnEnemyInfo>.From("eevee_frenzy", "espeon"); public static NamespacedKey<DawnEnemyInfo> Flareon = NamespacedKey<DawnEnemyInfo>.From("eevee_frenzy", "flareon"); public static NamespacedKey<DawnEnemyInfo> Glaceon = NamespacedKey<DawnEnemyInfo>.From("eevee_frenzy", "glaceon"); public static NamespacedKey<DawnEnemyInfo> Jolteon = NamespacedKey<DawnEnemyInfo>.From("eevee_frenzy", "jolteon"); public static NamespacedKey<DawnEnemyInfo> Leafeon = NamespacedKey<DawnEnemyInfo>.From("eevee_frenzy", "leafeon"); public static NamespacedKey<DawnEnemyInfo> MechaSylveon = NamespacedKey<DawnEnemyInfo>.From("eevee_frenzy", "mechasylveon"); public static NamespacedKey<DawnEnemyInfo> Umbreon = NamespacedKey<DawnEnemyInfo>.From("eevee_frenzy", "umbreon"); public static NamespacedKey<DawnEnemyInfo> Vaporeon = NamespacedKey<DawnEnemyInfo>.From("eevee_frenzy", "vaporeon"); public static NamespacedKey<DawnEnemyInfo>? GetByReflection(string name) { return (NamespacedKey<DawnEnemyInfo>)(typeof(EeveeFrenzyEnemyKeys).GetField(name)?.GetValue(null)); } } [GeneratedCode("DawnLib", "0.4.3")] public static class EeveeFrenzyItemKeys { public static NamespacedKey<DawnItemInfo> ChildEevee = NamespacedKey<DawnItemInfo>.From("eevee_frenzy", "child_eevee"); public static NamespacedKey<DawnItemInfo>? GetByReflection(string name) { return (NamespacedKey<DawnItemInfo>)(typeof(EeveeFrenzyItemKeys).GetField(name)?.GetValue(null)); } } } namespace EeveeFrenzy.src { public class EeveeFrenzyConfig { public ConfigEntry<bool> ConfigEnableExtendedLogging { get; private set; } public ConfigEntry<float> ConfigEverythingVolumeMultiplier { get; private set; } public EeveeFrenzyConfig(ConfigFile configFile) { configFile.SaveOnConfigSet = false; ConfigEnableExtendedLogging = configFile.Bind<bool>("Debug Options", "Debug Mode | Enable Extended Logging", false, "Whether extended logging is enabled."); ConfigEverythingVolumeMultiplier = configFile.Bind<float>("Eevee Frenzy", "Everything Volume Multiplier", 0.5f, "Volume multiplier for Eevee Frenzy."); } } [BepInPlugin("EeveeFrenzy", "EeveeFrenzy", "1.0.2")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { internal class MainAssets : AssetBundleLoader<MainAssets> { [LoadFromBundle("EeveeFrenzyUtils.prefab")] public GameObject UtilsPrefab { get; private set; } public MainAssets(AssetBundle bundle) : base(bundle) { } } internal static ManualLogSource Logger = null; internal static readonly Harmony _harmony = new Harmony("EeveeFrenzy"); public static EeveeFrenzyConfig ModConfig { get; private set; } = null; public static DuskMod Mod { get; private set; } = null; internal static MainAssets Assets { get; private set; } = null; private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; ModConfig = new EeveeFrenzyConfig(((BaseUnityPlugin)this).Config); DoorLockPatch.Init(); _harmony.PatchAll(typeof(StartOfRoundPatch)); AssetBundle val = AssetBundleUtils.LoadBundle(Assembly.GetExecutingAssembly(), "eeveefrenzyassets"); Assets = new MainAssets(val); Mod = DuskMod.RegisterMod((BaseUnityPlugin)(object)this, val); Mod.Logger = Logger; Mod.RegisterContentHandlers(); Logger.LogInfo((object)"EeveeFrenzy v1.0.2 has loaded!"); } internal static void ExtendedLogging(object text) { if (ModConfig.ConfigEnableExtendedLogging.Value) { Logger.LogInfo(text); } } } } namespace EeveeFrenzy.src.Util { internal class EeveeFrenzyUtils : NetworkBehaviour { [CompilerGenerated] private sealed class <ForceRotationForABit>d__9 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public GameObject go; public Quaternion rotation; private float <duration>5__2; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ForceRotationForABit>d__9(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <duration>5__2 = 0.25f; break; case 1: <>1__state = -1; break; } if (<duration>5__2 > 0f) { <duration>5__2 -= Time.deltaTime; go.transform.rotation = rotation; <>2__current = null; <>1__state = 1; return true; } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private static Random random; internal static EeveeFrenzyUtils Instance { get; private set; } private void Awake() { Instance = this; } public NetworkObjectReference SpawnScrap(Item? item, Vector3 position, bool defaultRotation, int valueIncrease, Quaternion rotation = default(Quaternion)) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)StartOfRound.Instance == (Object)null || (Object)(object)item == (Object)null) { return default(NetworkObjectReference); } Transform val = null; if ((Object)(object)val == (Object)null) { val = StartOfRound.Instance.propsContainer; } Vector3 val2 = position; RaycastHit val3 = default(RaycastHit); if (Physics.Raycast(position + Vector3.up * 1f, Vector3.down, ref val3, 100f, StartOfRound.Instance.collidersAndRoomMaskAndDefault, (QueryTriggerInteraction)1)) { val2 = ((RaycastHit)(ref val3)).point + Vector3.up * item.verticalOffset; } GameObject val4 = Object.Instantiate<GameObject>(item.spawnPrefab, val2 + Vector3.up * 0.2f, Quaternion.identity, val); GrabbableObject component = val4.GetComponent<GrabbableObject>(); NetworkObject networkObject = ((NetworkBehaviour)component).NetworkObject; component.fallTime = 0f; networkObject.Spawn(false); UpdateParentAndRotationsServerRpc(new NetworkObjectReference(val4), defaultRotation ? Quaternion.Euler(item.restingRotation) : rotation); int num = (int)((float)Random.Range(item.minValue, item.maxValue) * RoundManager.Instance.scrapValueMultiplier) + valueIncrease; ScanNodeProperties componentInChildren = val4.GetComponentInChildren<ScanNodeProperties>(); if ((Object)(object)componentInChildren != (Object)null) { componentInChildren.scrapValue = num; componentInChildren.subText = $"Value: ${num}"; component.scrapValue = num; UpdateScanNodeServerRpc(new NetworkObjectReference(networkObject), num); } return new NetworkObjectReference(val4); } [ServerRpc(RequireOwnership = false)] public void UpdateParentAndRotationsServerRpc(NetworkObjectReference go, Quaternion rotation) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1175290082u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref go, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rotation); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1175290082u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; UpdateParentAndRotationsClientRpc(go, rotation); } } } [ClientRpc] public void UpdateParentAndRotationsClientRpc(NetworkObjectReference go, Quaternion rotation) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2595417688u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref go, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rotation); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2595417688u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } base.__rpc_exec_stage = (__RpcExecStage)0; NetworkObject val3 = default(NetworkObject); ((NetworkObjectReference)(ref go)).TryGet(ref val3, (NetworkManager)null); if ((Object)(object)val3 != (Object)null) { if (val3.AutoObjectParentSync && ((NetworkBehaviour)this).IsServer) { ((Component)val3).transform.parent = StartOfRound.Instance.propsContainer; } else if (!val3.AutoObjectParentSync) { ((Component)val3).transform.parent = StartOfRound.Instance.propsContainer; } Plugin.ExtendedLogging("This object just spawned: " + ((Object)((Component)val3).gameObject).name); ((MonoBehaviour)this).StartCoroutine(ForceRotationForABit(((Component)val3).gameObject, rotation)); } } [IteratorStateMachine(typeof(<ForceRotationForABit>d__9))] private IEnumerator ForceRotationForABit(GameObject go, Quaternion rotation) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ForceRotationForABit>d__9(0) { go = go, rotation = rotation }; } [ServerRpc(RequireOwnership = false)] public void UpdateScanNodeServerRpc(NetworkObjectReference go, int value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2639640965u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref go, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2639640965u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; UpdateScanNodeClientRpc(go, value); } } } [ClientRpc] public void UpdateScanNodeClientRpc(NetworkObjectReference go, int value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3566988089u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref go, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3566988089u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; NetworkObject val3 = default(NetworkObject); ((NetworkObjectReference)(ref go)).TryGet(ref val3, (NetworkManager)null); GrabbableObject val4 = default(GrabbableObject); if ((Object)(object)val3 != (Object)null && ((Component)val3).gameObject.TryGetComponent<GrabbableObject>(ref val4)) { val4.SetScrapValue(value); Plugin.ExtendedLogging($"Scrap Value: {value}"); } } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(1175290082u, new RpcReceiveHandler(__rpc_handler_1175290082), "UpdateParentAndRotationsServerRpc"); ((NetworkBehaviour)this).__registerRpc(2595417688u, new RpcReceiveHandler(__rpc_handler_2595417688), "UpdateParentAndRotationsClientRpc"); ((NetworkBehaviour)this).__registerRpc(2639640965u, new RpcReceiveHandler(__rpc_handler_2639640965), "UpdateScanNodeServerRpc"); ((NetworkBehaviour)this).__registerRpc(3566988089u, new RpcReceiveHandler(__rpc_handler_3566988089), "UpdateScanNodeClientRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_1175290082(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference go = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref go, default(ForNetworkSerializable)); Quaternion rotation = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rotation); target.__rpc_exec_stage = (__RpcExecStage)1; ((EeveeFrenzyUtils)(object)target).UpdateParentAndRotationsServerRpc(go, rotation); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2595417688(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference go = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref go, default(ForNetworkSerializable)); Quaternion rotation = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rotation); target.__rpc_exec_stage = (__RpcExecStage)1; ((EeveeFrenzyUtils)(object)target).UpdateParentAndRotationsClientRpc(go, rotation); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2639640965(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference go = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref go, default(ForNetworkSerializable)); int value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((EeveeFrenzyUtils)(object)target).UpdateScanNodeServerRpc(go, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3566988089(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference go = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref go, default(ForNetworkSerializable)); int value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((EeveeFrenzyUtils)(object)target).UpdateScanNodeClientRpc(go, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "EeveeFrenzyUtils"; } } } namespace EeveeFrenzy.src.Util.Extensions { public static class NetworkObjectExtensions { [CompilerGenerated] private sealed class <>c__DisplayClass0_0 { public NetworkObject networkObject; internal bool <WaitUntilSpawned>b__0() { return networkObject.IsSpawned; } } [CompilerGenerated] private sealed class <RunActionAfterSpawned>d__1 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public NetworkObject networkObject; public Action action; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RunActionAfterSpawned>d__1(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = networkObject.WaitUntilSpawned(); <>1__state = 1; return true; case 1: <>1__state = -1; action(); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <WaitUntilSpawned>d__0 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public NetworkObject networkObject; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <WaitUntilSpawned>d__0(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitUntil((Func<bool>)new <>c__DisplayClass0_0 { networkObject = networkObject }.<WaitUntilSpawned>b__0); <>1__state = 1; return true; case 1: <>1__state = -1; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [IteratorStateMachine(typeof(<WaitUntilSpawned>d__0))] public static IEnumerator WaitUntilSpawned(this NetworkObject networkObject) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <WaitUntilSpawned>d__0(0) { networkObject = networkObject }; } [IteratorStateMachine(typeof(<RunActionAfterSpawned>d__1))] private static IEnumerator RunActionAfterSpawned(NetworkObject networkObject, Action action) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RunActionAfterSpawned>d__1(0) { networkObject = networkObject, action = action }; } public static void OnSpawn(this NetworkObject networkObject, Action action) { ((MonoBehaviour)networkObject).StartCoroutine(RunActionAfterSpawned(networkObject, action)); } } } namespace EeveeFrenzy.src.Patches { public static class DoorLockPatch { [CompilerGenerated] private static class <>O { public static hook_OnTriggerStay <0>__DoorLock_OnTriggerStay; } public static void Init() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown object obj = <>O.<0>__DoorLock_OnTriggerStay; if (obj == null) { hook_OnTriggerStay val = DoorLock_OnTriggerStay; <>O.<0>__DoorLock_OnTriggerStay = val; obj = (object)val; } DoorLock.OnTriggerStay += (hook_OnTriggerStay)obj; } private static void DoorLock_OnTriggerStay(orig_OnTriggerStay orig, DoorLock self, Collider other) { if (!((Object)(object)NetworkManager.Singleton == (Object)null) && ((NetworkBehaviour)self).IsServer && !self.isLocked && !self.isDoorOpened && ((Component)other).gameObject.layer == 19 && ((Object)((Component)other).gameObject).name == "DoorCollider") { self.enemyDoorMeter += Time.deltaTime * 0.5f; if (self.enemyDoorMeter > 1f) { self.enemyDoorMeter = 0f; ((Component)self).gameObject.GetComponent<AnimatedObjectTrigger>().TriggerAnimationNonPlayer(false, true, false); self.OpenDoorAsEnemyServerRpc(); } } orig.Invoke(self, other); } } [HarmonyPatch(typeof(StartOfRound))] internal static class StartOfRoundPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void StartOfRound_Awake(ref StartOfRound __instance) { Plugin.ExtendedLogging("StartOfRound.Awake"); ((NetworkBehaviour)__instance).NetworkObject.OnSpawn(CreateNetworkManager); } private static void CreateNetworkManager() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)StartOfRound.Instance).IsServer || ((NetworkBehaviour)StartOfRound.Instance).IsHost) { if ((Object)(object)EeveeFrenzyUtils.Instance == (Object)null) { GameObject val = Object.Instantiate<GameObject>(Plugin.Assets.UtilsPrefab); SceneManager.MoveGameObjectToScene(val, ((Component)StartOfRound.Instance).gameObject.scene); val.GetComponent<NetworkObject>().Spawn(false); Scene scene = val.scene; Plugin.ExtendedLogging("Created EeveeFrenzyUtils. Scene is: '" + ((Scene)(ref scene)).name + "'"); } else { Plugin.Logger.LogWarning((object)"EeveeFrenzyUtils already exists?"); } } } } } namespace EeveeFrenzy.src.MiscScripts { public class ChildHittableCollisionDetect : MonoBehaviour, IHittable { [SerializeField] private ChildEnemyAI _mainScript; public bool Hit(int force, Vector3 hitDirection, PlayerControllerB playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return _mainScript.Hit(force, hitDirection, playerWhoHit, playHitSFX, hitID); } } public abstract class EFHittable : NetworkBehaviour { public abstract bool Hit(int force, Vector3 hitDirection, PlayerControllerB playerWhoHit = null, bool playHitSFX = false, int hitID = -1); protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected override void __initializeRpcs() { ((NetworkBehaviour)this).__initializeRpcs(); } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "EFHittable"; } } public class HittableCollisionDetect : MonoBehaviour, IHittable { [SerializeField] private EFHittable _mainScript; public bool Hit(int force, Vector3 hitDirection, PlayerControllerB playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return _mainScript.Hit(force, hitDirection, playerWhoHit, playHitSFX, hitID); } } } namespace EeveeFrenzy.src.Content.Items { [RequireComponent(typeof(SmartAgentNavigator))] public class ChildEnemyAI : GrabbableObject { public enum FriendState { Neutral, Friendly, Tamed } public enum State { Spawning, Wandering, FollowingPlayer, Scared, Dancing, Grabbed } [CompilerGenerated] private sealed class <ChildGrabbableCooldown>d__48 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ParentEnemyAI _parentEevee; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ChildGrabbableCooldown>d__48(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(2f); <>1__state = 1; return true; case 1: <>1__state = -1; _parentEevee.canGrabChild = true; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <StopSittingTimer>d__53 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ChildEnemyAI <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <StopSittingTimer>d__53(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown int num = <>1__state; ChildEnemyAI childEnemyAI = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(1.5f); <>1__state = 1; return true; case 1: <>1__state = -1; childEnemyAI.animator.SetBool(isSittingAnimation, false); childEnemyAI.isSitting = false; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <SwitchToStateAfterDelay>d__77 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float delay; public ChildEnemyAI <>4__this; public State state; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <SwitchToStateAfterDelay>d__77(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown int num = <>1__state; ChildEnemyAI childEnemyAI = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(delay); <>1__state = 1; return true; case 1: <>1__state = -1; if (((NetworkBehaviour)childEnemyAI).IsServer) { childEnemyAI.HandleStateAnimationSpeedChangesServerRpc((int)state); } return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <WaitUntilLeavingMoon>d__64 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ChildEnemyAI <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <WaitUntilLeavingMoon>d__64(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown int num = <>1__state; ChildEnemyAI childEnemyAI = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitUntil((Func<bool>)(() => StartOfRound.Instance.shipIsLeaving || StartOfRound.Instance.inShipPhase)); <>1__state = 1; return true; case 1: <>1__state = -1; if (childEnemyAI.friendEeveeState == FriendState.Friendly) { childEnemyAI.SwitchFriendShipStateServerRpc(2); } return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public NavMeshAgent agent; public Animator animator; public NetworkAnimator networkAnimator; public SmartAgentNavigator smartAgentNavigator; public float rangeOfDetection = 20f; [Header("Sound and Audio")] public AudioSource eeveeSource; public AudioClip spawnSound; public AudioClip[] hitSounds = Array.Empty<AudioClip>(); public AudioClip[] idleSounds = Array.Empty<AudioClip>(); public AudioClip[] idleHappySounds = Array.Empty<AudioClip>(); public AudioClip[] scaredSounds = Array.Empty<AudioClip>(); public AudioClip[] footstepSounds = Array.Empty<AudioClip>(); [HideInInspector] public ParentEnemyAI? parentEevee; [HideInInspector] public NetworkVariable<int> health = new NetworkVariable<int>(4, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0); [HideInInspector] public bool mommyAlive = true; [HideInInspector] public float[] friendShipMeterGoals = new float[3] { 0f, 20f, 50f }; private float idleTimer; private float idleHappyTimer; private Dictionary<PlayerControllerB, float> friendShipMeterPlayers = new Dictionary<PlayerControllerB, float>(); private List<Vector3> scaryPositionsList = new List<Vector3>(); private float scaredTimer = 10f; private bool isScared; private bool isRunning; private bool isSitting; private float sittingTimer = 20f; private float observationCheckTimer = 2f; private PlayerControllerB? nearbyPlayer; private static readonly int isChildDeadAnimation = Animator.StringToHash("isChildDead"); private static readonly int childGrabbedAnimation = Animator.StringToHash("childGrabbed"); private static readonly int isWalkingAnimation = Animator.StringToHash("isWalking"); private static readonly int isGoofyAnimation = Animator.StringToHash("isGoofy"); private static readonly int isRunningAnimation = Animator.StringToHash("isRunning"); private static readonly int isScaredAnimation = Animator.StringToHash("isScared"); private static readonly int isSittingAnimation = Animator.StringToHash("isSitting"); private static readonly int isDancingAnimation = Animator.StringToHash("isDancing"); private static readonly int doIdleGestureAnimation = Animator.StringToHash("doIdleGesture"); private static readonly int doSitGesture1Animation = Animator.StringToHash("doSitGesture1"); private static readonly int doSitGesture2Animation = Animator.StringToHash("doSitGesture2"); private static readonly int RunSpeedFloat = Animator.StringToHash("RunSpeed"); private Coroutine? grabbingRoutine; private State eeveeState; private FriendState friendEeveeState; public override void OnNetworkSpawn() { ((NetworkBehaviour)this).OnNetworkSpawn(); AudioSource obj = eeveeSource; obj.volume *= Plugin.ModConfig.ConfigEverythingVolumeMultiplier.Value; PlayerControllerB[] allPlayerScripts = StartOfRound.Instance.allPlayerScripts; foreach (PlayerControllerB val in allPlayerScripts) { if (!friendShipMeterPlayers.ContainsKey(val)) { Plugin.ExtendedLogging("Adding player " + ((Object)val).name + " to friendShipMeterPlayers"); friendShipMeterPlayers.TryAdd(val, 0f); } } } public override void Start() { //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).Start(); eeveeSource.PlayOneShot(spawnSound); base.fallTime = 0f; smartAgentNavigator.OnUseEntranceTeleport.AddListener((UnityAction<bool>)OnUseEntranceTeleport); if ((Object)(object)parentEevee != (Object)null) { smartAgentNavigator.SetAllValues(((EnemyAI)parentEevee).isOutside); base.isInFactory = !((EnemyAI)parentEevee).isOutside; if (((NetworkBehaviour)this).IsServer) { HandleStateAnimationSpeedChanges(State.Spawning); } return; } if (((NetworkBehaviour)this).IsServer) { animator.SetBool(isSittingAnimation, true); } isSitting = true; smartAgentNavigator.SetAllValues(true); base.isInFactory = false; friendEeveeState = FriendState.Tamed; ((Behaviour)agent).enabled = false; ((Behaviour)smartAgentNavigator).enabled = false; Transform transform = ((Component)this).transform; Bounds bounds = StartOfRound.Instance.shipBounds.bounds; transform.position = ((Bounds)(ref bounds)).center; } public override void EquipItem() { ((GrabbableObject)this).EquipItem(); HandleStateAnimationSpeedChangesServerRpc(5); } public override void DiscardItem() { ((GrabbableObject)this).DiscardItem(); if ((Object)(object)parentEevee == (Object)null || StartOfRound.Instance.shipIsLeaving) { if (((NetworkBehaviour)this).IsServer) { animator.SetBool(isSittingAnimation, true); } isSitting = true; return; } parentEevee.canGrabChild = false; if (grabbingRoutine != null) { ((MonoBehaviour)this).StopCoroutine(grabbingRoutine); grabbingRoutine = null; } grabbingRoutine = ((MonoBehaviour)this).StartCoroutine(ChildGrabbableCooldown(parentEevee)); if (!parentEevee.holdingChild) { if (isScared) { HandleStateAnimationSpeedChangesServerRpc(3); } else { HandleStateAnimationSpeedChangesServerRpc(1); } } } [IteratorStateMachine(typeof(<ChildGrabbableCooldown>d__48))] private IEnumerator ChildGrabbableCooldown(ParentEnemyAI _parentEevee) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ChildGrabbableCooldown>d__48(0) { _parentEevee = _parentEevee }; } private void BaseUpdate() { //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) if (base.currentUseCooldown >= 0f) { base.currentUseCooldown -= Time.deltaTime; } if (((NetworkBehaviour)this).IsOwner) { if (base.isBeingUsed && base.itemProperties.requiresBattery) { if (base.insertedBattery.charge > 0f) { if (!base.itemProperties.itemIsTrigger) { Battery insertedBattery = base.insertedBattery; insertedBattery.charge -= Time.deltaTime / base.itemProperties.batteryUsage; } } else if (!base.insertedBattery.empty) { base.insertedBattery.empty = true; if (base.isBeingUsed) { Plugin.ExtendedLogging("Use up batteries local"); base.isBeingUsed = false; ((GrabbableObject)this).UseUpBatteries(); base.isSendingItemRPC++; ((GrabbableObject)this).UseUpItemBatteriesServerRpc(); } } } if (!base.wasOwnerLastFrame) { base.wasOwnerLastFrame = true; } } else if (base.wasOwnerLastFrame) { base.wasOwnerLastFrame = false; } if (!base.isHeld && (Object)(object)base.parentObject == (Object)null) { if (base.fallTime >= 1f) { if (!base.reachedFloorTarget) { if (!base.hasHitGround) { ((GrabbableObject)this).PlayDropSFX(); ((GrabbableObject)this).OnHitGround(); } base.reachedFloorTarget = true; if (base.floorYRot == -1) { ((Component)this).transform.rotation = Quaternion.Euler(base.itemProperties.restingRotation.x, ((Component)this).transform.eulerAngles.y, base.itemProperties.restingRotation.z); } else { ((Component)this).transform.rotation = Quaternion.Euler(base.itemProperties.restingRotation.x, (float)(base.floorYRot + base.itemProperties.floorYOffset) + 90f, base.itemProperties.restingRotation.z); } } ((Component)this).transform.localPosition = base.targetFloorPosition; } else { base.reachedFloorTarget = false; if (((Component)this).transform.localPosition.y - base.targetFloorPosition.y < 0.05f && !base.hasHitGround) { ((GrabbableObject)this).PlayDropSFX(); ((GrabbableObject)this).OnHitGround(); } } } else if (base.isHeld || base.isHeldByEnemy) { base.reachedFloorTarget = false; } } public override void Update() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)parentEevee == (Object)null || ((EnemyAI)parentEevee).isEnemyDead || StartOfRound.Instance.shipIsLeaving) { Bounds bounds = StartOfRound.Instance.shipBounds.bounds; if (((Bounds)(ref bounds)).Contains(((Component)this).transform.position)) { ((Behaviour)agent).enabled = false; smartAgentNavigator.StopSearchRoutine(); ((Behaviour)smartAgentNavigator).enabled = false; } } if (!((Behaviour)agent).enabled && !((Behaviour)smartAgentNavigator).enabled) { ((GrabbableObject)this).Update(); return; } BaseUpdate(); if ((Object)(object)nearbyPlayer != (Object)null && (nearbyPlayer.isPlayerDead || !nearbyPlayer.isPlayerControlled || (nearbyPlayer.isInHangarShipRoom && (Object)(object)base.playerHeldBy != (Object)(object)nearbyPlayer))) { nearbyPlayer = null; } if ((Object)(object)base.playerHeldBy != (Object)null && base.isHeld) { friendShipMeterPlayers[base.playerHeldBy] += Time.deltaTime * 2f; } else { PlayerControllerB[] array = friendShipMeterPlayers.Keys.ToArray(); foreach (PlayerControllerB val in array) { if (!((Object)(object)val == (Object)null) && !val.isPlayerDead && val.isPlayerControlled) { if (Vector3.Distance(((Component)val).transform.position, ((Component)this).transform.position) <= 10f) { friendShipMeterPlayers[val] += Time.deltaTime * 0.25f; } else if (!(friendShipMeterPlayers[val] <= 0f)) { friendShipMeterPlayers[val] -= Time.deltaTime * 0.25f; } } } } if (((NetworkBehaviour)this).IsServer) { DoHostSideUpdate(); } } private float GetCurrentMultiplierBoost() { if (isSitting) { return 0f; } if (isScared) { return 2f; } if (isRunning) { return 2f; } return 1f; } private void DoHostSideUpdate() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) if (((Behaviour)agent).enabled) { Animator obj = animator; int runSpeedFloat = RunSpeedFloat; Vector3 velocity = agent.velocity; obj.SetFloat(runSpeedFloat, ((Vector3)(ref velocity)).magnitude / 2f); agent.speed = 4f * GetCurrentMultiplierBoost(); } switch (eeveeState) { case State.Spawning: DoSpawning(); break; case State.Wandering: DoWandering(); break; case State.FollowingPlayer: DoFollowingPlayer(); break; case State.Scared: DoScared(); break; case State.Dancing: DoDancing(); break; } HandleFriendShipMeter(); if (!base.isHeldByEnemy && !base.isHeld && !isSitting && sittingTimer <= 0f) { animator.SetBool(isSittingAnimation, true); isSitting = true; sittingTimer = Random.Range(20, 30); if (Random.Range(0, 2) == 0) { networkAnimator.SetTrigger(doSitGesture1Animation, true); } else { networkAnimator.SetTrigger(doSitGesture2Animation, true); } ((MonoBehaviour)this).StartCoroutine(StopSittingTimer()); } } [IteratorStateMachine(typeof(<StopSittingTimer>d__53))] private IEnumerator StopSittingTimer() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <StopSittingTimer>d__53(0) { <>4__this = this }; } private void DoSpawning() { } private void DoWandering() { //IL_00f9: Unknown result type (might be due to invalid IL or missing references) if (!isSitting) { sittingTimer -= Time.deltaTime; } observationCheckTimer -= Time.deltaTime; idleTimer -= Time.deltaTime; if (idleTimer <= 0f) { idleTimer = 4f; eeveeSource.PlayOneShot(idleSounds[Random.Range(0, idleSounds.Length)]); } if (observationCheckTimer > 0f) { return; } observationCheckTimer = 2f; PlayerControllerB val = DetectNearbyPlayer(); if ((Object)(object)val != (Object)null) { SetTargetPlayerServerRpc(Array.IndexOf(StartOfRound.Instance.allPlayerScripts, val)); HandleStateAnimationSpeedChanges(State.FollowingPlayer); } foreach (EnemyAI spawnedEnemy in RoundManager.Instance.SpawnedEnemies) { if (!(spawnedEnemy is ParentEnemyAI) && LineOfSightAvailable(((Component)spawnedEnemy).transform)) { BecomeScared(new List<Vector3> { ((Component)spawnedEnemy).transform.position }); HandleStateAnimationSpeedChanges(State.Scared); } } } private void DoFollowingPlayer() { //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)nearbyPlayer == (Object)null) { SetTargetPlayerServerRpc(-1); HandleStateAnimationSpeedChanges(State.Wandering); return; } idleHappyTimer -= Time.deltaTime; if (idleHappyTimer <= 0f) { idleHappyTimer = 4f; eeveeSource.PlayOneShot(idleHappySounds[Random.Range(0, idleHappySounds.Length)]); } if ((Object)(object)parentEevee == (Object)null || friendEeveeState != 0) { smartAgentNavigator.DoPathingToDestination(((Component)nearbyPlayer).transform.position); } else if (Vector3.Distance(((Component)this).transform.position, parentEevee.spawnPosition) <= 25f) { smartAgentNavigator.DoPathingToDestination(((Component)nearbyPlayer).transform.position); } else { nearbyPlayer = null; } } public void BecomeScared(List<Vector3> scaryPositions) { scaryPositionsList.Clear(); scaryPositionsList.AddRange(scaryPositions); HandleStateAnimationSpeedChanges(State.Scared); } private void DoScared() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) List<Vector3> list = new List<Vector3>(scaryPositionsList); Vector3 val = Vector3.zero; if (list.Count > 0) { Vector3 val2 = Vector3.zero; foreach (Vector3 item in list) { Vector3 val3 = val2; Vector3 val4 = ((Component)this).transform.position - item; val2 = val3 + ((Vector3)(ref val4)).normalized; } val = ((Component)this).transform.position + val2 * 10f; NavMeshHit val5 = default(NavMeshHit); if (NavMesh.SamplePosition(val, ref val5, 10f, -1)) { val = ((NavMeshHit)(ref val5)).position; } } scaredTimer -= Time.deltaTime; if (scaredTimer <= 0f) { scaredTimer = 10f; HandleStateAnimationSpeedChanges(State.Wandering); } agent.SetDestination(val); } private void DoDancing() { } private void HandleFriendShipMeter() { switch (friendEeveeState) { case FriendState.Neutral: DoNeutralFriendShip(); break; case FriendState.Friendly: DoFriendlyFriendShip(); break; case FriendState.Tamed: DoTamedFriendShip(); break; } } private void DoNeutralFriendShip() { if (!((Object)(object)nearbyPlayer == (Object)null) && friendShipMeterPlayers[nearbyPlayer] >= friendShipMeterGoals[1]) { SwitchFriendShipStateServerRpc(1); ((MonoBehaviour)this).StartCoroutine(WaitUntilLeavingMoon()); } } private void DoFriendlyFriendShip() { } private void DoTamedFriendShip() { } [IteratorStateMachine(typeof(<WaitUntilLeavingMoon>d__64))] private IEnumerator WaitUntilLeavingMoon() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <WaitUntilLeavingMoon>d__64(0) { <>4__this = this }; } private PlayerControllerB? DetectNearbyPlayer() { if (base.isHeld && (Object)(object)base.playerHeldBy != (Object)null) { nearbyPlayer = base.playerHeldBy; return nearbyPlayer; } PlayerControllerB[] allPlayerScripts = StartOfRound.Instance.allPlayerScripts; foreach (PlayerControllerB val in allPlayerScripts) { if (LineOfSightAvailable(((Component)val).transform)) { nearbyPlayer = val; return nearbyPlayer; } } return null; } private bool LineOfSightAvailable(Transform PlayerOrEnemy) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) float num = Vector3.Distance(PlayerOrEnemy.position, ((Component)this).transform.position); if (num >= rangeOfDetection) { return false; } Vector3 position = PlayerOrEnemy.position; Vector3 val = PlayerOrEnemy.position - ((Component)this).transform.position; if (Physics.Raycast(position, ((Vector3)(ref val)).normalized, num, StartOfRound.Instance.collidersAndRoomMaskAndDefault | LayerMask.GetMask(new string[2] { "Terrain", "InteractableObject" }), (QueryTriggerInteraction)1)) { return false; } return true; } [ServerRpc(RequireOwnership = false)] public void HandleStateAnimationSpeedChangesServerRpc(int state) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(253582352u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, state); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 253582352u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; HandleStateAnimationSpeedChanges((State)state); } } } public void DisableOrEnableAllCollidersAndAgent(bool enable) { ((Behaviour)agent).enabled = enable; } public void HandleStateAnimationSpeedChanges(State state) { Plugin.ExtendedLogging($"HandleStateAnimationSpeedChanges for CHILD {state}"); SwitchStateClientRpc((int)state); switch (state) { case State.Spawning: SetAnimatorBools(isWalking: false, isRunning: false, isScared: false, isDancing: false, isGrabbed: false); break; case State.Wandering: SetAnimatorBools(isWalking: true, isRunning: false, isScared: false, isDancing: false, isGrabbed: false); break; case State.FollowingPlayer: SetAnimatorBools(isWalking: true, isRunning: true, isScared: false, isDancing: false, isGrabbed: false); break; case State.Scared: SetAnimatorBools(animator.GetBool(isWalkingAnimation), isRunning, isScared: true, isDancing: false, base.isHeld); break; case State.Dancing: SetAnimatorBools(isWalking: false, isRunning: false, isScared: false, isDancing: true, isGrabbed: false); break; case State.Grabbed: SetAnimatorBools(isWalking: false, isRunning: false, isScared, isDancing: false, isGrabbed: true); break; } } private void SetAnimatorBools(bool isWalking, bool isRunning, bool isScared, bool isDancing, bool isGrabbed) { Plugin.ExtendedLogging($"Setting animator bools for child: isWalking: {isWalking}, isRunning: {isRunning}, isScared: {isScared}, isDancing: {isDancing}, isGrabbed: {isGrabbed}"); animator.SetBool(isWalkingAnimation, isWalking); animator.SetBool(isRunningAnimation, isRunning); this.isRunning = isRunning; animator.SetBool(isScaredAnimation, isScared); this.isScared = isScared; animator.SetBool(isDancingAnimation, isDancing); animator.SetBool(childGrabbedAnimation, isGrabbed); animator.SetBool(isSittingAnimation, false); isSitting = false; } [ServerRpc(RequireOwnership = false)] private void SwitchFriendShipStateServerRpc(int state) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2168788941u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, state); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2168788941u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SwitchFriendShipStateClientRpc(state); } } } [ClientRpc] private void SwitchFriendShipStateClientRpc(int state) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(600034779u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, state); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 600034779u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SwitchFriendShipState(state); } } } private void SwitchFriendShipState(int state) { friendEeveeState = (FriendState)state; } [ServerRpc(RequireOwnership = false)] private void SwitchStateServerRpc(int state) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3359701319u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, state); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3359701319u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SwitchStateClientRpc(state); } } } [ClientRpc] private void SwitchStateClientRpc(int state) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1320076591u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, state); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1320076591u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SwitchState(state); } } } private void SwitchState(int state) { if (state != -1) { smartAgentNavigator.StopSearchRoutine(); if (!animator.GetBool(isChildDeadAnimation)) { DisableOrEnableAllCollidersAndAgent(enable: true); } switch (state) { case 0: HandleStateSpawningChange(); break; case 1: HandleStateWanderingChange(); break; case 2: HandleStateFollowingPlayerChange(); break; case 3: HandleStateScaredChange(); break; case 4: HandleStateDancingChange(); break; case 5: HandleStateGrabbedChange(); break; } eeveeState = (State)state; } } [IteratorStateMachine(typeof(<SwitchToStateAfterDelay>d__77))] private IEnumerator SwitchToStateAfterDelay(State state, float delay) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <SwitchToStateAfterDelay>d__77(0) { <>4__this = this, state = state, delay = delay }; } private void HandleStateSpawningChange() { ((MonoBehaviour)this).StartCoroutine(SwitchToStateAfterDelay(State.Wandering, 2f)); } private void HandleStateWanderingChange() { if (((NetworkBehaviour)this).IsServer) { smartAgentNavigator.StartSearchRoutine(40f); } } private void HandleStateFollowingPlayerChange() { } private void HandleStateScaredChange() { eeveeSource.PlayOneShot(scaredSounds[Random.Range(0, scaredSounds.Length)]); } private void HandleStateDancingChange() { } private void HandleStateGrabbedChange() { DisableOrEnableAllCollidersAndAgent(enable: false); } public void OnUseEntranceTeleport(bool setOutside) { ((GrabbableObject)this).EnableItemMeshes(true); } public void OnEnterOrExitElevator(bool enteredElevator) { } public bool Hit(int force, Vector3 hitDirection, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { DoHitStuffServerRpc(); return true; } [ServerRpc(RequireOwnership = false)] private void DoHitStuffServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1535226684u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1535226684u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; NetworkVariable<int> obj = health; int value = obj.Value; obj.Value = value - 1; if (health.Value <= 0) { animator.SetBool(isChildDeadAnimation, true); } DoHitStuffClientRpc(); } } [ClientRpc] public void DoHitStuffClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3803450722u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3803450722u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; eeveeSource.PlayOneShot(hitSounds[Random.Range(0, hitSounds.Length)]); if (health.Value <= 0) { smartAgentNavigator.OnUseEntranceTeleport.RemoveListener((UnityAction<bool>)OnUseEntranceTeleport); smartAgentNavigator.StopSearchRoutine(); ((Behaviour)smartAgentNavigator).enabled = false; ((Behaviour)agent).enabled = false; base.grabbable = false; base.grabbableToEnemies = true; Object.Destroy((Object)(object)((Component)this).GetComponent<ChildEnemyAI>()); } } } [ServerRpc(RequireOwnership = false)] private void SetTargetPlayerServerRpc(int playerToFollowIndex) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2604986217u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerToFollowIndex); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2604986217u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetTargetPlayerClientRpc(playerToFollowIndex); } } } [ClientRpc] private void SetTargetPlayerClientRpc(int playerToFollowIndex) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2213999646u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerToFollowIndex); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2213999646u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (playerToFollowIndex == -1) { nearbyPlayer = null; } else { nearbyPlayer = StartOfRound.Instance.allPlayerScripts[playerToFollowIndex]; } } } public void PlayFootstepSoundAnimEvent() { eeveeSource.PlayOneShot(footstepSounds[Random.Range(0, footstepSounds.Length)], 0.5f); } protected override void __initializeVariables() { if (health == null) { throw new Exception("ChildEnemyAI.health cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)health).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)health, "health"); ((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)health); ((GrabbableObject)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(253582352u, new RpcReceiveHandler(__rpc_handler_253582352), "HandleStateAnimationSpeedChangesServerRpc"); ((NetworkBehaviour)this).__registerRpc(2168788941u, new RpcReceiveHandler(__rpc_handler_2168788941), "SwitchFriendShipStateServerRpc"); ((NetworkBehaviour)this).__registerRpc(600034779u, new RpcReceiveHandler(__rpc_handler_600034779), "SwitchFriendShipStateClientRpc"); ((NetworkBehaviour)this).__registerRpc(3359701319u, new RpcReceiveHandler(__rpc_handler_3359701319), "SwitchStateServerRpc"); ((NetworkBehaviour)this).__registerRpc(1320076591u, new RpcReceiveHandler(__rpc_handler_1320076591), "SwitchStateClientRpc"); ((NetworkBehaviour)this).__registerRpc(1535226684u, new RpcReceiveHandler(__rpc_handler_1535226684), "DoHitStuffServerRpc"); ((NetworkBehaviour)this).__registerRpc(3803450722u, new RpcReceiveHandler(__rpc_handler_3803450722), "DoHitStuffClientRpc"); ((NetworkBehaviour)this).__registerRpc(2604986217u, new RpcReceiveHandler(__rpc_handler_2604986217), "SetTargetPlayerServerRpc"); ((NetworkBehaviour)this).__registerRpc(2213999646u, new RpcReceiveHandler(__rpc_handler_2213999646), "SetTargetPlayerClientRpc"); ((GrabbableObject)this).__initializeRpcs(); } private static void __rpc_handler_253582352(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int state = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref state); target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).HandleStateAnimationSpeedChangesServerRpc(state); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2168788941(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int state = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref state); target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).SwitchFriendShipStateServerRpc(state); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_600034779(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int state = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref state); target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).SwitchFriendShipStateClientRpc(state); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3359701319(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int state = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref state); target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).SwitchStateServerRpc(state); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1320076591(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int state = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref state); target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).SwitchStateClientRpc(state); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1535226684(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).DoHitStuffServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3803450722(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).DoHitStuffClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2604986217(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int targetPlayerServerRpc = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref targetPlayerServerRpc); target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).SetTargetPlayerServerRpc(targetPlayerServerRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2213999646(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int targetPlayerClientRpc = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref targetPlayerClientRpc); target.__rpc_exec_stage = (__RpcExecStage)1; ((ChildEnemyAI)(object)target).SetTargetPlayerClientRpc(targetPlayerClientRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "ChildEnemyAI"; } } } namespace EeveeFrenzy.src.Content.Enemies { public class EnemyHandler : ContentHandler<EnemyHandler> { public DefaultBundle? defaultBundle; public EnemyHandler(DuskMod mod) : base(mod) { ((ContentHandler)this).RegisterContent<DefaultBundle>("eeveelutionassets", ref defaultBundle, false); } } [RequireComponent(typeof(SmartAgentNavigator))] public abstract class EeveeFrenzyEnemyAI : EnemyAI { [NonSerialized] public EnemyAI? targetEnemy; public SmartAgentNavigator smartAgentNavigator; public override void Start() { ((EnemyAI)this).Start(); AudioSource creatureVoice = base.creatureVoice; creatureVoice.volume *= Plugin.ModConfig.ConfigEverythingVolumeMultiplier.Value; AudioSource creatureSFX = base.creatureSFX; creatureSFX.volume *= Plugin.ModConfig.ConfigEverythingVolumeMultiplier.Value; smartAgentNavigator.OnUseEntranceTeleport.AddListener((UnityAction<bool>)((EnemyAI)this).SetEnemyOutside); smartAgentNavigator.SetAllValues(base.isOutside); Plugin.ExtendedLogging(base.enemyType.enemyName + " Spawned."); GrabEnemyRarity(base.enemyType.enemyName); } public void GrabEnemyRarity(string enemyName) { string enemyName2 = enemyName; SpawnableEnemyWithRarity val = RoundManager.Instance.currentLevel.OutsideEnemies.OfType<SpawnableEnemyWithRarity>().FirstOrDefault((Func<SpawnableEnemyWithRarity, bool>)((SpawnableEnemyWithRarity x) => x.enemyType.enemyName.Equals(enemyName2))) ?? RoundManager.Instance.currentLevel.DaytimeEnemies.OfType<SpawnableEnemyWithRarity>().FirstOrDefault((Func<SpawnableEnemyWithRarity, bool>)((SpawnableEnemyWithRarity x) => x.enemyType.enemyName.Equals(enemyName2))); if (val == null) { val = RoundManager.Instance.currentLevel.Enemies.OfType<SpawnableEnemyWithRarity>().FirstOrDefault((Func<SpawnableEnemyWithRarity, bool>)((SpawnableEnemyWithRarity x) => x.enemyType.enemyName.Equals(enemyName2))); } if (val != null) { Plugin.ExtendedLogging(enemyName2 + " has Rarity: " + val.rarity); } else { Plugin.Logger.LogWarning((object)"Enemy not found."); } } [ClientRpc] public void SetFloatAnimationClientRpc(string name, float value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(710183066u, val, (RpcDelivery)0); bool flag = name != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(name, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref value, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 710183066u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetFloatAnimationOnLocalClient(name, value); } } public void SetFloatAnimationOnLocalClient(string name, float value) { Plugin.ExtendedLogging(name + " " + value); base.creatureAnimator.SetFloat(name, value); } [ClientRpc] public void SetBoolAnimationClientRpc(int nameInt, bool active) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2818639887u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, nameInt); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref active, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2818639887u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SetBoolAnimationOnLocalClient(nameInt, active); } } } public void SetBoolAnimationOnLocalClient(int intName, bool active) { base.creatureAnimator.SetBool(intName, active); } [ServerRpc(RequireOwnership = false)] public void TriggerAnimationServerRpc(string triggerName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3235224009u, val, (RpcDelivery)0); bool flag = triggerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(triggerName, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3235224009u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; TriggerAnimationClientRpc(triggerName); } } [ClientRpc] public void TriggerAnimationClientRpc(string triggerName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid