Decompiled source of RavenwoodRandomRelics v1.0.4

plugins/RavenwoodRandomRelics/RavenwoodRandomRelics.dll

Decompiled a week ago
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using HarmonyLib;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using RavenwoodRandomRelics;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("RavenwoodRandomRelics")]
[assembly: AssemblyDescription("A Valheim mod that adds custom relics, statues, and decor.")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("James Jones TV")]
[assembly: AssemblyProduct("Ravenwood Random Relics Mod")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("2.2.2")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("2.2.2.0")]
namespace JamesJonesTV.RavenwoodRandomRelics
{
	[BepInPlugin("JamesJonesTV.RavenwoodRandomRelics", "Ravenwood Random Relics", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class RavenwoodRandomRelics : BaseUnityPlugin
	{
		public const string PluginGUID = "JamesJonesTV.RavenwoodRandomRelics";

		public const string PluginName = "Ravenwood Random Relics";

		public const string PluginVersion = "1.0.0";

		private AssetBundle relicsBundle;

		private void Awake()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			new Harmony("jamesjonestv.scalingdebug").PatchAll();
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			string text = "ravenwoodrandomrelics";
			string[] manifestResourceNames = executingAssembly.GetManifestResourceNames();
			string[] array = manifestResourceNames;
			foreach (string text2 in array)
			{
				if (text2.ToLower().Contains(text.ToLower()))
				{
					text = text2;
					break;
				}
			}
			using (Stream stream = executingAssembly.GetManifestResourceStream(text))
			{
				if (stream == null)
				{
					((BaseUnityPlugin)this).Logger.LogError((object)("Could not find embedded asset bundle resource: " + text));
					return;
				}
				byte[] array2 = new byte[stream.Length];
				stream.Read(array2, 0, array2.Length);
				relicsBundle = AssetBundle.LoadFromMemory(array2);
			}
			if ((Object)(object)relicsBundle == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load AssetBundle from embedded resource!");
				return;
			}
			PrefabManager.OnPrefabsRegistered += delegate
			{
				RelicRegistrar.RegisterAllRelics(relicsBundle);
			};
		}
	}
}
namespace RavenwoodRandomRelics
{
	public class HornOfThor : MonoBehaviour, Interactable
	{
		public string GetHoverName()
		{
			return "";
		}

		public string HoverText()
		{
			return "";
		}

		public bool Interact(Humanoid user, bool hold, bool alt)
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: 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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			if (!hold)
			{
				GameObject prefab = ZNetScene.instance.GetPrefab("sfx_gjall_alerted");
				if ((Object)(object)prefab != (Object)null)
				{
					Object.Instantiate<GameObject>(prefab, ((Component)this).transform.position + Vector3.up * 1f, Quaternion.identity);
				}
			}
			return true;
		}

		public bool UseItem(Humanoid user, ItemData item)
		{
			return false;
		}
	}
	public class PlacementWatcher : MonoBehaviour
	{
		public List<GameObject> RegisterList;

		private void Start()
		{
			if (RegisterList != null && !RegisterList.Contains(((Component)this).gameObject))
			{
				RegisterList.Add(((Component)this).gameObject);
			}
		}

		private void OnDestroy()
		{
			if (RegisterList != null)
			{
				RegisterList.Remove(((Component)this).gameObject);
			}
		}
	}
	public static class RelicConfigManager
	{
		private static string configPath = Path.Combine(Paths.ConfigPath, "RavenwoodRandomRelics.cfg");

		public static void SaveConfig(string key, string value)
		{
			File.AppendAllText(configPath, key + "=" + value + "\n");
		}

		public static string LoadConfig(string key)
		{
			if (!File.Exists(configPath))
			{
				return null;
			}
			string[] array = File.ReadAllLines(configPath);
			foreach (string text in array)
			{
				if (text.StartsWith(key + "="))
				{
					return text.Substring(key.Length + 1);
				}
			}
			return null;
		}
	}
	public class RelicRegistration
	{
		public string PrefabName;

		public string DisplayName;

		public RequirementConfig[] Requirements;

		public string Description;

		public int Comfort;

		public bool IsWerewolf;

		public bool IsHorn;

		public RelicRegistration(string prefab, string display, RequirementConfig[] reqs, string desc, int comfort = 0, bool isWerewolf = false, bool isHorn = false)
		{
			PrefabName = prefab;
			DisplayName = display;
			Requirements = reqs;
			Description = desc;
			Comfort = comfort;
			IsWerewolf = isWerewolf;
			IsHorn = isHorn;
		}
	}
	public static class RelicRegistrar
	{
		private static readonly List<GameObject> placedWerewolves = new List<GameObject>();

		public static readonly List<RelicRegistration> AllRegistrations = new List<RelicRegistration>
		{
			new RelicRegistration("valkyrie", "Norse Valkyrie", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Bronze", 100, 0, true),
				new RequirementConfig("FineWood", 25, 0, true)
			}, "Norse Valkyrie."),
			new RelicRegistration("armor", "Dark Knight", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Iron", 20, 0, true),
				new RequirementConfig("FineWood", 15, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("OdinGuard", "Heimdall", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Bronze", 20, 0, true),
				new RequirementConfig("FineWood", 15, 0, true)
			}, "Guardian of Bifröst."),
			new RelicRegistration("werewolf", "Fenrir the Devourer", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("TrophyFenring", 1, 0, true),
				new RequirementConfig("IronNails", 20, 0, true),
				new RequirementConfig("Tar", 20, 0, true)
			}, "A custom decorative piece.", 0, isWerewolf: true),
			new RelicRegistration("werewolfmirrored", "Fenrir the Devourer mirrored", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("TrophyFenring", 1, 0, true),
				new RequirementConfig("IronNails", 20, 0, true),
				new RequirementConfig("Tar", 20, 0, true)
			}, "A custom decorative piece.", 0, isWerewolf: true),
			new RelicRegistration("werewolfbust", "Fenrir Bust", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("TrophyFenring", 1, 0, true),
				new RequirementConfig("Stone", 20, 0, true)
			}, "A custom decorative piece.", 0, isWerewolf: true),
			new RelicRegistration("gargoyledog", "Gargoyle I", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Stone", 10, 0, true),
				new RequirementConfig("FineWood", 5, 0, true),
				new RequirementConfig("Coins", 10, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("lion", "Lion Statue", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Stone", 40, 0, true),
				new RequirementConfig("Coins", 40, 0, true)
			}, "The Lion King."),
			new RelicRegistration("JapaneseStoneLantern", "Japanese Stone Lantern", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Stone", 20, 0, true),
				new RequirementConfig("Resin", 20, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("pedestalplanter", "Pedestal Planter", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Stone", 15, 0, true),
				new RequirementConfig("Resin", 20, 0, true)
			}, "A decorative stone urn, perfect for gardens or noble estates."),
			new RelicRegistration("clock", "Wooden Big Ben Clock", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 25, 0, true),
				new RequirementConfig("FineWood", 15, 0, true)
			}, "A custom decorative piece.", 0, isWerewolf: false, isHorn: true),
			new RelicRegistration("SWC", "Vintage Swiss Wooden Cuckoo Clock", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Wood", 10, 0, true),
				new RequirementConfig("FineWood", 10, 0, true),
				new RequirementConfig("Coins", 20, 0, true)
			}, "A custom decorative piece.", 0, isWerewolf: false, isHorn: true),
			new RelicRegistration("HornX", "Horn of Thor", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("BoneFragments", 25, 0, true),
				new RequirementConfig("Copper", 5, 0, true)
			}, "Sound the horn to alert your allies.", 0, isWerewolf: false, isHorn: true),
			new RelicRegistration("HotAirBalloon", "Hot Air Balloon", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("GreydwarfEye", 10, 0, true),
				new RequirementConfig("Coins", 10, 0, true)
			}, "A custom decorative piece.", 1),
			new RelicRegistration("Picture1", "Ravenwood Vikings", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 10, 0, true),
				new RequirementConfig("FineWood", 10, 0, true)
			}, "Custom decorative picture."),
			new RelicRegistration("Picture2", "Ravenwood Vikings II", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 10, 0, true),
				new RequirementConfig("FineWood", 10, 0, true)
			}, "Custom decorative picture."),
			new RelicRegistration("Picture3", "Ravenwood Vikings III", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 10, 0, true),
				new RequirementConfig("FineWood", 10, 0, true)
			}, "Custom decorative picture."),
			new RelicRegistration("WitchCat", "WitchCat", (RequirementConfig[])(object)new RequirementConfig[1]
			{
				new RequirementConfig("Coins", 50, 0, true)
			}, "A big comfy witchcat. Provides +1 comfort.", 1),
			new RelicRegistration("WoodenBear", "Wooden Brown Bear", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Coins", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("bouquet", "Flower Bouquet", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Thistle", 20, 0, true),
				new RequirementConfig("Dandelion", 5, 0, true)
			}, "A custom decorative piece.", 1),
			new RelicRegistration("AsianTeaSet", "Asian Tea Set", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Stone", 5, 0, true),
				new RequirementConfig("Coins", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("AsianTeaSetPlate", "Asian Tea Set Plate", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("FineWood", 5, 0, true),
				new RequirementConfig("Coins", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("porcelainteaset", "Porcelain Tea Set", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Stone", 5, 0, true),
				new RequirementConfig("Coins", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("skullgoblet", "Skull Goblet", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("BoneFragments", 15, 0, true),
				new RequirementConfig("Coins", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("TP", "Toilet Paper", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("Dandelion", 5, 0, true)
			}, "A custom decorative piece.", 0, isWerewolf: false, isHorn: true),
			new RelicRegistration("DragonBanner", "The Red Dragon", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("FineWood", 5, 0, true),
				new RequirementConfig("Bronze", 3, 0, true),
				new RequirementConfig("JuteRed", 3, 0, true)
			}, "A custom decorative piece.", 0, isWerewolf: true),
			new RelicRegistration("DutchBanner", "Banner of Kings", (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig("FineWood", 2, 0, true),
				new RequirementConfig("DeerHide", 2, 0, true),
				new RequirementConfig("Bronze", 1, 0, true),
				new RequirementConfig("Coins", 5, 0, true)
			}, "A custom decorative piece.", 0, isWerewolf: true),
			new RelicRegistration("JapaneseToriiGate", "Japanese Torii Gate I", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 20, 0, true),
				new RequirementConfig("FineWood", 20, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("JPGate", "Japanese Torii Gate II", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 20, 0, true),
				new RequirementConfig("FineWood", 20, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("bear", "Bear Statue", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Stone", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true),
				new RequirementConfig("Coins", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("blackdragonskeleton", "Dark Angel", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Iron", 20, 0, true),
				new RequirementConfig("FineWood", 20, 0, true),
				new RequirementConfig("Coins", 100, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("dragon", "Draco", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Eitr", 333, 0, true),
				new RequirementConfig("Coins", 3333, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("throne", "Odin", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Stone", 100, 0, true),
				new RequirementConfig("Bronze", 100, 0, true),
				new RequirementConfig("Coins", 1000, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("greythrone", "Grey throne", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Stone", 100, 0, true),
				new RequirementConfig("Bronze", 20, 0, true),
				new RequirementConfig("Coins", 200, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("whitethrone", "White throne", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Stone", 100, 0, true),
				new RequirementConfig("Bronze", 20, 0, true),
				new RequirementConfig("Coins", 200, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("blackthrone", "Black throne", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Stone", 100, 0, true),
				new RequirementConfig("Bronze", 20, 0, true),
				new RequirementConfig("Coins", 200, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("goldenthrone", "Gold throne", (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig("Stone", 100, 0, true),
				new RequirementConfig("Bronze", 20, 0, true),
				new RequirementConfig("Coins", 200, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("BoatinBottle", "The Black Pearl", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Coins", 10, 0, true),
				new RequirementConfig("FineWood", 10, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("DeerGlobe", "Deer in Snow Globe", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Coins", 10, 0, true),
				new RequirementConfig("FineWood", 10, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Rose", "Rose in a Globe", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Thistle", 10, 0, true),
				new RequirementConfig("Coins", 10, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("horse", "Horse Brust Statue", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Stone", 10, 0, true),
				new RequirementConfig("FineWood", 10, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("BearHead", "Bear Head Trophy", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("FineWood", 10, 0, true),
				new RequirementConfig("Coins", 40, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("BoarHead", "Boar Head Trophy", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("FineWood", 10, 0, true),
				new RequirementConfig("Coins", 40, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("DeerHead", "Deer Head Trophy", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("FineWood", 10, 0, true),
				new RequirementConfig("Coins", 40, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("ElephantHead", "Elefant Head Trophy", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("FineWood", 10, 0, true),
				new RequirementConfig("Coins", 40, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("HippoHead", "Hipo Head Trophy", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("FineWood", 10, 0, true),
				new RequirementConfig("Coins", 40, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("LionHead", "Lion Head Trophy", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("FineWood", 10, 0, true),
				new RequirementConfig("Coins", 40, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("RhinoHead", "Rhino Head Trophy", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("FineWood", 10, 0, true),
				new RequirementConfig("Coins", 40, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_01_A", "Picture 01 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_02_A", "Picture 02 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_03_A", "Picture 03 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_04_A", "Picture 04 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_05_A", "Picture 05 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_06_A", "Picture 06 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_07_A", "Picture 07 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_08_A", "Picture 08 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_09_A", "Picture 09 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_10_A", "Picture 10 A", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_01_B", "Picture 01 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_02_B", "Picture 02 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_03_B", "Picture 03 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_04_B", "Picture 04 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_05_B", "Picture 05 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_06_B", "Picture 06 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_07_B", "Picture 07 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_08_B", "Picture 08 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_09_B", "Picture 09 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece."),
			new RelicRegistration("Picture_10_B", "Picture 10 B", (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig("Wood", 5, 0, true),
				new RequirementConfig("FineWood", 5, 0, true)
			}, "A custom decorative piece.")
		};

		public static void RegisterAllRelics(AssetBundle bundle)
		{
			foreach (RelicRegistration allRegistration in AllRegistrations)
			{
				RegisterRelic(bundle, allRegistration);
			}
		}

		private static void RegisterRelic(AssetBundle bundle, RelicRegistration reg)
		{
			//IL_0675: Unknown result type (might be due to invalid IL or missing references)
			//IL_067c: Expected O, but got Unknown
			//IL_0692: Unknown result type (might be due to invalid IL or missing references)
			//IL_0697: Unknown result type (might be due to invalid IL or missing references)
			//IL_069e: Unknown result type (might be due to invalid IL or missing references)
			//IL_06aa: Expected O, but got Unknown
			//IL_06bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d4: Expected O, but got Unknown
			//IL_0711: Unknown result type (might be due to invalid IL or missing references)
			//IL_0718: Expected O, but got Unknown
			//IL_072f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0734: Unknown result type (might be due to invalid IL or missing references)
			//IL_073c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0748: Expected O, but got Unknown
			//IL_0759: Unknown result type (might be due to invalid IL or missing references)
			//IL_075e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0766: Unknown result type (might be due to invalid IL or missing references)
			//IL_0772: Expected O, but got Unknown
			//IL_07ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07df: Unknown result type (might be due to invalid IL or missing references)
			//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0806: Expected O, but got Unknown
			//IL_0833: Unknown result type (might be due to invalid IL or missing references)
			//IL_083d: Expected O, but got Unknown
			if ((Object)(object)bundle == (Object)null)
			{
				return;
			}
			GameObject val = bundle.LoadAsset<GameObject>(reg.PrefabName);
			if (!((Object)(object)val == (Object)null))
			{
				((Object)val).name = reg.PrefabName;
				ZNetView val2 = val.GetComponent<ZNetView>();
				if ((Object)(object)val2 == (Object)null)
				{
					val2 = val.AddComponent<ZNetView>();
				}
				val2.m_persistent = true;
				val2.m_syncInitialScale = true;
				if (!Object.op_Implicit((Object)(object)val.GetComponent<ZSyncTransform>()))
				{
					val.AddComponent<ZSyncTransform>();
				}
				Piece val3 = val.GetComponent<Piece>() ?? val.AddComponent<Piece>();
				val3.m_name = reg.DisplayName;
				val3.m_description = reg.Description;
				val3.m_groundOnly = false;
				GameObject val4;
				GameObject val5;
				GameObject val6;
				GameObject val7;
				if (reg.PrefabName == "HornX")
				{
					val4 = null;
					ZNetScene instance = ZNetScene.instance;
					val5 = ((instance != null) ? instance.GetPrefab("sfx_build_hammer_crystal") : null);
					val6 = null;
					ZNetScene instance2 = ZNetScene.instance;
					val7 = ((instance2 != null) ? instance2.GetPrefab("sfx_clay_pot_break") : null);
				}
				else if (reg.PrefabName == "OdinGuard" || reg.PrefabName == "armor" || reg.PrefabName == "blackdragonskeleton")
				{
					ZNetScene instance3 = ZNetScene.instance;
					val4 = ((instance3 != null) ? instance3.GetPrefab("vfx_Place_stone") : null);
					ZNetScene instance4 = ZNetScene.instance;
					val5 = ((instance4 != null) ? instance4.GetPrefab("sfx_build_hammer_metal") : null);
					ZNetScene instance5 = ZNetScene.instance;
					val6 = ((instance5 != null) ? instance5.GetPrefab("vfx_destroyed") : null);
					ZNetScene instance6 = ZNetScene.instance;
					val7 = ((instance6 != null) ? instance6.GetPrefab("sfx_metal_blocked") : null);
				}
				else if (reg.PrefabName == "WoodenBear" || reg.PrefabName == "HotAirBalloon" || reg.PrefabName == "clock" || reg.PrefabName == "JapaneseToriiGate" || reg.PrefabName == "JPGate" || reg.PrefabName == "TP" || reg.PrefabName == "SWC" || reg.PrefabName == "Picture1" || reg.PrefabName == "Picture2" || reg.PrefabName == "Picture3" || reg.PrefabName == "Picture_01_A" || reg.PrefabName == "Picture_02_A" || reg.PrefabName == "Picture_03_A" || reg.PrefabName == "Picture_04_A" || reg.PrefabName == "Picture_05_A" || reg.PrefabName == "Picture_06_A" || reg.PrefabName == "Picture_07_A" || reg.PrefabName == "Picture_08_A" || reg.PrefabName == "Picture_09_A" || reg.PrefabName == "Picture_10_A" || reg.PrefabName == "Picture_01_B" || reg.PrefabName == "Picture_02_B" || reg.PrefabName == "Picture_03_B" || reg.PrefabName == "Picture_04_B" || reg.PrefabName == "Picture_05_B" || reg.PrefabName == "Picture_06_B" || reg.PrefabName == "Picture_07_B" || reg.PrefabName == "Picture_08_B" || reg.PrefabName == "Picture_09_B" || reg.PrefabName == "Picture_10_B")
				{
					ZNetScene instance7 = ZNetScene.instance;
					val4 = ((instance7 != null) ? instance7.GetPrefab("vfx_Place_wood") : null);
					ZNetScene instance8 = ZNetScene.instance;
					val5 = ((instance8 != null) ? instance8.GetPrefab("sfx_build_hammer_wood") : null);
					ZNetScene instance9 = ZNetScene.instance;
					val6 = ((instance9 != null) ? instance9.GetPrefab("vfx_destroyed") : null);
					ZNetScene instance10 = ZNetScene.instance;
					val7 = ((instance10 != null) ? instance10.GetPrefab("sfx_wood_break") : null);
				}
				else if (reg.PrefabName == "bouquet")
				{
					ZNetScene instance11 = ZNetScene.instance;
					val4 = ((instance11 != null) ? instance11.GetPrefab("vfx_Place_flower") : null);
					ZNetScene instance12 = ZNetScene.instance;
					val5 = ((instance12 != null) ? instance12.GetPrefab("sfx_build_cultivator") : null);
					ZNetScene instance13 = ZNetScene.instance;
					val6 = ((instance13 != null) ? instance13.GetPrefab("vfx_bush_destroyed") : null);
					ZNetScene instance14 = ZNetScene.instance;
					val7 = ((instance14 != null) ? instance14.GetPrefab("sfx_bush_hit") : null);
				}
				else if (reg.PrefabName == "skullgoblet" || reg.PrefabName == "porcelainteaset" || reg.PrefabName == "AsianTeaSet" || reg.PrefabName == "AsianTeaSetPlate" || reg.PrefabName == "DeerGlobe" || reg.PrefabName == "BoatinBottle" || reg.PrefabName == "Rose")
				{
					val4 = null;
					ZNetScene instance15 = ZNetScene.instance;
					val5 = ((instance15 != null) ? instance15.GetPrefab("sfx_build_hammer_crystal") : null);
					val6 = null;
					ZNetScene instance16 = ZNetScene.instance;
					val7 = ((instance16 != null) ? instance16.GetPrefab("sfx_clay_pot_break") : null);
				}
				else if (reg.PrefabName == "werewolf" || reg.PrefabName == "werewolfmirrored")
				{
					val4 = null;
					ZNetScene instance17 = ZNetScene.instance;
					val5 = ((instance17 != null) ? instance17.GetPrefab("sfx_fenring_howl") : null);
					val6 = null;
					ZNetScene instance18 = ZNetScene.instance;
					val7 = ((instance18 != null) ? instance18.GetPrefab("sfx_fenring_death") : null);
				}
				else
				{
					ZNetScene instance19 = ZNetScene.instance;
					val4 = ((instance19 != null) ? instance19.GetPrefab("vfx_Place_stone") : null);
					ZNetScene instance20 = ZNetScene.instance;
					val5 = ((instance20 != null) ? instance20.GetPrefab("sfx_build_hammer_stone") : null);
					ZNetScene instance21 = ZNetScene.instance;
					val6 = ((instance21 != null) ? instance21.GetPrefab("vfx_destroyed") : null);
					ZNetScene instance22 = ZNetScene.instance;
					val7 = ((instance22 != null) ? instance22.GetPrefab("sfx_rock_destroyed") : null);
				}
				EffectList val8 = new EffectList();
				List<EffectData> list = new List<EffectData>();
				if ((Object)(object)val4 != (Object)null)
				{
					list.Add(new EffectData
					{
						m_prefab = val4,
						m_enabled = true
					});
				}
				if ((Object)(object)val5 != (Object)null)
				{
					list.Add(new EffectData
					{
						m_prefab = val5,
						m_enabled = true
					});
				}
				val8.m_effectPrefabs = list.ToArray();
				val3.m_placeEffect = val8;
				WearNTear val9 = val.GetComponent<WearNTear>() ?? val.AddComponent<WearNTear>();
				val9.m_health = 10000f;
				val9.m_noRoofWear = true;
				EffectList val10 = new EffectList();
				List<EffectData> list2 = new List<EffectData>();
				if ((Object)(object)val6 != (Object)null)
				{
					list2.Add(new EffectData
					{
						m_prefab = val6,
						m_enabled = true
					});
				}
				if ((Object)(object)val7 != (Object)null)
				{
					list2.Add(new EffectData
					{
						m_prefab = val7,
						m_enabled = true
					});
				}
				val10.m_effectPrefabs = list2.ToArray();
				val9.m_destroyedEffect = val10;
				if (reg.Comfort > 0)
				{
					val3.m_comfort = reg.Comfort;
				}
				Sprite val11 = bundle.LoadAsset<Sprite>(reg.PrefabName.ToLowerInvariant());
				if ((Object)(object)val11 != (Object)null)
				{
					val3.m_icon = val11;
				}
				PieceConfig val12 = new PieceConfig
				{
					PieceTable = "Hammer",
					Category = "RavenwoodRelics",
					CraftingStation = "piece_workbench",
					Requirements = reg.Requirements
				};
				if (reg.IsHorn && (Object)(object)val.GetComponent<HornOfThor>() == (Object)null)
				{
					val.AddComponent<HornOfThor>();
				}
				PieceManager.Instance.AddPiece(new CustomPiece(val, true, val12));
				if (reg.IsWerewolf && (Object)(object)val.GetComponent<PlacementWatcher>() == (Object)null)
				{
					val.AddComponent<PlacementWatcher>().RegisterList = placedWerewolves;
				}
			}
		}
	}
}