Decompiled source of ConvenienceMode v1.2.5

item/airhorn.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("airhorn")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("airhorn")]
[assembly: AssemblyTitle("airhorn")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace air
{
	public class airAI : EnemyAI
	{
		public float laughTimer;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer3;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"에어혼 소환");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}

		public override void Update()
		{
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!HasValidTarget())
			{
				if (base.debugEnemyAI)
				{
					Debug.Log((object)"Failed to find new target");
				}
			}
			else if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer3 = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer3 < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}
	}
	[BepInPlugin("air", "air", "1.0.0")]
	public class airPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "airmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("airenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("air TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("air TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin air is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "air";

		public const string PLUGIN_NAME = "air";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

item/bell.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("bell")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("bell")]
[assembly: AssemblyTitle("bell")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace bell
{
	public class bellAI : EnemyAI
	{
		public float laughTimer;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceHittingLocalPlayer3;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"종 소환");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}

		public override void Update()
		{
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!HasValidTarget())
			{
				if (base.debugEnemyAI)
				{
					Debug.Log((object)"Failed to find new target");
				}
			}
			else if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}
	}
	[BepInPlugin("bell", "bell", "1.0.0")]
	public class bellPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "bellmob2"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("bellenemy2");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("bell TN2");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("bell TK2");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin bell is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "bell";

		public const string PLUGIN_NAME = "bell";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

item/boom.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("boom")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("boom")]
[assembly: AssemblyTitle("boom")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace boom
{
	public class boomAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceHittingLocalPlayer3;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"붐박스 Spawned");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0166: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}
	}
	[BepInPlugin("boom", "boom", "1.0.5")]
	public class boomPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "boommob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("boomenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("boom TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("boom TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin boom is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "boom";

		public const string PLUGIN_NAME = "boom";

		public const string PLUGIN_VERSION = "1.0.5";
	}
}

item/fire.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("fire")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("fire")]
[assembly: AssemblyTitle("fire")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace fire
{
	public class fireAI : EnemyAI
	{
		public float laughTimer;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"비상구생성");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0034: 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)
			if (!(timeSinceHittingLocalPlayer < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer = 0f;
				val.DamagePlayer(5, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}

		public override void Update()
		{
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!HasValidTarget())
			{
				if (base.debugEnemyAI)
				{
					Debug.Log((object)"Failed to find new target");
				}
			}
			else if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}
	}
	[BepInPlugin("fire", "fire", "1.0.4")]
	public class firePlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "firemob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("fireenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("fire TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("fire TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin fire is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "fire";

		public const string PLUGIN_NAME = "fire";

		public const string PLUGIN_VERSION = "1.0.4";
	}
}

