Decompiled source of Horemvores Assembly Mod v1.1.2

Assembly_Horemvore.dll

Decompiled 4 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Text;
using BepInEx;
using BepInEx.Configuration;
using Jotunn;
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("Assembly_Horemvore")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Assembly_Horemvore")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("b5c28acd-e0e2-4e63-8988-2276f02aa042")]
[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 IsPieceInWater_HS : MonoBehaviour
{
	private void Start()
	{
	}

	private void Update()
	{
	}
}
namespace Assembly_Horemvore
{
	public class GFXRotation_HS : MonoBehaviour
	{
		public enum spaceEnum
		{
			Local,
			World
		}

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

		public spaceEnum rotateSpace;

		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);
			}
		}
	}
	public class RandomSpawner_HS : MonoBehaviour
	{
		private int randomArrayLength = -1;

		public GameObject[] m_prefabList = (GameObject[])(object)new GameObject[0];

		[Header("Levels of Monsters or Items")]
		public int m_maxLevel = 3;

		public int m_minLevel = 1;

		public float m_levelupChance = 15f;

		[Header("Spawn settings")]
		public bool m_setPatrolSpawnPoint;

		private ZNetView m_nview;

		private GameObject m_prefab;

		private int selecter;

		private void Start()
		{
			randomArrayLength = m_prefabList.Length;
			m_nview = ((Component)this).GetComponentInParent<ZNetView>();
			if ((Object)(object)m_nview == (Object)null)
			{
				ZLog.LogWarning((object)("RandomSpawner_HS cant find netview " + ((Object)((Component)this).gameObject).name));
			}
			else
			{
				((MonoBehaviour)this).Invoke("DoSpawn", 1f);
			}
		}

		private void DoSpawn()
		{
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			if (!m_nview.IsValid() || !m_nview.IsOwner())
			{
				return;
			}
			string text = "RandomSpawner_HS_" + ((Object)((Component)this).gameObject).name;
			if (!m_nview.GetZDO().GetBool(text, false))
			{
				selecter = Random.Range(0, randomArrayLength);
				m_prefab = m_prefabList[selecter];
				GameObject val = Object.Instantiate<GameObject>(m_prefab, ((Component)this).transform.position, ((Component)this).transform.rotation);
				BaseAI component = val.GetComponent<BaseAI>();
				if ((Object)(object)component != (Object)null && m_setPatrolSpawnPoint)
				{
					component.SetPatrolPoint();
				}
				int minLevel = m_minLevel;
				int maxLevel = m_maxLevel;
				float levelupChance = m_levelupChance;
				if (maxLevel > 1)
				{
					Character component2 = val.GetComponent<Character>();
					if (Object.op_Implicit((Object)(object)component2))
					{
						int i;
						for (i = minLevel; i < maxLevel; i++)
						{
							if (!(Random.Range(0f, 100f) <= levelupChance))
							{
								break;
							}
						}
						if (i > 1)
						{
							component2.SetLevel(i);
						}
					}
					else
					{
						ItemDrop component3 = val.GetComponent<ItemDrop>();
						if (Object.op_Implicit((Object)(object)component3))
						{
							int j;
							for (j = minLevel; j < maxLevel; j++)
							{
								if (!(Random.Range(0f, 100f) <= levelupChance))
								{
									break;
								}
							}
							if (j > 1)
							{
								component3.SetQuality(j);
							}
						}
					}
				}
				m_nview.GetZDO().Set(text, true);
			}
			((MonoBehaviour)this).CancelInvoke("DoSpawn");
		}
	}
	public class Rotator_HS : MonoBehaviour
	{
		public float x = 0f;

		public float y = 0f;

		public float z = 0f;

		private void OnEnable()
		{
			((MonoBehaviour)this).InvokeRepeating("Rotate", 0f, 0.0167f);
		}

		private void OnDisable()
		{
			((MonoBehaviour)this).CancelInvoke();
		}

		private void Rotate()
		{
			//IL_0008: 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_0024: Unknown result type (might be due to invalid IL or missing references)
			Transform transform = ((Component)this).transform;
			transform.localEulerAngles += new Vector3(x, y, z);
		}
	}
	public class SE_Bubble_HS : StatusEffect
	{
		[Header("__Bubble__")]
		public float m_damageAmountToAbsorb;

		public float m_damageAmountToAbsorbPerWorldLevel;

		public float m_damageAmountToAbsorbPerSkillLevel;

		public float m_bubbleBleedThroughPercent = 0f;

		public StatusEffect m_reflectEffect;

		public float m_reflectDamagePercent;

		public EffectList m_breakEffects = new EffectList();

		public EffectList m_hitEffects = new EffectList();

		public EffectList m_reflectEffects = new EffectList();

		public SkillType m_levelUpSkillOnBreak;

		public float m_levelUpSkillFactor = 1f;

		public int m_ttlPerItemLevel;

		private float m_totalDamageToAbsorb;

		private float m_damage;

		private int reflectStatusEffectHash;

		public void OnEnable()
		{
			if ((Object)(object)m_reflectEffect != (Object)null)
			{
				reflectStatusEffectHash = ((object)m_reflectEffect).GetHashCode();
			}
		}

		public override void Setup(Character character)
		{
			((StatusEffect)this).Setup(character);
		}

		public override bool IsDone()
		{
			//IL_0023: 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_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Invalid comparison between Unknown and I4
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			if (m_damage > m_totalDamageToAbsorb)
			{
				m_breakEffects.Create(base.m_character.GetCenterPoint(), ((Component)base.m_character).transform.rotation, ((Component)base.m_character).transform, base.m_character.GetRadius() * 2f, -1);
				if ((int)m_levelUpSkillOnBreak > 0)
				{
					Skills skills = base.m_character.GetSkills();
					if ((Object)(object)skills != (Object)null && Object.op_Implicit((Object)(object)skills))
					{
						skills.RaiseSkill(m_levelUpSkillOnBreak, m_levelUpSkillFactor);
					}
				}
				return true;
			}
			return ((StatusEffect)this).IsDone();
		}

		public override void OnDamaged(HitData hit, Character attacker)
		{
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Expected O, but got Unknown
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			float totalDamage = hit.GetTotalDamage();
			float blunt = totalDamage / 100f * m_reflectDamagePercent;
			float num = totalDamage * m_bubbleBleedThroughPercent;
			float num2 = totalDamage - num;
			m_damage += num2;
			hit.ApplyModifier(m_bubbleBleedThroughPercent);
			Character attacker2 = hit.GetAttacker();
			if ((Object)(object)m_reflectEffect != (Object)null)
			{
				attacker2.GetSEMan().AddStatusEffect(reflectStatusEffectHash, true, 0, 0f);
			}
			if (m_reflectDamagePercent != 0f)
			{
				HitData val = new HitData();
				val.m_point = attacker2.GetCenterPoint();
				val.m_damage.m_blunt = blunt;
				val.m_hitType = (HitType)1;
				attacker2.ApplyDamage(val, true, false, (DamageModifier)0);
				m_reflectEffects.Create(attacker2.GetCenterPoint(), ((Component)attacker2).transform.rotation, ((Component)attacker2).transform, 1f, -1);
			}
			m_hitEffects.Create(hit.m_point, Quaternion.LookRotation(-hit.m_dir), ((Component)base.m_character).transform, 1f, -1);
		}

		public override void SetLevel(int itemLevel, float skillLevel)
		{
			if (m_ttlPerItemLevel > 0)
			{
				base.m_ttl = m_ttlPerItemLevel * itemLevel;
			}
			m_totalDamageToAbsorb = m_damageAmountToAbsorb + m_damageAmountToAbsorbPerSkillLevel * skillLevel;
			if (Game.m_worldLevel > 0)
			{
				m_totalDamageToAbsorb += m_damageAmountToAbsorbPerWorldLevel * (float)Game.m_worldLevel;
			}
			((StatusEffect)this).SetLevel(itemLevel, skillLevel);
		}

		public override string GetTooltipString()
		{
			return ((StatusEffect)this).GetTooltipString() + "\n$se_shield_ttl <color=orange>" + base.m_ttl.ToString("0") + "</color>\n$se_shield_damage <color=orange>" + m_totalDamageToAbsorb.ToString("0") + "</color>";
		}
	}
	public class SE_ThrowUp_HS : StatusEffect
	{
		[Header("__Throw Up__")]
		public EffectList m_pukeEffects = new EffectList();

		public float m_pukeInterval = 1f;

		public DamageTypes m_damagePerTick;

		public DamageTypes m_tickDamagePerLevel;

		public float m_damageModifier;

		public int m_itemLevel = 1;

		private float m_pukeTimer;

		public override void Setup(Character character)
		{
			((StatusEffect)this).Setup(character);
		}

		private DamageTypes GetDamage()
		{
			//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)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			return GetDamage(m_itemLevel);
		}

		private DamageTypes GetDamage(int itemQuality)
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: 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)
			if (itemQuality <= 1)
			{
				itemQuality = 1;
			}
			DamageTypes damagePerTick = m_damagePerTick;
			((DamageTypes)(ref damagePerTick)).Add(m_tickDamagePerLevel, itemQuality);
			((DamageTypes)(ref damagePerTick)).Modify(m_damageModifier);
			return damagePerTick;
		}

		public override void UpdateStatusEffect(float dt)
		{
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			((StatusEffect)this).UpdateStatusEffect(dt);
			m_pukeTimer += dt;
			if (m_pukeTimer > m_pukeInterval)
			{
				m_pukeTimer = 0f;
				Character character = base.m_character;
				if (((Player)((character is Player) ? character : null)).RemoveOneFood())
				{
					m_pukeEffects.Create(((Component)base.m_character).transform.position, ((Component)base.m_character).transform.rotation, (Transform)null, 1f, -1);
				}
				HitData val = new HitData();
				val.m_point = base.m_character.GetCenterPoint();
				val.m_damage = GetDamage();
				base.m_character.ApplyDamage(val, true, true, (DamageModifier)0);
			}
		}
	}
}
namespace HoremvoreAssembly
{
	[RequireComponent(typeof(Character))]
	public class BossStage_BossObject_HS : MonoBehaviour
	{
		public StatusEffect m_bossStatusEffect;

		private Character m_character;

		private int m_statusEffectHash;

		private void Start()
		{
			m_character = ((Component)this).GetComponent<Character>();
			if (!Object.op_Implicit((Object)(object)m_character))
			{
				return;
			}
			m_statusEffectHash = ((object)m_bossStatusEffect).GetHashCode();
			Character character = m_character;
			bool flag = character.GetSEMan().HaveStatusEffect(m_statusEffectHash);
			float healthPercentage = character.GetHealthPercentage();
			float maxHealth = character.GetMaxHealth();
			if (!flag)
			{
				character.GetSEMan().AddStatusEffect(m_statusEffectHash, true, 0, 0f);
				if (healthPercentage <= 1f)
				{
					character.Heal(maxHealth, true);
				}
			}
		}

		private void Update()
		{
		}
	}
	public class BossStage_Controller_HS : StatusEffect
	{
		[Header("__Boss Stage Controller__")]
		public int m_uniqueID;

		public float m_checkHealthInterval = 60f;

		public string m_youLostMessage;

		public bool m_killBossAtEndOfTimer;

