using System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using LethalLib.Modules; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Tomatobird.TomatoScrap")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("TomatoScrap")] [assembly: AssemblyTitle("Tomatobird.TomatoScrap")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [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 TomatoScrap { [BepInPlugin("Tomatobird.TomatoScrap", "TomatoScrap", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class TomatoScrap : BaseUnityPlugin { public int birdPlushRarity; public int lidlCubeRarity; public int tinyLidlCubeRarity; public int kongStrongRarity; public int marvCubeRarity; public int johnRarity; public int gigaJohnRarity; public int tomatoRarity; public int theBoneRarity; public int yoshistarRarity; public float tomatoExplosionChance; public float tomatoExplosionSize; public bool forceRegistration; public float johnMusicVolume; public float johnMusicMaxRange; public float johnMusicMinRange; public float gigaJohnMusicVolume; public float gigaJohnMusicMaxRange; public float gigaJohnMusicMinRange; public static TomatoScrap Instance { get; private set; } private void Awake() { //IL_0688: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) Instance = this; ((BaseUnityPlugin)this).Logger.LogInfo((object)"Tomatobird.TomatoScrap v1.0.0 is loading!"); birdPlushRarity = ((BaseUnityPlugin)this).Config.Bind("General", "Bird Plush Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; lidlCubeRarity = ((BaseUnityPlugin)this).Config.Bind("General", "Big LIDL Cube Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; tinyLidlCubeRarity = ((BaseUnityPlugin)this).Config.Bind("General", "Tiny LIDL Cube Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; kongStrongRarity = ((BaseUnityPlugin)this).Config.Bind("General", "Kong Strong Rarity", 2, "Item rarity. Recommended values are between 1 to 99.").Value; marvCubeRarity = ((BaseUnityPlugin)this).Config.Bind("General", "Marv Cube Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; johnRarity = ((BaseUnityPlugin)this).Config.Bind("General", "JOHN Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; gigaJohnRarity = ((BaseUnityPlugin)this).Config.Bind("General", "GIGAJOHN Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; theBoneRarity = ((BaseUnityPlugin)this).Config.Bind("General", "The Bone Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; tomatoRarity = ((BaseUnityPlugin)this).Config.Bind("General", "Tomato Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; yoshistarRarity = ((BaseUnityPlugin)this).Config.Bind("General", "Yoshistar Rarity", 1, "Item rarity. Recommended values are between 1 to 99.").Value; tomatoExplosionChance = ((BaseUnityPlugin)this).Config.Bind("Misc", "Tomato Explosion Chance", 16f, "How likely should the tomato explode?").Value; tomatoExplosionSize = ((BaseUnityPlugin)this).Config.Bind("Misc", "Tomato Explosion Size", 0.5f, "Multiplier for the size of the explosion").Value; forceRegistration = ((BaseUnityPlugin)this).Config.Bind("Misc", "Force Registration", false, "Should items be registered despite rarity set to 0?").Value; johnMusicVolume = ((BaseUnityPlugin)this).Config.Bind("Misc", "John Music Volume", 0.667f, "Volume of the music emitted by JOHN.").Value; johnMusicMaxRange = ((BaseUnityPlugin)this).Config.Bind("Misc", "John Music Max Range", 4f, "Range of the music emitted by JOHN.").Value; johnMusicMinRange = ((BaseUnityPlugin)this).Config.Bind("Misc", "John Music Min Range", 1f, "Lowest range where max music volume from JOHN is heard. Must be lower than MaxRange.").Value; gigaJohnMusicVolume = ((BaseUnityPlugin)this).Config.Bind("Misc", "Giga John Music Volume", 0.9f, "Volume of the music emitted by GIGAJOHN.").Value; gigaJohnMusicMaxRange = ((BaseUnityPlugin)this).Config.Bind("Misc", "Giga John Max Range", 5f, "Range of the music emitted by GIGAJOHN.").Value; gigaJohnMusicMinRange = ((BaseUnityPlugin)this).Config.Bind("Misc", "Giga John Min Range", 1f, "Lowest range where max music volume from GIGAJOHN is heard. Must be lower than MaxRange.").Value; string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "tomatoscrap"); AssetBundle val = AssetBundle.LoadFromFile(text); if (birdPlushRarity > 0 || forceRegistration) { Item val2 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/BirdPlush.asset"); NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab); Utilities.FixMixerGroups(val2.spawnPrefab); Items.RegisterScrap(val2, birdPlushRarity, (LevelTypes)(-1)); } if (lidlCubeRarity > 0 || forceRegistration) { Item val3 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/LidlCube.asset"); NetworkPrefabs.RegisterNetworkPrefab(val3.spawnPrefab); Utilities.FixMixerGroups(val3.spawnPrefab); Items.RegisterScrap(val3, lidlCubeRarity, (LevelTypes)(-1)); } if (tinyLidlCubeRarity > 0 || forceRegistration) { Item val4 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/TinyLidlCube.asset"); NetworkPrefabs.RegisterNetworkPrefab(val4.spawnPrefab); Utilities.FixMixerGroups(val4.spawnPrefab); Items.RegisterScrap(val4, tinyLidlCubeRarity, (LevelTypes)(-1)); } if (kongStrongRarity > 0 || forceRegistration) { Item val5 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/KongStrong.asset"); NetworkPrefabs.RegisterNetworkPrefab(val5.spawnPrefab); Utilities.FixMixerGroups(val5.spawnPrefab); Items.RegisterScrap(val5, kongStrongRarity, (LevelTypes)(-1)); } if (marvCubeRarity > 0 || forceRegistration) { Item val6 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/MarvCube.asset"); NetworkPrefabs.RegisterNetworkPrefab(val6.spawnPrefab); Utilities.FixMixerGroups(val6.spawnPrefab); Items.RegisterScrap(val6, marvCubeRarity, (LevelTypes)(-1)); } if (johnRarity > 0 || forceRegistration) { Item val7 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/John.asset"); AudioSource component = ((Component)val7.spawnPrefab.transform.Find("Music")).GetComponent(); component.maxDistance = johnMusicMaxRange; component.minDistance = johnMusicMinRange; component.volume = johnMusicVolume; NetworkPrefabs.RegisterNetworkPrefab(val7.spawnPrefab); Utilities.FixMixerGroups(val7.spawnPrefab); Items.RegisterScrap(val7, johnRarity, (LevelTypes)(-1)); } if (gigaJohnRarity > 0 || forceRegistration) { Item val8 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/GigaJohn.asset"); AudioSource component2 = ((Component)val8.spawnPrefab.transform.Find("Music")).GetComponent(); component2.maxDistance = gigaJohnMusicMaxRange; component2.minDistance = gigaJohnMusicMinRange; component2.volume = gigaJohnMusicVolume; NetworkPrefabs.RegisterNetworkPrefab(val8.spawnPrefab); Utilities.FixMixerGroups(val8.spawnPrefab); Items.RegisterScrap(val8, gigaJohnRarity, (LevelTypes)(-1)); } if (theBoneRarity > 0 || forceRegistration) { Item val9 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/TheBone.asset"); NetworkPrefabs.RegisterNetworkPrefab(val9.spawnPrefab); Utilities.FixMixerGroups(val9.spawnPrefab); Items.RegisterScrap(val9, theBoneRarity, (LevelTypes)(-1)); } if (tomatoRarity > 0 || forceRegistration) { Item val10 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/Tomato.asset"); val10.spawnPrefab.GetComponent().chanceToExplode = tomatoExplosionChance; Transform transform = val10.spawnPrefab.GetComponent().stunGrenadeExplosion.transform; transform.localScale *= tomatoExplosionSize; NetworkPrefabs.RegisterNetworkPrefab(val10.spawnPrefab); Utilities.FixMixerGroups(val10.spawnPrefab); Items.RegisterScrap(val10, tomatoRarity, (LevelTypes)(-1)); } if (yoshistarRarity > 0 || forceRegistration) { Item val11 = val.LoadAsset("Assets/LethalCompany/Mods/TomatoScrap/ScriptableObjects/Item/Yoshistar.asset"); NetworkPrefabs.RegisterNetworkPrefab(val11.spawnPrefab); Utilities.FixMixerGroups(val11.spawnPrefab); Items.RegisterScrap(val11, yoshistarRarity, (LevelTypes)(-1)); } ((BaseUnityPlugin)this).Logger.LogInfo((object)"Tomatobird.TomatoScrap v1.0.0 has loaded!"); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "Tomatobird.TomatoScrap"; public const string PLUGIN_NAME = "TomatoScrap"; public const string PLUGIN_VERSION = "1.0.0"; } }