Decompiled source of TrophyBuffs v1.2.3

TrophyBuffs.dll

Decompiled 6 months ago
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using JetBrains.Annotations;
using LocalizationManager;
using Microsoft.CodeAnalysis;
using ServerSync;
using TMPro;
using TrophyBuffs.ConfigData;
using TrophyBuffs.Functions;
using TrophyBuffs.Utils;
using UnityEngine;
using UnityEngine.SceneManagement;
using YamlDotNet.Core;
using YamlDotNet.Core.Events;
using YamlDotNet.Core.Tokens;
using YamlDotNet.Helpers;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.Converters;
using YamlDotNet.Serialization.EventEmitters;
using YamlDotNet.Serialization.NamingConventions;
using YamlDotNet.Serialization.NodeDeserializers;
using YamlDotNet.Serialization.NodeTypeResolvers;
using YamlDotNet.Serialization.ObjectFactories;
using YamlDotNet.Serialization.ObjectGraphTraversalStrategies;
using YamlDotNet.Serialization.ObjectGraphVisitors;
using YamlDotNet.Serialization.Schemas;
using YamlDotNet.Serialization.TypeInspectors;
using YamlDotNet.Serialization.TypeResolvers;
using YamlDotNet.Serialization.Utilities;
using YamlDotNet.Serialization.ValueDeserializers;

[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("TrophyBuffs")]
[assembly: AssemblyDescription("https://valheim.thunderstore.io/package/blacks7ar/TrophyBuffs/")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("TrophyBuffs")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("4D990536-A72F-428D-A051-69C66B994708")]
[assembly: AssemblyFileVersion("1.2.3")]
[assembly: AssemblyCompany("blacks7ar")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.2.3.0")]
[module: UnverifiableCode]
namespace TrophyBuffs
{
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("blacks7ar.TrophyBuffs", "TrophyBuffs", "1.2.3")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInIncompatibility("gg.khairex.usefultrophies")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		private const string modGUID = "blacks7ar.TrophyBuffs";

		public const string modName = "TrophyBuffs";

		public const string modAuthor = "blacks7ar";

		public const string modVersion = "1.2.3";

		public const string modLink = "https://valheim.thunderstore.io/package/blacks7ar/TrophyBuffs/";

		private static string configFileName = "blacks7ar.TrophyBuffs.cfg";

		private static string configFileFullPath;

		public static readonly ManualLogSource TBLogger;

		private static readonly Harmony _harmony;

		private static readonly ConfigSync _configSync;

		private static ConfigEntry<Toggle> _serverConfigLocked;

		public static bool _hasBlacksmithingMod;

		public static bool _hasBuildingMod;

		public static bool _hasHerbalistMod;

		public static bool _hasCookingMod;

		public static bool _hasFarmingMod;

		public static bool _hasFermentingMod;

		public static bool _hasForagingMod;

		public static bool _hasHuntingMod;

		public static bool _hasJewelcraftingMod;

		public static bool _hasLumberjackingMod;

		public static bool _hasMiningMod;

		public static bool _hasPackHorseMod;

		public static bool _hasRanchingMod;

		public static bool _hasSailingMod;

		public static bool _hasTenacityMod;

		public static bool _hasThirdEyeMod;

		public static bool _hasVitalityMod;

		public static bool _hasSoulCatcher;

		public static Plugin _instance;

		public ConfigEntry<T> config<T>(string group, string name, T value, ConfigDescription description, bool synchronizedSetting = true)
		{
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Expected O, but got Unknown
			ConfigDescription val = new ConfigDescription(description.Description + (synchronizedSetting ? " [Synced with Server]" : " [Not Synced with Server]"), description.AcceptableValues, description.Tags);
			ConfigEntry<T> val2 = ((BaseUnityPlugin)this).Config.Bind<T>(group, name, value, val);
			_configSync.AddConfigEntry<T>(val2).SynchronizedConfig = synchronizedSetting;
			return val2;
		}

		private void ConfigWatcher()
		{
			FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(Paths.ConfigPath, configFileName);
			fileSystemWatcher.Changed += OnConfigChanged;
			fileSystemWatcher.Created += OnConfigChanged;
			fileSystemWatcher.Renamed += OnConfigChanged;
			fileSystemWatcher.IncludeSubdirectories = true;
			fileSystemWatcher.SynchronizingObject = ThreadingHelper.SynchronizingObject;
			fileSystemWatcher.EnableRaisingEvents = true;
		}

		private void OnConfigChanged(object sender, FileSystemEventArgs e)
		{
			if (!File.Exists(configFileFullPath))
			{
				return;
			}
			try
			{
				Logging.LogDebug("OnConfigChanged called");
				((BaseUnityPlugin)this).Config.Reload();
			}
			catch
			{
				Logging.LogError("There was an issue loading your " + configFileName);
				Logging.LogError("Please check your config entries for spelling and format!");
			}
		}

		public void Awake()
		{
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected O, but got Unknown
			Localizer.Load();
			_instance = this;
			_serverConfigLocked = config("1- ServerSync", "Lock Configuration", Toggle.On, new ConfigDescription("If On, the configuration is locked and can be changed by server admins only.", (AcceptableValueBase)null, Array.Empty<object>()));
			_configSync.AddLockingConfigEntry<Toggle>(_serverConfigLocked);
			_hasBlacksmithingMod = Helper.CheckBlacksmithingMod();
			_hasBuildingMod = Helper.CheckBuildingMod();
			_hasHerbalistMod = Helper.CheckHerbalistMod();
			_hasCookingMod = Helper.CheckCookingMod();
			_hasFarmingMod = Helper.CheckFarmingMod();
			_hasFermentingMod = Helper.CheckFermentingMod();
			_hasForagingMod = Helper.CheckForagingMod();
			_hasHuntingMod = Helper.CheckHuntingMod();
			_hasJewelcraftingMod = Helper.CheckJewelcraftingMod();
			_hasLumberjackingMod = Helper.CheckLumberjackingMod();
			_hasMiningMod = Helper.CheckMiningMod();
			_hasPackHorseMod = Helper.CheckPackHorseMod();
			_hasRanchingMod = Helper.CheckRanchingMod();
			_hasSailingMod = Helper.CheckSailingMod();
			_hasTenacityMod = Helper.CheckTenacityMod();
			_hasThirdEyeMod = Helper.CheckThirdEyeMod();
			_hasVitalityMod = Helper.CheckVitalityMod();
			_hasSoulCatcher = Helper.CheckSoulCatcher();
			PrefabSetup.Init();
			BasicSetup.Init();
			AdvanceSetup.Init();
			EnhancedSetup.Init();
			SupremeSetup.Init();
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			_harmony.PatchAll(executingAssembly);
			ConfigWatcher();
		}

		private void OnDestroy()
		{
			((BaseUnityPlugin)this).Config.Save();
		}

		static Plugin()
		{
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Expected O, but got Unknown
			string configPath = Paths.ConfigPath;
			char directorySeparatorChar = Path.DirectorySeparatorChar;
			configFileFullPath = configPath + directorySeparatorChar + configFileName;
			TBLogger = Logger.CreateLogSource("TrophyBuffs");
			_harmony = new Harmony("blacks7ar.TrophyBuffs");
			_configSync = new ConfigSync("blacks7ar.TrophyBuffs")
			{
				DisplayName = "TrophyBuffs",
				CurrentVersion = "1.2.3",
				MinimumRequiredVersion = "1.2.3",
				ModRequired = true
			};
		}
	}
}
namespace TrophyBuffs.Utils
{
	internal static class Helper
	{
		public static bool CheckBlacksmithingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.blacksmithing"))
			{
				return false;
			}
			Logging.LogInfo("Blacksmithing Skill found! Applying patch..");
			return true;
		}

