using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using LC_LethalEnergy.NetcodePatcher;
using LethalLib.Modules;
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: AssemblyTitle("LC_LethalEnergy")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("LC_LethalEnergy")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("45290088-3404-4593-9b10-989b1ca3aae7")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: NetcodePatchedAssembly]
internal class <Module>
{
static <Module>()
{
}
}
namespace LC_LethalEnergy
{
public class DrinkCase : GrabbableObject
{
public static GameObject canPrefab;
public int cansHeld;
public Transform[] cans;
public ManualLogSource mls;
private int minimumCans = 5;
private int value = 0;
public bool loaded = false;
public override void Start()
{
((GrabbableObject)this).Start();
mls = LethalEnergyMod.mls;
GameObject gameObject = ((Component)((Component)this).transform.Find("DrinkContainer")).gameObject;
cans = (Transform[])(object)new Transform[gameObject.transform.childCount];
for (int i = 0; i < gameObject.transform.childCount; i++)
{
cans[i] = gameObject.transform.GetChild(i);
}
((MonoBehaviour)this).StartCoroutine(SetValue());
if (((NetworkBehaviour)this).IsServer)
{
mls.LogMessage((object)"SetCans was called");
((MonoBehaviour)this).StartCoroutine(SendOutData());
}
else
{
((MonoBehaviour)this).StartCoroutine(RequestData());
}
}
public IEnumerator SendOutData()
{
int cans = Mathf.Clamp(Random.Range(1, 7) + Random.Range(1, 7), minimumCans, 12);
SendCansClientRpc(cans);
yield return (object)new WaitForSeconds(2f);
SendCansServerRpc(cans);
}
public IEnumerator RequestData()
{
yield return (object)new WaitForSeconds(8f);
if (!loaded)
{
RequestCanDataServerRpc();
}
}
public IEnumerator SetValue()
{
yield return (object)new WaitForSeconds(3f);
value = Random.Range(base.itemProperties.minValue, base.itemProperties.maxValue + 1);
UpdateScrapValue();
}
public void UpdateScrapValue()
{
((GrabbableObject)this).SetScrapValue(value + cansHeld * 10);
}
public override void ItemActivate(bool used, bool buttonDown = true)
{
((GrabbableObject)this).ItemActivate(used, buttonDown);
mls.LogMessage((object)("CansHeld: " + cansHeld));
if (buttonDown && cansHeld > 0)
{
cansHeld--;
UpdateCans();
SendCansServerRpc(cansHeld);
SpawnCanServerRpc();
}
}
public void UpdateCans()
{
if (value != 0)
{
UpdateScrapValue();
}
cansHeld = Mathf.Clamp(cansHeld, 0, cans.Length);
for (int i = 0; i < cans.Length; i++)
{
((Component)cans[i]).gameObject.SetActive(i < cansHeld);
}
}
public IEnumerator waitForCanToSpawnOnClient(NetworkObjectReference netObjectRef, Vector3 vector)
{
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
NetworkObject netObject = null;
float startTime = Time.realtimeSinceStartup;
while (Time.realtimeSinceStartup - startTime < 8f && !((NetworkObjectReference)(ref netObjectRef)).TryGet(ref netObject, (NetworkManager)null))
{
yield return (object)new WaitForSeconds(0.03f);
}
if ((Object)(object)netObject == (Object)null)
{
Debug.Log((object)"No network object found");
yield break;
}
yield return (object)new WaitForEndOfFrame();
GrabbableObject component = ((Component)netObject).GetComponent<GrabbableObject>();
RoundManager instance = RoundManager.Instance;
instance.totalScrapValueInLevel -= (float)base.scrapValue;
RoundManager instance2 = RoundManager.Instance;
instance2.totalScrapValueInLevel += (float)component.scrapValue;
component.startFallingPosition = vector;
component.fallTime = 0f;
component.hasHitGround = false;
component.reachedFloorTarget = false;
if ((Object)(object)base.playerHeldBy != (Object)null && base.playerHeldBy.isInHangarShipRoom)
{
base.playerHeldBy.SetItemInElevator(true, true, component);
}
}
[ServerRpc(RequireOwnership = false)]
public void SendCansServerRpc(int cans)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
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(2178516310u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, cans);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2178516310u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
SendCansClientRpc(cans);
}
}
}
[ClientRpc]
public void SendCansClientRpc(int cans)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
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(3972762219u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, cans);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3972762219u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
{
mls.LogMessage((object)("SetCans was called AND went through with " + cans + " cans"));
cansHeld = cans;
UpdateCans();
loaded = true;
}
}
}
[ServerRpc(RequireOwnership = false)]
public void SpawnCanServerRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
//IL_0117: Unknown result type (might be due to invalid IL or missing references)
//IL_0121: Unknown result type (might be due to invalid IL or missing references)
//IL_0126: Unknown result type (might be due to invalid IL or missing references)
//IL_012b: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: Unknown result type (might be due to invalid IL or missing references)
//IL_0132: Unknown result type (might be due to invalid IL or missing references)
//IL_014d: Unknown result type (might be due to invalid IL or missing references)
//IL_0152: Unknown result type (might be due to invalid IL or missing references)
//IL_0157: 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)
//IL_01ae: 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)
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(336232444u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 336232444u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
Transform val3 = ((((!((Object)(object)base.playerHeldBy != (Object)null) || !base.playerHeldBy.isInElevator) && !StartOfRound.Instance.inShipPhase) || !((Object)(object)RoundManager.Instance.spawnedScrapContainer != (Object)null)) ? StartOfRound.Instance.elevatorTransform : RoundManager.Instance.spawnedScrapContainer);
Vector3 val4 = ((Component)this).transform.position + Vector3.up * 0.25f;
GameObject val5 = Object.Instantiate<GameObject>(canPrefab, val4, Quaternion.identity, val3);
GrabbableObject component = val5.GetComponent<GrabbableObject>();
component.targetFloorPosition = component.GetItemFloorPosition(((Component)this).transform.position);
if ((Object)(object)base.playerHeldBy != (Object)null && base.playerHeldBy.isInHangarShipRoom)
{
base.playerHeldBy.SetItemInElevator(true, true, component);
}
((NetworkBehaviour)component).NetworkObject.Spawn(false);
SpawnCanClientRpc(NetworkObjectReference.op_Implicit(val5.GetComponent<NetworkObject>()), val4.x, val4.y, val4.z, cansHeld);
}
}
[ClientRpc]
public void SpawnCanClientRpc(NetworkObjectReference netObjectRef, float x, float y, float z, int cans)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0105: Unknown result type (might be due to invalid IL or missing references)
//IL_010f: 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_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0146: 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)
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(1260893740u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref netObjectRef, default(ForNetworkSerializable));
((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref x, default(ForPrimitives));
((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref y, default(ForPrimitives));
((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref z, default(ForPrimitives));
BytePacker.WriteValueBitPacked(val2, cans);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1260893740u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
{
cansHeld = cans;
UpdateCans();
((MonoBehaviour)this).StartCoroutine(waitForCanToSpawnOnClient(netObjectRef, new Vector3(x, y, z)));
}
}
}
[ServerRpc(RequireOwnership = false)]
public void RequestCanDataServerRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
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(3319284306u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3319284306u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
RequestCanDataClientRpc();
}
}
}
[ClientRpc]
public void RequestCanDataClientRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
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(2097148857u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2097148857u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkBehaviour)this).IsServer)
{
SendCansServerRpc(cansHeld);
}
}
}
protected override void __initializeVariables()
{
((GrabbableObject)this).__initializeVariables();
}
[RuntimeInitializeOnLoadMethod]
internal static void InitializeRPCS_DrinkCase()
{
//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
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Expected O, but got Unknown
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Expected O, but got Unknown
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Expected O, but got Unknown
NetworkManager.__rpc_func_table.Add(2178516310u, new RpcReceiveHandler(__rpc_handler_2178516310));
NetworkManager.__rpc_func_table.Add(3972762219u, new RpcReceiveHandler(__rpc_handler_3972762219));
NetworkManager.__rpc_func_table.Add(336232444u, new RpcReceiveHandler(__rpc_handler_336232444));
NetworkManager.__rpc_func_table.Add(1260893740u, new RpcReceiveHandler(__rpc_handler_1260893740));
NetworkManager.__rpc_func_table.Add(3319284306u, new RpcReceiveHandler(__rpc_handler_3319284306));
NetworkManager.__rpc_func_table.Add(2097148857u, new RpcReceiveHandler(__rpc_handler_2097148857));
}
private static void __rpc_handler_2178516310(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int num = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref num);
target.__rpc_exec_stage = (__RpcExecStage)1;
((DrinkCase)(object)target).SendCansServerRpc(num);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3972762219(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int num = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref num);
target.__rpc_exec_stage = (__RpcExecStage)2;
((DrinkCase)(object)target).SendCansClientRpc(num);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_336232444(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((DrinkCase)(object)target).SpawnCanServerRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1260893740(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_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_0065: 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_0080: Unknown result type (might be due to invalid IL or missing references)
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_008f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_00ad: 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)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
NetworkObjectReference netObjectRef = default(NetworkObjectReference);
((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref netObjectRef, default(ForNetworkSerializable));
float x = default(float);
((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref x, default(ForPrimitives));
float y = default(float);
((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref y, default(ForPrimitives));
float z = default(float);
((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref z, default(ForPrimitives));
int num = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref num);
target.__rpc_exec_stage = (__RpcExecStage)2;
((DrinkCase)(object)target).SpawnCanClientRpc(netObjectRef, x, y, z, num);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3319284306(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((DrinkCase)(object)target).RequestCanDataServerRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_2097148857(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)2;
((DrinkCase)(object)target).RequestCanDataClientRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
protected internal override string __getTypeName()
{
return "DrinkCase";
}
}
public class LethalCan : GrabbableObject
{
public bool drinking;
public float fill = 1f;
public float duration = 20f;
public float timeToDrink = 2f;
public float timeToStart = 0.75f;
public AudioSource audio;
public Coroutine DrinkCoroutine;
public PlayerControllerB previousPlayerHeldBy;
public const string DrinkAnimation = "HoldMask";
public static Item normalProp;
public static Item storeProp;
public static Vector3 normalPos;
public static Vector3 normalRot;
public static Item drinkingProp;
public static Vector3 drinkingPos;
public static Vector3 drinkingRot;
private float animationLerp;
private const int baseValue = 8;
public const int emptyValue = 1;
public static AudioClip drinkingSFX;
public bool loaded = false;
public bool store = false;
public override void Start()
{
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
if (!store)
{
((GrabbableObject)this).SetScrapValue(8);
}
if ((Object)(object)normalProp == (Object)null)
{
if (!store)
{
normalProp = base.itemProperties;
}
normalPos = base.itemProperties.positionOffset;
normalRot = base.itemProperties.rotationOffset;
drinkingPos = drinkingProp.positionOffset;
drinkingRot = drinkingProp.rotationOffset;
}
((GrabbableObject)this).Start();
base.fallTime = 1f;
base.hasHitGround = true;
audio = ((Component)this).GetComponent<AudioSource>();
if (!((NetworkBehaviour)this).IsServer)
{
((MonoBehaviour)this).StartCoroutine(RequestData());
}
}
public IEnumerator RequestData()
{
yield return (object)new WaitForSeconds(5f);
if (!loaded)
{
RequestFillDataServerRpc();
}
}
public override void ItemActivate(bool used, bool buttonDown = true)
{
((GrabbableObject)this).ItemActivate(used, buttonDown);
if (buttonDown)
{
base.isBeingUsed = true;
if (fill <= 0f)
{
previousPlayerHeldBy.playerBodyAnimator.SetTrigger("shakeItem");
return;
}
previousPlayerHeldBy.activatingItem = true;
previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", true);
previousPlayerHeldBy = base.playerHeldBy;
DrinkCoroutine = ((MonoBehaviour)this).StartCoroutine((IEnumerator)StartDrink());
}
else
{
base.isBeingUsed = false;
if (DrinkCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(DrinkCoroutine);
}
Stop();
}
}
public override void Update()
{
//IL_0100: 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_0110: 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_011f: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Unknown result type (might be due to invalid IL or missing references)
//IL_012f: Unknown result type (might be due to invalid IL or missing references)
//IL_0134: Unknown result type (might be due to invalid IL or missing references)
((GrabbableObject)this).Update();
if (!base.isHeld || !((Object)(object)base.playerHeldBy == (Object)(object)StartOfRound.Instance.localPlayerController))
{
return;
}
if (base.playerHeldBy.playerBodyAnimator.GetBool("HoldMask"))
{
animationLerp = Mathf.MoveTowards(animationLerp, 1f, Time.deltaTime * 3f / timeToStart);
}
else
{
animationLerp = Mathf.MoveTowards(animationLerp, 0f, Time.deltaTime * 3f / timeToStart);
}
animationLerp = Mathf.Clamp01(animationLerp);
if (animationLerp > 0.1f)
{
ChangeItem(drinkingProp);
}
else
{
ChangeItem((!store) ? normalProp : storeProp);
}
if ((Object)(object)base.itemProperties == (Object)(object)drinkingProp)
{
drinkingProp.positionOffset = Vector3.Lerp(normalPos, drinkingPos, animationLerp);
drinkingProp.rotationOffset = Vector3.Lerp(normalRot, drinkingRot, animationLerp);
}
if (drinking)
{
if ((Object)(object)previousPlayerHeldBy == (Object)null || !base.isHeld || fill <= 0f)
{
Stop();
base.itemUsedUp = true;
}
fill -= Time.deltaTime / timeToDrink;
PlayerPatches.Caffeine += Time.deltaTime / timeToDrink;
PlayerPatches.Duration += duration * Time.deltaTime / timeToDrink;
}
}
public void ChangeItem(Item to)
{
if ((Object)(object)base.itemProperties != (Object)(object)to)
{
base.itemProperties = to;
}
}
private IEnumerator<WaitForSeconds> StartDrink()
{
yield return new WaitForSeconds(timeToStart);
drinking = true;
audio.PlayOneShot(drinkingSFX, 0.75f);
}
public IEnumerator<WaitForSeconds> CrushCan()
{
Vector3 origin = Vector3.one;
Vector3 target = new Vector3(1f, 0.3f, 1f);
float time = 0f;
while (time < 1f)
{
((Component)this).transform.localScale = Vector3.Lerp(origin, target, time);
time += Time.deltaTime * 4f;
yield return null;
}
base.originalScale = target;
}
public override void EquipItem()
{
((GrabbableObject)this).EquipItem();
if ((Object)(object)base.playerHeldBy != (Object)null)
{
previousPlayerHeldBy = base.playerHeldBy;
}
}
public override void DiscardItem()
{
animationLerp = 0f;
if (DrinkCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(DrinkCoroutine);
}
Stop();
SendFillServerRpc(fill);
if ((Object)(object)previousPlayerHeldBy != (Object)null)
{
previousPlayerHeldBy.activatingItem = false;
}
((GrabbableObject)this).DiscardItem();
}
public void Stop()
{
drinking = false;
previousPlayerHeldBy.activatingItem = false;
audio.Stop();
base.playerHeldBy.playerBodyAnimator.ResetTrigger("shakeItem");
previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", false);
}
[ServerRpc(RequireOwnership = false)]
public void SendFillServerRpc(float fill)
{
//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)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1564617918u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref fill, default(ForPrimitives));
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1564617918u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
SendFillClientRpc(fill);
}
}
}
[ClientRpc]
public void SendFillClientRpc(float Fill)
{
//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(3072911950u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref Fill, default(ForPrimitives));
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3072911950u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
{
loaded = true;
fill = Fill;
if (fill <= 0f)
{
((GrabbableObject)this).SetScrapValue(1);
base.itemUsedUp = true;
((MonoBehaviour)this).StartCoroutine((IEnumerator)CrushCan());
}
}
}
[ServerRpc(RequireOwnership = false)]
public void RequestFillDataServerRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
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(2400585966u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2400585966u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
RequestFillDataClientRpc();
}
}
}
[ClientRpc]
public void RequestFillDataClientRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
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(3583883871u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3583883871u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkBehaviour)this).IsServer)
{
SendFillServerRpc(fill);
}
}
}
protected override void __initializeVariables()
{
((GrabbableObject)this).__initializeVariables();
}
[RuntimeInitializeOnLoadMethod]
internal static void InitializeRPCS_LethalCan()
{
//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
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Expected O, but got Unknown
NetworkManager.__rpc_func_table.Add(1564617918u, new RpcReceiveHandler(__rpc_handler_1564617918));
NetworkManager.__rpc_func_table.Add(3072911950u, new RpcReceiveHandler(__rpc_handler_3072911950));
NetworkManager.__rpc_func_table.Add(2400585966u, new RpcReceiveHandler(__rpc_handler_2400585966));
NetworkManager.__rpc_func_table.Add(3583883871u, new RpcReceiveHandler(__rpc_handler_3583883871));
}
private static void __rpc_handler_1564617918(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)
{
float num = default(float);
((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num, default(ForPrimitives));
target.__rpc_exec_stage = (__RpcExecStage)1;
((LethalCan)(object)target).SendFillServerRpc(num);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3072911950(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)
{
float num = default(float);
((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num, default(ForPrimitives));
target.__rpc_exec_stage = (__RpcExecStage)2;
((LethalCan)(object)target).SendFillClientRpc(num);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_2400585966(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((LethalCan)(object)target).RequestFillDataServerRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3583883871(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)2;
((LethalCan)(object)target).RequestFillDataClientRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
protected internal override string __getTypeName()
{
return "LethalCan";
}
}
public static class PlayerPatches
{
public static float BaseSpeed;
public static float Caffeine;
public static float DecayRate = 5f;
public static float Duration;
public static bool warn;
public static bool kill;
public static float Boost = 0.25f;
[HarmonyPatch(typeof(PlayerControllerB), "Start")]
[HarmonyPostfix]
public static void StartPatch(PlayerControllerB __instance)
{
BaseSpeed = __instance.movementSpeed;
Caffeine = 0f;
Duration = 0f;
}
[HarmonyPatch(typeof(PlayerControllerB), "Update")]
[HarmonyPostfix]
public static void UpdatePatch(PlayerControllerB __instance)
{
//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_010b: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)__instance != (Object)(object)StartOfRound.Instance.localPlayerController)
{
return;
}
__instance.movementSpeed = BaseSpeed + BaseSpeed * Caffeine * Boost;
if (Caffeine > 0f)
{
if (Duration > 0f)
{
Duration -= Time.deltaTime;
}
else
{
Caffeine -= Time.deltaTime / DecayRate;
}
if (Caffeine > 3f && !warn)
{
warn = true;
__instance.DamagePlayer(10, true, true, (CauseOfDeath)8, 1, false, default(Vector3));
HUDManager.Instance.DisplayTip("Warning", "High caffeine blood content", true, false, "LC_Tip1");
}
if (Caffeine > 4f && !kill)
{
kill = true;
__instance.DamagePlayer(9999, true, true, (CauseOfDeath)8, 1, false, Vector3.up);
}
Caffeine = Mathf.Clamp(Caffeine, 0f, 5f);
}
}
[HarmonyPatch(typeof(PlayerControllerB), "DamagePlayer")]
[HarmonyPostfix]
public static void ResetCaffine(PlayerControllerB __instance)
{
if (((NetworkBehaviour)__instance).IsOwner && __instance.health <= 0)
{
warn = false;
kill = false;
Caffeine = 0f;
Duration = 0f;
}
}
[HarmonyPatch(typeof(RoundManager), "LoadNewLevelWait")]
[HarmonyPostfix]
public static void ResetCaffeine()
{
warn = false;
kill = false;
Caffeine = 0f;
Duration = 0f;
}
}
[BepInPlugin("Mellowdy.LethalEnergy", "LethalEnergy", "1.2.0")]
public class LethalEnergyMod : BaseUnityPlugin
{
private const string modGUID = "Mellowdy.LethalEnergy";
private const string modName = "LethalEnergy";
private const string modVersion = "1.2.0";
private readonly Harmony harmony = new Harmony("Mellowdy.LethalEnergy");
public static ManualLogSource mls;
private static LethalEnergyMod instance;
public static AssetBundle assets;
public static string assetName = "monster.energy";
public static string canPrefabName = "monstercan.prefab";
public static string casePrefabName = "monstercase.prefab";
public static string drinkSoundName = "drinking.wav";
public static string fridgePrefabName = "Fridge.prefab";
public static string fridgeUnlockableName = "Unlockable.asset";
public static int rarity = 30;
private bool runonce = false;
private void Awake()
{
if (!runonce)
{
RunNetcodePatcher();
}
if ((Object)(object)instance == (Object)null)
{
instance = this;
}
mls = Logger.CreateLogSource("Mellowdy.LethalEnergy");
string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string text = Path.Combine(directoryName, assetName).Replace("\\", "/");
assets = AssetBundle.LoadFromFile(text);
GameObject val = assets.LoadAsset<GameObject>(casePrefabName);
Item val2 = assets.LoadAsset<Item>("case.asset");
val2.spawnPrefab = val;
DrinkCase drinkCase = val.AddComponent<DrinkCase>();
((GrabbableObject)drinkCase).itemProperties = val2;
((GrabbableObject)drinkCase).grabbable = true;
((GrabbableObject)drinkCase).useCooldown = 0.5f;
Item val3 = assets.LoadAsset<Item>("Can.asset");
GameObject canPrefab = (val3.spawnPrefab = GetCan(assets.LoadAsset<GameObject>(canPrefabName), val3));
LethalCan.drinkingSFX = assets.LoadAsset<AudioClip>(drinkSoundName);
LethalCan.drinkingProp = assets.LoadAsset<Item>("Drinking.asset");
DrinkCase.canPrefab = canPrefab;
Item val4 = assets.LoadAsset<Item>("BuyCan.asset");
val4.spawnPrefab = GetCan(assets.LoadAsset<GameObject>("boughtcan.prefab"), val4);
LethalCan.storeProp = val4;
LethalCan component = val4.spawnPrefab.GetComponent<LethalCan>();
component.store = true;
int value = ((BaseUnityPlugin)this).Config.Bind<int>("Shop", "Can Price", 10, "Price for a can of monster in the shop").Value;
GameObject val5 = assets.LoadAsset<GameObject>(fridgePrefabName);
int value2 = ((BaseUnityPlugin)this).Config.Bind<int>("Shop", "Mini-fridge Price", 85, "Price for the mini-fridge").Value;
bool value3 = ((BaseUnityPlugin)this).Config.Bind<bool>("Shop", "Mini-fridge is decor", true, "Decides if the fridge is considered décor that rotates every quota or a ship upgrade that is always available for purchase.").Value;
NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
NetworkPrefabs.RegisterNetworkPrefab(val3.spawnPrefab);
NetworkPrefabs.RegisterNetworkPrefab(val4.spawnPrefab);
NetworkPrefabs.RegisterNetworkPrefab(val5);
Items.RegisterItem(val4);
Items.RegisterShopItem(val4, value);
UnlockableItem val6 = assets.LoadAsset<UnlockablesList>(fridgeUnlockableName).unlockables[0];
val6.alwaysInStock = !value3;
Unlockables.RegisterUnlockable(val6, (StoreType)((!value3) ? 1 : 2), (TerminalNode)null, (TerminalNode)null, (TerminalNode)null, value2);
LevelTypes[] array = new LevelTypes[8];
RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
LevelTypes[] array2 = (LevelTypes[])(object)array;
int[] array3 = new int[8] { 0, 10, 8, 10, 5, 2, 15, 20 };
rarity = ((BaseUnityPlugin)this).Config.Bind<int>("Rarity", "Base Rarity", 20, "Rarity for all moons not otherwise listed").Value;
for (int i = 0; i < array2.Length; i++)
{
string text2 = ((object)(LevelTypes)(ref array2[i])).ToString().Replace("Level", "");
array3[i] = ((BaseUnityPlugin)this).Config.Bind<int>("Rarity", text2 ?? "", array3[i], "Rarity for " + text2).Value;
Items.RegisterScrap(val2, array3[i], array2[i]);
}
Items.RegisterScrap(val3, 0, (LevelTypes)1, (string[])null);
Items.RegisterScrap(val2, rarity, (LevelTypes)1024);
harmony.PatchAll();
harmony.PatchAll(typeof(PlayerPatches));
mls.LogInfo((object)"LethalEnergy has been loaded");
}
public static GameObject GetCan(GameObject g, Item itemProp)
{
LethalCan lethalCan = g.AddComponent<LethalCan>();
((GrabbableObject)lethalCan).itemProperties = itemProp;
((GrabbableObject)lethalCan).grabbable = true;
return g;
}
public void RunNetcodePatcher()
{
runonce = true;
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);
}
}
}
}
}
}
namespace LC_LethalEnergy.NetcodePatcher
{
[AttributeUsage(AttributeTargets.Module)]
internal class NetcodePatchedAssemblyAttribute : Attribute
{
}
}