		public bool m_removeAddsAtEndOfTimer;

		[Header("Stage One")]
		public string m_stageOneStartMessage;

		public Sprite m_stageOneIcon;

		public float m_firstHealthPercent = 0.8f;

		public StatusEffect m_firstStatusEffect;

		[Header("Stage One - Monster Wave")]
		public bool m_enableFirstWave;

		public GameObject m_firstWaveMonster;

		public int m_firstWaveMinToSpawn;

		public int m_firstWaveMaxToSpawn;

		public float m_firstWaveSpawnRadius;

		public bool m_firstWaveSnapToTerrain;

		public float m_firstWaveSpawnGroundOffset;

		[Header("Stage One - Boss Effect")]
		public bool m_enableFirstBossEffect;

		public GameObject m_firstBossEffect;

		public float m_firstBossEffectRadius;

		public int m_firstBossEffectMinAmount;

		public int m_firstBossEffectMaxAmount;

		public bool m_firstBossEffectMoveTowardBoss;

		public bool m_firstBossEffectHealsBoss;

		public bool m_destroyFirstBossEffectAfterHealingBoss;

		public bool m_firstBossEffectRandomStartMovement;

		[Header("Stage One - Boss Effect - Manual Settings")]
		public int m_firstBossEffectForcePowerMin = 1;

		public int m_firstBossEffectForcePowerMax = 5;

		public bool m_manuallySetFirstBossEffectVector3;

		public Vector3 m_firstBossEffectAddForceVector3;

		[Header("Stage Two")]
		public string m_stageTwoStartMessage;

		public Sprite m_stageTwoIcon;

		public float m_secondHealthPercent = 0.6f;

		public StatusEffect m_secondStatusEffect;

		[Header("Stage Two - Monster Wave")]
		public bool m_enableSecondWave;

		public GameObject m_secondWaveMonster;

		public int m_secondWaveMinToSpawn;

		public int m_secondWaveMaxToSpawn;

		public float m_secondWaveSpawnRadius;

		public bool m_secondWaveSnapToTerrain;

		public float m_secondWaveSpawnGroundOffset;

		[Header("Stage Two - Boss Effect")]
		public bool m_enableSecondBossEffect;

		public GameObject m_secondBossEffect;

		public float m_secondBossEffectRadius;

		public int m_secondBossEffectMinAmount;

		public int m_secondBossEffectMaxAmount;

		public bool m_secondBossEffectMoveTowardBoss;

		public bool m_secondBossEffectRandomStartMovement;

		public bool m_secondBossEffectHealsBoss;

		public bool m_destroySecondBossEffectAfterHealingBoss;

		[Header("Stage Two - Boss Effect - Manual Settings")]
		public int m_secondBossEffectForcePowerMin = 1;

		public int m_secondBossEffectForcePowerMax = 5;

		public bool m_manuallySetSecondBossEffectVector3;

		public Vector3 m_secondBossEffectAddForceVector3;

		[Header("Stage Three")]
		public string m_stageThreeStartMessage;

		public Sprite m_stageThreeIcon;

		public float m_thirdHealthPercent = 0.4f;

		public StatusEffect m_thirdStatusEffect;

		[Header("Stage Three - Monster Wave")]
		public bool m_enableThirdWave;

		public GameObject m_thirdWaveMonster;

		public int m_thirdWaveMinToSpawn;

		public int m_thirdWaveMaxToSpawn;

		public float m_thirdWaveSpawnRadius;

		public bool m_thirdWaveSnapToTerrain;

		public float m_thirdWaveSpawnGroundOffset;

		[Header("Stage Three - Boss Effect")]
		public bool m_enableThirdBossEffect;

		public GameObject m_thirdBossEffect;

		public float m_thirdBossEffectRadius;

		public int m_thirdBossEffectMinAmount;

		public int m_thirdBossEffectMaxAmount;

		public bool m_thirdBossEffectMoveTowardBoss;

		public bool m_thirdBossEffectRandomStartMovement;

		public bool m_thirdBossEffectHealsBoss;

		public bool m_destroyThirdBossEffectAfterHealingBoss;

		[Header("Stage Three - Boss Effect - Manual Settings")]
		public int m_thirdBossEffectForcePowerMin = 1;

		public int m_thirdBossEffectForcePowerMax = 5;

		public bool m_manuallySetThirdBossEffectVector3;

		public Vector3 m_thirdBossEffectAddForceVector3;

		[Header("Stage Four")]
		public string m_stageFourStartMessage;

		public Sprite m_stageFourIcon;

		public float m_fourthHealthPercent = 0.2f;

		public StatusEffect m_fourthStatusEffect;

		[Header("Stage Four - Monster Wave")]
		public bool m_enableFourthWave;

		public GameObject m_fourthWaveMonster;

		public int m_fourthWaveMinToSpawn;

		public int m_fourthWaveMaxToSpawn;

		public float m_fourthWaveSpawnRadius;

		public bool m_fourthWaveSnapToTerrain;

		public float m_fourthWaveSpawnGroundOffset;

		[Header("Stage Four - Boss Effect")]
		public bool m_enableFourthBossEffect;

		public GameObject m_fourthBossEffect;

		public float m_fourthBossEffectRadius;

		public int m_fourthBossEffectMinAmount;

		public int m_fourthBossEffectMaxAmount;

		public bool m_fourthBossEffectMoveTowardBoss;

		public bool m_fourthBossEffectRandomStartMovement;

		public bool m_fourthBossEffectHealsBoss;

		public bool m_destroyFourthBossEffectAfterHealingBoss;

		[Header("Stage Four - Boss Effect - Manual Settings")]
		public int m_fourthBossEffectForcePowerMin = 1;

		public int m_fourthBossEffectForcePowerMax = 5;

		public bool m_manuallySetFourthBossEffectVector3;

		public Vector3 m_fourthBossEffectAddForceVector3;

		[Header("Shared Settings")]
		public bool m_alertSpawnedCreatures;

		public int m_getSolidHeightMargin = 1000;

		public EffectList m_spawnEffect = new EffectList();

		private float m_addTimer;

		private float m_HealthPercent;

		private int m_statusEffectHash;

		private int m_removeStatusEffectHash;

		private Vector3 vSpawnPoint;

		private Quaternion quaternion;

		public string m_prefabNameOfThisScriptableObject;

		private int iStageCount = 0;

		private int iForcePowerFirstEffect;

		private int iForcePowerSecondEffect;

		private int iForcePowerThirdEffect;

		private int iForcePowerFourthEffect;

		private readonly float fEndCounter = 60f;

		private string sStatusEffect;

		private bool m_isDone;

		private ZNetView m_nview;

		private int m_thisStatusEffectHash;

		private int m_haveStatusEffectHash;

		public void OnEnable()
		{
			m_prefabNameOfThisScriptableObject = ((Object)this).name.ToString() ?? "";
			m_thisStatusEffectHash = StringExtensionMethods.GetStableHashCode(m_prefabNameOfThisScriptableObject);
		}

		public override bool CanAdd(Character character)
		{
			if (character.GetSEMan().HaveStatusEffect(m_thisStatusEffectHash))
			{
				return false;
			}
			if (!((Character)((Component)character).GetComponent<Humanoid>()).m_boss)
			{
				return false;
			}
			return ((StatusEffect)this).CanAdd(character);
		}

		public override void Setup(Character character)
		{
			((StatusEffect)this).Setup(character);
		}

