Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of FUMO v1.0.1
Silhygames.REPO.FUMO.dll
Decompiled a year agousing System; using System.Collections; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using Microsoft.CodeAnalysis; using Photon.Pun; using UnityEngine; using UnityEngine.Events; [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 = "")] [assembly: AssemblyCompany("Silhygames")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("Script Repository for F.U.M.O., a mod for the game 'R.E.P.O.'")] [assembly: AssemblyFileVersion("0.0.0.0")] [assembly: AssemblyInformationalVersion("0.0.0-dev")] [assembly: AssemblyProduct("FUMO")] [assembly: AssemblyTitle("Silhygames.REPO.FUMO")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } public class CustomAudioPlayer : MonoBehaviour { public AudioSource AudioSource; public AudioClip[] Clips; private PhotonView _photonView; private void Start() { _photonView = ((Component)this).GetComponent<PhotonView>(); } public void PlayRandomClipHostOnly() { if (SemiFunc.IsMasterClientOrSingleplayer()) { PlayRandomClip(); } } public void PlayClipHostOnly(int index) { if (SemiFunc.IsMasterClientOrSingleplayer()) { PlayClip(index); } } public void PlayRandomClip() { int index = Random.Range(0, Clips.Length); PlayClip(index); } public void PlayClip(int index) { if (SemiFunc.IsMultiplayer()) { _photonView.RPC("PlayClipRPC", (RpcTarget)0, new object[1] { index }); } else { PlayClipLocal(index); } } [PunRPC] private void PlayClipRPC(int index) { PlayClipLocal(index); } private void PlayClipLocal(int index) { AudioClip val = Clips[index]; AudioSource.PlayOneShot(val); } } public class CustomAudioPlayerV2 : MonoBehaviour { public AudioSource AudioSource; public AudioClip[] Clips; private PhotonView _photonView; private bool isPlayingClip = false; private void Start() { _photonView = ((Component)this).GetComponent<PhotonView>(); } public void PlayRandomClipHostOnly() { if (SemiFunc.IsMasterClientOrSingleplayer()) { PlayRandomClip(); } } public void PlayClipHostOnly(int index) { if (SemiFunc.IsMasterClientOrSingleplayer()) { PlayClip(index); } } public void PlayRandomClip() { int index = Random.Range(0, Clips.Length); PlayClip(index); } public void PlayClip(int index) { if (!isPlayingClip) { if (SemiFunc.IsMultiplayer()) { _photonView.RPC("PlayClipRPC", (RpcTarget)0, new object[1] { index }); } else { PlayClipLocal(index); } } } [PunRPC] private void PlayClipRPC(int index) { PlayClipLocal(index); } private void PlayClipLocal(int index) { if (!isPlayingClip) { AudioClip val = Clips[index]; if (!((Object)(object)val == (Object)null)) { AudioSource.PlayOneShot(val); ((MonoBehaviour)this).StartCoroutine(WaitForClipToFinish(val.length)); } } } private IEnumerator WaitForClipToFinish(float duration) { isPlayingClip = true; yield return (object)new WaitForSeconds(duration); isPlayingClip = false; } } public class AudioPlayerAtParent : MonoBehaviour { [SerializeField] private AudioClip clipToPlay; [SerializeField] private float volume = 1f; public void PlayAudioAtParentPosition() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)clipToPlay != (Object)null) { AudioSource.PlayClipAtPoint(clipToPlay, ((Component)this).transform.position, volume); } else { Debug.LogWarning((object)"No audio clip assigned to play."); } } } public class OnPickup : MonoBehaviour { private PhysGrabObject physgrabobject; public UnityEvent ScriptToRun; private bool grabbed; private float lastInvokeTime = float.NegativeInfinity; public float invokeCooldown = 15f; private void Start() { physgrabobject = ((Component)this).GetComponent<PhysGrabObject>(); } private void Update() { if (physgrabobject.grabbed) { if (!grabbed) { grabbed = true; if (Time.time - lastInvokeTime >= invokeCooldown) { ScriptToRun.Invoke(); lastInvokeTime = Time.time; } } } else { grabbed = false; } } } [RequireComponent(typeof(AudioSource))] public class SeijaFlip : MonoBehaviour { [Header("Rotation Settings")] public Transform targetChild; public float rotationDuration = 1f; [Header("Sound Settings")] public AudioClip soundEffect; private AudioSource audioSource; private Quaternion initialRotation; private Quaternion targetRotation; public void StartFlip() { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: 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_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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) if ((Object)(object)targetChild == (Object)null) { Debug.LogError((object)"No child assigned to 'targetChild'. Please assign a child transform in the Inspector."); return; } audioSource = ((Component)this).GetComponent<AudioSource>(); if ((Object)(object)soundEffect != (Object)null) { audioSource.clip = soundEffect; audioSource.Play(); } else { Debug.LogWarning((object)"No sound effect assigned."); } initialRotation = targetChild.rotation; targetRotation = initialRotation * Quaternion.Euler(180f, 0f, 0f); ((MonoBehaviour)this).StartCoroutine(RotateOverTime()); } private IEnumerator RotateOverTime() { float elapsed = 0f; while (elapsed < rotationDuration) { targetChild.rotation = Quaternion.Slerp(initialRotation, targetRotation, elapsed / rotationDuration); elapsed += Time.deltaTime; yield return null; } targetChild.rotation = targetRotation; } } namespace FUMO { [BepInPlugin("Silhygames.REPO.FUMO", "FUMO", "1.0.0.0")] public class Plugin : BaseUnityPlugin { private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Prepare yourself. FUMOs are coming."); } } public static class PluginInfo { public const string PLUGIN_GUID = "Silhygames.REPO.FUMO"; public const string PLUGIN_NAME = "FUMO"; public const string PLUGIN_VERSION = "0.0.0"; } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }