Decompiled source of Praetoria Frostloche v1.2.3

BepInEx/plugins/StarLevelSystem.dll

Decompiled 11 hours ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Jotunn;
using Jotunn.Entities;
using Jotunn.Managers;
using StarLevelSystem.common;
using StarLevelSystem.modules;
using UnityEngine;
using UnityEngine.UI;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("StarLevelSystem")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("StarLevelSystem")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.0.2")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.2.0")]
namespace StarLevelSystem
{
	internal class ValConfig
	{
		[CompilerGenerated]
		private sealed class <OnClientReceiveColorConfigs>d__36 : IEnumerator<object>, IDisposable, IEnumerator
		{
			private int <>1__state;

			private object <>2__current;

			public ZPackage package;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <OnClientReceiveColorConfigs>d__36(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					Colorization.UpdateYamlConfig(package.ReadString());
					<>2__current = null;
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <OnClientReceiveLevelConfigs>d__35 : IEnumerator<object>, IDisposable, IEnumerator
		{
			private int <>1__state;

			private object <>2__current;

			public ZPackage package;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <OnClientReceiveLevelConfigs>d__35(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					LevelSystemData.UpdateYamlConfig(package.ReadString());
					<>2__current = null;
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <OnServerRecieveConfigs>d__34 : IEnumerator<object>, IDisposable, IEnumerator
		{
			private int <>1__state;

			private object <>2__current;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <OnServerRecieveConfigs>d__34(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					Logger.LogDebug("Server recieved config from client, rejecting due to being the server.");
					<>2__current = null;
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		public static ConfigFile cfg;

		internal static string levelsFilePath = Path.Combine(Paths.ConfigPath, "StarLevelSystem", "LevelSettings.yaml");

		internal static string colorsFilePath = Path.Combine(Paths.ConfigPath, "StarLevelSystem", "ColorSettings.yaml");

		private static CustomRPC LevelSettingsRPC;

		private static CustomRPC ColorSettingsRPC;

		public static ConfigEntry<bool> EnableDebugMode;

		public static ConfigEntry<int> MaxLevel;

		public static ConfigEntry<bool> EnableCreatureScalingPerLevel;

		public static ConfigEntry<bool> EnableScalingInDungeons;

		public static ConfigEntry<float> PerLevelScaleBonus;

		public static ConfigEntry<float> PerLevelLootScale;

		public static ConfigEntry<int> LootDropsPerTick;

		public static ConfigEntry<float> EnemyHealthMultiplier;

		public static ConfigEntry<float> BossEnemyHealthMultiplier;

		public static ConfigEntry<float> EnemyHealthPerWorldLevel;

		public static ConfigEntry<float> EnemyDamageLevelMultiplier;

		public static ConfigEntry<float> BossEnemyDamageMultiplier;

		public static ConfigEntry<bool> EnableDistanceLevelScalingBonus;

		public static ConfigEntry<bool> EnableMultiplayerEnemyHealthScaling;

		public static ConfigEntry<bool> EnableMultiplayerEnemyDamageScaling;

		public static ConfigEntry<int> MultiplayerScalingRequiredPlayersNearby;

		public static ConfigEntry<float> MultiplayerEnemyDamageModifier;

		public static ConfigEntry<float> MultiplayerEnemyHealthModifier;

		public ValConfig(ConfigFile cf)
		{
			cfg = cf;
			cfg.SaveOnConfigSet = true;
			CreateConfigValues(cf);
		}

		public void SetupConfigRPCs()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			//IL_0027: Expected O, but got Unknown
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Expected O, but got Unknown
			//IL_0053: Expected O, but got Unknown
			LevelSettingsRPC = NetworkManager.Instance.AddRPC("LSE_LevelsRPC", new CoroutineHandler(OnServerRecieveConfigs), new CoroutineHandler(OnClientReceiveLevelConfigs));
			ColorSettingsRPC = NetworkManager.Instance.AddRPC("LSE_ColorsRPC", new CoroutineHandler(OnServerRecieveConfigs), new CoroutineHandler(OnClientReceiveColorConfigs));
			SynchronizationManager.Instance.AddInitialSynchronization(LevelSettingsRPC, (Func<ZPackage>)SendLevelsConfigs);
			SynchronizationManager.Instance.AddInitialSynchronization(ColorSettingsRPC, (Func<ZPackage>)SendColorsConfigs);
		}

		private void CreateConfigValues(ConfigFile Config)
		{
			//IL_001a: 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_002c: Expected O, but got Unknown
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Expected O, but got Unknown
			EnableDebugMode = Config.Bind<bool>("Client config", "EnableDebugMode", false, new ConfigDescription("Enables Debug logging.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdvanced = true
			} }));
			EnableDebugMode.SettingChanged += Logger.enableDebugLogging;
			Logger.CheckEnableDebugLogging();
			MaxLevel = BindServerConfig("LevelSystem", "MaxLevel", 5, "The Maximum number of stars that a creature can have", advanced: false, 1, 100);
			EnableCreatureScalingPerLevel = BindServerConfig("LevelSystem", "EnableCreatureScalingPerLevel", value: true, "Enables started creatures to get larger for each star");
			EnableDistanceLevelScalingBonus = BindServerConfig("LevelSystem", "EnableDistanceLevelScalingBonus", value: true, "Creatures further away from the center of the world have a higher chance to levelup, this is a bonus applied to existing creature/biome configuration.");
			PerLevelScaleBonus = BindServerConfig("LevelSystem", "PerLevelScaleBonus", 0.1f, "The additional size that a creature grows each star level.", advanced: true, 0f, 2f);
			PerLevelScaleBonus.SettingChanged += Colorization.StarLevelScaleChanged;
			EnableScalingInDungeons = BindServerConfig("LevelSystem", "EnableScalingInDungeons", value: false, "Enables scaling in dungeons, this can cause creatures to become stuck.");
			PerLevelLootScale = BindServerConfig("LevelSystem", "PerLevelLootScale", 0.5f, "The amount of additional loot that a creature provides per each star level", advanced: true, 0f, 2f);
			LootDropsPerTick = BindServerConfig("LevelSystem", "LootDropsPerTick", 20, "The number of loot drops that are generated per tick, reducing this will reduce lag when massive amounts of loot is generated at once.", advanced: true, 1, 100);
			EnemyHealthMultiplier = BindServerConfig("LevelSystem", "EnemyHealthMultiplier", 1f, "The amount of health that each level gives a creature, vanilla is 1x. At 2x each creature has double the base health and gains twice as much per level.", advanced: false, 0.01f, 5f);
			EnemyHealthPerWorldLevel = BindServerConfig("LevelSystem", "EnemyHealthPerWorldLevel", 0.2f, "The percent amount of health that each world level gives a creature, vanilla is 2x (eg 200% more health each world level).", advanced: false, 0f, 2f);
			EnemyDamageLevelMultiplier = BindServerConfig("LevelSystem", "EnemyDamageLevelMultiplier", 0.1f, "The amount of damage that each level gives a creatures, vanilla is 0.5x (eg 50% more damage each level).", advanced: false, 0f, 2f);
			BossEnemyHealthMultiplier = BindServerConfig("LevelSystem", "BossEnemyHealthMultiplier", 0.3f, "The amount of health that each level gives a boss. 1 is 100% more health per level.", advanced: false, 0f, 5f);
			BossEnemyDamageMultiplier = BindServerConfig("LevelSystem", "BossEnemyDamageMultiplier", 0.02f, "The amount of damage that each level gives a boss. 1 is 100% more damage per level.", advanced: false, 0f, 5f);
			MultiplayerEnemyDamageModifier = BindServerConfig("Multiplayer", "MultiplayerEnemyDamageModifier", 0.05f, "The additional amount of damage enemies will do to players, when there is a group of players together, per player. .2 = 20%", advanced: true, 0f, 2f);
			MultiplayerEnemyHealthModifier = BindServerConfig("Multiplayer", "MultiplayerEnemyHealthModifier", 0.2f, "The additional amount of health enemies gain when players are grouped together, per player. .3 = 30%", advanced: true, 0f, 2f);
			MultiplayerScalingRequiredPlayersNearby = BindServerConfig("Multiplayer", "MultiplayerScalingRequiredPlayersNearby", 3, "The number of players in a local area required to cause monsters to gain bonus health and/or damage.", advanced: true, 0, 10);
			EnableMultiplayerEnemyHealthScaling = BindServerConfig("Multiplayer", "EnableMultiplayerEnemyHealthScaling", value: true, "Wether or not creatures gain more health when players are grouped up.");
			EnableMultiplayerEnemyDamageScaling = BindServerConfig("Multiplayer", "EnableMultiplayerEnemyDamageScaling", value: false, "Wether or not creatures gain more damage when players are grouped up.");
		}

		internal void LoadYamlConfigs()
		{
			string[] files = Directory.GetFiles(GetSecondaryConfigDirectoryPath());
			bool flag = false;
			bool flag2 = false;
			string[] array = files;
			foreach (string text in array)
			{
				if (text.Contains("LevelSettings.yaml"))
				{
					Logger.LogDebug("Found level configuration: " + text);
					levelsFilePath = text;
					flag = true;
				}
				if (text.Contains("ColorSettings.yaml"))
				{
					Logger.LogDebug("Found color configuration: " + text);
					colorsFilePath = text;
					flag2 = true;
				}
			}
			if (!flag)
			{
				Logger.LogDebug("Level config file missing, recreating.");
				using StreamWriter streamWriter = new StreamWriter(levelsFilePath);
				string value = "#################################################\r\n# Star Level System Expanded - Level Settings\r\n#################################################\r\n";
				streamWriter.WriteLine(value);
				streamWriter.WriteLine(LevelSystemData.YamlDefaultConfig());
			}
			if (!flag2)
			{
				Logger.LogDebug("Color config file missing, recreating.");
				using StreamWriter streamWriter2 = new StreamWriter(colorsFilePath);
				string value2 = "#################################################\r\n# Star Level System Expanded - Creature Level Color Settings\r\n#################################################\r\n";
				streamWriter2.WriteLine(value2);
				streamWriter2.WriteLine(Colorization.YamlDefaultConfig());
			}
			SetupFileWatcher("ColorSettings.yaml");
			SetupFileWatcher("LevelSettings.yaml");
		}

		private void SetupFileWatcher(string filtername)
		{
			FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();
			fileSystemWatcher.Path = GetSecondaryConfigDirectoryPath();
			fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite;
			fileSystemWatcher.Filter = filtername;
			if (filtername == "ColorSettings.yaml")
			{
				fileSystemWatcher.Changed += UpdateColorsOnChange;
				fileSystemWatcher.Created += UpdateColorsOnChange;
				fileSystemWatcher.Renamed += UpdateColorsOnChange;
			}
			if (filtername == "LevelSettings.yaml")
			{
				fileSystemWatcher.Changed += UpdateLevelsOnChange;
				fileSystemWatcher.Created += UpdateLevelsOnChange;
				fileSystemWatcher.Renamed += UpdateLevelsOnChange;
			}
			fileSystemWatcher.SynchronizingObject = ThreadingHelper.SynchronizingObject;
			fileSystemWatcher.EnableRaisingEvents = true;
		}

		private static void UpdateLevelsOnChange(object sender, FileSystemEventArgs e)
		{
			if (!SynchronizationManager.Instance.PlayerIsAdmin)
			{
				Logger.LogInfo("Player is not an admin, and not allowed to change local configuration. Ignoring.");
			}
			else if (File.Exists(e.FullPath))
			{
				try
				{
					LevelSystemData.UpdateYamlConfig(File.ReadAllText(e.FullPath));
					LevelSettingsRPC.SendPackage(ZNet.instance.m_peers, SendFileAsZPackage(e.FullPath));
				}
				catch
				{
					Logger.LogWarning("Failed to update levels configuration");
				}
			}
		}

		private static void UpdateColorsOnChange(object sender, FileSystemEventArgs e)
		{
			if (!SynchronizationManager.Instance.PlayerIsAdmin)
			{
				Logger.LogInfo("Player is not an admin, and not allowed to change local configuration. Ignoring.");
			}
			else if (File.Exists(e.FullPath))
			{
				try
				{
					LevelSystemData.UpdateYamlConfig(File.ReadAllText(e.FullPath));
					LevelSettingsRPC.SendPackage(ZNet.instance.m_peers, SendFileAsZPackage(e.FullPath));
				}
				catch
				{
					Logger.LogWarning("Failed to update levels configuration");
				}
			}
		}

		private static void UpdateConfigFileOnChange(object sender, FileSystemEventArgs e)
		{
			if (!SynchronizationManager.Instance.PlayerIsAdmin)
			{
				Logger.LogInfo("Player is not an admin, and not allowed to change local configuration. Ignoring.");
			}
			else
			{
				if (!File.Exists(e.FullPath))
				{
					return;
				}
				string yaml = File.ReadAllText(e.FullPath);
				FileInfo fileInfo = new FileInfo(e.FullPath);
				Logger.LogDebug("Filewatch changes from: (" + fileInfo.Name + ") " + fileInfo.FullName);
				string name = fileInfo.Name;
				if (!(name == "ColorSettings.yaml"))
				{
					if (name == "LevelSettings.yaml")
					{
						Logger.LogDebug("Triggering Level Settings update.");
						LevelSystemData.UpdateYamlConfig(yaml);
						LevelSettingsRPC.SendPackage(ZNet.instance.m_peers, SendFileAsZPackage(e.FullPath));
					}
				}
				else
				{
					Colorization.UpdateYamlConfig(yaml);
					ColorSettingsRPC.SendPackage(ZNet.instance.m_peers, SendFileAsZPackage(e.FullPath));
				}
			}
		}

		private static ZPackage SendFileAsZPackage(string filepath)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected O, but got Unknown
			string text = File.ReadAllText(filepath);
			ZPackage val = new ZPackage();
			val.Write(text);
			return val;
		}

		private static ZPackage SendLevelsConfigs()
		{
			return SendFileAsZPackage(levelsFilePath);
		}

		private static ZPackage SendColorsConfigs()
		{
			return SendFileAsZPackage(colorsFilePath);
		}

		[IteratorStateMachine(typeof(<OnServerRecieveConfigs>d__34))]
		public static IEnumerator OnServerRecieveConfigs(long sender, ZPackage package)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnServerRecieveConfigs>d__34(0);
		}

