Decompiled source of Viceheim v1.0.0

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Aceedia, Staff of Sloth/Corrupted Aceedia, Staff of Sloth.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Aceedia_Corrupted", "Corrupted Aceedia, Staff of Sloth", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedSlothStaff : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Aceedia_Corrupted";

		public const string PluginName = "Corrupted Aceedia, Staff of Sloth";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("CorruptedSlothStaff");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 45f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 45f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 45f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("GoblinShaman").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0.01f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedSlothStaff).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedslothstaff", typeof(CorruptedSlothStaff).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedSlothStaff).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Avaritia, Dagger of Greed/Corrupted Avaritia, Dagger of Greed.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Avaritia_Corrupted", "Corrupted Avaritia, Dagger of Greed", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedGreedDagger : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Avaritia_Corrupted";

		public const string PluginName = "Corrupted Avaritia, Dagger of Greed";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("CorruptedGreedDagger");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 45f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 45f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Bonemass").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0.02f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedGreedDagger).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedgreeddagger", typeof(CorruptedGreedDagger).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedGreedDagger).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Escanor, Shield of Vanity/Corrupted Escanor, Shield of Vanity.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Vanity_Corrupted", "Corrupted Escanor, Shield of Vanity", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedVanityShield : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Vanity_Corrupted";

		public const string PluginName = "Corrupted Escanor, Shield of Vanity";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("CorruptedVanityShield");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Lox").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 0,
						m_amountMin = 0,
						m_chance = 0.01f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedVanityShield).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedvanityshield", typeof(CorruptedVanityShield).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedVanityShield).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Gula, Blade of Gluttony/Corrupted Gula, Blade of Gluttony.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Gula_Corrupted", "Corrupted Gula, Blade of Gluttony", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedGluttonyBlade : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Gula_Corrupted";

		public const string PluginName = "Corrupted Gula, Blade of Gluttony";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//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_015e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0165: Unknown result type (might be due to invalid IL or missing references)
				//IL_0170: Unknown result type (might be due to invalid IL or missing references)
				//IL_0177: 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_018a: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("CorruptedGluttonyBlade");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 60f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_pierce = 60f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Abomination").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0.01f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedGluttonyBlade).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedgluttonyblade", typeof(CorruptedGluttonyBlade).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedGluttonyBlade).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Harlequin, Shield of Sloth/Corrupted Harlequin, Shield of Sloth.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Harlequin_Corrupted", "Corrupted Harlequin, Shield of Sloth", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedSlothShield : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Harlequin_Corrupted";

		public const string PluginName = "Corrupted Harlequin, Shield of Sloth";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("corruptedslothshield");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("StoneGolem").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0.01f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedSlothShield).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedslothshield", typeof(CorruptedSlothShield).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedSlothShield).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Invidia, Greataxe of Envy/Corrupted Invidia, Greataxe of Envy.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Invidia_Corrupted", "Corrupted Invidia, Greataxe of Envy", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedEnvyGreataxe : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Invidia_Corrupted";

		public const string PluginName = "Corrupted Invidia, Greataxe of Envy";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("CorruptedEnvyGreataxe");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 70f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 70f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Dragon").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0.02f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedEnvyGreataxe).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedenvygreataxe", typeof(CorruptedEnvyGreataxe).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedEnvyGreataxe).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Ira, Greatsword of Wrath/Corrupted Ira, Greatsword of Wrath.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Ira_Corrupted", "Corrupted Ira, Greatsword of Wrath", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedWrath : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Ira_Corrupted";

		public const string PluginName = "Corrupted Ira, Greatsword of Wrath";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("CorruptedWrath");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 75f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 75f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("GoblinKing").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0.03f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedWrath).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedwrath", typeof(CorruptedWrath).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedWrath).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Luxuria, Scythe of Lust/Corrupted Luxuria, Scythe of Lust.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Luxuria_Corrupted", "Corrupted Luxuria, Scythe of Lust", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedLust : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Luxuria_Corrupted";

		public const string PluginName = "Corrupted Luxuria, Scythe of Lust";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("CorruptedLust");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 90f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 45f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Serpent").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0.02f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedLust).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedlust", typeof(CorruptedLust).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedLust).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Corrupted Vices/Corrupted Superbia, Sword of Pride/Corrupted Superbia, Sword of Pride.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Superbia_Corrupted", "Corrupted Superbia, Sword of Pride", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class CorruptedPrideSword : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Superbia_Corrupted";

		public const string PluginName = "Corrupted Superbia, Sword of Pride";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("CorruptedPrideSword");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 65f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 65f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("GoblinBrute").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0.01f,
						m_levelMultiplier = false,
						m_onePerPlayer = false,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(CorruptedPrideSword).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("corruptedpridesword", typeof(CorruptedPrideSword).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(CorruptedPrideSword).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Aceedia, Staff of Sloth/Aceedia, Staff of Sloth.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Aceedia", "Aceedia, Staff of Sloth", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class SlothStaff : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Aceedia";

		public const string PluginName = "Aceedia, Staff of Sloth";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("SlothStaff");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 40f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 40f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 40f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Dragon").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 0,
						m_amountMin = 0,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(SlothStaff).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("slothstaff", typeof(SlothStaff).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(SlothStaff).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Avaritia, Dagger of Greed/Avaritia, Dagger of Greed.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Avaritia_Dagger", "Avaritia, Dagger of Greed", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class GreedDagger : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Avaritia_Dagger";

		public const string PluginName = "Avaritia, Dagger of Greed";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("GreedDagger");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 40f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 40f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Dragon").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 0,
						m_amountMin = 0,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(GreedDagger).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("greeddagger", typeof(GreedDagger).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(GreedDagger).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Escanor, Shield of Vanity/Escanor, Shield of Vanity.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Vanity", "Escanor, Shield of Vanity", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class VanityShield : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Vanity";

		public const string PluginName = "Escanor, Shield of Vanity";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("VanityShield");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Dragon").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 0,
						m_amountMin = 0,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(VanityShield).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("vanityshield", typeof(VanityShield).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(VanityShield).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Gula, Blade of Gluttony/Gula, Blade of Gluttony.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Gula", "Gula, Blade of Gluttony", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class GluttonyBlade : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Gula";

		public const string PluginName = "Gula, Blade of Gluttony";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//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_015e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0165: Unknown result type (might be due to invalid IL or missing references)
				//IL_0170: Unknown result type (might be due to invalid IL or missing references)
				//IL_0177: 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_018a: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("GluttonyBlade");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 55f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_pierce = 55f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Dragon").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 0,
						m_amountMin = 0,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(GluttonyBlade).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("gluttonyblade", typeof(GluttonyBlade).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(GluttonyBlade).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Harlequin, Shield of Sloth/Harlequin, Shield of Sloth.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Harlequin", "Harlequin, Shield of Sloth", "3.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class SlothShield : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Harlequin";

		public const string PluginName = "Harlequin, Shield of Sloth";

		public const string PluginVersion = "3.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("slothshield");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Dragon").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 0,
						m_amountMin = 0,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(SlothShield).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("slothshield", typeof(SlothShield).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(SlothShield).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Invidia, Greataxe of Envy/Invidia, Greataxe of Envy.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Invidia", "Invidia, Greataxe of Envy", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class EnvyGreataxe : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Invidia";

		public const string PluginName = "Invidia, Greataxe of Envy";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("EnvyGreataxe");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 65f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 65f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Dragon").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 0,
						m_amountMin = 0,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(EnvyGreataxe).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("envygreataxe", typeof(EnvyGreataxe).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(EnvyGreataxe).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Ira, Greatsword of Wraft/Ira, Greatsword of Wraft.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Ira", "Ira, Greatsword of Wrath", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class WrathGreatsword : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Ira";

		public const string PluginName = "Ira, Greatsword of Wrath";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("WrathGreatsword");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 70f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 70f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("gd_king").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = true,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(WrathGreatsword).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("wrathgreatsword", typeof(WrathGreatsword).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(WrathGreatsword).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Luxuria, Scythe of Lust/Luxuria, Scythe of Lust.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Luxuria", "Luxuria, Scythe of Lust", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class LustScythe : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Luxuria";

		public const string PluginName = "Luxuria, Scythe of Lust";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("LustScythe");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 85f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 40f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("Dragon").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = false,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(LustScythe).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("lustscythe", typeof(LustScythe).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(LustScythe).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}

ViceHeim v1.2.0-1678-v1-2-0-1641387432/ViceHeim - Seven Sins/Original Vices/Superbia, Sword of Pride/Superbia, Sword of Pride.dll

Decompiled 4 months ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using ExampleRecipes.Models;
using ExampleRecipes.Services;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
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("ExampleRecipes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExampleRecipes")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
namespace ExampleRecipes
{
	[BepInPlugin("ViceHeim_Superbia", "Superbia, Sword of Pride", "2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[DebuggerDisplay("{GetDebuggerDisplay(),nq}")]
	internal class PrideSword : BaseUnityPlugin
	{
		public const string PluginGUID = "ViceHeim_Superbia";

		public const string PluginName = "Superbia, Sword of Pride";

		public const string PluginVersion = "2.0";

		private AssetBundle _embeddedResourceBundle;

		private void Awake()
		{
			LoadAssetBundle();
			AddRecipes();
			UnloadAssetBundle();
			PrefabManager.OnPrefabsRegistered += delegate
			{
				//IL_0133: Unknown result type (might be due to invalid IL or missing references)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_013f: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				GameObject prefab = PrefabManager.Instance.GetPrefab("PrideSword");
				if ((Object)(object)prefab != (Object)null)
				{
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_spirit = 60f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_frost = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_fire = 60f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_lightning = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_poison = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_slash = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_blunt = 0f;
					prefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damages.m_damage = 0f;
					CharacterDrop component = PrefabManager.Instance.GetPrefab("GoblinKing").GetComponent<CharacterDrop>();
					component.m_drops.Add(new Drop
					{
						m_amountMax = 1,
						m_amountMin = 1,
						m_chance = 0f,
						m_levelMultiplier = false,
						m_onePerPlayer = false,
						m_prefab = prefab
					});
				}
			};
		}

		private void LoadAssetBundle()
		{
			Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(PrideSword).Assembly.GetManifestResourceNames())));
			_embeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("pridesword", typeof(PrideSword).Assembly);
		}

		private void UnloadAssetBundle()
		{
			_embeddedResourceBundle.Unload(false);
		}

		private void AddRecipes()
		{
			List<ExtendedRecipe> list = ExtendedRecipeManager.LoadRecipesFromJson(Path.GetDirectoryName(typeof(PrideSword).Assembly.Location) + "/Assets/recipes.json");
			list.ForEach(delegate(ExtendedRecipe extendedRecipe)
			{
				//IL_0015: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Expected O, but got Unknown
				GameObject val = _embeddedResourceBundle.LoadAsset<GameObject>(extendedRecipe.prefabPath);
				CustomItem val2 = new CustomItem(val, true);
				ItemDrop itemDrop = val2.ItemDrop;
				itemDrop.m_itemData.m_shared.m_name = extendedRecipe.name;
				itemDrop.m_itemData.m_shared.m_description = extendedRecipe.description;
				LocalizationManager.Instance.AddToken(extendedRecipe.name, extendedRecipe.nameValue, false);
				LocalizationManager.Instance.AddToken(extendedRecipe.descriptionToken, extendedRecipe.description, false);
				val2.Recipe = ExtendedRecipe.Convert(extendedRecipe);
				ItemManager.Instance.AddItem(val2);
			});
		}

		private string GetDebuggerDisplay()
		{
			return ((object)this).ToString();
		}
	}
}
namespace ExampleRecipes.Services
{
	internal class ExtendedRecipeManager
	{
		public static List<ExtendedRecipe> LoadRecipesFromJson(string recipesPath)
		{
			string text = AssetUtils.LoadText(recipesPath);
			return SimpleJson.DeserializeObject<List<ExtendedRecipe>>(text);
		}
	}
}
namespace ExampleRecipes.Models
{
	public class ExtendedRecipeRequirement
	{
		public string item;

		public int amount;

		public int amountPerLevel;

		public bool recover;

		public static RequirementConfig Convert(ExtendedRecipeRequirement extendedRecipeRequirement)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			return new RequirementConfig
			{
				Amount = extendedRecipeRequirement.amount,
				Item = extendedRecipeRequirement.item,
				AmountPerLevel = extendedRecipeRequirement.amountPerLevel,
				Recover = extendedRecipeRequirement.recover
			};
		}
	}
	public class ExtendedRecipe
	{
		public string name;

		public string nameValue;

		public string prefabPath;

		public string item;

		public string descriptionToken;

		public string description;

		public int amount;

		public string craftingStation;

		public int minStationLevel;

		public bool enabled;

		public string repairStation;

		public List<ExtendedRecipeRequirement> resources;

		public static CustomRecipe Convert(ExtendedRecipe extendedRecipe)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			RecipeConfig val = new RecipeConfig();
			val.Amount = extendedRecipe.amount;
			val.CraftingStation = extendedRecipe.craftingStation;
			val.Enabled = extendedRecipe.enabled;
			val.Item = extendedRecipe.item;
			val.MinStationLevel = extendedRecipe.minStationLevel;
			val.Name = extendedRecipe.name;
			val.RepairStation = extendedRecipe.repairStation;
			val.Requirements = extendedRecipe.resources.Select(ExtendedRecipeRequirement.Convert).ToArray();
			return new CustomRecipe(val);
		}
	}
}