Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of TrophyBuffs v1.2.9
TrophyBuffs.dll
Decompiled 7 months ago
The result has been truncated due to the large size, download it to view full contents!
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: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("blacks7ar")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.2.9")] [assembly: AssemblyInformationalVersion("1.2.9")] [assembly: AssemblyProduct("TrophyBuffs")] [assembly: AssemblyTitle("TrophyBuffs")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.2.9.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace TrophyBuffs { [BepInPlugin("blacks7ar.TrophyBuffs", "TrophyBuffs", "1.2.9")] [BepInIncompatibility("gg.khairex.usefultrophies")] [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.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [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.9"; public const string modLink = "https://valheim.thunderstore.io/package/blacks7ar/TrophyBuffs/"; public static readonly ManualLogSource TBLogger = Logger.CreateLogSource("TrophyBuffs"); private static readonly Harmony _harmony = new Harmony("blacks7ar.TrophyBuffs"); private static readonly ConfigSync _configSync = new ConfigSync("blacks7ar.TrophyBuffs") { DisplayName = "TrophyBuffs", CurrentVersion = "1.2.9", MinimumRequiredVersion = "1.2.9", ModRequired = true }; 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; } public void Awake() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown Localizer.Load(); _instance = this; ((BaseUnityPlugin)this).Config.SaveOnConfigSet = false; _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(); ((BaseUnityPlugin)this).Config.SaveOnConfigSet = true; ((BaseUnityPlugin)this).Config.Save(); Assembly executingAssembly = Assembly.GetExecutingAssembly(); _harmony.PatchAll(executingAssembly); } private void OnDestroy() { ((BaseUnityPlugin)this).Config.Save(); } } } 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.Patches { [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>$btb_cantbeuse</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($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicAxesBonus.Value} $btb_axes</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyBlob": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicBlockingBonus.Value} $btb_blocking</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophySkeletonPoison": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicBloodMagicBonus.Value} $btb_bloodmagic</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyDraugrElite": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicBowsBonus.Value} $btb_bows</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyGreydwarfBrute": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicClubsBonus.Value} $btb_clubs</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyWraith": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicCrossbowsBonus.Value} $btb_crossbow</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophySurtling": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicElementalMagicBonus.Value} $btb_elementalmagic</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyGreydwarf": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicFistBonus.Value} $btb_fist</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyLeech": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicFishingBonus.Value} $btb_fishing</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyUlv": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicJumpBonus.Value} $btb_jump</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyDeer": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicKnivesBonus.Value} $btb_knives</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyFrostTroll": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicPickaxesBonus.Value} $btb_pickaxe</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); stringBuilder.Append(Plugin._hasLumberjackingMod ? $"\n$btb_skillbonus: <color=orange>+{BasicSetup.BasicWoodcuttingBonus.Value} $btb_lumberjacking</color>" : $"\n$btb_skillbonus: <color=orange>+{BasicSetup.BasicWoodcuttingBonus.Value} $btb_woodcutting</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyHare": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicRunBonus.Value} $btb_run</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyDraugrFem": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicPolearmsBonus.Value} $btb_polearms</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyBoar": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicSneakBonus.Value} $btb_sneak</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyGreydwarfShaman": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicSpearsBonus.Value} $btb_spears</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyNeck": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicSwimBonus.Value} $btb_swim</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophySkeleton": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{BasicSetup.BasicSwordsBonus.Value} $btb_swords</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{BasicSetup.BasicBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyDvergr": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceAxesBonus.Value} $btb_axes</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyGrowth": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceBlockingBonus.Value} $btb_blocking</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyCultist": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceBloodMagicBonus.Value} $btb_bloodmagic</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyHatchling": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceBowsBonus.Value} $btb_bows</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyGoblinBrute": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceClubsBonus.Value} $btb_clubs</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyDeathsquito": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceCrossbowsBonus.Value} $btb_crossbow</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyGoblinShaman": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceElementalMagicBonus.Value} $btb_elementalmagic</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyFenring": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceFistBonus.Value} $btb_fist</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophySerpent": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceFishingBonus.Value} $btb_fishing</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); stringBuilder.Append($"\n$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceSwimBonus.Value} $btb_swim</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyWolf": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceKnivesBonus.Value} $btb_knives</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophySGolem": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvancePickaxesBonus.Value} $btb_pickaxe</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyLox": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceRidingBonus.Value} $btb_riding</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyGjall": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceRunBonus.Value} $btb_run</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophySeekerBrute": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvancePolearmsBonus.Value} $btb_polearms</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyTick": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceSneakBonus.Value} $btb_sneak</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophySeeker": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceSpearsBonus.Value} $btb_spears</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyGoblin": stringBuilder.Append($"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceSwordsBonus.Value} $btb_swords</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); case "TrophyAbomination": stringBuilder.Append(Plugin._hasLumberjackingMod ? $"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceWoodcuttingBonus.Value} $btb_lumberjacking</color>" : $"$btb_skillbonus: <color=orange>+{AdvanceSetup.AdvanceWoodcuttingBonus.Value} $btb_woodcutting</color>"); stringBuilder.Append($"\n$btb_duration: <color=orange>{AdvanceSetup.AdvanceBuffCooldown.Value} min/s</color>"); return stringBuilder.ToString(); default: return __result; } } catch { return __result; } } } [HarmonyPatch] internal class ObjectDBPatch { [HarmonyPriority(700)] [HarmonyPostfix] [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.UpdateRegisters(); } } [HarmonyPriority(700)] [HarmonyPostfix] [HarmonyPatch(typeof(ObjectDB), "CopyOtherDB")] 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.UpdateRegisters(); } } } [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_0c0b: Unknown result type (might be due to invalid IL or missing references) //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0953: 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_011d: 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_0269: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_078d: Unknown result type (might be due to invalid IL or missing references) //IL_0cb9: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: 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_0c4f: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0997: Unknown result type (might be due to invalid IL or missing references) //IL_0af3: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_04af: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_07d1: Unknown result type (might be due to invalid IL or missing references) //IL_0cfd: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_0a01: Unknown result type (might be due to invalid IL or missing references) //IL_08a5: Unknown result type (might be due to invalid IL or missing references) //IL_0b5d: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_083b: Unknown result type (might be due to invalid IL or missing references) //IL_0cab: Unknown result type (might be due to invalid IL or missing references) //IL_0c93: Unknown result type (might be due to invalid IL or missing references) //IL_077f: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_03af: Unknown result type (might be due to invalid IL or missing references) //IL_0397: 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_09db: Unknown result type (might be due to invalid IL or missing references) //IL_0b4f: Unknown result type (might be due to invalid IL or missing references) //IL_0b37: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_04f3: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05a1: 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_0815: Unknown result type (might be due to invalid IL or missing references) //IL_0d59: Unknown result type (might be due to invalid IL or missing references) //IL_0d41: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_06d1: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_0a45: Unknown result type (might be due to invalid IL or missing references) //IL_08e9: Unknown result type (might be due to invalid IL or missing references) //IL_0ba1: Unknown result type (might be due to invalid IL or missing references) //IL_060b: Unknown result type (might be due to invalid IL or missing references) //IL_0897: Unknown result type (might be due to invalid IL or missing references) //IL_087f: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0a89: Unknown result type (might be due to invalid IL or missing references) //IL_0945: Unknown result type (might be due to invalid IL or missing references) //IL_092d: Unknown result type (might be due to invalid IL or missing references) //IL_0bfd: Unknown result type (might be due to invalid IL or missing references) //IL_0be5: Unknown result type (might be due to invalid IL or missing references) //IL_0667: Unknown result type (might be due to invalid IL or missing references) //IL_064f: 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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("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(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_swords"))) { level6 += (float)AdvanceSetup.AdvanceSwordsBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level6); __result = level6; } else { ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level6); __result = level6; } return; } case 12: { float level = __instance.GetSkill(skillType).m_level; if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_woodcutting"))) { level += (float)BasicSetup.BasicWoodcuttingBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level); __result = level; } else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_woodcutting"))) { level += (float)AdvanceSetup.AdvanceWoodcuttingBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level); __result = level; } else { ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level); __result = level; } return; } } switch (skillType - 100) { case 4: { float level17 = __instance.GetSkill(skillType).m_level; if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_fishing"))) { level17 += (float)BasicSetup.BasicFishingBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level17); __result = level17; } else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_fishing"))) { level17 += (float)AdvanceSetup.AdvanceFishingBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level17); __result = level17; } else { ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level17); __result = level17; } break; } case 0: { float level19 = __instance.GetSkill(skillType).m_level; if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_jump"))) { level19 += (float)BasicSetup.BasicJumpBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level19); __result = level19; } else { ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level19); __result = level19; } break; } case 10: { float level18 = __instance.GetSkill(skillType).m_level; if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_riding"))) { level18 += (float)AdvanceSetup.AdvanceRidingBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level18); __result = level18; } else { ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level18); __result = level18; } break; } case 2: { float level16 = __instance.GetSkill(skillType).m_level; if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_run"))) { level16 += (float)BasicSetup.BasicRunBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level16); __result = level16; } else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_run"))) { level16 += (float)AdvanceSetup.AdvanceRunBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level16); __result = level16; } else { ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level16); __result = level16; } break; } case 1: { float level20 = __instance.GetSkill(skillType).m_level; if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_sneak"))) { level20 += (float)BasicSetup.BasicSneakBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level20); __result = level20; } else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_sneak"))) { level20 += (float)AdvanceSetup.AdvanceSneakBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level20); __result = level20; } else { ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level20); __result = level20; } break; } case 3: { float level15 = __instance.GetSkill(skillType).m_level; if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_swim"))) { level15 += (float)BasicSetup.BasicSwimBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level15); __result = level15; } else if (((Character)__instance.m_player).GetSEMan().HaveStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_swim"))) { level15 += (float)AdvanceSetup.AdvanceSwimBonus.Value; ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level15); __result = level15; } else { ((Character)__instance.m_player).GetSEMan().ModifySkillLevel(skillType, ref level15); __result = level15; } break; } case 5: case 6: case 7: case 8: case 9: break; } } } [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); } } } } } namespace TrophyBuffs.Functions { internal abstract class AdvanceBuff { public static void AdvanceAxes(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_axes")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceAxesBonus.Value} $btb_axeapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceBlocking(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_blocking")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceBlockingBonus.Value} $btb_blockingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceBloodMagic(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_bloodmagic")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceBloodMagicBonus.Value} $btb_bloodmagicapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceBows(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_bows")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceBowsBonus.Value} $btb_bowsapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceClubs(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_clubs")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceClubsBonus.Value} $btb_clubsapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceCrossbows(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_crossbows")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceCrossbowsBonus.Value} $btb_crossbowapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceElementalMagic(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_elementalmagic")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceElementalMagicBonus.Value} $btb_elementalmagicapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceFist(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_fist")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceFistBonus.Value} $btb_fistapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceFishing(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_fishing")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceFishingBonus.Value} $btb_fishingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void Riding(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_riding")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceRidingBonus.Value} $btb_ridingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceKnives(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_knives")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceKnivesBonus.Value} $btb_knivesapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvancePickaxes(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_pickaxes")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvancePickaxesBonus.Value} $btb_pickaxeapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceRun(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_run")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceRunBonus.Value} $btb_runapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvancePolearms(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_polearms")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvancePolearmsBonus.Value} $btb_polearmapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceSneak(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_sneak")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceSneakBonus.Value} $btb_sneakapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceSpears(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_spears")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceSpearsBonus.Value} $btb_spearapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceSwim(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_swim")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceSwimBonus.Value} $btb_swimapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceSwords(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_swords")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceSwordsBonus.Value} $btb_swordapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void AdvanceWoodcutting(Humanoid humanoid) { //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_advance_woodcutting")); int num = (int)(AdvanceSetup.AdvanceBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; if (Plugin._hasLumberjackingMod) { statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceWoodcuttingBonus.Value} $btb_lumberjackingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; } else { statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{AdvanceSetup.AdvanceWoodcuttingBonus.Value} $btb_woodcuttingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; } ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } } internal abstract class BasicBuff { public static void BasicAxes(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_axes")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicAxesBonus.Value} $btb_axeapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicBlocking(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_blocking")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicBlockingBonus.Value} $btb_blockingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicBloodMagic(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_bloodmagic")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicBloodMagicBonus.Value} $btb_bloodmagicapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicBows(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_bows")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicBowsBonus.Value} $btb_bowsapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicClubs(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_clubs")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicClubsBonus.Value} $btb_clubsapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicCrossbows(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_crossbows")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicCrossbowsBonus.Value} $btb_crossbowapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicElementalMagic(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_elementalmagic")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicElementalMagicBonus.Value} $btb_elementalmagicapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicFist(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_fist")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicFistBonus.Value} $btb_fistapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicFishing(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_fishing")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicFishingBonus.Value} $btb_fishingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void Jump(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_jump")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicJumpBonus.Value} $btb_jumpapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicKnives(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_knives")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicKnivesBonus.Value} $btb_knivesapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicPickaxes(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_pickaxes")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicPickaxesBonus.Value} $btb_pickaxeapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicRun(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_run")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicRunBonus.Value} $btb_runapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicPolearms(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_polearms")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicPolearmsBonus.Value} $btb_polearmapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicSneak(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_sneak")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicSneakBonus.Value} $btb_sneakapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicSpears(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_spears")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicSpearsBonus.Value} $btb_spearapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicSwim(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_swim")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicSwimBonus.Value} $btb_swimapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicSwords(Humanoid humanoid) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_swords")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicSwordsBonus.Value} $btb_swordapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } public static void BasicWoodcutting(Humanoid humanoid) { //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) StatusEffect statusEffect = ObjectDB.instance.GetStatusEffect(StringExtensionMethods.GetStableHashCode("blacks7ar_basic_woodcutting")); int num = (int)(BasicSetup.BasicBuffCooldown.Value * 60.0); statusEffect.m_ttl = num; if (Plugin._hasLumberjackingMod) { statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicWoodcuttingBonus.Value} $btb_lumberjackingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; } else { statusEffect.m_startMessageType = (MessageType)2; statusEffect.m_startMessage = $"<size=28>{statusEffect.m_name} $btb_buffstarted, +{BasicSetup.BasicWoodcuttingBonus.Value} $btb_woodcuttingapplied</size>"; statusEffect.m_stopMessageType = (MessageType)2; statusEffect.m_stopMessage = "<size=28>" + statusEffect.m_name + " $btb_bufffaded</size>"; } ((Character)humanoid).GetSEMan().AddStatusEffect(statusEffect, false, 0, 0f); } } internal abstract class CreateBuffs { public static void Init(ObjectDB objectDB) { objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_axes", "$btb_basicaxe", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "axe_stone")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_axes", "$btb_advancedaxe", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "axe_iron")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_blocking", "$btb_basicblocking", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "shield_wood0")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_blocking", "$btb_advancedblocking", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "shield_ironbuckler")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_bloodmagic", "$btb_basicbloodmagic", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "blood_magic")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_bloodmagic", "$btb_advancedbloodmagic", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "blood_magic")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_bows", "$btb_basicbow", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "bow")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_bows", "$btb_advancedbow", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "bow_huntsman")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_clubs", "$btb_basicclub", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "club")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_clubs", "$btb_advancedclub", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "MaceIron")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_crossbows", "$btb_basiccrossbow", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "crossbow_arbalest")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_crossbows", "$btb_advancedcrossbow", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "crossbow_arbalest")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_elementalmagic", "$btb_basicelementalmagic", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "elemental_magic")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_elementalmagic", "$btb_advancedelementalmagic", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "elemental_magic")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_fist", "$btb_basicfist", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "hands")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_fist", "$btb_advancedfist", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "FistFenringClaw")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_fishing", "$btb_basicfishing", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "fishingrod")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_fishing", "$btb_advancedfishing", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "fishingrod")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_jump", "$btb_basicjump", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_jump")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_knives", "$btb_basicknives", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "knife_flint")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_knives", "$btb_advancedknives", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "knife_chitin")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_pickaxes", "$btb_basicpickaxe", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "pickaxe_stone")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_pickaxes", "$btb_advancedpickaxe", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "pickaxe_iron")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_riding", "$btb_basicriding", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "SadleLox")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_run", "$btb_basicrun", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_run")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_run", "$btb_advancedrun", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_run")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_polearms", "$btb_basicpolearm", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "AtgeirBronze")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_polearms", "$btb_advancedpolearm", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "AtgeirIron")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_sneak", "$btb_basicsneak", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_sneak")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_sneak", "$btb_advancedsneak", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_sneak")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_spears", "$btb_basicspear", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "SpearFlint")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_spears", "$btb_advancedspear", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "SpearCarapace")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_swim", "$btb_basicswim", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_swim")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_swim", "$btb_advancedswim", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_swim")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_swords", "$btb_basicsword", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "SwordBronze")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_swords", "$btb_advancedsword", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "SwordMistwalker")))); if (Plugin._hasLumberjackingMod) { objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_woodcutting", "$btb_basiclumberjacking", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_woodcutting")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_woodcutting", "$btb_advancedlumberjacking", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_woodcutting")))); } else { objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_basic_woodcutting", "$btb_basicwoodcutting", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_woodcutting")))); objectDB.m_StatusEffects.Add((StatusEffect)(object)Helper.CreateStatusEffects("blacks7ar_advance_woodcutting", "$btb_advancedwoodcutting", Enumerable.LastOrDefault((IEnumerable<Sprite>)Resources.FindObjectsOfTypeAll<Sprite>(), (Func<Sprite, bool>)((Sprite x) => ((Object)x).name == "skill_woodcutting")))); } } } internal abstract class EnhancedTrophies { private static ZNetScene zScene => ZNetScene.instance; public static void Init(ObjectDB objectDB) { Abomination(objectDB); Blob(objectDB); Boar(objectDB); Cultist(objectDB); Deathsquito(objectDB); Deer(objectDB); Draugr(objectDB); DraugrElite(objectDB); DraugrFem(objectDB); Dvergr(objectDB); Fenring(objectDB); FrostTroll(objectDB); Gjall(objectDB); Goblin(ob