Decompiled source of Modpack v1.0.0

DoDSoloExperience.dll

Decompiled a year ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
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("DoDSoloExperience")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DoDSoloExperience")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("2f1e8d65-5758-4359-9de6-b342d3eab386")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace DoDSoloExperience;

[BepInPlugin("horemvore.DoDSoloExperience", "DoOrDieSoloExperience", "3.0.4")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
internal class DoDSolo : BaseUnityPlugin
{
	public const string PluginGUID = "horemvore.DoDSoloExperience";

	public const string PluginName = "DoOrDieSoloExperience";

	public const string PluginVersion = "3.0.4";

	public static bool isModded = true;

	public ConfigEntry<bool> DoDMessageEnable;

	public ConfigEntry<bool> DoDAltarMO;

	public ConfigEntry<bool> TowerEnable;

	public ConfigEntry<bool> KnarrEnable;

	public ConfigEntry<bool> AshLandsLocations;

	public ConfigEntry<bool> MistlandsLocEnable;

	public ConfigEntry<bool> HardwoodUpdateEnable;

	public ConfigEntry<bool> MonsterLabzUpdateEnable;

	public ConfigEntry<bool> EVAUpdateEnable;

	public ConfigEntry<bool> AddWagonsEnable;

	public ConfigEntry<bool> ModifyAltarsEnable;

	public ConfigEntry<bool> ShrinesEnable;

	public ConfigEntry<string> BossAltarName1;

	public ConfigEntry<string> BossItem1;

	public ConfigEntry<string> Boss1;

	public ConfigEntry<string> BossAltarName2;

	public ConfigEntry<string> BossItem2;

	public ConfigEntry<string> Boss2;

	public ConfigEntry<string> BossAltarName3;

	public ConfigEntry<string> BossItem3;

	public ConfigEntry<string> Boss3;

	public ConfigEntry<string> BossAltarName4;

	public ConfigEntry<string> BossItem4;

	public ConfigEntry<string> Boss4;

	public ConfigEntry<string> BossAltarName5;

	public ConfigEntry<string> BossItem5;

	public ConfigEntry<string> Boss5;

	public ConfigEntry<string> BossAltarName6;

	public ConfigEntry<string> BossItem6;

	public ConfigEntry<string> Boss6;

	public ConfigEntry<string> BrownSpiderName;

	public ConfigEntry<string> ForestSpiderName;

	public ConfigEntry<string> FrostSpiderName;

	public ConfigEntry<string> FrigidSpiderName;

	public ConfigEntry<string> GreenSpiderName;

	public ConfigEntry<string> TanSpiderName;

	public AssetBundle DoDSoloAssets;

	public AssetBundle WagonAssets;

	public AssetBundle ShrineAssets;

	public GameObject WagonCrate1;

	public GameObject Spawner1;

	public GameObject Spawner2;

	public GameObject Spawner3;

	public GameObject Spawner4;

	public GameObject Spawner5;

	public GameObject Spawner6;

	public GameObject FriggItem;

	public GameObject LokiItem;

	private CustomLocalization Localization;

	internal static ManualLogSource Log;

	public void CreateConfigurationValues()
	{
		//IL_002e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: 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_006b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0070: Unknown result type (might be due to invalid IL or missing references)
		//IL_0079: Expected O, but got Unknown
		//IL_0079: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Expected O, but got Unknown
		//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b6: Expected O, but got Unknown
		//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c0: Expected O, but got Unknown
		//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f3: Expected O, but got Unknown
		//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: Expected O, but got Unknown
		//IL_0122: Unknown result type (might be due to invalid IL or missing references)
		//IL_0127: Unknown result type (might be due to invalid IL or missing references)
		//IL_0130: Expected O, but got Unknown
		//IL_0130: Unknown result type (might be due to invalid IL or missing references)
		//IL_013a: Expected O, but got Unknown
		//IL_015f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0164: Unknown result type (might be due to invalid IL or missing references)
		//IL_016d: Expected O, but got Unknown
		//IL_016d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0177: Expected O, but got Unknown
		//IL_019c: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01aa: 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_01d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01de: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e7: Expected O, but got Unknown
		//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f1: Expected O, but got Unknown
		//IL_0216: Unknown result type (might be due to invalid IL or missing references)
		//IL_021b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0224: Expected O, but got Unknown
		//IL_0224: Unknown result type (might be due to invalid IL or missing references)
		//IL_022e: Expected O, but got Unknown
		//IL_0253: Unknown result type (might be due to invalid IL or missing references)
		//IL_0258: Unknown result type (might be due to invalid IL or missing references)
		//IL_0261: Expected O, but got Unknown
		//IL_0261: Unknown result type (might be due to invalid IL or missing references)
		//IL_026b: Expected O, but got Unknown
		//IL_0290: Unknown result type (might be due to invalid IL or missing references)
		//IL_0295: Unknown result type (might be due to invalid IL or missing references)
		//IL_029e: Expected O, but got Unknown
		//IL_029e: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a8: Expected O, but got Unknown
		//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02db: Expected O, but got Unknown
		//IL_02db: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e5: Expected O, but got Unknown
		//IL_030e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0313: Unknown result type (might be due to invalid IL or missing references)
		//IL_031c: Expected O, but got Unknown
		//IL_031c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0326: Expected O, but got Unknown
		//IL_034f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0354: Unknown result type (might be due to invalid IL or missing references)
		//IL_035d: Expected O, but got Unknown
		//IL_035d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0367: Expected O, but got Unknown
		//IL_0390: Unknown result type (might be due to invalid IL or missing references)
		//IL_0395: Unknown result type (might be due to invalid IL or missing references)
		//IL_039e: Expected O, but got Unknown
		//IL_039e: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a8: Expected O, but got Unknown
		//IL_03d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_03df: Expected O, but got Unknown
		//IL_03df: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e9: Expected O, but got Unknown
		//IL_0412: Unknown result type (might be due to invalid IL or missing references)
		//IL_0417: Unknown result type (might be due to invalid IL or missing references)
		//IL_0420: Expected O, but got Unknown
		//IL_0420: Unknown result type (might be due to invalid IL or missing references)
		//IL_042a: Expected O, but got Unknown
		//IL_0453: Unknown result type (might be due to invalid IL or missing references)
		//IL_0458: Unknown result type (might be due to invalid IL or missing references)
		//IL_0461: Expected O, but got Unknown
		//IL_0461: Unknown result type (might be due to invalid IL or missing references)
		//IL_046b: Expected O, but got Unknown
		((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
		DoDAltarMO = ((BaseUnityPlugin)this).Config.Bind<bool>("Magic Overhaul", "Enable", false, new ConfigDescription("Enables the Magic Overhaul Altar at the Trophy Ring", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		DoDMessageEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Welcome Location", "Enable", false, new ConfigDescription("Enables the Welcome location near the Trophy Ring", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		AshLandsLocations = ((BaseUnityPlugin)this).Config.Bind<bool>("Ash Lands Locations", "Enable", false, new ConfigDescription("Adds Locations to Ash Lands", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		KnarrEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Knarr the Trader", "Enable", false, new ConfigDescription("Enables Knarr's Tower Location", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		TowerEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Towers", "Enable", false, new ConfigDescription("Enables Abandonded Tower Locations", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		MistlandsLocEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Mistlands Locations", "Enable", false, new ConfigDescription("Enables Locations in Mistlands", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		HardwoodUpdateEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Update Hardwood", "Enable", false, new ConfigDescription("Adds Hardwood drops to Mistlands, Deep North and Ash Lands vegetation added by Biome Flora.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		MonsterLabzUpdateEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Update Spiders", "Enable", false, new ConfigDescription("Adds Spider Chitin to Jumping, Forest and Frigid SPiders from Monster Labz.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		AddWagonsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Wagons", "Enable", true, new ConfigDescription("Adds Wagons.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		EVAUpdateEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("MOAR Icebergs", "Enable", false, new ConfigDescription("Increase the the amount of Icebergs around Deep North. For use with EVA for more Primordial Ice drops.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		ModifyAltarsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Altars", "Enable", false, new ConfigDescription("Enables configuration of all 6 DoD Altars.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		ShrinesEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Shrines", "Enable", true, new ConfigDescription("Enables Shrine locations.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BrownSpiderName = ((BaseUnityPlugin)this).Config.Bind<string>("Brown Spider", "Name", "Brown Spider", new ConfigDescription("Name of monster", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		ForestSpiderName = ((BaseUnityPlugin)this).Config.Bind<string>("Forest Spider", "Name", "Forest Spider", new ConfigDescription("Name of monster", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		FrostSpiderName = ((BaseUnityPlugin)this).Config.Bind<string>("Frost Spider", "Name", "Frost Spider", new ConfigDescription("Name of monster", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		FrigidSpiderName = ((BaseUnityPlugin)this).Config.Bind<string>("Frigid Spider", "Name", "Frigid Spider", new ConfigDescription("Name of monster", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		GreenSpiderName = ((BaseUnityPlugin)this).Config.Bind<string>("Green Spider", "Name", "Green Spider", new ConfigDescription("Name of monster", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		TanSpiderName = ((BaseUnityPlugin)this).Config.Bind<string>("Tan Spider", "Name", "Tan Spider", new ConfigDescription("Name of monster", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		SynchronizationManager.OnConfigurationSynchronized += delegate(object obj, ConfigurationSynchronizationEventArgs attr)
		{
			if (attr.InitialSynchronization)
			{
				Logger.LogMessage((object)"Initial Config sync event received for DoDSoloExperience");
			}
			else
			{
				Logger.LogMessage((object)"Config sync event received for DoDSoloExperience");
			}
		};
	}

	public void CreateAltarConfiguration()
	{
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_0040: 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_0073: Unknown result type (might be due to invalid IL or missing references)
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_0081: Expected O, but got Unknown
		//IL_0081: Unknown result type (might be due to invalid IL or missing references)
		//IL_008b: Expected O, but got Unknown
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c2: Expected O, but got Unknown
		//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cc: Expected O, but got Unknown
		//IL_00f5: 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_0103: Expected O, but got Unknown
		//IL_0103: Unknown result type (might be due to invalid IL or missing references)
		//IL_010d: Expected O, but got Unknown
		//IL_0136: Unknown result type (might be due to invalid IL or missing references)
		//IL_013b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0144: Expected O, but got Unknown
		//IL_0144: Unknown result type (might be due to invalid IL or missing references)
		//IL_014e: Expected O, but got Unknown
		//IL_0177: Unknown result type (might be due to invalid IL or missing references)
		//IL_017c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0185: Expected O, but got Unknown
		//IL_0185: Unknown result type (might be due to invalid IL or missing references)
		//IL_018f: Expected O, but got Unknown
		//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c6: Expected O, but got Unknown
		//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d0: Expected O, but got Unknown
		//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0207: Expected O, but got Unknown
		//IL_0207: Unknown result type (might be due to invalid IL or missing references)
		//IL_0211: Expected O, but got Unknown
		//IL_023a: Unknown result type (might be due to invalid IL or missing references)
		//IL_023f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0248: Expected O, but got Unknown
		//IL_0248: Unknown result type (might be due to invalid IL or missing references)
		//IL_0252: Expected O, but got Unknown
		//IL_027b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0280: Unknown result type (might be due to invalid IL or missing references)
		//IL_0289: Expected O, but got Unknown
		//IL_0289: Unknown result type (might be due to invalid IL or missing references)
		//IL_0293: Expected O, but got Unknown
		//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ca: 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_02fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0302: Unknown result type (might be due to invalid IL or missing references)
		//IL_030b: Expected O, but got Unknown
		//IL_030b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0315: Expected O, but got Unknown
		//IL_033e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0343: Unknown result type (might be due to invalid IL or missing references)
		//IL_034c: Expected O, but got Unknown
		//IL_034c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0356: Expected O, but got Unknown
		//IL_037f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0384: Unknown result type (might be due to invalid IL or missing references)
		//IL_038d: Expected O, but got Unknown
		//IL_038d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0397: Expected O, but got Unknown
		//IL_03c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ce: Expected O, but got Unknown
		//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d8: Expected O, but got Unknown
		//IL_0401: Unknown result type (might be due to invalid IL or missing references)
		//IL_0406: Unknown result type (might be due to invalid IL or missing references)
		//IL_040f: Expected O, but got Unknown
		//IL_040f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0419: Expected O, but got Unknown
		//IL_0442: Unknown result type (might be due to invalid IL or missing references)
		//IL_0447: Unknown result type (might be due to invalid IL or missing references)
		//IL_0450: Expected O, but got Unknown
		//IL_0450: Unknown result type (might be due to invalid IL or missing references)
		//IL_045a: Expected O, but got Unknown
		//IL_0483: Unknown result type (might be due to invalid IL or missing references)
		//IL_0488: Unknown result type (might be due to invalid IL or missing references)
		//IL_0491: Expected O, but got Unknown
		//IL_0491: Unknown result type (might be due to invalid IL or missing references)
		//IL_049b: Expected O, but got Unknown
		((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
		BossAltarName1 = ((BaseUnityPlugin)this).Config.Bind<string>("Bhygshan Altar", "Name", "Bhygshan Altar", new ConfigDescription("Name of Altar", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossItem1 = ((BaseUnityPlugin)this).Config.Bind<string>("Bhygshan Altar", "Item Name", "SkeletonBones_DoD", new ConfigDescription("What item to use for summoning", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		Boss1 = ((BaseUnityPlugin)this).Config.Bind<string>("Bhygshan Altar", "Prefab Name", "BhygshanAlt_DoD", new ConfigDescription("What boss to summon", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossAltarName2 = ((BaseUnityPlugin)this).Config.Bind<string>("Bitterstump Altar", "Name", "Bitterstump Altar", new ConfigDescription("Name of Altar", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossItem2 = ((BaseUnityPlugin)this).Config.Bind<string>("Bitterstump Altar", "Item Name", "GreydwarfHeart_DoD", new ConfigDescription("What item to use for summoning", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		Boss2 = ((BaseUnityPlugin)this).Config.Bind<string>("Bitterstump Altar", "Prefab Name", "Bitterstump_DoD", new ConfigDescription("What boss to summon", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossAltarName3 = ((BaseUnityPlugin)this).Config.Bind<string>("Farkas Altar", "Name", "Farkas Altar", new ConfigDescription("Name of Altar", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossItem3 = ((BaseUnityPlugin)this).Config.Bind<string>("Farkas Altar", "Item Name", "LargeFang_DoD", new ConfigDescription("What item to use for summoning", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		Boss3 = ((BaseUnityPlugin)this).Config.Bind<string>("Farkas Altar", "Prefab Name", "Farkas_DoD", new ConfigDescription("What boss to summon", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossAltarName4 = ((BaseUnityPlugin)this).Config.Bind<string>("Farkas Altar", "Name", "Farkas Altar", new ConfigDescription("Name of Altar", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossItem4 = ((BaseUnityPlugin)this).Config.Bind<string>("Farkas Altar", "Item Name", "LargeFang_DoD", new ConfigDescription("What item to use for summoning", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		Boss4 = ((BaseUnityPlugin)this).Config.Bind<string>("Farkas Altar", "Prefab Name", "FarkasAlt_DoD", new ConfigDescription("What boss to summon", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossAltarName5 = ((BaseUnityPlugin)this).Config.Bind<string>("Rambore Altar", "Name", "Ram'bore Altar", new ConfigDescription("Name of Altar", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossItem5 = ((BaseUnityPlugin)this).Config.Bind<string>("Rambore Altar", "Item Name", "BoarTusk_DoD", new ConfigDescription("What item to use for summoning", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		Boss5 = ((BaseUnityPlugin)this).Config.Bind<string>("Rambore Altar", "Prefab Name", "Rambore_DoD", new ConfigDescription("What boss to summon", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossAltarName6 = ((BaseUnityPlugin)this).Config.Bind<string>("Skri Altar", "Name", "Skri Sandburst Altar", new ConfigDescription("Name of Altar", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BossItem6 = ((BaseUnityPlugin)this).Config.Bind<string>("Skri Altar", "Item Name", "ShamansVessel_DoD", new ConfigDescription("What item to use for summoning", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		Boss6 = ((BaseUnityPlugin)this).Config.Bind<string>("Skri Altar", "Prefab Name", "SkirSandburst_DoD", new ConfigDescription("What boss to summon", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		SynchronizationManager.OnConfigurationSynchronized += delegate(object obj, ConfigurationSynchronizationEventArgs attr)
		{
			if (attr.InitialSynchronization)
			{
				Logger.LogMessage((object)"Initial Config sync event received for DoDSoloExperience Altar Modifications");
			}
			else
			{
				Logger.LogMessage((object)"Config sync event received for DoDSoloExperience Altar Modifications");
			}
		};
	}

	private void Awake()
	{
		try
		{
			Log = ((BaseUnityPlugin)this).Logger;
			CreateConfigurationValues();
			AddLocalizations();
			LoadBundle();
			AddStatusEffects();
			LoadAssets();
			AddSpawners();
			AddItems();
			ZoneManager.OnVanillaLocationsAvailable += AddSELocations;
			if (HardwoodUpdateEnable.Value)
			{
				ZoneManager.OnVanillaLocationsAvailable += UpdateHardwood;
			}
			if (MonsterLabzUpdateEnable.Value)
			{
				UpdateMonsterLabz();
			}
			if (EVAUpdateEnable.Value)
			{
				ZoneManager.OnVanillaLocationsAvailable += UpdateEVA;
			}
			PrefabManager.OnVanillaPrefabsAvailable += AddWagons;
			PrefabManager.OnVanillaPrefabsAvailable += FixWagonAudio;
			if (ModifyAltarsEnable.Value)
			{
				CreateAltarConfiguration();
				AltarConfig();
			}
			BoneReorder.ApplyOnEquipmentChanged();
		}
		catch (Exception value)
		{
			Console.WriteLine(value);
		}
	}

	private void AddLocalizations()
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Expected O, but got Unknown
		Localization = new CustomLocalization();
		LocalizationManager.Instance.AddLocalization(Localization);
		CustomLocalization localization = Localization;
		string text = "English";
		localization.AddTranslation(ref text, new Dictionary<string, string>
		{
			{ "item_loki_globe_dod", "Loki's Blessing" },
			{ "item_loki_globe_desc_dod", "Gift of the Gods" },
			{ "item_frigg_globe_dod", "Frigg's Blessing" },
			{ "item_frigg_globe_desc_dod", "Gift of the Gods" },
			{ "effect_lokisblessing_dod", "Loki's Blessing" },
			{ "effect_lokisblessing_tooltip_dod", "Knives: 15% Damage" },
			{ "effect_lokisblessing_end_dod", "No longer blessed by Loki" },
			{ "effect_friggsblessing_dod", "Frigg's Blessing" },
			{ "effect_friggsblessing_tooltip_dod", "Polearms: 15% Damage" },
			{ "effect_friggsblessing_end_dod", "No longer blessed by Frigg" },
			{ "piece_shrine_odin_dod", "Odin" },
			{ "piece_shrine_offeritem_odin_dod", "Offer Infused Gemstones for a blessing" },
			{ "piece_shrine_frigg_dod", "Frigg" },
			{ "piece_shrine_offeritem_frigg_dod", "Offer Infused Gemstones for a blessing" },
			{ "piece_shrine_loki_dod", "Loki" },
			{ "piece_shrine_offeritem_loki_dod", "Offer Skull Tokens for a blessing" },
			{ "lore_creatures_dod", "Do or Die: Creatures" },
			{ "lore_creatures_description_dod", "Most of the new Monsters are in the 3 empty biomes, Skugga are everywhere. You will find some random new monsters in the populated biomes depending on what bosses you have killed." },
			{ "lore_materials_dod", "Do or Die: Items" },
			{ "lore_materials_description_dod", "You can find Class Essences and Infused Gemstone's in Chests, on Bosses and with the Trader. You will require Armor or Weapon Kit's to make most of the items added by Do or Die." },
			{ "lore_worldlevel_dod", "Do or Die: World Level" },
			{ "lore_worldlevel_description_dod", "Level 1: Day 15 - Level 2: Day 25 - Level 3: Day 50 - Level 4: Day 100 - Level 5: Day 200" },
			{ "piece_startstone_dod", "Do or Die Compendium" },
			{ "lore_start_label_dod", "Do or Die: Scaling Difficulty" },
			{ "lore_start_dod", "Scaling difficulty is always active. The longer you are in the world and the more bosses you kill, the harder the world will become. Bosses will level up one tier per world level, after you kill them the first time. Biome creatures level up once, after you kill the Vanilla boss in that biome. All creatures gain 5% Damage and Health every world level. Maximum Stars is increased to 10 plus 3 from sector level ups." },
			{ "piece_wagonmystery_hw", "Tinker Wagon" },
			{ "piece_wagonmystery_desc_hw", "Four wheeled Wagon with large storage" }
		});
	}

	public void LoadBundle()
	{
		try
		{
			DoDSoloAssets = AssetUtils.LoadAssetBundleFromResources("doordiesolo", Assembly.GetExecutingAssembly());
			WagonAssets = AssetUtils.LoadAssetBundleFromResources("myswagons", Assembly.GetExecutingAssembly());
			ShrineAssets = AssetUtils.LoadAssetBundleFromResources("shrines", Assembly.GetExecutingAssembly());
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while loading bundles: {arg}");
		}
	}

	private void LoadAssets()
	{
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00aa: Expected O, but got Unknown
		//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d0: Expected O, but got Unknown
		//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f9: Expected O, but got Unknown
		try
		{
			Spawner1 = DoDSoloAssets.LoadAsset<GameObject>("Arena_SpawnerD_DoD");
			Spawner2 = DoDSoloAssets.LoadAsset<GameObject>("Arena_SpawnerN_DoD");
			Spawner3 = DoDSoloAssets.LoadAsset<GameObject>("Location_Spawner_DoD");
			Spawner4 = DoDSoloAssets.LoadAsset<GameObject>("Spawn_Trader_DoD");
			Spawner5 = DoDSoloAssets.LoadAsset<GameObject>("Spawn_TraderHome_DoD");
			Spawner6 = DoDSoloAssets.LoadAsset<GameObject>("Spawner_GreaterSurtling_DoD");
			GameObject val = ShrineAssets.LoadAsset<GameObject>("VFX_OdinItem_DoD");
			if (Object.op_Implicit((Object)(object)val))
			{
				CustomPrefab val2 = new CustomPrefab(val, false);
				PrefabManager.Instance.AddPrefab(val2);
				GameObject val3 = ShrineAssets.LoadAsset<GameObject>("VFX_FriggItem_DoD");
				CustomPrefab val4 = new CustomPrefab(val3, false);
				PrefabManager.Instance.AddPrefab(val4);
				GameObject val5 = ShrineAssets.LoadAsset<GameObject>("VFX_LokiItem_DoD");
				CustomPrefab val6 = new CustomPrefab(val5, false);
				PrefabManager.Instance.AddPrefab(val6);
			}
			else
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"Shrine VFX not found");
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while loading Assets: {arg}");
		}
	}

	private void AddItems()
	{
		//IL_0050: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_007f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0085: Expected O, but got Unknown
		try
		{
			GameObject prefab = PrefabManager.Instance.GetPrefab("FriggGlobe_DoD");
			if ((Object)(object)prefab != (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogMessage((object)"Items already added.");
				return;
			}
			LokiItem = ShrineAssets.LoadAsset<GameObject>("FriggGlobe_DoD");
			CustomItem val = new CustomItem(LokiItem, false);
			ItemManager.Instance.AddItem(val);
			FriggItem = ShrineAssets.LoadAsset<GameObject>("LokiGlobe_DoD");
			CustomItem val2 = new CustomItem(FriggItem, false);
			ItemManager.Instance.AddItem(val2);
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Test Items: {arg}");
		}
	}

	private void AddSpawners()
	{
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Expected O, but got Unknown
		//IL_0047: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: 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
		//IL_0085: Unknown result type (might be due to invalid IL or missing references)
		//IL_008c: Expected O, but got Unknown
		//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c6: Expected O, but got Unknown
		//IL_00de: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e5: Expected O, but got Unknown
		try
		{
			GameObject prefab = PrefabManager.Instance.GetPrefab("Spawner_GreaterSurtling_DoD");
			if ((Object)(object)prefab == (Object)null)
			{
				GameObject spawner = Spawner1;
				CustomPrefab val = new CustomPrefab(spawner, true);
				PrefabManager.Instance.AddPrefab(val);
				GameObject spawner2 = Spawner2;
				CustomPrefab val2 = new CustomPrefab(spawner2, true);
				PrefabManager.Instance.AddPrefab(val2);
				GameObject spawner3 = Spawner3;
				CustomPrefab val3 = new CustomPrefab(spawner3, true);
				PrefabManager.Instance.AddPrefab(val3);
				GameObject spawner4 = Spawner6;
				CustomPrefab val4 = new CustomPrefab(spawner4, true);
				PrefabManager.Instance.AddPrefab(val4);
				GameObject prefab2 = Cache.GetPrefab<GameObject>("Knarr");
				if ((Object)(object)prefab2 != (Object)null)
				{
					GameObject spawner5 = Spawner4;
					CustomPrefab val5 = new CustomPrefab(spawner5, true);
					PrefabManager.Instance.AddPrefab(val5);
					GameObject spawner6 = Spawner5;
					CustomPrefab val6 = new CustomPrefab(spawner6, true);
					PrefabManager.Instance.AddPrefab(val6);
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Spawners: {arg}");
		}
	}

	private void AddWagons()
	{
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Expected O, but got Unknown
		//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a7: Expected O, but got Unknown
		//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ee: Expected O, but got Unknown
		//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0101: Unknown result type (might be due to invalid IL or missing references)
		//IL_010a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0113: Expected O, but got Unknown
		//IL_0115: Unknown result type (might be due to invalid IL or missing references)
		//IL_011a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0126: Unknown result type (might be due to invalid IL or missing references)
		//IL_012f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0138: Expected O, but got Unknown
		//IL_013a: Unknown result type (might be due to invalid IL or missing references)
		//IL_013f: Unknown result type (might be due to invalid IL or missing references)
		//IL_014b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0154: Unknown result type (might be due to invalid IL or missing references)
		//IL_015d: Expected O, but got Unknown
		//IL_0165: Unknown result type (might be due to invalid IL or missing references)
		//IL_016c: Expected O, but got Unknown
		try
		{
			GameObject val = WagonAssets.LoadAsset<GameObject>("MysteryWagon_HW");
			if ((Object)(object)val != (Object)null)
			{
				if (AddWagonsEnable.Value)
				{
					WagonCrate1 = WagonAssets.LoadAsset<GameObject>("WagonCrate_HW");
					GameObject prefab = PrefabManager.Instance.GetPrefab("WagonCrate_HW");
					if ((Object)(object)prefab != (Object)null)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)"Wagon Crate already added by Vagons.");
					}
					else
					{
						GameObject wagonCrate = WagonCrate1;
						CustomPrefab val2 = new CustomPrefab(wagonCrate, true);
						PrefabManager.Instance.AddPrefab(val2);
					}
					PieceConfig val3 = new PieceConfig();
					val3.PieceTable = "_HammerPieceTable";
					val3.Category = "Misc";
					val3.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
					{
						new RequirementConfig
						{
							Item = "InfusedGemstone_DoD",
							Amount = 50,
							Recover = true
						},
						new RequirementConfig
						{
							Item = "Ruby",
							Amount = 10,
							Recover = true
						},
						new RequirementConfig
						{
							Item = "Crystal",
							Amount = 20,
							Recover = true
						},
						new RequirementConfig
						{
							Item = "Amber",
							Amount = 15,
							Recover = true
						}
					};
					CustomPiece val4 = new CustomPiece(val, true, val3);
					PieceManager.Instance.AddPiece(val4);
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"Wagons disabled");
				}
			}
			else
			{
				((BaseUnityPlugin)this).Logger.LogMessage((object)"Wagons not found");
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Wagons: {arg}");
		}
		finally
		{
			PrefabManager.OnVanillaPrefabsAvailable -= AddWagons;
			WagonAssets.Unload(false);
		}
	}

	private void FixWagonAudio()
	{
		try
		{
			GameObject prefab = PrefabManager.Instance.GetPrefab("MysteryWagon_HW");
			if ((Object)(object)prefab != (Object)null)
			{
				prefab.GetComponentInChildren<AudioSource>().outputAudioMixerGroup = AudioMan.instance.m_ambientMixer;
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding AudioMixer to Wagons: {arg}");
		}
	}

	private void AddSELocations()
	{
		//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_006e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0077: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: Unknown result type (might be due to invalid IL or missing references)
		//IL_008b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0097: 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)
		//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bc: Expected O, but got Unknown
		//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c1: Expected O, but got Unknown
		//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0107: Unknown result type (might be due to invalid IL or missing references)
		//IL_010f: Unknown result type (might be due to invalid IL or missing references)
		//IL_011b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0127: Unknown result type (might be due to invalid IL or missing references)
		//IL_012f: Unknown result type (might be due to invalid IL or missing references)
		//IL_013b: Unknown result type (might be due to invalid IL or missing references)
		//IL_014c: Expected O, but got Unknown
		//IL_0147: Unknown result type (might be due to invalid IL or missing references)
		//IL_0151: Expected O, but got Unknown
		//IL_0181: Unknown result type (might be due to invalid IL or missing references)
		//IL_0186: Unknown result type (might be due to invalid IL or missing references)
		//IL_018e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0197: Unknown result type (might be due to invalid IL or missing references)
		//IL_019f: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b7: 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_01cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01dc: Expected O, but got Unknown
		//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e1: Expected O, but got Unknown
		//IL_024b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0250: Unknown result type (might be due to invalid IL or missing references)
		//IL_0258: Unknown result type (might be due to invalid IL or missing references)
		//IL_0260: Unknown result type (might be due to invalid IL or missing references)
		//IL_0268: Unknown result type (might be due to invalid IL or missing references)
		//IL_0274: Unknown result type (might be due to invalid IL or missing references)
		//IL_0280: Unknown result type (might be due to invalid IL or missing references)
		//IL_0288: Unknown result type (might be due to invalid IL or missing references)
		//IL_0299: Expected O, but got Unknown
		//IL_0294: Unknown result type (might be due to invalid IL or missing references)
		//IL_029e: Expected O, but got Unknown
		//IL_0308: Unknown result type (might be due to invalid IL or missing references)
		//IL_030d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0315: Unknown result type (might be due to invalid IL or missing references)
		//IL_031d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0325: Unknown result type (might be due to invalid IL or missing references)
		//IL_0331: Unknown result type (might be due to invalid IL or missing references)
		//IL_033d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0345: Unknown result type (might be due to invalid IL or missing references)
		//IL_0356: Expected O, but got Unknown
		//IL_0351: Unknown result type (might be due to invalid IL or missing references)
		//IL_035b: Expected O, but got Unknown
		//IL_0438: Unknown result type (might be due to invalid IL or missing references)
		//IL_043d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0449: Unknown result type (might be due to invalid IL or missing references)
		//IL_0455: Unknown result type (might be due to invalid IL or missing references)
		//IL_045d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0469: Unknown result type (might be due to invalid IL or missing references)
		//IL_0475: Unknown result type (might be due to invalid IL or missing references)
		//IL_047d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0485: Unknown result type (might be due to invalid IL or missing references)
		//IL_0496: Expected O, but got Unknown
		//IL_0491: Unknown result type (might be due to invalid IL or missing references)
		//IL_049b: Expected O, but got Unknown
		//IL_03a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0505: Unknown result type (might be due to invalid IL or missing references)
		//IL_050c: Expected O, but got Unknown
		//IL_051f: Unknown result type (might be due to invalid IL or missing references)
		//IL_056e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0578: Expected O, but got Unknown
		//IL_05a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_05af: Expected O, but got Unknown
		//IL_05c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0611: Unknown result type (might be due to invalid IL or missing references)
		//IL_061b: Expected O, but got Unknown
		//IL_07ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_07fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0806: Unknown result type (might be due to invalid IL or missing references)
		//IL_080e: Unknown result type (might be due to invalid IL or missing references)
		//IL_081a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0826: Unknown result type (might be due to invalid IL or missing references)
		//IL_082e: Unknown result type (might be due to invalid IL or missing references)
		//IL_083f: Expected O, but got Unknown
		//IL_083a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0844: Expected O, but got Unknown
		//IL_0874: Unknown result type (might be due to invalid IL or missing references)
		//IL_0879: Unknown result type (might be due to invalid IL or missing references)
		//IL_0882: Unknown result type (might be due to invalid IL or missing references)
		//IL_088b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0893: Unknown result type (might be due to invalid IL or missing references)
		//IL_089f: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c4: Expected O, but got Unknown
		//IL_08bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c9: Expected O, but got Unknown
		//IL_08f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_08fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0907: Unknown result type (might be due to invalid IL or missing references)
		//IL_0910: Unknown result type (might be due to invalid IL or missing references)
		//IL_0918: Unknown result type (might be due to invalid IL or missing references)
		//IL_0924: Unknown result type (might be due to invalid IL or missing references)
		//IL_0930: Unknown result type (might be due to invalid IL or missing references)
		//IL_0938: Unknown result type (might be due to invalid IL or missing references)
		//IL_0949: Expected O, but got Unknown
		//IL_0944: Unknown result type (might be due to invalid IL or missing references)
		//IL_094e: Expected O, but got Unknown
		//IL_06a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b8: 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_06cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_06fd: Expected O, but got Unknown
		//IL_06f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0702: Expected O, but got Unknown
		//IL_0732: Unknown result type (might be due to invalid IL or missing references)
		//IL_0737: Unknown result type (might be due to invalid IL or missing references)
		//IL_073f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0747: Unknown result type (might be due to invalid IL or missing references)
		//IL_074f: Unknown result type (might be due to invalid IL or missing references)
		//IL_075b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0767: Unknown result type (might be due to invalid IL or missing references)
		//IL_076f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0780: Expected O, but got Unknown
		//IL_077b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0785: Expected O, but got Unknown
		try
		{
			if (ShrinesEnable.Value)
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab("ShrineOdin_DoD");
				if ((Object)(object)prefab == (Object)null)
				{
					Debug.Log((object)"Odins Shrine");
					GameObject val = ZoneManager.Instance.CreateLocationContainer(ShrineAssets.LoadAsset<GameObject>("ShrineOdin_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val, true, new LocationConfig
					{
						Biome = (Biome)1,
						Quantity = 20,
						Priotized = true,
						ExteriorRadius = 3f,
						MinAltitude = 0.1f,
						ClearArea = true,
						MinDistance = 100f,
						MinDistanceFromSimilar = 500f
					}));
					Debug.Log((object)"Frigg Shrine");
					GameObject val2 = ZoneManager.Instance.CreateLocationContainer(ShrineAssets.LoadAsset<GameObject>("ShrineFrigg_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val2, true, new LocationConfig
					{
						Biome = (Biome)8,
						Quantity = 20,
						Priotized = true,
						ExteriorRadius = 3f,
						MinAltitude = 0.1f,
						ClearArea = true,
						MinDistance = 100f,
						MinDistanceFromSimilar = 500f
					}));
					Debug.Log((object)"Loki Shrine");
					GameObject val3 = ZoneManager.Instance.CreateLocationContainer(ShrineAssets.LoadAsset<GameObject>("ShrineLoki_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val3, true, new LocationConfig
					{
						Biome = (Biome)2,
						Quantity = 20,
						Priotized = true,
						ExteriorRadius = 3f,
						MinAltitude = 0.01f,
						ClearArea = true,
						MinDistance = 100f,
						MinDistanceFromSimilar = 500f
					}));
				}
			}
			if (DoDMessageEnable.Value)
			{
				GameObject prefab2 = PrefabManager.Instance.GetPrefab("Welcome_DoD");
				if ((Object)(object)prefab2 == (Object)null)
				{
					Debug.Log((object)"Welcome");
					GameObject val4 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Welcome_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val4, true, new LocationConfig
					{
						Biome = (Biome)1,
						Quantity = 1,
						Priotized = true,
						ExteriorRadius = 5f,
						MinAltitude = 0.1f,
						ClearArea = true,
						MaxDistance = 100f
					}));
				}
			}
			if (DoDAltarMO.Value)
			{
				GameObject prefab3 = PrefabManager.Instance.GetPrefab("MagicAltar_DoD");
				if ((Object)(object)prefab3 == (Object)null)
				{
					Debug.Log((object)"Altar");
					GameObject val5 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("MagicAltar_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val5, true, new LocationConfig
					{
						Biome = (Biome)1,
						Quantity = 1,
						Priotized = true,
						ExteriorRadius = 4f,
						MinAltitude = 0.1f,
						ClearArea = true,
						MaxDistance = 100f
					}));
					GameObject prefab4 = PrefabManager.Instance.GetPrefab("AltarPrefab");
					if ((Object)(object)prefab4 != (Object)null)
					{
						GameObject val6 = Object.Instantiate<GameObject>(prefab4, val5.transform);
						val6.transform.localPosition = new Vector3(0f, 0.075f, 0f);
						val6.transform.localScale = new Vector3(0.75f, 0.5f, 0.75f);
					}
				}
			}
			if (MistlandsLocEnable.Value)
			{
				GameObject prefab5 = PrefabManager.Instance.GetPrefab("Loc_MistlandsCave_DoD");
				if ((Object)(object)prefab5 == (Object)null)
				{
					Debug.Log((object)"Mistland Cave");
					GameObject val7 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Loc_MistlandsCave_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val7, true, new LocationConfig
					{
						Biome = (Biome)512,
						Quantity = 150,
						Priotized = true,
						ExteriorRadius = 10f,
						MinAltitude = 5f,
						ClearArea = true,
						SlopeRotation = true,
						MinDistanceFromSimilar = 300f
					}));
				}
			}
			if (TowerEnable.Value)
			{
				GameObject prefab6 = PrefabManager.Instance.GetPrefab("Loc_AbandonedTowerL_DoD");
				if ((Object)(object)prefab6 == (Object)null)
				{
					Debug.Log((object)"Tower Large");
					GameObject val8 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Loc_AbandonedTowerL_DoD"));
					ZoneManager instance = ZoneManager.Instance;
					LocationConfig val9 = new LocationConfig();
					LocationConfig obj = val9;
					Biome[] array = new Biome[5];
					RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
					obj.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array);
					val9.Quantity = 4;
					val9.Priotized = true;
					val9.ExteriorRadius = 15f;
					val9.MinAltitude = 2f;
					val9.ClearArea = true;
					val9.MinDistanceFromSimilar = 500f;
					instance.AddCustomLocation(new CustomLocation(val8, true, val9));
					Debug.Log((object)"Tower Small");
					GameObject val10 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Loc_AbandonedTowerS_DoD"));
					ZoneManager instance2 = ZoneManager.Instance;
					val9 = new LocationConfig();
					LocationConfig obj2 = val9;
					Biome[] array2 = new Biome[5];
					RuntimeHelpers.InitializeArray(array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
					obj2.Biome = ZoneManager.AnyBiomeOf((Biome[])(object)array2);
					val9.Quantity = 8;
					val9.Priotized = true;
					val9.ExteriorRadius = 15f;
					val9.MinAltitude = 0.5f;
					val9.ClearArea = true;
					val9.MinDistanceFromSimilar = 500f;
					instance2.AddCustomLocation(new CustomLocation(val10, true, val9));
				}
			}
			if (KnarrEnable.Value)
			{
				GameObject prefab7 = PrefabManager.Instance.GetPrefab("Loc_KnarrTrader_DoD");
				GameObject prefab8 = PrefabManager.Instance.GetPrefab("Knarr");
				if ((Object)(object)prefab7 == (Object)null && (Object)(object)prefab8 != (Object)null)
				{
					Debug.Log((object)"Knarr Tower");
					GameObject val11 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Loc_KnarrTrader_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val11, true, new LocationConfig
					{
						Biome = (Biome)1,
						Quantity = 1,
						Priotized = true,
						ExteriorRadius = 15f,
						MinAltitude = 2f,
						ClearArea = true,
						MinDistance = 500f,
						MaxDistance = 1000f
					}));
					Debug.Log((object)"Knarr Arena");
					GameObject val12 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Loc_CastleArena_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val12, true, new LocationConfig
					{
						Biome = (Biome)1,
						Quantity = 1,
						Priotized = true,
						ExteriorRadius = 15f,
						MinAltitude = 10f,
						ClearArea = true,
						MinDistance = 1000f
					}));
				}
			}
			if (AshLandsLocations.Value)
			{
				GameObject prefab9 = PrefabManager.Instance.GetPrefab("Loc_HellPlatformA_DoD");
				if ((Object)(object)prefab9 == (Object)null)
				{
					Debug.Log((object)"Hell Platform A");
					GameObject val13 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Loc_HellPlatformA_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val13, true, new LocationConfig
					{
						Biome = (Biome)32,
						Quantity = 75,
						Priotized = true,
						ExteriorRadius = 8f,
						MinAltitude = 5f,
						ClearArea = true,
						MinDistanceFromSimilar = 500f
					}));
					Debug.Log((object)"Hell Platform B");
					GameObject val14 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Loc_HellPlatformB_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val14, true, new LocationConfig
					{
						Biome = (Biome)32,
						Quantity = 75,
						Priotized = true,
						ExteriorRadius = 8f,
						MinAltitude = 5f,
						ClearArea = true,
						MinDistanceFromSimilar = 500f
					}));
					Debug.Log((object)"Hell Tower");
					GameObject val15 = ZoneManager.Instance.CreateLocationContainer(DoDSoloAssets.LoadAsset<GameObject>("Loc_AshTower_DoD"));
					ZoneManager.Instance.AddCustomLocation(new CustomLocation(val15, true, new LocationConfig
					{
						Biome = (Biome)32,
						Quantity = 75,
						Priotized = true,
						ExteriorRadius = 5f,
						MinAltitude = 5f,
						ClearArea = true,
						MinDistanceFromSimilar = 500f
					}));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Locations for DoD SE: {arg}");
		}
		finally
		{
			ZoneManager.OnVanillaLocationsAvailable -= AddSELocations;
			DoDSoloAssets.Unload(false);
			ShrineAssets.Unload(false);
		}
	}

	private void UpdateHardwood()
	{
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_007b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_0138: Unknown result type (might be due to invalid IL or missing references)
		//IL_0162: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0222: Unknown result type (might be due to invalid IL or missing references)
		//IL_024c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0297: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_030c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0336: Unknown result type (might be due to invalid IL or missing references)
		//IL_0381: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0420: Unknown result type (might be due to invalid IL or missing references)
		//IL_046b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0495: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_050a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0555: Unknown result type (might be due to invalid IL or missing references)
		//IL_057f: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ef: Unknown result type (might be due to invalid IL or missing references)
		try
		{
			GameObject prefab = PrefabManager.Instance.GetPrefab("OakWood_DoD");
			if ((Object)(object)prefab != (Object)null)
			{
				GameObject prefab2 = PrefabManager.Instance.GetPrefab("BushGreenA_NB");
				if ((Object)(object)prefab2 != (Object)null)
				{
					prefab2.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush A not found");
				}
				GameObject prefab3 = PrefabManager.Instance.GetPrefab("BushGreenB_NB");
				if ((Object)(object)prefab3 != (Object)null)
				{
					prefab3.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush B not found");
				}
				GameObject prefab4 = PrefabManager.Instance.GetPrefab("BushGreenC_NB");
				if ((Object)(object)prefab4 != (Object)null)
				{
					prefab4.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush C not found");
				}
				GameObject prefab5 = PrefabManager.Instance.GetPrefab("BushGreenD_NB");
				if ((Object)(object)prefab5 != (Object)null)
				{
					prefab5.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush D not found");
				}
				GameObject prefab6 = PrefabManager.Instance.GetPrefab("BushGreenE_NB");
				if ((Object)(object)prefab6 != (Object)null)
				{
					prefab6.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush E not found");
				}
				GameObject prefab7 = PrefabManager.Instance.GetPrefab("BushYellowA_NB");
				if ((Object)(object)prefab7 != (Object)null)
				{
					prefab7.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush Yellow A not found");
				}
				GameObject prefab8 = PrefabManager.Instance.GetPrefab("SmallPineA_NB");
				if ((Object)(object)prefab8 != (Object)null)
				{
					prefab8.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Small Pine not found");
				}
				GameObject prefab9 = PrefabManager.Instance.GetPrefab("DeadBushA_NB");
				if ((Object)(object)prefab9 != (Object)null)
				{
					prefab9.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush Dead A not found");
				}
				GameObject prefab10 = PrefabManager.Instance.GetPrefab("DeadBushB_NB");
				if ((Object)(object)prefab10 != (Object)null)
				{
					prefab10.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush Dead B not found");
				}
				GameObject prefab11 = PrefabManager.Instance.GetPrefab("DeadBushC_NB");
				if ((Object)(object)prefab11 != (Object)null)
				{
					prefab11.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Bush Dead C not found");
				}
				GameObject prefab12 = PrefabManager.Instance.GetPrefab("HardWoodStump_NB");
				if ((Object)(object)prefab12 != (Object)null)
				{
					prefab12.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 1,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Hardwood Stump not found");
				}
				GameObject prefab13 = PrefabManager.Instance.GetPrefab("HardwoodLogHalf_NB");
				if ((Object)(object)prefab13 != (Object)null)
				{
					prefab13.GetComponent<TreeLog>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 2,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Hardwood Log Half not found");
				}
				GameObject prefab14 = Cache.GetPrefab<GameObject>("Oak_log_half");
				if ((Object)(object)prefab14 != (Object)null)
				{
					prefab14.GetComponent<TreeLog>().m_dropWhenDestroyed.m_drops.Add(new DropData
					{
						m_item = prefab,
						m_stackMin = 1,
						m_stackMax = 2,
						m_weight = 1f
					});
				}
				else
				{
					Debug.Log((object)"Oak tree not found");
				}
			}
			else
			{
				Debug.Log((object)"Hardwood not found");
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifying Vegetation for Hardwood: {arg}");
		}
		finally
		{
			((BaseUnityPlugin)this).Logger.LogMessage((object)"Hardwood drops added to some Biome Flora vegetation.");
		}
	}

	private void UpdateMonsterLabz()
	{
		//IL_009f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c9: Expected O, but got Unknown
		//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0102: Unknown result type (might be due to invalid IL or missing references)
		//IL_010e: Expected O, but got Unknown
		//IL_0129: Unknown result type (might be due to invalid IL or missing references)
		//IL_012e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0135: Unknown result type (might be due to invalid IL or missing references)
		//IL_0140: Unknown result type (might be due to invalid IL or missing references)
		//IL_0147: Unknown result type (might be due to invalid IL or missing references)
		//IL_0153: Expected O, but got Unknown
		GameObject prefab = PrefabManager.Instance.GetPrefab("SpiderChitin_DoD");
		GameObject prefab2 = PrefabManager.Instance.GetPrefab("BrownSpider");
		GameObject prefab3 = PrefabManager.Instance.GetPrefab("ForestSpider");
		GameObject prefab4 = PrefabManager.Instance.GetPrefab("FrigidSpider");
		GameObject prefab5 = PrefabManager.Instance.GetPrefab("FrostSpider");
		GameObject prefab6 = PrefabManager.Instance.GetPrefab("GreenSpider");
		GameObject prefab7 = PrefabManager.Instance.GetPrefab("TanSpider");
		if ((Object)(object)prefab != (Object)null)
		{
			try
			{
				if ((Object)(object)prefab2 != (Object)null)
				{
					prefab2.GetComponent<CharacterDrop>().m_drops.Add(new Drop
					{
						m_prefab = prefab,
						m_chance = 15f,
						m_amountMin = 1,
						m_amountMax = 5
					});
				}
				if ((Object)(object)prefab3 != (Object)null)
				{
					prefab3.GetComponent<CharacterDrop>().m_drops.Add(new Drop
					{
						m_prefab = prefab,
						m_chance = 15f,
						m_amountMin = 1,
						m_amountMax = 5
					});
				}
				if ((Object)(object)prefab4 != (Object)null)
				{
					prefab4.GetComponent<CharacterDrop>().m_drops.Add(new Drop
					{
						m_prefab = prefab,
						m_chance = 15f,
						m_amountMin = 1,
						m_amountMax = 5
					});
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifying Monster Labz monsters for Chitin: {arg}");
			}
			finally
			{
				((BaseUnityPlugin)this).Logger.LogMessage((object)"Monster Labz spider's now drop Black Chitin");
			}
		}
		else
		{
			Debug.Log((object)"Spider Chitin not found");
		}
		if ((Object)(object)prefab2 != (Object)null)
		{
			try
			{
				((Character)prefab4.GetComponent<Humanoid>()).m_name = FrigidSpiderName.Value;
				((Character)prefab3.GetComponent<Humanoid>()).m_name = ForestSpiderName.Value;
				((Character)prefab2.GetComponent<Humanoid>()).m_name = BrownSpiderName.Value;
				((Character)prefab5.GetComponent<Humanoid>()).m_name = FrostSpiderName.Value;
				((Character)prefab6.GetComponent<Humanoid>()).m_name = GreenSpiderName.Value;
				((Character)prefab7.GetComponent<Humanoid>()).m_name = TanSpiderName.Value;
				return;
			}
			catch (Exception arg2)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifying Monster Labz monsters names: {arg2}");
				return;
			}
		}
		Debug.Log((object)"Monsterlabz not found");
	}

	private void UpdateEVA()
	{
		try
		{
			ZoneVegetation zoneVegetation = ZoneManager.Instance.GetZoneVegetation("ice_rock1");
			if (zoneVegetation != null)
			{
				zoneVegetation.m_minVegetation = 1f;
				zoneVegetation.m_maxVegetation = 2f;
				zoneVegetation.m_groupSizeMin = 1;
				zoneVegetation.m_groupSizeMax = 2;
				zoneVegetation.m_groupRadius = 10f;
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifying EVA: {arg}");
		}
		finally
		{
			ZoneManager.OnVanillaLocationsAvailable -= UpdateEVA;
			((BaseUnityPlugin)this).Logger.LogMessage((object)"There are now MOAR Icebergs");
		}
	}

	private void AltarConfig()
	{
		try
		{
			OfferingBowl prefab = Cache.GetPrefab<OfferingBowl>("AltarBhygshan_DoD");
			ItemDrop prefab2 = Cache.GetPrefab<ItemDrop>(BossItem1.Value);
			GameObject prefab3 = Cache.GetPrefab<GameObject>(Boss1.Value);
			prefab.m_name = BossAltarName1.Value;
			prefab.m_bossItem = prefab2;
			prefab.m_bossItems = 5;
			prefab.m_bossPrefab = prefab3;
			OfferingBowl prefab4 = Cache.GetPrefab<OfferingBowl>("AltarBitterstump_DoD");
			ItemDrop prefab5 = Cache.GetPrefab<ItemDrop>(BossItem2.Value);
			GameObject prefab6 = Cache.GetPrefab<GameObject>(Boss2.Value);
			prefab4.m_name = BossAltarName2.Value;
			prefab4.m_bossItem = prefab5;
			prefab4.m_bossItems = 5;
			prefab4.m_bossPrefab = prefab6;
			OfferingBowl prefab7 = Cache.GetPrefab<OfferingBowl>("AltarFarkas_DoD");
			ItemDrop prefab8 = Cache.GetPrefab<ItemDrop>(BossItem3.Value);
			GameObject prefab9 = Cache.GetPrefab<GameObject>(Boss3.Value);
			prefab7.m_name = BossAltarName3.Value;
			prefab7.m_bossItem = prefab8;
			prefab7.m_bossItems = 5;
			prefab7.m_bossPrefab = prefab9;
			OfferingBowl prefab10 = Cache.GetPrefab<OfferingBowl>("AltarFarkasAlt_DoD");
			ItemDrop prefab11 = Cache.GetPrefab<ItemDrop>(BossItem4.Value);
			GameObject prefab12 = Cache.GetPrefab<GameObject>(Boss4.Value);
			prefab10.m_name = BossAltarName4.Value;
			prefab10.m_bossItem = prefab11;
			prefab10.m_bossItems = 5;
			prefab10.m_bossPrefab = prefab12;
			OfferingBowl prefab13 = Cache.GetPrefab<OfferingBowl>("AltarRambone_DoD");
			ItemDrop prefab14 = Cache.GetPrefab<ItemDrop>(BossItem5.Value);
			GameObject prefab15 = Cache.GetPrefab<GameObject>(Boss5.Value);
			prefab13.m_name = BossAltarName5.Value;
			prefab13.m_bossItem = prefab14;
			prefab13.m_bossItems = 5;
			prefab13.m_bossPrefab = prefab15;
			OfferingBowl prefab16 = Cache.GetPrefab<OfferingBowl>("AltarSkirSandburst_DoD");
			ItemDrop prefab17 = Cache.GetPrefab<ItemDrop>(BossItem6.Value);
			GameObject prefab18 = Cache.GetPrefab<GameObject>(Boss6.Value);
			prefab16.m_name = BossAltarName6.Value;
			prefab16.m_bossItem = prefab17;
			prefab16.m_bossItems = 5;
			prefab16.m_bossPrefab = prefab18;
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifying Altars: {arg}");
		}
		finally
		{
			ZoneManager.OnVanillaLocationsAvailable -= AltarConfig;
			((BaseUnityPlugin)this).Logger.LogMessage((object)"Altars Updated");
		}
	}

	private void AddStatusEffects()
	{
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_0027: Expected O, but got Unknown
		//IL_0046: Unknown result type (might be due to invalid IL or missing references)
		//IL_004d: Expected O, but got Unknown
		try
		{
			SE_Stats val = ShrineAssets.LoadAsset<SE_Stats>("SE_FriggsBlessing_DoD");
			if ((Object)(object)val != (Object)null)
			{
				CustomStatusEffect val2 = new CustomStatusEffect((StatusEffect)(object)val, false);
				ItemManager.Instance.AddStatusEffect(val2);
				SE_Stats val3 = ShrineAssets.LoadAsset<SE_Stats>("SE_LokisBlessing_DoD");
				CustomStatusEffect val4 = new CustomStatusEffect((StatusEffect)(object)val3, false);
				ItemManager.Instance.AddStatusEffect(val4);
			}
			else
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"Status Effects not found");
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Status Effects for DoD Experience: {arg}");
		}
	}

	private void ModifyWeapons()
	{
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		//IL_0047: Unknown result type (might be due to invalid IL or missing references)
		try
		{
			ItemDrop prefab = Cache.GetPrefab<ItemDrop>("PrefabToEdit");
			prefab.m_itemData.m_shared.m_skillType = (SkillType)10;
			prefab.m_itemData.m_shared.m_attack.m_specialHitSkill = (SkillType)9;
			prefab.m_itemData.m_shared.m_attack.m_specialHitType = (DestructibleType)4;
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing weapons: {arg}");
		}
		finally
		{
		}
	}

	private void EditHaldor()
	{
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0064: Unknown result type (might be due to invalid IL or missing references)
		//IL_0074: Expected O, but got Unknown
		try
		{
			Trader prefab = Cache.GetPrefab<Trader>("Haldor");
			ItemDrop prefab2 = Cache.GetPrefab<ItemDrop>("MyItem");
			prefab.m_items.RemoveAll((TradeItem item) => (Object)(object)item.m_prefab == (Object)(object)Cache.GetPrefab<ItemDrop>("itemname"));
			prefab.m_items.Add(new TradeItem
			{
				m_prefab = prefab2,
				m_price = 100,
				m_stack = 1,
				m_requiredGlobalKey = "defeated_myself"
			});
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Haldor: {arg}");
		}
		finally
		{
		}
	}

	private void EditNPC()
	{
		try
		{
			Humanoid prefab = Cache.GetPrefab<Humanoid>("HumanNPCBarbara_DoD");
			Array.Resize(ref prefab.m_randomSets, prefab.m_randomSets.Length - 3);
			GameObject prefab2 = Cache.GetPrefab<GameObject>("NPC_SelfHeal_DoD");
			Array.Resize(ref prefab.m_defaultItems, prefab.m_defaultItems.Length + 1);
			prefab.m_defaultItems[prefab.m_defaultItems.Length - 1] = prefab2;
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing NPC: {arg}");
		}
		finally
		{
		}
	}

	private void EditRecipes()
	{
		try
		{
			CustomRecipe recipe = ItemManager.Instance.GetRecipe("MyRecipe");
			recipe.Recipe.m_enabled = false;
			Recipe prefab = Cache.GetPrefab<Recipe>("MyRecipe");
			prefab.m_enabled = false;
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Recipes: {arg}");
		}
		finally
		{
		}
	}

	private void EditBossAttacks()
	{
		try
		{
			ItemDrop prefab = Cache.GetPrefab<ItemDrop>("SkirSandburst_VoidSum_DoD");
			prefab.m_itemData.m_shared.m_damages.m_blunt = 50f;
			prefab.m_itemData.m_shared.m_damages.m_lightning = 75f;
			prefab.m_itemData.m_shared.m_attack.m_attackHeight = 1.3f;
			prefab.m_itemData.m_shared.m_attack.m_projectileAccuracy = 1f;
			prefab.m_itemData.m_shared.m_attack.m_projectileAccuracyMin = 5f;
			Projectile prefab2 = Cache.GetPrefab<Projectile>("SkirSandburst_VoidThrow_Projectile_DoD");
			prefab2.m_spawnOnHitChance = 0f;
			ItemDrop prefab3 = Cache.GetPrefab<ItemDrop>("SkirSandburst_Shield_DoD");
			prefab3.m_itemData.m_shared.m_aiAttackInterval = 40f;
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Bosses: {arg}");
		}
		finally
		{
		}
	}

	private void CloneAttacks()
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0008: Expected O, but got Unknown
		//IL_001f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0025: Expected O, but got Unknown
		try
		{
			ItemConfig val = new ItemConfig();
			val.Name = "Cloned Void Summon Skir Sandburst";
			CustomItem val2 = new CustomItem("SkirSandburst_VoidSum_Law", "SkirSandburst_VoidSum_DoD", val);
			ItemDrop component = val2.ItemPrefab.GetComponent<ItemDrop>();
			component.m_itemData.m_shared.m_damages.m_blunt = 50f;
			component.m_itemData.m_shared.m_damages.m_lightning = 75f;
			component.m_itemData.m_shared.m_attack.m_attackHeight = 1.3f;
			component.m_itemData.m_shared.m_attack.m_projectileAccuracy = 1f;
			component.m_itemData.m_shared.m_attack.m_projectileAccuracyMin = 5f;
			GameObject prefab = Cache.GetPrefab<GameObject>("Skir_Voidbolt_Projectile_DoD");
			component.m_itemData.m_shared.m_attack.m_attackProjectile = prefab;
			ItemManager.Instance.AddItem(val2);
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while cloning Attacks: {arg}");
		}
		finally
		{
		}
	}

	private void EditBoss()
	{
		try
		{
			Humanoid prefab = Cache.GetPrefab<Humanoid>("SkirSandburst_DoD");
			GameObject prefab2 = Cache.GetPrefab<GameObject>("SkirSandburst_VoidSum_Law");
			prefab.m_defaultItems.SetValue(prefab2, 8);
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Bosses: {arg}");
		}
		finally
		{
		}
	}

	private void EditStatusEffects()
	{
		try
		{
			SE_Smoke prefab = Cache.GetPrefab<SE_Smoke>("SE_LesserBleeding_DoD");
			prefab.m_damageInterval = 3f;
			SE_Shield prefab2 = Cache.GetPrefab<SE_Shield>("SE_Shield_DoD");
			if (!Object.op_Implicit((Object)(object)prefab2))
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"You fucked it up, not really couldnt find a prefab");
			}
			else
			{
				prefab2.m_absorbDamage = 500f;
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Status Effects: {arg}");
		}
		finally
		{
		}
	}

	private void EditSummons()
	{
		try
		{
			SpawnAbility prefab = Cache.GetPrefab<SpawnAbility>("ForestWolf_Spawn_DoD");
			prefab.m_minToSpawn = 3;
			prefab.m_maxToSpawn = 5;
			prefab.m_maxSpawned = 8;
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Summon's: {arg}");
		}
		finally
		{
		}
	}

	private void CloneSpawner()
	{
		try
		{
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Spawner's: {arg}");
		}
		finally
		{
		}
	}

	private void EditFurnace()
	{
		try
		{
			Smelter prefab = Cache.GetPrefab<Smelter>("BlastFurnace");
			prefab.m_conversion.Clear();
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Blast Furnace: {arg}");
		}
		finally
		{
		}
	}

	private void AddRecipes()
	{
		//IL_001b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: Expected O, but got Unknown
		//IL_004b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0055: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a5: Expected O, but got Unknown
		try
		{
			CraftingStation prefab = Cache.GetPrefab<CraftingStation>("InscriptionTable_DoD");
			if (Object.op_Implicit((Object)(object)prefab))
			{
				RecipeConfig val = new RecipeConfig();
				val.CraftingStation = "InscriptionTable_DoD";
				val.Item = "";
				val.Amount = 1;
				val.AddRequirement(new RequirementConfig("ShardLegendary", 20, 0, false));
				val.AddRequirement(new RequirementConfig("DustLegendary", 10, 0, false));
				val.AddRequirement(new RequirementConfig("ReagentLegendary", 10, 0, false));
				val.AddRequirement(new RequirementConfig("EssenceLegendary", 10, 0, false));
				ItemManager.Instance.AddRecipe(new CustomRecipe(val));
			}
			else
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"InscriptionTable_DoD not found");
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding recipes: {arg}");
		}
		finally
		{
		}
	}

	private void EditItems()
	{
		try
		{
			ItemDrop prefab = Cache.GetPrefab<ItemDrop>("ItemPrefabName");
			GameObject prefab2 = Cache.GetPrefab<GameObject>("ProjectileYouWantUse");
			prefab.m_itemData.m_shared.m_attack.m_attackProjectile = prefab2;
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing Items: {arg}");
		}
		finally
		{
		}
	}
}
[HarmonyPatch]
public class DoDSELocal
{
	[HarmonyPatch(typeof(Localization), "SetupLanguage")]
	public static class DoDSELocalizationPatch
	{
		public static void Postfix(Localization __instance, string language)
		{
			init(language, __instance);
			UpdateDictinary();
		}
	}

	private static Localization lcl;

	public static Dictionary<string, string> t;

	private static Dictionary<string, string> english = new Dictionary<string, string>
	{
		{ "lore_creatures_dod", "Do or Die: Creatures" },
		{ "lore_creatures_description_dod", "Most of the new Monsters are in the 3 empty biomes, Skugga are everywhere. You will find some random new monsters in the populated biomes depending on what bosses you have killed." },
		{ "lore_materials_dod", "Do or Die: Items" },
		{ "lore_materials_description_dod", "You can find Class Essences and Infused Gemstone's in Chests, on Bosses and with the Trader. You will require Armor or Weapon Kit's to make most of the items added by Do or Die." },
		{ "lore_worldlevel_dod", "Do or Die: World Level" },
		{ "lore_worldlevel_description_dod", "Level 1: Day 15 - Level 2: Day 25 - Level 3: Day 50 - Level 4: Day 100 - Level 5: Day 200" },
		{ "piece_startstone_dod", "Do or Die Compendium" },
		{ "lore_start_label_dod", "Do or Die: Scaling Difficulty" },
		{ "lore_start_dod", "Scaling difficulty is always active. The longer you are in the world and the more bosses you kill, the harder the world will become. Bosses will level up one tier per world level, after you kill them the first time. Biome creatures level up once, after you kill the Vanilla boss in that biome. All creatures gain 5% Damage and Health every world level. Maximum Stars is increased to 10 plus 3 from sector level ups." }
	};

	private static Dictionary<string, string> chinese = new Dictionary<string, string>
	{
		{ "lore_creatures_dod", "Do or Die: Creatures" },
		{ "lore_creatures_description_dod", "Most of the new Monsters are in the 3 empty biomes, Skugga are everywhere. You will find some random new monsters in the populated biomes depending on what bosses you have killed." },
		{ "lore_materials_dod", "Do or Die: Items" },
		{ "lore_materials_description_dod", "You can find Class Essences and Infused Gemstone's in Chests, on Bosses and with the Trader. You will require Armor or Weapon Kit's to make most of the items added by Do or Die." },
		{ "lore_worldlevel_dod", "Do or Die: World Level" },
		{ "lore_worldlevel_description_dod", "Level 1: Day 15 - Level 2: Day 25 - Level 3: Day 50 - Level 4: Day 100 - Level 5: Day 200" },
		{ "piece_startstone_dod", "Do or Die Compendium" },
		{ "lore_start_label_dod", "Do or Die: Scaling Difficulty" },
		{ "lore_start_dod", "Scaling difficulty is always active. The longer you are in the world and the more bosses you kill, the harder the world will become. Bosses will level up one tier per world level, after you kill them the first time. Biome creatures level up once, after you kill the Vanilla boss in that biome. All creatures gain 5% Damage and Health every world level. Maximum Stars is increased to 10 plus 3 from sector level ups." }
	};

	private static Dictionary<string, string> russian = new Dictionary<string, string>
	{
		{ "lore_creatures_dod", "Do or Die: Creatures" },
		{ "lore_creatures_description_dod", "Most of the new Monsters are in the 3 empty biomes, Skugga are everywhere. You will find some random new monsters in the populated biomes depending on what bosses you have killed." },
		{ "lore_materials_dod", "Do or Die: Items" },
		{ "lore_materials_description_dod", "You can find Essences in Chests, on Bosses and with the Trader." },
		{ "lore_worldlevel_dod", "Do or Die: World Level" },
		{ "lore_worldlevel_description_dod", "Level 1: Day 15 - Level 2: Day 25 - Level 3: Day 50 - Level 4: Day 100 - Level 5: Day 200" },
		{ "piece_startstone_dod", "Do or Die Compendium" },
		{ "lore_start_label_dod", "Do or Die: Scaling Difficulty" },
		{ "lore_start_dod", "Scaling difficulty is always active. The longer you are in the world and the more bosses you kill, the harder the world will become. Bosses will level up one tier per world level, after you kill them the first time. Biome creatures level up once, after you kill the Vanilla boss in that biome. All creatures gain 5% Damage and Health every world level. Maximum Stars is increased to 10 plus 3 from sector level ups." }
	};

	private static Dictionary<string, string> german = new Dictionary<string, string>
	{
		{ "lore_creatures_dod", "Do or Die: Creatures" },
		{ "lore_creatures_description_dod", "Most of the new Monsters are in the 3 empty biomes, Skugga are everywhere. You will find some random new monsters in the populated biomes depending on what bosses you have killed." },
		{ "lore_materials_dod", "Do or Die: Items" },
		{ "lore_materials_description_dod", "You can find Essences in Chests, on Bosses and with the Trader." },
		{ "lore_worldlevel_dod", "Do or Die: World Level" },
		{ "lore_worldlevel_description_dod", "Level 1: Day 15 - Level 2: Day 25 - Level 3: Day 50 - Level 4: Day 100 - Level 5: Day 200" },
		{ "piece_startstone_dod", "Do or Die Compendium" },
		{ "lore_start_label_dod", "Do or Die: Scaling Difficulty" },
		{ "lore_start_dod", "Scaling difficulty is always active. The longer you are in the world and the more bosses you kill, the harder the world will become. Bosses will level up one tier per world level, after you kill them the first time. Biome creatures level up once, after you kill the Vanilla boss in that biome. All creatures gain 5% Damage and Health every world level. Maximum Stars is increased to 10 plus 3 from sector level ups." }
	};

	private static Dictionary<string, string> turkish = new Dictionary<string, string>
	{
		{ "lore_creatures_dod", "Do or Die: Yaratıklar" },
		{ "lore_creatures_description_dod", "Yeni eklenen canavarların çoğunu 3 boş biyomda, Skugga ise her biyomda bulabilirsiniz. Öldürdüğünüz BOSSlara bağlı olarak, nüfuslu biyomlarda rastgele doğan yeni canavarlar bulacaksınız." },
		{ "lore_materials_dod", "Do or Die: Öğeler" },
		{ "lore_materials_description_dod", "Özleri Sandıklarda, BOSSlarda ve Tüccarda bulabilirsiniz." },
		{ "lore_worldlevel_dod", "Do or Die: Dünya Seviyesi" },
		{ "lore_worldlevel_description_dod", "Seviye 1: Gün 15 - Seviye 2: Gün 25 - Seviye 3: Gün 50 - Seviye 4: Gün 100 - Seviye 5: Gün 200" },
		{ "piece_startstone_dod", "Do or Die Külliyatı" },
		{ "lore_start_label_dod", "Do or Die: Ölçekleme Zorluğu" },
		{ "lore_start_dod", "Ölçeklendirme zorluğu her zaman etkindir. Dünyada ne kadar uzun süre kalırsanız ve ne kadar çok BOSS öldürürseniz, dünya o kadar zorlaşır. BOSSlar, onları ilk kez öldürdükten sonra, dünya seviyesi başına bir seviye atlarlar. Biyom yaratıkları, o biyomdaki Vanilla BOSSu öldürdükten sonra bir kez seviye atlar. Tüm yaratıklar her dünya seviyesinde %5 Hasar ve Sağlık kazanırlar. Maksimum Yıldız, sektör seviyelerinden 10 artı 3'e çıkarılır." }
	};

	public static void init(string lang, Localization l)
	{
		lcl = l;
		if (lang == "Russian")
		{
			t = russian;
		}
		if (lang == "German")
		{
			t = german;
		}
		if (lang == "Turkish")
		{
			t = turkish;
		}
		if (lang == "Chinese")
		{
			t = chinese;
		}
		else
		{
			t = english;
		}
	}

	public static void AddWord(object[] element)
	{
		MethodInfo methodInfo = AccessTools.Method(typeof(Localization), "AddWord", (Type[])null, (Type[])null);
		methodInfo.Invoke(lcl, element);
	}

	public static void UpdateDictinary()
	{
		string text = "Missing Words:";
		foreach (KeyValuePair<string, string> item in english)
		{
			if (t.ContainsKey(item.Key))
			{
				AddWord(new object[2]
				{
					item.Key,
					t[item.Key]
				});
			}
			else
			{
				AddWord(new object[2] { item.Key, item.Value });
				text += item.Key;
			}
		}
	}
}