Decompiled source of ColorSets v1.0.0

ColorSets.dll

Decompiled a month ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Newtonsoft.Json;
using PluginConfig.API;
using PluginConfig.API.Decorators;
using PluginConfig.API.Fields;
using PluginConfig.API.Functionals;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyCompany("ColorSets")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("My first plugin")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("ColorSets")]
[assembly: AssemblyTitle("ColorSets")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace ColorSets
{
	public class BaseColors
	{
		[JsonIgnore]
		public virtual int StringLength => 6;

		public void ValidateColorStrings()
		{
			FieldInfo[] fields = GetType().GetFields();
			foreach (FieldInfo fieldInfo in fields)
			{
				if (!(fieldInfo.FieldType == typeof(string)))
				{
					continue;
				}
				string text = (string)fieldInfo.GetValue(this);
				if (text.Length != StringLength)
				{
					throw new FormatException("String \"" + fieldInfo.Name + "\" is not correct length.");
				}
				string text2 = text;
				foreach (char character in text2)
				{
					if (!Uri.IsHexDigit(character))
					{
						throw new FormatException("String \"" + fieldInfo.Name + "\" contains invalid characters.");
					}
				}
			}
		}

		protected void SetColorPrefs(string key, Color color)
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: 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)
			MonoSingleton<PrefsManager>.Instance.SetFloat(key + ".r", color.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat(key + ".g", color.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat(key + ".b", color.b);
		}

		public void PrepareColorBlindSetters(List<ColorBlindSetter> setters)
		{
			foreach (ColorBlindSetter setter in setters)
			{
				setter.Prepare();
			}
		}
	}
	public static class ConfigManager
	{
		[CompilerGenerated]
		private static class <>O
		{
			public static OnClick <0>__ExportCurrentUIToCode;

			public static OnClick <1>__ImportUIFromCode;

			public static OnClick <2>__SaveCurrentUIToFile;

			public static OnClick <3>__RefreshUIFiles;

			public static OnClick <4>__ExportCurrentEnemyToCode;

			public static OnClick <5>__ImportEnemyFromCode;

			public static OnClick <6>__SaveCurrentEnemyToFile;

			public static OnClick <7>__RefreshEnemyFiles;

			public static OnClick <8>__ExportCurrentWeaponToCode;

			public static OnClick <9>__ImportWeaponFromCode;

			public static OnClick <10>__SaveCurrentWeaponToFile;

			public static OnClick <11>__RefreshWeaponFiles;
		}

		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static OnClick <>9__29_0;

			internal void <Initialize>b__29_0()
			{
				Application.OpenURL("file://" + Core.BaseFilePath);
			}
		}

		public static PluginConfigurator config = null;

		public static Dictionary<string, UIColors> loadedUIColors = new Dictionary<string, UIColors>();

		public static Dictionary<string, EnemyColors> loadedEnemyColors = new Dictionary<string, EnemyColors>();

		public static Dictionary<string, WeaponColors> loadedWeaponColors = new Dictionary<string, WeaponColors>();

		public static ButtonField folderButton;

		public static ConfigPanel uiPanel;

		public static StringField uiCodeInput;

		public static ButtonArrayField uiCodeButtons;

		public static ConfigHeader uiCodeResult;

		public static ButtonArrayField uiFilesButtons;

		public static ConfigHeader uiFilesResult;

		public static ConfigDivision uiFilesDiv;

		public static ConfigPanel enemyPanel;

		public static StringField enemyCodeInput;

		public static ButtonArrayField enemyCodeButtons;

		public static ConfigHeader enemyCodeResult;

		public static ButtonArrayField enemyFilesButtons;

		public static ConfigHeader enemyFilesResult;

		public static ConfigDivision enemyFilesDiv;

		public static ConfigPanel weaponPanel;

		public static StringField weaponCodeInput;

		public static ButtonArrayField weaponCodeButtons;

		public static ConfigHeader weaponCodeResult;

		public static ButtonArrayField weaponFilesButtons;

		public static ConfigHeader weaponFilesResult;

		public static ConfigDivision weaponFilesDiv;

		public static readonly JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings
		{
			MissingMemberHandling = (MissingMemberHandling)1
		};

		public static readonly char[] forbiddenChars = new char[14]
		{
			'&', '"', '?', '<', '>', '#', '{', '}', '%', '~',
			'/', '\\', '.', '^'
		};

		public const int previewSize = 30;

		public static void Initialize()
		{
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Expected O, but got Unknown
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Expected O, but got Unknown
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Expected O, but got Unknown
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Expected O, but got Unknown
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Expected O, but got Unknown
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Expected O, but got Unknown
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01de: Expected O, but got Unknown
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Expected O, but got Unknown
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Expected O, but got Unknown
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_024c: Expected O, but got Unknown
			//IL_0256: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Expected O, but got Unknown
			//IL_027a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0284: Expected O, but got Unknown
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Expected O, but got Unknown
			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ba: Expected O, but got Unknown
			//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0300: Expected O, but got Unknown
			//IL_0225: Unknown result type (might be due to invalid IL or missing references)
			//IL_022a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0230: Expected O, but got Unknown
			//IL_031b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0320: Unknown result type (might be due to invalid IL or missing references)
			//IL_0326: Expected O, but got Unknown
			//IL_0364: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b0: Expected O, but got Unknown
			//IL_0347: Unknown result type (might be due to invalid IL or missing references)
			//IL_034c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0352: Expected O, but got Unknown
			//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d6: Expected O, but got Unknown
			//IL_0414: Unknown result type (might be due to invalid IL or missing references)
			//IL_041e: Expected O, but got Unknown
			//IL_0428: Unknown result type (might be due to invalid IL or missing references)
			//IL_0432: Expected O, but got Unknown
			//IL_044c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0456: Expected O, but got Unknown
			//IL_046c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0476: Expected O, but got Unknown
			//IL_0482: Unknown result type (might be due to invalid IL or missing references)
			//IL_048c: Expected O, but got Unknown
			//IL_04c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d2: Expected O, but got Unknown
			//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0402: Expected O, but got Unknown
			//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f8: Expected O, but got Unknown
			//IL_0536: Unknown result type (might be due to invalid IL or missing references)
			//IL_0578: Unknown result type (might be due to invalid IL or missing references)
			//IL_0582: Expected O, but got Unknown
			//IL_0519: Unknown result type (might be due to invalid IL or missing references)
			//IL_051e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0524: Expected O, but got Unknown
			//IL_059d: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a8: Expected O, but got Unknown
			//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f0: Expected O, but got Unknown
			//IL_05fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0604: Expected O, but got Unknown
			//IL_05c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d4: Expected O, but got Unknown
			if (config != null)
			{
				return;
			}
			config = PluginConfigurator.Create("ColorSets", "trpg.uk.colorsets");
			string text = Path.Combine(Core.AssemblyDir, "icon.png");
			if (File.Exists(text))
			{
				config.SetIconWithURL(text);
			}
			folderButton = new ButtonField(config.rootPanel, "OPEN FOLDER", "folderButton");
			ButtonField obj = folderButton;
			object obj2 = <>c.<>9__29_0;
			if (obj2 == null)
			{
				OnClick val = delegate
				{
					Application.OpenURL("file://" + Core.BaseFilePath);
				};
				<>c.<>9__29_0 = val;
				obj2 = (object)val;
			}
			obj.onClick += (OnClick)obj2;
			uiPanel = new ConfigPanel(config.rootPanel, "UI COLORS", "uiPanel");
			uiCodeInput = new StringField(uiPanel, "CODE", "uiCodeInput", "", true, false);
			uiCodeResult = new ConfigHeader(uiPanel, "", 16);
			uiCodeButtons = new ButtonArrayField(uiPanel, "uiCodeButtons", 2, new float[2] { 0.5f, 0.5f }, new string[2] { "EXPORT TO CODE", "IMPORT FROM CODE" }, 5f);
			ButtonClickEvent obj3 = uiCodeButtons.OnClickEventHandler(0);
			object obj4 = <>O.<0>__ExportCurrentUIToCode;
			if (obj4 == null)
			{
				OnClick val2 = ExportCurrentUIToCode;
				<>O.<0>__ExportCurrentUIToCode = val2;
				obj4 = (object)val2;
			}
			obj3.onClick += (OnClick)obj4;
			ButtonClickEvent obj5 = uiCodeButtons.OnClickEventHandler(1);
			object obj6 = <>O.<1>__ImportUIFromCode;
			if (obj6 == null)
			{
				OnClick val3 = ImportUIFromCode;
				<>O.<1>__ImportUIFromCode = val3;
				obj6 = (object)val3;
			}
			obj5.onClick += (OnClick)obj6;
			new ConfigHeader(uiPanel, "---", 24);
			uiFilesButtons = new ButtonArrayField(uiPanel, "uiFilesButtons", 2, new float[2] { 0.5f, 0.5f }, new string[2] { "SAVE TO FILE", "REFRESH LIST" }, 5f);
			ButtonClickEvent obj7 = uiFilesButtons.OnClickEventHandler(0);
			object obj8 = <>O.<2>__SaveCurrentUIToFile;
			if (obj8 == null)
			{
				OnClick val4 = SaveCurrentUIToFile;
				<>O.<2>__SaveCurrentUIToFile = val4;
				obj8 = (object)val4;
			}
			obj7.onClick += (OnClick)obj8;
			ButtonClickEvent obj9 = uiFilesButtons.OnClickEventHandler(1);
			object obj10 = <>O.<3>__RefreshUIFiles;
			if (obj10 == null)
			{
				OnClick val5 = RefreshUIFiles;
				<>O.<3>__RefreshUIFiles = val5;
				obj10 = (object)val5;
			}
			obj9.onClick += (OnClick)obj10;
			uiFilesResult = new ConfigHeader(uiPanel, "", 16);
			uiFilesDiv = new ConfigDivision(uiPanel, "uiFilesDiv");
			RefreshUIFiles();
			enemyPanel = new ConfigPanel(config.rootPanel, "ENEMY COLORS", "enemyPanel");
			enemyCodeInput = new StringField(enemyPanel, "CODE", "enemyCodeInput", "", true, false);
			enemyCodeResult = new ConfigHeader(enemyPanel, "", 16);
			enemyCodeButtons = new ButtonArrayField(enemyPanel, "enemyCodeButtons", 2, new float[2] { 0.5f, 0.5f }, new string[2] { "EXPORT TO CODE", "IMPORT FROM CODE" }, 5f);
			ButtonClickEvent obj11 = enemyCodeButtons.OnClickEventHandler(0);
			object obj12 = <>O.<4>__ExportCurrentEnemyToCode;
			if (obj12 == null)
			{
				OnClick val6 = ExportCurrentEnemyToCode;
				<>O.<4>__ExportCurrentEnemyToCode = val6;
				obj12 = (object)val6;
			}
			obj11.onClick += (OnClick)obj12;
			ButtonClickEvent obj13 = enemyCodeButtons.OnClickEventHandler(1);
			object obj14 = <>O.<5>__ImportEnemyFromCode;
			if (obj14 == null)
			{
				OnClick val7 = ImportEnemyFromCode;
				<>O.<5>__ImportEnemyFromCode = val7;
				obj14 = (object)val7;
			}
			obj13.onClick += (OnClick)obj14;
			new ConfigHeader(enemyPanel, "---", 24);
			enemyFilesButtons = new ButtonArrayField(enemyPanel, "enemyFilesButtons", 2, new float[2] { 0.5f, 0.5f }, new string[2] { "SAVE TO FILE", "REFRESH LIST" }, 5f);
			ButtonClickEvent obj15 = enemyFilesButtons.OnClickEventHandler(0);
			object obj16 = <>O.<6>__SaveCurrentEnemyToFile;
			if (obj16 == null)
			{
				OnClick val8 = SaveCurrentEnemyToFile;
				<>O.<6>__SaveCurrentEnemyToFile = val8;
				obj16 = (object)val8;
			}
			obj15.onClick += (OnClick)obj16;
			ButtonClickEvent obj17 = enemyFilesButtons.OnClickEventHandler(1);
			object obj18 = <>O.<7>__RefreshEnemyFiles;
			if (obj18 == null)
			{
				OnClick val9 = RefreshEnemyFiles;
				<>O.<7>__RefreshEnemyFiles = val9;
				obj18 = (object)val9;
			}
			obj17.onClick += (OnClick)obj18;
			enemyFilesResult = new ConfigHeader(enemyPanel, "", 16);
			enemyFilesDiv = new ConfigDivision(enemyPanel, "enemyFilesDiv");
			RefreshEnemyFiles();
			weaponPanel = new ConfigPanel(config.rootPanel, "WEAPON COLORS", "weaponPanel");
			weaponCodeInput = new StringField(weaponPanel, "CODE", "weaponCodeInput", "", true, false);
			weaponCodeResult = new ConfigHeader(weaponPanel, "", 16);
			weaponCodeButtons = new ButtonArrayField(weaponPanel, "weaponCodeButtons", 2, new float[2] { 0.5f, 0.5f }, new string[2] { "EXPORT TO CODE", "IMPORT FROM CODE" }, 5f);
			ButtonClickEvent obj19 = weaponCodeButtons.OnClickEventHandler(0);
			object obj20 = <>O.<8>__ExportCurrentWeaponToCode;
			if (obj20 == null)
			{
				OnClick val10 = ExportCurrentWeaponToCode;
				<>O.<8>__ExportCurrentWeaponToCode = val10;
				obj20 = (object)val10;
			}
			obj19.onClick += (OnClick)obj20;
			ButtonClickEvent obj21 = weaponCodeButtons.OnClickEventHandler(1);
			object obj22 = <>O.<9>__ImportWeaponFromCode;
			if (obj22 == null)
			{
				OnClick val11 = ImportWeaponFromCode;
				<>O.<9>__ImportWeaponFromCode = val11;
				obj22 = (object)val11;
			}
			obj21.onClick += (OnClick)obj22;
			new ConfigHeader(weaponPanel, "---", 24);
			weaponFilesButtons = new ButtonArrayField(weaponPanel, "weaponFilesButtons", 2, new float[2] { 0.5f, 0.5f }, new string[2] { "SAVE TO FILE", "REFRESH LIST" }, 5f);
			ButtonClickEvent obj23 = weaponFilesButtons.OnClickEventHandler(0);
			object obj24 = <>O.<10>__SaveCurrentWeaponToFile;
			if (obj24 == null)
			{
				OnClick val12 = SaveCurrentWeaponToFile;
				<>O.<10>__SaveCurrentWeaponToFile = val12;
				obj24 = (object)val12;
			}
			obj23.onClick += (OnClick)obj24;
			ButtonClickEvent obj25 = weaponFilesButtons.OnClickEventHandler(1);
			object obj26 = <>O.<11>__RefreshWeaponFiles;
			if (obj26 == null)
			{
				OnClick val13 = RefreshWeaponFiles;
				<>O.<11>__RefreshWeaponFiles = val13;
				obj26 = (object)val13;
			}
			obj25.onClick += (OnClick)obj26;
			weaponFilesResult = new ConfigHeader(weaponPanel, "", 16);
			weaponFilesDiv = new ConfigDivision(weaponPanel, "weaponFilesDiv");
			RefreshWeaponFiles();
		}

		public static void ExportCurrentUIToCode()
		{
			uiCodeInput.value = UIColors.Get().GetCode();
		}

		public static void ExportCurrentEnemyToCode()
		{
			enemyCodeInput.value = EnemyColors.Get().GetCode();
		}

		public static void ExportCurrentWeaponToCode()
		{
			weaponCodeInput.value = WeaponColors.Get().GetCode();
		}

		public static void ImportUIFromCode()
		{
			try
			{
				string path = Path.Combine(Core.UIFilePath, $"UIColors{DateTimeOffset.UtcNow.ToUnixTimeSeconds()}.json");
				byte[] bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject((object)UIColors.ParseCode(uiCodeInput.value)));
				File.WriteAllBytes(path, bytes);
				RefreshUIFiles();
				uiCodeInput.value = "";
			}
			catch (FormatException ex)
			{
				uiCodeResult.text = ex.Message;
			}
		}

		public static void ImportEnemyFromCode()
		{
			try
			{
				string path = Path.Combine(Core.EnemyFilePath, $"EnemyColors{DateTimeOffset.UtcNow.ToUnixTimeSeconds()}.json");
				byte[] bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject((object)EnemyColors.ParseCode(enemyCodeInput.value)));
				File.WriteAllBytes(path, bytes);
				RefreshEnemyFiles();
				enemyCodeInput.value = "";
			}
			catch (FormatException ex)
			{
				enemyCodeResult.text = ex.Message;
			}
		}

		public static void ImportWeaponFromCode()
		{
			try
			{
				string path = Path.Combine(Core.WeaponFilePath, $"WeaponColors{DateTimeOffset.UtcNow.ToUnixTimeSeconds()}.json");
				byte[] bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject((object)WeaponColors.ParseCode(weaponCodeInput.value)));
				File.WriteAllBytes(path, bytes);
				RefreshWeaponFiles();
				weaponCodeInput.value = "";
			}
			catch (FormatException ex)
			{
				weaponCodeResult.text = ex.Message;
			}
		}

		public static void RefreshUIFiles()
		{
			//IL_0138: Unknown result type (might be due to invalid IL or missing references)
			//IL_014c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_0196: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a0: Expected O, but got Unknown
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Expected O, but got Unknown
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Expected O, but got Unknown
			//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0207: Expected O, but got Unknown
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Expected O, but got Unknown
			//IL_0271: Unknown result type (might be due to invalid IL or missing references)
			//IL_0278: Expected O, but got Unknown
			//IL_0288: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Expected O, but got Unknown
			//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ad: Expected O, but got Unknown
			//IL_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Expected O, but got Unknown
			loadedUIColors.Clear();
			ClearConfigPanel((ConfigPanel)(object)uiFilesDiv);
			string[] files = Directory.GetFiles(Core.UIFilePath, "*.json");
			int num = 0;
			string[] array = files;
			foreach (string text in array)
			{
				UIColors uIColors = null;
				try
				{
					using (StreamReader streamReader = new StreamReader(text))
					{
						uIColors = JsonConvert.DeserializeObject<UIColors>(streamReader.ReadToEnd(), jsonSerializerSettings);
					}
					if (uIColors == null)
					{
						throw new FormatException("File is incorrect format.");
					}
					uIColors.ValidateColorStrings();
				}
				catch (Exception ex) when (ex is JsonReaderException || ex is JsonSerializationException || ex is FormatException)
				{
					Core.Logger.LogWarning((object)("Failed to load file at " + text + ": " + ex.Message));
					continue;
				}
				string fileName = Path.GetFileName(text).Remove(Path.GetFileName(text).Length - 5, 5);
				loadedUIColors.Add(fileName, uIColors);
				num++;
				new ConfigHeader((ConfigPanel)(object)uiFilesDiv, "---", 24);
				new ConfigHeader((ConfigPanel)(object)uiFilesDiv, fileName, 24);
				new ConfigHeader((ConfigPanel)(object)uiFilesDiv, uIColors.ToString(), 30, (TextAlignmentOptions)514);
				StringField name = new StringField((ConfigPanel)(object)uiFilesDiv, "NAME", "uicolors." + fileName + ".name", fileName, false, false);
				StringField code = new StringField((ConfigPanel)(object)uiFilesDiv, "CODE", "uicolors." + fileName + ".code", uIColors.GetCode(), false, false);
				code.postValueChangeEvent += (PostStringValueChangeEvent)delegate
				{
					code.value = code.defaultValue;
				};
				ConfigHeader result = new ConfigHeader((ConfigPanel)(object)uiFilesDiv, "", 16);
				name.onValueChange += (StringValueChangeEventDelegate)delegate
				{
					result.text = "";
				};
				ButtonArrayField val = new ButtonArrayField((ConfigPanel)(object)uiFilesDiv, "uicolors." + fileName + ".buttons", 3, new float[3] { 0.33f, 0.33f, 0.33f }, new string[3] { "RENAME", "LOAD", "DELETE" }, 5f);
				val.OnClickEventHandler(0).onClick += (OnClick)delegate
				{
					RenameUIColors(fileName, name.value, result);
				};
				val.OnClickEventHandler(1).onClick += (OnClick)delegate
				{
					LoadUIColors(fileName);
				};
				val.OnClickEventHandler(2).onClick += (OnClick)delegate
				{
					DeleteUIColors(fileName);
				};
			}
			if (num != files.Length)
			{
				uiFilesResult.text = string.Format("{0} UI color set{1} loaded. <color=red>Failed to load {2} file{3}.</color>", num, (num != 1) ? "s" : "", files.Length - num, (files.Length - num != 1) ? "s" : "");
				Core.Logger.LogWarning((object)string.Format("{0} UI color set{1} loaded. Failed to load {2} file{3}.", num, (num != 1) ? "s" : "", files.Length - num, (files.Length - num != 1) ? "s" : ""));
			}
			else
			{
				uiFilesResult.text = string.Format("{0} UI color set{1} loaded.", num, (num != 1) ? "s" : "");
				Core.Logger.LogInfo((object)string.Format("{0} UI color set{1} loaded.", num, (num != 1) ? "s" : ""));
			}
		}

		public static void RefreshEnemyFiles()
		{
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Expected O, but got Unknown
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Expected O, but got Unknown
			//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Expected O, but got Unknown
			//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f1: Expected O, but got Unknown
			//IL_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Expected O, but got Unknown
			//IL_025b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0262: Expected O, but got Unknown
			//IL_0272: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Expected O, but got Unknown
			//IL_028d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Expected O, but got Unknown
			//IL_02a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b2: Expected O, but got Unknown
			loadedEnemyColors.Clear();
			ClearConfigPanel((ConfigPanel)(object)enemyFilesDiv);
			string[] files = Directory.GetFiles(Core.EnemyFilePath, "*.json");
			int num = 0;
			string[] array = files;
			foreach (string text in array)
			{
				EnemyColors enemyColors = null;
				try
				{
					using (StreamReader streamReader = new StreamReader(text))
					{
						enemyColors = JsonConvert.DeserializeObject<EnemyColors>(streamReader.ReadToEnd(), jsonSerializerSettings);
					}
					enemyColors.ValidateColorStrings();
				}
				catch (Exception ex) when (ex is JsonReaderException || ex is JsonSerializationException || ex is FormatException)
				{
					Core.Logger.LogWarning((object)("Failed to load file at " + text + ": " + ex.Message));
					continue;
				}
				string fileName = Path.GetFileName(text).Remove(Path.GetFileName(text).Length - 5, 5);
				loadedEnemyColors.Add(fileName, enemyColors);
				num++;
				new ConfigHeader((ConfigPanel)(object)enemyFilesDiv, "---", 24);
				new ConfigHeader((ConfigPanel)(object)enemyFilesDiv, fileName, 24);
				new ConfigHeader((ConfigPanel)(object)enemyFilesDiv, enemyColors.ToString(), 30, (TextAlignmentOptions)514);
				StringField name = new StringField((ConfigPanel)(object)enemyFilesDiv, "NAME", "enemycolors." + fileName + ".name", fileName, false, false);
				StringField code = new StringField((ConfigPanel)(object)enemyFilesDiv, "CODE", "enemycolors." + fileName + ".code", enemyColors.GetCode(), false, false);
				code.postValueChangeEvent += (PostStringValueChangeEvent)delegate
				{
					code.value = code.defaultValue;
				};
				ConfigHeader result = new ConfigHeader((ConfigPanel)(object)enemyFilesDiv, "", 16);
				name.onValueChange += (StringValueChangeEventDelegate)delegate
				{
					result.text = "";
				};
				ButtonArrayField val = new ButtonArrayField((ConfigPanel)(object)enemyFilesDiv, "enemycolors." + fileName + ".buttons", 3, new float[3] { 0.33f, 0.33f, 0.33f }, new string[3] { "RENAME", "LOAD", "DELETE" }, 5f);
				val.OnClickEventHandler(0).onClick += (OnClick)delegate
				{
					RenameEnemyColors(fileName, name.value, result);
				};
				val.OnClickEventHandler(1).onClick += (OnClick)delegate
				{
					LoadEnemyColors(fileName);
				};
				val.OnClickEventHandler(2).onClick += (OnClick)delegate
				{
					DeleteEnemyColors(fileName);
				};
			}
			if (num != files.Length)
			{
				enemyFilesResult.text = string.Format("{0} enemy color set{1} loaded. <color=red>Failed to load {2} file{3}.</color>", num, (num != 1) ? "s" : "", files.Length - num, (files.Length - num != 1) ? "s" : "");
				Core.Logger.LogWarning((object)string.Format("{0} enemy color set{1} loaded. Failed to load {2} file{3}.", num, (num != 1) ? "s" : "", files.Length - num, (files.Length - num != 1) ? "s" : ""));
			}
			else
			{
				enemyFilesResult.text = string.Format("{0} enemy color set{1} loaded.", num, (num != 1) ? "s" : "");
				Core.Logger.LogInfo((object)string.Format("{0} enemy color set{1} loaded.", num, (num != 1) ? "s" : ""));
			}
		}

		public static void RefreshWeaponFiles()
		{
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Expected O, but got Unknown
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Expected O, but got Unknown
			//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Expected O, but got Unknown
			//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f1: Expected O, but got Unknown
			//IL_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Expected O, but got Unknown
			//IL_025b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0262: Expected O, but got Unknown
			//IL_0272: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Expected O, but got Unknown
			//IL_028d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Expected O, but got Unknown
			//IL_02a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b2: Expected O, but got Unknown
			loadedWeaponColors.Clear();
			ClearConfigPanel((ConfigPanel)(object)weaponFilesDiv);
			string[] files = Directory.GetFiles(Core.WeaponFilePath, "*.json");
			int num = 0;
			string[] array = files;
			foreach (string text in array)
			{
				WeaponColors weaponColors = null;
				try
				{
					using (StreamReader streamReader = new StreamReader(text))
					{
						weaponColors = JsonConvert.DeserializeObject<WeaponColors>(streamReader.ReadToEnd(), jsonSerializerSettings);
					}
					weaponColors.ValidateColorStrings();
				}
				catch (Exception ex) when (ex is JsonReaderException || ex is JsonSerializationException || ex is FormatException)
				{
					Core.Logger.LogWarning((object)("Failed to load file at " + text + ": " + ex.Message));
					continue;
				}
				string fileName = Path.GetFileName(text).Remove(Path.GetFileName(text).Length - 5, 5);
				loadedWeaponColors.Add(fileName, weaponColors);
				num++;
				new ConfigHeader((ConfigPanel)(object)weaponFilesDiv, "---", 24);
				new ConfigHeader((ConfigPanel)(object)weaponFilesDiv, fileName, 24);
				new ConfigHeader((ConfigPanel)(object)weaponFilesDiv, weaponColors.ToString(), 30, (TextAlignmentOptions)514);
				StringField name = new StringField((ConfigPanel)(object)weaponFilesDiv, "NAME", "weaponcolors." + fileName + ".name", fileName, false, false);
				StringField code = new StringField((ConfigPanel)(object)weaponFilesDiv, "CODE", "weaponcolors." + fileName + ".code", weaponColors.GetCode(), false, false);
				code.postValueChangeEvent += (PostStringValueChangeEvent)delegate
				{
					code.value = code.defaultValue;
				};
				ConfigHeader result = new ConfigHeader((ConfigPanel)(object)weaponFilesDiv, "", 16);
				name.onValueChange += (StringValueChangeEventDelegate)delegate
				{
					result.text = "";
				};
				ButtonArrayField val = new ButtonArrayField((ConfigPanel)(object)weaponFilesDiv, "weaponcolors." + fileName + ".buttons", 3, new float[3] { 0.33f, 0.33f, 0.33f }, new string[3] { "RENAME", "LOAD", "DELETE" }, 5f);
				val.OnClickEventHandler(0).onClick += (OnClick)delegate
				{
					RenameWeaponColors(fileName, name.value, result);
				};
				val.OnClickEventHandler(1).onClick += (OnClick)delegate
				{
					LoadWeaponColors(fileName);
				};
				val.OnClickEventHandler(2).onClick += (OnClick)delegate
				{
					DeleteWeaponColors(fileName);
				};
			}
			if (num != files.Length)
			{
				weaponFilesResult.text = string.Format("{0} weapon color set{1} loaded. <color=red>Failed to load {2} file{3}.</color>", num, (num != 1) ? "s" : "", files.Length - num, (files.Length - num != 1) ? "s" : "");
				Core.Logger.LogWarning((object)string.Format("{0} weapon color set{1} loaded. Failed to load {2} file{3}.", num, (num != 1) ? "s" : "", files.Length - num, (files.Length - num != 1) ? "s" : ""));
			}
			else
			{
				weaponFilesResult.text = string.Format("{0} weapon color set{1} loaded.", num, (num != 1) ? "s" : "");
				Core.Logger.LogInfo((object)string.Format("{0} weapon color set{1} loaded.", num, (num != 1) ? "s" : ""));
			}
		}

		public static void SaveCurrentUIToFile()
		{
			string path = Path.Combine(Core.UIFilePath, $"UIColors{DateTimeOffset.UtcNow.ToUnixTimeSeconds()}.json");
			byte[] bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject((object)UIColors.Get()));
			File.WriteAllBytes(path, bytes);
			RefreshUIFiles();
		}

		public static void SaveCurrentEnemyToFile()
		{
			string path = Path.Combine(Core.EnemyFilePath, $"EnemyColors{DateTimeOffset.UtcNow.ToUnixTimeSeconds()}.json");
			byte[] bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject((object)EnemyColors.Get()));
			File.WriteAllBytes(path, bytes);
			RefreshEnemyFiles();
		}

		public static void SaveCurrentWeaponToFile()
		{
			string path = Path.Combine(Core.WeaponFilePath, $"WeaponColors{DateTimeOffset.UtcNow.ToUnixTimeSeconds()}.json");
			byte[] bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject((object)WeaponColors.Get()));
			File.WriteAllBytes(path, bytes);
			RefreshWeaponFiles();
		}

		public static void RenameUIColors(string originalName, string newName, ConfigHeader result)
		{
			newName = newName.Trim();
			if (newName.IndexOfAny(forbiddenChars) >= 0)
			{
				string text = "Name contains invalid characters.";
				result.text = text;
				return;
			}
			string text2 = Path.Combine(Core.UIFilePath, originalName + ".json");
			string text3 = Path.Combine(Core.UIFilePath, newName + ".json");
			if (File.Exists(text3))
			{
				string text5 = (result.text = "A file with name \"" + newName + "\" already exists.");
				Core.Logger.LogWarning((object)text5);
				return;
			}
			UIColors value = loadedUIColors[originalName];
			loadedUIColors.Remove(originalName);
			loadedUIColors[newName] = value;
			if (File.Exists(text2))
			{
				File.Move(text2, text3);
			}
			Core.Logger.LogInfo((object)("Renamed UI colors: " + originalName + " -> " + newName));
			RefreshUIFiles();
		}

		public static void RenameEnemyColors(string originalName, string newName, ConfigHeader result)
		{
			newName = newName.Trim();
			if (newName.IndexOfAny(forbiddenChars) >= 0)
			{
				string text = "Name contains invalid characters.";
				result.text = text;
				return;
			}
			string text2 = Path.Combine(Core.EnemyFilePath, originalName + ".json");
			string text3 = Path.Combine(Core.EnemyFilePath, newName + ".json");
			if (File.Exists(text3))
			{
				string text5 = (result.text = "A file with name \"" + newName + "\" already exists.");
				Core.Logger.LogWarning((object)text5);
				return;
			}
			EnemyColors value = loadedEnemyColors[originalName];
			loadedEnemyColors.Remove(originalName);
			loadedEnemyColors[newName] = value;
			if (File.Exists(text2))
			{
				File.Move(text2, text3);
			}
			Core.Logger.LogInfo((object)("Renamed enemy colors: " + originalName + " -> " + newName));
			RefreshEnemyFiles();
		}

		public static void RenameWeaponColors(string originalName, string newName, ConfigHeader result)
		{
			newName = newName.Trim();
			if (newName.IndexOfAny(forbiddenChars) >= 0)
			{
				string text = "Name contains invalid characters.";
				result.text = text;
				return;
			}
			string text2 = Path.Combine(Core.WeaponFilePath, originalName + ".json");
			string text3 = Path.Combine(Core.WeaponFilePath, newName + ".json");
			if (File.Exists(text3))
			{
				string text5 = (result.text = "A file with name \"" + newName + "\" already exists.");
				Core.Logger.LogWarning((object)text5);
				return;
			}
			WeaponColors value = loadedWeaponColors[originalName];
			loadedWeaponColors.Remove(originalName);
			loadedWeaponColors[newName] = value;
			if (File.Exists(text2))
			{
				File.Move(text2, text3);
			}
			Core.Logger.LogInfo((object)("Renamed weapon colors: " + originalName + " -> " + newName));
			RefreshWeaponFiles();
		}

		public static void LoadUIColors(string name)
		{
			loadedUIColors[name].Set();
			Core.Logger.LogInfo((object)("Loaded UI colors: " + name));
		}

		public static void LoadEnemyColors(string name)
		{
			loadedEnemyColors[name].Set();
			Core.Logger.LogInfo((object)("Loaded enemy colors: " + name));
		}

		public static void LoadWeaponColors(string name)
		{
			loadedWeaponColors[name].Set();
			Core.Logger.LogInfo((object)("Loaded weapon colors: " + name));
		}

		public static void DeleteUIColors(string name)
		{
			loadedUIColors.Remove(name);
			string path = Path.Combine(Core.UIFilePath, name + ".json");
			if (File.Exists(path))
			{
				File.Delete(path);
			}
			Core.Logger.LogInfo((object)("Deleted UI colors: " + name));
			RefreshUIFiles();
		}

		public static void DeleteEnemyColors(string name)
		{
			loadedEnemyColors.Remove(name);
			string path = Path.Combine(Core.EnemyFilePath, name + ".json");
			if (File.Exists(path))
			{
				File.Delete(path);
			}
			Core.Logger.LogInfo((object)("Deleted enemy colors: " + name));
			RefreshEnemyFiles();
		}

		public static void DeleteWeaponColors(string name)
		{
			loadedWeaponColors.Remove(name);
			string path = Path.Combine(Core.WeaponFilePath, name + ".json");
			if (File.Exists(path))
			{
				File.Delete(path);
			}
			Core.Logger.LogInfo((object)("Deleted weapon colors: " + name));
			RefreshWeaponFiles();
		}

		public static void ClearConfigPanel(ConfigPanel configPanel)
		{
			Traverse val = Traverse.Create((object)configPanel);
			List<List<Transform>> value = val.Field<List<List<Transform>>>("fieldObjects").Value;
			foreach (List<Transform> item in value)
			{
				foreach (Transform item2 in item)
				{
					Object.Destroy((Object)(object)((Component)item2).gameObject);
				}
			}
			val.Field<List<List<Transform>>>("fieldObjects").Value = new List<List<Transform>>();
			val.Field<List<ConfigField>>("fields").Value = new List<ConfigField>();
		}
	}
	[BepInPlugin("trpg.uk.colorsets", "ColorSets", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Core : BaseUnityPlugin
	{
		public const string PluginGUID = "trpg.uk.colorsets";

		public const string PluginName = "ColorSets";

		public const string PluginVersion = "1.0.0";

		public static string AssemblyPath { get; private set; }

		public static string AssemblyDir { get; private set; }

		public static string BaseFilePath { get; private set; }

		public static string UIFilePath { get; private set; }

		public static string EnemyFilePath { get; private set; }

		public static string WeaponFilePath { get; private set; }

		internal static ManualLogSource Logger { get; } = Logger.CreateLogSource("ColorSets");


		public static Dictionary<string, List<ColorBlindSetter>> ColorBlindSetters { get; private set; } = new Dictionary<string, List<ColorBlindSetter>>();


		private void Awake()
		{
			AssemblyPath = Assembly.GetExecutingAssembly().Location;
			AssemblyDir = Path.GetDirectoryName(AssemblyPath);
			BaseFilePath = Path.GetFullPath(Path.Combine(GameProgressSaver.BaseSavePath, "..\\ColorSets\\"));
			UIFilePath = Path.Combine(BaseFilePath, "UIColors\\");
			EnemyFilePath = Path.Combine(BaseFilePath, "EnemyColors\\");
			WeaponFilePath = Path.Combine(BaseFilePath, "WeaponColors\\");
			Directory.CreateDirectory(UIFilePath);
			Directory.CreateDirectory(EnemyFilePath);
			Directory.CreateDirectory(WeaponFilePath);
			SceneManager.sceneLoaded += delegate
			{
				ColorBlindSetters.Clear();
			};
			ConfigManager.Initialize();
		}

		public static void FindColorBlindSetters()
		{
			ColorBlindSetters.Clear();
			ColorBlindSetter[] array = Object.FindObjectsOfType<ColorBlindSetter>(true);
			foreach (ColorBlindSetter val in array)
			{
				if (ColorBlindSetters.ContainsKey(val.name))
				{
					ColorBlindSetters[val.name].Add(val);
					continue;
				}
				ColorBlindSetters[val.name] = new List<ColorBlindSetter> { val };
			}
		}
	}
	public enum ColorSetType
	{
		UI,
		Enemy,
		Weapon
	}
	public class EnemyColors : BaseColors
	{
		public string filth = "5E7631";

		public string stray = "B04244";

		public string maliciousFace = "6C5C50";

		public string schism = "715959";

		public string swordsmachine = "E9990D";

		public string cerberus = "606060";

		public string drone = "7039AA";

		public string streetcleaner = "7B4426";

		public string v2 = "95130C";

		public string soldier = "EEDCDB";

		public string mindflayer = "42E3BD";

		public string virtue = "67C0F0";

		public string stalker = "262626";

		public string insurrectionist = "CF8B6C";

		public string sentry = "B2C847";

		public string idol = "C3B0A1";

		public string ferryman = "08828C";

		public string mannequin = "DBDBDB";

		public string gutterman = "6F411F";

		public string guttertank = "AD0600";

		public override string ToString()
		{
			return "<color=#" + filth + ">â– </color><color=#" + stray + ">â– </color><color=#" + maliciousFace + ">â– </color><color=#" + schism + ">â– </color><color=#" + swordsmachine + ">â– </color><color=#" + cerberus + ">â– </color><color=#" + drone + ">â– </color><color=#" + streetcleaner + ">â– </color><color=#" + v2 + ">â– </color><color=#" + soldier + ">â– </color><color=#" + mindflayer + ">â– </color><color=#" + virtue + ">â– </color><color=#" + stalker + ">â– </color><color=#" + insurrectionist + ">â– </color><color=#" + sentry + ">â– </color><color=#" + idol + ">â– </color><color=#" + ferryman + ">â– </color><color=#" + mannequin + ">â– </color><color=#" + gutterman + ">â– </color><color=#" + guttertank + ">â– </color>";
		}

		public static EnemyColors Get()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_015c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			return new EnemyColors
			{
				filth = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.filthColor),
				stray = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.strayColor),
				maliciousFace = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.maliciousColor),
				schism = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.schismColor),
				swordsmachine = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.swordsmachineColor),
				cerberus = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.cerberusColor),
				drone = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.droneColor),
				streetcleaner = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.streetcleanerColor),
				v2 = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.v2Color),
				soldier = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.shotgunnerColor),
				mindflayer = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.mindflayerColor),
				virtue = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.virtueColor),
				stalker = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.stalkerColor),
				insurrectionist = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.sisyphusColor),
				sentry = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.turretColor),
				idol = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.idolColor),
				ferryman = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.ferrymanColor),
				mannequin = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.mannequinColor),
				gutterman = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.guttermanColor),
				guttertank = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.guttertankColor)
			};
		}

		public void Set()
		{
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: Unknown result type (might be due to invalid IL or missing references)
			//IL_028c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0304: Unknown result type (might be due to invalid IL or missing references)
			//IL_0340: Unknown result type (might be due to invalid IL or missing references)
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0430: Unknown result type (might be due to invalid IL or missing references)
			//IL_046c: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			if (Core.ColorBlindSetters.Count == 0)
			{
				Core.FindColorBlindSetters();
			}
			Color color = default(Color);
			ColorUtility.TryParseHtmlString("#" + filth, ref color);
			SetColorPrefs("enemyColor.filth", color);
			PrepareColorBlindSetters(Core.ColorBlindSetters["filth"]);
			Color color2 = default(Color);
			ColorUtility.TryParseHtmlString("#" + stray, ref color2);
			SetColorPrefs("enemyColor.stray", color2);
			PrepareColorBlindSetters(Core.ColorBlindSetters["stray"]);
			Color color3 = default(Color);
			ColorUtility.TryParseHtmlString("#" + maliciousFace, ref color3);
			SetColorPrefs("enemyColor.malf", color3);
			PrepareColorBlindSetters(Core.ColorBlindSetters["malf"]);
			Color color4 = default(Color);
			ColorUtility.TryParseHtmlString("#" + schism, ref color4);
			SetColorPrefs("enemyColor.schism", color4);
			PrepareColorBlindSetters(Core.ColorBlindSetters["schism"]);
			Color color5 = default(Color);
			ColorUtility.TryParseHtmlString("#" + swordsmachine, ref color5);
			SetColorPrefs("enemyColor.swordsmachine", color5);
			PrepareColorBlindSetters(Core.ColorBlindSetters["swordsmachine"]);
			Color color6 = default(Color);
			ColorUtility.TryParseHtmlString("#" + cerberus, ref color6);
			SetColorPrefs("enemyColor.cerberus", color6);
			PrepareColorBlindSetters(Core.ColorBlindSetters["cerberus"]);
			Color color7 = default(Color);
			ColorUtility.TryParseHtmlString("#" + drone, ref color7);
			SetColorPrefs("enemyColor.drone", color7);
			PrepareColorBlindSetters(Core.ColorBlindSetters["drone"]);
			Color color8 = default(Color);
			ColorUtility.TryParseHtmlString("#" + streetcleaner, ref color8);
			SetColorPrefs("enemyColor.streetcleaner", color8);
			PrepareColorBlindSetters(Core.ColorBlindSetters["streetcleaner"]);
			Color color9 = default(Color);
			ColorUtility.TryParseHtmlString("#" + v2, ref color9);
			SetColorPrefs("enemyColor.v2", color9);
			PrepareColorBlindSetters(Core.ColorBlindSetters["v2"]);
			Color color10 = default(Color);
			ColorUtility.TryParseHtmlString("#" + soldier, ref color10);
			SetColorPrefs("enemyColor.shotgunner", color10);
			PrepareColorBlindSetters(Core.ColorBlindSetters["shotgunner"]);
			Color color11 = default(Color);
			ColorUtility.TryParseHtmlString("#" + mindflayer, ref color11);
			SetColorPrefs("enemyColor.milf", color11);
			PrepareColorBlindSetters(Core.ColorBlindSetters["milf"]);
			Color color12 = default(Color);
			ColorUtility.TryParseHtmlString("#" + virtue, ref color12);
			SetColorPrefs("enemyColor.virtue", color12);
			PrepareColorBlindSetters(Core.ColorBlindSetters["virtue"]);
			Color color13 = default(Color);
			ColorUtility.TryParseHtmlString("#" + stalker, ref color13);
			SetColorPrefs("enemyColor.stalker", color13);
			PrepareColorBlindSetters(Core.ColorBlindSetters["stalker"]);
			Color color14 = default(Color);
			ColorUtility.TryParseHtmlString("#" + insurrectionist, ref color14);
			SetColorPrefs("enemyColor.sisyphus", color14);
			PrepareColorBlindSetters(Core.ColorBlindSetters["sisyphus"]);
			Color color15 = default(Color);
			ColorUtility.TryParseHtmlString("#" + sentry, ref color15);
			SetColorPrefs("enemyColor.turret", color15);
			PrepareColorBlindSetters(Core.ColorBlindSetters["turret"]);
			Color color16 = default(Color);
			ColorUtility.TryParseHtmlString("#" + idol, ref color16);
			SetColorPrefs("enemyColor.idol", color16);
			PrepareColorBlindSetters(Core.ColorBlindSetters["idol"]);
			Color color17 = default(Color);
			ColorUtility.TryParseHtmlString("#" + ferryman, ref color17);
			SetColorPrefs("enemyColor.ferryman", color17);
			PrepareColorBlindSetters(Core.ColorBlindSetters["ferryman"]);
			Color color18 = default(Color);
			ColorUtility.TryParseHtmlString("#" + mannequin, ref color18);
			SetColorPrefs("enemyColor.mannequin", color18);
			PrepareColorBlindSetters(Core.ColorBlindSetters["mannequin"]);
			Color color19 = default(Color);
			ColorUtility.TryParseHtmlString("#" + gutterman, ref color19);
			SetColorPrefs("enemyColor.gutterman", color19);
			PrepareColorBlindSetters(Core.ColorBlindSetters["gutterman"]);
			Color color20 = default(Color);
			ColorUtility.TryParseHtmlString("#" + guttertank, ref color20);
			SetColorPrefs("enemyColor.guttertank", color20);
			PrepareColorBlindSetters(Core.ColorBlindSetters["guttertank"]);
			MonoSingleton<ColorBlindSettings>.Instance.UpdateEnemyColors();
		}

		public string GetCode()
		{
			return "e1" + filth + stray + maliciousFace + schism + swordsmachine + cerberus + drone + streetcleaner + v2 + soldier + mindflayer + virtue + stalker + insurrectionist + sentry + idol + ferryman + mannequin + gutterman + guttertank;
		}

		public static EnemyColors ParseCode(string code)
		{
			if (code[0] != 'e')
			{
				throw new FormatException("Input string is not an Enemy Color code.");
			}
			code = code.Remove(0, 2);
			string text = code;
			foreach (char character in text)
			{
				if (!Uri.IsHexDigit(character))
				{
					throw new FormatException("Code contains invalid characters.");
				}
			}
			if (code.Length % 6 != 0)
			{
				throw new FormatException("Code is not correct length.");
			}
			int chunkSize = 6;
			string[] array = (from i in Enumerable.Range(0, code.Length / chunkSize)
				select code.Substring(i * chunkSize, chunkSize)).ToArray();
			if (array.Length != 20)
			{
				throw new FormatException("Code is not correct length.");
			}
			return new EnemyColors
			{
				filth = array[0],
				stray = array[1],
				maliciousFace = array[2],
				schism = array[3],
				swordsmachine = array[4],
				cerberus = array[5],
				drone = array[6],
				streetcleaner = array[7],
				v2 = array[8],
				soldier = array[9],
				mindflayer = array[10],
				virtue = array[11],
				stalker = array[12],
				insurrectionist = array[13],
				sentry = array[14],
				idol = array[15],
				ferryman = array[16],
				mannequin = array[17],
				gutterman = array[18],
				guttertank = array[19]
			};
		}
	}
	public static class Extensions
	{
		public static string ToHex(this float f)
		{
			return ((int)Math.Round(f * 255f)).ToString("X2");
		}
	}
	public class UIColors : BaseColors
	{
		public string health = "FF0000";

		public string healthNumber = "FFFFFF";

		public string softDamage = "FF6400";

		public string hardDamage = "595959";

		public string overheal = "00FF01";

		public string staminaFull = "00DFFF";

		public string staminaCharging = "00DFFF";

		public string staminaEmpty = "FF0000";

		public string railcannonFull = "40E7FF";

		public string railcannonCharging = "FF0000";

		public string blueVariation = "40E7FF";

		public string greenVariation = "44FF45";

		public string redVariation = "FF3C3C";

		public string goldVariation = "FFDF3C";

		public override string ToString()
		{
			return "<color=#" + health + ">â– </color><color=#" + healthNumber + ">â– </color><color=#" + softDamage + ">â– </color><color=#" + hardDamage + ">â– </color><color=#" + overheal + ">â– </color><color=#" + staminaFull + ">â– </color><color=#" + staminaCharging + ">â– </color><color=#" + staminaEmpty + ">â– </color><color=#" + railcannonFull + ">â– </color><color=#" + railcannonCharging + ">â– </color><color=#" + blueVariation + ">â– </color><color=#" + greenVariation + ">â– </color><color=#" + redVariation + ">â– </color><color=#" + goldVariation + ">â– </color>";
		}

		public static UIColors Get()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			return new UIColors
			{
				health = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.healthBarColor),
				healthNumber = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.healthBarTextColor),
				softDamage = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.healthBarAfterImageColor),
				hardDamage = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.antiHpColor),
				overheal = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.overHealColor),
				staminaFull = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.staminaColor),
				staminaCharging = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.staminaChargingColor),
				staminaEmpty = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.staminaEmptyColor),
				railcannonFull = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.railcannonFullColor),
				railcannonCharging = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.railcannonChargingColor),
				blueVariation = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.variationColors[0]),
				greenVariation = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.variationColors[1]),
				redVariation = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.variationColors[2]),
				goldVariation = ColorUtility.ToHtmlStringRGB(MonoSingleton<ColorBlindSettings>.Instance.variationColors[3])
			};
		}

		public void Set()
		{
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: Unknown result type (might be due to invalid IL or missing references)
			//IL_028c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0304: Unknown result type (might be due to invalid IL or missing references)
			//IL_0340: Unknown result type (might be due to invalid IL or missing references)
			if (Core.ColorBlindSetters.Count == 0)
			{
				Core.FindColorBlindSetters();
			}
			Color color = default(Color);
			ColorUtility.TryParseHtmlString("#" + health, ref color);
			SetColorPrefs("hudColor.hp", color);
			PrepareColorBlindSetters(Core.ColorBlindSetters["hp"]);
			Color color2 = default(Color);
			ColorUtility.TryParseHtmlString("#" + healthNumber, ref color2);
			SetColorPrefs("hudColor.hptext", color2);
			PrepareColorBlindSetters(Core.ColorBlindSetters["hptext"]);
			Color color3 = default(Color);
			ColorUtility.TryParseHtmlString("#" + softDamage, ref color3);
			SetColorPrefs("hudColor.hpaft", color3);
			PrepareColorBlindSetters(Core.ColorBlindSetters["hpaft"]);
			Color color4 = default(Color);
			ColorUtility.TryParseHtmlString("#" + hardDamage, ref color4);
			SetColorPrefs("hudColor.hphdmg", color4);
			PrepareColorBlindSetters(Core.ColorBlindSetters["hphdmg"]);
			Color color5 = default(Color);
			ColorUtility.TryParseHtmlString("#" + overheal, ref color5);
			SetColorPrefs("hudColor.hpover", color5);
			PrepareColorBlindSetters(Core.ColorBlindSetters["hpover"]);
			Color color6 = default(Color);
			ColorUtility.TryParseHtmlString("#" + staminaFull, ref color6);
			SetColorPrefs("hudColor.stm", color6);
			PrepareColorBlindSetters(Core.ColorBlindSetters["stm"]);
			Color color7 = default(Color);
			ColorUtility.TryParseHtmlString("#" + staminaCharging, ref color7);
			SetColorPrefs("hudColor.stmchr", color7);
			PrepareColorBlindSetters(Core.ColorBlindSetters["stmchr"]);
			Color color8 = default(Color);
			ColorUtility.TryParseHtmlString("#" + staminaEmpty, ref color8);
			SetColorPrefs("hudColor.stmemp", color8);
			PrepareColorBlindSetters(Core.ColorBlindSetters["stmemp"]);
			Color color9 = default(Color);
			ColorUtility.TryParseHtmlString("#" + railcannonFull, ref color9);
			SetColorPrefs("hudColor.raifull", color9);
			PrepareColorBlindSetters(Core.ColorBlindSetters["raifull"]);
			Color color10 = default(Color);
			ColorUtility.TryParseHtmlString("#" + railcannonCharging, ref color10);
			SetColorPrefs("hudColor.raicha", color10);
			PrepareColorBlindSetters(Core.ColorBlindSetters["raicha"]);
			Color color11 = default(Color);
			ColorUtility.TryParseHtmlString("#" + blueVariation, ref color11);
			SetColorPrefs("hudColor.var0", color11);
			PrepareColorBlindSetters(Core.ColorBlindSetters["var0"]);
			Color color12 = default(Color);
			ColorUtility.TryParseHtmlString("#" + greenVariation, ref color12);
			SetColorPrefs("hudColor.var1", color12);
			PrepareColorBlindSetters(Core.ColorBlindSetters["var1"]);
			Color color13 = default(Color);
			ColorUtility.TryParseHtmlString("#" + redVariation, ref color13);
			SetColorPrefs("hudColor.var2", color13);
			PrepareColorBlindSetters(Core.ColorBlindSetters["var2"]);
			Color color14 = default(Color);
			ColorUtility.TryParseHtmlString("#" + goldVariation, ref color14);
			SetColorPrefs("hudColor.var3", color14);
			PrepareColorBlindSetters(Core.ColorBlindSetters["var3"]);
			MonoSingleton<ColorBlindSettings>.Instance.UpdateHudColors();
			MonoSingleton<ColorBlindSettings>.Instance.UpdateWeaponColors();
		}

		public string GetCode()
		{
			return "u1" + health + healthNumber + softDamage + hardDamage + overheal + staminaFull + staminaCharging + staminaEmpty + railcannonFull + railcannonCharging + blueVariation + greenVariation + redVariation + goldVariation;
		}

		public static UIColors ParseCode(string code)
		{
			if (code[0] != 'u')
			{
				throw new FormatException("Input string is not a UI Color code.");
			}
			code = code.Remove(0, 2);
			string text = code;
			foreach (char character in text)
			{
				if (!Uri.IsHexDigit(character))
				{
					throw new FormatException("Code contains invalid characters.");
				}
			}
			if (code.Length % 6 != 0)
			{
				throw new FormatException("Code is not correct length.");
			}
			int chunkSize = 6;
			string[] array = (from i in Enumerable.Range(0, code.Length / chunkSize)
				select code.Substring(i * chunkSize, chunkSize)).ToArray();
			if (array.Length != 14)
			{
				throw new FormatException("Code is not correct length.");
			}
			return new UIColors
			{
				health = array[0],
				healthNumber = array[1],
				softDamage = array[2],
				hardDamage = array[3],
				overheal = array[4],
				staminaFull = array[5],
				staminaCharging = array[6],
				staminaEmpty = array[7],
				railcannonFull = array[8],
				railcannonCharging = array[9],
				blueVariation = array[10],
				greenVariation = array[11],
				redVariation = array[12],
				goldVariation = array[13]
			};
		}
	}
	public class WeaponColors : BaseColors
	{
		public string rev1 = "FFFFFF00";

		public string rev2 = "FFFFFF00";

		public string rev3 = "FFFFFF00";

		public string revalt1 = "FFFFFF00";

		public string revalt2 = "FFFFFF00";

		public string revalt3 = "FFFFFF00";

		public string sho1 = "FFFFFF00";

		public string sho2 = "FFFFFF00";

		public string sho3 = "FFFFFF00";

		public string shoalt1 = "FFFFFF00";

		public string shoalt2 = "FFFFFF00";

		public string shoalt3 = "FFFFFF00";

		public string nai1 = "FFFFFF00";

		public string nai2 = "FFFFFF00";

		public string nai3 = "FFFFFF00";

		public string naialt1 = "FFFFFF00";

		public string naialt2 = "FFFFFF00";

		public string naialt3 = "FFFFFF00";

		public string rai1 = "FFFFFF00";

		public string rai2 = "FFFFFF00";

		public string rai3 = "FFFFFF00";

		public string rock1 = "FFFFFF00";

		public string rock2 = "FFFFFF00";

		public string rock3 = "FFFFFF00";

		public override int StringLength => 8;

		public override string ToString()
		{
			return "<color=#" + rev1.Substring(0, 6) + ">â– </color><color=#" + rev2.Substring(0, 6) + ">â– </color><color=#" + rev3.Substring(0, 6) + ">â– </color><color=#" + revalt1.Substring(0, 6) + ">â– </color><color=#" + revalt2.Substring(0, 6) + ">â– </color><color=#" + revalt3.Substring(0, 6) + ">â– </color><color=#" + sho1.Substring(0, 6) + ">â– </color><color=#" + sho2.Substring(0, 6) + ">â– </color><color=#" + sho3.Substring(0, 6) + ">â– </color><color=#" + shoalt1.Substring(0, 6) + ">â– </color><color=#" + shoalt2.Substring(0, 6) + ">â– </color><color=#" + shoalt3.Substring(0, 6) + ">â– </color><color=#" + nai1.Substring(0, 6) + ">â– </color><color=#" + nai2.Substring(0, 6) + ">â– </color><color=#" + nai3.Substring(0, 6) + ">â– </color><color=#" + naialt1.Substring(0, 6) + ">â– </color><color=#" + naialt2.Substring(0, 6) + ">â– </color><color=#" + naialt3.Substring(0, 6) + ">â– </color><color=#" + rai1.Substring(0, 6) + ">â– </color><color=#" + rai2.Substring(0, 6) + ">â– </color><color=#" + rai3.Substring(0, 6) + ">â– </color><color=#" + rock1.Substring(0, 6) + ">â– </color><color=#" + rock2.Substring(0, 6) + ">â– </color><color=#" + rock3.Substring(0, 6) + ">â– </color>";
		}

		public static WeaponColors Get()
		{
			return new WeaponColors
			{
				rev1 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.1.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.1.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.1.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.1.a", 0f).ToHex(),
				rev2 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.2.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.2.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.2.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.2.a", 0f).ToHex(),
				rev3 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.3.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.3.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.3.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.3.a", 0f).ToHex(),
				revalt1 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.1.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.1.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.1.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.1.aa", 0f).ToHex(),
				revalt2 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.2.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.2.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.2.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.2.aa", 0f).ToHex(),
				revalt3 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.3.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.3.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.3.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.1.3.aa", 0f).ToHex(),
				sho1 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.1.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.1.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.1.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.1.a", 0f).ToHex(),
				sho2 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.2.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.2.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.2.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.2.a", 0f).ToHex(),
				sho3 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.3.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.3.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.3.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.3.a", 0f).ToHex(),
				shoalt1 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.1.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.1.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.1.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.1.aa", 0f).ToHex(),
				shoalt2 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.2.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.2.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.2.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.2.aa", 0f).ToHex(),
				shoalt3 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.3.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.3.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.3.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.2.3.aa", 0f).ToHex(),
				nai1 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.1.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.1.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.1.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.1.a", 0f).ToHex(),
				nai2 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.2.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.2.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.2.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.2.a", 0f).ToHex(),
				nai3 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.3.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.3.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.3.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.3.a", 0f).ToHex(),
				naialt1 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.1.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.1.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.1.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.1.aa", 0f).ToHex(),
				naialt2 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.2.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.2.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.2.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.2.aa", 0f).ToHex(),
				naialt3 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.3.ar", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.3.ag", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.3.ab", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.3.3.aa", 0f).ToHex(),
				rai1 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.1.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.1.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.1.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.1.a", 0f).ToHex(),
				rai2 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.2.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.2.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.2.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.2.a", 0f).ToHex(),
				rai3 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.3.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.3.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.3.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.4.3.a", 0f).ToHex(),
				rock1 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.1.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.1.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.1.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.1.a", 0f).ToHex(),
				rock2 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.2.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.2.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.2.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.2.a", 0f).ToHex(),
				rock3 = MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.3.r", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.3.g", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.3.b", 1f).ToHex() + MonoSingleton<PrefsManager>.Instance.GetFloat("gunColor.5.3.a", 0f).ToHex()
			};
		}

		public void Set()
		{
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_011b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0211: Unknown result type (might be due to invalid IL or missing references)
			//IL_0227: Unknown result type (might be due to invalid IL or missing references)
			//IL_023d: Unknown result type (might be due to invalid IL or missing references)
			//IL_026b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0282: Unknown result type (might be due to invalid IL or missing references)
			//IL_0299: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02df: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_030d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0324: Unknown result type (might be due to invalid IL or missing references)
			//IL_0353: Unknown result type (might be due to invalid IL or missing references)
			//IL_036a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Unknown result type (might be due to invalid IL or missing references)
			//IL_0398: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03de: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_040c: Unknown result type (might be due to invalid IL or missing references)
			//IL_043b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0452: Unknown result type (might be due to invalid IL or missing references)
			//IL_0469: Unknown result type (might be due to invalid IL or missing references)
			//IL_0480: Unknown result type (might be due to invalid IL or missing references)
			//IL_04af: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0523: Unknown result type (might be due to invalid IL or missing references)
			//IL_053a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0551: Unknown result type (might be due to invalid IL or missing references)
			//IL_0568: Unknown result type (might be due to invalid IL or missing references)
			//IL_0597: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_060b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0622: Unknown result type (might be due to invalid IL or missing references)
			//IL_0639: Unknown result type (might be due to invalid IL or missing references)
			//IL_0650: Unknown result type (might be due to invalid IL or missing references)
			//IL_067f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0696: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_070a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0721: Unknown result type (might be due to invalid IL or missing references)
			//IL_0738: Unknown result type (might be due to invalid IL or missing references)
			//IL_0767: Unknown result type (might be due to invalid IL or missing references)
			//IL_077e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0795: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_07db: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0809: Unknown result type (might be due to invalid IL or missing references)
			//IL_0820: Unknown result type (might be due to invalid IL or missing references)
			//IL_084f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0866: Unknown result type (might be due to invalid IL or missing references)
			//IL_087d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0894: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08da: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0908: Unknown result type (might be due to invalid IL or missing references)
			//IL_0937: Unknown result type (might be due to invalid IL or missing references)
			//IL_094e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0965: Unknown result type (might be due to invalid IL or missing references)
			//IL_097c: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a1f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aaa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b07: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b1e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b35: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4c: Unknown result type (might be due to invalid IL or missing references)
			MonoSingleton<PrefsManager>.Instance.SetBool("gunColorType.1", true);
			MonoSingleton<PrefsManager>.Instance.SetBool("gunColorType.1.a", true);
			MonoSingleton<PrefsManager>.Instance.SetBool("gunColorType.2", true);
			MonoSingleton<PrefsManager>.Instance.SetBool("gunColorType.2.a", true);
			MonoSingleton<PrefsManager>.Instance.SetBool("gunColorType.3", true);
			MonoSingleton<PrefsManager>.Instance.SetBool("gunColorType.3.a", true);
			MonoSingleton<PrefsManager>.Instance.SetBool("gunColorType.4", true);
			MonoSingleton<PrefsManager>.Instance.SetBool("gunColorType.5", true);
			Color val = default(Color);
			ColorUtility.TryParseHtmlString("#" + rev1, ref val);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.1.r", val.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.1.g", val.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.1.b", val.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.1.a", val.a);
			Color val2 = default(Color);
			ColorUtility.TryParseHtmlString("#" + rev2, ref val2);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.2.r", val2.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.2.g", val2.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.2.b", val2.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.2.a", val2.a);
			Color val3 = default(Color);
			ColorUtility.TryParseHtmlString("#" + rev3, ref val3);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.3.r", val3.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.3.g", val3.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.3.b", val3.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.3.a", val3.a);
			Color val4 = default(Color);
			ColorUtility.TryParseHtmlString("#" + revalt1, ref val4);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.1.ar", val4.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.1.ag", val4.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.1.ab", val4.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.1.aa", val4.a);
			Color val5 = default(Color);
			ColorUtility.TryParseHtmlString("#" + revalt2, ref val5);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.2.ar", val5.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.2.ag", val5.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.2.ab", val5.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.2.aa", val5.a);
			Color val6 = default(Color);
			ColorUtility.TryParseHtmlString("#" + revalt3, ref val6);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.3.ar", val6.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.3.ag", val6.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.3.ab", val6.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.1.3.aa", val6.a);
			Color val7 = default(Color);
			ColorUtility.TryParseHtmlString("#" + sho1, ref val7);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.1.r", val7.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.1.g", val7.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.1.b", val7.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.1.a", val7.a);
			Color val8 = default(Color);
			ColorUtility.TryParseHtmlString("#" + sho2, ref val8);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.2.r", val8.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.2.g", val8.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.2.b", val8.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.2.a", val8.a);
			Color val9 = default(Color);
			ColorUtility.TryParseHtmlString("#" + sho3, ref val9);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.3.r", val9.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.3.g", val9.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.3.b", val9.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.3.a", val9.a);
			Color val10 = default(Color);
			ColorUtility.TryParseHtmlString("#" + shoalt1, ref val10);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.1.ar", val10.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.1.ag", val10.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.1.ab", val10.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.1.aa", val10.a);
			Color val11 = default(Color);
			ColorUtility.TryParseHtmlString("#" + shoalt2, ref val11);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.2.ar", val11.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.2.ag", val11.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.2.ab", val11.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.2.aa", val11.a);
			Color val12 = default(Color);
			ColorUtility.TryParseHtmlString("#" + shoalt3, ref val12);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.3.ar", val12.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.3.ag", val12.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.3.ab", val12.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.2.3.aa", val12.a);
			Color val13 = default(Color);
			ColorUtility.TryParseHtmlString("#" + nai1, ref val13);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.1.r", val13.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.1.g", val13.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.1.b", val13.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.1.a", val13.a);
			Color val14 = default(Color);
			ColorUtility.TryParseHtmlString("#" + nai2, ref val14);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.2.r", val14.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.2.g", val14.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.2.b", val14.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.2.a", val14.a);
			Color val15 = default(Color);
			ColorUtility.TryParseHtmlString("#" + nai3, ref val15);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.3.r", val15.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.3.g", val15.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.3.b", val15.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.3.a", val15.a);
			Color val16 = default(Color);
			ColorUtility.TryParseHtmlString("#" + naialt1, ref val16);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.1.ar", val16.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.1.ag", val16.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.1.ab", val16.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.1.aa", val16.a);
			Color val17 = default(Color);
			ColorUtility.TryParseHtmlString("#" + naialt2, ref val17);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.2.ar", val17.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.2.ag", val17.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.2.ab", val17.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.2.aa", val17.a);
			Color val18 = default(Color);
			ColorUtility.TryParseHtmlString("#" + naialt3, ref val18);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.3.ar", val18.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.3.ag", val18.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.3.ab", val18.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.3.3.aa", val18.a);
			Color val19 = default(Color);
			ColorUtility.TryParseHtmlString("#" + rai1, ref val19);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.1.r", val19.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.1.g", val19.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.1.b", val19.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.1.a", val19.a);
			Color val20 = default(Color);
			ColorUtility.TryParseHtmlString("#" + rai2, ref val20);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.2.r", val20.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.2.g", val20.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.2.b", val20.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.2.a", val20.a);
			Color val21 = default(Color);
			ColorUtility.TryParseHtmlString("#" + rai3, ref val21);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.3.r", val21.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.3.g", val21.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.3.b", val21.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.4.3.a", val21.a);
			Color val22 = default(Color);
			ColorUtility.TryParseHtmlString("#" + rock1, ref val22);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.1.r", val22.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.1.g", val22.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.1.b", val22.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.1.a", val22.a);
			Color val23 = default(Color);
			ColorUtility.TryParseHtmlString("#" + rock2, ref val23);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.2.r", val23.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.2.g", val23.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.2.b", val23.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.2.a", val23.a);
			Color val24 = default(Color);
			ColorUtility.TryParseHtmlString("#" + rock3, ref val24);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.3.r", val24.r);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.3.g", val24.g);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.3.b", val24.b);
			MonoSingleton<PrefsManager>.Instance.SetFloat("gunColor.5.3.a", val24.a);
			MonoSingleton<ColorBlindSettings>.Instance.UpdateWeaponColors();
			MonoSingleton<GunColorController>.Instance.UpdateGunColors();
			GunColorGetter[] array = Object.FindObjectsOfType<GunColorGetter>();
			foreach (GunColorGetter val25 in array)
			{
				val25.UpdateColor();
			}
			GunColorTypeGetter[] array2 = Object.FindObjectsOfType<GunColorTypeGetter>(true);
			foreach (GunColorTypeGetter val26 in array2)
			{
				val26.UpdatePreview();
			}
		}

		public string GetCode()
		{
			return "w1" + rev1 + rev2 + rev3 + revalt1 + revalt2 + revalt3 + sho1 + sho2 + sho3 + shoalt1 + shoalt2 + shoalt3 + nai1 + nai2 + nai3 + naialt1 + naialt2 + naialt3 + rai1 + rai2 + rai3 + rock1 + rock2 + rock3;
		}

		public static WeaponColors ParseCode(string code)
		{
			if (code[0] != 'w')
			{
				throw new FormatException("Input string is not a Weapon Color code.");
			}
			code = code.Remove(0, 2);
			string text = code;
			foreach (char character in text)
			{
				if (!Uri.IsHexDigit(character))
				{
					throw new FormatException("Code contains invalid characters.");
				}
			}
			if (code.Length % 8 != 0)
			{
				throw new FormatException("Code is not correct length.");
			}
			int chunkSize = 8;
			string[] array = (from i in Enumerable.Range(0, code.Length / chunkSize)
				select code.Substring(i * chunkSize, chunkSize)).ToArray();
			if (array.Length != 24)
			{
				throw new FormatException("Code is not correct length.");
			}
			return new WeaponColors
			{
				rev1 = array[0],
				rev2 = array[1],
				rev3 = array[2],
				revalt1 = array[3],
				revalt2 = array[4],
				revalt3 = array[5],
				sho1 = array[6],
				sho2 = array[7],
				sho3 = array[8],
				shoalt1 = array[9],
				shoalt2 = array[10],
				shoalt3 = array[11],
				nai1 = array[12],
				nai2 = array[13],
				nai3 = array[14],
				naialt1 = array[15],
				naialt2 = array[16],
				naialt3 = array[17],
				rai1 = array[18],
				rai2 = array[19],
				rai3 = array[20],
				rock1 = array[21],
				rock2 = array[22],
				rock3 = array[23]
			};
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "ColorSets";

		public const string PLUGIN_NAME = "ColorSets";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}