item/girl.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("girl")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("girl")]
[assembly: AssemblyTitle("girl")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace girl
{
	public class girlAI : LassoManAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((LassoManAI)this).Start();
			Debug.Log((object)"dress girl Spawned");
			((EnemyAI)this).currentBehaviourStateIndex = 0;
		}

		public override void Update()
		{
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: 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_0167: Unknown result type (might be due to invalid IL or missing references)
			((LassoManAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (((EnemyAI)this).enemyType.audioClips.Length != 0)
				{
					((EnemyAI)this).creatureVoice.PlayOneShot(((EnemyAI)this).enemyType.audioClips[Random.Range(0, ((EnemyAI)this).enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				((EnemyAI)this).targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (((EnemyAI)this).debugEnemyAI && (Object)(object)((EnemyAI)this).targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + ((EnemyAI)this).targetPlayer.playerUsername));
				}
			}
			if (!((EnemyAI)this).isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				Vector3 val = ((EnemyAI)this).targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
			}
		}

		public override void DoAIInterval()
		{
			((LassoManAI)this).DoAIInterval();
			switch (((EnemyAI)this).currentBehaviourStateIndex)
			{
			case 0:
				((EnemyAI)this).SwitchToBehaviourState(0);
				Debug.Log((object)"소리남");
				break;
			case 1:
				if (((EnemyAI)this).currentBehaviourStateIndex == 1)
				{
					((EnemyAI)this).creatureVoice.Stop();
					((EnemyAI)this).creatureSFX.PlayOneShot(((EnemyAI)this).enemyType.stunSFX);
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex + 1;
				}
				break;
			case 2:
				if (((EnemyAI)this).currentBehaviourStateIndex == 2)
				{
					Debug.Log((object)"초기화");
					((EnemyAI)this).SwitchToBehaviourState(0);
					((EnemyAI)this).currentBehaviourStateIndex = 0;
				}
				break;
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)((EnemyAI)this).targetPlayer != (Object)null && ((EnemyAI)this).targetPlayer.isInsideFactory && !((EnemyAI)this).targetPlayer.isPlayerDead;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}

		protected override void __initializeVariables()
		{
			((LassoManAI)this).__initializeVariables();
		}
	}
	[BepInPlugin("girl", "girl", "1.0.5")]
	public class bellPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "girlmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("girlenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("girl TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("girl TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin girl is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "girl";

		public const string PLUGIN_NAME = "girl";

		public const string PLUGIN_VERSION = "1.0.5";
	}
}

item/head.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("head")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("head")]
[assembly: AssemblyTitle("head")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace head
{
	public class headAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceHittingLocalPlayer3;

		private float timeSinceNewRandPos;

		private Vector3 positionRandomness;

		public override void Start()
		{
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Start();
			Debug.Log((object)"대가리 소환");
			base.currentBehaviourStateIndex = 0;
			Transform transform = ((Component)this).gameObject.transform;
			positionRandomness = new Vector3(0f, 0f, 0f);
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					GameNetworkManager.Instance.localPlayerController.JumpToFearLevel(1f, true);
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					DoAnimationClientRpc("change");
					DoAnimationClientRpc("blood");
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		public void DoAnimationClientRpc(string animationName)
		{
			Debug.Log((object)("Animation: " + animationName));
			base.creatureAnimator.SetTrigger(animationName);
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
			}
		}
	}
	[BepInPlugin("head", "head", "1.0.0")]
	public class headmujunPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "headmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("headenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("head TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("head TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin head is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "head";

		public const string PLUGIN_NAME = "head";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

item/invisible.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("invisible")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("invisible")]
[assembly: AssemblyTitle("invisible")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace invisible
{
	public class invisibleAI : EnemyAI
	{
		public float laughTimer;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"투명 소환");
			base.currentBehaviourStateIndex = 0;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			if (!(timeSinceHittingLocalPlayer < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer = 0f;
			}
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}
	}
	[BepInPlugin("invisible", "invisible", "1.0.0")]
	public class invisiblePlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "invisiblemob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("invisibleenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("invisible TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("invisible TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)2, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin invisible is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "invisible";

		public const string PLUGIN_NAME = "invisible";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

item/mujun.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("mujun")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("mujun")]
[assembly: AssemblyTitle("mujun")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace mujun
{
	public class mujunAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceNewRandPos;

		private float timeSinceHittingLocalPlayer3;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"무전기 소환");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: 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_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					GameNetworkManager.Instance.localPlayerController.JumpToFearLevel(1f, true);
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					DoAnimationClientRpc("change");
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		public void DoAnimationClientRpc(string animationName)
		{
			Debug.Log((object)("Animation: " + animationName));
			base.creatureAnimator.SetTrigger(animationName);
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}
	}
	[BepInPlugin("mujun", "mujun", "1.0.0")]
	public class mujunPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "mujunmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("mujunenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("mujun TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("mujunl TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin mujun is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "mujun";

		public const string PLUGIN_NAME = "mujun";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

item/outairhorn.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("outairhorn")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("outairhorn")]
[assembly: AssemblyTitle("outairhorn")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace outairhorn
{
	public class outairhornAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceHittingLocalPlayer3;

		private int prevState = 0;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"Toilet Leech Spawned");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}
	}
	[BepInPlugin("outairhorn", "outairhorn", "1.0.5")]
	public class outairhornPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "outairhornmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("outairhornenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("outairhorn TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("outairhorn TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)2, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin outairhorn is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "outairhorn";

		public const string PLUGIN_NAME = "outairhorn";

		public const string PLUGIN_VERSION = "1.0.5";
	}
}

