Decompiled source of PhaseConnectCoffeeScrap v1.0.6

PhaseConnect.Coffee.dll

Decompiled 11 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
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("PhaseConnect.Coffee")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("A template for Lethal Company")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("PhaseConnect.Coffee")]
[assembly: AssemblyTitle("PhaseConnect.Coffee")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
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 LethalCompanyTemplate
{
	[BepInPlugin("PhaseConnect.Coffee", "PhaseConnect.Coffee", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		private enum CoffeeTalents
		{
			Airi,
			Erina,
			Iori,
			Lia,
			Lumi,
			Meemaw,
			Michiru,
			Nasa,
			Panko,
			Pippa,
			Rie,
			Tenma,
			Uruka,
			Wemi
		}

		private const int CoffeeCount = 14;

		private const string DefaultRarities = "DefaultRarity";

		private string[] ConfigRarities = new string[14]
		{
			"airirarity", "erinararity", "iorirarity", "liararity", "lumirarity", "meemawrarity", "michirurarity", "nasararity", "pankorarity", "pippararity",
			"rierarity", "tenmararity", "urukararity", "wemirarity"
		};

		private void Awake()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(directoryName, "phaseconnect.coffee"));
			if ((Object)(object)val == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogInfo((object)"Failed to load custom assets.");
				return;
			}
			int[] array = new int[14];
			for (int i = 0; i < 14; i++)
			{
				array[i] = 0;
			}
			try
			{
				StreamReader streamReader = new StreamReader(Path.Combine(directoryName, "CoffeeRarities.cfg"));
				bool flag = false;
				while (!flag)
				{
					string text = streamReader.ReadLine();
					if (text == null)
					{
						flag = true;
					}
					else
					{
						if (text.Length < 3 || text[0] == '#')
						{
							continue;
						}
						string[] array2 = text.Split();
						if (array2.Length != 3 || !(array2[1] == "="))
						{
							continue;
						}
						int result2;
						if (array2[0].ToLower() == "DefaultRarity".ToLower())
						{
							if (int.TryParse(array2[2], out var result))
							{
								for (int j = 0; j < 14; j++)
								{
									array[j] = result;
								}
							}
						}
						else if (ConfigRarities.Contains(array2[0].ToLower()) && int.TryParse(array2[2], out result2))
						{
							int num = Array.IndexOf(ConfigRarities, array2[0].ToLower());
							array[num] = result2;
						}
					}
				}
				streamReader.Close();
				((BaseUnityPlugin)this).Logger.LogInfo((object)"Coffee config file successfully loaded!");
			}
			catch (Exception)
			{
				((BaseUnityPlugin)this).Logger.LogInfo((object)"Error loading coffee config file");
			}
			int num2 = 100;
			Item val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeAiri.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[0], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeErina.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[1], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeIori.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[2], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeLia.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[3], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeLumi.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[4], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeMichiru.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[6], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeNasa.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[7], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeePanko.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[8], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeePippa.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[9], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeRemi.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[10], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeRie.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[11], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeShiina.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[5], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeTenma.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[12], (LevelTypes)(-1));
			val2 = val.LoadAsset<Item>("Assets/NewContent/Coffee/PhaseCoffeeUruka.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Items.RegisterScrap(val2, array[13], (LevelTypes)(-1));
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin PhaseConnect.Coffee is loaded!");
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "PhaseConnect.Coffee";

		public const string PLUGIN_NAME = "PhaseConnect.Coffee";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}