		[IteratorStateMachine(typeof(<OnClientReceiveLevelConfigs>d__35))]
		private static IEnumerator OnClientReceiveLevelConfigs(long sender, ZPackage package)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnClientReceiveLevelConfigs>d__35(0)
			{
				package = package
			};
		}

		[IteratorStateMachine(typeof(<OnClientReceiveColorConfigs>d__36))]
		private static IEnumerator OnClientReceiveColorConfigs(long sender, ZPackage package)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnClientReceiveColorConfigs>d__36(0)
			{
				package = package
			};
		}

		public static string GetSecondaryConfigDirectoryPath()
		{
			return Directory.CreateDirectory(Path.Combine(Paths.ConfigPath, "StarLevelSystem")).FullName;
		}

		public static ConfigEntry<bool> BindServerConfig(string catagory, string key, bool value, string description, AcceptableValueBase acceptableValues = null, bool advanced = false)
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: 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_002d: Expected O, but got Unknown
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Expected O, but got Unknown
			return cfg.Bind<bool>(catagory, key, value, new ConfigDescription(description, acceptableValues, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true,
				IsAdvanced = advanced
			} }));
		}

		public static ConfigEntry<int> BindServerConfig(string catagory, string key, int value, string description, bool advanced = false, int valmin = 0, int valmax = 150)
		{
			//IL_001a: 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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Expected O, but got Unknown
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Expected O, but got Unknown
			return cfg.Bind<int>(catagory, key, value, new ConfigDescription(description, (AcceptableValueBase)(object)new AcceptableValueRange<int>(valmin, valmax), new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true,
				IsAdvanced = advanced
			} }));
		}

		public static ConfigEntry<float> BindServerConfig(string catagory, string key, float value, string description, bool advanced = false, float valmin = 0f, float valmax = 150f)
		{
			//IL_001a: 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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Expected O, but got Unknown
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Expected O, but got Unknown
			return cfg.Bind<float>(catagory, key, value, new ConfigDescription(description, (AcceptableValueBase)(object)new AcceptableValueRange<float>(valmin, valmax), new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true,
				IsAdvanced = advanced
			} }));
		}

		public static ConfigEntry<string> BindServerConfig(string catagory, string key, string value, string description, AcceptableValueList<string> acceptableValues = null, bool advanced = false)
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: 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_002d: Expected O, but got Unknown
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Expected O, but got Unknown
			return cfg.Bind<string>(catagory, key, value, new ConfigDescription(description, (AcceptableValueBase)(object)acceptableValues, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true,
				IsAdvanced = advanced
			} }));
		}
	}
	internal class Logger
	{
		public static LogLevel Level = (LogLevel)16;

		public static void enableDebugLogging(object sender, EventArgs e)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			if (ValConfig.EnableDebugMode.Value)
			{
				Level = (LogLevel)32;
			}
			else
			{
				Level = (LogLevel)16;
			}
		}

		public static void CheckEnableDebugLogging()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			if (ValConfig.EnableDebugMode.Value)
			{
				Level = (LogLevel)32;
			}
			else
			{
				Level = (LogLevel)16;
			}
		}

		public static void LogDebug(string message)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Invalid comparison between Unknown and I4
			if ((int)Level >= 32)
			{
				StarLevelSystem.Log.LogInfo((object)message);
			}
		}

		public static void LogInfo(string message)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Invalid comparison between Unknown and I4
			if ((int)Level >= 16)
			{
				StarLevelSystem.Log.LogInfo((object)message);
			}
		}

		public static void LogWarning(string message)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Invalid comparison between Unknown and I4
			if ((int)Level >= 4)
			{
				StarLevelSystem.Log.LogWarning((object)message);
			}
		}

		public static void LogError(string message)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Invalid comparison between Unknown and I4
			if ((int)Level >= 2)
			{
				StarLevelSystem.Log.LogError((object)message);
			}
		}
	}
	[BepInPlugin("MidnightsFX.StarLevelSystem", "StarLevelSystem", "0.0.2")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	internal class StarLevelSystem : BaseUnityPlugin
	{
		public const string PluginGUID = "MidnightsFX.StarLevelSystem";

		public const string PluginName = "StarLevelSystem";

		public const string PluginVersion = "0.0.2";

		public ValConfig cfg;

		public static CustomLocalization Localization = LocalizationManager.Instance.GetLocalization();

		public static ManualLogSource Log;

		public static Harmony HarmonyInstance { get; private set; }

		public void Awake()
		{
			Log = ((BaseUnityPlugin)this).Logger;
			cfg = new ValConfig(((BaseUnityPlugin)this).Config);
			cfg.SetupConfigRPCs();
			cfg.LoadYamlConfigs();
			HarmonyInstance = Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "MidnightsFX.StarLevelSystem");
			Colorization.SetupLevelEffects();
			Colorization.Init();
			LevelSystemData.Init();
			Logger.LogInfo((object)"Star Levels have been expanded.");
		}
	}
}
namespace StarLevelSystem.modules
{
	public class ColorDef
	{
		public float hue { get; set; }