item/outboom.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("outboom")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("outboom")]
[assembly: AssemblyTitle("outboom")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace outboom
{
	public class outboomAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceHittingLocalPlayer3;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"Toilet Leech Spawned");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: 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_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: 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)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}
	}
	[BepInPlugin("outboom", "outboom", "1.0.5")]
	public class outboomPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "outboommob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("outboomenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("outboom TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("outboom TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)2, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin outboom is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "outboom";

		public const string PLUGIN_NAME = "outboom";

		public const string PLUGIN_VERSION = "1.0.5";
	}
}

item/outmujun.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("outmujun")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("outmujun")]
[assembly: AssemblyTitle("outmujun")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace outmujun
{
	public class outmujunAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceHittingLocalPlayer3;

		private float timeSinceNewRandPos;

		private Vector3 positionRandomness;

		public override void Start()
		{
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Start();
			Debug.Log((object)"외부 무전기 소환");
			base.currentBehaviourStateIndex = 0;
			Transform transform = ((Component)this).gameObject.transform;
			positionRandomness = new Vector3(0f, 0f, 0f);
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					GameNetworkManager.Instance.localPlayerController.JumpToFearLevel(1f, true);
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					DoAnimationClientRpc("change");
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		public void DoAnimationClientRpc(string animationName)
		{
			Debug.Log((object)("Animation: " + animationName));
			base.creatureAnimator.SetTrigger(animationName);
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}
	}
	[BepInPlugin("outmujun", "outmujun", "1.0.0")]
	public class outmujunPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "outmujunmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("outmujunenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("outmujun TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("outmujunl TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)2, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin outmujun is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "outmujun";

		public const string PLUGIN_NAME = "outmujun";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

item/present.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("present")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("present")]
[assembly: AssemblyTitle("present")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace present
{
	public class presentAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private RoundManager instance = RoundManager.Instance;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceNewRandPos;

		private Vector3 positionRandomness;

		private float ticksTillThunder = 5f;

		private Random enemyRandom;

		public override void Start()
		{
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Start();
			Debug.Log((object)"선물상자 소환");
			base.currentBehaviourStateIndex = 0;
			enemyRandom = new Random(StartOfRound.Instance.randomMapSeed + base.thisEnemyIndex);
			Transform transform = ((Component)this).gameObject.transform;
			positionRandomness = new Vector3(0f, 0f, 0f);
		}

		public override void Update()
		{
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: 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)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (base.isEnemyDead || StartOfRound.Instance.allPlayersDead)
			{
				return;
			}
			timeSinceHittingLocalPlayer2 += Time.deltaTime;
			timeSinceHittingLocalPlayer += Time.deltaTime;
			timeSinceNewRandPos += Time.deltaTime;
			Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
			Vector3 normalized = ((Vector3)(ref val)).normalized;
			Transform transform = ((Component)this).transform;
			transform.position += normalized * (Time.deltaTime * 2f);
			if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.2f))
			{
				base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
				Debug.Log((object)"번개 정상작동중!");
				thunderReset();
				instance.LightningStrikeClientRpc(base.serverPosition);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					thunderTick();
					Debug.Log((object)"번개 활성화!");
					timeSinceHittingLocalPlayer2 = 0f;
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			if (!(timeSinceHittingLocalPlayer < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer = 0f;
			}
		}

		public void thunderReset()
		{
			//IL_002a: 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_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0141: Unknown result type (might be due to invalid IL or missing references)
			if (base.currentBehaviourStateIndex == 1)
			{
				RoundManager val = RoundManager.Instance;
				Debug.Log((object)"thunder");
				ticksTillThunder = Math.Min((float)Math.Pow(Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position), 1.75), 180f);
				Vector3 serverPosition = base.serverPosition;
				serverPosition.y += (float)(enemyRandom.NextDouble() * (double)ticksTillThunder * 0.2) - ticksTillThunder * 0.1f;
				serverPosition.x += (float)(enemyRandom.NextDouble() * (double)ticksTillThunder * 0.2) - ticksTillThunder * 0.1f;
				GameObject val2 = GameObject.Find("TimeAndWeather");
				GameObject val3 = null;
				for (int i = 0; i < val2.transform.GetChildCount(); i++)
				{
					GameObject gameObject = ((Component)val2.transform.GetChild(i)).gameObject;
					if (((Object)gameObject).name.Equals("Stormy"))
					{
						val3 = gameObject;
					}
				}
				val3.SetActive(true);
				val.LightningStrikeClientRpc(serverPosition);
				return;
			}
			GameObject val4 = GameObject.Find("TimeAndWeather");
			GameObject val5 = null;
			for (int j = 0; j < val4.transform.GetChildCount(); j++)
			{
				GameObject gameObject2 = ((Component)val4.transform.GetChild(j)).gameObject;
				if (((Object)gameObject2).name.Equals(""))
				{
					val5 = gameObject2;
				}
			}
			val5.SetActive(true);
		}

		public void thunderTick()
		{
			ticksTillThunder -= 1f;
			if (ticksTillThunder <= 0f)
			{
				thunderReset();
			}
		}
	}
	[BepInPlugin("present", "present", "1.0.0")]
	public class presentPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "presentmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("presentenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("present TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("present TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)2, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin present is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "present";

		public const string PLUGIN_NAME = "present";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

