Decompiled source of Do or Die Items v1.1.7

DoDItems.dll

Decompiled 4 months ago
using System;
using System.Collections;
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 BepInEx;
using BepInEx.Configuration;
using HoremvoreAssembly;
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("DoDItems")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DoDItems")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("3c977603-bca5-47d8-aa02-1adb998ca1c0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
public class EGA_EffectSound : MonoBehaviour
{
	public bool Repeating = true;

	public float RepeatTime = 2f;

	public float StartTime = 0f;

	public bool RandomVolume;

	public float minVolume = 0.4f;

	public float maxVolume = 1f;

	private AudioClip clip;

	private AudioSource soundComponent;

	private void Start()
	{
		soundComponent = ((Component)this).GetComponent<AudioSource>();
		clip = soundComponent.clip;
		if (RandomVolume)
		{
			soundComponent.volume = Random.Range(minVolume, maxVolume);
			RepeatSound();
		}
		if (Repeating)
		{
			((MonoBehaviour)this).InvokeRepeating("RepeatSound", StartTime, RepeatTime);
		}
	}

	private void RepeatSound()
	{
		soundComponent.PlayOneShot(clip);
	}
}
public class ParticleCollisionDebug : MonoBehaviour
{
	public ParticleSystem _particles;

	public List<ParticleCollisionEvent> _events;

	private void Start()
	{
		if (!Object.op_Implicit((Object)(object)_particles))
		{
			_particles = ((Component)this).gameObject.GetComponent<ParticleSystem>();
		}
		_events = new List<ParticleCollisionEvent>();
	}

	private void OnParticleCollision(GameObject other)
	{
		int collisionEvents = ParticlePhysicsExtensions.GetCollisionEvents(_particles, other, _events);
		Rigidbody component = other.GetComponent<Rigidbody>();
		for (int i = 0; i < collisionEvents; i++)
		{
			if (Object.op_Implicit((Object)(object)component) && (Object)(object)other.GetComponent<Player>() != (Object)null)
			{
				Debug.Log((object)"Found Player {$other.GetComponent<Player>().GetPlayerName()}");
			}
		}
	}
}
public class ParticleCollisionInstance : MonoBehaviour
{
	public GameObject[] EffectsOnCollision;

	public float DestroyTimeDelay = 5f;

	public bool UseWorldSpacePosition;

	public float Offset = 0f;

	public Vector3 rotationOffset = new Vector3(0f, 0f, 0f);

	public bool useOnlyRotationOffset = true;

	public bool UseFirePointRotation;

	public bool DestoyMainEffect = true;

	private ParticleSystem part;

	private readonly List<ParticleCollisionEvent> collisionEvents = new List<ParticleCollisionEvent>();

	private readonly ParticleSystem ps;

	private void Start()
	{
		part = ((Component)this).GetComponent<ParticleSystem>();
	}

	private void OnParticleCollision(GameObject other)
	{
		//IL_003a: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0068: Unknown result type (might be due to invalid IL or missing references)
		//IL_006f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_0099: 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_00ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0145: Unknown result type (might be due to invalid IL or missing references)
		//IL_014a: Unknown result type (might be due to invalid IL or missing references)
		//IL_014e: Unknown result type (might be due to invalid IL or missing references)
		//IL_015a: Unknown result type (might be due to invalid IL or missing references)
		//IL_015f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0163: Unknown result type (might be due to invalid IL or missing references)
		//IL_0168: Unknown result type (might be due to invalid IL or missing references)
		//IL_017b: Unknown result type (might be due to invalid IL or missing references)
		//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_018b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0123: Unknown result type (might be due to invalid IL or missing references)
		//IL_0128: Unknown result type (might be due to invalid IL or missing references)
		int num = ParticlePhysicsExtensions.GetCollisionEvents(part, other, collisionEvents);
		for (int i = 0; i < num; i++)
		{
			GameObject[] effectsOnCollision = EffectsOnCollision;
			foreach (GameObject val in effectsOnCollision)
			{
				ParticleCollisionEvent val2 = collisionEvents[i];
				Vector3 intersection = ((ParticleCollisionEvent)(ref val2)).intersection;
				val2 = collisionEvents[i];
				GameObject val3 = Object.Instantiate<GameObject>(val, intersection + ((ParticleCollisionEvent)(ref val2)).normal * Offset, default(Quaternion));
				val3.gameObject.GetComponent<Aoe>().Setup((Character)(object)Player.m_localPlayer, ((Component)Player.m_localPlayer).transform.forward, 0f, (HitData)null, (ItemData)null, (ItemData)null);
				if (!UseWorldSpacePosition)
				{
					val3.transform.parent = ((Component)this).transform;
				}
				if (UseFirePointRotation)
				{
					val3.transform.LookAt(((Component)this).transform.position);
				}
				else if (rotationOffset != Vector3.zero && useOnlyRotationOffset)
				{
					val3.transform.rotation = Quaternion.Euler(rotationOffset);
				}
				else
				{
					Transform transform = val3.transform;
					val2 = collisionEvents[i];
					Vector3 intersection2 = ((ParticleCollisionEvent)(ref val2)).intersection;
					val2 = collisionEvents[i];
					transform.LookAt(intersection2 + ((ParticleCollisionEvent)(ref val2)).normal);
					Transform transform2 = val3.transform;
					transform2.rotation *= Quaternion.Euler(rotationOffset);
				}
				Object.Destroy((Object)(object)val3, DestroyTimeDelay);
			}
		}
		if (DestoyMainEffect)
		{
			Object.Destroy((Object)(object)((Component)this).gameObject, DestroyTimeDelay + 0.5f);
		}
	}
}
public class ParticleCollisionMonster : MonoBehaviour
{
	public GameObject[] EffectsOnCollision;

	public float DestroyTimeDelay = 5f;

	public bool UseWorldSpacePosition;

	public float Offset = 0f;

	public Vector3 rotationOffset = new Vector3(0f, 0f, 0f);

	public bool useOnlyRotationOffset = true;

	public bool UseFirePointRotation;

	public bool DestoyMainEffect = false;

	private ParticleSystem part;

	private readonly List<ParticleCollisionEvent> collisionEvents = new List<ParticleCollisionEvent>();

	private readonly ParticleSystem ps;

	private void Start()
	{
		part = ((Component)this).GetComponent<ParticleSystem>();
	}

	private void OnParticleCollision(GameObject other)
	{
		//IL_003a: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0068: Unknown result type (might be due to invalid IL or missing references)
		//IL_006f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_010d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0112: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0158: Unknown result type (might be due to invalid IL or missing references)
		//IL_015d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0161: Unknown result type (might be due to invalid IL or missing references)
		//IL_016d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0172: Unknown result type (might be due to invalid IL or missing references)
		//IL_0176: Unknown result type (might be due to invalid IL or missing references)
		//IL_017b: 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_0194: Unknown result type (might be due to invalid IL or missing references)
		//IL_0199: Unknown result type (might be due to invalid IL or missing references)
		//IL_019e: Unknown result type (might be due to invalid IL or missing references)
		//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)
		int num = ParticlePhysicsExtensions.GetCollisionEvents(part, other, collisionEvents);
		for (int i = 0; i < num; i++)
		{
			GameObject[] effectsOnCollision = EffectsOnCollision;
			foreach (GameObject val in effectsOnCollision)
			{
				ParticleCollisionEvent val2 = collisionEvents[i];
				Vector3 intersection = ((ParticleCollisionEvent)(ref val2)).intersection;
				val2 = collisionEvents[i];
				GameObject val3 = Object.Instantiate<GameObject>(val, intersection + ((ParticleCollisionEvent)(ref val2)).normal * Offset, default(Quaternion));
				Aoe component = val3.gameObject.GetComponent<Aoe>();
				if (Object.op_Implicit((Object)(object)component))
				{
					val3.gameObject.GetComponent<Aoe>().m_ignorePVP = false;
					val3.gameObject.GetComponent<Aoe>().m_hitFriendly = false;
				}
				if (!UseWorldSpacePosition)
				{
					val3.transform.parent = ((Component)this).transform;
				}
				if (UseFirePointRotation)
				{
					val3.transform.LookAt(((Component)this).transform.position);
					continue;
				}
				if (rotationOffset != Vector3.zero && useOnlyRotationOffset)
				{
					val3.transform.rotation = Quaternion.Euler(rotationOffset);
					continue;
				}
				Transform transform = val3.transform;
				val2 = collisionEvents[i];
				Vector3 intersection2 = ((ParticleCollisionEvent)(ref val2)).intersection;
				val2 = collisionEvents[i];
				transform.LookAt(intersection2 + ((ParticleCollisionEvent)(ref val2)).normal);
				Transform transform2 = val3.transform;
				transform2.rotation *= Quaternion.Euler(rotationOffset);
			}
		}
		if (DestoyMainEffect)
		{
			Object.Destroy((Object)(object)((Component)this).gameObject, DestroyTimeDelay + 0.5f);
		}
	}
}
namespace DoDItems;

public class DoDFXLightFlicker : MonoBehaviour
{
	[Header("sin,tri,sqr,saw,inv,noise")]
	public string waveFunction = "sin";

	public float startValue = 0f;

	[Header("Amplitude of wave")]
	public float amplitude = 1f;

	[Header("Start point inside on wave cycle")]
	public float phase = 0f;

	[Header("Frequency per second")]
	public float frequency = 0.5f;

	private Color originalColor;

	private void Start()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		//IL_000d: Unknown result type (might be due to invalid IL or missing references)
		originalColor = ((Component)this).GetComponent<Light>().color;
	}

	private void Update()
	{
		//IL_000a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		Light component = ((Component)this).GetComponent<Light>();
		component.color = originalColor * EvalWave();
	}

	private float EvalWave()
	{
		float num = (Time.time + phase) * frequency;
		num -= Mathf.Floor(num);
		float num2 = ((waveFunction == "sin") ? Mathf.Sin(num * 2f * (float)Math.PI) : ((waveFunction == "tri") ? ((!(num < 0.5f)) ? (-4f * num + 3f) : (4f * num - 1f)) : ((waveFunction == "sqr") ? ((!(num < 0.5f)) ? (-1f) : 1f) : ((waveFunction == "saw") ? num : ((waveFunction == "inv") ? (1f - num) : ((!(waveFunction == "noise")) ? 1f : (1f - Random.value * 2f)))))));
		return num2 * amplitude + startValue;
	}
}
public class DoDFXRotation : MonoBehaviour
{
	public enum spaceEnum
	{
		Local,
		World
	}

	[Header("Rotate axises by degrees per second")]
	public Vector3 rotateVector = Vector3.zero;

	public spaceEnum rotateSpace;

	private void Start()
	{
	}

	private void Update()
	{
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_001f: Unknown result type (might be due to invalid IL or missing references)
		//IL_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		if (rotateSpace == spaceEnum.Local)
		{
			((Component)this).transform.Rotate(rotateVector * Time.deltaTime);
		}
		if (rotateSpace == spaceEnum.World)
		{
			((Component)this).transform.Rotate(rotateVector * Time.deltaTime, (Space)0);
		}
	}
}
[BepInPlugin("horemvore.DoDItems", "Do Or Die Items", "1.1.7")]
[BepInIncompatibility("Azumatt.AzuDevMod")]
[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.*/)]
internal class DoDItems : BaseUnityPlugin
{
	public const string PluginGUID = "horemvore.DoDItems";

	public const string PluginName = "Do Or Die Items";

	public const string PluginVersion = "1.1.7";

	public static bool isModded = true;

	public static GameObject AnvilsFel;

	public static GameObject AnvilsFro;

	public static GameObject AnvilsFlam;

	public static Sprite TexFlaAnvil;

	public static Sprite TexFroAnvil;

	public static Sprite TexFelAnvil;

	public static GameObject Firesoul;

	public static GameObject Solarflare;

	public static GameObject Reaper;

	public static GameObject Desolation;

	public static GameObject Soulstorm;

	public static GameObject Silverlight;

	public static GameObject Coldflame;

	public static GameObject Frostflame;

	public static GameObject Nethersbane;

	public static GameObject BhygshanMace;

	public static GameObject SwordMeadows;

	public static GameObject SwordSwamp;

	public static GameObject SwordPlains;

	public static GameObject SwordMistlands;

	public static GameObject SwordDeepNorth;

	public static GameObject SwordAshLands;

	public static GameObject WandMountains;

	public static GameObject SwordMoonlight;

	public static GameObject SwordSunlight;

	public static GameObject SteelPick;

	public ConfigEntry<bool> AModEnable;

	public ConfigEntry<bool> AdditionalTooltipEnable;

	public ConfigEntry<bool> BonusTooltipEnable;

	public ConfigEntry<bool> DamageTooltipEnable;

	public ConfigEntry<bool> LoggingEnable;

	public ConfigEntry<bool> WeaponsEnable;

	public ConfigEntry<bool> OresEnable;

	public ConfigEntry<bool> DeepNorthLocations;

	public ConfigEntry<bool> MistlandsLocations;

	public ConfigEntry<bool> EVAEnable;

	public ConfigEntry<bool> TraderEnable;

	public ConfigEntry<bool> ConversionsEnable;

	public ConfigEntry<bool> OakEnable;

	public ConfigEntry<string> CustomAnvilsPrefab;

	public ConfigEntry<string> MonsterPrefab;

	public ConfigEntry<string> MonsterPrefabFel;

	public ConfigEntry<bool> bossDropsEnable;

	public string[] seHoTList = new string[11]
	{
		"SE_ScrollHeal_DoD", "SE_ScrollMajorHeal_DoD", "SE_ScrollMinorHeal_DoD", "SE_ScrollMinorRegen_DoD", "SE_ScrollRegen_DoD", "SE_Spellbook_Heal_DoD", "SE_Spellbook_HealingWaters_DoD", "SE_Spellbook_Regen_DoD", "SE_Spellbook_HealingRain_DoD", "SE_PriestStaff_DoD",
		"SE_DruidHeal_DoD"
	};

	public string[] seDoTList = new string[9] { "SE_OnHit_Stormfire_DoD", "SE_OnHit_Shadowfire_DoD", "SE_OnHit_Holyfire_DoD", "SE_OnHit_Hellfire_DoD", "SE_OnHit_Frostfire_DoD", "SE_OnHit_Dragonfire_DoD", "SE_SpartanBleed_DoD", "SE_RogueLeech_DoD", "SE_BerserkerLeech_DoD" };

	public string[] seInfectionList = new string[7] { "SE_PriestStaffBane_DoD", "SE_PaladinRetribution_DoD", "SE_NinjaHex_DoD", "SE_MonkBleed_DoD", "SE_DruidSpear_DoD", "SE_DKFrost_DoD", "SE_BerserkerAxeAttack_DoD" };

	public string[] sePassiveList = new string[9] { "SE_MeadowsShield_DoD", "SE_BlackForestShield_DoD", "SE_SwampShield_DoD", "SE_MountainShield_DoD", "SE_PlainsShield_DoD", "SE_DKAxe_DoD", "SE_NinjaSword_DoD", "SE_PaladinMace_DoD", "SE_RogueSword_DoD" };

	public string[] seStatsList = new string[24]
	{
		"SE_ShieldBuff_DoD", "SE_CowlBlue_HV", "SE_CowlGreen_HV", "SE_CowlRed_HV", "SE_CowlRogue_HV", "SE_CowlTeal_HV", "SE_DragonHelmet_HV", "SE_DragonHelmetBlack_HV", "SE_DragonHelmetBlackRed_HV", "SE_DragonHelmetBrown_HV",
		"SE_DragonHelmetGreen_HV", "SE_DragonHelmetPurple_HV", "SE_DragonHelmetTeal_HV", "SE_DragonHelmetWhite_HV", "SE_SunSword_DoD", "SE_MoonSword_DoD", "SE_ExtraDamage_DoD", "SE_ElementalProtection_DoD", "SE_DivineProtection_DoD", "SE_FireProtection_DoD",
		"SE_FrostProtection_DoD", "SE_LightningProtection_DoD", "SE_PhysicalProtection_DoD", "SE_PoisonProtection_DoD"
	};

	public string[] seSmokeList = new string[3] { "SE_Fire_3_DoD", "SE_Fire_10_DoD", "SE_ShipBurn" };

	public string[] dodMonstersItemList = new string[17]
	{
		"BlackDeerHide_DoD", "BoarTusk_DoD", "CharredBone_DoD", "DireWolfPelt_DoD", "ForestWolfPelt_DoD", "FrozenBone_DoD", "GreydwarfHeart_DoD", "GreyPearl_DoD", "LargeFang_DoD", "ShamansVessel_DoD",
		"SkeletonBones_DoD", "SkullToken_DoD", "SpiderChitin_DoD", "InfusedGemstone_DoD", "FrostlingCore_DoD", "StormlingCore_DoD", "VoidlingCore_DoD"
	};

	public string[] oreList = new string[5] { "FrometalBar_DoD", "FrometalOre_DoD", "FelmetalBar_DoD", "FelmetalOre_DoD", "SteelBar_DoD" };

	public string[] helmList = new string[13]
	{
		"CowlBlue_HV", "CowlGreen_HV", "CowlRed_HV", "CowlRouge_HV", "CowlTeal_HV", "HelmetDragon_HV", "HelmetDragonBlack_HV", "HelmetDragonBlackRed_HV", "HelmetDragonBrown_HV", "HelmetDragonGreen_HV",
		"HelmetDragonPurple_HV", "HelmetDragonTeal_HV", "HelmetDragonWhite_HV"
	};

	public string[] itemList = new string[114]
	{
		"Mace_DeepNorth_DoD", "Mace_Mistlands_DoD", "Bow_BlackForest_DoD", "Bow_Swamp_DoD", "Bow_Mountain_DoD", "Bow_Plains_DoD", "Bow_Mistlands_DoD", "Bow_DeepNorth_DoD", "ArrowDeepNorth_DoD", "ArrowAshLands_DoD",
		"ArrowMistlands_DoD", "ShieldSkullGreen_DoD", "ShieldEikthyr_DoD", "ShieldRambore_DoD", "ShieldElder_DoD", "ShieldBitterstump_DoD", "ShieldBonemass_DoD", "ShieldModer_DoD", "ShieldFarkas_DoD", "ShieldSkir_DoD",
		"ShieldYagluth_DoD", "ShamanWand_DoD", "MageWand_DoD", "WarlockWand_DoD", "PaladinMace_DoD", "RogueSword_DoD", "DeathknightAxe_DoD", "NinjaSword_DoD", "DruidSpear_DoD", "BerserkerAxe_DoD",
		"MonkMace_DoD", "SpartanSword_DoD", "PriestStaff_DoD", "CrudeWeaponKit_DoD", "BasicWeaponKit_DoD", "GoodWeaponKit_DoD", "GreatWeaponKit_DoD", "SuperiorWeaponKit_DoD", "ExcellentWeaponKit_DoD", "ExceptionalWeaponKit_DoD",
		"ExtraordinaryWeaponKit_DoD", "CrudeArmorKit_DoD", "BasicArmorKit_DoD", "GoodArmorKit_DoD", "GreatArmorKit_DoD", "SuperiorArmorKit_DoD", "ExcellentArmorKit_DoD", "ExceptionalArmorKit_DoD", "ExtraordinaryArmorKit_DoD", "BrokenShieldBhygshan_DoD",
		"BrokenShieldEikthyr_DoD", "BrokenShieldRambore_DoD", "BrokenShieldElder_DoD", "BrokenShieldBitterstump_DoD", "BrokenShieldBonemass_DoD", "BrokenShieldModer_DoD", "BrokenShieldFarkas_DoD", "BrokenShieldSkir_DoD", "BrokenShieldYagluth_DoD", "EngineerItem_DoD",
		"DeathKnightItem_DoD", "ArcherItem_DoD", "BerserkerItem_DoD", "DruidItem_DoD", "MageItem_DoD", "MonkItem_DoD", "NinjaItem_DoD", "PaladinItem_DoD", "RogueItem_DoD", "ShamanItem_DoD",
		"WarlockItem_DoD", "PriestItem_DoD", "SpartanItem_DoD", "BronzeCup_DoD", "SilverCup_DoD", "GoldCup_DoD", "GM1Item_DoD", "GM2Item_DoD", "GM3Item_DoD", "GM4Item_DoD",
		"NotAChickenEgg_DoD", "InkPot_DoD", "RollParchment_DoD", "Scroll_Blank_DoD", "Scroll_Bless_DoD", "Scroll_CureWounds_DoD", "Scroll_ElementalProtection_DoD", "Scroll_ExtraDamage_DoD", "Scroll_FireProtection_DoD", "Scroll_FrostProtection_DoD",
		"Scroll_Heal_DoD", "Scroll_LightningProtection_DoD", "Scroll_MageFoodAverage_DoD", "Scroll_MageFoodGood_DoD", "Scroll_MageFoodGreat_DoD", "Scroll_MageFoodNormal_DoD", "Scroll_MageFoodPoor_DoD", "Scroll_MajorHeal_DoD", "Scroll_MinorHeal_DoD", "Scroll_MinorRegen_DoD",
		"Scroll_PhysicalProtection_DoD", "Scroll_PoisonProtection_DoD", "Scroll_Regen_DoD", "SpellbookAshes_DoD", "SpellbookHealing_DoD", "SpellbookMuspelheimV1_DoD", "SpellbookNorth_DoD", "SpellbookRestoration_DoD", "SpellbookStorms_DoD", "SpellbookSummon_DoD",
		"SummonSharky_AttackLeft_DoD", "SummonSharky_AttackRight_DoD", "SummonCraby_AttackLeft_DoD", "SummonCraby_AttackRight_DoD"
	};

	public string[] prefabList = new string[76]
	{
		"Bush_Large_DoD", "Bush_Small_DoD", "Wall_01_DoD", "Wall_02_DoD", "Spawn_HealingRain_DoD", "Projectile_SpellbookHealingRain_DoD", "Spawn_Meteors_DoD", "AoE_DivineMace_DoD", "AoE_MoonSword_DoD", "AoE_NinjaSword_DoD",
		"AoE_RogueSword_DoD", "AoE_PriestHealing_DoD", "AoE_BerserkerAxe_DoD", "AoE_DKAxe_DoD", "AoE_SunSword_DoD", "AoE_AuraHealing_DoD", "IT_VFX_Felore_Destroy_DoD", "IT_VFX_Mine_Hit_DoD", "IT_VFX_RockDestroyed_DoD", "IT_VFX_RockHit_DoD",
		"IT_VFX_Hit_DoD", "WizardTrader_DoD", "OceanTrader_DoD", "MeadowsTrader_DoD", "VFX_HealingRainHit_DoD", "VFX_MeteorHit_DoD", "VFX_Protect_Physical_DoD", "VFX_Spellbook_StormHitStrike_DoD", "VFX_Spellbook_StormHit_DoD", "VFX_Spellbook_Heal_DoD",
		"VFX_Spellbook_IceHit_DoD", "VFX_Spellbook_IceHitBlizzard_DoD", "VFX_Protect_Elemental_DoD", "VFX_Protect_Frost_DoD", "VFX_Protect_Fire_DoD", "VFX_Protect_Poison_DoD", "VFX_Protect_Lightning_DoD", "VFX_Scroll_Heal_DoD", "VFX_Scroll_Cure_DoD", "VFX_Scroll_ExtraDamage_DoD",
		"VFX_Spellbook_FireballHit_DoD", "VFX_Spellbook_Healingwave_DoD", "VFX_Spellbook_WaveHit_DoD", "VFX_Spellbook_FirewallHit_DoD", "AoE_SpellbookRegen_DoD", "Hit_SpellbookHeal_DoD", "Projectile_SpellbookHeal_DoD", "SpellBookSummon_Spawn_DoD", "SpellBookSummon_SpawnBig_DoD", "Projectile_SpellbookRegen_DoD",
		"Projectile_SpellbookStormStrike_DoD", "Projectile_SpellbookStormBolt_DoD", "AoE_SpellbookStormStrike_DoD", "Projectile_SpellbookBlizzard_DoD", "Projectile_SpellbookIceLance_DoD", "AoE_SpellbookBlizzard_DoD", "AoE_SpellbookMeteor_DoD", "AoE_SpellbookMeteorHit_DoD", "AoE_SpellbookFireCircle_DoD", "Projectile_SpellbookMeteor_DoD",
		"Projectile_SpellbookCircleFire_DoD", "Projectile_SpellbookFireball_DoD", "Projectile_SpellbookHealingWave_DoD", "AoE_SpellbookHealingRain_DoD", "AoE_SpellbookHealingWave_DoD", "AoE_ParticlesHit_Fire_1_DoD", "AoE_ParticlesHit_Fire_3_DoD", "AoE_ParticlesHit_Fire_5_DoD", "AoE_ParticlesHit_Fire_7_DoD", "AoE_ParticlesHit_Fire_10_DoD",
		"AoE_ParticlesHit_Fire_30_DoD", "AoE_SpellbookFlameWall_DoD", "AoE_SpellbookFlameWave_DoD", "AoE_SpellbookHealingRainHit_DoD", "Projectile_SpellbookFlameWall_DoD", "Projectile_SpellbookFlameWave_DoD"
	};

	public string[] sfxList = new string[59]
	{
		"SFX_SpellBuff_Start_1_DoD", "SFX_SpellBuff_Start_2_DoD", "SFX_SpellBuff_Start_3_DoD", "SFX_SpellBuff_Start_4_DoD", "SFX_SpellBuff_Start_5_DoD", "SFX_SpellFire_Start_1_DoD", "SFX_SpellFire_Start_2_DoD", "SFX_SpellFire_Start_3_DoD", "SFX_SpellFire_Start_4_DoD", "SFX_SpellFrost_Start_1_DoD",
		"SFX_SpellFrost_Start_2_DoD", "SFX_SpellFrost_Start_3_DoD", "SFX_SpellLightning_Start_1_DoD", "SFX_SpellLightning_Start_2_DoD", "SFX_SpellLightning_Start_3_DoD", "SFX_SpellShadow_Start_1_DoD", "SFX_SpellShadow_Start_2_DoD", "SFX_SpellShadow_Start_3_DoD", "SFX_SpellShadow_Buff_1_DoD", "SFX_SpellShadow_Buff_2_DoD",
		"SFX_SpellShadow_Buff_3_DoD", "SFX_SpellHoly_Start_1_DoD", "SFX_SpellHoly_Start_2_DoD", "SFX_SpellHoly_Start_3_DoD", "SFX_SpellHoly_Buff_1_DoD", "SFX_SpellHoly_Buff_2_DoD", "SFX_SpellHoly_Buff_3_DoD", "SFX_SpellHoly_Aura_DoD", "SFX_AncientTalk_01_DoD", "SFX_AncientTalk_02_DoD",
		"SFX_AncientTalk_03_DoD", "SFX_AncientTalk_04_DoD", "SFX_AncientTalk_05_DoD", "SFX_AncientTalk_06_DoD", "SFX_AxeSwing_DoD", "SFX_DaggerHit_DoD", "SFX_GenericHit_DoD", "SFX_HSwordSwing_DoD", "SFX_ImpactSpecialK_DoD", "SFX_MaceHit_DoD",
		"SFX_MaceSwing_DoD", "SFX_WandSwing_DoD", "SFX_Wood_Destroyed_DoD", "SFX_Voidling_Hit_DoD", "SFX_Stormling_Hit_DoD", "SFX_Frostling_Hit_DoD", "SFX_Build_Hammer_Wood_DoD", "SFX_SharkyIdle_DoD", "SFX_CrabyIdle_DoD", "SFX_InscriptionFinish_DoD",
		"SFX_InscriptionHum_DoD", "SFX_InscriptionRepair_DoD", "SFX_Spellbook_FireballHit_DoD", "SFX_Spellbook_WaveHit_DoD", "SFX_Spellbook_WaterHit_DoD", "IT_SFX_Rock_Hit_DoD", "IT_SFX_Rock_Destroyed_DoD", "IT_loc_sfx_rock_hit_dod", "IT_loc_sfx_rock_destroyed_dod"
	};

	public string[] musicList = new string[3] { "Music_Bosgug", "Music_Bozzoth", "Music_Broggomoz" };

	public AssetBundle DoDAssets;

	public CustomLocalization Localization;

	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_0257: Unknown result type (might be due to invalid IL or missing references)
		//IL_025c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0265: Expected O, but got Unknown
		//IL_0265: Unknown result type (might be due to invalid IL or missing references)
		//IL_026f: Expected O, but got Unknown
		//IL_0298: Unknown result type (might be due to invalid IL or missing references)
		//IL_029d: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a6: Expected O, but got Unknown
		//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b0: Expected O, but got Unknown
		//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02da: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e3: Expected O, but got Unknown
		//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ed: Expected O, but got Unknown
		//IL_0316: Unknown result type (might be due to invalid IL or missing references)
		//IL_031b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0324: Expected O, but got Unknown
		//IL_0324: Unknown result type (might be due to invalid IL or missing references)
		//IL_032e: Expected O, but got Unknown
		//IL_0353: Unknown result type (might be due to invalid IL or missing references)
		//IL_0358: Unknown result type (might be due to invalid IL or missing references)
		//IL_0361: Expected O, but got Unknown
		//IL_0361: Unknown result type (might be due to invalid IL or missing references)
		//IL_036b: 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_03cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_03db: Expected O, but got Unknown
		//IL_03db: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e5: Expected O, but got Unknown
		//IL_040a: Unknown result type (might be due to invalid IL or missing references)
		//IL_040f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0418: Expected O, but got Unknown
		//IL_0418: Unknown result type (might be due to invalid IL or missing references)
		//IL_0422: Expected O, but got Unknown
		((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
		AModEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1 Enable Mod", "Enable", true, new ConfigDescription("Enables the mod", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		AdditionalTooltipEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.001 Item Effects - Additional", "Enable", true, new ConfigDescription("Admin only, Show the Additional Tooltip information for Status Effects", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		BonusTooltipEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.002 Item Effects - Bonus", "Enable", true, new ConfigDescription("Admin only, Show the Bonus Tooltip information for Status Effects", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		DamageTooltipEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.003 Item Effects - Damage", "Enable", true, new ConfigDescription("Admin only, Show the Damage Tooltip information for Status Effects", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		WeaponsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.01 Weapons - Do or Die", "Enable", true, new ConfigDescription("Enables Weapons", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		bossDropsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.02 Boss Drops", "Enable", true, new ConfigDescription("Enables vanilla bosses to drop Skull Tokens, Infused Gemstone and broken Shields.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		DeepNorthLocations = ((BaseUnityPlugin)this).Config.Bind<bool>("1.3 Deep North Ore Location", "Enable", true, new ConfigDescription("A location consisting of a large deposit of Valhallium", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		MistlandsLocations = ((BaseUnityPlugin)this).Config.Bind<bool>("1.4 Mistlands Ore Location", "Enable", true, new ConfigDescription("A location consisting of a large deposit of Adamantine", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		OresEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.5 Ores", "Enable", true, new ConfigDescription("Adds small deposits of Adamantine and Valhallium", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		MonsterPrefab = ((BaseUnityPlugin)this).Config.Bind<string>("1.51 Ores - Frometal Monster Spawns", "Prefab Name", "SeekerBrute", new ConfigDescription("Monsters to spawn around ore Frometal deposits if DoD Monsters is not installed.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		MonsterPrefabFel = ((BaseUnityPlugin)this).Config.Bind<string>("1.52 Ores - Felmetal Monster Spawns", "Prefab Name", "SeekerBrute", new ConfigDescription("Monsters to spawn around ore Felmetal deposits if DoD Monsters is not installed.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		EVAEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.6 EVA", "Enable", false, new ConfigDescription("Changes new Anvils to effect Thors Forge from EVA instead of the normal Forge.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		CustomAnvilsPrefab = ((BaseUnityPlugin)this).Config.Bind<string>("1.61 Anvils", "Prefab Name", "piece_thorsforge", new ConfigDescription("What Crafting Station to extend", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		TraderEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("3 Trader", "Enable", true, new ConfigDescription("Enables Custom Trader's, disable if you use any version of Better Trader", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		ConversionsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.7 Blast Furnace", "Enable", true, new ConfigDescription("Enables custom ore conversions at the Blast Furnace", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		OakEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.8 Oak Trees", "Enable", true, new ConfigDescription("Adds hardwood to Oak Trees and increases felling tier to 3", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		LoggingEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("5 Logging", "Enable", true, new ConfigDescription("Enables logging.", (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 DoD Items");
			}
			else
			{
				Logger.LogMessage((object)"Config sync event received for DoD Items");
			}
		};
	}

	private void Awake()
	{
		try
		{
			CreateConfigurationValues();
			if (LoggingEnable.Value)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"Logging is enabled in the config!");
			}
			if (AModEnable.Value)
			{
				LoadBundle();
				AddLocalizations();
				AddSEPassiveEffects();
				AddSEHoTEffects();
				AddSEDoTEffects();
				AddSEInfectionEffects();
				AddSEStatsEffects();
				AddSESmokeEffects();
				LoadDoDAssets();
				AddPrefabs();
				AddSFX();
				AddMusic();
				AddCustomOres();
				CreateItems();
				CreateMonsterDropables();
				CreateOakWood();
				UpdateBlastFurnace();
				CreatePickAxe();
				CreateAnvils();
				CreateScrolls();
				PrefabManager.OnPrefabsRegistered += FixSFX;
				ZoneManager.OnVanillaLocationsAvailable += AddLocations;
				if (bossDropsEnable.Value)
				{
					PrefabManager.OnPrefabsRegistered += UpdateMonstersDrops;
				}
				if (OakEnable.Value)
				{
					ZoneManager.OnVanillaLocationsAvailable += ModifyOakTree;
				}
				if (TraderEnable.Value)
				{
					CreateHelms();
				}
				if (OresEnable.Value)
				{
					AddCustomOreDeposits();
				}
				if (WeaponsEnable.Value)
				{
					CreateWands();
					CreateMagicSwords();
					CreateSwords();
				}
				if (EVAEnable.Value)
				{
					ZoneManager.OnVanillaLocationsAvailable += UpdateForEVA;
				}
				PrefabManager.OnPrefabsRegistered += AddRecipesFromJson;
				AddTranslationsFromJson();
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding DoD Items: {arg}");
		}
	}

	private void AddLocalizations()
	{
		try
		{
			Localization = LocalizationManager.Instance.GetLocalization();
			CustomLocalization localization = Localization;
			string text = "English";
			localization.AddTranslation(ref text, new Dictionary<string, string>
			{
				{ "effect_shieldbuff_dod", "Warrior's Embrace" },
				{ "effect_shieldbuff_tooltip_dod", "<color=#00a3ff>Physical Damage Reduction</color>" },
				{ "effect_meadows_shield_dod", "Tyr's Blessing I" },
				{ "effect_blackforest_shield_dod", "Tyr's Blessing II" },
				{ "effect_swamp_shield_dod", "Tyr's Blessing III" },
				{ "effect_mountain_shield_dod", "Tyr's Blessing IV" },
				{ "effect_plains_shield_dod", "Tyr's Blessing V" },
				{ "piece_forge_ext1_description_dod", "Increases forge level by one" },
				{ "piece_forge_ext2_description_dod", "Increases forge level by one" },
				{ "piece_forge_ext3_description_dod", "Increases forge level by one" },
				{ "effect_spartanbleed_dod", "<color=#d83000>Wounding Strike</color>" },
				{ "effect_rogueslow_dod", "<color=#d83000>Eviscerate</color>" },
				{ "effect_rogueleech_dod", "<color=#d83000>Sinister Strike</color>" },
				{ "effect_prieststaffbane_dod", "<color=#d83000>Bane</color>" },
				{ "effect_prieststaff_dod", "<color=#8dccff>Lights Blessing</color>" },
				{ "effect_prieststaff_start_dod", "Lights Blessing" },
				{ "effect_paladinretribution_dod", "<color=#d83000>Retribution</color>" },
				{ "effect_paladinmace_dod", "<color=#d83000>Desecration</color>" },
				{ "effect_ninjaslow_dod", "<color=#d83000>Cripple</color>" },
				{ "effect_ninjahex_dod", "<color=#d83000>Hex</color>" },
				{ "effect_monkbleed_dod", "<color=#d83000>Electrified</color>" },
				{ "effect_dkfrost_dod", "<color=#d83000>Icy Touch</color>" },
				{ "effect_dkdebuff_dod", "<color=#d83000>Icebound</color>" },
				{ "effect_berserkerleech_dod", "<color=#d83000>Bloodthirst</color>" },
				{ "effect_berserkeraxe_dod", "<color=#8dccff>Berserker Rage</color>" },
				{ "effect_druidspear_dod", "<color=#d83000>Infection</color>" },
				{ "effect_druidheal_dod", "<color=#8dccff>Druids Blessing</color>" },
				{ "effect_druidheal_start_dod", "Druids Blessing" },
				{ "effect_sunlight_dod", "Sunlight" },
				{ "effect_sunlight_tooltip_dod", "   " },
				{ "effect_moonlight_dod", "Moonlight" },
				{ "effect_moonlight_tooltip_dod", "   " },
				{ "npc_tradertalk_demon1_dod", "Sebblshld jnjl iepbi hrni jnvrh" },
				{ "npc_tradertalk_demon2_dod", "Iepbi mgl hrl clo he naaeghmbnho" },
				{ "npc_tradertalk_demon3_dod", "Iepbi zeg fglmczmih, iepbi zeg dnjjlg..." },
				{ "npc_tradertalk_demon4_dod", "Mbmoi aegl iepbi, mbmoi ve zlhsr..." },
				{ "npc_tradertalk_demon5_dod", "Zlld rna hrni iepb, zlld rna hrmh iepb..." },
				{ "npc_tradergreet_demon1_dod", "Veed dmo" },
				{ "npc_tradergreet_demon2_dod", "Rlbbe ihgmjvlg" },
				{ "npc_tradertrade_demon1_dod", "Rmh de oep mjh?" },
				{ "npc_tradertrade_demon2_dod", "Oep mjh ieal nhlai?" },
				{ "npc_traderbye_demon1_dod", "Flvejl" },
				{ "npc_traderbye_demon2_dod", "Vlh beih" },
				{ "npc_traderbuy_demon1_dod", "Vnwl al oepg fbeed!" },
				{ "npc_traderbuy_demon2_dod", "N nbb rmwl oepg iepb!" },
				{ "npc_tradersell_demon1_dod", "Fbeed ni hrl wgnsl!" },
				{ "npc_tradersell_demon2_dod", "Oep el al oepg iepb!" },
				{ "item_gmtoken1_dod", "Bronze Token" },
				{ "item_gmtoken1_desc_dod", "A reward token" },
				{ "item_gmtoken2_dod", "Amethyst Token" },
				{ "item_gmtoken2_desc_dod", "A reward token" },
				{ "item_gmtoken3_dod", "Ruby Token" },
				{ "item_gmtoken3_desc_dod", "A reward token" },
				{ "item_gmtoken4_dod", "Gold Token" },
				{ "item_gmtoken4_desc_dod", "A reward token" },
				{ "item_bronzecup_dod", "Bronze Trophy" },
				{ "item_bronzecup_desc_dod", "A Trophy" },
				{ "item_silvercup_dod", "Silver Trophy" },
				{ "item_silvercup_desc_dod", "A Trophy" },
				{ "item_goldcup_dod", "Gold Trophy" },
				{ "item_goldcup_desc_dod", "A Trophy" },
				{ "BlackDeerHide", "Black Deer Hide" },
				{ "BlackDeerHide_desc", "Hide from a Black Deer" },
				{ "BoarTusk", "Boar Tusk" },
				{ "BoarTusk_desc", "Boar Tusk's are required to summon Ram'Bore" },
				{ "CharredBoneFragments", "Charred Bone Fragments" },
				{ "CharredBoneFragments_desc", "Fragments of charred bone" },
				{ "DireWolfHide", "Dire Wolf Hide" },
				{ "DireWolfHide_desc", "Hide of a Dire Wolf" },
				{ "ForestWolfHide", "Forest Wolf Hide" },
				{ "ForestWolfHide_desc", "Hide of a Forest Wolf" },
				{ "FrostlingCore", "Frostling Core" },
				{ "FrostlingCore_desc", "Core from a Frostling Demon" },
				{ "FrozenBoneFragment", "Frozen Bone Fragment" },
				{ "FrozenBoneFragment_desc", "Fragments of frozen bone" },
				{ "GreydwarfHeart", "Greydwarf Heart" },
				{ "GreydwarfHeart_desc", "Greydwarf Heart's are required to summon Bitterstump" },
				{ "GreyPearl", "Grey Pearl" },
				{ "GreyPearl_desc", "Not so shinny pearl" },
				{ "InfusedGemstone", "Infused Gemstone" },
				{ "InfusedGemstone_desc", "You feel an energy within" },
				{ "LargeFang", "Large Fang" },
				{ "LargeFang_desc", "Large Fang's are required to summon Farkas" },
				{ "RubyFoci", "Ruby Foci" },
				{ "RubyFoci_desc", "Ruby Foci are required to summon Skir Sandburst" },
				{ "SkeletonBones", "Skeleton Bones" },
				{ "SkeletonBones_desc", "Skeleton Bones are required for summoning Bhygshan" },
				{ "BlackChitin", "Black Chitin" },
				{ "BlackChitin_desc", "Chitin obtained from a spider" },
				{ "StormlingCore", "Stormling Core" },
				{ "StormlingCore_desc", "Core from a Stormling Demon" },
				{ "VoidlingCore", "Voidling Core" },
				{ "VoidlingCore_desc", "Core from a Voidling Demon" },
				{ "item_infusedgemstone_dod", "Infused Gemstone" },
				{ "item_infusedgemstone_desc_dod", "Gemstone infused with some sort of energy" },
				{ "item_token_skull_dod", "Skull Token" },
				{ "item_token_skull_description_dod", "Can be used for crafting or currency" },
				{ "piece_inscription_ext_shelf_dod", "Shelf of Knowing" },
				{ "piece_inscription_ext_bookcase_dod", "Bookcase of Knowledge" },
				{ "piece_inscription_ext_arcane_dod", "Book of Arcane" },
				{ "piece_inscription_ext_fire_dod", "Book of Fire" },
				{ "piece_inscription_ext_light_dod", "Book of Light" },
				{ "piece_inscription_ext_dark_dod", "Book of Dark" },
				{ "piece_inscription_ext_ice_dod", "Book of Ice" },
				{ "piece_inscription_ext_storm_dod", "Book of Storm" },
				{ "piece_inscription_ext_life_dod", "Book of Life" },
				{ "piece_inscription_upgrade_dod", "Upgrade's the Inscription station" },
				{ "piece_inscription_upgradewall_dod", "Upgrade's the Inscription station, goes on the wall for those that think shelves go on floors!" },
				{ "enemy_sharky_dod", "Sharky" },
				{ "enemy_craby_dod", "Crabby" },
				{ "item_spellbook_muspelheimv1_dod", "Muspelheim Vol.I" },
				{ "item_spellbook_muspelheimv1_desc_dod", "A book of learning from the realm of Muspelheim, home of the Fire Demons. Going from the notes inside the book, it seems this belonged to a student of the mystical arts.\n \nPrimary Ability\nName: <color=orange>Wall of Flames</color>\nSize: <color=orange>5m long</color>\nCast Type: <color=orange>Instant, 5m in front</color>\nFire Damage: <color=orange>3 per particle hit</color>\nDuration: <color=orange>7s</color>\n \nSecondary Ability\nType: <color=orange>Flame Wave</color>\nSize: <color=orange>3.5m wide</color>\nCast Type: <color=orange>Instant, 1m in front</color>\nFire Damage: <color=orange>30 Impact</color>\n             <color=orange>3 per particle hit</color>\nRange: <color=orange>15m</color>" },
				{ "item_spellbook_ashes_dod", "Muspelheim Vol.III" },
				{ "item_spellbook_ashes_desc_dod", "A book of learning from the realm of Muspelheim, home of the Fire Demons. Going from the notes inside the book, it seems this belonged to a student of the mystical arts.\n Secondary Ability\nType: <color=orange>Meteor Storm</color>\nDiameter: <color=orange>12m</color>\nDamage: <color=orange>200 per hit</color>\nDamage per Level: <color=orange>10</color>\nDuration: <color=orange>5s</color>" },
				{ "item_spellbook_healing_dod", "Alfheim Vol.I" },
				{ "item_spellbook_healing_desc_dod", "A book of learning from the realm of Alfheim, home of the Light Elves. Going from the notes inside the book, it seems this belonged to a student of the mystical arts.\n <color=green>Healing Shot</color>\nHealing: <color=orange>10</color>\n \n<color=green>Regeneration</color>\nHealing: <color=orange>6 per second</color>\nStamina Gain: <color=orange>6 per second</color>\nDuration: <color=orange>10</color>\nEitr Cost: <color=orange>75</color>" },
				{ "item_spellbook_restoration_dod", "Alfheim Vol.II" },
				{ "item_spellbook_restoration_desc_dod", "A book of learning from the realm of Alfheim, home of the Light Elves. Going from the notes inside the book, it seems this belonged to a student of the mystical arts.\n \nPrimary Ability\nName: <color=orange>Healing Waters</color>\nCast Type: <color=orange>Projectile</color>\nLifetime: <color=orange>5s</color>\nHealing: <color=orange>8</color>\nInterval: <color=orange>0.5s</color>\nDuration: <color=orange>8s</color>\nTotal Healing: <color=orange>160</color>\n \nSecondary Ability\n \nName: <color=orange>Healing Rain</color>\nCast Type: <color=orange>Instant AoE, 3m in front</color>\nHealing: <color=orange>5 per hit</color>\nDuration: <color=orange>10s</color>\nArea of Effect: <color=orange>14m</color>" },
				{ "item_spellbook_summon_dod", "Svartalfheim Vol.I" },
				{ "item_spellbook_summon_desc_dod", "A book of learning from the realm of Svartalfheim, home of the Dark Elves. Going from the notes inside the book, it seems this belonged to a student of the mystical arts.\n <color=blue>Summon Sharky</color>\n  Health: <color=orange>500</color>\n  Damage: <color=orange>80-100</color>\n  Eitr Cost: <color=orange>75</color>\n  Health Cost: <color=orange>25%</color>\n \n<color=blue>Summon Crabby</color>\n  Health: <color=orange>1250</color>\n  Damage: <color=orange>130-150</color>\n  Eitr Cost: <color=orange>150</color>\n  Health Cost: <color=orange>50%</color>" },
				{ "item_spellbook_storms_dod", "Vanaheim Vol.I" },
				{ "item_spellbook_storms_desc_dod", "A book of learning from the realm of Svartalfheim, homeland of the Vanir. Going from the notes inside the book, it seems this belonged to a student of the mystical arts.\n Secondary Ability\nType: <color=orange>Lightning Storm</color>\nDiameter: <color=orange>8m</color>\nDamage: <color=orange>1 every 0.5s</color>\nDamage per Level: <color=orange>1</color>\nDuration: <color=orange>6.5s</color>" },
				{ "item_spellbook_north_dod", "Jotunheim Vol.I" },
				{ "item_spellbook_north_desc_dod", "A book of learning from the realm of Svartalfheim, home of the Frost Giants. Going from the notes inside the book, it seems this belonged to a student of the mystical arts.\n Secondary Ability\nType: <color=orange>Frost Cloud</color>\nDiameter: <color=orange>8m</color>\nDamage: <color=orange>1 every 0.5s</color>\nDamage per Level: <color=orange>1</color>\nDuration: <color=orange>6.5s</color>" },
				{ "piece_inscriptiontable_dod", "Inscription Desk" },
				{ "piece_inscriptiontable_desc_dod", "Lets you create magic Scrolls and Spellbooks" },
				{ "item_inkpot_dod", "Magic Ink" },
				{ "item_inkpot_desc_dod", "Invisible ink, can be used in Inscription to draw runes" },
				{ "item_rollparchment_dod", "Roll of Parchment" },
				{ "item_rollparchment_desc_dod", "Large roll of parchment, can be used in Inscription to make scrolls" },
				{ "item_notachickenegg_dod", "Chickin Egg" },
				{ "item_notachickenegg_desc_dod", "This does not look much like a Chicken Egg, wonder what a Chickin is..." },
				{ "item_cowl_rogue_hv", "Rogue Hood" },
				{ "item_cowl_rogue_desc_hv", "Made by an evil wizard" },
				{ "item_cowl_blue_hv", "Storm Cowl" },
				{ "item_cowl_blue_desc_hv", "Made by an evil wizard" },
				{ "item_cowl_green_hv", "Bane Cowl" },
				{ "item_cowl_green_desc_hv", "Made by an evil wizard" },
				{ "item_cowl_red_hv", "Flame Cowl" },
				{ "item_cowl_red_desc_hv", "Made by an evil wizard" },
				{ "item_cowl_teal_hv", "Frost Cowl" },
				{ "item_cowl_teal_desc_hv", "Made by an evil wizard" },
				{ "item_helmet_drake_hv", "Helm of Novrenienth" },
				{ "item_helmet_drake_desc_hv", "Made from dragon scales" },
				{ "item_helmet_drakeblack_hv", "Raykaynty's Bane" },
				{ "item_helmet_drakeblack_desc_hv", "Made from dragon scales" },
				{ "item_helmet_drakeblackred_hv", "Vemreor's Headguard" },
				{ "item_helmet_drakeblackred_desc_hv", "Made from dragon scales" },
				{ "item_helmet_drakebrown_hv", "Scaled Helm of Zyddron" },
				{ "item_helmet_drakebrown_desc_hv", "Made from dragon scales" },
				{ "item_helmet_drakegreen_hv", "Frammurth's Casque" },
				{ "item_helmet_drakegreen_desc_hv", "Made from dragon scales" },
				{ "item_helmet_drakepurple_hv", "Frinarry's Helm" },
				{ "item_helmet_drakepurple_desc_hv", "Made from dragon scales" },
				{ "item_helmet_draketeal_hv", "Yzzus's Helmet" },
				{ "item_helmet_draketeal_desc_hv", "Made from dragon scales" },
				{ "item_helmet_drakewhite_hv", "Brozacrenth's Faceguard" },
				{ "item_helmet_drakewhite_desc_hv", "Made from dragon scales" },
				{ "effect_helmet_drake_tooltip_hv", "Health: <color=orange>1 per 5s</color>\nJump: <color=orange>3%</color>" },
				{ "effect_cowl_tooltip_hv", "Jump: <color=orange>3%</color>" },
				{ "trader_lich_dod", "Bosgug" },
				{ "trader_ocean_dod", "Bozzoth" },
				{ "trader_meadows_dod", "Broggomoz" },
				{ "item_moonlight_dod", "Moonlight" },
				{ "item_moonlight_desc_dod", "Sword infused with the light of the moon." },
				{ "item_sunlight_dod", "Sunlight" },
				{ "item_sunlight_desc_dod", "Sword infused with the light of the Sun." },
				{ "effect_scrollminorregen_dod", "Minor Regeneration" },
				{ "effect_scrollminorregen_tooltip_dod", "   " },
				{ "effect_scrollregen_dod", "Regeneration" },
				{ "effect_scrollregen_tooltip_dod", "   " },
				{ "effect_minorremove_dod", "Restored" },
				{ "effect_remove_dod", "Restored" },
				{ "effect_majorremove_dod", "Restored" },
				{ "effect_nodispel_dod", "There is nothing to heal" },
				{ "effect_healingwaters_dod", "Healing Waters" },
				{ "effect_healingwaters_tooltip_dod", " " },
				{ "effect_healingrain_dod", "Healing Rain" },
				{ "scroll_minorregen_dod", "Minor Regeneration" },
				{ "scroll_minorregen_desc_dod", " " },
				{ "scroll_regen_dod", "Regeneration" },
				{ "scroll_regen_desc_dod", " " },
				{ "scroll_majorregen_dod", "Major Regeneration" },
				{ "scroll_majorregen_desc_dod", "   " },
				{ "scroll_extradamage_dod", "Scroll of Brute's Strength" },
				{ "scroll_extradamage_desc_dod", " " },
				{ "scroll_blank_dod", "Rune Scroll" },
				{ "scroll_blank_desc_dod", "Required to make magic scrolls" },
				{ "scroll_bless_dod", "Scroll of Blessing" },
				{ "scroll_bless_desc_dod", "Removes ailment's and infection's." },
				{ "scroll_curewounds_dod", "Cure Wound's Scroll" },
				{ "scroll_curewounds_desc_dod", "Removes bleeding wound's and weaknesses." },
				{ "scroll_elementalprotection_dod", "Scroll of Elemental Protection" },
				{ "scroll_elementalprotection_desc_dod", " " },
				{ "scroll_fireprotection_dod", "Scroll of Fire Protection" },
				{ "scroll_fireprotection_desc_dod", " " },
				{ "scroll_frostprotection_dod", "Scroll of Frost Protection" },
				{ "scroll_frostprotection_desc_dod", " " },
				{ "scroll_poisonprotection_dod", "Scroll of Poison Protection" },
				{ "scroll_poisonprotection_desc_dod", " " },
				{ "scroll_lightningprotection_dod", "Scroll of Lightning Protection" },
				{ "scroll_lightningprotection_desc_dod", " " },
				{ "scroll_physicalprotection_dod", "Scroll of Physical Protection" },
				{ "scroll_physicalprotection_desc_dod", " " },
				{ "scroll_minorheal_dod", "Minor Heal" },
				{ "scroll_minorheal_desc_dod", " " },
				{ "scroll_heal_dod", "Heal" },
				{ "scroll_heal_desc_dod", " " },
				{ "scroll_majorheal_dod", "Major Heal" },
				{ "scroll_majorheal_desc_dod", " " },
				{ "scroll_magefoodpoor_dod", "Poor Mage Food" },
				{ "scroll_magefoodpoor_desc_dod", "Food fit for a novice magic user" },
				{ "scroll_magefoodaverage_dod", "Average Mage Food" },
				{ "scroll_magefoodaverage_desc_dod", "Food fit for a apprentice magic user" },
				{ "scroll_magefoodnormal_dod", "Mage Food" },
				{ "scroll_magefoodnormal_desc_dod", "Food fit for a journeyman magic user" },
				{ "scroll_magefoodgood_dod", "Good Mage Food" },
				{ "scroll_magefoodgood_desc_dod", "Food fit for a master magic user" },
				{ "scroll_magefoodgreat_dod", "Great Mage Food" },
				{ "scroll_magefoodgreat_desc_dod", "Food fit for a grand master magic user" },
				{ "effect_extradamage_dod", "Brute's Strength" },
				{ "effect_extradamage_tooltip_dod", "Length: <color=orange>2m</color>\nDamage: <color=orange>20%</color>" },
				{ "effect_damage_end_dod", "Damage returned to normal" },
				{ "effect_divineprotection_dod", "Divine Protection" },
				{ "effect_divineprotection_tooltip_dod", "Your defence and damage with clubs has been increased" },
				{ "effect_elementalprotection_dod", "Elemental Protection" },
				{ "effect_elementalprotection_tooltip_dod", "Resistance increased" },
				{ "effect_fireprotection_dod", "Fire Protection" },
				{ "effect_fireprotection_tooltip_dod", "Resistance increased" },
				{ "effect_frostprotection_dod", "Frost Protection" },
				{ "effect_frostprotection_tooltip_dod", "Resistance increased" },
				{ "effect_poisonprotection_dod", "Poison Protection" },
				{ "effect_poisonprotection_tooltip_dod", "Resistance increased" },
				{ "effect_lightningprotection_dod", "Lightning Protection" },
				{ "effect_lightningprotection_tooltip_dod", "Resistance increased" },
				{ "effect_physicalprotection_dod", "Physical Protection" },
				{ "effect_physicalprotection_tooltip_dod", "Resistance increased" },
				{ "effect_protection_end_dod", "Resistance returned to normal" },
				{ "effect_scrollminorheal_dod", "Minor Heal" },
				{ "effect_scrollminorheal_tooltip_dod", "Healed" },
				{ "effect_scrollheal_dod", "Heal" },
				{ "effect_scrollheal_tooltip_dod", "Healed" },
				{ "effect_scrollmajorheal_dod", "Major Heal" },
				{ "effect_scrollmajorheal_tooltip_dod", "Healed" },
				{ "effect_curewounds_dod", "Cure Wounds" },
				{ "effect_curewounds_tooltip_dod", "You have been restored" },
				{ "effect_bless_dod", "Bless" },
				{ "effect_bless_tooltip_dod", "You have been blessed" },
				{ "item_felmetalore_dod", "Adamantine Ore" },
				{ "item_felmetalore_desc_dod", "The plane of Arborea is a realm of wondrous sights, sprawling nature and passionate people. Adamantine weapons and armor is the material of choice for the Greek Pantheon's personal armory. Some of the most famous weapons and armor in the history of the realms have been made from Adamantine." },
				{ "item_felmetalbar_dod", "Adamantine Bar" },
				{ "item_felmetalbar_desc_dod", "Regardless of its origins, the heavy and destructive metal is as magical as it is deadly, rivaling Valhallium in material effectiveness while still being able to retain enchantments." },
				{ "item_frometalore_dod", "Valhallium Ore" },
				{ "item_frometalore_desc_dod", "The metal that they mine on this plane is known as Valhallium, given as a gift from the Norse gods for their deceased heroes’ bravery, so that they can fight honorable battles for eternity." },
				{ "item_frometalbar_dod", "Valhallium Bar" },
				{ "item_frometalbar_desc_dod", "Valhallium is a metal that can be sharpened finer than any other, protects greater than any other, and deals death more easily than any other." },
				{ "item_steelbar_dod", "Steel Bar" },
				{ "item_steelbar_desc_dod", "Hardened iron good for making items that last." },
				{ "item_pickaxe_steel_dod", "Steel Pickaxe" },
				{ "item_pickaxe_steel_description_dod", "Required to mine Adamantine Ore and Valhallium Ore" },
				{ "object_glowmetal_dod", "Meteorite" },
				{ "object_glowmetal_ml_dod", "Meteorite" },
				{ "item_spartan_sword", "Spartan's Blade" },
				{ "item_spartan_sword_desc", "You can feel a tingling when you touch this sword." },
				{ "item_priest_staff", "Holy Staff" },
				{ "item_priest_staff_desc", "Warm to the touch, you can feel the energy contained within." },
				{ "RagingBattleaxe", "Raging Battleaxe" },
				{ "RagingBattleaxe_desc", "It glows..." },
				{ "ChillingAxe", "Chilling Axe" },
				{ "ChillingAxe_desc", "You can feel a chilling presence when you touch this blade." },
				{ "AcidSpear", "Acid Spear" },
				{ "AcidSpear_desc", "Smell's bad..." },
				{ "FireWand", "Fire Wand" },
				{ "FireWand_desc", "Warm to the touch, you can feel the energy contained within." },
				{ "StrikingMace", "Striking Mace" },
				{ "StrikingMace_desc", "You can feel a tingling when you touch this mace." },
				{ "VoidSword", "Void Sword" },
				{ "VoidSword_desc", "You can feel a chilling presence when you touch this blade." },
				{ "DivineMace", "Divine Mace" },
				{ "DivineMace_desc", "Warm to the touch, you can feel the energy contained within." },
				{ "AssassinsBlade", "Assassin's Blade" },
				{ "AssassinsBlade_desc", "You can feel an evil presence when you touch this blade." },
				{ "LightningWand", "Lightning Wand" },
				{ "LightningWand_desc", "Tingles to the touch, you can feel the energy contained within." },
				{ "ShadowWand", "Shadow Wand" },
				{ "ShadowWand_desc", "Cold to the touch, you can feel the energy contained within." },
				{ "essence_archer", "Ranger Token" },
				{ "essence_archer_desc", "Required for some recipes" },
				{ "essence_berserker", "Berserker Token" },
				{ "essence_berserker_desc", "Required for some recipes" },
				{ "essence_deathknight", "Death Knight Token" },
				{ "essence_deathknight_desc", "Required for some recipes" },
				{ "essence_druid", "Druid Token" },
				{ "essence_druid_desc", "Required for some recipes" },
				{ "essence_engineer", "Engineer Token" },
				{ "essence_engineer_desc", "Required for some recipes" },
				{ "essence_mage", "Mage Token" },
				{ "essence_mage_desc", "Required for some recipes" },
				{ "essence_monk", "Monk Token" },
				{ "essence_monk_desc", "Required for some recipes" },
				{ "essence_ninja", "Assassin Token" },
				{ "essence_ninja_desc", "Required for some recipes" },
				{ "essence_paladin", "Paladin Token" },
				{ "essence_paladin_desc", "Required for some recipes" },
				{ "essence_rogue", "Rogue Token" },
				{ "essence_rogue_desc", "Required for some recipes" },
				{ "essence_shaman", "Shaman Token" },
				{ "essence_shaman_desc", "Required for some recipes" },
				{ "essence_warlock", "Warlock Token" },
				{ "essence_warlock_desc", "Required for some recipes" },
				{ "essence_priest", "Priest Token" },
				{ "essence_priest_desc", "Required for some recipes" },
				{ "essence_spartan", "Warrior Token" },
				{ "essence_spartan_desc", "Required for some recipes" },
				{ "item_arrow_ashlands_dod", "Firery Arrow" },
				{ "item_arrow_ashlands_desc_dod", "It is time to get warm and cozy..." },
				{ "item_arrow_deepnorth_dod", "Frosty Arrow" },
				{ "item_arrow_deepnorth_desc_dod", "Time to find them furs..." },
				{ "item_arrow_mistlands_dod", "Shocking Arrow" },
				{ "item_arrow_mistlands_desc_dod", "A shocking wake up call..." },
				{ "item_shield_bgskull_dod", "Bhygshan's Broken Shield" },
				{ "item_shield_bgskull_description_dod", "Used to be Bhygshan's shield before you broke it while fighting him. Wonder if you can fix it." },
				{ "item_shield_byagluth_dod", "Broken Shield" },
				{ "item_shield_byagluth_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_bskir_dod", "Broken Shield" },
				{ "item_shield_bskir_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_bmoder_dod", "Broken Shield" },
				{ "item_shield_bmoder_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_bfarkas_dod", "Broken Shield" },
				{ "item_shield_bfarkas_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_bbonemass_dod", "Broken Shield" },
				{ "item_shield_bbonemass_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_belder_dod", "Broken Shield" },
				{ "item_shield_belder_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_bbitterstump_dod", "Broken Shield" },
				{ "item_shield_bbitterstump_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_beikthyr_dod", "Broken Shield" },
				{ "item_shield_beikthyr_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_brambone_dod", "Broken Shield" },
				{ "item_shield_brambone_description_dod", "Wonder if you can fix it. Feel free to offer description suggestions for this item." },
				{ "item_shield_yagluth_dod", "Deathgate" },
				{ "item_shield_yagluth_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_shield_skir_dod", "Curator Ward" },
				{ "item_shield_skir_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_shield_moder_dod", "Perfect Storm" },
				{ "item_shield_moder_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_shield_farkas_dod", "Frozen Light" },
				{ "item_shield_farkas_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_shield_bonemass_dod", "Ghostly Wall" },
				{ "item_shield_bonemass_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_shield_bhygshan_dod", "Vortex, Conservator of the Dead" },
				{ "item_shield_bhygshan_description_dod", "You repaired Bhygshans Shield, congratulations! Feel free to offer description suggestions for this item." },
				{ "item_shield_elder_dod", "Ironbark" },
				{ "item_shield_elder_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_shield_bitterstump_dod", "Darkheart" },
				{ "item_shield_bitterstump_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_shield_eikthyr_dod", "Thundercloud" },
				{ "item_shield_eikthyr_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_shield_rambone_dod", "Enforcer" },
				{ "item_shield_rambone_description_dod", "Feel free to offer description suggestions for this item." },
				{ "item_mace_bhygshan_dod", "Defiled Warmace" },
				{ "item_mace_bhygshan_description_dod", "Defiled Warmace. Feel free to offer suggestions for this description." },
				{ "item_bow_blackforest_dod", "Hornet" },
				{ "item_bow_blackforest_description_dod", "Hornet. Feel free to offer suggestions for this description." },
				{ "item_bow_swamp_dod", "Sting, Serpent of Regret" },
				{ "item_bow_swamp_description_dod", "Sting, Serpent of Regret. Feel free to offer suggestions for this description." },
				{ "item_bow_mountain_dod", "Razorwind, Ferocity of Redemption" },
				{ "item_bow_mountain_description_dod", "Razorwind, Ferocity of Redemption. Feel free to offer suggestions for this description." },
				{ "item_bow_plains_dod", "Stryker, Guardian of the Sun" },
				{ "item_bow_plains_description_dod", "Stryker, Guardian of the Sun. Feel free to offer suggestions for this description." },
				{ "item_bow_mistlands_dod", "Soulstring, Memory of the Damned" },
				{ "item_bow_mistlands_description_dod", "Soulstring, Memory of the Damned. Feel free to offer suggestions for this description." },
				{ "item_bow_deepnorth_dod", "Siren's Song, Vengeance of the Incoming Storm" },
				{ "item_bow_deepnorth_description_dod", "Siren's Song, Vengeance of the Incoming Storm. Feel free to offer suggestions for this description." },
				{ "item_sword_meadows_dod", "Betrayer, Ferocity of Hate" },
				{ "item_sword_meadows_description_dod", "Betrayer, Ferocity of Hate. Feel free to offer suggestions for this description." },
				{ "item_sword_swamp_dod", "Ghost Reaver, Crusader of the Plague" },
				{ "item_sword_swamp_description_dod", "Ghost Reaver, Crusader of the Plague. Feel free to offer suggestions for this description." },
				{ "item_sword_plains_dod", "Light's Bane, Blade of Justice" },
				{ "item_sword_plains_description_dod", "Light's Bane, Blade of Justice. Feel free to offer suggestions for this description." },
				{ "item_sword_mistlands_dod", "Misery, Call of Denial" },
				{ "item_sword_mistlands_description_dod", "Misery, Call of Denial. Feel free to offer suggestions for this description." },
				{ "item_sword_deepnorth_dod", "Fate, Frostblade of Frozen Hells" },
				{ "item_sword_deepnorth_description_dod", "Fate, Frostblade of Frozen Hells. Feel free to offer suggestions for this description." },
				{ "item_sword_ashlands_dod", "Hellfire, Spine of Twisted Visions" },
				{ "item_sword_ashlands_description_dod", "Hellfire, Spine of Twisted Visions. Feel free to offer suggestions for this description." },
				{ "item_mountainwand_dod", "Snowfall, Instrument of the Champion" },
				{ "item_mountainwand_description_dod", "Snowfall, Instrument of the Champion. Feel free to offer suggestions for this description." },
				{ "item_mace_deepnorth_dod", "Silence, Edge of the World" },
				{ "item_mace_deepnorth_description_dod", "Silence, Edge of the World. Feel free to offer suggestions for this description." },
				{ "item_mace_mistlands_dod", "Abomination, Memory of Giants" },
				{ "item_mace_mistlands_description_dod", "Abomination, Memory of Giants. Feel free to offer suggestions for this description." },
				{ "piece_forge_ext1_dod", "Felmetal Anvils" },
				{ "piece_forge_ext2_dod", "Frometal Anvils" },
				{ "piece_forge_ext3_dod", "Flametal Anvils" },
				{ "item_crudearmorkit_dod", "Crude Armor Cache" },
				{ "item_crudearmorkit_description_dod", "Used for crafting Armor or can be sold to the Trader." },
				{ "item_basicarmorkit_dod", "Basic Armor Cache" },
				{ "item_basicarmorkit_description_dod", "Used for crafting Armor or can be sold to the Trader." },
				{ "item_goodarmorkit_dod", "Good Armor Cache" },
				{ "item_goodarmorkit_description_dod", "Used for crafting Armor or can be sold to the Trader." },
				{ "item_greatarmorkit_dod", "Great Armor Cache" },
				{ "item_greatarmorkit_description_dod", "Used for crafting Armor or can be sold to the Trader." },
				{ "item_superiorarmorkit_dod", "Superior Armor Cache" },
				{ "item_superiorarmorkit_description_dod", "Used for crafting Armor or can be sold to the Trader." },
				{ "item_excellentarmorkit_dod", "Excellent Armor Cache" },
				{ "item_excellentarmorkit_description_dod", "Used for crafting Armor or can be sold to the Trader." },
				{ "item_exceptionalarmorkit_dod", "Exceptional Armor Cache" },
				{ "item_exceptionalarmorkit_description_dod", "Used for crafting Armor or can be sold to the Trader." },
				{ "item_extraordinaryarmorkit_dod", "Extraordinary Armor Cache" },
				{ "item_extraordinaryarmorkit_description_dod", "Used for crafting Armor or can be sold to the Trader." },
				{ "item_crudeweaponkit_dod", "Crude Weapon Cache" },
				{ "item_crudeweaponkit_description_dod", "Used for crafting Weapons or can be sold to the Trader." },
				{ "item_basicweaponkit_dod", "Basic Weapon Cache" },
				{ "item_basicweaponkit_description_dod", "Used for crafting Weapons or can be sold to the Trader." },
				{ "item_goodweaponkit_dod", "Good Weapon Cache" },
				{ "item_goodweaponkit_description_dod", "Used for crafting Weapons or can be sold to the Trader." },
				{ "item_greatweaponkit_dod", "Great Weapon Cache" },
				{ "item_greatweaponkit_description_dod", "Used for crafting Weapons or can be sold to the Trader." },
				{ "item_superiorweaponkit_dod", "Superior Weapon Cache" },
				{ "item_superiorweaponkit_description_dod", "Used for crafting Weapons or can be sold to the Trader." },
				{ "item_excellentweaponkit_dod", "Excellent Weapon Cache" },
				{ "item_excellentweaponkit_description_dod", "Used for crafting Weapons or can be sold to the Trader." },
				{ "item_exceptionalweaponkit_dod", "Exceptional Weapon Cache" },
				{ "item_exceptionalweaponkit_description_dod", "Used for crafting Weapons or can be sold to the Trader." },
				{ "item_extraordinaryweaponkit_dod", "Extraordinary Weapon Cache" },
				{ "item_extraordinaryweaponkit_description_dod", "Used for crafting Weapons or can be sold to the Trader." },
				{ "item_oakwood_dod", "Hardwood" },
				{ "item_oakwood_description_dod", "Hardwood is used in crafting" }
			});
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Localication for DoD Items: {arg}");
		}
	}

	public void LoadBundle()
	{
		try
		{
			DoDAssets = AssetUtils.LoadAssetBundleFromResources("doditems", Assembly.GetExecutingAssembly());
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while loading bundle: {arg}");
		}
	}

	private void LoadDoDAssets()
	{
		try
		{
			TexFlaAnvil = DoDAssets.LoadAsset<Sprite>("FlaAnvil_Icon_DoD");
			TexFroAnvil = DoDAssets.LoadAsset<Sprite>("FroAnvil_Icon_DoD");
			TexFelAnvil = DoDAssets.LoadAsset<Sprite>("FelAnvil_Icon_DoD");
			AnvilsFel = DoDAssets.LoadAsset<GameObject>("FelmetalAnvils_DoD");
			AnvilsFro = DoDAssets.LoadAsset<GameObject>("FrometalAnvils_DoD");
			AnvilsFlam = DoDAssets.LoadAsset<GameObject>("FlametalAnvils_DoD");
			SteelPick = DoDAssets.LoadAsset<GameObject>("SteelPickaxe_DoD");
			SwordMoonlight = DoDAssets.LoadAsset<GameObject>("MoonSword_DoD");
			SwordSunlight = DoDAssets.LoadAsset<GameObject>("SunSword_DoD");
			BhygshanMace = DoDAssets.LoadAsset<GameObject>("BhygshanMace_DoD");
			SwordMeadows = DoDAssets.LoadAsset<GameObject>("Sword_Meadows_DoD");
			SwordSwamp = DoDAssets.LoadAsset<GameObject>("Sword_Swamp_DoD");
			SwordPlains = DoDAssets.LoadAsset<GameObject>("Sword_Plains_DoD");
			SwordMistlands = DoDAssets.LoadAsset<GameObject>("Sword_Mistlands_DoD");
			SwordDeepNorth = DoDAssets.LoadAsset<GameObject>("Sword_DeepNorth_DoD");
			SwordAshLands = DoDAssets.LoadAsset<GameObject>("Sword_AshLands_DoD");
			WandMountains = DoDAssets.LoadAsset<GameObject>("Wand_Mountain_DoD");
			Firesoul = DoDAssets.LoadAsset<GameObject>("SwordFlametal1_DoD");
			Solarflare = DoDAssets.LoadAsset<GameObject>("SwordFlametal2_DoD");
			Reaper = DoDAssets.LoadAsset<GameObject>("SwordFelmetal1_DoD");
			Desolation = DoDAssets.LoadAsset<GameObject>("SwordFelmetal2_DoD");
			Soulstorm = DoDAssets.LoadAsset<GameObject>("Stormblade_DoD");
			Silverlight = DoDAssets.LoadAsset<GameObject>("SwordFrometal2_DoD");
			Coldflame = DoDAssets.LoadAsset<GameObject>("SwordFrometal1_DoD");
			Frostflame = DoDAssets.LoadAsset<GameObject>("SwordFrometal3_DoD");
			Nethersbane = DoDAssets.LoadAsset<GameObject>("SwordSpirit_DoD");
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while loading assets: {arg}");
		}
	}

	private void AddPrefabs()
	{
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Expected O, but got Unknown
		try
		{
			string[] array = prefabList;
			foreach (string text in array)
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab(text);
				if ((Object)(object)prefab == (Object)null)
				{
					GameObject val = DoDAssets.LoadAsset<GameObject>(text);
					CustomPrefab val2 = new CustomPrefab(val, true);
					PrefabManager.Instance.AddPrefab(val2);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Object database"));
					}
				}
				else if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the Object database, this is due to it already been added by another mod"));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Prefabs: {arg}");
		}
	}

	private void AddSFX()
	{
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Expected O, but got Unknown
		try
		{
			string[] array = sfxList;
			foreach (string text in array)
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab(text);
				if ((Object)(object)prefab == (Object)null)
				{
					GameObject val = DoDAssets.LoadAsset<GameObject>(text);
					CustomPrefab val2 = new CustomPrefab(val, false);
					PrefabManager.Instance.AddPrefab(val2);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Object database"));
					}
				}
				else if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the Object database, this is due to it already been added by another mod"));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding sfx prefabs: {arg}");
		}
	}

	private void AddMusic()
	{
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Expected O, but got Unknown
		try
		{
			string[] array = musicList;
			foreach (string text in array)
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab(text);
				if ((Object)(object)prefab == (Object)null)
				{
					GameObject val = DoDAssets.LoadAsset<GameObject>(text);
					CustomPrefab val2 = new CustomPrefab(val, false);
					PrefabManager.Instance.AddPrefab(val2);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Object database"));
					}
				}
				else if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the Object database, this is due to it already been added by another mod"));
				}
			}
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding music prefabs: {arg}");
		}
	}

	private void CreatePieceTables()
	{
		//IL_0014: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		try
		{
			GameObject val = DoDAssets.LoadAsset<GameObject>("_InscriptionTable");
			CustomPieceTable val2 = new CustomPieceTable(val);
			PieceManager.Instance.AddPieceTable(val2);
		}
		catch (Exception arg)
		{
			((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding piece tables: {arg}");
		}
	}

	private void CreateScrolls()
	{
		//IL_0023: Unknown result type (might be due to invalid IL or missing references)
		//IL_002a: Expected O, but got Unknown
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_0039: Unknown result type (might be due to invalid IL or missing references)
		//IL_0045: Unknown result type (might be due to invalid IL or missing references)
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_0059: Unknown result type (might be due to invalid IL or missing references)
		//IL_0061: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		//IL_0072: Expected O, but got Unknown
		//IL_0079: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: 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_00b1: 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_00c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00de: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ef: Expected O, but got Unknown
		//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: Expected O, but got Unknown
		//IL_0143: Unknown result type (might be due to invalid IL or missing references)
		//IL_014a: Expected O, but got Unknown
		//IL_016e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0173: Unknown result type (might be due to invalid IL or missing references)
		//IL_017f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0188: Unknown result type (might be due to invalid IL or missing references)
		//IL_0191: Expected O, but got Unknown
		//IL_0193: Unknown result type (might be due to invalid IL or missing references)
		//IL_0198: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b6: 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_01c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01da: Expected O, but got Unknown
		//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fe: Expected O, but got Unknown
		//IL_0206: Unknown result type (might be due to invalid IL or missing references)
		//IL_020d: Expected O, but got Unknown
		//IL_022f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0236: Expected O, but got Unknown
		//IL_025a: Unknown result type (might be due to invalid IL or missing references)
		//IL_025f: Unknown result type (might be due to invalid IL or missing references)
		//IL_026b: 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_027d: Expected O, but got Unknown
		//IL_027f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0284: Unknown result type (might be due to invalid IL or missing references)
		//IL_0290: Unknown result type (might be due to invalid IL or missing references)
		//IL_0299: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a2: Expected O, but got Unknown
		//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c6: Expected O, but got Unknown
		//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ea: Expected O, but got Unknown
		//IL_02f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f9: Expected O, but got Unknown
		//IL_031b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0322: Expected O, but got Unknown
		//IL_0346: Unknown result type (might be due to invalid IL or missing references)
		//IL_034b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0357: Unknown result type (might be due to invalid IL or missing references)
		//IL_0360: Unknown result type (might be due to invalid IL or missing references)
		//IL_0369: Expected O, but got Unknown
		//IL_036b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0370: Unknown result type (might be due to invalid IL or missing references)
		//IL_037c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0385: Unknown result type (might be due to invalid IL or missing references)
		//IL_038e: 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_03a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b2: Expected O, but got Unknown
		//IL_03b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b9: 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_03cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d6: Expected O, but got Unknown
		//IL_03de: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e5: Expected O, but got Unknown
		//IL_0407: Unknown result type (might be due to invalid IL or missing references)
		//IL_040e: Expected O, but got Unknown
		//IL_0432: Unknown result type (might be due to invalid IL or missing references)
		//IL_0437: Unknown result type (might be due to invalid IL or missing references)
		//IL_0443: Unknown result type (might be due to invalid IL or missing references)
		//IL_044c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0455: Expected O, but got Unknown
		//IL_0457: Unknown result type (might be due to invalid IL or missing references)
		//IL_045c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0468: Unknown result type (might be due to invalid IL or missing references)
		//IL_0471: Unknown result type (might be due to invalid IL or missing references)
		//IL_047a: Expected O, but got Unknown
		//IL_047c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0481: Unknown result type (might be due to invalid IL or missing references)
		//IL_048d: 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_049e: Expected O, but got Unknown
		//IL_04a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c2: Expected O, but got Unknown
		//IL_04ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d1: Expected O, but got Unknown
		//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_04fa: Expected O, but got Unknown
		//IL_051e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0523: Unknown result type (might be due to invalid IL or missing references)
		//IL_052f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0538: Unknown result type (might be due to invalid IL or missing references)
		//IL_0541: Expected O, but got Unknown
		//IL_0543: Unknown result type (might be due to invalid IL or missing references)
		//IL_0548: Unknown result type (might be due to invalid IL or missing references)
		//IL_0554: Unknown result type (might be due to invalid IL or missing references)
		//IL_055d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0566: Expected O, but got Unknown
		//IL_0568: Unknown result type (might be due to invalid IL or missing references)
		//IL_056d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0579: Unknown result type (might be due to invalid IL or missing references)
		//IL_0581: Unknown result type (might be due to invalid IL or missing references)
		//IL_058a: Expected O, but got Unknown
		//IL_058c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0591: Unknown result type (might be due to invalid IL or missing references)
		//IL_059d: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ae: Expected O, but got Unknown
		//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05bd: Expected O, but got Unknown
		//IL_05df: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e6: Expected O, but got Unknown
		//IL_060a: Unknown result type (might be due to invalid IL or missing references)
		//IL_060f: Unknown result type (might be due to invalid IL or missing references)
		//IL_061b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0624: Unknown result type (might be due to invalid IL or missing references)
		//IL_062d: Expected O, but got Unknown
		//IL_062f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0634: Unknown result type (might be due to invalid IL or missing references)
		//IL_0640: Unknown result type (might be due to invalid IL or missing references)
		//IL_0649: Unknown result type (might be due to invalid IL or missing references)
		//IL_0652: Expected O, but got Unknown
		//IL_0654: Unknown result type (might be due to invalid IL or missing references)
		//IL_0659: Unknown result type (might be due to invalid IL or missing references)
		//IL_0665: Unknown result type (might be due to invalid IL or missing references)
		//IL_066d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0676: Expected O, but got Unknown
		//IL_0678: Unknown result type (might be due to invalid IL or missing references)
		//IL_067d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0689: Unknown result type (might be due to invalid IL or missing references)
		//IL_0691: Unknown result type (might be due to invalid IL or missing references)
		//IL_069a: Expected O, but got Unknown
		//IL_06a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a9: Expected O, but got Unknown
		//IL_06cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d2: Expected O, but got Unknown
		//IL_06f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_06fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0707: Unknown result type (might be due to invalid IL or missing references)
		//IL_0710: Unknown result type (might be due to invalid IL or missing references)
		//IL_0719: Expected O, but got Unknown
		//IL_071b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0720: Unknown result type (might be due to invalid IL or missing references)
		//IL_072c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0735: Unknown result type (might be due to invalid IL or missing references)
		//IL_073e: Expected O, but got Unknown
		//IL_0740: Unknown result type (might be due to invalid IL or missing references)
		//IL_0745: Unknown result type (might be due to invalid IL or missing references)
		//IL_0751: Unknown result type (might be due to invalid IL or missing references)
		//IL_0759: Unknown result type (might be due to invalid IL or missing references)
		//IL_0762: Expected O, but got Unknown
		//IL_0764: Unknown result type (might be due to invalid IL or missing references)
		//IL_0769: Unknown result type (might be due to invalid IL or missing references)
		//IL_0775: Unknown result type (might be due to invalid IL or missing references)
		//IL_077d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0786: Expected O, but got Unknown
		//IL_078e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0795: Expected O, but got Unknown
		//IL_07b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_07be: Expected O, but got Unknown
		//IL_07e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_07fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0805: Expected O, but got Unknown
		//IL_0807: Unknown result type (might be due to invalid IL or missing references)
		//IL_080c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0818: Unknown result type (might be due to invalid IL or missing references)
		//IL_0821: Unknown result type (might be due to invalid IL or missing references)
		//IL_082a: Expected O, but got Unknown
		//IL_082c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0831: Unknown result type (might be due to invalid IL or missing references)
		//IL_083d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0845: Unknown result type (might be due to invalid IL or missing references)
		//IL_084e: Expected O, but got Unknown
		//IL_0850: Unknown result type (might be due to invalid IL or missing references)
		//IL_0855: Unknown result type (might be due to invalid IL or missing references)
		//IL_0861: Unknown result type (might be due to invalid IL or missing references)
		//IL_0869: Unknown result type (might be due to invalid IL or missing references)
		//IL_0872: Expected O, but got Unknown
		//IL_087a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0881: Expected O, but got Unknown
		//IL_08a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08aa: Expected O, but got Unknown
		//IL_08ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_08d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08df: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f1: Expected O, but got Unknown
		//IL_08f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0904: Unknown result type (might be due to invalid IL or missing references)
		//IL_090d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0916: Expected O, but got Unknown
		//IL_0918: Unknown result type (might be due to invalid IL or missing references)
		//IL_091d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0929: Unknown result type (might be due to invalid IL or missing references)
		//IL_0931: Unknown result type (might be due to invalid IL or missing references)
		//IL_093a: Expected O, but got Unknown
		//IL_093c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0941: Unknown result type (might be due to invalid IL or missing references)
		//IL_094d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0955: Unknown result type (might be due to invalid IL or missing references)
		//IL_095e: Expected O, but got Unknown
		//IL_0966: Unknown result type (might be due to invalid IL or missing references)
		//IL_096d: Expected O, but got Unknown
		//IL_098f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0996: Expected O, but got Unknown
		//IL_09ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_09bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_09cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_09d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_09dd: Expected O, but got Unknown
		//IL_09df: Unknown result type (might be due to invalid IL or missing references)
		//IL_09e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a02: Expected O, but got Unknown
		//IL_0a0a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a11: Expected O, but got Unknown
		try
		{
			GameObject val = DoDAssets.LoadAsset<GameObject>("SummonSharky_DoD");
			if (Object.op_Implicit((Object)(object)val))
			{
				CreatureConfig val2 = new CreatureConfig();
				val2.DropConfigs = (DropConfig[])(object)new DropConfig[1]
				{
					new DropConfig
					{
						Item = "Ooze",
						Chance = 5f,
						MinAmount = 1,
						MaxAmount = 2,
						OnePerPlayer = false,
						LevelMultiplier = false
					}
				};
				CustomCreature val3 = new CustomCreature(val, true, val2);
				CreatureManager.Instance.AddCreature(val3);
				GameObject val4 = DoDAssets.LoadAsset<GameObject>("SummonCraby_DoD");
				val2 = new CreatureConfig();
				val2.DropConfigs = (DropConfig[])(object)new DropConfig[1]
				{
					new DropConfig
					{
						Item = "Ooze",
						Chance = 5f,
						MinAmount = 1,
						MaxAmount = 2,
						OnePerPlayer = false,
						LevelMultiplier = false
					}
				};
				CustomCreature val5 = new CustomCreature(val4, true, val2);
				CreatureManager.Instance.AddCreature(val5);
			}
			else
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"Summon Creatures for Scrolls not found");
			}
			GameObject val6 = DoDAssets.LoadAsset<GameObject>("InscriptionTable_DoD");
			if (Object.op_Implicit((Object)(object)val6))
			{
				PieceConfig val7 = new PieceConfig();
				val7.PieceTable = "_HammerPieceTable";
				val7.Category = "Crafting";
				val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Wood",
						Amount = 20,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Honey",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "DeerHide",
						Amount = 2,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Bronze",
						Amount = 2,
						Recover = true
					}
				};
				CustomPiece val8 = new CustomPiece(val6, true, val7);
				PieceManager.Instance.AddPiece(val8);
				GameObject val9 = DoDAssets.LoadAsset<GameObject>("Inscription_FireBook_DoD");
				val7 = new PieceConfig();
				val7.PieceTable = "_HammerPieceTable";
				val7.Category = "Crafting";
				val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Scroll_Blank_DoD",
						Amount = 12,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "InfusedGemstone_DoD",
						Amount = 2,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "MageItem_DoD",
						Amount = 2,
						Recover = true
					}
				};
				CustomPiece val10 = new CustomPiece(val9, true, val7);
				PieceManager.Instance.AddPiece(val10);
				GameObject val11 = DoDAssets.LoadAsset<GameObject>("Inscription_ArcaneBook_DoD");
				val7 = new PieceConfig();
				val7.PieceTable = "_HammerPieceTable";
				val7.Category = "Crafting";
				val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Scroll_Blank_DoD",
						Amount = 12,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "InfusedGemstone_DoD",
						Amount = 2,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "WarlockItem_DoD",
						Amount = 2,
						Recover = true
					}
				};
				CustomPiece val12 = new CustomPiece(val11, true, val7);
				PieceManager.Instance.AddPiece(val12);
				GameObject val13 = DoDAssets.LoadAsset<GameObject>("Inscription_LightBook_DoD");
				val7 = new PieceConfig();
				val7.PieceTable = "_HammerPieceTable";
				val7.Category = "Crafting";
				val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Scroll_Blank_DoD",
						Amount = 12,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "InfusedGemstone_DoD",
						Amount = 2,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "PaladinItem_DoD",
						Amount = 2,
						Recover = true
					}
				};
				CustomPiece val14 = new CustomPiece(val13, true, val7);
				PieceManager.Instance.AddPiece(val14);
				GameObject val15 = DoDAssets.LoadAsset<GameObject>("Inscription_DarkBook_DoD");
				val7 = new PieceConfig();
				val7.PieceTable = "_HammerPieceTable";
				val7.Category = "Crafting";
				val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
				{
					new RequirementConfig
					{
						Item = "Stone",
						Amount = 10,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "Scroll_Blank_DoD",
						Amount = 12,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "InfusedGemstone_DoD",
						Amount = 2,
						Recover = true
					},
					new RequirementConfig
					{
						Item = "NinjaItem_DoD",
						Amount = 2,
						Recover = true
					}
				};
				CustomPiece val16 = new CustomPiece(val15, true, val7);
				PieceManager.Instance.AddPiece(val16);
				GameObject val17 = DoDAssets.LoadAsset<GameObject>("Inscription_IceBook_DoD");
				val7 = new PieceConfig();
				val7.PieceTable = "_HammerPieceTable";