		public static bool CheckBuildingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.building"))
			{
				return false;
			}
			Logging.LogInfo("Building Skill found! Applying patch..");
			return true;
		}

		public static bool CheckHerbalistMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("blacks7ar.Herbalist"))
			{
				return false;
			}
			Logging.LogInfo("Herbalist Skill found! Applying patch..");
			return true;
		}

		public static bool CheckCookingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.cooking"))
			{
				return false;
			}
			Logging.LogInfo("Cooking Skill found! Applying patch..");
			return true;
		}

		public static bool CheckFarmingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.farming"))
			{
				return false;
			}
			Logging.LogInfo("Farming Skill found! Applying patch..");
			return true;
		}

		public static bool CheckFermentingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("blacks7ar.Fermenting"))
			{
				return false;
			}
			Logging.LogInfo("Fermenting Skill found! Applying patch..");
			return true;
		}

		public static bool CheckForagingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.foraging"))
			{
				return false;
			}
			Logging.LogInfo("Foraging Skill found! Applying patch..");
			return true;
		}

		public static bool CheckJewelcraftingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.jewelcrafting"))
			{
				return false;
			}
			Logging.LogInfo("Jewelcrafting Skill found! Applying patch..");
			return true;
		}

		public static bool CheckLumberjackingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.lumberjacking"))
			{
				return false;
			}
			Logging.LogInfo("Lumberjacking Skill found! Applying patch..");
			return true;
		}

		public static bool CheckMiningMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.mining"))
			{
				return false;
			}
			Logging.LogInfo("Mining Skill found! Applying patch..");
			return true;
		}

		public static bool CheckPackHorseMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.packhorse"))
			{
				return false;
			}
			Logging.LogInfo("PackHorse Skill found! Applying patch..");
			return true;
		}

		public static bool CheckRanchingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.ranching"))
			{
				return false;
			}
			Logging.LogInfo("Ranching Skill found! Applying patch..");
			return true;
		}

		public static bool CheckSailingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.sailing"))
			{
				return false;
			}
			Logging.LogInfo("Sailing Skill found! Applying patch..");
			return true;
		}

		public static bool CheckTenacityMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.tenacity"))
			{
				return false;
			}
			Logging.LogInfo("Tenacity Skill found! Applying patch..");
			return true;
		}

		public static bool CheckThirdEyeMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("Azumatt.ThirdEye"))
			{
				return false;
			}
			Logging.LogInfo("ThirdEye Skill found! Applying patch..");
			return true;
		}

		public static bool CheckVitalityMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("org.bepinex.plugins.vitality"))
			{
				return false;
			}
			Logging.LogInfo("Vitality Skill found! Applying patch..");
			return true;
		}

		public static bool CheckHuntingMod()
		{
			if (!Chainloader.PluginInfos.ContainsKey("blacks7ar.Hunting"))
			{
				return false;
			}
			Logging.LogInfo("Hunting Skill found! Applying patch..");
			return true;
		}

		public static bool CheckSoulCatcher()
		{
			if (!Chainloader.PluginInfos.ContainsKey("Soulcatcher"))
			{
				return false;
			}
			Logging.LogInfo("SoulCatcher Skill found! Applying patch..");
			return true;
		}

		public static SE_Stats CreateStatusEffects(string effectName, string m_name, Sprite icon)
		{
			SE_Stats obj = ScriptableObject.CreateInstance<SE_Stats>();
			((Object)obj).name = effectName;
			((StatusEffect)obj).m_name = m_name;
			((StatusEffect)obj).m_tooltip = m_name;
			((StatusEffect)obj).m_icon = icon;
			return obj;
		}

		public static void AddClonedObject(this ZNetScene zNetScene, GameObject gameObject, bool overWrite = true)
		{
			GameObject prefab;
			if ((Object)(object)(prefab = zNetScene.GetPrefab(((Object)gameObject).name)) != (Object)null)
			{
				if (!overWrite)
				{
					return;
				}
				zNetScene.m_prefabs.Remove(prefab);
				zNetScene.m_namedPrefabs.Remove(StringExtensionMethods.GetStableHashCode(((Object)gameObject).name));
			}
			zNetScene.m_prefabs.Add(gameObject);
			zNetScene.m_namedPrefabs.Add(StringExtensionMethods.GetStableHashCode(((Object)gameObject).name), gameObject);
		}

		public static void AddClonedObject(this ObjectDB objectDB, GameObject gameObject, bool overWrite = true)
		{
			GameObject itemPrefab;
			if ((Object)(object)(itemPrefab = objectDB.GetItemPrefab(((Object)gameObject).name)) != (Object)null)
			{
				if (!overWrite)
				{
					return;
				}
				objectDB.m_items.Remove(itemPrefab);
				objectDB.m_itemByHash.Remove(StringExtensionMethods.GetStableHashCode(((Object)gameObject).name));
			}
			objectDB.m_items.Add(gameObject);
			objectDB.m_itemByHash.Add(StringExtensionMethods.GetStableHashCode(((Object)gameObject).name), gameObject);
		}

		public static void AddRecipe(this ObjectDB objectDB, Recipe recipe, bool overWrite = true)
		{
			Recipe recipe2;
			if ((Object)(object)(recipe2 = objectDB.GetRecipe(recipe.m_item.m_itemData)) != (Object)null)
			{
				if (!overWrite)
				{
					return;
				}
				objectDB.m_recipes.Remove(recipe2);
			}
			objectDB.m_recipes.Add(recipe);
		}
	}
	public static class Logging
	{
		public static void LogDebug(string debug)
		{
			Plugin.TBLogger.LogDebug((object)debug);
		}

		public static void LogInfo(string info)
		{
			Plugin.TBLogger.LogInfo((object)info);
		}

		public static void LogWarning(string warning)
		{
			Plugin.TBLogger.LogWarning((object)warning);
		}

		public static void LogError(string error)
		{
			Plugin.TBLogger.LogError((object)error);
		}
	}
	public enum Toggle
	{
		On = 1,
		Off = 0
	}
}
namespace TrophyBuffs.ConfigData
{
	internal abstract class AdvanceSetup
	{
		public static ConfigEntry<int> AdvanceAxesBonus;