item/robot.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("robot")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("robot")]
[assembly: AssemblyTitle("robot")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace robot
{
	public class robotAI : EnemyAI
	{
		public float laughTimer;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceHittingLocalPlayer3;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"로봇 소환");
			base.currentBehaviourStateIndex = 0;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!HasValidTarget())
			{
				if (base.debugEnemyAI)
				{
					Debug.Log((object)"Failed to find new target");
				}
			}
			else if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}
	}
	[BepInPlugin("robot", "robot", "1.0.0")]
	public class robotPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "robotmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("robotenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("robot TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("robot TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin robot is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "robot";

		public const string PLUGIN_NAME = "robot";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

item/sword.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("hakapad2")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("hakapad2")]
[assembly: AssemblyTitle("hakapad2")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace sword
{
	[BepInPlugin("gakmok.sword", "sword", "1.0.7")]
	public class Plugin : BaseUnityPlugin
	{
		private const string GUID = "gakmok.sword";

		private const string Name = "sword";

		private const string Version = "1.0.7";

		public static Plugin Instance;

		private void Awake()
		{
			Instance = this;
			string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "swordmode");
			AssetBundle val = AssetBundle.LoadFromFile(text);
			Item val2 = val.LoadAsset<Item>("Assets/sword/sword Item.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Utilities.FixMixerGroups(val2.spawnPrefab);
			TerminalNode val3 = ScriptableObject.CreateInstance<TerminalNode>();
			val3.clearPreviousText = true;
			val3.displayText = "This is sword";
			Items.RegisterShopItem(val2, (TerminalNode)null, (TerminalNode)null, val3, 1000);
			val2.spawnPrefab.GetComponent<Shovel>();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"LethalLib loaded!!");
		}
	}
}

