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 BoatAdditions v1.4.2
BoatAdditions.dll
Decompiled a month 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.Reflection.Emit; 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 BoatAdditions.Functions; using HarmonyLib; using ItemManager; using JetBrains.Annotations; using LocalizationManager; using Microsoft.CodeAnalysis; using PieceManager; using ServerSync; using TMPro; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; 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.4.2")] [assembly: AssemblyInformationalVersion("1.0.0+fc3becea89c4301a659b4df269683f778b549739")] [assembly: AssemblyProduct("BoatAdditions")] [assembly: AssemblyTitle("BoatAdditions")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.4.2.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 BoatAdditions { [BepInPlugin("blacks7ar.BoatAdditions", "BoatAdditions", "1.4.2")] public class Plugin : BaseUnityPlugin { private const string modGUID = "blacks7ar.BoatAdditions"; public const string modName = "BoatAdditions"; public const string modAuthor = "blacks7ar"; public const string modVersion = "1.4.2"; public const string modLink = "https://valheim.thunderstore.io/package/blacks7ar/BoatAdditions/"; private static readonly Harmony _harmony = new Harmony("blacks7ar.BoatAdditions"); private static readonly ConfigSync _configSync = new ConfigSync("blacks7ar.BoatAdditions") { DisplayName = "BoatAdditions", CurrentVersion = "1.4.2", MinimumRequiredVersion = "1.4.2" }; private static ConfigEntry<BoatAdditions.Functions.Toggle> _serverConfigLocked; public static ConfigEntry<KeyboardShortcut> _anchorKey; public static ConfigEntry<BoatAdditions.Functions.Toggle> _enableCustomSail; public static Plugin _Instance; public ConfigEntry<T> config<T>(string group, string name, T value, ConfigDescription description, bool synchronizedConfig = 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 + (synchronizedConfig ? " [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 = synchronizedConfig; 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 //IL_006e: Unknown result type (might be due to invalid IL or missing references) _Instance = this; ((BaseUnityPlugin)this).Config.SaveOnConfigSet = false; Localizer.Load(); _serverConfigLocked = config("1- ServerSync", "Lock Configuration", BoatAdditions.Functions.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<BoatAdditions.Functions.Toggle>(_serverConfigLocked); _anchorKey = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("2- General", "Anchor Key", new KeyboardShortcut((KeyCode)102, (KeyCode[])(object)new KeyCode[1] { (KeyCode)304 }), "Hotkey combination to raise or drop anchors while hovering your mouse to the rudder"); _enableCustomSail = ((BaseUnityPlugin)this).Config.Bind<BoatAdditions.Functions.Toggle>("2- General", "Enable Custom Sail", BoatAdditions.Functions.Toggle.Off, "Enable/Disable my custom sail (blacks7ar logo).\n(NOTE: Needs a Logout to take effect.)"); ConfigSetup.Init(); SetupPrefabs.Init(); Assembly executingAssembly = Assembly.GetExecutingAssembly(); _harmony.PatchAll(executingAssembly); ((BaseUnityPlugin)this).Config.SaveOnConfigSet = true; ((BaseUnityPlugin)this).Config.Save(); } public void OnDestroy() { ((BaseUnityPlugin)this).Config.Save(); } } } namespace BoatAdditions.Patches { [HarmonyPatch(typeof(Container), "Awake")] public class ContainerPatch { private static void Postfix(Container __instance, ref Inventory ___m_inventory) { if (!((Object)(object)__instance == (Object)null) && ___m_inventory != null) { ref int width = ref ___m_inventory.m_width; ref int height = ref ___m_inventory.m_height; switch (__instance.m_name) { case "$bba_outrigger_karve_storage": width = ConfigSetup._outriggerKarveContainerWidth.Value; height = ConfigSetup._outriggerKarveContainerHeight.Value; break; case "$bba_outrigger_skeid": width = ConfigSetup._outriggerSkeidContainerWidth.Value; height = ConfigSetup._outriggerSkeidContainerHeight.Value; break; case "$bba_snekkja_storage": width = ConfigSetup._snekkjaContainerWidth.Value; height = ConfigSetup._snekkjaContainerHeight.Value; break; case "$bba_largeraft_cargo": width = ConfigSetup._largeRaftContainerWidth.Value; height = ConfigSetup._largeRaftContainerHeight.Value; break; case "$bba_knarr_storage": width = ConfigSetup._knarrContainerWidth.Value; height = ConfigSetup._knarrContainerHeight.Value; break; } } } } [HarmonyPatch] public class ShipControlsPatch { private static readonly int _isAnchored = StringExtensionMethods.GetStableHashCode("IsAnchored"); [HarmonyPostfix] [HarmonyPatch(typeof(ShipControlls), "Awake")] public static void Awake_Postfix(ShipControlls __instance) { if ((Object)(object)__instance == (Object)null || (Object)(object)__instance.m_ship == (Object)null || (Object)(object)__instance.m_nview == (Object)null || !__instance.m_nview.IsValid()) { return; } Rigidbody componentInParent = ((Component)__instance).gameObject.GetComponentInParent<Rigidbody>(); Piece componentInParent2 = ((Component)__instance).gameObject.GetComponentInParent<Piece>(); if (!((Object)(object)componentInParent == (Object)null) && !((Object)(object)componentInParent2 == (Object)null) && (componentInParent2.m_name.Contains("$ship_long") || componentInParent2.m_name.Contains("$ship_karve") || componentInParent2.m_name.Contains("$ship_raft") || componentInParent2.m_name.Contains("longship_ashlands") || componentInParent2.m_name.StartsWith("$bba_"))) { if (__instance.m_nview.GetZDO().GetBool(_isAnchored, false)) { componentInParent.constraints = (RigidbodyConstraints)10; } else { componentInParent.constraints = (RigidbodyConstraints)0; } } } [HarmonyPostfix] [HarmonyPatch(typeof(ShipControlls), "GetHoverText")] public static void GetHoverText_Postfix(ShipControlls __instance, ref string __result) { //IL_0037: 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_013c: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)__instance == (Object)null || (Object)(object)__instance.m_nview == (Object)null || !__instance.m_nview.IsValid()) { return; } Rigidbody componentInParent = ((Component)__instance).gameObject.GetComponentInParent<Rigidbody>(); Vector3 position = ((Component)__instance).transform.position; Piece componentInParent2 = ((Component)__instance).gameObject.GetComponentInParent<Piece>(); if ((Object)(object)componentInParent == (Object)null || (Object)(object)componentInParent2 == (Object)null || (!componentInParent2.m_name.Contains("$ship_long") && !componentInParent2.m_name.Contains("$ship_karve") && !componentInParent2.m_name.Contains("$ship_raft") && !componentInParent2.m_name.Contains("longship_ashlands") && !componentInParent2.m_name.StartsWith("$bba_"))) { return; } if (!__instance.m_nview.GetZDO().GetBool(_isAnchored, false)) { if (!__instance.InUseDistance((Humanoid)(object)Player.m_localPlayer)) { __result = Localization.instance.Localize("<color=grey>$piece_toofar</color>"); } __result += $"\n[<color=yellow><b>{Plugin._anchorKey.Value}</b></color>] Drop Anchors"; } else { if (!__instance.InUseDistance((Humanoid)(object)Player.m_localPlayer)) { __result = Localization.instance.Localize("<color=grey>$piece_toofar</color>"); } __result += $"\n[<color=yellow><b>{Plugin._anchorKey.Value}</b></color>] Raise Anchors"; } KeyboardShortcut value = Plugin._anchorKey.Value; if (((KeyboardShortcut)(ref value)).IsDown()) { if (!__instance.m_nview.GetZDO().GetBool(_isAnchored, false)) { __instance.m_nview.GetZDO().Set(_isAnchored, true); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("vfx_Place_wood_pole"), position, Quaternion.identity); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("sfx_build_hammer_metal"), position, Quaternion.identity); componentInParent.constraints = (RigidbodyConstraints)10; ZDOMan.instance.ForceSendZDO(ZNetView.Everybody, __instance.m_nview.GetZDO().m_uid); } else { __instance.m_nview.GetZDO().Set(_isAnchored, false); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("vfx_Place_wood_pole"), position, Quaternion.identity); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("sfx_build_hammer_metal"), position, Quaternion.identity); componentInParent.constraints = (RigidbodyConstraints)0; ZDOMan.instance.ForceSendZDO(ZNetView.Everybody, __instance.m_nview.GetZDO().m_uid); } } } } [HarmonyPatch] public class ShipPatch { [HarmonyPostfix] [HarmonyPatch(typeof(Ship), "Awake")] public static void Awake_Postfix(Ship __instance) { if ((Object)(object)__instance == (Object)null || !__instance.m_nview.IsValid()) { return; } string text = ((Component)__instance).gameObject.GetComponent<Piece>()?.m_name; if (text == null) { return; } switch (text.Length) { case 10: switch (text[5]) { case 'c': if (text == "$bba_canoe") { ShipStats.Canoe(__instance); } break; case 'k': if (text == "$bba_knarr") { ShipStats.Knarr(__instance); Helper.CustomSail(((Component)__instance).gameObject); } break; } break; case 20: switch (text[15]) { case 'k': if (text == "$bba_outrigger_karve") { ShipStats.OutriggerKarve(__instance); Helper.CustomSail(((Component)__instance).gameObject); } break; case 's': if (text == "$bba_outrigger_skeid") { ShipStats.OutriggerSkeid(__instance); Helper.CustomSail(((Component)__instance).gameObject); } break; } break; case 12: switch (text[5]) { case 's': if (text == "$bba_snekkja") { ShipStats.Snekkja(__instance); Helper.CustomSail(((Component)__instance).gameObject); } break; case 'd': if (text == "$bba_drakker") { ShipStats.Drakker(__instance); } break; } break; case 14: if (text == "$bba_largeraft") { ShipStats.LargeRaft(__instance); } break; case 13: if (text == "$bba_kvalsund") { ShipStats.Kvalsund(__instance); } break; } } [HarmonyPrefix] [HarmonyPatch(typeof(Ship), "RPC_Forward")] public static void RpcForward_Prefix(Ship __instance, long sender) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Invalid comparison between Unknown and I4 //IL_0068: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)__instance == (Object)null) && !((Object)(object)((Component)__instance).gameObject == (Object)null) && !((Object)(object)__instance.m_nview == (Object)null) && __instance.m_nview.IsValid()) { Piece component = ((Component)__instance).gameObject.GetComponent<Piece>(); if (!((Object)(object)component == (Object)null) && !(component.m_name != "$bba_canoe") && (int)__instance.m_speed != 1) { __instance.m_speed = (Speed)0; } } } } [HarmonyPatch(typeof(ZNetScene), "Awake")] public class ZNetScenePatch { public static void Postfix(ZNetScene __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 != "start") { return; } foreach (GameObject prefab in __instance.m_prefabs) { switch (((Object)prefab).name) { case "BBA_Canoe": ShipStats.Canoe(prefab.GetComponent<Ship>()); break; case "BBA_Knarr": ShipStats.Knarr(prefab.GetComponent<Ship>()); break; case "BBA_LargeRaft": ShipStats.LargeRaft(prefab.GetComponent<Ship>()); break; case "BBA_OutriggerKarve": ShipStats.OutriggerKarve(prefab.GetComponent<Ship>()); break; case "BBA_OutriggerSkeid": ShipStats.OutriggerSkeid(prefab.GetComponent<Ship>()); break; case "BBA_Snekkja": ShipStats.Snekkja(prefab.GetComponent<Ship>()); break; case "$bba_drakker": ShipStats.Drakker(prefab.GetComponent<Ship>()); break; case "$bba_kvalsund": ShipStats.Kvalsund(prefab.GetComponent<Ship>()); break; } } } } } namespace BoatAdditions.Functions { public class Anchor : MonoBehaviour, Hoverable { public Ship m_ship; public float m_maxUseRange = 10f; public ZNetView m_nview; public Rigidbody m_rigidBody; private static readonly int m_isAnchored = StringExtensionMethods.GetStableHashCode("IsAnchored"); public void Awake() { m_nview = ((Component)m_ship).GetComponent<ZNetView>(); m_rigidBody = ((Component)m_ship).GetComponent<Rigidbody>(); m_nview.Register<long>("UseAnchor", (Action<long, long>)RPC_UseAnchor); m_nview.Register<bool>("RequestAnchor", (Action<long, bool>)RPC_RequestAnchor); if (m_nview.IsValid()) { if (m_nview.GetZDO().GetBool(m_isAnchored, false)) { m_rigidBody.constraints = (RigidbodyConstraints)10; } else { m_rigidBody.constraints = (RigidbodyConstraints)0; } } } public bool UseItem(Humanoid user, ItemData item) { return false; } public string GetHoverText() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) KeyboardShortcut value = Plugin._anchorKey.Value; if (((KeyboardShortcut)(ref value)).IsDown()) { m_nview.InvokeRPC("UseAnchor", new object[1] { ((ZDOID)(ref ((Character)Player.m_localPlayer).m_nview.GetZDO().m_uid)).UserID }); } if (!m_nview.GetZDO().GetBool(m_isAnchored, false)) { if (!InUseDistance((Humanoid)(object)Player.m_localPlayer)) { return ""; } return Localization.instance.Localize($"\n[<color=yellow><b>{Plugin._anchorKey.Value}</b></color>] $drop_anchors"); } if (!InUseDistance((Humanoid)(object)Player.m_localPlayer)) { return ""; } return Localization.instance.Localize($"\n[<color=yellow><b>{Plugin._anchorKey.Value}</b></color>] $raise_anchors"); } public string GetHoverName() { return ""; } public void RPC_UseAnchor(long sender, long playerID) { if (m_nview.IsOwner() && m_ship.IsPlayerInBoat(playerID)) { if (GetUser() == playerID || !HaveValidUser()) { m_nview.InvokeRPC(sender, "RequestAnchor", new object[1] { true }); } else { m_nview.InvokeRPC(sender, "RequestAnchor", new object[1] { false }); } } } public void RPC_RequestAnchor(long sender, bool granted) { //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: 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) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)Player.m_localPlayer) && granted) { if (!m_nview.GetZDO().GetBool(m_isAnchored, false)) { m_nview.GetZDO().Set(m_isAnchored, true); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("vfx_Place_wood_pole"), ((Component)m_ship.m_shipControlls).transform.position, Quaternion.identity); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("sfx_build_hammer_metal"), ((Component)m_ship.m_shipControlls).transform.position, Quaternion.identity); m_rigidBody.constraints = (RigidbodyConstraints)10; } else { m_nview.GetZDO().Set(m_isAnchored, false); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("vfx_Place_wood_pole"), ((Component)m_ship.m_shipControlls).transform.position, Quaternion.identity); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("sfx_build_hammer_metal"), ((Component)m_ship.m_shipControlls).transform.position, Quaternion.identity); m_rigidBody.constraints = (RigidbodyConstraints)0; } } } public bool HaveValidUser() { long user = GetUser(); if (user != 0L) { return m_ship.IsPlayerInBoat(user); } return false; } public long GetUser() { if (m_nview.IsValid()) { return m_nview.GetZDO().GetLong(ZDOVars.s_user, 0L); } return 0L; } public bool InUseDistance(Humanoid human) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) return Vector3.Distance(((Component)human).transform.position, m_ship.m_shipControlls.m_attachPoint.position) < m_maxUseRange; } } public static class ConfigSetup { public static ConfigEntry<float> _canoeWaterLevelOffset; public static ConfigEntry<float> _canoeForceDistance; public static ConfigEntry<float> _canoeForce; public static ConfigEntry<float> _canoeDamping; public static ConfigEntry<float> _canoeDampingSideway; public static ConfigEntry<float> _canoeDampingForward; public static ConfigEntry<float> _canoeAngularDamping; public static ConfigEntry<float> _canoeDisableLevel; public static ConfigEntry<float> _canoeRudderSpeed; public static ConfigEntry<float> _canoeStearForceOffset; public static ConfigEntry<float> _canoeStearForce; public static ConfigEntry<float> _canoeStearVelForceFactor; public static ConfigEntry<float> _canoeBackwardForce; public static ConfigEntry<float> _canoeRudderRotationMax; public static ConfigEntry<float> _canoeMinWaterImpactForce; public static ConfigEntry<float> _canoeMinWaterImpactInterval; public static ConfigEntry<float> _canoeWaterImpactDamage; public static ConfigEntry<float> _canoeUpsideDownDmgInterval; public static ConfigEntry<float> _canoeUpsideDownDmg; public static ConfigEntry<float> _canoeHealthPoints; public static ConfigEntry<int> _knarrContainerWidth; public static ConfigEntry<int> _knarrContainerHeight; public static ConfigEntry<float> _knarrWaterLevelOffset; public static ConfigEntry<float> _knarrForceDistance; public static ConfigEntry<float> _knarrForce; public static ConfigEntry<float> _knarrDamping; public static ConfigEntry<float> _knarrDampingSideway; public static ConfigEntry<float> _knarrDampingForward; public static ConfigEntry<float> _knarrAngularDamping; public static ConfigEntry<float> _knarrDisableLevel; public static ConfigEntry<float> _knarrSailForceOffset; public static ConfigEntry<float> _knarrSailForceFactor; public static ConfigEntry<float> _knarrRudderSpeed; public static ConfigEntry<float> _knarrStearForceOffset; public static ConfigEntry<float> _knarrStearForce; public static ConfigEntry<float> _knarrStearVelForceFactor; public static ConfigEntry<float> _knarrBackwardForce; public static ConfigEntry<float> _knarrRudderRotationMax; public static ConfigEntry<float> _knarrMinWaterImpactForce; public static ConfigEntry<float> _knarrMinWaterImpactInterval; public static ConfigEntry<float> _knarrWaterImpactDamage; public static ConfigEntry<float> _knarrUpsideDownDmgInterval; public static ConfigEntry<float> _knarrUpsideDownDmg; public static ConfigEntry<float> _knarrHealthPoints; public static ConfigEntry<int> _largeRaftContainerWidth; public static ConfigEntry<int> _largeRaftContainerHeight; public static ConfigEntry<float> _largeRaftWaterLevelOffset; public static ConfigEntry<float> _largeRaftForceDistance; public static ConfigEntry<float> _largeRaftForce; public static ConfigEntry<float> _largeRaftDamping; public static ConfigEntry<float> _largeRaftDampingSideway; public static ConfigEntry<float> _largeRaftDampingForward; public static ConfigEntry<float> _largeRaftAngularDamping; public static ConfigEntry<float> _largeRaftDisableLevel; public static ConfigEntry<float> _largeRaftSailForceOffset; public static ConfigEntry<float> _largeRaftSailForceFactor; public static ConfigEntry<float> _largeRaftRudderSpeed; public static ConfigEntry<float> _largeRaftStearForceOffset; public static ConfigEntry<float> _largeRaftStearForce; public static ConfigEntry<float> _largeRaftStearVelForceFactor; public static ConfigEntry<float> _largeRaftBackwardForce; public static ConfigEntry<float> _largeRaftRudderRotationMax; public static ConfigEntry<float> _largeRaftMinWaterImpactForce; public static ConfigEntry<float> _largeRaftMinWaterImpactInterval; public static ConfigEntry<float> _largeRaftWaterImpactDamage; public static ConfigEntry<float> _largeRaftUpsideDownDmgInterval; public static ConfigEntry<float> _largeRaftUpsideDownDmg; public static ConfigEntry<float> _largeRaftHealthPoints; public static ConfigEntry<int> _outriggerKarveContainerWidth; public static ConfigEntry<int> _outriggerKarveContainerHeight; public static ConfigEntry<float> _outriggerKarveWaterLevelOffset; public static ConfigEntry<float> _outriggerKarveForceDistance; public static ConfigEntry<float> _outriggerKarveForce; public static ConfigEntry<float> _outriggerKarveDamping; public static ConfigEntry<float> _outriggerKarveDampingSideway; public static ConfigEntry<float> _outriggerKarveDampingForward; public static ConfigEntry<float> _outriggerKarveAngularDamping; public static ConfigEntry<float> _outriggerKarveDisableLevel; public static ConfigEntry<float> _outriggerKarveSailForceOffset; public static ConfigEntry<float> _outriggerKarveSailForceFactor; public static ConfigEntry<float> _outriggerKarveRudderSpeed; public static ConfigEntry<float> _outriggerKarveStearForceOffset; public static ConfigEntry<float> _outriggerKarveStearForce; public static ConfigEntry<float> _outriggerKarveStearVelForceFactor; public static ConfigEntry<float> _outriggerKarveBackwardForce; public static ConfigEntry<float> _outriggerKarveRudderRotationMax; public static ConfigEntry<float> _outriggerKarveMinWaterImpactForce; public static ConfigEntry<float> _outriggerKarveMinWaterImpactInterval; public static ConfigEntry<float> _outriggerKarveWaterImpactDamage; public static ConfigEntry<float> _outriggerKarveUpsideDownDmgInterval; public static ConfigEntry<float> _outriggerKarveUpsideDownDmg; public static ConfigEntry<float> _outriggerKarveHealthPoints; public static ConfigEntry<int> _outriggerSkeidContainerWidth; public static ConfigEntry<int> _outriggerSkeidContainerHeight; public static ConfigEntry<float> _outriggerSkeidWaterLevelOffset; public static ConfigEntry<float> _outriggerSkeidForceDistance; public static ConfigEntry<float> _outriggerSkeidForce; public static ConfigEntry<float> _outriggerSkeidDamping; public static ConfigEntry<float> _outriggerSkeidDampingSideway; public static ConfigEntry<float> _outriggerSkeidDampingForward; public static ConfigEntry<float> _outriggerSkeidAngularDamping; public static ConfigEntry<float> _outriggerSkeidDisableLevel; public static ConfigEntry<float> _outriggerSkeidSailForceOffset; public static ConfigEntry<float> _outriggerSkeidSailForceFactor; public static ConfigEntry<float> _outriggerSkeidRudderSpeed; public static ConfigEntry<float> _outriggerSkeidStearForceOffset; public static ConfigEntry<float> _outriggerSkeidStearForce; public static ConfigEntry<float> _outriggerSkeidStearVelForceFactor; public static ConfigEntry<float> _outriggerSkeidBackwardForce; public static ConfigEntry<float> _outriggerSkeidRudderRotationMax; public static ConfigEntry<float> _outriggerSkeidMinWaterImpactForce; public static ConfigEntry<float> _outriggerSkeidMinWaterImpactInterval; public static ConfigEntry<float> _outriggerSkeidWaterImpactDamage; public static ConfigEntry<float> _outriggerSkeidUpsideDownDmgInterval; public static ConfigEntry<float> _outriggerSkeidUpsideDownDmg; public static ConfigEntry<float> _outriggerSkeidHealthPoints; public static ConfigEntry<int> _snekkjaContainerWidth; public static ConfigEntry<int> _snekkjaContainerHeight; public static ConfigEntry<float> _snekkjaWaterLevelOffset; public static ConfigEntry<float> _snekkjaForceDistance; public static ConfigEntry<float> _snekkjaForce; public static ConfigEntry<float> _snekkjaDamping; public static ConfigEntry<float> _snekkjaDampingSideway; public static ConfigEntry<float> _snekkjaDampingForward; public static ConfigEntry<float> _snekkjaAngularDamping; public static ConfigEntry<float> _snekkjaDisableLevel; public static ConfigEntry<float> _snekkjaSailForceOffset; public static ConfigEntry<float> _snekkjaSailForceFactor; public static ConfigEntry<float> _snekkjaRudderSpeed; public static ConfigEntry<float> _snekkjaStearForceOffset; public static ConfigEntry<float> _snekkjaStearForce; public static ConfigEntry<float> _snekkjaStearVelForceFactor; public static ConfigEntry<float> _snekkjaBackwardForce; public static ConfigEntry<float> _snekkjaRudderRotationMax; public static ConfigEntry<float> _snekkjaMinWaterImpactForce; public static ConfigEntry<float> _snekkjaMinWaterImpactInterval; public static ConfigEntry<float> _snekkjaWaterImpactDamage; public static ConfigEntry<float> _snekkjaUpsideDownDmgInterval; public static ConfigEntry<float> _snekkjaUpsideDownDmg; public static ConfigEntry<float> _snekkjaHealthPoints; public static ConfigEntry<int> _drakkerContainerWidth; public static ConfigEntry<int> _drakkerContainerHeight; public static ConfigEntry<float> _drakkerWaterLevelOffset; public static ConfigEntry<float> _drakkerForceDistance; public static ConfigEntry<float> _drakkerForce; public static ConfigEntry<float> _drakkerDamping; public static ConfigEntry<float> _drakkerDampingSideway; public static ConfigEntry<float> _drakkerDampingForward; public static ConfigEntry<float> _drakkerAngularDamping; public static ConfigEntry<float> _drakkerDisableLevel; public static ConfigEntry<float> _drakkerSailForceOffset; public static ConfigEntry<float> _drakkerSailForceFactor; public static ConfigEntry<float> _drakkerRudderSpeed; public static ConfigEntry<float> _drakkerStearForceOffset; public static ConfigEntry<float> _drakkerStearForce; public static ConfigEntry<float> _drakkerStearVelForceFactor; public static ConfigEntry<float> _drakkerBackwardForce; public static ConfigEntry<float> _drakkerRudderRotationMax; public static ConfigEntry<float> _drakkerMinWaterImpactForce; public static ConfigEntry<float> _drakkerMinWaterImpactInterval; public static ConfigEntry<float> _drakkerWaterImpactDamage; public static ConfigEntry<float> _drakkerUpsideDownDmgInterval; public static ConfigEntry<float> _drakkerUpsideDownDmg; public static ConfigEntry<float> _drakkerHealthPoints; public static ConfigEntry<int> _kvalsundContainerWidth; public static ConfigEntry<int> _kvalsundContainerHeight; public static ConfigEntry<float> _kvalsundWaterLevelOffset; public static ConfigEntry<float> _kvalsundForceDistance; public static ConfigEntry<float> _kvalsundForce; public static ConfigEntry<float> _kvalsundDamping; public static ConfigEntry<float> _kvalsundDampingSideway; public static ConfigEntry<float> _kvalsundDampingForward; public static ConfigEntry<float> _kvalsundAngularDamping; public static ConfigEntry<float> _kvalsundDisableLevel; public static ConfigEntry<float> _kvalsundSailForceOffset; public static ConfigEntry<float> _kvalsundSailForceFactor; public static ConfigEntry<float> _kvalsundRudderSpeed; public static ConfigEntry<float> _kvalsundStearForceOffset; public static ConfigEntry<float> _kvalsundStearForce; public static ConfigEntry<float> _kvalsundStearVelForceFactor; public static ConfigEntry<float> _kvalsundBackwardForce; public static ConfigEntry<float> _kvalsundRudderRotationMax; public static ConfigEntry<float> _kvalsundMinWaterImpactForce; public static ConfigEntry<float> _kvalsundMinWaterImpactInterval; public static ConfigEntry<float> _kvalsundWaterImpactDamage; public static ConfigEntry<float> _kvalsundUpsideDownDmgInterval; public static ConfigEntry<float> _kvalsundUpsideDownDmg; public static ConfigEntry<float> _kvalsundHealthPoints; public static void Init() { Canoe(); Knarr(); LargeRaft(); OutriggerKarve(); OutriggerSkeid(); Snekkja(); Drakker(); Kvalsund(); } private static void Drakker() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Expected O, but got Unknown //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Expected O, but got Unknown //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Expected O, but got Unknown //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Expected O, but got Unknown //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Expected O, but got Unknown //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Expected O, but got Unknown //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Expected O, but got Unknown //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Expected O, but got Unknown //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Expected O, but got Unknown //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Expected O, but got Unknown //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Expected O, but got Unknown //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Expected O, but got Unknown //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0349: Expected O, but got Unknown //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Expected O, but got Unknown //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Expected O, but got Unknown //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Expected O, but got Unknown //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Expected O, but got Unknown _drakkerWaterLevelOffset = Plugin._Instance.config("Drakker", "Water Level Offset", 2.1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerForceDistance = Plugin._Instance.config("Drakker", "Force Distance", 3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerForce = Plugin._Instance.config("Drakker", "Force", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerDamping = Plugin._Instance.config("Drakker", "Damping", 0.1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerDampingSideway = Plugin._Instance.config("Drakker", "Damping Sideway", 0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerDampingForward = Plugin._Instance.config("Drakker", "Damping Forward", 0.002f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerAngularDamping = Plugin._Instance.config("Drakker", "Angular Damping", 0.95f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerDisableLevel = Plugin._Instance.config("Drakker", "Disable Level", -0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerSailForceOffset = Plugin._Instance.config("Drakker", "Sail Force Offset", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerSailForceFactor = Plugin._Instance.config("Drakker", "Sail Force Factor", 0.4f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerRudderSpeed = Plugin._Instance.config("Drakker", "Rudder Speed", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerStearForceOffset = Plugin._Instance.config("Drakker", "Stear Force Offset", -22f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerStearForce = Plugin._Instance.config("Drakker", "Stear Force", 1.75f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerStearVelForceFactor = Plugin._Instance.config("Drakker", "Stear Vel Force Factor", 1.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerBackwardForce = Plugin._Instance.config("Drakker", "Backward Force", 0.25f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerRudderRotationMax = Plugin._Instance.config("Drakker", "Rudder Rotation Max", 45f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerMinWaterImpactForce = Plugin._Instance.config("Drakker", "Min Water Impact Force", 5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerMinWaterImpactInterval = Plugin._Instance.config("Drakker", "Min Water Impact Interval", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerWaterImpactDamage = Plugin._Instance.config("Drakker", "Water Impact Damage", 10f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerUpsideDownDmgInterval = Plugin._Instance.config("Drakker", "Upside Down Dmg Interval", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerUpsideDownDmg = Plugin._Instance.config("Drakker", "Upside Down Dmg", 20f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _drakkerHealthPoints = Plugin._Instance.config("Drakker", "Health Points", 3000f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); } private static void Kvalsund() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Expected O, but got Unknown //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Expected O, but got Unknown //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Expected O, but got Unknown //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Expected O, but got Unknown //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Expected O, but got Unknown //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Expected O, but got Unknown //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Expected O, but got Unknown //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Expected O, but got Unknown //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Expected O, but got Unknown //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Expected O, but got Unknown //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Expected O, but got Unknown //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Expected O, but got Unknown //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0349: Expected O, but got Unknown //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Expected O, but got Unknown //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Expected O, but got Unknown //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Expected O, but got Unknown //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Expected O, but got Unknown _kvalsundWaterLevelOffset = Plugin._Instance.config("Kvalsund", "Water Level Offset", 2.1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundForceDistance = Plugin._Instance.config("Kvalsund", "Force Distance", 3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundForce = Plugin._Instance.config("Kvalsund", "Force", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundDamping = Plugin._Instance.config("Kvalsund", "Damping", 0.1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundDampingSideway = Plugin._Instance.config("Kvalsund", "Damping Sideway", 0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundDampingForward = Plugin._Instance.config("Kvalsund", "Damping Forward", 0.002f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundAngularDamping = Plugin._Instance.config("Kvalsund", "Angular Damping", 0.95f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundDisableLevel = Plugin._Instance.config("Kvalsund", "Disable Level", -0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundSailForceOffset = Plugin._Instance.config("Kvalsund", "Sail Force Offset", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundSailForceFactor = Plugin._Instance.config("Kvalsund", "Sail Force Factor", 0.3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundRudderSpeed = Plugin._Instance.config("Kvalsund", "Rudder Speed", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundStearForceOffset = Plugin._Instance.config("Kvalsund", "Stear Force Offset", -22f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundStearForce = Plugin._Instance.config("Kvalsund", "Stear Force", 1.75f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundStearVelForceFactor = Plugin._Instance.config("Kvalsund", "Stear Vel Force Factor", 1.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundBackwardForce = Plugin._Instance.config("Kvalsund", "Backward Force", 0.25f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundRudderRotationMax = Plugin._Instance.config("Kvalsund", "Rudder Rotation Max", 45f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundMinWaterImpactForce = Plugin._Instance.config("Kvalsund", "Min Water Impact Force", 5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundMinWaterImpactInterval = Plugin._Instance.config("Kvalsund", "Min Water Impact Interval", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundWaterImpactDamage = Plugin._Instance.config("Kvalsund", "Water Impact Damage", 10f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundUpsideDownDmgInterval = Plugin._Instance.config("Kvalsund", "Upside Down Dmg Interval", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundUpsideDownDmg = Plugin._Instance.config("Kvalsund", "Upside Down Dmg", 20f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _kvalsundHealthPoints = Plugin._Instance.config("Kvalsund", "Health Points", 3000f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); } private static void Canoe() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Expected O, but got Unknown //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Expected O, but got Unknown //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Expected O, but got Unknown //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Expected O, but got Unknown //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Expected O, but got Unknown //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Expected O, but got Unknown //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Expected O, but got Unknown //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Expected O, but got Unknown //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Expected O, but got Unknown //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Expected O, but got Unknown //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Expected O, but got Unknown //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Expected O, but got Unknown //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0349: Expected O, but got Unknown //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Expected O, but got Unknown //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: Expected O, but got Unknown _canoeWaterLevelOffset = Plugin._Instance.config("Canoe", "Water Level Offset", 1.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeForceDistance = Plugin._Instance.config("Canoe", "Force Distance", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeForce = Plugin._Instance.config("Canoe", "Force", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeDamping = Plugin._Instance.config("Canoe", "Damping", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeDampingSideway = Plugin._Instance.config("Canoe", "Damping Sideway", 0.15f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeDampingForward = Plugin._Instance.config("Canoe", "Damping Forward", 0.001f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeAngularDamping = Plugin._Instance.config("Canoe", "Angular Damping", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeDisableLevel = Plugin._Instance.config("Canoe", "Disable Level", -0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeRudderSpeed = Plugin._Instance.config("Canoe", "Rudder Speed", 1.8f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeStearForceOffset = Plugin._Instance.config("Canoe", "Steer Force Offset", -3.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeStearForce = Plugin._Instance.config("Canoe", "Steer Force", 0.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeStearVelForceFactor = Plugin._Instance.config("Canoe", "Steer Vel Force Factor", 0.18f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeBackwardForce = Plugin._Instance.config("Canoe", "Backward Force", 0.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeRudderRotationMax = Plugin._Instance.config("Canoe", "Rudder Rotation Max", 45f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeMinWaterImpactForce = Plugin._Instance.config("Canoe", "Min Water Impact Force", 4f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeMinWaterImpactInterval = Plugin._Instance.config("Canoe", "Min Water Impact Interval", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeWaterImpactDamage = Plugin._Instance.config("Canoe", "Water Impact Damage", 10f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeUpsideDownDmgInterval = Plugin._Instance.config("Canoe", "Upside Down Dmg Interval", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeUpsideDownDmg = Plugin._Instance.config("Canoe", "Upside Down Dmg", 20f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _canoeHealthPoints = Plugin._Instance.config("Canoe", "Health Points", 200f, new ConfigDescription("Canoes health points.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 5000f), Array.Empty<object>())); } private static void Knarr() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Expected O, but got Unknown //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Expected O, but got Unknown //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Expected O, but got Unknown //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Expected O, but got Unknown //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Expected O, but got Unknown //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Expected O, but got Unknown //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Expected O, but got Unknown //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Expected O, but got Unknown //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Expected O, but got Unknown //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Expected O, but got Unknown //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Expected O, but got Unknown //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Expected O, but got Unknown //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Expected O, but got Unknown //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Expected O, but got Unknown //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Expected O, but got Unknown //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Expected O, but got Unknown _knarrContainerWidth = Plugin._Instance.config("Knarr", "Storage Width", 8, new ConfigDescription("Knarr's storage row size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 8), Array.Empty<object>())); _knarrContainerHeight = Plugin._Instance.config("Knarr", "Storage Height", 4, new ConfigDescription("Knarr's storage column size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 4), Array.Empty<object>())); _knarrWaterLevelOffset = Plugin._Instance.config("Knarr", "Water Level Offset", 1.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrForceDistance = Plugin._Instance.config("Knarr", "Force Distance", 3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrForce = Plugin._Instance.config("Knarr", "Force", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrDamping = Plugin._Instance.config("Knarr", "Damping", 0.1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrDampingSideway = Plugin._Instance.config("Knarr", "Damping Sideway", 0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrDampingForward = Plugin._Instance.config("Knarr", "Damping Forward", 0.002f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrAngularDamping = Plugin._Instance.config("Knarr", "Angular Damping", 0.95f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrDisableLevel = Plugin._Instance.config("Knarr", "Disable Level", -0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrSailForceOffset = Plugin._Instance.config("Knarr", "Sail Force Offset", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrSailForceFactor = Plugin._Instance.config("Knarr", "Sail Force Factor", 0.12f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrRudderSpeed = Plugin._Instance.config("Knarr", "Rudder Speed", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrStearForceOffset = Plugin._Instance.config("Knarr", "Steer Force Offset", -22f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrStearForce = Plugin._Instance.config("Knarr", "Steer Force", 1.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrStearVelForceFactor = Plugin._Instance.config("Knarr", "Steer Vel Force Factor", 1.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrBackwardForce = Plugin._Instance.config("Knarr", "Backward Force", 0.35f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrRudderRotationMax = Plugin._Instance.config("Knarr", "Rudder Rotation Max", 45f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrMinWaterImpactForce = Plugin._Instance.config("Knarr", "Min Water Impact Force", 5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrMinWaterImpactInterval = Plugin._Instance.config("Knarr", "Min Water Impact Interval", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrWaterImpactDamage = Plugin._Instance.config("Knarr", "Water Impact Damage", 10f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrUpsideDownDmgInterval = Plugin._Instance.config("Knarr", "Upside Down Dmg Interval", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrUpsideDownDmg = Plugin._Instance.config("Knarr", "Upside Down Dmg", 20f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _knarrHealthPoints = Plugin._Instance.config("Knarr", "Health Points", 2000f, new ConfigDescription("Knarrs health points.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 5000f), Array.Empty<object>())); } private static void LargeRaft() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Expected O, but got Unknown //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Expected O, but got Unknown //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Expected O, but got Unknown //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Expected O, but got Unknown //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Expected O, but got Unknown //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Expected O, but got Unknown //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Expected O, but got Unknown //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Expected O, but got Unknown //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Expected O, but got Unknown //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Expected O, but got Unknown //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Expected O, but got Unknown //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Expected O, but got Unknown //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Expected O, but got Unknown //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Expected O, but got Unknown //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Expected O, but got Unknown //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Expected O, but got Unknown _largeRaftContainerWidth = Plugin._Instance.config("Large Raft", "Storage Width", 2, new ConfigDescription("Large Raft storage row size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 8), Array.Empty<object>())); _largeRaftContainerHeight = Plugin._Instance.config("Large Raft", "Storage Height", 2, new ConfigDescription("Large Raft storage column size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 4), Array.Empty<object>())); _largeRaftWaterLevelOffset = Plugin._Instance.config("Large Raft", "Water Level Offset", 1.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftForceDistance = Plugin._Instance.config("Large Raft", "Force Distance", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftForce = Plugin._Instance.config("Large Raft", "Force", 0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftDamping = Plugin._Instance.config("Large Raft", "Damping", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftDampingSideway = Plugin._Instance.config("Large Raft", "Damping Sideway", 0.1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftDampingForward = Plugin._Instance.config("Large Raft", "Damping Forward", 0.005f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftAngularDamping = Plugin._Instance.config("Large Raft", "Angular Damping", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftDisableLevel = Plugin._Instance.config("Large Raft", "Disable Level", -0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftSailForceOffset = Plugin._Instance.config("Large Raft", "Sail Force Offset", 0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftSailForceFactor = Plugin._Instance.config("Large Raft", "Sail Force Factor", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftRudderSpeed = Plugin._Instance.config("Large Raft", "Rudder Speed", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftStearForceOffset = Plugin._Instance.config("Large Raft", "Steer Force Offset", -2.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftStearForce = Plugin._Instance.config("Large Raft", "Steer Force", 0.3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftStearVelForceFactor = Plugin._Instance.config("Large Raft", "Steer Vel Force Factor", 0.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftBackwardForce = Plugin._Instance.config("Large Raft", "Backward Force", 0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftRudderRotationMax = Plugin._Instance.config("Large Raft", "Rudder Rotation Max", 45f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftMinWaterImpactForce = Plugin._Instance.config("Large Raft", "Min Water Impact Force", 3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftMinWaterImpactInterval = Plugin._Instance.config("LargeRaft", "Min Water Impact Interval", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftWaterImpactDamage = Plugin._Instance.config("Large Raft", "Water Impact Damage", 10f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftUpsideDownDmgInterval = Plugin._Instance.config("LargeRaft", "Upside Down Dmg Interval", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftUpsideDownDmg = Plugin._Instance.config("Large Raft", "Upside Down Dmg", 20f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _largeRaftHealthPoints = Plugin._Instance.config("Large Raft", "Health Points", 350f, new ConfigDescription("Large rafts health points.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 5000f), Array.Empty<object>())); } private static void OutriggerKarve() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Expected O, but got Unknown //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Expected O, but got Unknown //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Expected O, but got Unknown //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Expected O, but got Unknown //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Expected O, but got Unknown //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Expected O, but got Unknown //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Expected O, but got Unknown //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Expected O, but got Unknown //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Expected O, but got Unknown //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Expected O, but got Unknown //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Expected O, but got Unknown //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Expected O, but got Unknown //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Expected O, but got Unknown //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Expected O, but got Unknown //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Expected O, but got Unknown //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Expected O, but got Unknown _outriggerKarveContainerWidth = Plugin._Instance.config("Outrigger Karve", "Storage Width", 4, new ConfigDescription("Outrigger Karve storage row size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 8), Array.Empty<object>())); _outriggerKarveContainerHeight = Plugin._Instance.config("Outrigger Karve", "Storage Height", 3, new ConfigDescription("Outrigger Karve storage column size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 4), Array.Empty<object>())); _outriggerKarveWaterLevelOffset = Plugin._Instance.config("Outrigger Karve", "Water Level Offset", 1.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveForceDistance = Plugin._Instance.config("Outrigger Karve", "Force Distance", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveForce = Plugin._Instance.config("OutriggerKarve", "Force", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveDamping = Plugin._Instance.config("Outrigger Karve", "Damping", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveDampingSideway = Plugin._Instance.config("Outrigger Karve", "Damping Sideway", 0.15f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveDampingForward = Plugin._Instance.config("Outrigger Karve", "Damping Forward", 0.001f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveAngularDamping = Plugin._Instance.config("Outrigger Karve", "Angular Damping", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveDisableLevel = Plugin._Instance.config("Outrigger Karve", "Disable Level", -0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveSailForceOffset = Plugin._Instance.config("Outrigger Karve", "Sail Force Offset", 1.3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveSailForceFactor = Plugin._Instance.config("Outrigger Karve", "Sail Force Factor", 0.03f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveRudderSpeed = Plugin._Instance.config("Outrigger Karve", "Rudder Speed", 1.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveStearForceOffset = Plugin._Instance.config("Outrigger Karve", "Steer Force Offset", -3.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveStearForce = Plugin._Instance.config("Outrigger Karve", "Steer Force", 0.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveStearVelForceFactor = Plugin._Instance.config("Outrigger Karve", "Steer Vel Force Factor", 0.18f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveBackwardForce = Plugin._Instance.config("Outrigger Karve", "Backward Force", 0.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveRudderRotationMax = Plugin._Instance.config("Outrigger Karve", "Rudder Rotation Max", 45f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveMinWaterImpactForce = Plugin._Instance.config("Outrigger Karve", "Min Water Impact Force", 4f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveMinWaterImpactInterval = Plugin._Instance.config("Outrigger Karve", "Min Water Impact Interval", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveWaterImpactDamage = Plugin._Instance.config("Outrigger Karve", "Water Impact Damage", 10f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveUpsideDownDmgInterval = Plugin._Instance.config("Outrigger Karve", "Upside Down Dmg Interval", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveUpsideDownDmg = Plugin._Instance.config("Outrigger Karve", "Upside Down Dmg", 20f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerKarveHealthPoints = Plugin._Instance.config("Outrigger Karve", "Health Points", 500f, new ConfigDescription("Outrigger karves health points.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 5000f), Array.Empty<object>())); } private static void OutriggerSkeid() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Expected O, but got Unknown //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Expected O, but got Unknown //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Expected O, but got Unknown //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Expected O, but got Unknown //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Expected O, but got Unknown //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Expected O, but got Unknown //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Expected O, but got Unknown //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Expected O, but got Unknown //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Expected O, but got Unknown //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Expected O, but got Unknown //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Expected O, but got Unknown //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Expected O, but got Unknown //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Expected O, but got Unknown //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Expected O, but got Unknown //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Expected O, but got Unknown //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Expected O, but got Unknown _outriggerSkeidContainerWidth = Plugin._Instance.config("Outrigger Skeid", "Storage Width", 8, new ConfigDescription("Outrigger Skeid storage row size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 8), Array.Empty<object>())); _outriggerSkeidContainerHeight = Plugin._Instance.config("Outrigger Skeid", "Storage Height", 4, new ConfigDescription("Outrigger Skeid storage column size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 4), Array.Empty<object>())); _outriggerSkeidWaterLevelOffset = Plugin._Instance.config("Outrigger Skeid", "Water Level Offset", 1.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidForceDistance = Plugin._Instance.config("Outrigger Skeid", "Force Distance", 3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidForce = Plugin._Instance.config("OutriggerSkeid", "Force", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidDamping = Plugin._Instance.config("Outrigger Skeid", "Damping", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidDampingSideway = Plugin._Instance.config("Outrigger Skeid", "Damping Sideway", 0.15f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidDampingForward = Plugin._Instance.config("Outrigger Skeid", "Damping Forward", 0.001f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidAngularDamping = Plugin._Instance.config("Outrigger Skeid", "Angular Damping", 0.3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidDisableLevel = Plugin._Instance.config("Outrigger Skeid", "Disable Level", -0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidSailForceOffset = Plugin._Instance.config("Outrigger Skeid", "Sail Force Offset", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidSailForceFactor = Plugin._Instance.config("Outrigger Skeid", "Sail Force Factor", 0.1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidRudderSpeed = Plugin._Instance.config("Outrigger Skeid", "Rudder Speed", 1.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidStearForceOffset = Plugin._Instance.config("Outrigger Skeid", "Stear Force Offset", -8f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidStearForce = Plugin._Instance.config("Outrigger Skeid", "Stear Force", 1.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidStearVelForceFactor = Plugin._Instance.config("Outrigger Skeid", "Stear Vel Force Factor", 0.8f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidBackwardForce = Plugin._Instance.config("Outrigger Skeid", "Backward Force", 0.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidRudderRotationMax = Plugin._Instance.config("Outrigger Skeid", "Rudder Rotation Max", 45f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidMinWaterImpactForce = Plugin._Instance.config("Outrigger Skeid", "Min Water Impact Force", 5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidMinWaterImpactInterval = Plugin._Instance.config("Outrigger Skeid", "Min Water Impact Interval", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidWaterImpactDamage = Plugin._Instance.config("Outrigger Skeid", "Water Impact Damage", 10f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidUpsideDownDmgInterval = Plugin._Instance.config("Outrigger Skeid", "Upside Down Dmg Interval", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidUpsideDownDmg = Plugin._Instance.config("Outrigger Skeid", "Upside Down Dmg", 20f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _outriggerSkeidHealthPoints = Plugin._Instance.config("Outrigger Skeid", "Health Points", 1000f, new ConfigDescription("Outrigger skeids health points.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 5000f), Array.Empty<object>())); } private static void Snekkja() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Expected O, but got Unknown //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Expected O, but got Unknown //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Expected O, but got Unknown //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Expected O, but got Unknown //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Expected O, but got Unknown //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Expected O, but got Unknown //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Expected O, but got Unknown //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Expected O, but got Unknown //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Expected O, but got Unknown //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Expected O, but got Unknown //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Expected O, but got Unknown //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Expected O, but got Unknown //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Expected O, but got Unknown //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Expected O, but got Unknown //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Expected O, but got Unknown //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Expected O, but got Unknown _snekkjaContainerWidth = Plugin._Instance.config("Snekkja", "Storage Width", 7, new ConfigDescription("Snekkja storage row size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 8), Array.Empty<object>())); _snekkjaContainerHeight = Plugin._Instance.config("Snekkja", "Storage Height", 4, new ConfigDescription("Snekkja storage column size.\n(NOTE: Need to restart the game to take effect)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 4), Array.Empty<object>())); _snekkjaWaterLevelOffset = Plugin._Instance.config("Snekkja", "Water Level Offset", 1.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaForceDistance = Plugin._Instance.config("Snekkja", "Force Distance", 3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaForce = Plugin._Instance.config("Snekkja", "Force", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaDamping = Plugin._Instance.config("Snekkja", "Damping", 0.05f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaDampingSideway = Plugin._Instance.config("Snekkja", "Damping Sideway", 0.15f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaDampingForward = Plugin._Instance.config("Snekkja", "Damping Forward", 0.001f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaAngularDamping = Plugin._Instance.config("Snekkja", "Angular Damping", 0.3f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaDisableLevel = Plugin._Instance.config("Snekkja", "Disable Level", -0.5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaSailForceOffset = Plugin._Instance.config("Snekkja", "Sail Force Offset", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaSailForceFactor = Plugin._Instance.config("Snekkja", "Sail Force Factor", 0.1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaRudderSpeed = Plugin._Instance.config("Snekkja", "Rudder Speed", 1.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaStearForceOffset = Plugin._Instance.config("Snekkja", "Stear Force Offset", -8f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaStearForce = Plugin._Instance.config("Snekkja", "Stear Force", 1.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaStearVelForceFactor = Plugin._Instance.config("Snekkja", "Stear Vel Force Factor", 0.8f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaBackwardForce = Plugin._Instance.config("Snekkja", "Backward Force", 0.2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaRudderRotationMax = Plugin._Instance.config("Snekkja", "Rudder Rotation Max", 45f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaMinWaterImpactForce = Plugin._Instance.config("Snekkja", "Min Water Impact Force", 5f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaMinWaterImpactInterval = Plugin._Instance.config("Snekkja", "Min Water Impact Interval", 2f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaWaterImpactDamage = Plugin._Instance.config("Snekkja", "Water Impact Damage", 10f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaUpsideDownDmgInterval = Plugin._Instance.config("Snekkja", "Upside Down Dmg Interval", 1f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaUpsideDownDmg = Plugin._Instance.config("Snekkja", "Upside Down Dmg", 20f, new ConfigDescription(string.Empty, (AcceptableValueBase)null, Array.Empty<object>())); _snekkjaHealthPoints = Plugin._Instance.config("Snekkja", "Health Points", 1500f, new ConfigDescription("Snekkjas health points.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 5000f), Array.Empty<object>())); } } public static class Helper { public static void CustomSail(GameObject gameObject) { Renderer[] componentsInChildren = gameObject.GetComponentsInChildren<Renderer>(true); foreach (Renderer val in componentsInChildren) { if ((Object)(object)val == (Object)null) { continue; } Material[] sharedMaterials = val.sharedMaterials; foreach (Material val2 in sharedMaterials) { if (!((Object)(object)val2 == (Object)null) && ((Object)val2).name == "bba_sail_white") { val.material = SetupPrefabs._boatBundle.LoadAsset<Material>((Plugin._enableCustomSail.Value == Toggle.On) ? "bba_sail_white" : "bba_sail"); } } } } } public static class SetupPrefabs { public static AssetBundle _boatBundle; private const string _category = "BoatAdditions"; public static void Init() { _boatBundle = PiecePrefabManager.RegisterAssetBundle("shipbundle"); BoatYard(); BoatItems(); Boats(); Others(); } private static void BoatYard() { BuildPiece buildPiece = new BuildPiece(_boatBundle, "BBA_Boatyard"); buildPiece.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece.Category.Set("BoatAdditions"); buildPiece.RequiredItems.Add("FineWood", 120, recover: true); buildPiece.RequiredItems.Add("Stone", 16, recover: true); buildPiece.RequiredItems.Add("Resin", 22, recover: true); buildPiece.RequiredItems.Add("DeerHide", 12, recover: true); buildPiece.RequiredItems.Add("Bronze", 16, recover: true); buildPiece.SpecialProperties = new SpecialProperties { AdminOnly = false, NoConfig = false }; ShaderReplacer.Replace(buildPiece.Prefab); } private static void Boats() { BuildPiece buildPiece = new BuildPiece(_boatBundle, "BBA_Canoe"); buildPiece.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece.Category.Set("BoatAdditions"); buildPiece.RequiredItems.Add("BBA_SmallHull", 1, recover: true); buildPiece.RequiredItems.Add("Wood", 4, recover: true); buildPiece.RequiredItems.Add("Resin", 10, recover: true); buildPiece.SpecialProperties = new SpecialProperties { AdminOnly = false, NoConfig = false }; ShaderReplacer.Replace(buildPiece.Prefab); BuildPiece buildPiece2 = new BuildPiece(_boatBundle, "BBA_Knarr"); buildPiece2.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece2.Category.Set("BoatAdditions"); buildPiece2.RequiredItems.Add("BBA_LargeHull", 1, recover: true); buildPiece2.RequiredItems.Add("BBA_Mast", 1, recover: true); buildPiece2.RequiredItems.Add("YggdrasilWood", 40, recover: true); buildPiece2.RequiredItems.Add("BlackMetal", 50, recover: true); buildPiece2.RequiredItems.Add("Resin", 70, recover: true); ShaderReplacer.Replace(buildPiece2.Prefab); Helper.CustomSail(buildPiece2.Prefab); BuildPiece buildPiece3 = new BuildPiece(_boatBundle, "BBA_LargeRaft"); buildPiece3.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece3.Category.Set("BoatAdditions"); buildPiece3.RequiredItems.Add("Wood", 40, recover: true); buildPiece3.RequiredItems.Add("LeatherScraps", 12, recover: true); buildPiece3.RequiredItems.Add("DeerHide", 6, recover: true); buildPiece3.RequiredItems.Add("Resin", 15, recover: true); ShaderReplacer.Replace(buildPiece3.Prefab); BuildPiece buildPiece4 = new BuildPiece(_boatBundle, "BBA_OutriggerKarve"); buildPiece4.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece4.Category.Set("BoatAdditions"); buildPiece4.RequiredItems.Add("BBA_SmallHull", 1, recover: true); buildPiece4.RequiredItems.Add("BBA_Mast", 1, recover: true); buildPiece4.RequiredItems.Add("Wood", 12, recover: true); buildPiece4.RequiredItems.Add("Copper", 8, recover: true); buildPiece4.RequiredItems.Add("Resin", 20, recover: true); ShaderReplacer.Replace(buildPiece4.Prefab); Helper.CustomSail(buildPiece4.Prefab); BuildPiece buildPiece5 = new BuildPiece(_boatBundle, "BBA_OutriggerSkeid"); buildPiece5.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece5.Category.Set("BoatAdditions"); buildPiece5.RequiredItems.Add("BBA_LargeHull", 1, recover: true); buildPiece5.RequiredItems.Add("BBA_Mast", 1, recover: true); buildPiece5.RequiredItems.Add("Wood", 40, recover: true); buildPiece5.RequiredItems.Add("Iron", 10, recover: true); buildPiece5.RequiredItems.Add("Resin", 30, recover: true); ShaderReplacer.Replace(buildPiece5.Prefab); Helper.CustomSail(buildPiece5.Prefab); BuildPiece buildPiece6 = new BuildPiece(_boatBundle, "BBA_Snekkja"); buildPiece6.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece6.Category.Set("BoatAdditions"); buildPiece6.RequiredItems.Add("BBA_LargeHull", 1, recover: true); buildPiece6.RequiredItems.Add("BBA_Mast", 1, recover: true); buildPiece6.RequiredItems.Add("DeerHide", 30, recover: true); buildPiece6.RequiredItems.Add("Iron", 10, recover: true); buildPiece6.RequiredItems.Add("Resin", 50, recover: true); ShaderReplacer.Replace(buildPiece6.Prefab); Helper.CustomSail(buildPiece6.Prefab); BuildPiece buildPiece7 = new BuildPiece(_boatBundle, "BBA_Kvalsund"); buildPiece7.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece7.Category.Set("BoatAdditions"); buildPiece7.RequiredItems.Add("BBA_SturdyHull", 1, recover: true); buildPiece7.RequiredItems.Add("BBA_Mast", 1, recover: true); buildPiece7.RequiredItems.Add("YggdrasilWood", 84, recover: true); buildPiece7.RequiredItems.Add("Iron", 60, recover: true); buildPiece7.RequiredItems.Add("JuteRed", 32, recover: true); ShaderReplacer.Replace(buildPiece7.Prefab); BuildPiece buildPiece8 = new BuildPiece(_boatBundle, "BBA_Drakker"); buildPiece8.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece8.Category.Set("BoatAdditions"); buildPiece8.RequiredItems.Add("BBA_SturdyHull", 1, recover: true); buildPiece8.RequiredItems.Add("BBA_Mast", 1, recover: true); buildPiece8.RequiredItems.Add("BlackMetal", 92, recover: true); buildPiece8.RequiredItems.Add("Iron", 40, recover: true); buildPiece8.RequiredItems.Add("CeramicPlate", 36, recover: true); ShaderReplacer.Replace(buildPiece8.Prefab); Helper.CustomSail(buildPiece8.Prefab); } private static void BoatItems() { Item item = new Item(_boatBundle, "BBA_LargeHull"); item.Crafting.Add("BBA_Boatyard", 1); item.RequiredItems.Add("ElderBark", 60); item.RequiredItems.Add("FineWood", 60); item.RequiredItems.Add("Wood", 30); item.RequiredItems.Add("IronNails", 140); item.Configurable = Configurability.Recipe; ShaderReplacer.Replace(item.Prefab); Item item2 = new Item(_boatBundle, "BBA_Mast"); item2.Crafting.Add("BBA_Boatyard", 1); item2.RequiredItems.Add("DeerHide", 40); item2.RequiredItems.Add("LeatherScraps", 20); item2.RequiredItems.Add("RoundLog", 2); item2.RequiredItems.Add("Raspberry", 10); item2.Configurable = Configurability.Recipe; ShaderReplacer.Replace(item2.Prefab); Item item3 = new Item(_boatBundle, "BBA_SmallHull"); item3.Crafting.Add("BBA_Boatyard", 1); item3.RequiredItems.Add("FineWood", 30); item3.RequiredItems.Add("Wood", 15); item3.RequiredItems.Add("RoundLog", 4); item3.RequiredItems.Add("BronzeNails", 100); item3.Configurable = Configurability.Recipe; ShaderReplacer.Replace(item3.Prefab); Item item4 = new Item(_boatBundle, "BBA_SturdyHull"); item4.Crafting.Add("BBA_Boatyard", 1); item4.RequiredItems.Add("ElderBark", 76); item4.RequiredItems.Add("YggdrasilWood", 62); item4.RequiredItems.Add("FineWood", 48); item4.RequiredItems.Add("IronNails", 220); item4.Configurable = Configurability.Recipe; ShaderReplacer.Replace(item4.Prefab); } private static void Others() { PrefabManager.RegisterPrefab(_boatBundle, "BBA_CargoCrate"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_build_hammer_wood"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_chest_close"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_chest_open"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_gui_craftitem_workbench"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_gui_craftitem_workbench_end"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_gui_repairitem_workbench"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_ship_destroyed"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_ship_impact"); PrefabManager.RegisterPrefab(_boatBundle, "bba_sfx_ship_waterimpact"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_clubhit"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Damaged_Karve"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Damaged_Raft"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Damaged_VikingShip"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Destroyed_Karve"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Destroyed_Raft"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Destroyed_VikingShip"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Place_charcoalkiln"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Place_Karve"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Place_Raft"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Place_VikingShip"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_Place_workbench"); PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_SawDust"); ShaderReplacer.Replace(PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_WaterImpact_Karve")); ShaderReplacer.Replace(PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_WaterImpact_Raft")); ShaderReplacer.Replace(PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_WaterImpact_VikingShip")); ShaderReplacer.Replace(PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_watersplash_karve")); ShaderReplacer.Replace(PrefabManager.RegisterPrefab(_boatBundle, "bba_vfx_watersplash_longship")); } } public static class ShaderReplacer { private static readonly List<GameObject> GOToSwap; static ShaderReplacer() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown GOToSwap = new List<GameObject>(); new Harmony("blacks7ar.utilities.ShaderReplacer").Patch((MethodBase)