		public static ConfigEntry<int> AdvanceBlockingBonus;

		public static ConfigEntry<int> AdvanceBloodMagicBonus;

		public static ConfigEntry<int> AdvanceBowsBonus;

		public static ConfigEntry<int> AdvanceClubsBonus;

		public static ConfigEntry<int> AdvanceCrossbowsBonus;

		public static ConfigEntry<int> AdvanceElementalMagicBonus;

		public static ConfigEntry<int> AdvanceFistBonus;

		public static ConfigEntry<int> AdvanceFishingBonus;

		public static ConfigEntry<int> AdvanceKnivesBonus;

		public static ConfigEntry<int> AdvancePickaxesBonus;

		public static ConfigEntry<int> AdvanceRidingBonus;

		public static ConfigEntry<int> AdvanceRunBonus;

		public static ConfigEntry<int> AdvancePolearmsBonus;

		public static ConfigEntry<int> AdvanceSneakBonus;

		public static ConfigEntry<int> AdvanceSpearsBonus;

		public static ConfigEntry<int> AdvanceSwimBonus;

		public static ConfigEntry<int> AdvanceSwordsBonus;

		public static ConfigEntry<int> AdvanceWoodcuttingBonus;

		public static ConfigEntry<double> AdvanceBuffCooldown;

		private const string AdvanceBuffsSection = "4- AdvanceBuffs";

		private const string AdvanceBuffDescription = "Advance buff amount from eating this trophy.";

		public static void Init()
		{
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got Unknown
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Expected O, but got Unknown
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Expected O, but got Unknown
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Expected O, but got Unknown
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Expected O, but got Unknown
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Expected O, but got Unknown
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Expected O, but got Unknown
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a2: Expected O, but got Unknown
			//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Expected O, but got Unknown
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0206: Expected O, but got Unknown
			//IL_022d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Expected O, but got Unknown
			//IL_025f: Unknown result type (might be due to invalid IL or missing references)
			//IL_026a: Expected O, but got Unknown
			//IL_0291: Unknown result type (might be due to invalid IL or missing references)
			//IL_029c: Expected O, but got Unknown
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ce: Expected O, but got Unknown
			//IL_02f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0300: Expected O, but got Unknown
			//IL_0327: Unknown result type (might be due to invalid IL or missing references)
			//IL_0332: Expected O, but got Unknown
			//IL_0359: Unknown result type (might be due to invalid IL or missing references)
			//IL_0364: Expected O, but got Unknown
			//IL_038b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0396: Expected O, but got Unknown
			//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c8: Expected O, but got Unknown
			//IL_03fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0408: Expected O, but got Unknown
			AdvanceBuffCooldown = Plugin._instance.config("2- General", "Advance Buff Cooldown", 15.0, new ConfigDescription("Advance buff cooldown and duration in minutes.", (AcceptableValueBase)(object)new AcceptableValueRange<double>(1.0, 30.0), Array.Empty<object>()));
			AdvanceAxesBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Axes+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceBlockingBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Blocking+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceBloodMagicBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance BloodMagic+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceBowsBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Bows+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceClubsBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Clubs+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceCrossbowsBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Crossbows+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceElementalMagicBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance ElementalMagic+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceFistBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Fist+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceFishingBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Fishing+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceKnivesBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Knives+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvancePickaxesBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Pickaxes+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceRidingBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Riding+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceRunBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Run+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvancePolearmsBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Polearms+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceSneakBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Sneak+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceSpearsBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Spears+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceSwimBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Swim+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceSwordsBonus = Plugin._instance.config("4- AdvanceBuffs", "Advance Swords+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			AdvanceWoodcuttingBonus = Plugin._instance.config("4- AdvanceBuffs", Plugin._hasLumberjackingMod ? "Advance Lumberjacking+ Buff" : "Advance Woodcutting+ Buff", 5, new ConfigDescription("Advance buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
		}
	}
	internal abstract class BasicSetup
	{
		public static ConfigEntry<int> BasicAxesBonus;

		public static ConfigEntry<int> BasicBlockingBonus;

		public static ConfigEntry<int> BasicBloodMagicBonus;

		public static ConfigEntry<int> BasicBowsBonus;

		public static ConfigEntry<int> BasicClubsBonus;

		public static ConfigEntry<int> BasicCrossbowsBonus;

		public static ConfigEntry<int> BasicElementalMagicBonus;

		public static ConfigEntry<int> BasicFistBonus;

		public static ConfigEntry<int> BasicFishingBonus;

		public static ConfigEntry<int> BasicJumpBonus;

		public static ConfigEntry<int> BasicKnivesBonus;

		public static ConfigEntry<int> BasicPickaxesBonus;

		public static ConfigEntry<int> BasicRunBonus;

		public static ConfigEntry<int> BasicPolearmsBonus;

		public static ConfigEntry<int> BasicSneakBonus;

		public static ConfigEntry<int> BasicSpearsBonus;

		public static ConfigEntry<int> BasicSwimBonus;

		public static ConfigEntry<int> BasicSwordsBonus;

		public static ConfigEntry<int> BasicWoodcuttingBonus;

		public static ConfigEntry<double> BasicBuffCooldown;

		private const string BasicBuffSection = "3- BasicBuffs";

		private const string BasicBuffDescription = "Basic buff amount from eating this trophy.";