item/teleport.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("teleport")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("teleport")]
[assembly: AssemblyTitle("teleport")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace tp
{
	[BepInPlugin("tp", "tp", "1.0.0")]
	public class tpPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "tpmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("tpenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("tp TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("tp TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin tp is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "tp";

		public const string PLUGIN_NAME = "tp";

		public const string PLUGIN_VERSION = "1.0.0";
	}
	public class tpAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceNewRandPos;

		private float timeSinceHittingLocalPlayer3;

		private bool currentlyTeleporting;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"무전기 소환");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: 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)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		public void DoAnimationClientRpc(string animationName)
		{
			Debug.Log((object)("Animation: " + animationName));
			base.creatureAnimator.SetTrigger(animationName);
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_003d: 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)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
				TeleportPlayerToRandomPos(val);
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
				base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
			}
		}

		public void TeleportPlayerToRandomPos(PlayerControllerB player)
		{
			//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_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			currentlyTeleporting = true;
			Random random = new Random();
			Vector3 position = RoundManager.Instance.insideAINodes[random.Next(0, RoundManager.Instance.insideAINodes.Length)].transform.position;
			while (Vector3.Distance(position, ((Component)this).transform.position) < 30f)
			{
				position = RoundManager.Instance.insideAINodes[random.Next(0, RoundManager.Instance.insideAINodes.Length)].transform.position;
			}
			player.DropAllHeldItemsAndSync();
			player.TeleportPlayer(position, false, 0f, false, true);
			Debug.Log((object)"voodoo attempted to teleport player");
			player.SpawnPlayerAnimation();
			if (player.statusEffectAudio.isPlaying)
			{
				player.statusEffectAudio.Stop();
				player.statusEffectAudio.clip = null;
			}
			currentlyTeleporting = false;
		}
	}
}

item/test.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("test")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("test")]
[assembly: AssemblyTitle("test")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace test
{
	public class testAI : EnemyAI
	{
		public float laughTimer;

		public Transform turnCompass;

		public Transform attackArea;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		private float timeSinceHittingLocalPlayer;

		private float timeSinceHittingLocalPlayer2;

		private float timeSinceHittingLocalPlayer3;

		private float timeSinceNewRandPos;

		public override void Start()
		{
			((EnemyAI)this).Start();
			Debug.Log((object)"테스트 스폰");
			base.currentBehaviourStateIndex = 0;
		}

		public virtual void EvtFlush()
		{
			Debug.Log((object)"정상작동");
			((EnemyAI)this).SwitchToBehaviourState(0);
		}

		public override void Update()
		{
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: 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_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: 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)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!base.isEnemyDead && !StartOfRound.Instance.allPlayersDead)
			{
				timeSinceHittingLocalPlayer += Time.deltaTime;
				timeSinceNewRandPos += Time.deltaTime;
				timeSinceHittingLocalPlayer2 += Time.deltaTime;
				timeSinceHittingLocalPlayer3 += Time.deltaTime;
				Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Transform transform = ((Component)this).transform;
				transform.position += normalized * (Time.deltaTime * 2f);
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer2 < 0.3f))
				{
					GameNetworkManager.Instance.localPlayerController.JumpToFearLevel(1f, true);
					base.creatureSFX.PlayOneShot(base.enemyType.stunSFX);
					DoAnimationClientRpc("change");
					timeSinceHittingLocalPlayer2 = 0f;
					Debug.Log((object)"소리 정상작동중!");
				}
			}
		}

		[ClientRpc]
		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			switch (base.currentBehaviourStateIndex)
			{
			case 0:
				Debug.Log((object)"소리남");
				((EnemyAI)this).SwitchToBehaviourState(0);
				((EnemyAI)this).SwitchToBehaviourClientRpc(0);
				((EnemyAI)this).SwitchToBehaviourServerRpc(0);
				((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(0);
				timeSinceHittingLocalPlayer = 0f;
				break;
			case 1:
				if (base.currentBehaviourStateIndex == 1 && !(timeSinceHittingLocalPlayer < 0.1f))
				{
					Debug.Log((object)"소리남2");
					((EnemyAI)this).SwitchToBehaviourState(1);
					((EnemyAI)this).SwitchToBehaviourClientRpc(1);
					((EnemyAI)this).SwitchToBehaviourServerRpc(1);
					((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(1);
					base.currentBehaviourStateIndex = 0;
				}
				break;
			case 2:
				break;
			}
		}

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (!(timeSinceHittingLocalPlayer3 < 1f))
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				timeSinceHittingLocalPlayer3 = 0f;
				val.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3));
			}
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}

		public void DoAnimationClientRpc(string animationName)
		{
			Debug.Log((object)("Animation: " + animationName));
			base.creatureAnimator.SetTrigger(animationName);
		}
	}
	[BepInPlugin("test", "test", "1.0.4")]
	public class testPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "testmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("testenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("test TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("test TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin test is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "test";

		public const string PLUGIN_NAME = "test";

		public const string PLUGIN_VERSION = "1.0.4";
	}
}

