Please disclose if any significant portion of your mod was created 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 Skill Cap Mod v1.0.0
ValheimSkillCapMod.dll
Decompiled 3 hours agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Jotunn.Configs; using Jotunn.Entities; using Jotunn.Managers; using Jotunn.Utils; using UnityEngine; using UnityEngine.Experimental.Rendering; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("ValheimSkillCapMod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ValheimSkillCapMod")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("19F0E6BA-DE2B-4504-9801-0F9360E3D9EB")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace MyBepInExPlugin; [BepInPlugin("com.example.GUID", "MyPlugin", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Main : BaseUnityPlugin { [HarmonyPatch] private static class ChangeRaiseSkillMethod { public static float worldExpModifier = 1f; private static GameObject _diablo; [HarmonyPrefix] [HarmonyPatch(typeof(Skills), "RaiseSkill")] public static bool RaiseSkill(Skills __instance, SkillType skillType, float factor = 1f) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0012: Unknown result type (might be due to invalid IL or missing references) if ((int)skillType == 0) { return false; } float skillLevel = __instance.GetSkillLevel(skillType); float num = skillLevel; float num2 = num; if (num2 >= 10f && num2 < 20f) { if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_eikthyr")) { return false; } } else { float num3 = num2; if (num3 >= 20f && num3 < 30f) { if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_gdking")) { return false; } } else { float num4 = num2; if (num4 >= 30f && num4 < 40f) { if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_bonemass")) { return false; } } else { float num5 = num2; if (num5 >= 40f && num5 < 50f) { if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_dragon")) { return false; } } else { float num6 = num2; if (num6 >= 50f && num6 < 60f) { if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_goblinking")) { return false; } } else { float num7 = num2; if (num7 >= 60f && num7 < 70f) { if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_queen")) { return false; } } else { float num8 = num2; if (num8 >= 70f && num8 < 80f) { if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_fader")) { return false; } } else { float num9 = num2; if (num9 >= 80f && num9 < 90f && !ZoneSystem.instance.GetGlobalKeys().Contains("defeated_jotun")) { return false; } } } } } } } } return true; } [HarmonyPrefix] [HarmonyPatch(typeof(Skills), "OnDeath")] public static bool DoNotLowerSkills() { return false; } [HarmonyPrefix] [HarmonyPatch(typeof(Character), "OnDeath")] public static void IncreaseWorldExp(Character __instance) { if (__instance.IsBoss()) { worldExpModifier += 0.2f; } } [HarmonyPostfix] [HarmonyPatch(typeof(Game), "UpdateWorldRates")] public static void ForceSetWorldExpRate() { Game.m_skillGainRate = worldExpModifier; } [HarmonyPatch(typeof(Trader), "Start")] [HarmonyPrefix] public static void SwapHaldor(Trader __instance) { __instance.m_items = PrefabManager.Instance.GetPrefab("newhaldor").GetComponent<Trader>().m_items; } [HarmonyPostfix] [HarmonyPatch(typeof(Player), "UpdateCover")] public static void HasWaxedCape(Player __instance) { if (__instance.GetMaxCarryWeight() % 2f == 1f) { Type type = ((object)__instance).GetType(); FieldInfo field = type.GetField("m_underRoof", BindingFlags.Instance | BindingFlags.NonPublic); field.SetValue(__instance, true); } } [HarmonyPrefix] [HarmonyPatch(typeof(Beehive), "RPC_Extract")] public static void GenerateWax(Beehive __instance) { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) CustomItem item = ItemManager.Instance.GetItem("wax"); ItemDrop itemDrop = item.ItemDrop; Random random = new Random(); MethodInfo method = typeof(Beehive).GetMethod("GetHoneyLevel", BindingFlags.Instance | BindingFlags.NonPublic); int num = (int)method.Invoke(__instance, Array.Empty<object>()); if (num <= 0) { return; } for (int i = 0; i < num; i++) { if (random.Next(10) == 0) { __instance.m_spawnEffect.Create(__instance.m_spawnPoint.position, Quaternion.identity, (Transform)null, 1f, -1); Vector3 position = __instance.m_spawnPoint.position; ItemDrop component = ((Component)Object.Instantiate<ItemDrop>(itemDrop, position, Quaternion.identity)).GetComponent<ItemDrop>(); if ((Object)(object)component != (Object)null) { component.SetStack(Game.instance.ScaleDrops(item.ItemDrop.m_itemData, 1)); } } } } [HarmonyPostfix] [HarmonyPatch(typeof(Minimap), "Awake")] private static void OnAwake() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown _diablo = new GameObject(); CustomBoiiiii customBoiiiii = _diablo.AddComponent<CustomBoiiiii>(); } [HarmonyPrefix] [HarmonyPatch(typeof(Minimap), "OnDestroy")] private static void OnDestroy() { Object.Destroy((Object)(object)_diablo); RenderPipelineManager.beginCameraRendering -= OnRender; } private static void OnRender(ScriptableRenderContext context, Camera camera) { } } private class CustomBoiiiii : MonoBehaviour { private static GameObject _targetToRender; private static List<Renderer> _renderers = new List<Renderer>(); private static Material _postProcessMaterial; private static Texture2D tex; private void Awake() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0065: Unknown result type (might be due to invalid IL or missing references) Shader val = Shader.Find("Sprites/Default"); _postProcessMaterial = new Material(val); _targetToRender = Minimap.instance.m_largeRoot; Camera.onPostRender = (CameraCallback)Delegate.Combine((Delegate?)(object)Camera.onPostRender, (Delegate?)new CameraCallback(OnPostRenderTamere)); tex = new Texture2D(8, 8, (TextureFormat)4, false); for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { tex.SetPixel(i, j, Color.red); } } tex.Apply(); } private void OnDestroy() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown Camera.onPostRender = (CameraCallback)Delegate.Remove((Delegate?)(object)Camera.onPostRender, (Delegate?)new CameraCallback(OnPostRenderTamere)); } private void OnPostRenderTamere(Camera camera) { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) RenderTexture temporary = RenderTexture.GetTemporary(1024, 1024, 0, (GraphicsFormat)8); List<Renderer> list = new List<Renderer>(); _targetToRender.GetComponentsInChildren<Renderer>(true, list); CommandBuffer val = new CommandBuffer(); val.SetRenderTarget(RenderTargetIdentifier.op_Implicit((Texture)(object)temporary)); foreach (Renderer item in list) { val.DrawRenderer(item, (Material)null); } Graphics.ExecuteCommandBuffer(val); Graphics.Blit((Texture)(object)temporary, camera.activeTexture, _postProcessMaterial); Graphics.DrawTexture(new Rect(0f, 0f, 1600f, 900f), (Texture)(object)temporary); RenderTexture.ReleaseTemporary(temporary); } } private const string pluginGUID = "com.example.GUID"; private const string pluginName = "MyPlugin"; private const string pluginVersion = "1.0.0"; private readonly Harmony HarmonyInstance = new Harmony("com.example.GUID"); public static ManualLogSource logger = Logger.CreateLogSource("MyPlugin"); public AssetBundle waxAsset; public GameObject waxPrefab; public AssetBundle capesBundle; public GameObject capeDeer; public GameObject capeTroll; public GameObject capeWolfWaterproof; public GameObject capeLoxWaterproof; public GameObject capeLinenWaterproof; public GameObject capeFeatherWaterproof; public GameObject capeAsksvinWaterproof; public GameObject capeAshWaterproof; public AssetBundle newHaldorAssetBundle; public GameObject newHaldor; public AssetBundle foodsAssetBundle; public void Awake() { Assembly executingAssembly = Assembly.GetExecutingAssembly(); HarmonyInstance.PatchAll(executingAssembly); LoadAssets(); AddRecipes(); PrefabManager.OnVanillaPrefabsAvailable += CreateWax; PrefabManager.OnVanillaPrefabsAvailable += CreateCapes; PrefabManager.OnVanillaPrefabsAvailable += AddClonedItems; PrefabManager.OnVanillaPrefabsAvailable += FixShaders; PrefabManager.OnVanillaPrefabsAvailable += CreateNewHaldor; } private void LoadAssets() { string location = Assembly.GetExecutingAssembly().Location; location = location.Substring(0, location.Length - 22); location = location.Replace('\\', '/'); string text = location; string text2 = location; string text3 = location; string text4 = location; waxAsset = AssetUtils.LoadAssetBundle(text += "wax"); waxPrefab = waxAsset.LoadAsset<GameObject>("wax"); capesBundle = AssetUtils.LoadAssetBundle(text2 += "capes"); capeDeer = capesBundle.LoadAsset<GameObject>("capeDeer"); capeTroll = capesBundle.LoadAsset<GameObject>("capeTroll"); capeWolfWaterproof = capesBundle.LoadAsset<GameObject>("capeWolfWaterproof"); capeLoxWaterproof = capesBundle.LoadAsset<GameObject>("capeLoxWaterproof"); capeLinenWaterproof = capesBundle.LoadAsset<GameObject>("capeLinenWaterproof"); capeFeatherWaterproof = capesBundle.LoadAsset<GameObject>("capeFeatherWaterproof"); capeAsksvinWaterproof = capesBundle.LoadAsset<GameObject>("capeAsksvinWaterproof"); capeAshWaterproof = capesBundle.LoadAsset<GameObject>("capeAshWaterproof"); newHaldorAssetBundle = AssetUtils.LoadAssetBundle(text3 += "newhaldor"); newHaldor = newHaldorAssetBundle.LoadAsset<GameObject>("newhaldor"); foodsAssetBundle = AssetUtils.LoadAssetBundle(text4 += "foods"); } private void AddClonedItems() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Expected O, but got Unknown //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Expected O, but got Unknown //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Expected O, but got Unknown //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Expected O, but got Unknown //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Expected O, but got Unknown //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Expected O, but got Unknown //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Expected O, but got Unknown //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Expected O, but got Unknown //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Expected O, but got Unknown //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Expected O, but got Unknown //IL_034e: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Expected O, but got Unknown //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Expected O, but got Unknown //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Expected O, but got Unknown //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Expected O, but got Unknown //IL_04c6: Unknown result type (might be due to invalid IL or missing references) //IL_04cd: Expected O, but got Unknown //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Expected O, but got Unknown //IL_054d: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Expected O, but got Unknown //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Expected O, but got Unknown //IL_05fc: Unknown result type (might be due to invalid IL or missing references) //IL_0603: Expected O, but got Unknown //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Expected O, but got Unknown //IL_06f8: Unknown result type (might be due to invalid IL or missing references) //IL_06ff: Expected O, but got Unknown //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Expected O, but got Unknown //IL_0790: Unknown result type (might be due to invalid IL or missing references) //IL_07b9: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Expected O, but got Unknown //IL_0829: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Expected O, but got Unknown //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_0895: Expected O, but got Unknown //IL_08f8: Unknown result type (might be due to invalid IL or missing references) //IL_08ff: Expected O, but got Unknown //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0913: Expected O, but got Unknown //IL_0939: Unknown result type (might be due to invalid IL or missing references) //IL_0940: Expected O, but got Unknown //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0954: Expected O, but got Unknown //IL_09ae: Unknown result type (might be due to invalid IL or missing references) //IL_09b5: Expected O, but got Unknown //IL_09c2: Unknown result type (might be due to invalid IL or missing references) //IL_09c9: Expected O, but got Unknown //IL_0a07: Unknown result type (might be due to invalid IL or missing references) //IL_0a0e: Expected O, but got Unknown //IL_0a92: Unknown result type (might be due to invalid IL or missing references) //IL_0a99: Expected O, but got Unknown //IL_0ab0: Unknown result type (might be due to invalid IL or missing references) //IL_0ab7: Expected O, but got Unknown //IL_0ace: Unknown result type (might be due to invalid IL or missing references) //IL_0ad5: Expected O, but got Unknown //IL_0aec: Unknown result type (might be due to invalid IL or missing references) //IL_0af3: Expected O, but got Unknown //IL_0b0a: Unknown result type (might be due to invalid IL or missing references) //IL_0b11: Expected O, but got Unknown //IL_0b28: Unknown result type (might be due to invalid IL or missing references) //IL_0b2f: Expected O, but got Unknown //IL_0b46: Unknown result type (might be due to invalid IL or missing references) //IL_0b4d: Expected O, but got Unknown //IL_0b64: Unknown result type (might be due to invalid IL or missing references) //IL_0b6b: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.Name = "capeDeerHideCopy"; CustomItem val2 = new CustomItem("CapeDeerHideCopy", "CapeDeerHide", val); ItemManager.Instance.AddItem(val2); ItemConfig val3 = new ItemConfig(); val3.Name = "capeWolfCopy"; CustomItem val4 = new CustomItem("CapeWolfCopy", "CapeWolf", val3); ItemManager.Instance.AddItem(val4); PieceConfig val5 = new PieceConfig(); val5.Name = "infiniteWoodTorch"; val5.AddRequirement("Resin", 20, true); val5.AddRequirement("Wood", 2, true); PieceConfig val6 = new PieceConfig(); val6.Name = "infiniteIronTorch"; val6.AddRequirement("Resin", 20, true); val6.AddRequirement("Iron", 2, true); PieceConfig val7 = new PieceConfig(); val7.Name = "infiniteGuckTorch"; val7.AddRequirement("GreydwarfEye", 20, true); val7.AddRequirement("Iron", 2, true); PieceConfig val8 = new PieceConfig(); val8.Name = "infiniteEyeTorch"; val8.AddRequirement("Guck", 20, true); val8.AddRequirement("Iron", 2, true); CustomPiece val9 = new CustomPiece("InfiniteWoodTorch", "piece_groundtorch_wood", val5); val9.PieceTable = PieceTables.Hammer; PieceManager.Instance.AddPiece(val9); CustomPiece val10 = new CustomPiece("InfiniteIronTorch", "piece_groundtorch", val6); val10.PieceTable = PieceTables.Hammer; PieceManager.Instance.AddPiece(val10); CustomPiece val11 = new CustomPiece("InfiniteGuckTorch", "piece_groundtorch_green", val7); val11.PieceTable = PieceTables.Hammer; PieceManager.Instance.AddPiece(val11); CustomPiece val12 = new CustomPiece("InfiniteEyeTorch", "piece_groundtorch_blue", val8); val12.PieceTable = PieceTables.Hammer; PieceManager.Instance.AddPiece(val12); PieceConfig val13 = new PieceConfig(); val13.Name = "infiniteSconce"; val13.AddRequirement("Copper", 2, true); val13.AddRequirement("Wood", 2, true); val13.AddRequirement("Resin", 20, true); CustomPiece val14 = new CustomPiece("InfiniteSconce", "piece_walltorch", val13); val14.PieceTable = PieceTables.Hammer; PieceManager.Instance.AddPiece(val14); ItemConfig val15 = new ItemConfig(); val15.Name = "Bone Crossbow"; val15.Description = "Withered bones waster."; val15.CraftingStation = CraftingStations.Forge; val15.AddRequirement("RoundLog", 15, 5); val15.AddRequirement("Iron", 5, 2); val15.AddRequirement("Root", 1, 1); val15.AddRequirement("BoneFragments", 5, 5); val15.RepairStation = CraftingStations.Forge; CustomItem val16 = new CustomItem("BoneCrossbow", "CrossbowArbalest", val15); val16.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 150f; val16.ItemDrop.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 5f; val16.ItemDrop.m_itemData.m_shared.m_icons[0] = newHaldorAssetBundle.LoadAsset<Sprite>("BoneCrossbow"); ItemManager.Instance.AddItem(val16); ItemConfig val17 = new ItemConfig(); val17.Name = "Withered Bone Bolt"; val17.Description = "More frail than it's standard bone counterpart, but much less expensive."; val17.CraftingStation = CraftingStations.Forge; val17.AddRequirement("WitheredBone", 4, 0); val17.Amount = 20; CustomItem val18 = new CustomItem("WitheredBoneBolt", "BoltBone", val17); val18.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 16f; ItemManager.Instance.AddItem(val18); ItemConfig val19 = new ItemConfig(); val19.Name = "Wooden Crossbow"; val19.Description = "What material could possibly be light and solid enough to make bolts at this point? It would have to come from a very powerful being."; val19.CraftingStation = CraftingStations.Workbench; val19.AddRequirement("Wood", 15, 5); val19.AddRequirement("LeatherScraps", 5, 2); val19.AddRequirement("Resin", 6, 3); val19.RepairStation = CraftingStations.Workbench; CustomItem val20 = new CustomItem("WoodenCrossbow", "CrossbowArbalest", val19); val20.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 55f; val20.ItemDrop.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 5f; val20.ItemDrop.m_itemData.m_shared.m_icons[0] = newHaldorAssetBundle.LoadAsset<Sprite>("WoodenCrossbow"); ItemManager.Instance.AddItem(val20); ItemConfig val21 = new ItemConfig(); val21.Name = "Antler Bolt"; val21.Description = "It is really worth the time to summon and destroy Eikthyr over and over again?"; val21.CraftingStation = CraftingStations.Workbench; val21.AddRequirement("HardAntler", 3, 0); val21.Amount = 20; CustomItem val22 = new CustomItem("AntlerBolt", "BoltBone", val21); val22.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 42f; ItemManager.Instance.AddItem(val22); ItemConfig val23 = new ItemConfig(); val23.Name = "Majestic Carapace Bolt"; val23.Description = "Sturdiest. Bolt. Ever."; val23.CraftingStation = CraftingStations.BlackForge; val23.AddRequirement("QueenDrop", 1, 0); val23.Amount = 20; CustomItem val24 = new CustomItem("CarapaceBolt", "BoltCarapace", val23); val24.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 112f; val24.ItemDrop.m_itemData.m_shared.m_icons[0] = newHaldorAssetBundle.LoadAsset<Sprite>("carapacebolt"); ItemManager.Instance.AddItem(val24); ItemConfig val25 = new ItemConfig(); val25.CraftingStation = CraftingStations.Cauldron; val25.Name = "Meatloaf"; val25.Description = "Meatloaf.... it sustains you. It's like........ oatmeal."; val25.Icon = foodsAssetBundle.LoadAsset<Sprite>("meatloaficonreal"); val25.AddRequirement("BjornMeat", 3, 0); val25.AddRequirement("RawMeat", 1, 0); val25.AddRequirement("DeerMeat", 1, 0); val25.AddRequirement("Carrot", 1, 0); val25.Amount = 3; CustomItem val26 = new CustomItem("Meatloaf", "BloodPudding", val25); val26.ItemDrop.m_itemData.m_shared.m_food = 50f; val26.ItemDrop.m_itemData.m_shared.m_foodStamina = 45f; val26.ItemDrop.m_itemData.m_shared.m_foodRegen = 3f; ItemManager.Instance.AddItem(val26); ItemConfig val27 = new ItemConfig(); val27.Name = "Broth"; val27.Description = "Can't tell if it's made from beef bones, chicken bones, vegetables..."; val27.CraftingStation = CraftingStations.Cauldron; val27.AddRequirement("Wishbone", 1, 0); val27.AddRequirement("Carrot", 1, 0); val27.AddRequirement("Turnip", 1, 0); val27.Icon = foodsAssetBundle.LoadAsset<Sprite>("brothicon"); CustomItem val28 = new CustomItem("Broth", "MeadBugRepellent", val27); val28.ItemDrop.m_itemData.m_shared.m_itemType = (ItemType)1; val28.ItemDrop.m_itemData.m_shared.m_consumeStatusEffect = null; ItemManager.Instance.AddItem(val28); ItemConfig val29 = new ItemConfig(); val29.Name = "Fish Stew"; val29.Description = "Only missing noodles, and then it's a ramen."; val29.CraftingStation = CraftingStations.Cauldron; val29.AddRequirement("FishCooked", 1, 0); val29.AddRequirement("Broth", 1, 0); val29.Icon = foodsAssetBundle.LoadAsset<Sprite>("fishstew"); CustomItem val30 = new CustomItem("FishStew", "SerpentStew", val29); val30.ItemDrop.m_itemData.m_shared.m_food = 85f; val30.ItemDrop.m_itemData.m_shared.m_foodStamina = 75f; val30.ItemDrop.m_itemData.m_shared.m_foodRegen = 4f; ItemManager.Instance.AddItem(val30); ItemConfig val31 = new ItemConfig(); val31.Name = "Organic Iron"; val31.Description = "The magical energies from the Swamp Key allows its mineral iron to be easily convertible into organic iron."; val31.CraftingStation = CraftingStations.Cauldron; val31.AddRequirement("CryptKey", 1, 0); val31.Amount = 5; val31.Icon = foodsAssetBundle.LoadAsset<Sprite>("organiciron"); CustomItem val32 = new CustomItem("OrganicIron", "PowderedDragonEgg", val31); ItemManager.Instance.AddItem(val32); ItemConfig val33 = new ItemConfig(); val33.Name = "PotionPrefab"; val33.Description = "SHOULD NOT BE SEEN!!!"; CustomItem val34 = new CustomItem("PotionPrefab", "MeadHealthMajor", val33); ItemManager.Instance.AddItem(val34); ItemConfig val35 = new ItemConfig(); val35.Name = "Salty Mead"; val35.Description = "Made from the finest tears that could rivalize with those from League of Legends."; val35.CraftingStation = CraftingStations.MeadKetill; val35.AddRequirement("DragonTear", 1, 0); val35.Icon = foodsAssetBundle.LoadAsset<Sprite>("SaltyMeadBase"); CustomItem val36 = new CustomItem("SaltyMead", "MeadBaseFrostResist", val35); ItemManager.Instance.AddItem(val36); ItemConfig val37 = new ItemConfig(); val37.Name = "Salty Potion"; val37.Description = "Drink the tears of your enemies."; val37.Icon = foodsAssetBundle.LoadAsset<Sprite>("SaltyPotion"); CustomItem val38 = new CustomItem("SaltyPotion", "MeadHealthMajor", val37); val38.ItemDrop.m_itemData.m_shared.m_consumeStatusEffect = (StatusEffect)(object)foodsAssetBundle.LoadAsset<SE_Stats>("SaltyPotionEffect"); EffectList startEffects = ItemManager.Instance.GetItem("PotionPrefab").ItemDrop.m_itemData.m_shared.m_consumeStatusEffect.m_startEffects; val38.ItemDrop.m_itemData.m_shared.m_consumeStatusEffect.m_startEffects = startEffects; ItemManager.Instance.AddItem(val38); CustomItem val39 = new CustomItem("newMossyBait", "FishingBaitForest"); ItemManager.Instance.AddItem(val39); CustomItem val40 = new CustomItem("newStickyBait", "FishingBaitSwamp"); ItemManager.Instance.AddItem(val40); CustomItem val41 = new CustomItem("newStingyBait", "FishingBaitPlains"); ItemManager.Instance.AddItem(val41); CustomItem val42 = new CustomItem("newHeavyBait", "FishingBaitOcean"); ItemManager.Instance.AddItem(val42); CustomItem val43 = new CustomItem("newMistyBait", "FishingBaitMistlands"); ItemManager.Instance.AddItem(val43); CustomItem val44 = new CustomItem("newHotBait", "FishingBaitAshlands"); ItemManager.Instance.AddItem(val44); CustomItem val45 = new CustomItem("newFrostyBait", "FishingBaitDeepNorth"); ItemManager.Instance.AddItem(val45); CustomItem val46 = new CustomItem("newColdBait", "FishingBaitCave"); ItemManager.Instance.AddItem(val46); PrefabManager.OnVanillaPrefabsAvailable -= AddClonedItems; } private void FixShaders() { Shader shader = ((Renderer)ItemManager.Instance.GetItem("CapeDeerHideCopy").ItemPrefab.GetComponentInChildren<MeshRenderer>()).sharedMaterial.shader; Material[] materials = ((Renderer)capeDeer.GetComponentInChildren<MeshRenderer>()).materials; materials[0].shader = shader; Transform val = capeDeer.transform.Find("attach_skin/cape2"); Material[] materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials; materials2[0].shader = shader; materials = ((Renderer)capeTroll.GetComponentInChildren<MeshRenderer>()).materials; materials[0].shader = shader; val = capeTroll.transform.Find("attach_skin/cape2"); materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials; materials2[0].shader = shader; Shader shader2 = ((Renderer)ItemManager.Instance.GetItem("CapeWolfCopy").ItemPrefab.GetComponentInChildren<MeshRenderer>()).sharedMaterial.shader; materials = ((Renderer)capeWolfWaterproof.GetComponentInChildren<MeshRenderer>()).materials; materials[0].shader = shader2; val = capeWolfWaterproof.transform.Find("attach_skin/WolfCape"); materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials; materials2[0].shader = shader; materials2[1].shader = shader; Transform val2 = capeWolfWaterproof.transform.Find("attach_skin/WolfCape_Cloth/WolfCape_cloth"); Material[] materials3 = ((Renderer)((Component)val2).GetComponent<SkinnedMeshRenderer>()).materials; materials3[0].shader = shader; materials = ((Renderer)capeLoxWaterproof.GetComponentInChildren<MeshRenderer>()).materials; materials[0].shader = shader; val = capeLoxWaterproof.transform.Find("attach_skin/LoxCape"); materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials; materials2[0].shader = shader; materials = ((Renderer)capeLinenWaterproof.GetComponentInChildren<MeshRenderer>()).materials; materials[0].shader = shader; val = capeLinenWaterproof.transform.Find("attach_skin/cape1"); materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials; materials2[0].shader = shader; materials = ((Renderer)capeFeatherWaterproof.GetComponentInChildren<MeshRenderer>()).materials; materials[0].shader = shader; val = capeFeatherWaterproof.transform.Find("attach_skin/MageCape"); materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials; materials2[0].shader = shader; materials = ((Renderer)capeAsksvinWaterproof.GetComponentInChildren<MeshRenderer>()).materials; materials[0].shader = shader; val = capeAsksvinWaterproof.transform.Find("attach_skin/Asksvincape"); materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials; materials2[0].shader = shader; materials = ((Renderer)capeAshWaterproof.GetComponentInChildren<MeshRenderer>()).materials; materials[0].shader = shader; val = capeAshWaterproof.transform.Find("attach_skin/Plane"); materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials; materials2[0].shader = shader; PrefabManager.OnVanillaPrefabsAvailable -= FixShaders; } private void CreateNewHaldor() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Expected O, but got Unknown //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Expected O, but got Unknown //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected O, but got Unknown //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Expected O, but got Unknown //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Expected O, but got Unknown //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Expected O, but got Unknown //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Expected O, but got Unknown //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Expected O, but got Unknown Trader component = newHaldor.GetComponent<Trader>(); TradeItem val = new TradeItem(); val.m_price = 50; val.m_stack = 20; val.m_prefab = ItemManager.Instance.GetItem("newMossyBait").ItemDrop; val.m_requiredGlobalKey = GlobalKey.KilledEikthyr; component.m_items.Add(val); TradeItem val2 = new TradeItem(); val2.m_price = 100; val2.m_stack = 20; val2.m_prefab = ItemManager.Instance.GetItem("newStickyBait").ItemDrop; val2.m_requiredGlobalKey = GlobalKey.KilledElder; component.m_items.Add(val2); TradeItem val3 = new TradeItem(); val3.m_price = 150; val3.m_stack = 20; val3.m_prefab = ItemManager.Instance.GetItem("newStingyBait").ItemDrop; val3.m_requiredGlobalKey = GlobalKey.KilledModer; component.m_items.Add(val3); TradeItem val4 = new TradeItem(); val4.m_price = 200; val4.m_stack = 20; val4.m_prefab = ItemManager.Instance.GetItem("newHeavyBait").ItemDrop; val4.m_requiredGlobalKey = GlobalKey.KilledTroll; component.m_items.Add(val4); TradeItem val5 = new TradeItem(); val5.m_price = 250; val5.m_stack = 20; val5.m_prefab = ItemManager.Instance.GetItem("newMistyBait").ItemDrop; val5.m_requiredGlobalKey = GlobalKey.KilledModer; component.m_items.Add(val5); TradeItem val6 = new TradeItem(); val6.m_price = 300; val6.m_stack = 20; val6.m_prefab = ItemManager.Instance.GetItem("newHotBait").ItemDrop; val6.m_requiredGlobalKey = GlobalKey.KilledYagluth; component.m_items.Add(val6); TradeItem val7 = new TradeItem(); val7.m_price = 350; val7.m_stack = 20; val7.m_prefab = ItemManager.Instance.GetItem("newFrostyBait").ItemDrop; val7.m_requiredGlobalKey = GlobalKey.KilledYagluth; component.m_items.Add(val7); TradeItem val8 = new TradeItem(); val8.m_price = 400; val8.m_stack = 20; val8.m_prefab = ItemManager.Instance.GetItem("newColdBait").ItemDrop; val8.m_requiredGlobalKey = GlobalKey.KilledYagluth; component.m_items.Add(val8); PrefabManager.Instance.AddPrefab(newHaldor); CustomPiece piece = PieceManager.Instance.GetPiece("InfiniteWoodTorch"); Fireplace component2 = ((Component)piece.Piece).gameObject.GetComponent<Fireplace>(); component2.m_infiniteFuel = true; CustomPiece piece2 = PieceManager.Instance.GetPiece("InfiniteIronTorch"); component2 = ((Component)piece2.Piece).gameObject.GetComponent<Fireplace>(); component2.m_infiniteFuel = true; CustomPiece piece3 = PieceManager.Instance.GetPiece("InfiniteGuckTorch"); component2 = ((Component)piece3.Piece).gameObject.GetComponent<Fireplace>(); component2.m_infiniteFuel = true; CustomPiece piece4 = PieceManager.Instance.GetPiece("InfiniteEyeTorch"); component2 = ((Component)piece4.Piece).gameObject.GetComponent<Fireplace>(); component2.m_infiniteFuel = true; CustomPiece piece5 = PieceManager.Instance.GetPiece("InfiniteSconce"); component2 = ((Component)piece5.Piece).gameObject.GetComponent<Fireplace>(); component2.m_infiniteFuel = true; PrefabManager.OnVanillaPrefabsAvailable -= CreateNewHaldor; } private void CreateWax() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown CustomItem val = new CustomItem(waxPrefab, false); ItemManager.Instance.AddItem(val); PrefabManager.OnVanillaPrefabsAvailable -= CreateWax; } private void CreateCapes() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown CustomItem val = new CustomItem(capeDeer, false); CustomItem val2 = new CustomItem(capeTroll, false); CustomItem val3 = new CustomItem(capeWolfWaterproof, false); CustomItem val4 = new CustomItem(capeLoxWaterproof, false); CustomItem val5 = new CustomItem(capeLinenWaterproof, false); CustomItem val6 = new CustomItem(capeFeatherWaterproof, false); CustomItem val7 = new CustomItem(capeAsksvinWaterproof, false); CustomItem val8 = new CustomItem(capeAshWaterproof, false); ItemManager.Instance.AddItem(val); ItemManager.Instance.AddItem(val2); ItemManager.Instance.AddItem(val3); ItemManager.Instance.AddItem(val4); ItemManager.Instance.AddItem(val5); ItemManager.Instance.AddItem(val6); ItemManager.Instance.AddItem(val7); ItemManager.Instance.AddItem(val8); PrefabManager.OnVanillaPrefabsAvailable -= CreateCapes; } private void AddRecipes() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Expected O, but got Unknown //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Expected O, but got Unknown //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Expected O, but got Unknown //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Expected O, but got Unknown //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Expected O, but got Unknown //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Expected O, but got Unknown //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Expected O, but got Unknown //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Expected O, but got Unknown //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Expected O, but got Unknown //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Expected O, but got Unknown //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Expected O, but got Unknown //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Expected O, but got Unknown //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Expected O, but got Unknown //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Expected O, but got Unknown //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Expected O, but got Unknown //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Expected O, but got Unknown //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Expected O, but got Unknown //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Expected O, but got Unknown //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Expected O, but got Unknown //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Expected O, but got Unknown //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Expected O, but got Unknown //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Expected O, but got Unknown //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Expected O, but got Unknown //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Expected O, but got Unknown //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Expected O, but got Unknown //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Expected O, but got Unknown //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Expected O, but got Unknown //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Expected O, but got Unknown //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Expected O, but got Unknown //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Expected O, but got Unknown //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Expected O, but got Unknown //IL_03e5: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Expected O, but got Unknown //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Expected O, but got Unknown //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Expected O, but got Unknown //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_041e: Expected O, but got Unknown //IL_045c: Unknown result type (might be due to invalid IL or missing references) //IL_0466: Expected O, but got Unknown //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Expected O, but got Unknown //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Expected O, but got Unknown //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: Expected O, but got Unknown //IL_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_04aa: Expected O, but got Unknown //IL_04f0: Unknown result type (might be due to invalid IL or missing references) //IL_04fa: Expected O, but got Unknown //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Expected O, but got Unknown //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0553: Expected O, but got Unknown //IL_0554: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Expected O, but got Unknown //IL_05a1: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Expected O, but got Unknown //IL_05ac: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Expected O, but got Unknown //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_0603: Expected O, but got Unknown //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_060b: Expected O, but got Unknown //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_065b: Expected O, but got Unknown //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Expected O, but got Unknown //IL_06a9: Unknown result type (might be due to invalid IL or missing references) //IL_06b3: Expected O, but got Unknown //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06bb: Expected O, but got Unknown //IL_0701: Unknown result type (might be due to invalid IL or missing references) //IL_070b: Expected O, but got Unknown //IL_070c: Unknown result type (might be due to invalid IL or missing references) //IL_0713: Expected O, but got Unknown //IL_0768: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Expected O, but got Unknown //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_077a: Expected O, but got Unknown //IL_07b1: Unknown result type (might be due to invalid IL or missing references) //IL_07bb: Expected O, but got Unknown RecipeConfig val = new RecipeConfig(); val.CraftingStation = CraftingStations.Cauldron; val.Name = "Waterproof Deer Hide Cape"; val.RepairStation = CraftingStations.Workbench; val.Item = "CapeDeer"; val.AddRequirement(new RequirementConfig("CapeDeerHide", 1, 0, true)); val.AddRequirement(new RequirementConfig("wax", 5, 0, true)); val.AddRequirement(new RequirementConfig("DeerHide", 0, 4, true)); val.AddRequirement(new RequirementConfig("BoneFragments", 0, 5, true)); ItemManager.Instance.AddRecipe(new CustomRecipe(val)); RecipeConfig val2 = new RecipeConfig(); val2.CraftingStation = CraftingStations.Cauldron; val2.Name = "Waterproof Troll Hide Cape"; val2.RepairStation = CraftingStations.Workbench; val2.Item = "CapeTroll"; val2.AddRequirement(new RequirementConfig("CapeTrollHide", 1, 0, true)); val2.AddRequirement(new RequirementConfig("wax", 5, 0, true)); val2.AddRequirement(new RequirementConfig("TrollHide", 0, 5, true)); val2.AddRequirement(new RequirementConfig("BoneFragments", 0, 5, true)); ItemManager.Instance.AddRecipe(new CustomRecipe(val2)); RecipeConfig val3 = new RecipeConfig(); val3.CraftingStation = CraftingStations.Cauldron; val3.Name = "Waterproof Wolf Fur Cape"; val3.RepairStation = CraftingStations.Workbench; val3.Item = "CapeWolfWaterproof"; val3.AddRequirement(new RequirementConfig("CapeWolf", 1, 0, true)); val3.AddRequirement(new RequirementConfig("wax", 5, 0, true)); val3.AddRequirement(new RequirementConfig("WolfPelt", 0, 4, true)); val3.AddRequirement(new RequirementConfig("Silver", 2, 0, true)); ItemManager.Instance.AddRecipe(new CustomRecipe(val3)); RecipeConfig val4 = new RecipeConfig(); val4.CraftingStation = CraftingStations.Cauldron; val4.Name = "Waterproof Lox Cape"; val4.RepairStation = CraftingStations.Workbench; val4.Item = "CapeLoxWaterproof"; val4.AddRequirement(new RequirementConfig("CapeLox", 1, 0, true)); val4.AddRequirement(new RequirementConfig("wax", 5, 0, true)); val4.AddRequirement(new RequirementConfig("LoxPelt", 0, 2, true)); ItemManager.Instance.AddRecipe(new CustomRecipe(val4)); RecipeConfig val5 = new RecipeConfig(); val5.CraftingStation = CraftingStations.Cauldron; val5.Name = "Waterproof Linen Cape"; val5.RepairStation = CraftingStations.Workbench; val5.Item = "CapeLinenWaterproof"; val5.AddRequirement(new RequirementConfig("CapeLinen", 1, 0, true)); val5.AddRequirement(new RequirementConfig("wax", 5, 0, true)); val5.AddRequirement(new RequirementConfig("LinenThread", 0, 4, true)); ItemManager.Instance.AddRecipe(new CustomRecipe(val5)); RecipeConfig val6 = new RecipeConfig(); val6.CraftingStation = CraftingStations.Cauldron; val6.Name = "Waterproof Feather Cape"; val6.RepairStation = CraftingStations.Workbench; val6.Item = "CapeFeatherWaterproof"; val6.AddRequirement(new RequirementConfig("CapeFeather", 1, 0, true)); val6.AddRequirement(new RequirementConfig("wax", 5, 0, true)); val6.AddRequirement(new RequirementConfig("Feathers", 0, 2, true)); val6.AddRequirement(new RequirementConfig("ScaleHide", 0, 5, true)); val6.AddRequirement(new RequirementConfig("Eitr", 0, 3, true)); ItemManager.Instance.AddRecipe(new CustomRecipe(val6)); RecipeConfig val7 = new RecipeConfig(); val7.CraftingStation = CraftingStations.Cauldron; val7.Name = "Waterproof Asksvin Cloak"; val7.RepairStation = CraftingStations.Workbench; val7.Item = "CapeAsksvinWaterproof"; val7.AddRequirement(new RequirementConfig("CapeAsksvin", 1, 0, true)); val7.AddRequirement(new RequirementConfig("wax", 5, 0, true)); val7.AddRequirement(new RequirementConfig("AskHide", 0, 2, true)); ItemManager.Instance.AddRecipe(new CustomRecipe(val7)); RecipeConfig val8 = new RecipeConfig(); val8.CraftingStation = CraftingStations.Cauldron; val8.Name = "Waterproof Ashen Cape"; val8.RepairStation = CraftingStations.Workbench; val8.Item = "CapeAshWaterproof"; val8.AddRequirement(new RequirementConfig("CapeAsh", 1, 0, true)); val8.AddRequirement(new RequirementConfig("wax", 5, 0, true)); val8.AddRequirement(new RequirementConfig("AskHide", 0, 2, true)); ItemManager.Instance.AddRecipe(new CustomRecipe(val8)); RecipeConfig val9 = new RecipeConfig(); val9.CraftingStation = CraftingStations.Cauldron; val9.Name = "Transmute Gold (Elder)"; val9.Item = "TrophyEikthyr"; val9.Amount = 2; val9.AddRequirement("TrophyTheElder", 1, 0); ItemManager.Instance.AddRecipe(new CustomRecipe(val9)); RecipeConfig val10 = new RecipeConfig(); val10.CraftingStation = CraftingStations.Cauldron; val10.Name = "Transmute Gold (Eikthyr)"; val10.Item = "Coins"; val10.Amount = 50; val10.AddRequirement("TrophyEikthyr", 1, 0); ItemManager.Instance.AddRecipe(new CustomRecipe(val10)); RecipeConfig val11 = new RecipeConfig(); val11.CraftingStation = CraftingStations.Cauldron; val11.Name = "Transmute Gold (Bonemass)"; val11.Item = "TrophyTheElder"; val11.Amount = 2; val11.AddRequirement("TrophyBonemass", 1, 0); ItemManager.Instance.AddRecipe(new CustomRecipe(val11)); RecipeConfig val12 = new RecipeConfig(); val12.CraftingStation = CraftingStations.Cauldron; val12.Name = "Transmute Gold (Moder)"; val12.Item = "TrophyBonemass"; val12.Amount = 2; val12.AddRequirement("TrophyDragonQueen", 1, 0); ItemManager.Instance.AddRecipe(new CustomRecipe(val12)); RecipeConfig val13 = new RecipeConfig(); val13.CraftingStation = CraftingStations.Cauldron; val13.Name = "Transmute Gold (Yagluth)"; val13.Item = "TrophyDragonQueen"; val13.Amount = 2; val13.AddRequirement("TrophyGoblinKing", 1, 0); ItemManager.Instance.AddRecipe(new CustomRecipe(val13)); RecipeConfig val14 = new RecipeConfig(); val14.CraftingStation = CraftingStations.Cauldron; val14.Name = "Transmute Gold (Queen)"; val14.Item = "TrophyGoblinKing"; val14.Amount = 2; val14.AddRequirement("TrophySeekerQueen", 1, 0); ItemManager.Instance.AddRecipe(new CustomRecipe(val14)); RecipeConfig val15 = new RecipeConfig(); val15.CraftingStation = CraftingStations.Cauldron; val15.Name = "Transmute Gold (Fader)"; val15.Item = "TrophySeekerQueen"; val15.Amount = 2; val15.AddRequirement("TrophyFader", 1, 0); ItemManager.Instance.AddRecipe(new CustomRecipe(val15)); RecipeConfig val16 = new RecipeConfig(); val16.CraftingStation = CraftingStations.Cauldron; val16.Name = "OrganicIron to Bloodbags"; val16.Item = "Bloodbag"; val16.Amount = 2; val16.AddRequirement("OrganicIron", 1, 0); val16.AddRequirement("Entrails", 1, 0); ItemManager.Instance.AddRecipe(new CustomRecipe(val16)); FermenterConversionConfig val17 = new FermenterConversionConfig(); ((ConversionConfig)val17).ToItem = "SaltyPotion"; ((ConversionConfig)val17).FromItem = "SaltyMead"; ((ConversionConfig)val17).Station = Fermenters.Fermenter; val17.ProducedItems = 6; ItemManager.Instance.AddItemConversion(new CustomItemConversion((ConversionConfig)(object)val17)); } }