		public float saturation { get; set; }

		public float value { get; set; }

		public bool is_emissive { get; set; }

		public LevelSetup toLevelEffect()
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: 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)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: 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_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Expected O, but got Unknown
			return new LevelSetup
			{
				m_scale = 1f,
				m_hue = hue,
				m_saturation = saturation,
				m_value = value,
				m_setEmissiveColor = is_emissive,
				m_emissiveColor = new Color(hue, saturation, value)
			};
		}
	}
	public static class Colorization
	{
		[HarmonyPatch(typeof(LevelEffects), "SetupLevelVisualization")]
		public static class PreventDefaultLevelSetup
		{
			public static bool Prefix()
			{
				return false;
			}
		}

		[HarmonyPatch(typeof(Character), "SetLevel")]
		public static class AddLevelEffectsWhenSpawned
		{
			public static void Postfix(Character __instance)
			{
				//IL_001c: Unknown result type (might be due to invalid IL or missing references)
				//IL_006e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				if (__instance.m_level > 1)
				{
					ApplyColorizationWithoutLevelEffects(__instance);
					ApplyHighLevelVisual(__instance);
					if (((Component)__instance).transform.position.y < 3000f && !ValConfig.EnableScalingInDungeons.Value)
					{
						float num = 1f + ValConfig.PerLevelScaleBonus.Value * (float)__instance.m_level;
						Logger.LogDebug($"Setting character size {num} and color.");
						Transform transform = ((Component)__instance).transform;
						transform.localScale *= num;
						Physics.SyncTransforms();
					}
				}
			}
		}

		[HarmonyPatch(typeof(Character), "Awake")]
		public static class AddLevelEffectsWhenLoaded
		{
			public static void Postfix(Character __instance)
			{
				//IL_001c: Unknown result type (might be due to invalid IL or missing references)
				//IL_006e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				if (__instance.m_level > 1)
				{
					ApplyColorizationWithoutLevelEffects(__instance);
					ApplyHighLevelVisual(__instance);
					if (((Component)__instance).transform.position.y < 3000f && !ValConfig.EnableScalingInDungeons.Value)
					{
						float num = 1f + ValConfig.PerLevelScaleBonus.Value * (float)__instance.m_level;
						Logger.LogDebug($"Setting character size {num} and color.");
						Transform transform = ((Component)__instance).transform;
						transform.localScale *= num;
						Physics.SyncTransforms();
					}
				}
			}
		}

		public static DataObjects.CreatureColorizationSettings creatureColorizationSettings = defaultColorizationSettings;

		private static DataObjects.CreatureColorizationSettings defaultColorizationSettings = new DataObjects.CreatureColorizationSettings
		{
			characterSpecificColorization = ColorizationData.characterColorizationData,
			defaultLevelColorization = ColorizationData.defaultColorizationData
		};

		public static void Init()
		{
			creatureColorizationSettings = defaultColorizationSettings;
			try
			{
				UpdateYamlConfig(File.ReadAllText(ValConfig.colorsFilePath));
			}
			catch (Exception arg)
			{
				Logger.LogWarning((object)$"There was an error updating the Color Level values, defaults will be used. Exception: {arg}");
			}
		}

		public static string YamlDefaultConfig()
		{
			return DataObjects.yamlserializer.Serialize((object)defaultColorizationSettings);
		}

		public static bool UpdateYamlConfig(string yaml)
		{
			try
			{
				creatureColorizationSettings = DataObjects.yamldeserializer.Deserialize<DataObjects.CreatureColorizationSettings>(yaml);
				if (creatureColorizationSettings.defaultLevelColorization.Count + 1 < 103)
				{
					creatureColorizationSettings.defaultLevelColorization = defaultColorizationSettings.defaultLevelColorization;
				}
				Logger.LogInfo("Updated ColorizationSettings.");
				Character[] array = Resources.FindObjectsOfTypeAll<Character>();
				foreach (Character val in array)
				{
					if (val.m_level > 1)
					{
						ApplyColorizationWithoutLevelEffects(val);
					}
				}
			}
			catch (Exception ex)
			{
				StarLevelSystem.Log.LogError((object)("Failed to parse ColorizationSettings YAML: " + ex.Message));
				return false;
			}
			return true;
		}

		public static void SetupLevelEffects()
		{
			for (int i = defaultColorizationSettings.defaultLevelColorization.Count + 1; 103 > i; i++)
			{
				float num = Random.Range(-0.1f, 0.1f);
				float num2 = Random.Range(-0.1f, 0.1f);
				float num3 = Random.Range(-0.3f, 0.3f);
				Logger.LogDebug($"LevelEffects: {i} - hue:{num2}, sat:{num}, val:{num3}");
				defaultColorizationSettings.defaultLevelColorization.Add(i, new ColorDef
				{
					hue = num2,
					saturation = num,
					value = num3
				});
			}
		}

		public static void ApplyHighLevelVisual(Character charc)
		{
			LevelEffects componentInChildren = ((Component)charc).gameObject.GetComponentInChildren<LevelEffects>();
			if (!((Object)(object)componentInChildren == (Object)null))
			{
				if (charc.m_level > componentInChildren.m_levelSetups.Count)
				{
					_ = componentInChildren.m_levelSetups.Count;
				}
				LevelSetup val = componentInChildren.m_levelSetups[componentInChildren.m_levelSetups.Count - 1];
				if ((Object)(object)val.m_enableObject != (Object)null)
				{
					val.m_enableObject.SetActive(true);
				}
			}
		}

		private static void ApplyColorizationWithoutLevelEffects(Character cgo)
		{
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Expected O, but got Unknown
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			int num = cgo.m_level - 1;
			LevelSetup val = creatureColorizationSettings.defaultLevelColorization[num].toLevelEffect();
			string prefabName = Utils.GetPrefabName(((Component)cgo).gameObject);
			Logger.LogDebug("Checking for character specific colorization " + prefabName);
			if (creatureColorizationSettings.characterSpecificColorization.ContainsKey(prefabName))
			{
				if (creatureColorizationSettings.characterSpecificColorization[prefabName].TryGetValue(num, out var value))
				{
					Logger.LogDebug($"Found character specific colorization for {prefabName} - {num}");
					val = value.toLevelEffect();
				}
			}
			else
			{
				Logger.LogDebug($"No character specific colorization for {prefabName} - {num}");
			}
			try
			{
				SkinnedMeshRenderer[] componentsInChildren = ((Component)cgo).gameObject.GetComponentsInChildren<SkinnedMeshRenderer>();
				foreach (SkinnedMeshRenderer obj in componentsInChildren)
				{
					Material[] sharedMaterials = ((Renderer)obj).sharedMaterials;
					sharedMaterials[0] = new Material(sharedMaterials[0]);
					sharedMaterials[0].SetFloat("_Hue", val.m_hue);
					sharedMaterials[0].SetFloat("_Saturation", val.m_saturation);
					sharedMaterials[0].SetFloat("_Value", val.m_value);
					if (val.m_setEmissiveColor)
					{
						sharedMaterials[0].SetColor("_EmissionColor", val.m_emissiveColor);
					}
					((Renderer)obj).sharedMaterials = sharedMaterials;
				}
			}
			catch (Exception arg)
			{
				Logger.LogError($"Exception while colorizing {arg}");
			}
		}

		internal static void StarLevelScaleChanged(object s, EventArgs e)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			Character[] array = Resources.FindObjectsOfTypeAll<Character>();
			foreach (Character val in array)
			{
				((Component)val).transform.localScale = Vector3.one;
				float num = 1f + ValConfig.PerLevelScaleBonus.Value * (float)(val.m_level - 1);
				Logger.LogDebug($"Setting {((Object)val).name} size {num}.");
				Transform transform = ((Component)val).transform;
				transform.localScale *= num;
			}
			Physics.SyncTransforms();
		}
	}
	public static class ColorizationData
	{
		internal static readonly Dictionary<string, Dictionary<int, ColorDef>> characterColorizationData = new Dictionary<string, Dictionary<int, ColorDef>>
		{
			{
				"Deer",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.05f,
							saturation = -0.1f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0.09f,
							saturation = -0.5f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.07f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.09f,
							saturation = 0f,
							value = -0.09f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.11f,
							saturation = 0f,
							value = -0.11f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.5f,
							value = -0.15f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.5f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.5f,
							value = -0.08f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0f,
							saturation = -0.3f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0f,
							saturation = -0.5f,
							value = 0f
						}
					}
				}
			},
			{
				"Boar",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.05f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.07f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.09f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0f,
							value = -0.05f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0f,
							value = -0.05f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.05f,
							saturation = 0f,
							value = 0.05f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.05f,
							saturation = 0.1f,
							value = 0.05f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.1f,
							value = -0.05f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0f,
							saturation = -0.1f,
							value = 0.02f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0f,
							saturation = -0.05f,
							value = -0.1f
						}
					}
				}
			},
			{
				"Neck",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.07f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0.05f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0f,
							value = -0.05f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.4f,
							saturation = 0f,
							value = -0.05f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.25f,
							saturation = 0f,
							value = -0.05f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0f,
							value = -0.15f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0f,
							value = -0.2f
						}
					}
				}
			},
			{
				"Greyling",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.06f,
							saturation = 0.1f,
							value = 0.05f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.2f,
							value = -0.01f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0.2f,
							value = -0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.7f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -1f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.2f,
							value = -0.07f
						}
					}
				}
			},
			{
				"Eikthyr",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.5f,
							saturation = 0f,
							value = -0.05f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.75f,
							saturation = 0f,
							value = -0.15f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0f,
							value = 0.05f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.2f,
							saturation = 0f,
							value = 0.5f
						}
					}
				}
			},
			{
				"Greydwarf",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.06f,
							saturation = 0.1f,
							value = 0.05f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.2f,
							value = -0.01f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0.2f,
							value = -0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.7f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -1f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.2f,
							value = -0.07f
						}
					}
				}
			},
			{
				"Greydwarf_Shaman",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0.3f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.3f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -1f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.2f,
							value = -0.07f
						}
					}
				}
			},
			{
				"Greydwarf_Elite",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.046f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.108f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.3f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -1f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.2f,
							value = -0.07f
						}
					}
				}
			},
			{
				"Skeleton",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.03f,
							saturation = 0.3f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Skeleton_NoArcher",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.03f,
							saturation = 0.3f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Skeleton_Poison",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.16f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Troll",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.1f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.2f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0.3f,
							value = -0.05f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.4f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.45f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.5f,
							saturation = 0.3f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.85f,
							saturation = 0.3f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.5f,
							value = 0f
						}
					}
				}
			},
			{
				"Serpent",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.05f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.3f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -1f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.2f,
							value = -0.07f
						}
					}
				}
			},
			{
				"Skeleton_Hildir",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.16f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Skeleton_Hildir_nochest",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.16f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"gd_king",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.22f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.33f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.44f,
							saturation = 0.3f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.55f,
							saturation = 0.3f,
							value = 0.05f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.66f,
							saturation = 0f,
							value = 0.07f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.66f,
							saturation = -0.15f,
							value = 0.1f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.66f,
							saturation = -0.45f,
							value = 0.1f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -0.88f,
							saturation = 0f,
							value = 0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Draugr",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.27f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.25f,
							saturation = 0.04f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = 0.32f,
							saturation = 0.3f,
							value = 0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.5f,
							value = 0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.2f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.4f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.6f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.9f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.2f,
							value = 0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.5f,
							value = 0.01f
						}
					}
				}
			},
			{
				"Draugr_Ranged",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.27f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.25f,
							saturation = 0.04f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = 0.32f,
							saturation = 0.3f,
							value = 0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.5f,
							value = 0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.2f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.4f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.6f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.9f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.2f,
							value = 0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.5f,
							value = 0.01f
						}
					}
				}
			},
			{
				"Draugr_Elite",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = 0.32f,
							saturation = 0.3f,
							value = 0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.5f,
							value = 0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.2f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.4f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.6f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.9f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.2f,
							value = 0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.5f,
							value = 0.01f
						}
					}
				}
			},
			{
				"Abomination",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = 0.32f,
							saturation = 0.3f,
							value = 0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.5f,
							value = 0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.2f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.4f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.6f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.9f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.2f,
							value = 0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.5f,
							value = 0.01f
						}
					}
				}
			},
			{
				"Surtling",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.16f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0.5f,
							value = -1f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -2f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -3f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -4f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -5f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.5f,
							value = -5f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.5f,
							value = -5f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.8f,
							value = -5f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 1f,
							value = -5f
						}
					}
				}
			},
			{
				"Leech",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.23f,
							saturation = 0.26f,
							value = 0.04f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.139f,
							saturation = 0.47f,
							value = 0.06f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = 0.32f,
							saturation = 0.3f,
							value = 0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.5f,
							value = 0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.2f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.4f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.6f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.9f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.2f,
							value = 0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.5f,
							value = 0.01f
						}
					}
				}
			},
			{
				"Blob",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.23f,
							saturation = 0.26f,
							value = 0.04f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.139f,
							saturation = 0.47f,
							value = 0.06f
						}
					}
				}
			},
			{
				"BlobElite",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.23f,
							saturation = 0.26f,
							value = 0.04f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.139f,
							saturation = 0.47f,
							value = 0.06f
						}
					}
				}
			},
			{
				"Bonemass",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = 0f
						}
					}
				}
			},
			{
				"Wolf",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.1f,
							value = -0.03f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.2f,
							saturation = 0.1f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.4f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.6f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.4f,
							saturation = 0.3f,
							value = -0.05f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.1f,
							saturation = -0.5f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -0.9f,
							saturation = 0.2f,
							value = -0.3f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.4f
						}
					}
				}
			},
			{
				"Ulv",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.1f,
							value = -0.03f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.2f,
							saturation = 0.1f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.4f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.6f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.4f,
							saturation = 0.3f,
							value = -0.05f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.1f,
							saturation = -0.5f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -0.9f,
							saturation = 0.2f,
							value = -0.3f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.4f
						}
					}
				}
			},
			{
				"Fenring",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.1f,
							value = -0.03f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.2f,
							saturation = 0.1f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.4f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.6f,
							saturation = 0.2f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.4f,
							saturation = 0.3f,
							value = -0.05f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.1f,
							saturation = -0.5f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -0.9f,
							saturation = 0.2f,
							value = -0.3f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.4f
						}
					}
				}
			},
			{
				"Fenring_Cultist",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.1f,
							value = -0.03f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = 0.32f,
							saturation = 0.3f,
							value = 0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.5f,
							value = 0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.2f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.4f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.6f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.9f,
							saturation = -0.2f,
							value = 0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.2f,
							value = 0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.5f,
							value = 0.01f
						}
					}
				}
			},
			{
				"Hatchling",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.1f,
							value = -0.03f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"StoneGolem",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.1f,
							value = -0.03f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Dragon",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0.1f,
							value = -0.03f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.2f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 1f,
							saturation = 0.3f,
							value = 0.05f
						}
					}
				}
			},
			{
				"Deathsquito",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.05f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.15f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Lox",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.05f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = 0f,
							saturation = -0.5f,
							value = 0f
						}
					}
				}
			},
			{
				"GoblinArcher",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.05f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.08f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.15f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.22f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.24f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -0.26f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -0.28f,
							saturation = 0f,
							value = 0f
						}
					}
				}
			},
			{
				"Goblin",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.05f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.08f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.15f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.22f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.24f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -0.26f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -0.28f,
							saturation = 0f,
							value = 0f
						}
					}
				}
			},
			{
				"GoblinBrute",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.1f,
							saturation = -0.1f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0.3f,
							value = -0.15f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"GoblinShaman",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.1f,
							saturation = -0.1f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0.3f,
							value = -0.15f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"GoblinBrute_Hildir",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.1f,
							saturation = -0.1f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0.3f,
							value = -0.15f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"GoblinBruteBros",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.1f,
							saturation = -0.1f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.12f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = 0.01f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0.3f,
							value = -0.15f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"GoblinKing",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = 0f
						}
					}
				}
			},
			{
				"Hen",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.05f,
							saturation = -0.1f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0.09f,
							saturation = -0.5f,
							value = -0.05f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Gjall",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.201f,
							saturation = 0.29f,
							value = -0.42f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.103f,
							saturation = -0.08f,
							value = -0.42f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Tick",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.337f,
							saturation = -0.09f,
							value = -0.41f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.027f,
							saturation = 0.29f,
							value = -0.41f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Seeker",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.28f,
							saturation = -0.3f,
							value = -0.1f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.1f,
							value = -0.2f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"SeekerBrute",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.5f,
							saturation = 0.05f,
							value = -0.08f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.351f,
							saturation = -0.04f,
							value = -0.1f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"DvergerMageIce",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.2f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = -1f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"DvergerMageSupport",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.2f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = -1f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"DvergerMageFire",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.2f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = -1f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"DvergerMage",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.2f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = -1f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Dverger",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.2f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0f,
							saturation = -1f,
							value = 0f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0f,
							saturation = 0f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.07f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.14f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = 0.18f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.35f,
							saturation = 0f,
							value = 0f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"Skeleton_Friendly",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.03f,
							saturation = 0.3f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.15f,
							saturation = 0.3f,
							value = -0.151f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.18f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"SeekerQueen",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.03f,
							saturation = 0.3f,
							value = 0f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.15f,
							saturation = 0.3f,
							value = -0.151f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0.3f,
							value = -0.18f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.15f,
							saturation = 0.3f,
							value = -0.1f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = 0.1f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = 0.9f,
							saturation = 0.3f,
							value = -0.2f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.4f,
							value = -0.25f
						}
					}
				}
			},
			{
				"BonemawSerpent",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.05f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = -0.1f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.3f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						9,
						new ColorDef
						{
							hue = -1f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						10,
						new ColorDef
						{
							hue = -1f,
							saturation = 0.2f,
							value = -0.07f
						}
					}
				}
			},
			{
				"Asksvin",
				new Dictionary<int, ColorDef>
				{
					{
						1,
						new ColorDef
						{
							hue = -0.477f,
							saturation = -1f,
							value = 0.02f
						}
					},
					{
						2,
						new ColorDef
						{
							hue = 0.5f,
							saturation = -0.08f,
							value = 0.08f
						}
					},
					{
						3,
						new ColorDef
						{
							hue = -0.2f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						4,
						new ColorDef
						{
							hue = -0.4f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						5,
						new ColorDef
						{
							hue = -0.5f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						6,
						new ColorDef
						{
							hue = 0.3f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						7,
						new ColorDef
						{
							hue = -0.8f,
							saturation = 0f,
							value = -0.01f
						}
					},
					{
						8,
						new ColorDef
						{
							hue = -0.8f,
							sa