item/test2.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using GameNetcodeStuff;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("test2")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("test2")]
[assembly: AssemblyTitle("test2")]
[assembly: AssemblyVersion("1.0.0.0")]
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;
		}
	}
}
namespace cash
{
	public class customAI2 : EnemyAI
	{
		public float laughTimer;

		private const float MovementSpeed = 2f;

		private const float RotationSpeed = 2f;

		public override void OnCollideWithPlayer(Collider other)
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).OnCollideWithPlayer(other);
			if (!base.isEnemyDead)
			{
				PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false);
				if (!((Object)(object)val == (Object)null))
				{
					val.KillPlayer(Vector3.zero, true, (CauseOfDeath)0, 1);
				}
			}
		}

		public override void Update()
		{
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_015a: 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_0171: 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)
			//IL_0182: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			laughTimer -= Time.deltaTime;
			if ((double)laughTimer <= 0.0)
			{
				laughTimer = Random.Range(6f, 7f);
				if (base.enemyType.audioClips.Length != 0)
				{
					base.creatureVoice.PlayOneShot(base.enemyType.audioClips[Random.Range(0, base.enemyType.audioClips.Length)]);
				}
			}
			if (!HasValidTarget())
			{
				base.targetPlayer = ((EnemyAI)this).GetClosestPlayer(false, false, false);
				if (base.debugEnemyAI && (Object)(object)base.targetPlayer != (Object)null)
				{
					Debug.Log((object)("Found new target: " + base.targetPlayer.playerUsername));
				}
			}
			if (!HasValidTarget())
			{
				if (base.debugEnemyAI)
				{
					Debug.Log((object)"Failed to find new target");
				}
				return;
			}
			Vector3 val = base.targetPlayer.playerGlobalHead.position - ((Component)this).transform.position;
			Vector3 normalized = ((Vector3)(ref val)).normalized;
			Quaternion val2 = Quaternion.LookRotation(normalized);
			((Component)this).transform.rotation = Quaternion.Slerp(((Component)this).transform.rotation, val2, Time.deltaTime * 2f);
			Transform transform = ((Component)this).transform;
			transform.position += normalized * (Time.deltaTime * 2f);
		}

		private bool HasValidTarget()
		{
			return (Object)(object)base.targetPlayer != (Object)null && base.targetPlayer.isInsideFactory && !base.targetPlayer.isPlayerDead;
		}
	}
	[BepInPlugin("custom3", "custom3", "1.0.0")]
	public class SkullPlugin : BaseUnityPlugin
	{
		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			if (Utility.IsNullOrWhiteSpace(directoryName))
			{
				return;
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "cashmob"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets");
				return;
			}
			EnemyType val2 = val.LoadAsset<EnemyType>("cashenemy");
			TerminalNode val3 = val.LoadAsset<TerminalNode>("cash TN");
			TerminalKeyword val4 = val.LoadAsset<TerminalKeyword>("cash TK");
			NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab);
			Enemies.RegisterEnemy(val2, 0, (LevelTypes)(-1), (SpawnType)0, val3, val4);
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin custom3 is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "custom3";

		public const string PLUGIN_NAME = "custom3";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}