		public override void UpdateStatusEffect(float dt)
		{
			//IL_004a: 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_0155: 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_015c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_017d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: 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_0394: Unknown result type (might be due to invalid IL or missing references)
			//IL_0399: Unknown result type (might be due to invalid IL or missing references)
			//IL_039b: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c8: 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_01e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0765: Unknown result type (might be due to invalid IL or missing references)
			//IL_076a: Unknown result type (might be due to invalid IL or missing references)
			//IL_076c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0777: Unknown result type (might be due to invalid IL or missing references)
			//IL_077c: Unknown result type (might be due to invalid IL or missing references)
			//IL_077f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0781: Unknown result type (might be due to invalid IL or missing references)
			//IL_078d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0794: Unknown result type (might be due to invalid IL or missing references)
			//IL_0799: Unknown result type (might be due to invalid IL or missing references)
			//IL_079e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d7c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d87: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d91: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dae: Unknown result type (might be due to invalid IL or missing references)
			//IL_1385: Unknown result type (might be due to invalid IL or missing references)
			//IL_138a: Unknown result type (might be due to invalid IL or missing references)
			//IL_138c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1397: Unknown result type (might be due to invalid IL or missing references)
			//IL_139c: Unknown result type (might be due to invalid IL or missing references)
			//IL_139f: Unknown result type (might be due to invalid IL or missing references)
			//IL_13a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_13ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_13b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_13b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_13be: Unknown result type (might be due to invalid IL or missing references)
			//IL_0410: Unknown result type (might be due to invalid IL or missing references)
			//IL_0415: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_09be: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_09dd: 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_07f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fcb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fce: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fd0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fdc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fe3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fe8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fed: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc6: Unknown result type (might be due to invalid IL or missing references)
			//IL_15c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_15c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_15cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_15d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_15db: Unknown result type (might be due to invalid IL or missing references)
			//IL_15de: Unknown result type (might be due to invalid IL or missing references)
			//IL_15e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_15ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_15f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_15f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_15fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1413: Unknown result type (might be due to invalid IL or missing references)
			//IL_1418: Unknown result type (might be due to invalid IL or missing references)
			//IL_13d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0422: Unknown result type (might be due to invalid IL or missing references)
			//IL_0428: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a20: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a25: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1030: Unknown result type (might be due to invalid IL or missing references)
			//IL_1035: Unknown result type (might be due to invalid IL or missing references)
			//IL_1003: Unknown result type (might be due to invalid IL or missing references)
			//IL_1008: Unknown result type (might be due to invalid IL or missing references)
			//IL_1640: Unknown result type (might be due to invalid IL or missing references)
			//IL_1645: Unknown result type (might be due to invalid IL or missing references)
			//IL_1613: Unknown result type (might be due to invalid IL or missing references)
			//IL_1618: Unknown result type (might be due to invalid IL or missing references)
			//IL_0324: Unknown result type (might be due to invalid IL or missing references)
			//IL_0330: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a32: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a38: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1042: Unknown result type (might be due to invalid IL or missing references)
			//IL_1048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ef5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1652: Unknown result type (might be due to invalid IL or missing references)
			//IL_1658: Unknown result type (might be due to invalid IL or missing references)
			//IL_1505: Unknown result type (might be due to invalid IL or missing references)
			//IL_0934: Unknown result type (might be due to invalid IL or missing references)
			//IL_0940: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f44: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f50: Unknown result type (might be due to invalid IL or missing references)
			//IL_1554: Unknown result type (might be due to invalid IL or missing references)
			//IL_1560: Unknown result type (might be due to invalid IL or missing references)
			//IL_0556: Unknown result type (might be due to invalid IL or missing references)
			//IL_0562: Unknown result type (might be due to invalid IL or missing references)
			//IL_056c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0596: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b66: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b72: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1176: Unknown result type (might be due to invalid IL or missing references)
			//IL_1182: Unknown result type (might be due to invalid IL or missing references)
			//IL_118c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1786: Unknown result type (might be due to invalid IL or missing references)
			//IL_1792: Unknown result type (might be due to invalid IL or missing references)
			//IL_179c: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0600: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bbc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdc: Unknown result type (might be due to invalid IL or missing references)
			//IL_11b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_11c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_11c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_11cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_11d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_11d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_11d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_11ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_17c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_17d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_17d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_17dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_17e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_17e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_17e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_17f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_17fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bfa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c06: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c10: Unknown result type (might be due to invalid IL or missing references)
			//IL_120a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1216: Unknown result type (might be due to invalid IL or missing references)
			//IL_1220: Unknown result type (might be due to invalid IL or missing references)
			//IL_181a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1826: Unknown result type (might be due to invalid IL or missing references)
			//IL_1830: Unknown result type (might be due to invalid IL or missing references)
			((StatusEffect)this).UpdateStatusEffect(dt);
			m_addTimer += dt;
			if (!(m_addTimer > m_checkHealthInterval))
			{
				return;
			}
			m_HealthPercent = base.m_character.GetHealthPercentage();
			vSpawnPoint = ((Component)base.m_character).transform.position;
			m_addTimer = 0f;
			Vector3 val6;
			switch (iStageCount)
			{
			case 0:
				if (!(m_HealthPercent <= m_firstHealthPercent))
				{
					break;
				}
				if (m_stageOneStartMessage != "")
				{
					MessageHud.instance.ShowMessage((MessageType)2, m_stageOneStartMessage, 0, (Sprite)null);
				}
				base.m_icon = m_stageOneIcon;
				m_statusEffectHash = ((object)m_firstStatusEffect).GetHashCode();
				base.m_character.GetSEMan().AddStatusEffect(m_statusEffectHash, true, 0, 0f);
				iForcePowerFirstEffect = Random.Range(m_firstBossEffectForcePowerMin, m_firstBossEffectForcePowerMax);
				if (m_enableFirstWave)
				{
					int num15 = Random.Range(m_firstWaveMinToSpawn, m_firstWaveMaxToSpawn);
					int num16 = 0;
					float y3 = default(float);
					while (num16 < num15)
					{
						Vector3 position5 = ((Component)base.m_character).transform.position;
						Vector2 val11 = Random.insideUnitCircle * m_firstWaveSpawnRadius;
						vSpawnPoint = position5 + new Vector3(val11.x, 0f, val11.y);
						if (m_firstWaveSnapToTerrain)
						{
							ZoneSystem.instance.GetSolidHeight(vSpawnPoint, ref y3, m_getSolidHeightMargin);
							vSpawnPoint.y = y3;
						}
						vSpawnPoint.y += m_firstWaveSpawnGroundOffset;
						GameObject val12 = Object.Instantiate<GameObject>(m_firstWaveMonster, vSpawnPoint, Quaternion.identity);
						val12.AddComponent(typeof(BossStage_Object_HS));
						val12.GetComponent<BossStage_Object_HS>().m_spawnedUniqueID = m_uniqueID;
						if (m_removeAddsAtEndOfTimer)
						{
							MonsterAI component11 = val12.GetComponent<MonsterAI>();
							if (Object.op_Implicit((Object)(object)component11))
							{
								val12.AddComponent(typeof(CharacterTimedDestruction));
								val12.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								val12.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								val12.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
							else
							{
								val12.AddComponent(typeof(TimedDestruction));
								val12.GetComponent<TimedDestruction>().m_timeout = 60f;
								val12.GetComponent<TimedDestruction>().m_triggerOnAwake = true;
							}
						}
						Projectile component12 = val12.GetComponent<Projectile>();
						if (Object.op_Implicit((Object)(object)component12))
						{
							component12.Setup(base.m_character, Vector3.zero, -1f, (HitData)null, (ItemData)null, (ItemData)null);
						}
						BaseAI component13 = val12.GetComponent<BaseAI>();
						if (Object.op_Implicit((Object)(object)component13) && m_alertSpawnedCreatures)
						{
							component13.Alert();
						}
						m_spawnEffect.Create(val12.transform.position, val12.transform.rotation, (Transform)null, 1f, -1);
						int num17 = num16 + 1;
						num16 = num17;
					}
				}
				if (m_enableFirstBossEffect)
				{
					int num18 = Random.Range(m_firstBossEffectMinAmount, m_firstBossEffectMaxAmount);
					int num19 = 0;
					while (num19 < num18)
					{
						Vector3 position6 = ((Component)base.m_character).transform.position;
						Vector2 val13 = Random.insideUnitCircle * m_firstBossEffectRadius;
						vSpawnPoint = position6 + new Vector3(val13.x, 0f, val13.y);
						if (!m_firstBossEffectRandomStartMovement)
						{
							quaternion = Quaternion.identity;
						}
						else
						{
							int num20 = Random.Range(-359, 359);
							quaternion = Quaternion.Euler(0f, (float)num20, 0f);
						}
						GameObject val14 = Object.Instantiate<GameObject>(m_firstBossEffect, vSpawnPoint, quaternion);
						val14.AddComponent(typeof(BossStage_Object_HS));
						val14.GetComponent<BossStage_Object_HS>().m_spawnedUniqueID = m_uniqueID;
						if (m_removeAddsAtEndOfTimer)
						{
							MonsterAI component14 = val14.GetComponent<MonsterAI>();
							if (Object.op_Implicit((Object)(object)component14))
							{
								val14.AddComponent(typeof(CharacterTimedDestruction));
								val14.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								val14.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								val14.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
							else
							{
								val14.AddComponent(typeof(TimedDestruction));
								val14.GetComponent<TimedDestruction>().m_timeout = 60f;
								val14.GetComponent<TimedDestruction>().m_triggerOnAwake = true;
							}
						}
						if (m_firstBossEffectHealsBoss)
						{
							val14.GetComponent<BossStage_Object_HS>().m_healsBoss = true;
							if (m_destroyFirstBossEffectAfterHealingBoss)
							{
								val14.GetComponent<BossStage_Object_HS>().m_killSelf = true;
							}
						}
						Rigidbody component15 = val14.GetComponent<Rigidbody>();
						if (Object.op_Implicit((Object)(object)component15))
						{
							if (m_manuallySetFirstBossEffectVector3)
							{
								component15.AddForce(m_firstBossEffectAddForceVector3 * (float)iForcePowerFirstEffect * Time.fixedDeltaTime, (ForceMode)0);
							}
							else if (m_firstBossEffectMoveTowardBoss)
							{
								val6 = ((Component)base.m_character).transform.position - val14.transform.position;
								Vector3 normalized3 = ((Vector3)(ref val6)).normalized;
								component15.AddForce(normalized3 * (float)iForcePowerFirstEffect * Time.fixedDeltaTime, (ForceMode)1);
							}
							else if (m_firstBossEffectRandomStartMovement)
							{
								component15.AddForce(Vector3.forward * (float)iForcePowerFirstEffect * Time.fixedDeltaTime, (ForceMode)1);
							}
						}
						int num21 = num19 + 1;
						num19 = num21;
					}
				}
				iStageCount++;
				break;
			case 1:
				if (!(m_HealthPercent <= m_secondHealthPercent))
				{
					break;
				}
				if (m_stageTwoStartMessage != "")
				{
					MessageHud.instance.ShowMessage((MessageType)2, m_stageOneStartMessage, 0, (Sprite)null);
				}
				m_haveStatusEffectHash = ((object)m_firstStatusEffect).GetHashCode();
				if (base.m_character.GetSEMan().HaveStatusEffect(m_haveStatusEffectHash))
				{
					m_removeStatusEffectHash = ((object)m_firstStatusEffect).GetHashCode();
					base.m_character.GetSEMan().RemoveStatusEffect(m_removeStatusEffectHash, false);
				}
				base.m_icon = m_stageTwoIcon;
				m_statusEffectHash = ((object)m_secondStatusEffect).GetHashCode();
				base.m_character.GetSEMan().AddStatusEffect(m_statusEffectHash, true, 0, 0f);
				iForcePowerSecondEffect = Random.Range(m_secondBossEffectForcePowerMin, m_secondBossEffectForcePowerMax);
				if (m_enableSecondWave)
				{
					int num8 = Random.Range(m_secondWaveMinToSpawn, m_secondWaveMaxToSpawn);
					int num9 = 0;
					float y2 = default(float);
					while (num9 < num8)
					{
						Vector3 position3 = ((Component)base.m_character).transform.position;
						Vector2 val7 = Random.insideUnitCircle * m_secondWaveSpawnRadius;
						vSpawnPoint = position3 + new Vector3(val7.x, 0f, val7.y);
						if (m_secondWaveSnapToTerrain)
						{
							ZoneSystem.instance.GetSolidHeight(vSpawnPoint, ref y2, m_getSolidHeightMargin);
							vSpawnPoint.y = y2;
						}
						vSpawnPoint.y += m_secondWaveSpawnGroundOffset;
						GameObject val8 = Object.Instantiate<GameObject>(m_secondWaveMonster, vSpawnPoint, Quaternion.identity);
						val8.AddComponent(typeof(BossStage_Object_HS));
						val8.GetComponent<BossStage_Object_HS>().m_spawnedUniqueID = m_uniqueID;
						if (m_removeAddsAtEndOfTimer)
						{
							MonsterAI component6 = val8.GetComponent<MonsterAI>();
							if (Object.op_Implicit((Object)(object)component6))
							{
								val8.AddComponent(typeof(CharacterTimedDestruction));
								val8.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								val8.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								val8.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
							else
							{
								val8.AddComponent(typeof(TimedDestruction));
								val8.GetComponent<TimedDestruction>().m_timeout = 60f;
								val8.GetComponent<TimedDestruction>().m_triggerOnAwake = true;
							}
						}
						Projectile component7 = val8.GetComponent<Projectile>();
						if (Object.op_Implicit((Object)(object)component7))
						{
							component7.Setup(base.m_character, Vector3.zero, -1f, (HitData)null, (ItemData)null, (ItemData)null);
						}
						BaseAI component8 = val8.GetComponent<BaseAI>();
						if (Object.op_Implicit((Object)(object)component8) && m_alertSpawnedCreatures)
						{
							component8.Alert();
						}
						m_spawnEffect.Create(val8.transform.position, val8.transform.rotation, (Transform)null, 1f, -1);
						int num10 = num9 + 1;
						num9 = num10;
					}
				}
				if (m_enableSecondBossEffect)
				{
					int num11 = Random.Range(m_secondBossEffectMinAmount, m_secondBossEffectMaxAmount);
					int num12 = 0;
					while (num12 < num11)
					{
						Vector3 position4 = ((Component)base.m_character).transform.position;
						Vector2 val9 = Random.insideUnitCircle * m_secondBossEffectRadius;
						vSpawnPoint = position4 + new Vector3(val9.x, 0f, val9.y);
						if (!m_secondBossEffectRandomStartMovement)
						{
							quaternion = Quaternion.identity;
						}
						else
						{
							int num13 = Random.Range(-359, 359);
							quaternion = Quaternion.Euler(0f, (float)num13, 0f);
						}
						GameObject val10 = Object.Instantiate<GameObject>(m_secondBossEffect, vSpawnPoint, quaternion);
						val10.AddComponent(typeof(BossStage_Object_HS));
						val10.GetComponent<BossStage_Object_HS>().m_spawnedUniqueID = m_uniqueID;
						if (m_removeAddsAtEndOfTimer)
						{
							MonsterAI component9 = val10.GetComponent<MonsterAI>();
							if (Object.op_Implicit((Object)(object)component9))
							{
								val10.AddComponent(typeof(CharacterTimedDestruction));
								val10.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								val10.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								val10.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
							else
							{
								val10.AddComponent(typeof(TimedDestruction));
								val10.GetComponent<TimedDestruction>().m_timeout = 60f;
								val10.GetComponent<TimedDestruction>().m_triggerOnAwake = true;
							}
						}
						if (m_secondBossEffectHealsBoss)
						{
							val10.GetComponent<BossStage_Object_HS>().m_healsBoss = true;
							if (m_destroySecondBossEffectAfterHealingBoss)
							{
								val10.GetComponent<BossStage_Object_HS>().m_killSelf = true;
							}
						}
						Rigidbody component10 = val10.GetComponent<Rigidbody>();
						if (Object.op_Implicit((Object)(object)component10))
						{
							if (m_manuallySetSecondBossEffectVector3)
							{
								component10.AddForce(m_secondBossEffectAddForceVector3 * (float)iForcePowerSecondEffect * Time.fixedDeltaTime, (ForceMode)0);
							}
							else if (m_secondBossEffectMoveTowardBoss)
							{
								val6 = ((Component)base.m_character).transform.position - val10.transform.position;
								Vector3 normalized2 = ((Vector3)(ref val6)).normalized;
								component10.AddForce(normalized2 * (float)iForcePowerSecondEffect * Time.fixedDeltaTime, (ForceMode)1);
							}
							else if (m_secondBossEffectRandomStartMovement)
							{
								component10.AddForce(Vector3.forward * (float)iForcePowerSecondEffect * Time.fixedDeltaTime, (ForceMode)1);
							}
						}
						int num14 = num12 + 1;
						num12 = num14;
					}
				}
				iStageCount++;
				break;
			case 2:
				if (!(m_HealthPercent <= m_thirdHealthPercent))
				{
					break;
				}
				if (m_stageThreeStartMessage != "")
				{
					MessageHud.instance.ShowMessage((MessageType)2, m_stageOneStartMessage, 0, (Sprite)null);
				}
				m_haveStatusEffectHash = ((object)m_secondStatusEffect).GetHashCode();
				if (base.m_character.GetSEMan().HaveStatusEffect(m_haveStatusEffectHash))
				{
					m_removeStatusEffectHash = ((object)m_secondStatusEffect).GetHashCode();
					base.m_character.GetSEMan().RemoveStatusEffect(m_removeStatusEffectHash, false);
				}
				base.m_icon = m_stageThreeIcon;
				m_statusEffectHash = ((object)m_thirdStatusEffect).GetHashCode();
				base.m_character.GetSEMan().AddStatusEffect(m_statusEffectHash, true, 0, 0f);
				iForcePowerThirdEffect = Random.Range(m_thirdBossEffectForcePowerMin, m_thirdBossEffectForcePowerMax);
				if (m_enableThirdWave)
				{
					int num22 = Random.Range(m_thirdWaveMinToSpawn, m_thirdWaveMaxToSpawn);
					int num23 = 0;
					float y4 = default(float);
					while (num23 < num22)
					{
						Vector3 position7 = ((Component)base.m_character).transform.position;
						Vector2 val15 = Random.insideUnitCircle * m_thirdWaveSpawnRadius;
						vSpawnPoint = position7 + new Vector3(val15.x, 0f, val15.y);
						if (m_thirdWaveSnapToTerrain)
						{
							ZoneSystem.instance.GetSolidHeight(vSpawnPoint, ref y4, m_getSolidHeightMargin);
							vSpawnPoint.y = y4;
						}
						vSpawnPoint.y += m_thirdWaveSpawnGroundOffset;
						GameObject val16 = Object.Instantiate<GameObject>(m_thirdWaveMonster, vSpawnPoint, Quaternion.identity);
						val16.AddComponent(typeof(BossStage_Object_HS));
						val16.GetComponent<BossStage_Object_HS>().m_spawnedUniqueID = m_uniqueID;
						if (m_removeAddsAtEndOfTimer)
						{
							MonsterAI component16 = val16.GetComponent<MonsterAI>();
							if (Object.op_Implicit((Object)(object)component16))
							{
								val16.AddComponent(typeof(CharacterTimedDestruction));
								val16.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								val16.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								val16.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
							else
							{
								val16.AddComponent(typeof(TimedDestruction));
								val16.GetComponent<TimedDestruction>().m_timeout = 60f;
								val16.GetComponent<TimedDestruction>().m_triggerOnAwake = true;
							}
						}
						Projectile component17 = val16.GetComponent<Projectile>();
						if (Object.op_Implicit((Object)(object)component17))
						{
							component17.Setup(base.m_character, Vector3.zero, -1f, (HitData)null, (ItemData)null, (ItemData)null);
						}
						BaseAI component18 = val16.GetComponent<BaseAI>();
						if (Object.op_Implicit((Object)(object)component18) && m_alertSpawnedCreatures)
						{
							component18.Alert();
						}
						m_spawnEffect.Create(val16.transform.position, val16.transform.rotation, (Transform)null, 1f, -1);
						int num24 = num23 + 1;
						num23 = num24;
					}
				}
				if (m_enableThirdBossEffect)
				{
					int num25 = Random.Range(m_thirdBossEffectMinAmount, m_thirdBossEffectMaxAmount);
					int num26 = 0;
					while (num26 < num25)
					{
						Vector3 position8 = ((Component)base.m_character).transform.position;
						Vector2 val17 = Random.insideUnitCircle * m_thirdBossEffectRadius;
						vSpawnPoint = position8 + new Vector3(val17.x, 0f, val17.y);
						if (!m_thirdBossEffectRandomStartMovement)
						{
							quaternion = Quaternion.identity;
						}
						else
						{
							int num27 = Random.Range(-359, 359);
							quaternion = Quaternion.Euler(0f, (float)num27, 0f);
						}
						GameObject val18 = Object.Instantiate<GameObject>(m_thirdBossEffect, vSpawnPoint, quaternion);
						val18.AddComponent(typeof(BossStage_Object_HS));
						val18.GetComponent<BossStage_Object_HS>().m_spawnedUniqueID = m_uniqueID;
						if (m_removeAddsAtEndOfTimer)
						{
							MonsterAI component19 = val18.GetComponent<MonsterAI>();
							if (Object.op_Implicit((Object)(object)component19))
							{
								val18.AddComponent(typeof(CharacterTimedDestruction));
								val18.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								val18.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								val18.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
							else
							{
								val18.AddComponent(typeof(TimedDestruction));
								val18.GetComponent<TimedDestruction>().m_timeout = 60f;
								val18.GetComponent<TimedDestruction>().m_triggerOnAwake = true;
							}
						}
						if (m_thirdBossEffectHealsBoss)
						{
							val18.GetComponent<BossStage_Object_HS>().m_healsBoss = true;
							if (m_destroyThirdBossEffectAfterHealingBoss)
							{
								val18.GetComponent<BossStage_Object_HS>().m_killSelf = true;
							}
						}
						Rigidbody component20 = val18.GetComponent<Rigidbody>();
						if (Object.op_Implicit((Object)(object)component20))
						{
							if (m_manuallySetThirdBossEffectVector3)
							{
								component20.AddForce(m_thirdBossEffectAddForceVector3 * (float)iForcePowerThirdEffect * Time.fixedDeltaTime, (ForceMode)0);
							}
							else if (m_thirdBossEffectMoveTowardBoss)
							{
								val6 = ((Component)base.m_character).transform.position - val18.transform.position;
								Vector3 normalized4 = ((Vector3)(ref val6)).normalized;
								component20.AddForce(normalized4 * (float)iForcePowerThirdEffect * Time.fixedDeltaTime, (ForceMode)1);
							}
							else if (m_thirdBossEffectRandomStartMovement)
							{
								component20.AddForce(Vector3.forward * (float)iForcePowerThirdEffect * Time.fixedDeltaTime, (ForceMode)1);
							}
						}
						int num28 = num26 + 1;
						num26 = num28;
					}
				}
				iStageCount++;
				break;
			case 3:
				if (!(m_HealthPercent <= m_fourthHealthPercent))
				{
					break;
				}
				if (m_stageFourStartMessage != "")
				{
					MessageHud.instance.ShowMessage((MessageType)2, m_stageOneStartMessage, 0, (Sprite)null);
				}
				m_haveStatusEffectHash = ((object)m_thirdStatusEffect).GetHashCode();
				if (base.m_character.GetSEMan().HaveStatusEffect(m_haveStatusEffectHash))
				{
					m_removeStatusEffectHash = ((object)m_thirdStatusEffect).GetHashCode();
					base.m_character.GetSEMan().RemoveStatusEffect(m_removeStatusEffectHash, false);
				}
				base.m_icon = m_stageFourIcon;
				m_statusEffectHash = ((object)m_fourthStatusEffect).GetHashCode();
				base.m_character.GetSEMan().AddStatusEffect(m_statusEffectHash, true, 0, 0f);
				iForcePowerFourthEffect = Random.Range(m_fourthBossEffectForcePowerMin, m_fourthBossEffectForcePowerMax);
				if (m_enableFourthWave)
				{
					int num = Random.Range(m_fourthWaveMinToSpawn, m_fourthWaveMaxToSpawn);
					int num2 = 0;
					float y = default(float);
					while (num2 < num)
					{
						Vector3 position = ((Component)base.m_character).transform.position;
						Vector2 val2 = Random.insideUnitCircle * m_fourthWaveSpawnRadius;
						vSpawnPoint = position + new Vector3(val2.x, 0f, val2.y);
						if (m_fourthWaveSnapToTerrain)
						{
							ZoneSystem.instance.GetSolidHeight(vSpawnPoint, ref y, m_getSolidHeightMargin);
							vSpawnPoint.y = y;
						}
						vSpawnPoint.y += m_fourthWaveSpawnGroundOffset;
						GameObject val3 = Object.Instantiate<GameObject>(m_fourthWaveMonster, vSpawnPoint, Quaternion.identity);
						val3.AddComponent(typeof(BossStage_Object_HS));
						val3.GetComponent<BossStage_Object_HS>().m_spawnedUniqueID = m_uniqueID;
						if (m_removeAddsAtEndOfTimer)
						{
							MonsterAI component = val3.GetComponent<MonsterAI>();
							if (Object.op_Implicit((Object)(object)component))
							{
								val3.AddComponent(typeof(CharacterTimedDestruction));
								val3.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								val3.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								val3.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
							else
							{
								val3.AddComponent(typeof(TimedDestruction));
								val3.GetComponent<TimedDestruction>().m_timeout = 60f;
								val3.GetComponent<TimedDestruction>().m_triggerOnAwake = true;
							}
						}
						Projectile component2 = val3.GetComponent<Projectile>();
						if (Object.op_Implicit((Object)(object)component2))
						{
							component2.Setup(base.m_character, Vector3.zero, -1f, (HitData)null, (ItemData)null, (ItemData)null);
						}
						BaseAI component3 = val3.GetComponent<BaseAI>();
						if (Object.op_Implicit((Object)(object)component3) && m_alertSpawnedCreatures)
						{
							component3.Alert();
						}
						m_spawnEffect.Create(val3.transform.position, val3.transform.rotation, (Transform)null, 1f, -1);
						int num3 = num2 + 1;
						num2 = num3;
					}
				}
				if (m_enableFourthBossEffect)
				{
					int num4 = Random.Range(m_fourthBossEffectMinAmount, m_fourthBossEffectMaxAmount);
					int num5 = 0;
					while (num5 < num4)
					{
						Vector3 position2 = ((Component)base.m_character).transform.position;
						Vector2 val4 = Random.insideUnitCircle * m_fourthBossEffectRadius;
						vSpawnPoint = position2 + new Vector3(val4.x, 0f, val4.y);
						if (!m_fourthBossEffectRandomStartMovement)
						{
							quaternion = Quaternion.identity;
						}
						else
						{
							int num6 = Random.Range(-359, 359);
							quaternion = Quaternion.Euler(0f, (float)num6, 0f);
						}
						GameObject val5 = Object.Instantiate<GameObject>(m_fourthBossEffect, vSpawnPoint, quaternion);
						val5.AddComponent(typeof(BossStage_Object_HS));
						val5.GetComponent<BossStage_Object_HS>().m_spawnedUniqueID = m_uniqueID;
						if (m_removeAddsAtEndOfTimer)
						{
							MonsterAI component4 = val5.GetComponent<MonsterAI>();
							if (Object.op_Implicit((Object)(object)component4))
							{
								val5.AddComponent(typeof(CharacterTimedDestruction));
								val5.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								val5.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								val5.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
							else
							{
								val5.AddComponent(typeof(TimedDestruction));
								val5.GetComponent<TimedDestruction>().m_timeout = 60f;
								val5.GetComponent<TimedDestruction>().m_triggerOnAwake = true;
							}
						}
						if (m_fourthBossEffectHealsBoss)
						{
							val5.GetComponent<BossStage_Object_HS>().m_healsBoss = true;
							if (m_destroyFourthBossEffectAfterHealingBoss)
							{
								val5.GetComponent<BossStage_Object_HS>().m_killSelf = true;
							}
						}
						Rigidbody component5 = val5.GetComponent<Rigidbody>();
						if (Object.op_Implicit((Object)(object)component5))
						{
							if (m_manuallySetFourthBossEffectVector3)
							{
								component5.AddForce(m_fourthBossEffectAddForceVector3 * (float)iForcePowerFourthEffect * Time.fixedDeltaTime, (ForceMode)0);
							}
							else if (m_fourthBossEffectMoveTowardBoss)
							{
								val6 = ((Component)base.m_character).transform.position - val5.transform.position;
								Vector3 normalized = ((Vector3)(ref val6)).normalized;
								component5.AddForce(normalized * (float)iForcePowerFourthEffect * Time.fixedDeltaTime, (ForceMode)1);
							}
							else if (m_fourthBossEffectRandomStartMovement)
							{
								component5.AddForce(Vector3.forward * (float)iForcePowerFourthEffect * Time.fixedDeltaTime, (ForceMode)1);
							}
						}
						int num7 = num5 + 1;
						num5 = num7;
					}
				}
				iStageCount++;
				break;
			case 4:
				if (!(base.m_ttl - base.m_time <= fEndCounter))
				{
					break;
				}
				if (m_killBossAtEndOfTimer)
				{
					Character character = base.m_character;
					Player val = (Player)(object)((character is Player) ? character : null);
					if (!Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)ZNetScene.instance))
					{
						m_nview = ((Component)base.m_character).gameObject.GetComponent<ZNetView>();
						if (Object.op_Implicit((Object)(object)m_nview))
						{
							m_nview.ClaimOwnership();
							if (m_nview.IsValid() && m_nview.IsOwner())
							{
								((Component)base.m_character).gameObject.AddComponent(typeof(CharacterTimedDestruction));
								((Component)base.m_character).gameObject.GetComponent<CharacterTimedDestruction>().m_timeoutMin = 60f;
								((Component)base.m_character).gameObject.GetComponent<CharacterTimedDestruction>().m_timeoutMax = 60f;
								((Component)base.m_character).gameObject.GetComponent<CharacterTimedDestruction>().m_triggerOnAwake = true;
							}
						}
						if (m_youLostMessage != "")
						{
							MessageHud.instance.ShowMessage((MessageType)2, m_youLostMessage, 0, (Sprite)null);
						}
					}
				}
				m_isDone = true;
				break;
			}
		}

		public override bool IsDone()
		{
			if (((StatusEffect)this).IsDone())
			{
				return true;
			}
			if (m_isDone)
			{
				return true;
			}
			if (!Object.op_Implicit((Object)(object)base.m_character))
			{
				return true;
			}
			return false;
		}
	}
	public class BossStage_Object_HS : MonoBehaviour
	{
		public int m_spawnedUniqueID;

		public bool m_healsBoss;

		public bool m_killSelf;

		private void Start()
		{
		}

		private void Update()
		{
		}
	}
	public class EmissiveMesh_HS : MonoBehaviour
	{
		[Header("Required")]
		public MeshRenderer[] renderers;

		public Color color = Color.white;

		[Header("Options")]
		public bool pulse = true;

		public float fadeLength = 1f;

		public float minPower = 0f;

		public float maxPower = 1f;

		public Color[] colors;

		private float _startPower = 1f;

		private float _currentPower = 1f;

		private float _desiredPower = 1f;

		private float _timer = 0f;

		public void SetColor(Color value)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			color = value;
		}

		public void SetColor(int index)
		{
			//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)
			color = colors[index];
		}

		public void SetMaxPower(float value)
		{
			maxPower = value;
		}

		public void SetLength(float value)
		{
			fadeLength = value;
		}

		public void SetEmissive(float value)
		{
			//IL_0002: 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)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			Color val = color * Mathf.LinearToGammaSpace(value);
			MeshRenderer[] array = renderers;
			foreach (MeshRenderer val2 in array)
			{
				((Renderer)val2).material.SetColor("_EmissionColor", val);
			}
		}

		public void FadeTo(float value, float start = -1f)
		{
			_startPower = ((start < 0f) ? _currentPower : start);
			_desiredPower = value;
			_timer = 0f;
		}

		private void Start()
		{
			if (renderers.Length != 0)
			{
				_startPower = maxPower;
				SetEmissive(_currentPower);
			}
		}

		private void Update()
		{
			if (renderers.Length == 0)
			{
				Object.Destroy((Object)(object)this);
			}
			if (pulse)
			{
				FadeEmissive();
			}
		}

		private void FadeEmissive()
		{
			CheckForSwitch();
			_currentPower = Mathf.Lerp(_startPower, _desiredPower, _timer / fadeLength);
			SetEmissive(_currentPower);
			_timer += Time.deltaTime;
		}

		private void CheckForSwitch()
		{
			if (!(_timer < fadeLength))
			{
				FadeTo((_desiredPower <= minPower) ? maxPower : minPower, (_desiredPower <= minPower) ? minPower : maxPower);
			}
		}
	}
	[BepInPlugin("assembly.horemvore", "Horemvores Assembly", "1.1.2")]
	[BepInIncompatibility("Azumatt.AzuDevMod")]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	internal class HoremvoreAssemblyBundle : BaseUnityPlugin
	{
		public const string PluginGUID = "assembly.horemvore";

		public const string PluginName = "Horemvores Assembly";

		public const string PluginVersion = "1.1.2";

		public AssetBundle assemblyAssets;

		public ConfigEntry<bool> ModEnable;

		public ConfigEntry<bool> DemoEnable;

		public ConfigEntry<bool> StarterGearEnable;

		public ConfigEntry<bool> AdditionalTooltipEnable;

		public ConfigEntry<bool> BonusTooltipEnable;

		public ConfigEntry<bool> DamageTooltipEnable;

		public ConfigEntry<bool> LoggingEnable;

		public ConfigEntry<bool> DisableLocalization;

		public ConfigEntry<bool> MinorBleedEnable;

		public ConfigEntry<bool> BleedEnable;

		public ConfigEntry<bool> MajorBleedEnable;

		public ConfigEntry<bool> CriticalBleedEnable;

		public ConfigEntry<bool> LifeDrainEnable;

		public ConfigEntry<bool> LifeSiphonEnable;

		public ConfigEntry<bool> DeathSiphonEnable;

		public ConfigEntry<bool> InfectionEnable;

		public ConfigEntry<bool> MajorInfectionEnable;

		public ConfigEntry<bool> CriticalInfectionEnable;

		public ConfigEntry<bool> RTDEnable;

		public ConfigEntry<bool> DedsArmyEnable;

		public ConfigEntry<bool> FantasyCreaturesEnable;

		public ConfigEntry<bool> GiantsEnable;

		public ConfigEntry<bool> MinotaursEnable;

		public ConfigEntry<bool> MushroomMonstersEnable;

		public ConfigEntry<bool> SkitteringMadnessEnable;

		public ConfigEntry<bool> SlimesEnable;

		public ConfigEntry<bool> CreepyCrawliesEnable;

		public ConfigEntry<bool> ItemSetsEnable;

		public ConfigEntry<bool> PickablesEnable;

		public string[] starterItemList = new string[2] { "ArmorStarterChest_AH", "ArmorStarterLegs_AH" };

		public string[] prefabList = new string[20]
		{
			"Projectile_RangerBowLightning_AH", "Projectile_RangerBow_AH", "FX_Star_AH", "Projectile_CheatStaff_AH", "Projectile_ClericStaff_AH", "Projectile_DruidStaff_AH", "Projectile_WizardStaff_AH", "FX_RareFlower_AH", "FX_TreeBase_Noise_AH", "FX_Pickable_Haste_AH",
			"FX_MineRock_Noise_AH", "VFX_StaminaStart_AH", "VFX_ManaStart_AH", "VFX_HealStart_AH", "VFX_RegenStart_AH", "VFX_ShieldStart_AH", "VFX_JudgementHit_AH", "VFX_BleedActive_AH", "VFX_InfectionActive_AH", "VFX_LeechActive_AH"
		};

		public string[] sfxList = new string[14]
		{
			"FX_ArrowRangerLightning_Hit_AH", "FX_ArrowRanger_Hit_AH", "FX_CheatStaff_Hit_AH", "FX_ClericStaff_Hit_AH", "FX_DruidStaff_Hit_AH", "FX_WizardStaff_Hit_AH", "SFX_FireballShoot_AH", "SFX_RareItem_AH", "SFX_NoiseDampening_AH", "SFX_NoiseReduction_AH",
			"SFX_Haste_AH", "SFX_Effect_OnDamaged_AH", "SFX_RemoveEffect_AH", "SFX_SetBuff_AH"
		};

		public string[] itemList = new string[83]
		{
			"Item_Bark_SwampAspen_AH", "Item_Bark_ChillingAcacia_AH", "Item_Bark_BlisterBirch_AH", "Item_Bark_TangledElm_AH", "Item_Bark_HollowBeech_AH", "Item_BloodSaffron_AH", "Item_Dracflorus_AH", "Item_NightHood_AH", "Item_PurpleStrand_AH", "Item_Poisonflower_AH",
			"Item_DeathsRye_AH", "Item_VolcanoClove_AH", "Item_ShadowLavender_AH", "Item_SneezingBower_AH", "CheatStaff_AH", "HelmetDruid_AH", "ArmorDruidLegs_AH", "ArmorDruidChest_AH", "CapeDruid_AH", "RingDruid_AH",
			"StaffDruid_AH", "CapeRogue_AH", "HelmetRogue_AH", "ArmorRogueChest_AH", "ArmorRogueLegs_AH", "BeltRogue_AH", "SkollRogue_AH", "StaffWizard_AH", "CapeWizard_AH", "RingWizard_AH",
			"HelmetWizard_AH", "ArmorWizardChest_AH", "ArmorWizardLegs_AH", "CapePaladin_AH", "HelmetPaladin_AH", "ArmorPaladinChest_AH", "ArmorPaladinLegs_AH", "SwordPaladin_AH", "BeltPaladin_AH", "CapeWarrior_AH",
			"HelmetWarrior_AH", "ArmorWarriorChest_AH", "ArmorWarriorLegs_AH", "ShieldWarrior_AH", "HammerWarrior_AH", "CapeBarbarian_AH", "HelmetBarbarian_AH", "ArmorBarbarianChest_AH", "ArmorBarbarianLegs_AH", "RingBarbarian_AH",
			"BattleaxeBarbarian_AH", "BowRanger_AH", "RingRanger_AH", "CapeRanger_AH", "HelmetRanger_AH", "ArmorRangerChest_AH", "ArmorRangerLegs_AH", "CapeCleric_AH", "HelmetCleric_AH", "ArmorClericChest_AH",
			"ArmorClericLegs_AH", "ShieldCleric_AH", "HammerCleric_AH", "StaffCleric_AH", "RingCleric_AH", "Item_Potion_Yellow_1_AH", "Item_Potion_Yellow_2_AH", "Item_Potion_Yellow_3_AH", "Item_Potion_Bless_AH", "Item_Potion_Dispel_AH",
			"Item_Potion_Purify_AH", "Item_Potion_CureMinorWounds_AH", "Item_Potion_CureWounds_AH", "Item_Potion_CureMajorWounds_AH", "Item_Flask_Red_3_AH", "Item_Flask_Red_2_AH", "Item_Flask_Red_1_AH", "Item_Elixir_Red_3_AH", "Item_Elixir_Red_2_AH", "Item_Elixir_Red_1_AH",
			"Item_Potion_Red_3_AH", "Item_Potion_Red_2_AH", "Item_Potion_Red_1_AH"
		};

		public string[] divingList = new string[1] { "SE_ToTheDepths_AH" };

		public string[] tradeEffectList = new string[6] { "SE_PickableBuff_RareFlower_AH", "SE_PickableBuff_Haste_AH", "SE_MineRockBuff_Gems_AH", "SE_MineRockBuff_Noise_AH", "SE_TreeBaseBuff_RareWood_AH", "SE_TreeBaseBuff_Noise_AH" };

		public string[] eotEffectList = new string[1] { "SE_EitrRecovery_AH" };

		public string[] sotEffectList = new string[1] { "SE_StaminaRecovery_AH" };

		public string[] dotEffectList = new string[19]
		{
			"SE_Judgement_AH", "SE_Vengance_AH", "SE_Smite_AH", "SE_Rend_AH", "SE_Gore_AH", "SE_Lacerate_AH", "SE_Maul_AH", "SE_Shred_AH", "SE_Mangle_AH", "SE_Maim_AH",
			"SE_Hemorrage_AH", "SE_Rupture_AH", "SE_LeechLife_AH", "SE_VampiresTouch_AH", "SE_LifeDrain_AH", "SE_SiphonLife_AH", "SE_VampiricEmbrace_AH", "SE_DeathSiphon_AH", "SE_DeathCoil_AH"
		};

		public string[] hotEffectList = new string[11]
		{
			"SE_EirsHeal_AH", "SE_EirsRegen_AH", "SE_FlaskRed_1_AH", "SE_FlaskRed_2_AH", "SE_FlaskRed_3_AH", "SE_ElixirRed_1_AH", "SE_ElixirRed_2_AH", "SE_ElixirRed_3_AH", "SE_PotionRed_1_AH", "SE_PotionRed_2_AH",
			"SE_PotionRed_3_AH"
		};

		public string[] infectionEffectList = new string[29]
		{
			"SE_DeathsRye_AH", "SE_Poisonflower_AH", "SE_VolcanoClove_AH", "SE_CriticalFrostbite_AH", "SE_DeadlyFrostbite_AH", "SE_Frostbite_AH", "SE_JuniorFrostbite_AH", "SE_MajorFrostbite_AH", "SE_MinorFrostbite_AH", "SE_SeniorFrostbite_AH",
			"SE_Burns_AH", "SE_CriticalBurns_AH", "SE_DeadlyBurns_AH", "SE_JuniorBurns_AH", "SE_MajorBurns_AH", "SE_MinorBurns_AH", "SE_SeniorBurns_AH", "SE_Weak_AH", "SE_Poison_AH", "SE_Venom_AH",
			"SE_Infection_AH", "SE_Scourge_AH", "SE_Disease_AH", "SE_Contagion_AH", "SE_Pestilence_AH", "SE_Bane_AH", "SE_Blight_AH", "SE_Corrosion_AH", "SE_Corruption_AH"
		};

		public string[] passiveEffectList = new string[325]
		{
			"SE_EirBlessing_AH", "SE_EirsGrace_AH", "SE_EirsProtection_AH", "SE_CorporealArmor_AH", "SE_CorporealCloak_AH", "SE_CorporealHelm_AH", "SE_CorporealLegs_AH", "SE_CorporealUtility_AH", "SE_CorporealWeapon_AH", "SE_AbominableArmor_AH",
			"SE_AbominableCloak_AH", "SE_AbominableHelm_AH", "SE_AbominableLegs_AH", "SE_AbominableUtility_AH", "SE_AbominableWeapon_AH", "SE_BlackguardArmor_AH", "SE_BlackguardCloak_AH", "SE_BlackguardHelm_AH", "SE_BlackguardLegs_AH", "SE_BlackguardUtility_AH",
			"SE_BlackguardWeapon_AH", "SE_CarnalArmor_AH", "SE_CarnalCloak_AH", "SE_CarnalHelm_AH", "SE_CarnalLegs_AH", "SE_CarnalUtility_AH", "SE_CarnalWeapon_AH", "SE_BruteArmor_AH", "SE_BruteCloak_AH", "SE_BruteHelm_AH",
			"SE_BruteLegs_AH", "SE_BruteUtility_AH", "SE_BruteWeapon_AH", "SE_InvaderArmor_AH", "SE_InvaderCloak_AH", "SE_InvaderHelm_AH", "SE_InvaderLegs_AH", "SE_InvaderUtility_AH", "SE_InvaderWeapon_AH", "SE_EnforcerArmor_AH",
			"SE_EnforcerCloak_AH", "SE_EnforcerHelm_AH", "SE_EnforcerLegs_AH", "SE_EnforcerUtility_AH", "SE_EnforcerWeapon_AH", "SE_BetrayerArmor_AH", "SE_BetrayerCloak_AH", "SE_BetrayerHelm_AH", "SE_BetrayerLegs_AH", "SE_BetrayerUtility_AH",
			"SE_BetrayerWeapon_AH", "SE_GuerrillaArmor_AH", "SE_GuerrillaCloak_AH", "SE_GuerrillaHelm_AH", "SE_GuerrillaLegs_AH", "SE_GuerrillaUtility_AH", "SE_GuerrillaWeapon_AH", "SE_BushwhackerArmor_AH", "SE_BushwhackerCloak_AH", "SE_BushwhackerHelm_AH",
			"SE_BushwhackerLegs_AH", "SE_BushwhackerUtility_AH", "SE_BushwhackerWeapon_AH", "SE_SorcererArmor_AH", "SE_SorcererCloak_AH", "SE_SorcererHelm_AH", "SE_SorcererLegs_AH", "SE_SorcererUtility_AH", "SE_SorcererWeapon_AH", "SE_EnchanterArmor_AH",
			"SE_EnchanterCloak_AH", "SE_EnchanterHelm_AH", "SE_EnchanterLegs_AH", "SE_EnchanterUtility_AH", "SE_EnchanterWeapon_AH", "SE_ConjurerArmor_AH", "SE_ConjurerCloak_AH", "SE_ConjurerHelm_AH", "SE_ConjurerLegs_AH", "SE_ConjurerUtility_AH",
			"SE_ConjurerWeapon_AH", "SE_CharmerArmor_AH", "SE_CharmerCloak_AH", "SE_CharmerHelm_AH", "SE_CharmerLegs_AH", "SE_CharmerUtility_AH", "SE_CharmerWeapon_AH", "SE_AlchemistArmor_AH", "SE_AlchemistCloak_AH", "SE_AlchemistHelm_AH",
			"SE_AlchemistLegs_AH", "SE_AlchemistUtility_AH", "SE_AlchemistWeapon_AH", "SE_MysticArmor_AH", "SE_MysticCloak_AH", "SE_MysticHelm_AH", "SE_MysticLegs_AH", "SE_MysticUtility_AH", "SE_MysticWeapon_AH", "SE_ProphetArmor_AH",
			"SE_ProphetCloak_AH", "SE_ProphetHelm_AH", "SE_ProphetLegs_AH", "SE_ProphetUtility_AH", "SE_ProphetWeapon_AH", "SE_DivinerArmor_AH", "SE_DivinerCloak_AH", "SE_DivinerHelm_AH", "SE_DivinerLegs_AH", "SE_DivinerUtility_AH",
			"SE_DivinerWeapon_AH", "SE_SeerArmor_AH", "SE_SeerCloak_AH", "SE_SeerHelm_AH", "SE_SeerLegs_AH", "SE_SeerUtility_AH", "SE_SeerWeapon_AH", "SE_SoothsayerArmor_AH", "SE_SoothsayerCloak_AH", "SE_SoothsayerHelm_AH",
			"SE_SoothsayerLegs_AH", "SE_SoothsayerUtility_AH", "SE_SoothsayerWeapon_AH", "SE_ExecutionerArmor_AH", "SE_ExecutionerCloak_AH", "SE_ExecutionerHelm_AH", "SE_ExecutionerLegs_AH", "SE_ExecutionerUtility_AH", "SE_ExecutionerWeapon_AH", "SE_InquisitorArmor_AH",
			"SE_InquisitorCloak_AH", "SE_InquisitorHelm_AH", "SE_InquisitorLegs_AH", "SE_InquisitorUtility_AH", "SE_InquisitorWeapon_AH", "SE_DesecraterArmor_AH", "SE_DesecraterCloak_AH", "SE_DesecraterHelm_AH", "SE_DesecraterLegs_AH", "SE_DesecraterUtility_AH",
			"SE_DesecraterWeapon_AH", "SE_DefilerArmor_AH", "SE_DefilerCloak_AH", "SE_DefilerHelm_AH", "SE_DefilerLegs_AH", "SE_DefilerUtility_AH", "SE_DefilerWeapon_AH", "SE_AntagonistArmor_AH", "SE_AntagonistCloak_AH", "SE_AntagonistHelm_AH",
			"SE_AntagonistLegs_AH", "SE_AntagonistUtility_AH", "SE_AntagonistWeapon_AH", "SE_GladiatorArmor_AH", "SE_GladiatorCloak_AH", "SE_GladiatorHelm_AH", "SE_GladiatorLegs_AH", "SE_GladiatorUtility_AH", "SE_GladiatorWeapon_AH", "SE_MercenaryArmor_AH",
			"SE_MercenaryCloak_AH", "SE_MercenaryHelm_AH", "SE_MercenaryLegs_AH", "SE_MercenaryUtility_AH", "SE_MercenaryWeapon_AH", "SE_DuelerArmor_AH", "SE_DuelerCloak_AH", "SE_DuelerHelm_AH", "SE_DuelerLegs_AH", "SE_DuelerUtility_AH",
			"SE_DuelerWeapon_AH", "SE_SwashbucklerArmor_AH", "SE_SwashbucklerCloak_AH", "SE_SwashbucklerHelm_AH", "SE_SwashbucklerLegs_AH", "SE_SwashbucklerUtility_AH", "SE_SwashbucklerWeapon_AH", "SE_RuffianArmor_AH", "SE_RuffianCloak_AH", "SE_RuffianHelm_AH",
			"SE_RuffianLegs_AH", "SE_RuffianUtility_AH", "SE_RuffianWeapon_AH", "SE_AssassinArmor_AH", "SE_AssassinCloak_AH", "SE_AssassinHelm_AH", "SE_AssassinLegs_AH", "SE_AssassinUtility_AH", "SE_AssassinWeapon_AH", "SE_DeceiverArmor_AH",
			"SE_DeceiverCloak_AH", "SE_DeceiverHelm_AH", "SE_DeceiverLegs_AH", "SE_DeceiverUtility_AH", "SE_DeceiverWeapon_AH", "SE_SaboteurArmor_AH", "SE_SaboteurCloak_AH", "SE_SaboteurHelm_AH", "SE_SaboteurLegs_AH", "SE_SaboteurUtility_AH",
			"SE_SaboteurWeapon_AH", "SE_BackbiterArmor_AH", "SE_BackbiterCloak_AH", "SE_BackbiterHelm_AH", "SE_BackbiterLegs_AH", "SE_BackbiterUtility_AH", "SE_BackbiterWeapon_AH", "SE_BanditArmor_AH", "SE_BanditCloak_AH", "SE_BanditHelm_AH",
			"SE_BanditLegs_AH", "SE_BanditUtility_AH", "SE_BanditWeapon_AH", "SE_ProtectorArmor_AH", "SE_ProtectorCloak_AH", "SE_ProtectorHelm_AH", "SE_ProtectorLegs_AH", "SE_ProtectorUtility_AH", "SE_ProtectorWeapon_AH", "SE_GuardianArmor_AH",
			"SE_GuardianCloak_AH", "SE_GuardianHelm_AH", "SE_GuardianLegs_AH", "SE_GuardianUtility_AH", "SE_GuardianWeapon_AH", "SE_StalwartArmor_AH", "SE_StalwartCloak_AH", "SE_StalwartHelm_AH", "SE_StalwartLegs_AH", "SE_StalwartUtility_AH",
			"SE_StalwartWeapon_AH", "SE_DefenderArmor_AH", "SE_DefenderCloak_AH", "SE_DefenderHelm_AH", "SE_DefenderLegs_AH", "SE_DefenderUtility_AH", "SE_DefenderWeapon_AH", "SE_TankArmor_AH", "SE_TankCloak_AH", "SE_TankHelm_AH",
			"SE_TankLegs_AH", "SE_TankUtility_AH", "SE_TankWeapon_AH", "SE_Admin_AH", "SE_Mining_AH", "SE_WoodCutting_AH", "SE_Harvesting_AH", "SE_ShadowLavender_AH", "SE_SneezingBower_AH", "SE_SetEffect_Starter_AH",
			"SE_SetStarterBuff_AH", "SE_StarterChest_AH", "SE_StarterLegs_AH", "SE_DruidArmor_AH", "SE_DruidCloak_AH", "SE_DruidHelm_AH", "SE_DruidLeggings_AH", "SE_DruidUtility_AH", "SE_DruidWeapon_AH", "SE_SetEffectDruid_AH",
			"SE_SetEffectDruidWeapons_AH", "SE_SetDruidBuff_AH", "SE_SetEffectPaladinWeapons_AH", "SE_SetEffectRogueWeapons_AH", "SE_SetEffectClericWeapons_AH", "SE_SetEffectWarriorWeapons_AH", "SE_SetEffectWizardWeapons_AH", "SE_SetEffectBarbarianWeapons_AH", "SE_SetEffectRangerWeapons_AH", "SE_SetBarbarianBuff_AH",
			"SE_SetClericBuff_AH", "SE_SetPaladinBuff_AH", "SE_SetRangerBuff_AH", "SE_SetRogueBuff_AH", "SE_SetWarriorBuff_AH", "SE_SetWizardBuff_AH", "SE_SetEffectBarbarian_AH", "SE_SetEffectCleric_AH", "SE_SetEffectPaladin_AH", "SE_SetEffectRanger_AH",
			"SE_SetEffectRogue_AH", "SE_SetEffectWarrior_AH", "SE_SetEffectWizard_AH", "SE_BarbarianArmor_AH", "SE_BarbarianHelm_AH", "SE_BarbarianLeggings_AH", "SE_BarbarianCloak_AH", "SE_BarbarianUtility_AH", "SE_BarbarianWeapon_AH", "SE_ClericHelm_AH",
			"SE_ClericArmor_AH", "SE_ClericLeggings_AH", "SE_ClericUtility_AH", "SE_ClericWeapon_AH", "SE_ClericShield_AH", "SE_PaladinArmor_AH", "SE_PaladinHelm_AH", "SE_PaladinLeggings_AH", "SE_PaladinUtility_AH", "SE_PaladinWeapon_AH",
			"SE_PaladinCloak_AH", "SE_RangerArmor_AH", "SE_RangerHelm_AH", "SE_RangerLeggings_AH", "SE_RangerCloak_AH", "SE_RangerUtility_AH", "SE_RangerWeapon_AH", "SE_RogueArmor_AH", "SE_RogueHelm_AH", "SE_RogueLeggings_AH",
			"SE_RogueUtility_AH", "SE_RogueWeapon_AH", "SE_RogueCloak_AH", "SE_WarriorArmor_AH", "SE_WarriorHelm_AH", "SE_WarriorLeggings_AH", "SE_WarriorUtility_AH", "SE_WarriorWeapon_AH", "SE_WarriorShield_AH", "SE_WizardArmor_AH",
			"SE_WizardCloak_AH", "SE_WizardHelm_AH", "SE_WizardLeggings_AH", "SE_WizardUtility_AH", "SE_WizardWeapon_AH"
		};

		public string[] cureEffectList = new string[7] { "SE_CureMajorWounds_AH", "SE_CureMinorWounds_AH", "SE_CureWounds_AH", "SE_Bless_AH", "SE_Cleanse_AH", "SE_Dispel_AH", "SE_Purify_AH" };

		public string[] randomEffectList = new string[16]
		{
			"SE_EirsFavor_AH", "SE_RandomMinorFrostbite_AH", "SE_RandomFrostbite_AH", "SE_RandomMajorFrostbite_AH", "SE_RandomMinorBurn_AH", "SE_RandomBurn_AH", "SE_RandomMajorBurn_AH", "SE_RandomMinorInfection_AH", "SE_RandomInfection_AH", "SE_RandomMajorInfection_AH",
			"SE_RandomCriticalInfection_AH", "SE_RandomDeadlyInfection_AH", "SE_RandomMinorBleed_AH", "SE_RandomBleed_AH", "SE_RandomMajorBleed_AH", "SE_RandomCriticalBleed_AH"
		};

		public string[] minorBleedList = new string[3] { "boar_base_attack", "Neck_BiteAttack", "Greyling_attack" };

		public string[] bleedList = new string[2] { "Greydwarf_attack", "Greydwarf_elite_attack" };

		public string[] majorBleedList = new string[8] { "lox_bite", "GoblinBrute_Attack", "GoblinSpear", "stonegolem_attack3_spikesweep", "stonegolem_attack1_spike", "Wolf_Attack1", "Wolf_Attack2", "Wolf_Attack3" };

		public string[] criticalBleedList = new string[7] { "DvergerArbalest_shoot", "Dverger_melee", "SeekerBrute_ram", "SeekerBrute_bite", "seeker_pincers", "seeker_claw_right", "seeker_claw_left" };

		public string[] infectionList = new string[2] { "skeleton_mace", "Leech_BiteAttack" };

		public string[] majorInfectionList = new string[2] { "bat_melee", "Deathsquito_sting" };

		public string[] criticalInfectionList = new string[2] { "tick_attack", "gjall_attack_spit" };

		public string[] curseList = new string[2] { "skeleton_bow", "skeleton_sword" };

		public string[] lifeDrainList = new string[2] { "skeleton_bow", "skeleton_sword" };

		public string[] lifeSiphonList = new string[4] { "wraith_melee", "draugr_sword", "draugr_axe", "draugr_bow" };

		public string[] deathSiphonList = new string[2] { "Fenring_attack_jump", "Fenring_attack_claw" };

		public string[] rtdCriticalBleedList = new string[4] { "ElfWarriorAttackF4_RtD", "ElfWarriorAttackM4_RtD", "WolfAttack2_RtD", "HunterMelee3_RtD" };

		public string[] rtdMajorBleedList = new string[4] { "BoarAttack2_RtD", "AssassinAttack2_RtD", "BerserkerAttack4_RtD", "CrusaderAttack2_RtD" };

		public string[] rtdMajorBurnList = new string[2] { "FairyAttackFire1_RtD", "DemonHornAttack_RtD" };

		public string[] rtdMajorFrostbiteList = new string[3] { "ElementalAttack1_RtD", "FairyAttackIce1_RtD", "PriestMelee1_RtD" };

		public string[] dedsArmyInfectionList = new string[4] { "Undead_Attack3_DA", "Vampire_Attack3_DA", "Skeleton2H_Attack3_DA", "Skeleton1H_Attack3_DA" };

		public string[] fantMinorBleedList = new string[2] { "Hobgoblin_Attack3_DoD", "Kobold_Attack3_DoD" };

		public string[] fantBleedList = new string[2] { "Ogre_Attack3_DoD", "Ent_Attack3_DoD" };

		public string[] fantMajorBleedList = new string[4] { "Cyclops_AttackSmash_DoD", "Manticore_Attack3_DoD", "Griffin_Attack3_DoD", "Harpy_Attack3_DoD" };

		public string[] fantCriticalBleedList = new string[3] { "Element_AttackGrab_DoD", "Element_AttackSmash_DoD", "Element_AttackSwipe_DoD" };

		public string[] fantInfectionList = new string[3] { "Manticore_Attack3_DoD", "Mummy_Attack3_DoD", "Ghoul_Attack3_DoD" };

		public string[] fantMajorBurnList = new string[3] { "FireElement_AttackSwipe_DoD", "FireElement_AttackSmash_DoD", "FireElement_AttackGrab_DoD" };

		public string[] fantMajorFrostbiteList = new string[3] { "IceElement_AttackSwipe_DoD", "IceElement_AttackSmash_DoD", "IceElement_AttackGrab_DoD" };

		public string[] giantMinorBleedList = new string[1] { "HillGiant_Attack3_HG" };

		public string[] giantBleedList = new string[1] { "Giant_Attack3_HG" };

		public string[] giantMajorBurnList = new string[1] { "FireGiant_Attack3_HG" };

		public string[] giantFrostbiteList = new string[1] { "MountainGiant_Attack3_HG" };

		public string[] giantMajorFrostbiteList = new string[1] { "FrostGiant_Attack3_HG" };

		public string[] minotaurMajorBleedList = new string[1] { "Minotaur_Attack3_HG" };

		public string[] minotaurMajorBurnList = new string[1] { "FireMinotaur_Attack3_HG" };

		public string[] minotaurMajorFrostbiteList = new string[1] { "FrostMinotaur_Attack3_HG" };

		public string[] mushInfectionList = new string[3] { "MushroomSwamp_Attack3_MP", "MushroomForest_Attack3_MP", "MushroomMeadows_Attack3_MP" };

		public string[] mushMajorInfectionList = new string[2] { "MushroomPlains_Attack3_MP", "MushroomMountain_Attack3_MP" };

		public string[] mushCriticalInfectionList = new string[3] { "MushroomDeepNorth_Attack3_MP", "MushroomAshLands_Attack3_MP", "MushroomMistlands_Attack3_MP" };

		public string[] scorpionCriticalInfectionList = new string[5] { "Scorpion_AttackSting_SM", "ScorpionM_AttackSting_SM", "ScorpionDN_AttackSting_SM", "ScorpionAL_AttackSting_SM", "ScorpionBoss_AttackSting_SM" };

		public string[] slimeInfectionList = new string[2] { "SlimeGreen_Attack3_HS", "SlimeYellow_Attack3_HS" };

		public string[] slimeMinorBurnList = new string[1] { "SlimePink_Attack3_HS" };

		public string[] slimeMajorBurnList = new string[1] { "SlimeRed_Attack3_HS" };

		public string[] slimeMinorFrostbiteList = new string[1] { "SlimeBlue_Attack3_HS" };

		public string[] creepyMinorBleedList = new string[8] { "Attack_SpiderForest_Jump_CC", "Attack_SpiderForest_Pounce_CC", "Attack_CrabForest_Double_CC", "Attack_CrabForest_Jump_CC", "Attack_CrabOcean_Double_CC", "Attack_CrabOcean_Jump_CC", "Attack_BeetleGold_Fly_CC", "Attack_BeetleShrub_Fly_CC" };

		public string[] creepyMinorInfectionList = new string[3] { "Attack_BeetleStink_Fly_CC", "Attack_SpiderSwamp_Jump_CC", "Attack_SpiderSwamp_Pounce_CC" };

		public string[] creepyMinorFrostbiteList = new string[6] { "Attack_SpiderCave_Pounce_CC", "Attack_SpiderCave_Jump_CC", "Attack_InsectCave_Jump_CC", "Attack_InsectCave_Double_CC", "Attack_CrabCave_Jump_CC", "Attack_CrabCave_Double_CC" };

		public string[] creepyBleedList = new string[2] { "Attack_SpiderCamel_Jump_CC", "Attack_SpiderCamel_Pounce_CC" };

		public string[] creepyInfectionList = new string[2] { "Attack_InsectMist_Double_CC", "Attack_InsectMist_Jump_CC" };

		public string[] creepyBurnList = new string[4] { "Attack_SpiderLava_Jump_CC", "Attack_SpiderLava_Pounce_CC", "Attack_InsectLava_Double_CC", "Attack_InsectLava_Jump_CC" };

		public string[] creepyFrostbiteList = new string[4] { "Attack_InsectHoarfrost_Jump_CC", "Attack_InsectHoarfrost_Double_CC", "Attack_SpiderHoarfrost_Jump_CC", "Attack_SpiderHoarfrost_Pounce_CC" };

		public CustomLocalization LocalAH;

		public void CreateConfigurationValues()
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Expected O, but got Unknown
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Expected O, but got Unknown
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Expected O, but got Unknown
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Expected O, but got Unknown
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Expected O, but got Unknown
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Expected O, but got Unknown
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Expected O, but got Unknown
			//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)
			//IL_0131: Expected O, but got Unknown
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Expected O, but got Unknown
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Expected O, but got Unknown
			//IL_016e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Expected O, but got Unknown
			//IL_019d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Expected O, but got Unknown
			//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Expected O, but got Unknown
			//IL_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01df: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e8: Expected O, but got Unknown
			//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f2: Expected O, but got Unknown
			//IL_0217: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0225: Expected O, but got Unknown
			//IL_0225: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Expected O, but got Unknown
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_0259: Unknown result type (might be due to invalid IL or missing references)
			//IL_0262: Expected O, but got Unknown
			//IL_0262: Unknown result type (might be due to invalid IL or missing references)
			//IL_026c: Expected O, but got Unknown
			//IL_0291: Unknown result type (might be due to invalid IL or missing references)
			//IL_0296: Unknown result type (might be due to invalid IL or missing references)
			//IL_029f: Expected O, but got Unknown
			//IL_029f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Expected O, but got Unknown
			//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dc: Expected O, but got Unknown
			//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e6: Expected O, but got Unknown
			//IL_030b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0310: Unknown result type (might be due to invalid IL or missing references)
			//IL_0319: Expected O, but got Unknown
			//IL_0319: Unknown result type (might be due to invalid IL or missing references)
			//IL_0323: Expected O, but got Unknown
			//IL_0348: Unknown result type (might be due to invalid IL or missing references)
			//IL_034d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0356: Expected O, but got Unknown
			//IL_0356: Unknown result type (might be due to invalid IL or missing references)
			//IL_0360: Expected O, but got Unknown
			//IL_0385: Unknown result type (might be due to invalid IL or missing references)
			//IL_038a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0393: Expected O, but got Unknown
			//IL_0393: Unknown result type (might be due to invalid IL or missing references)
			//IL_039d: Expected O, but got Unknown
			//IL_03c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d0: Expected O, but got Unknown
			//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03da: Expected O, but got Unknown
			//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0404: Unknown result type (might be due to invalid IL or missing references)
			//IL_040d: Expected O, but got Unknown
			//IL_040d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0417: Expected O, but got Unknown
			//IL_043c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0441: Unknown result type (might be due to invalid IL or missing references)
			//IL_044a: Expected O, but got Unknown
			//IL_044a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0454: Expected O, but got Unknown
			//IL_0479: Unknown result type (might be due to invalid IL or missing references)
			//IL_047e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0487: Expected O, but got Unknown
			//IL_0487: Unknown result type (might be due to invalid IL or missing references)
			//IL_0491: Expected O, but got Unknown
			//IL_04b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c4: Expected O, but got Unknown
			//IL_04c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ce: Expected O, but got Unknown
			//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0501: Expected O, but got Unknown
			//IL_0501: Unknown result type (might be due to invalid IL or missing references)
			//IL_050b: Expected O, but got Unknown
			//IL_0530: Unknown result type (might be due to invalid IL or missing references)
			//IL_0535: Unknown result type (might be due to invalid IL or missing references)
			//IL_053e: Expected O, but got Unknown
			//IL_053e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0548: Expected O, but got Unknown
			//IL_056d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0572: Unknown result type (might be due to invalid IL or missing references)
			//IL_057b: Expected O, but got Unknown
			//IL_057b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0585: Expected O, but got Unknown
			//IL_05aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_05af: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b8: Expected O, but got Unknown
			//IL_05b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c2: Expected O, but got Unknown
			//IL_05e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f5: Expected O, but got Unknown
			//IL_05f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ff: Expected O, but got Unknown
			//IL_0624: Unknown result type (might be due to invalid IL or missing references)
			//IL_0629: Unknown result type (might be due to invalid IL or missing references)
			//IL_0632: Expected O, but got Unknown
			//IL_0632: Unknown result type (might be due to invalid IL or missing references)
			//IL_063c: Expected O, but got Unknown
			//IL_0661: Unknown result type (might be due to invalid IL or missing references)
			//IL_0666: Unknown result type (might be due to invalid IL or missing references)
			//IL_066f: Expected O, but got Unknown
			//IL_066f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0679: Expected O, but got Unknown
			//IL_069e: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ac: Expected O, but got Unknown
			//IL_06ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b6: Expected O, but got Unknown
			//IL_06db: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e9: Expected O, but got Unknown
			//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f3: Expected O, but got Unknown
			try
			{
				((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
				ModEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1 Horemvores Assembly", "Enable", true, new ConfigDescription("Admin only, Enables this mod", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				AdditionalTooltipEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.0001 Status Effects", "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.0002 Status Effects", "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.0003 Status Effects", "Enable", true, new ConfigDescription("Admin only, Show the Damage Tooltip information for Status Effects", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				PickablesEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.001 Gathering and Collecting", "Enable", false, new ConfigDescription("Admin only, none of this has been tested. It is here cause I am to lazy to go uncomment what I need to :), its off, so, if you turn it on and it implodes, just turn it off again :D. Enables pickables, trees and ores, to give a bonus effect when picked.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				RTDEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.01 Ready to Die", "Enable", false, new ConfigDescription("Admin only, enables adding random effects to monsters from this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				DedsArmyEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.02 Deds Army", "Enable", false, new ConfigDescription("Admin only, enables adding random effects to monsters from this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				FantasyCreaturesEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.03 Fantasy Creatures", "Enable", false, new ConfigDescription("Admin only, enables adding random effects to monsters from this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				GiantsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.04 Fee Fi Fo", "Enable", false, new ConfigDescription("Admin only, enables adding random effects to monsters from this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				MinotaursEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.05 Minotaurs", "Enable", false, new ConfigDescription("Admin only, enables adding random effects to monsters from this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				MushroomMonstersEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.06 Mushroom Monsters", "Enable", false, new ConfigDescription("Admin only, enables adding random effects to monsters from this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				SkitteringMadnessEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.07 Skittering Madness", "Enable", false, new ConfigDescription("Admin only, enables adding random effects to monsters from this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				SlimesEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.08 Slimes R Us", "Enable", false, new ConfigDescription("Admin only, enables adding random effects to monsters from this mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				ItemSetsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.09 Items", "Enable", true, new ConfigDescription("Admin only, adds potions and 8 armour and 8 weapon sets with custom effects.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				DemoEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.1 Demo", "Enable", false, new ConfigDescription("Admin only, enables the status effect demo", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				MinorBleedEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.11 Demo - Minor Bleed", "Enable", true, new ConfigDescription("Admin only, adds the status effect Random Minor Bleed to Vanilla Monsters", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				BleedEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.12 Demo - Bleed", "Enable", true, new ConfigDescription("Admin only, adds the status effect Random Bleed to Vanilla Monsters", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				MajorBleedEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.13 Demo - Major Bleed", "Enable", true, new ConfigDescription("Admin only, adds the status effect Random Major Bleed to Vanilla Monsters", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				CriticalBleedEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("1.14 Demo - Critical Bleed", "Enable", true, new ConfigDescription("Admin only, adds the status effect Random Critical Bleed to Vanilla Monsters", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManage