Decompiled source of TunnelersTrinkets v1.0.0

TunnelersTrinkets.dll

Decompiled 2 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using Microsoft.CodeAnalysis;
using On;
using TunnelersTrinkets.NetcodePatcher;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.InputSystem;
using WormAPI;
using WormAPI.Utils;

[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: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: IgnoresAccessChecksTo("Unity.Netcode.Components")]
[assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")]
[assembly: AssemblyCompany("TunnelersTrinkets")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("sigma")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("TunnelersTrinkets")]
[assembly: AssemblyTitle("TunnelersTrinkets")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: NetcodePatchedAssembly]
internal class <Module>
{
	static <Module>()
	{
	}
}
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace TunnelersTrinkets
{
	public class Slipstream
	{
		public static GameObject SlipstreamObject;

		public static void Initialize()
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			SlipstreamObject = TunnelersTrinkets.Load<GameObject>("Slipstream.prefab");
			PrefabAPI.MarkNetworkPrefab(SlipstreamObject);
			WormAbilityAPI.AddWormAbility(new WormAbilityInfo
			{
				WormAbilityObject = SlipstreamObject,
				AbilityNotes = new List<string> { "This is a passive ability and cannot be activated." }
			});
			LanguageAPI.AddString("TT_ABILITY_SLIPSTREAM", "Slipstream", (Language)0);
			LanguageAPI.AddString("TT_ABILITY_SLIPSTREAM_DESC", "Increase movement speed underground by 50%. Boost is lowered to 25% when below max health.", (Language)0);
		}
	}
	public class WormAbility_Slipstream : WormAbility
	{
		public WormMovement movement;

		public float surfaceSpeed;

		public float damagedSpeed;

		public float speed;

		public bool equipped = false;

		public override void Update()
		{
			//IL_0210: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Invalid comparison between Unknown and I4
			((WormAbility)this).Update();
			if (!Object.op_Implicit((Object)(object)movement) && Object.op_Implicit((Object)(object)base.ourWormAbilityManager))
			{
				movement = ((Component)base.ourWormAbilityManager).GetComponent<WormMovement>();
				surfaceSpeed = movement.burrowSpeed;
				damagedSpeed = surfaceSpeed * 1.25f;
				speed = surfaceSpeed * 1.5f;
				equipped = (Object)(object)base.ourWormAbilityManager.abilitySlot2 == (Object)(object)this || (Object)(object)base.ourWormAbilityManager.abilitySlot3 == (Object)(object)this;
				Transform parent = ((Component)base.isActiveUIFillImage).transform.parent;
				if ((Object)(object)base.ourWormAbilityManager.abilitySlot2 == (Object)(object)this)
				{
					((Component)parent.Find("Cooldown Indicator")).gameObject.SetActive(false);
					((Component)parent.Find("Cooldown Time Text 2")).gameObject.SetActive(false);
					((Component)parent.Find("Charge Counter Group (2)")).gameObject.SetActive(false);
					((Component)parent.Find("Ability Keybind Label")).gameObject.SetActive(false);
					((Component)parent.Find("Border Image On Cooldown (1)")).gameObject.SetActive(false);
					((Component)parent.Find("Is Off Cooldown background X")).gameObject.SetActive(false);
				}
				else
				{
					((Component)parent.Find("Cooldown Indicator")).gameObject.SetActive(false);
					((Component)parent.Find("Cooldown Time Text 3")).gameObject.SetActive(false);
					((Component)parent.Find("Charge Counter Group (3)")).gameObject.SetActive(false);
					((Component)parent.Find("Ability Keybind Label")).gameObject.SetActive(false);
					((Component)parent.Find("Border Image On Cooldown (2)")).gameObject.SetActive(false);
					((Component)parent.Find("Is Off Cooldown background X")).gameObject.SetActive(false);
				}
			}
			if (equipped && Object.op_Implicit((Object)(object)movement) && (int)movement.wormMovementState == 1)
			{
				if (movement.wormPlayer.wormHealth < movement.wormPlayer.wormHealth_Max)
				{
					movement.burrowSpeed = damagedSpeed;
				}
				else
				{
					movement.burrowSpeed = speed;
				}
			}
		}

		protected override void __initializeVariables()
		{
			((WormAbility)this).__initializeVariables();
		}

		protected internal override string __getTypeName()
		{
			return "WormAbility_Slipstream";
		}
	}
	public static class FlareGun
	{
		public static GameObject FlareGunEquipment;

		public static GameObject Flare;

		public static void Initialize()
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Expected O, but got Unknown
			FlareGunEquipment = TunnelersTrinkets.Load<GameObject>("PardnerEquipment_FlareGun.prefab");
			Flare = TunnelersTrinkets.Load<GameObject>("Flare.prefab");
			PrefabAPI.MarkNetworkPrefab(FlareGunEquipment);
			PrefabAPI.MarkNetworkPrefab(Flare);
			EquipmentAPI.AddEquipment(new EquipmentInfo
			{
				Prefab = FlareGunEquipment,
				Name = "TT_EQUIP_FLAREGUN"
			});
			LanguageAPI.AddString("TT_EQUIP_FLAREGUN", "Flare Gun", (Language)0);
		}
	}
	public class PardnerEquipment_FlareGun : PardnerEquipment
	{
		public GameObject flareGunModel;

		public float shotSpeed;

		public GameObject flare;

		public GameObject muzzleFlash;

		public AudioSource shotSound;

		private Transform muzzle;

		public override void OnUse()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			if (((PardnerEquipment)this).GetIsCooldownReady())
			{
				Vector3 val = base.aimSpotOnUse - ((Component)muzzle).transform.position;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				ShootTheFuckingShot_ServerRPC(((Component)muzzle).transform.position, muzzle.forward, normalized);
				((PardnerEquipment)this).OnUse();
			}
		}

		public override void Update()
		{
			((PardnerEquipment)this).Update();
		}

		[ServerRpc(RequireOwnership = false)]
		public void ShootTheFuckingShot_ServerRPC(Vector3 pos, Vector3 rot, Vector3 dir)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
				{
					ServerRpcParams val = default(ServerRpcParams);
					FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(342213646u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref rot);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref dir);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 342213646u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					ShootTheFuckingShot(pos, rot, dir);
				}
			}
		}

		public void ShootTheFuckingShot(Vector3 pos, Vector3 rot, Vector3 dir)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			SpawnEffects_ServerRPC(pos, rot);
			SpawnEffects(pos, rot);
			GameObject val = Object.Instantiate<GameObject>(flare, pos, Quaternion.LookRotation(dir));
			val.GetComponent<Rigidbody>().velocity = dir * shotSpeed;
			val.GetComponent<NetworkObject>().Spawn(true);
		}

		[ServerRpc(RequireOwnership = false)]
		public void SpawnEffects_ServerRPC(Vector3 pos, Vector3 dir)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b0: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
				{
					ServerRpcParams val = default(ServerRpcParams);
					FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3638398928u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref dir);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3638398928u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					SpawnEffects_ClientRPC(pos, dir);
				}
			}
		}

		[ClientRpc]
		public void SpawnEffects_ClientRPC(Vector3 pos, Vector3 dir)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b0: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
				{
					ClientRpcParams val = default(ClientRpcParams);
					FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3033716193u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref dir);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3033716193u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					SpawnEffects(pos, dir);
				}
			}
		}

		public void SpawnEffects(Vector3 pos, Vector3 dir)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			Object.Instantiate<GameObject>(muzzleFlash, pos, Quaternion.LookRotation(dir));
			AudioSource.PlayClipAtPoint(shotSound.clip, pos);
		}

		public override void OnEquip()
		{
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			((PardnerEquipment)this).OnEquip();
			base.spawnedAimDummyObject = Object.Instantiate<GameObject>(flareGunModel);
			base.spawnedAimDummyObject.transform.parent = base.grabberScriptOfWhoHasUsEquipped.GetRifleAimDummyParent();
			base.spawnedAimDummyObject.transform.localPosition = new Vector3(-0.2f, 0f, -0.1f);
			base.spawnedAimDummyObject.transform.localRotation = Quaternion.Euler(0f, 270f, 0f);
			muzzle = base.spawnedAimDummyObject.transform.Find("Muzzle");
			base.spawnedAimDummyObject.SetActive(false);
		}

		public override void OnUnequip()
		{
			((PardnerEquipment)this).OnUnequip();
			Object.Destroy((Object)(object)base.spawnedAimDummyObject);
		}

		public override void OnIsAimingUpdate()
		{
			((PardnerEquipment)this).OnIsAimingUpdate();
			base.spawnedAimDummyObject.SetActive(true);
			base.grabberScriptOfWhoHasUsEquipped.GetSpawnedEquipmentOnOurBodyDummy().SetActive(false);
		}

		public override void OnNotAimingUpdate()
		{
			((PardnerEquipment)this).OnNotAimingUpdate();
			base.spawnedAimDummyObject.SetActive(false);
			base.grabberScriptOfWhoHasUsEquipped.GetSpawnedEquipmentOnOurBodyDummy().SetActive(true);
		}

		protected override void __initializeVariables()
		{
			((PardnerEquipment)this).__initializeVariables();
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_PardnerEquipment_FlareGun()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Expected O, but got Unknown
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Expected O, but got Unknown
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			NetworkManager.__rpc_func_table.Add(342213646u, new RpcReceiveHandler(__rpc_handler_342213646));
			NetworkManager.__rpc_func_table.Add(3638398928u, new RpcReceiveHandler(__rpc_handler_3638398928));
			NetworkManager.__rpc_func_table.Add(3033716193u, new RpcReceiveHandler(__rpc_handler_3033716193));
		}

		private static void __rpc_handler_342213646(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				Vector3 pos = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref pos);
				Vector3 rot = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref rot);
				Vector3 dir = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref dir);
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((PardnerEquipment_FlareGun)(object)target).ShootTheFuckingShot_ServerRPC(pos, rot, dir);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_3638398928(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				Vector3 pos = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref pos);
				Vector3 dir = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref dir);
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((PardnerEquipment_FlareGun)(object)target).SpawnEffects_ServerRPC(pos, dir);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_3033716193(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				Vector3 pos = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref pos);
				Vector3 dir = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref dir);
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((PardnerEquipment_FlareGun)(object)target).SpawnEffects_ClientRPC(pos, dir);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		protected internal override string __getTypeName()
		{
			return "PardnerEquipment_FlareGun";
		}
	}
	public class Flare : NetworkBehaviour
	{
		public Rigidbody rb;

		public bool stuck = false;

		private GroundDetectable detectable;

		public void Start()
		{
			rb = ((Component)this).GetComponent<Rigidbody>();
			detectable = ((Component)this).GetComponentInChildren<GroundDetectable>();
		}

		public void Update()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			if (rb.velocity != Vector3.zero)
			{
				Transform transform = ((Component)this).transform;
				Vector3 velocity = rb.velocity;
				transform.forward = ((Vector3)(ref velocity)).normalized;
			}
		}

		public void LateUpdate()
		{
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Invalid comparison between Unknown and I4
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Invalid comparison between Unknown and I4
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: 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_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)detectable) && Object.op_Implicit((Object)(object)detectable.spawnedAudioPingParticles) && Object.op_Implicit((Object)(object)detectable.spawnedHudAudioPing) && Object.op_Implicit((Object)(object)GameManager.Singleton) && (int)GameManager.Singleton.gameState == 1 && !detectable.isOurPlayerObject && (int)GameManager.Singleton.playerType == 1 && Object.op_Implicit((Object)(object)GroundDetectableManager.Singleton.localWormTransform))
			{
				Camera activeCamera = GameManager.Singleton.activeCamera;
				Vector3 val = activeCamera.WorldToViewportPoint(((Component)this).transform.position);
				if (val.x > 0f && val.x < 1f && val.y > 0f && val.y < 1f && val.z > 0f)
				{
					detectable.spawnedAudioPingParticles.SetActive(true);
					detectable.spawnedHudAudioPing.SetActive(false);
					detectable.spawnedAudioPingParticles.transform.position = ((Component)this).transform.position;
					return;
				}
				detectable.spawnedAudioPingParticles.SetActive(false);
				detectable.spawnedHudAudioPing.SetActive(true);
				Quaternion val2 = Quaternion.LookRotation(((Component)activeCamera).transform.position - ((Component)this).transform.position);
				val2.z = 0f - val2.y;
				val2.x = (val2.y = 0f);
				Vector3 val3 = default(Vector3);
				((Vector3)(ref val3))..ctor(0f, 0f, ((Component)activeCamera).transform.eulerAngles.y);
				detectable.spawnedHudAudioPing.transform.localRotation = val2 * Quaternion.Euler(val3);
			}
		}

		public void OnCollisionEnter(Collision col)
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			if (!stuck)
			{
				ContactPoint val = col.contacts[0];
				if (Object.op_Implicit((Object)(object)col.collider) && Deflect(col.collider))
				{
					Rigidbody obj = rb;
					obj.velocity += ((ContactPoint)(ref val)).normal * 5f;
					return;
				}
				rb.isKinematic = true;
				rb.velocity = Vector3.zero;
				stuck = true;
				((Component)this).GetComponentInChildren<Collider>().enabled = false;
			}
		}

		public bool Deflect(Collider col)
		{
			Tumbleweed componentInParent = ((Component)col).GetComponentInParent<Tumbleweed>();
			if (Object.op_Implicit((Object)(object)componentInParent))
			{
				componentInParent.LightOnFire_ServerRPC(componentInParent.ourPickUpScript.lastPlayerWhoHeldUs);
				return true;
			}
			Dynamite componentInParent2 = ((Component)col).GetComponentInParent<Dynamite>();
			if (Object.op_Implicit((Object)(object)componentInParent2))
			{
				componentInParent2.DynamiteWasShotByRifle(componentInParent2.ourPickUpScript.lastPlayerWhoHeldUs);
				Object.Destroy((Object)(object)((Component)this).gameObject);
				return true;
			}
			if (Object.op_Implicit((Object)(object)((Component)col).GetComponentInParent<WormPlayer>()) || Object.op_Implicit((Object)(object)((Component)col).GetComponentInParent<Player>()) || Object.op_Implicit((Object)(object)((Component)col).GetComponentInParent<Rigidbody>()))
			{
				return true;
			}
			return false;
		}

		protected override void __initializeVariables()
		{
			((NetworkBehaviour)this).__initializeVariables();
		}

		protected internal override string __getTypeName()
		{
			return "Flare";
		}
	}
	public static class RockShoes
	{
		[CompilerGenerated]
		private static class <>O
		{
			public static hook_ResetVisability <0>__RockShoesSilence;
		}

		public static GameObject RockShoesEquipment;

		public static Dictionary<Player, bool> SilenceMap = new Dictionary<Player, bool>();

		public static void Initialize()
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			//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_0068: Expected O, but got Unknown
			RockShoesEquipment = TunnelersTrinkets.Load<GameObject>("PardnerEquipment_RockShoes.prefab");
			PrefabAPI.MarkNetworkPrefab(RockShoesEquipment);
			EquipmentAPI.AddEquipment(new EquipmentInfo
			{
				Prefab = RockShoesEquipment,
				Name = "TT_EQUIP_ROCKSHOES"
			});
			LanguageAPI.AddString("TT_EQUIP_ROCKSHOES", "Silent Shoes", (Language)0);
			object obj = <>O.<0>__RockShoesSilence;
			if (obj == null)
			{
				hook_ResetVisability val = RockShoesSilence;
				<>O.<0>__RockShoesSilence = val;
				obj = (object)val;
			}
			GroundDetectable.ResetVisability += (hook_ResetVisability)obj;
		}

		private static void RockShoesSilence(orig_ResetVisability orig, GroundDetectable self, float _fadeTimeBuffer, bool _IgnoreWormMidAirCheck, bool _forcePingVisability)
		{
			if (!self.isPlayer || !Object.op_Implicit((Object)(object)self.thisPlayerScript) || !SilenceMap.ContainsKey(self.thisPlayerScript) || _forcePingVisability)
			{
				orig.Invoke(self, _fadeTimeBuffer, _IgnoreWormMidAirCheck, _forcePingVisability);
			}
		}
	}
	public class PardnerEquipment_RockShoes : PardnerEquipment
	{
		public float duration = 12f;

		public GameObject singleShoe;

		private float stopwatch = 0f;

		internal bool isActive = false;

		private GameObject shoe1;

		private GameObject shoe2;

		public override void OnUse()
		{
			if (!(stopwatch > 0f))
			{
				stopwatch = duration;
				isActive = true;
				HandleText();
				ToggleSilentServerRpc(silence: true);
				RespawnShoes(active: true);
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void ToggleSilentServerRpc(bool silence)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1927420499u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref silence, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1927420499u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost) || !Object.op_Implicit((Object)(object)base.grabberScriptOfWhoHasUsEquipped))
			{
				return;
			}
			if (silence)
			{
				if (!RockShoes.SilenceMap.ContainsKey(base.grabberScriptOfWhoHasUsEquipped.playerScript))
				{
					RockShoes.SilenceMap.Add(base.grabberScriptOfWhoHasUsEquipped.playerScript, value: true);
				}
				isActive = true;
			}
			else
			{
				RockShoes.SilenceMap.Remove(base.grabberScriptOfWhoHasUsEquipped.playerScript);
				isActive = false;
			}
			HandleText();
			ToggleSilentClientRpc(silence);
		}

		[ClientRpc]
		public void ToggleSilentClientRpc(bool silence)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4237388855u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref silence, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4237388855u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost) || !Object.op_Implicit((Object)(object)base.grabberScriptOfWhoHasUsEquipped))
			{
				return;
			}
			if (silence)
			{
				if (!RockShoes.SilenceMap.ContainsKey(base.grabberScriptOfWhoHasUsEquipped.playerScript))
				{
					RockShoes.SilenceMap.Add(base.grabberScriptOfWhoHasUsEquipped.playerScript, value: true);
				}
				isActive = true;
			}
			else
			{
				RockShoes.SilenceMap.Remove(base.grabberScriptOfWhoHasUsEquipped.playerScript);
				isActive = false;
				stopwatch = 0f;
			}
			HandleText();
		}

		public void FixedUpdate()
		{
			if (Object.op_Implicit((Object)(object)base.grabberScriptOfWhoHasUsEquipped) && Object.op_Implicit((Object)(object)base.grabberScriptOfWhoHasUsEquipped.GetSpawnedEquipmentOnOurBodyDummy()))
			{
				if (base.grabberScriptOfWhoHasUsEquipped.GetSpawnedEquipmentOnOurBodyDummy().gameObject.activeSelf)
				{
					RespawnShoes(active: false);
				}
				base.grabberScriptOfWhoHasUsEquipped.GetSpawnedEquipmentOnOurBodyDummy().gameObject.SetActive(false);
			}
			if (stopwatch > 0f)
			{
				stopwatch -= Time.fixedDeltaTime;
				if (stopwatch <= 0f)
				{
					ToggleSilentServerRpc(silence: false);
					DeductStock();
				}
			}
		}

		public void DeductStock()
		{
			base.numOfUses--;
			((PardnerEquipment)this).UpdateRemainingUses_ServerRPC(base.numOfUses);
			HudManager.Singleton.JustUsedEquipment_UpdateHud((PardnerEquipment)(object)this);
			isActive = false;
			stopwatch = 0f;
			HandleText();
			RespawnShoes(active: false);
			if (base.numOfUses <= 0)
			{
				((PardnerEquipment)this).OnEquipmentDepleted();
			}
			ToggleSilentServerRpc(silence: false);
		}

		public override void OnUnequip()
		{
			HandleText();
			if (isActive)
			{
				DeductStock();
			}
			if (Object.op_Implicit((Object)(object)shoe1))
			{
				Object.Destroy((Object)(object)shoe1);
			}
			if (Object.op_Implicit((Object)(object)shoe2))
			{
				Object.Destroy((Object)(object)shoe2);
			}
			((PardnerEquipment)this).OnUnequip();
		}

		public override void OnDestroy()
		{
			((NetworkBehaviour)this).OnDestroy();
			if (Object.op_Implicit((Object)(object)shoe1))
			{
				Object.Destroy((Object)(object)shoe1);
			}
			if (Object.op_Implicit((Object)(object)shoe2))
			{
				Object.Destroy((Object)(object)shoe2);
			}
			if (Object.op_Implicit((Object)(object)base.grabberScriptOfWhoHasUsEquipped))
			{
				ToggleSilentServerRpc(silence: false);
			}
		}

		public override void OnEquip()
		{
			((PardnerEquipment)this).OnEquip();
			HandleText();
		}

		public void RespawnShoes(bool active)
		{
			//IL_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_0293: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_033c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0361: Unknown result type (might be due to invalid IL or missing references)
			//IL_0386: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: 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_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)shoe1))
			{
				Object.Destroy((Object)(object)shoe1);
			}
			if (Object.op_Implicit((Object)(object)shoe2))
			{
				Object.Destroy((Object)(object)shoe2);
			}
			if (Object.op_Implicit((Object)(object)base.grabberScriptOfWhoHasUsEquipped))
			{
				Transform val = ((Component)base.grabberScriptOfWhoHasUsEquipped).transform.Find("Art");
				if (active)
				{
					((Component)val).transform.localPosition = new Vector3(0f, 0.125f, 0f);
					val = val.Find("Clayman_01_rigged").Find("mixamorig:Hips");
					shoe1 = Object.Instantiate<GameObject>(singleShoe, val.Find("mixamorig:LeftUpLeg").Find("mixamorig:LeftLeg").Find("mixamorig:LeftFoot"));
					shoe1.transform.localPosition = new Vector3(0f, 0.2f, -0.1f);
					shoe1.transform.localRotation = Quaternion.Euler(0f, 90f, 130f);
					shoe1.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
					shoe2 = Object.Instantiate<GameObject>(singleShoe, val.Find("mixamorig:RightUpLeg").Find("mixamorig:RightLeg").Find("mixamorig:RightFoot"));
					shoe2.transform.localPosition = new Vector3(0f, 0.2f, -0.1f);
					shoe2.transform.localRotation = Quaternion.Euler(0f, 90f, 130f);
					shoe2.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
				}
				else
				{
					((Component)val).transform.localPosition = new Vector3(0f, 0f, 0f);
					val = val.Find("Clayman_01_rigged").Find("mixamorig:Hips").Find("mixamorig:Spine")
						.Find("mixamorig:Spine1")
						.Find("mixamorig:Spine2");
					shoe1 = Object.Instantiate<GameObject>(singleShoe, val.Find("mixamorig:LeftShoulder").Find("mixamorig:LeftArm").Find("mixamorig:LeftForeArm")
						.Find("mixamorig:LeftHand"));
					shoe1.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
					shoe1.transform.localRotation = Quaternion.Euler(0f, 0f, 230f);
					shoe1.transform.localPosition = new Vector3(-0.2f, 0.3f, 0f);
					shoe2 = Object.Instantiate<GameObject>(singleShoe, val.Find("mixamorig:RightShoulder").Find("mixamorig:RightArm").Find("mixamorig:RightForeArm")
						.Find("mixamorig:RightHand"));
					shoe2.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
					shoe2.transform.localRotation = Quaternion.Euler(0f, 0f, -230f);
					shoe2.transform.localPosition = new Vector3(0.2f, 0.3f, 0f);
				}
			}
		}

		public void HandleText()
		{
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Invalid comparison between Unknown and I4
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			if (!isActive && base.numOfUses > 0)
			{
				string text = "";
				PardnerActionMapActions pardnerActionMap;
				if ((int)InputManager.Singleton.lastUsedControllerType == 0)
				{
					pardnerActionMap = InputManager.Singleton.inputActions.PardnerActionMap;
					text = InputActionRebindingExtensions.GetBindingDisplayString(((PardnerActionMapActions)(ref pardnerActionMap)).UseHeldObject, 0, (DisplayStringOptions)0);
				}
				else if ((int)InputManager.Singleton.lastUsedControllerType == 1)
				{
					pardnerActionMap = InputManager.Singleton.inputActions.PardnerActionMap;
					text = InputActionRebindingExtensions.GetBindingDisplayString(((PardnerActionMapActions)(ref pardnerActionMap)).UseHeldObject, 1, (DisplayStringOptions)0);
				}
				HudManager.Singleton.ClearEquipmentUseHintText();
				string text2 = "Wear the Silent Shoes by pressing " + text + ".";
				HudManager.Singleton.DisplayNewEquipmentUseHintText(text2, 38f);
			}
			else if (isActive && base.numOfUses > 0)
			{
				HudManager.Singleton.ClearEquipmentUseHintText();
				string text3 = "You are silent to the worm.";
				HudManager.Singleton.DisplayNewEquipmentUseHintText(text3, 38f);
			}
			else
			{
				HudManager.Singleton.ClearEquipmentUseHintText();
			}
		}

		protected override void __initializeVariables()
		{
			((PardnerEquipment)this).__initializeVariables();
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_PardnerEquipment_RockShoes()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Expected O, but got Unknown
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Expected O, but got Unknown
			NetworkManager.__rpc_func_table.Add(1927420499u, new RpcReceiveHandler(__rpc_handler_1927420499));
			NetworkManager.__rpc_func_table.Add(4237388855u, new RpcReceiveHandler(__rpc_handler_4237388855));
		}

		private static void __rpc_handler_1927420499(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				bool silence = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref silence, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((PardnerEquipment_RockShoes)(object)target).ToggleSilentServerRpc(silence);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_4237388855(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				bool silence = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref silence, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((PardnerEquipment_RockShoes)(object)target).ToggleSilentClientRpc(silence);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		protected internal override string __getTypeName()
		{
			return "PardnerEquipment_RockShoes";
		}
	}
	[BepInPlugin("WormTeam.TunnelersTrinkets", "TunnelersTrinkets", "1.0.0")]
	public class TunnelersTrinkets : BaseUnityPlugin
	{
		public const string PLUGIN_GUID = "WormTeam.TunnelersTrinkets";

		public const string PLUGIN_NAME = "TunnelersTrinkets";

		public const string PLUGIN_VERSION = "1.0.0";

		internal static ManualLogSource Log;

		public static AssetBundle bundle;

		public void Awake()
		{
			Log = ((BaseUnityPlugin)this).Logger;
			bundle = AssetBundle.LoadFromFile(Assembly.GetExecutingAssembly().Location.Replace("TunnelersTrinkets.dll", "wcmbundle"));
			FlareGun.Initialize();
			RockShoes.Initialize();
			Slipstream.Initialize();
			Material[] array = bundle.LoadAllAssets<Material>();
			for (int i = 0; i < array.Length; i++)
			{
				if (((Object)array[i].shader).name == "Stubbed/Clay_WithDissolve")
				{
					array[i].shader = Shaders.Clay_WithDissolve;
				}
			}
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array2 = types;
			foreach (Type type in array2)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array3 = methods;
				foreach (MethodInfo methodInfo in array3)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
		}

		public static T Load<T>(string key) where T : Object
		{
			return bundle.LoadAsset<T>(key);
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "TunnelersTrinkets";

		public const string PLUGIN_NAME = "TunnelersTrinkets";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}
namespace TunnelersTrinkets.NetcodePatcher
{
	[AttributeUsage(AttributeTargets.Module)]
	internal class NetcodePatchedAssemblyAttribute : Attribute
	{
	}
}