		public static void Init()
		{
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got Unknown
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Expected O, but got Unknown
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Expected O, but got Unknown
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Expected O, but got Unknown
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Expected O, but got Unknown
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Expected O, but got Unknown
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Expected O, but got Unknown
			//IL_0190: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Expected O, but got Unknown
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Expected O, but got Unknown
			//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fd: Expected O, but got Unknown
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_022e: Expected O, but got Unknown
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_025f: Expected O, but got Unknown
			//IL_0285: Unknown result type (might be due to invalid IL or missing references)
			//IL_0290: Expected O, but got Unknown
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c1: Expected O, but got Unknown
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f2: Expected O, but got Unknown
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_0323: Expected O, but got Unknown
			//IL_0349: Unknown result type (might be due to invalid IL or missing references)
			//IL_0354: Expected O, but got Unknown
			//IL_037a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0385: Expected O, but got Unknown
			//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b6: Expected O, but got Unknown
			//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f5: Expected O, but got Unknown
			BasicBuffCooldown = Plugin._instance.config("2- General", "Basic Buff Cooldown", 15.0, new ConfigDescription("Basic buff cooldown and duration in minutes.", (AcceptableValueBase)(object)new AcceptableValueRange<double>(1.0, 30.0), Array.Empty<object>()));
			BasicAxesBonus = Plugin._instance.config("3- BasicBuffs", "Basic Axes+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicBlockingBonus = Plugin._instance.config("3- BasicBuffs", "Basic Blocking+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicBloodMagicBonus = Plugin._instance.config("3- BasicBuffs", "Basic BloodMagic+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicBowsBonus = Plugin._instance.config("3- BasicBuffs", "Basic Bows+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicClubsBonus = Plugin._instance.config("3- BasicBuffs", "Basic Clubs+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicCrossbowsBonus = Plugin._instance.config("3- BasicBuffs", "Basic Crossbows+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicElementalMagicBonus = Plugin._instance.config("3- BasicBuffs", "Basic ElementalMagic+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicFistBonus = Plugin._instance.config("3- BasicBuffs", "Basic Fist+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicFishingBonus = Plugin._instance.config("3- BasicBuffs", "Basic Fishing+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicJumpBonus = Plugin._instance.config("3- BasicBuffs", "Basic Jump+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicKnivesBonus = Plugin._instance.config("3- BasicBuffs", "Basic Knives+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicPickaxesBonus = Plugin._instance.config("3- BasicBuffs", "Basic Pickaxes+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicRunBonus = Plugin._instance.config("3- BasicBuffs", "Basic Run+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicPolearmsBonus = Plugin._instance.config("3- BasicBuffs", "Basic Polearms+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicSneakBonus = Plugin._instance.config("3- BasicBuffs", "Basic Sneak+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicSpearsBonus = Plugin._instance.config("3- BasicBuffs", "Basic Spears+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicSwimBonus = Plugin._instance.config("3- BasicBuffs", "Basic Swim+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicSwordsBonus = Plugin._instance.config("3- BasicBuffs", "Basic Swords+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			BasicWoodcuttingBonus = Plugin._instance.config("3- BasicBuffs", Plugin._hasLumberjackingMod ? "Basic Lumberjacking+ Buff" : "Basic Woodcutting+ Buff", 3, new ConfigDescription("Basic buff amount from eating this trophy.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
		}
	}
	internal abstract class EnhancedSetup
	{
		public static ConfigEntry<int> EnhancedAxesBonus;

		public static ConfigEntry<int> EnhancedBlockingBonus;

		public static ConfigEntry<int> EnhancedBloodMagicBonus;

		public static ConfigEntry<int> EnhancedBowsBonus;

		public static ConfigEntry<int> EnhancedClubsBonus;

		public static ConfigEntry<int> EnhancedCrossbowsBonus;

		public static ConfigEntry<int> EnhancedElementalMagicBonus;

		public static ConfigEntry<int> EnhancedFistBonus;

		public static ConfigEntry<int> EnhancedFishingBonus;

		public static ConfigEntry<int> EnhancedJumpBonus;

		public static ConfigEntry<int> EnhancedKnivesBonus;

		public static ConfigEntry<int> EnhancedPickaxesBonus;

		public static ConfigEntry<int> EnhancedRidingBonus;

		public static ConfigEntry<int> EnhancedRunBonus;

		public static ConfigEntry<int> EnhancedPolearmsBonus;

		public static ConfigEntry<int> EnhancedSneakBonus;

		public static ConfigEntry<int> EnhancedSpearsBonus;

		public static ConfigEntry<int> EnhancedSwimBonus;

		public static ConfigEntry<int> EnhancedSwordsBonus;

		public static ConfigEntry<int> EnhancedWoodcuttingBonus;

		public static ConfigEntry<int> EnhancedBlacksmithingBonus;

		public static ConfigEntry<int> EnhancedBuildingBonus;

		public static ConfigEntry<int> EnhancedHerbalistBonus;

		public static ConfigEntry<int> EnhancedCookingBonus;

		public static ConfigEntry<int> EnhancedFarmingBonus;

		public static ConfigEntry<int> EnhancedFermentingBonus;

		public static ConfigEntry<int> EnhancedForagingBonus;

		public static ConfigEntry<int> EnhancedHuntingBonus;

		public static ConfigEntry<int> EnhancedJewelcraftingBonus;

		public static ConfigEntry<int> EnhancedMiningBonus;

		public static ConfigEntry<int> EnhancedPackHorseBonus;

		public static ConfigEntry<int> EnhancedRanchingBonus;

		public static ConfigEntry<int> EnhancedSailingBonus;

		public static ConfigEntry<int> EnhancedTenacityBonus;

		public static ConfigEntry<int> EnhancedThirdEyeBonus;

		public static ConfigEntry<int> EnhancedVitalityBonus;

		public static ConfigEntry<int> EnhancedSoulCatcherBonus;

		private const string EnhancedSection = "5- EnhancedTrophies";

		private const string EnhancedDescription = "Permanent level added to this skill from eating enhanced trophies.";

		public static void Init()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Expected O, but got Unknown
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Expected O, but got Unknown
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Expected O, but got Unknown
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Expected O, but got Unknown
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Expected O, but got Unknown
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Expected O, but got Unknown
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Expected O, but got Unknown
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Expected O, but got Unknown
			//IL_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e5: Expected O, but got Unknown
			//IL_020b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Expected O, but got Unknown
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0247: Expected O, but got Unknown
			//IL_026d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0278: Expected O, but got Unknown
			//IL_029e: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Expected O, but got Unknown
			//IL_02cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02da: Expected O, but got Unknown
			//IL_0300: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Expected O, but got Unknown
			//IL_0331: Unknown result type (might be due to invalid IL or missing references)
			//IL_033c: Expected O, but got Unknown
			//IL_0362: Unknown result type (might be due to invalid IL or missing references)
			//IL_036d: Expected O, but got Unknown
			//IL_0393: Unknown result type (might be due to invalid IL or missing references)
			//IL_039e: Expected O, but got Unknown
			//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03dd: Expected O, but got Unknown
			//IL_040a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0415: Expected O, but got Unknown
			//IL_0442: Unknown result type (might be due to invalid IL or missing references)
			//IL_044d: Expected O, but got Unknown
			//IL_047a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0485: Expected O, but got Unknown
			//IL_04b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bd: Expected O, but got Unknown
			//IL_04ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f5: Expected O, but got Unknown
			//IL_0522: Unknown result type (might be due to invalid IL or missing references)
			//IL_052d: Expected O, but got Unknown
			//IL_055a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0565: Expected O, but got Unknown
			//IL_0592: Unknown result type (might be due to invalid IL or missing references)
			//IL_059d: Expected O, but got Unknown
			//IL_05ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d5: Expected O, but got Unknown
			//IL_0602: Unknown result type (might be due to invalid IL or missing references)
			//IL_060d: Expected O, but got Unknown
			//IL_063a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0645: Expected O, but got Unknown
			//IL_0672: Unknown result type (might be due to invalid IL or missing references)
			//IL_067d: Expected O, but got Unknown
			//IL_06aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b5: Expected O, but got Unknown
			//IL_06e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ed: Expected O, but got Unknown
			//IL_071a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0725: Expected O, but got Unknown
			//IL_0752: Unknown result type (might be due to invalid IL or missing references)
			//IL_075d: Expected O, but got Unknown
			//IL_078a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0795: Expected O, but got Unknown
			EnhancedAxesBonus = Plugin._instance.config("5- EnhancedTrophies", "Axes Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedBlockingBonus = Plugin._instance.config("5- EnhancedTrophies", "Blocking Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedBloodMagicBonus = Plugin._instance.config("5- EnhancedTrophies", "Blood Magic Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedBowsBonus = Plugin._instance.config("5- EnhancedTrophies", "Bows Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedClubsBonus = Plugin._instance.config("5- EnhancedTrophies", "Clubs Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedCrossbowsBonus = Plugin._instance.config("5- EnhancedTrophies", "Crossbows Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedElementalMagicBonus = Plugin._instance.config("5- EnhancedTrophies", "Elemental Magic Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedFistBonus = Plugin._instance.config("5- EnhancedTrophies", "Fist Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedFishingBonus = Plugin._instance.config("5- EnhancedTrophies", "Fishing Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedJumpBonus = Plugin._instance.config("5- EnhancedTrophies", "Jump Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedKnivesBonus = Plugin._instance.config("5- EnhancedTrophies", "Knives Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedPickaxesBonus = Plugin._instance.config("5- EnhancedTrophies", "Pickaxes Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedRidingBonus = Plugin._instance.config("5- EnhancedTrophies", "Riding Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedRunBonus = Plugin._instance.config("5- EnhancedTrophies", "Run Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedPolearmsBonus = Plugin._instance.config("5- EnhancedTrophies", "Polearms Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedSneakBonus = Plugin._instance.config("5- EnhancedTrophies", "Sneak Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedSpearsBonus = Plugin._instance.config("5- EnhancedTrophies", "Spears Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedSwimBonus = Plugin._instance.config("5- EnhancedTrophies", "Swim Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedSwordsBonus = Plugin._instance.config("5- EnhancedTrophies", "Swords Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			EnhancedWoodcuttingBonus = Plugin._instance.config("5- EnhancedTrophies", Plugin._hasLumberjackingMod ? "Lumberjacking Skill" : "Woodcutting Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			if (Plugin._hasBlacksmithingMod)
			{
				EnhancedBlacksmithingBonus = Plugin._instance.config("5- EnhancedTrophies", "Blacksmithing Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasBuildingMod)
			{
				EnhancedBuildingBonus = Plugin._instance.config("5- EnhancedTrophies", "Building Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasHerbalistMod)
			{
				EnhancedHerbalistBonus = Plugin._instance.config("5- EnhancedTrophies", "Herbalist Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasCookingMod)
			{
				EnhancedCookingBonus = Plugin._instance.config("5- EnhancedTrophies", "Cooking Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasFarmingMod)
			{
				EnhancedFarmingBonus = Plugin._instance.config("5- EnhancedTrophies", "Farming Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasFermentingMod)
			{
				EnhancedFermentingBonus = Plugin._instance.config("5- EnhancedTrophies", "Fermenting Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasForagingMod)
			{
				EnhancedForagingBonus = Plugin._instance.config("5- EnhancedTrophies", "Foraging Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasJewelcraftingMod)
			{
				EnhancedJewelcraftingBonus = Plugin._instance.config("5- EnhancedTrophies", "Jewelcrafting Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasMiningMod)
			{
				EnhancedMiningBonus = Plugin._instance.config("5- EnhancedTrophies", "Mining Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasPackHorseMod)
			{
				EnhancedPackHorseBonus = Plugin._instance.config("5- EnhancedTrophies", "PackHorse Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasRanchingMod)
			{
				EnhancedRanchingBonus = Plugin._instance.config("5- EnhancedTrophies", "Ranching Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasSailingMod)
			{
				EnhancedSailingBonus = Plugin._instance.config("5- EnhancedTrophies", "Sailing Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasTenacityMod)
			{
				EnhancedTenacityBonus = Plugin._instance.config("5- EnhancedTrophies", "Tenacity", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasThirdEyeMod)
			{
				EnhancedThirdEyeBonus = Plugin._instance.config("5- EnhancedTrophies", "ThirdEye Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasVitalityMod)
			{
				EnhancedVitalityBonus = Plugin._instance.config("5- EnhancedTrophies", "Vitality Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasHuntingMod)
			{
				EnhancedHuntingBonus = Plugin._instance.config("5- EnhancedTrophies", "Hunting Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
			if (Plugin._hasSoulCatcher)
			{
				EnhancedSoulCatcherBonus = Plugin._instance.config("5- EnhancedTrophies", "SoulCatcher Skill", 3, new ConfigDescription("Permanent level added to this skill from eating enhanced trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), Array.Empty<object>()));
			}
		}
	}
	internal abstract class SupremeSetup
	{
		public static ConfigEntry<int> SupremeAxesBonus;

		public static ConfigEntry<int> SupremeBlockingBonus;

		public static ConfigEntry<int> SupremeBloodMagicBonus;

		public static ConfigEntry<int> SupremeBowsBonus;

		public static ConfigEntry<int> SupremeClubsBonus;

		public static ConfigEntry<int> SupremeCrossbowsBonus;

		public static ConfigEntry<int> SupremeElementalMagicBonus;

		public static ConfigEntry<int> SupremeFistBonus;

		public static ConfigEntry<int> SupremeFishingBonus;

		public static ConfigEntry<int> SupremeJumpBonus;

		public static ConfigEntry<int> SupremeKnivesBonus;

		public static ConfigEntry<int> SupremePickaxesBonus;

		public static ConfigEntry<int> SupremeRidingBonus;

		public static ConfigEntry<int> SupremeRunBonus;

		public static ConfigEntry<int> SupremePolearmsBonus;

		public static ConfigEntry<int> SupremeSneakBonus;

		public static ConfigEntry<int> SupremeSpearsBonus;

		public static ConfigEntry<int> SupremeSwimBonus;

		public static ConfigEntry<int> SupremeSwordsBonus;

		public static ConfigEntry<int> SupremeWoodcuttingBonus;

		public static ConfigEntry<int> SupremeBlacksmithingBonus;

		public static ConfigEntry<int> SupremeBuildingBonus;

		public static ConfigEntry<int> SupremeHerbalistBonus;

		public static ConfigEntry<int> SupremeCookingBonus;

		public static ConfigEntry<int> SupremeFarmingBonus;

		public static ConfigEntry<int> SupremeFermentingBonus;

		public static ConfigEntry<int> SupremeForagingBonus;

		public static ConfigEntry<int> SupremeHuntingBonus;

		public static ConfigEntry<int> SupremeJewelcraftingBonus;

		public static ConfigEntry<int> SupremeMiningBonus;

		public static ConfigEntry<int> SupremePackHorseBonus;

		public static ConfigEntry<int> SupremeRanchingBonus;

		public static ConfigEntry<int> SupremeSailingBonus;

		public static ConfigEntry<int> SupremeTenacityBonus;

		public static ConfigEntry<int> SupremeThirdEyeBonus;

		public static ConfigEntry<int> SupremeVitalityBonus;

		public static ConfigEntry<int> SupremeSoulCatcherBonus;

		private const string SupremeSection = "5- SupremeTrophies";

		private const string SupremeDescription = "Permanent level added to this skill from eating supreme trophies.";

		public static void Init()
		{
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected O, but got Unknown
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Expected O, but got Unknown
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: Expected O, but got Unknown
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Expected O, but got Unknown
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Expected O, but got Unknown
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Expected O, but got Unknown
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Expected O, but got Unknown
			//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bd: Expected O, but got Unknown
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Expected O, but got Unknown
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_0221: Expected O, but got Unknown
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_0253: Expected O, but got Unknown
			//IL_027a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0285: Expected O, but got Unknown
			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b7: Expected O, but got Unknown
			//IL_02de: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e9: Expected O, but got Unknown
			//IL_0310: Unknown result type (might be due to invalid IL or missing references)
			//IL_031b: Expected O, but got Unknown
			//IL_0342: Unknown result type (might be due to invalid IL or missing references)
			//IL_034d: Expected O, but got Unknown
			//IL_0374: Unknown result type (might be due to invalid IL or missing references)
			//IL_037f: Expected O, but got Unknown
			//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b1: Expected O, but got Unknown
			//IL_03e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f1: Expected O, but got Unknown
			//IL_041f: Unknown result type (might be due to invalid IL or missing references)
			//IL_042a: Expected O, but got Unknown
			//IL_0458: Unknown result type (might be due to invalid IL or missing references)
			//IL_0463: Expected O, but got Unknown
			//IL_0491: Unknown result type (might be due to invalid IL or missing references)
			//IL_049c: Expected O, but got Unknown
			//IL_04ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d5: Expected O, but got Unknown
			//IL_0503: Unknown result type (might be due to invalid IL or missing references)
			//IL_050e: Expected O, but got Unknown
			//IL_053c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0547: Expected O, but got Unknown
			//IL_0575: Unknown result type (might be due to invalid IL or missing references)
			//IL_0580: Expected O, but got Unknown
			//IL_05ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b9: Expected O, but got Unknown
			//IL_05e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f2: Expected O, but got Unknown
			//IL_0620: Unknown result type (might be due to invalid IL or missing references)
			//IL_062b: Expected O, but got Unknown
			//IL_0659: Unknown result type (might be due to invalid IL or missing references)
			//IL_0664: Expected O, but got Unknown
			//IL_0692: Unknown result type (might be due to invalid IL or missing references)
			//IL_069d: Expected O, but got Unknown
			//IL_06cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d6: Expected O, but got Unknown
			//IL_0704: Unknown result type (might be due to invalid IL or missing references)
			//IL_070f: Expected O, but got Unknown
			//IL_073d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0748: Expected O, but got Unknown
			//IL_0776: Unknown result type (might be due to invalid IL or missing references)
			//IL_0781: Expected O, but got Unknown
			//IL_07af: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ba: Expected O, but got Unknown
			SupremeAxesBonus = Plugin._instance.config("5- SupremeTrophies", "Axes Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeBlockingBonus = Plugin._instance.config("5- SupremeTrophies", "Blocking Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeBloodMagicBonus = Plugin._instance.config("5- SupremeTrophies", "Blood Magic Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeBowsBonus = Plugin._instance.config("5- SupremeTrophies", "Bows Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeClubsBonus = Plugin._instance.config("5- SupremeTrophies", "Clubs Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeCrossbowsBonus = Plugin._instance.config("5- SupremeTrophies", "Crossbows Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeElementalMagicBonus = Plugin._instance.config("5- SupremeTrophies", "Elemental Magic Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeFistBonus = Plugin._instance.config("5- SupremeTrophies", "Fist Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeFishingBonus = Plugin._instance.config("5- SupremeTrophies", "Fishing Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeJumpBonus = Plugin._instance.config("5- SupremeTrophies", "Jump Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeKnivesBonus = Plugin._instance.config("5- SupremeTrophies", "Knives Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremePickaxesBonus = Plugin._instance.config("5- SupremeTrophies", "Pickaxes Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeRidingBonus = Plugin._instance.config("5- SupremeTrophies", "Riding Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeRunBonus = Plugin._instance.config("5- SupremeTrophies", "Run Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremePolearmsBonus = Plugin._instance.config("5- SupremeTrophies", "Polearms Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeSneakBonus = Plugin._instance.config("5- SupremeTrophies", "Sneak Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeSpearsBonus = Plugin._instance.config("5- SupremeTrophies", "Spears Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeSwimBonus = Plugin._instance.config("5- SupremeTrophies", "Swim Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeSwordsBonus = Plugin._instance.config("5- SupremeTrophies", "Swords Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			SupremeWoodcuttingBonus = Plugin._instance.config("5- SupremeTrophies", Plugin._hasLumberjackingMod ? "Lumberjacking Skill" : "Woodcutting Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			if (Plugin._hasBlacksmithingMod)
			{
				SupremeBlacksmithingBonus = Plugin._instance.config("5- SupremeTrophies", "Blacksmithing Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasBuildingMod)
			{
				SupremeBuildingBonus = Plugin._instance.config("5- SupremeTrophies", "Building Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasHerbalistMod)
			{
				SupremeHerbalistBonus = Plugin._instance.config("5- SupremeTrophies", "Herbalist Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasCookingMod)
			{
				SupremeCookingBonus = Plugin._instance.config("5- SupremeTrophies", "Cooking Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasFarmingMod)
			{
				SupremeFarmingBonus = Plugin._instance.config("5- SupremeTrophies", "Farming Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasFermentingMod)
			{
				SupremeFermentingBonus = Plugin._instance.config("5- SupremeTrophies", "Fermenting Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasForagingMod)
			{
				SupremeForagingBonus = Plugin._instance.config("5- SupremeTrophies", "Foraging Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasJewelcraftingMod)
			{
				SupremeJewelcraftingBonus = Plugin._instance.config("5- SupremeTrophies", "Jewelcrafting Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasMiningMod)
			{
				SupremeMiningBonus = Plugin._instance.config("5- SupremeTrophies", "Mining Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasPackHorseMod)
			{
				SupremePackHorseBonus = Plugin._instance.config("5- SupremeTrophies", "PackHorse Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasRanchingMod)
			{
				SupremeRanchingBonus = Plugin._instance.config("5- SupremeTrophies", "Ranching Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasSailingMod)
			{
				SupremeSailingBonus = Plugin._instance.config("5- SupremeTrophies", "Sailing Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasTenacityMod)
			{
				SupremeTenacityBonus = Plugin._instance.config("5- SupremeTrophies", "Tenacity Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasThirdEyeMod)
			{
				SupremeThirdEyeBonus = Plugin._instance.config("5- SupremeTrophies", "ThirdEye Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasVitalityMod)
			{
				SupremeVitalityBonus = Plugin._instance.config("5- SupremeTrophies", "Vitality Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasHuntingMod)
			{
				SupremeHuntingBonus = Plugin._instance.config("5- SupremeTrophies", "Hunting Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
			if (Plugin._hasSoulCatcher)
			{
				SupremeSoulCatcherBonus = Plugin._instance.config("5- SupremeTrophies", "SoulCatcher Skill", 5, new ConfigDescription("Permanent level added to this skill from eating supreme trophies.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), Array.Empty<object>()));
			}
		}
	}
}
namespace TrophyBuffs.Patches
{
	[HarmonyPatch(typeof(ZNetScene), "Awake")]
	public class ZNetScenePatch
	{
		public static void Postfix(ZNetScene __instance)
		{
			if (!((Object)(object)__instance == (Object)null))
			{
				List<GameObject> prefabs = __instance.m_prefabs;
				if (prefabs != null && prefabs.Count > 0)
				{
					SetupCursedTrunk.Init(__instance);
				}
			}
		}
	}
	[HarmonyPatch]
	public class HumanoidPatch
	{
		[HarmonyPostfix]
		[HarmonyPatch(typeof(Humanoid), "UseItem")]
		private static void HumanoidUseItem_Prefix(Humanoid __instance, Inventory inventory, ItemData item, bool fromInventoryGui, ZSyncAnimation ___m_zanim)
		{
			if (inventory == null)
			{
				inventory = __instance.m_inventory;
			}
			if (!inventory.ContainsItem(item) || !fromInventoryGui)
			{
				return;
			}
			if (item.m_shared.m_name.ToLower().Contains("btb_enhancedtrophy") || item.m_shared.m_name.ToLower().Contains("btb_supremetrophy"))
			{
				UseEnhancedTrophy.Init(__instance, inventory, item, ___m_zanim);
				UseSupremeTrophy.Init(__instance, inventory, item, ___m_zanim);
			}
			else if (item.m_shared.m_name.ToLower().Contains("item_trophy"))
			{
				if (((Character)__instance).GetSEMan().GetStatusEffects().Count >= 6)
				{
					((Character)__instance).Message((MessageType)2, "<size=28>Can't be use right now.</size>", 0, (Sprite)null);
					return;
				}
				UseBasicTrophy.Init(__instance, inventory, item, ___m_zanim);
				UseAdvanceTrophy.Init(__instance, inventory, item, ___m_zanim);
			}
		}
	}
	[HarmonyPatch]
	internal class ItemDataPatch
	{
		[HarmonyPostfix]
		[HarmonyPatch(typeof(ItemData), "GetStatusEffectTooltip")]
		public static string GetToolTip_Postfix(string __result, ItemData __instance)
		{
			try
			{
				if (__instance?.m_shared == null)
				{
					return __result;
				}
				StringBuilder stringBuilder = new StringBuilder(__result);
				switch (((Object)__instance.m_dropPrefab).name)
				{
				case "TrophyDraugr":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicAxesBonus.Value} Axes Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyBlob":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicBlockingBonus.Value} Blocking Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophySkeletonPoison":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicBloodMagicBonus.Value} Blood Magic Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyDraugrElite":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicBowsBonus.Value} Bows Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyGreydwarfBrute":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicClubsBonus.Value} Clubs Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyWraith":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicCrossbowsBonus.Value} Crossbows Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophySurtling":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicElementalMagicBonus.Value} Elemental Magic Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyGreydwarf":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicFistBonus.Value} Fist Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyLeech":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicFishingBonus.Value} Fishing Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyUlv":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicJumpBonus.Value} Jump Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyDeer":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicKnivesBonus.Value} Knives Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyFrostTroll":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicPickaxesBonus.Value} Pickaxes Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					stringBuilder.Append(Plugin._hasLumberjackingMod ? $"\nSkill Bonus: <color=orange>+{BasicSetup.BasicWoodcuttingBonus.Value} Lumberjacking Skill</color>" : $"\nSkill Bonus: <color=orange>+{BasicSetup.BasicWoodcuttingBonus.Value} Woodcutting Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyHare":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicRunBonus.Value} Run Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyDraugrFem":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicPolearmsBonus.Value} Polearms Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyBoar":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicSneakBonus.Value} Sneak Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyGreydwarfShaman":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicSpearsBonus.Value} Spears Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyNeck":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicSwimBonus.Value} Swim Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophySkeleton":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{BasicSetup.BasicSwordsBonus.Value} Swords Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyDvergr":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceAxesBonus.Value} Axes Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyGrowth":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceBlockingBonus.Value} Blocking Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyCultist":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceBloodMagicBonus.Value} Blood Magic Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyHatchling":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceBowsBonus.Value} Bows Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyGoblinBrute":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceClubsBonus.Value} Clubs Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyDeathsquito":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceCrossbowsBonus.Value} Crossbows Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyGoblinShaman":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceElementalMagicBonus.Value} Elemental Magic Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyFenring":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceFistBonus.Value} Fist Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophySerpent":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceFishingBonus.Value} Fishing Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					stringBuilder.Append($"\nSkill Bonus: <color=orange>+{AdvanceSetup.AdvanceSwimBonus.Value} Swim Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyWolf":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceKnivesBonus.Value} Knives Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophySGolem":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvancePickaxesBonus.Value} Pickaxes Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyLox":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceRidingBonus.Value} Riding Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyGjall":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceRunBonus.Value} Run Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophySeekerBrute":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvancePolearmsBonus.Value} Polearms Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyTick":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceSneakBonus.Value} Sneak Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophySeeker":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceSpearsBonus.Value} Spears Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyGoblin":
					stringBuilder.Append($"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceSwordsBonus.Value} Swords Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				case "TrophyAbomination":
					stringBuilder.Append(Plugin._hasLumberjackingMod ? $"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceWoodcuttingBonus.Value} Lumberjacking Skill</color>" : $"Skill Bonus: <color=orange>+{AdvanceSetup.AdvanceWoodcuttingBonus.Value} Woodcutting Skill</color>");
					stringBuilder.Append($"\nDuration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>");
					return stringBuilder.ToString();
				default:
					return __result;
				}
			}
			catch
			{
				return __result;
			}
		}
	}
	[HarmonyPatch]
	internal class ObjectDBPatch
	{
		[HarmonyPostfix]
		[HarmonyPriority(700)]
		[HarmonyPatch(typeof(ObjectDB), "Awake")]
		private static void Awake_Postfix(ObjectDB __instance)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			Scene activeScene = SceneManager.GetActiveScene();
			if (!(((Scene)(ref activeScene)).name != "main") && !((Object)(object)__instance == (Object)null) && __instance.m_items.Count > 0)
			{
				CreateBuffs.Init(__instance);
				EnhancedTrophies.Init(__instance);
				SupremeTrophies.Init(__instance);
				PieceTable buildPieces = __instance.GetItemPrefab("Hammer").GetComponent<ItemDrop>().m_itemData.m_shared.m_buildPieces;
				if (buildPieces.m_pieces.Contains(PrefabSetup._cursedTrunk))
				{
					buildPieces.m_pieces.Remove(PrefabSetup._cursedTrunk);
				}
				buildPieces.m_pieces.Add(PrefabSetup._cursedTrunk);
				__instance.UpdateItemHashes();
			}
		}

		[HarmonyPriority(700)]
		[HarmonyPatch(typeof(ObjectDB), "CopyOtherDB")]
		[HarmonyPostfix]
		private static void CopyOtherDB_Postfix(ObjectDB __instance)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			Scene activeScene = SceneManager.GetActiveScene();
			if (!(((Scene)(ref activeScene)).name != "main") && !((Object)(object)__instance == (Object)null) && __instance.m_items.Count > 0)
			{
				CreateBuffs.Init(__instance);
				EnhancedTrophies.Init(__instance);
				SupremeTrophies.Init(__instance);
				__instance.UpdateItemHashes();
			}
		}
	}
	[HarmonyPatch]
	internal class SkillsPatch
	{
		[HarmonyPostfix]
		[HarmonyPatch(typeof(Skills), "GetSkillLevel")]
		public static void GetSkillLevel_Postfix(Skills __instance, SkillType skillType, ref float __result)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Expected I4, but got Unknown
			//IL_0b61: Unknown result type (might be due to invalid IL or missing references)
			//IL_0680: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a19: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_024b: Unknown result type (might be due to invalid IL or missing references)
			//IL_042f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01af: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0724: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c05: Unknown result type (might be due to invalid IL or missing references)
			//IL_038b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Expected I4, but got Unknown
			//IL_0ba0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0326: Unknown result type (might be due to invalid IL or missing references)
			//IL_0910: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a58: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0287: Unknown result type (might be due to invalid IL or missing references)
			//IL_046e: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0512: Unknown result type (might be due to invalid IL or missing references)
			//IL_0763: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c44: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_061b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0975: Unknown result type (might be due to invalid IL or missing references)
			//IL_082d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0abd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0577: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0716: Unknown result type (might be due to invalid IL or missing references)
			//IL_06fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_037d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0365: Unknown result type (might be due to invalid IL or missing references)
			//IL_0967: Unknown result type (might be due to invalid IL or missing references)
			//IL_094f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aaf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a97: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0106: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_02da: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_023e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0227: Unknown result type (might be due to invalid IL or missing references)
			//IL_0569: Unknown result type (might be due to invalid IL or missing references)
			//IL_0551: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c83: Unknown result type (might be due to invalid IL or missing references)
			//IL_0421: Unknown result type (might be due to invalid IL or missing references)
			//IL_0409: Unknown result type (might be due to invalid IL or missing references)
			//IL_0672: Unknown result type (might be due to invalid IL or missing references)
			//IL_065a: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_086c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afc: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_081f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0807: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b53: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b3b: Unknown result type (might be due to invalid IL or missing references)
			//IL_060d: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f5: Unknown result type (might be due to invalid IL or missing references)
			switch (skillType - 1)
			{
			case 6:
			{
				float level3 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_axes"))
				{
					level3 += (float)BasicSetup.BasicAxesBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level3);
					__result = level3;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_axes"))
				{
					level3 += (float)AdvanceSetup.AdvanceAxesBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level3);
					__result = level3;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level3);
					__result = level3;
				}
				return;
			}
			case 5:
			{
				float level12 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_blocking"))
				{
					level12 += (float)BasicSetup.BasicBlockingBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level12);
					__result = level12;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_blocking"))
				{
					level12 += (float)AdvanceSetup.AdvanceBlockingBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level12);
					__result = level12;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level12);
					__result = level12;
				}
				return;
			}
			case 9:
			{
				float level9 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_bloodmagic"))
				{
					level9 += (float)BasicSetup.BasicBloodMagicBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level9);
					__result = level9;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_bloodmagic"))
				{
					level9 += (float)AdvanceSetup.AdvanceBloodMagicBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level9);
					__result = level9;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level9);
					__result = level9;
				}
				return;
			}
			case 7:
			{
				float level4 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_bows"))
				{
					level4 += (float)BasicSetup.BasicBowsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level4);
					__result = level4;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_bows"))
				{
					level4 += (float)AdvanceSetup.AdvanceBowsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level4);
					__result = level4;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level4);
					__result = level4;
				}
				return;
			}
			case 2:
			{
				float level5 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_clubs"))
				{
					level5 += (float)BasicSetup.BasicClubsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level5);
					__result = level5;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_clubs"))
				{
					level5 += (float)AdvanceSetup.AdvanceClubsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level5);
					__result = level5;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level5);
					__result = level5;
				}
				return;
			}
			case 13:
			{
				float level10 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_crossbows"))
				{
					level10 += (float)BasicSetup.BasicCrossbowsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level10);
					__result = level10;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_crossbows"))
				{
					level10 += (float)AdvanceSetup.AdvanceCrossbowsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level10);
					__result = level10;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level10);
					__result = level10;
				}
				return;
			}
			case 8:
			{
				float level14 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_elementalmagic"))
				{
					level14 += (float)BasicSetup.BasicElementalMagicBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level14);
					__result = level14;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_elementalmagic"))
				{
					level14 += (float)AdvanceSetup.AdvanceElementalMagicBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level14);
					__result = level14;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level14);
					__result = level14;
				}
				return;
			}
			case 10:
			{
				float level7 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_fist"))
				{
					level7 += (float)BasicSetup.BasicFistBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level7);
					__result = level7;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_fist"))
				{
					level7 += (float)AdvanceSetup.AdvanceFistBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level7);
					__result = level7;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level7);
					__result = level7;
				}
				return;
			}
			case 1:
			{
				float level13 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_knives"))
				{
					level13 += (float)BasicSetup.BasicKnivesBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level13);
					__result = level13;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_knives"))
				{
					level13 += (float)AdvanceSetup.AdvanceKnivesBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level13);
					__result = level13;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level13);
					__result = level13;
				}
				return;
			}
			case 11:
			{
				float level8 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_pickaxes"))
				{
					level8 += (float)BasicSetup.BasicPickaxesBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level8);
					__result = level8;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_pickaxes"))
				{
					level8 += (float)AdvanceSetup.AdvancePickaxesBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level8);
					__result = level8;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level8);
					__result = level8;
				}
				return;
			}
			case 3:
			{
				float level2 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_polearms"))
				{
					level2 += (float)BasicSetup.BasicPolearmsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level2);
					__result = level2;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_polearms"))
				{
					level2 += (float)AdvanceSetup.AdvancePolearmsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level2);
					__result = level2;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level2);
					__result = level2;
				}
				return;
			}
			case 4:
			{
				float level11 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_spears"))
				{
					level11 += (float)BasicSetup.BasicSpearsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level11);
					__result = level11;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_spears"))
				{
					level11 += (float)AdvanceSetup.AdvanceSpearsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level11);
					__result = level11;
				}
				else
				{
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level11);
					__result = level11;
				}
				return;
			}
			case 0:
			{
				float level6 = __instance.GetSkill(skillType).m_level;
				if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_basic_swords"))
				{
					level6 += (float)BasicSetup.BasicSwordsBonus.Value;
					((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level6);
					__result = level6;
				}
				else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect("blacks7ar_advance_swords"))
				{