Decompiled source of IconsPlugin v2.3.1

IconsPlugin.dll

Decompiled 8 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using BepInEx;
using BepInEx.Configuration;
using Bounce.Singletons;
using Bounce.Unmanaged;
using RadialUI;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("IconsPlugin")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("IconsPlugin")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("IconsPlugin")]
[assembly: ComVisible(false)]
[assembly: Guid("c303405d-e66c-4316-9cdb-4e3ca15c6360")]
[assembly: AssemblyFileVersion("2.3.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("2.3.1.0")]
namespace LordAshes;

[BepInPlugin("org.lordashes.plugins.icons", "Icons Plug-In", "2.3.1.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class IconsPlugin : BaseUnityPlugin
{
	public enum DiagnostiocLevel
	{
		none,
		low,
		medium,
		high,
		ultra
	}

	public enum BoardState
	{
		boardNotReady,
		boardIconsBuildDelay,
		boardReady
	}

	public static class Utility
	{
		public static void PostOnMainPage(MemberInfo plugin)
		{
			SceneManager.sceneLoaded += delegate(Scene scene, LoadSceneMode mode)
			{
				//IL_0072: Unknown result type (might be due to invalid IL or missing references)
				//IL_0079: Expected O, but got Unknown
				try
				{
					if (((Scene)(ref scene)).name == "UI")
					{
						TextMeshProUGUI uITextByName = GetUITextByName("BETA");
						if (Object.op_Implicit((Object)(object)uITextByName))
						{
							((TMP_Text)uITextByName).text = "INJECTED BUILD - unstable mods";
						}
					}
					else
					{
						TextMeshProUGUI uITextByName2 = GetUITextByName("TextMeshPro Text");
						if (Object.op_Implicit((Object)(object)uITextByName2))
						{
							BepInPlugin val = (BepInPlugin)Attribute.GetCustomAttribute(plugin, typeof(BepInPlugin));
							if (((TMP_Text)uITextByName2).text.EndsWith("</size>"))
							{
								((TMP_Text)uITextByName2).text = ((TMP_Text)uITextByName2).text + "\n\nMods Currently Installed:\n";
							}
							TextMeshProUGUI val2 = uITextByName2;
							((TMP_Text)val2).text = ((TMP_Text)val2).text + "\nLord Ashes' " + val.Name + " - " + val.Version;
						}
					}
				}
				catch (Exception ex)
				{
					Debug.Log((object)ex);
				}
			};
		}

		public static bool isBoardLoaded()
		{
			return SimpleSingletonBehaviour<CameraController>.HasInstance && SingletonStateMBehaviour<BoardSessionManager, State<BoardSessionManager>>.HasInstance && !BoardSessionManager.IsLoading;
		}

		public static bool StrictKeyCheck(KeyboardShortcut check)
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			if (!((KeyboardShortcut)(ref check)).IsUp())
			{
				return false;
			}
			KeyCode[] array = new KeyCode[6];
			RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			KeyCode[] array2 = (KeyCode[])(object)array;
			foreach (KeyCode val in array2)
			{
				if (Input.GetKey(val) != ((KeyboardShortcut)(ref check)).Modifiers.Contains(val))
				{
					return false;
				}
			}
			return true;
		}

		private static TextMeshProUGUI GetUITextByName(string name)
		{
			TextMeshProUGUI[] array = Object.FindObjectsOfType<TextMeshProUGUI>();
			for (int i = 0; i < array.Length; i++)
			{
				if (((Object)array[i]).name == name)
				{
					return array[i];
				}
			}
			return null;
		}

		public static GameObject GetBaseLoader(CreatureGuid cid)
		{
			//IL_0004: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				CreatureBoardAsset val = null;
				CreaturePresenter.TryGetAsset(cid, ref val);
				if ((Object)(object)val != (Object)null)
				{
					CreatureBase match = null;
					StartWith(val, "_base", ref match);
					Transform match2 = null;
					Traverse(((Component)match).transform, "BaseLoader", ref match2, logSteps: false);
					if ((Object)(object)match2 != (Object)null)
					{
						return ((Component)match2.GetChild(0)).gameObject;
					}
					Debug.Log((object)"Icons Plugin: Found No Base. Found Children Are...");
					Traverse(((Component)match).transform, "{Dummy}", ref match2, logSteps: true);
					return null;
				}
				return null;
			}
			catch
			{
				return null;
			}
		}

		public static GameObject GetAssetLoader(CreatureGuid cid)
		{
			//IL_0004: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				CreatureBoardAsset val = null;
				CreaturePresenter.TryGetAsset(cid, ref val);
				if ((Object)(object)val != (Object)null)
				{
					Transform match = null;
					StartWith(val, "_creatureRoot", ref match);
					Transform match2 = null;
					Traverse(match, "AssetLoader", ref match2, logSteps: false);
					if ((Object)(object)match2 != (Object)null)
					{
						if (match2.childCount > 0)
						{
							return ((Component)match2.GetChild(0)).gameObject;
						}
						return null;
					}
					return null;
				}
				return null;
			}
			catch
			{
				return null;
			}
		}

		public static void StartWith<T>(CreatureBoardAsset asset, string seek, ref T match)
		{
			try
			{
				Type typeFromHandle = typeof(CreatureBoardAsset);
				match = default(T);
				foreach (FieldInfo runtimeField in typeFromHandle.GetRuntimeFields())
				{
					if (runtimeField.Name == seek)
					{
						match = (T)runtimeField.GetValue(asset);
						break;
					}
				}
			}
			catch
			{
				match = default(T);
			}
		}

		public static void Traverse(Transform root, string seek, ref Transform match, bool logSteps)
		{
			if (logSteps)
			{
				Debug.Log((object)("Icons Plugin: Seeking Child Named '" + seek + "'. Found '" + ((Object)root).name + "'"));
			}
			try
			{
				if ((Object)(object)match != (Object)null)
				{
					return;
				}
				if (((Object)root).name == seek)
				{
					match = root;
					return;
				}
				foreach (Transform item in ExtensionMethods.Children(root))
				{
					Traverse(item, seek, ref match, logSteps);
				}
			}
			catch
			{
			}
		}

		public static string GetCreatureName(string nameBlock)
		{
			if (nameBlock == null)
			{
				return "(Unknown)";
			}
			if (!nameBlock.Contains("<size=0>"))
			{
				return nameBlock;
			}
			return nameBlock.Substring(0, nameBlock.IndexOf("<size=0>")).Trim();
		}
	}

	public const string Name = "Icons Plug-In";

	public const string Guid = "org.lordashes.plugins.icons";

	public const string Version = "2.3.1.0";

	private List<CreatureGuid> iconifiedAssets = new List<CreatureGuid>();

	private static BoardState boardReady;

	private List<DatumChange> backlog = new List<DatumChange>();

	private GameObject icon0;

	private GameObject icon1;

	private GameObject icon2;

	private GameObject icon3;

	private GameObject icon4;

	private GameObject icon5;

	private GameObject icon6;

	private GameObject icon7;

	private GameObject icon8;

	private GameObject icon9;

	private GameObject icon10;

	private GameObject icon11;

	private Vector3 offset0;

	private Vector3 offset1;

	private Vector3 offset2;

	private Vector3 offset3;

	private Vector3 offset4;

	private Vector3 offset5;

	private Vector3 offset6;

	private Vector3 offset7;

	private Vector3 offset8;

	private Vector3 offset9;

	private Vector3 offset10;

	private Vector3 offset11;

	private ConfigEntry<KeyboardShortcut> triggerIconsMenu { get; set; }

	private ConfigEntry<bool> performanceHigh { get; set; }

	private ConfigEntry<float> delayIconProcessing { get; set; }

	private ConfigEntry<DiagnostiocLevel> diagnosticLevel { get; set; }

	private ConfigEntry<bool> iconsOverHead { get; set; }

	private void Awake()
	{
		//IL_0093: Unknown result type (might be due to invalid IL or missing references)
		diagnosticLevel = ((BaseUnityPlugin)this).Config.Bind<DiagnostiocLevel>("Setting", "Diagnostic Details In Log", DiagnostiocLevel.low, (ConfigDescription)null);
		Debug.Log((object)("Icons Plugin: " + ((object)this).GetType().AssemblyQualifiedName + " is Active. (Diagnostic Level: " + diagnosticLevel.Value.ToString() + ")"));
		triggerIconsMenu = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("Hotkeys", "Icons Toggle Menu", new KeyboardShortcut((KeyCode)105, (KeyCode[])(object)new KeyCode[1] { (KeyCode)306 }), (ConfigDescription)null);
		performanceHigh = ((BaseUnityPlugin)this).Config.Bind<bool>("Settings", "Use High Performance (uses higher CPU load)", true, (ConfigDescription)null);
		delayIconProcessing = ((BaseUnityPlugin)this).Config.Bind<float>("Setting", "Delay Icon Processing On Startup", 3f, (ConfigDescription)null);
		iconsOverHead = ((BaseUnityPlugin)this).Config.Bind<bool>("Setting", "Show Icons Overhead", false, (ConfigDescription)null);
		RadialSubmenu.EnsureMainMenuItem("org.hollofox.plugins.RadialUIPlugin.Icons", (MenuType)1, "Icons", Image.LoadSprite("Icons/Icons.png", (CacheType)999));
		Regex regex = new Regex("Icons/org.lordashes.plugins.icons/(.+)\\.(P|p)(N|n)(G|g)$");
		string[] array = File.Catalog(false);
		foreach (string iconFile in array)
		{
			if (diagnosticLevel.Value >= DiagnostiocLevel.ultra)
			{
				Debug.Log((object)("Icons Plugin: Comparing '" + iconFile + "' To Regex"));
			}
			if (!regex.IsMatch(iconFile))
			{
				continue;
			}
			if (diagnosticLevel.Value >= DiagnostiocLevel.high)
			{
				Debug.Log((object)("Icons Plugin: Found Icons '" + iconFile + "'"));
			}
			RadialSubmenu.CreateSubMenuItem("org.hollofox.plugins.RadialUIPlugin.Icons", Path.GetFileNameWithoutExtension(iconFile), Image.LoadSprite(iconFile, (CacheType)999), (Action<CreatureGuid, string, MapMenuItem>)delegate(CreatureGuid a, string b, MapMenuItem c)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				ToggleIcon(a, iconFile);
			}, false, (Func<bool>)delegate
			{
				//IL_0036: Unknown result type (might be due to invalid IL or missing references)
				//IL_003b: Unknown result type (might be due to invalid IL or missing references)
				if (diagnosticLevel.Value >= DiagnostiocLevel.medium)
				{
					Debug.Log((object)("Icons Plugin: Adding Icon '" + iconFile + "'"));
				}
				return LocalClient.HasControlOfCreature(new CreatureGuid(RadialUIPlugin.GetLastRadialTargetCreature()));
			});
		}
		AssetDataPlugin.Subscribe("org.lordashes.plugins.icons", (Action<DatumChange>)delegate(DatumChange change)
		{
			HandleRequest((DatumChange[])(object)new DatumChange[1] { change });
		});
		Utility.PostOnMainPage(((object)this).GetType());
	}

	private void Update()
	{
		//IL_006f: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a0: 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_00c6: 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_00ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
		if (Utility.isBoardLoaded())
		{
			if (boardReady == BoardState.boardNotReady)
			{
				boardReady = BoardState.boardIconsBuildDelay;
				if (diagnosticLevel.Value >= DiagnostiocLevel.high)
				{
					Debug.Log((object)"Icons Plugin: Board Loaded Delaying Message Processing To Allow Minis To Load");
				}
				((MonoBehaviour)this).StartCoroutine("DelayIconProcessing", (object)new object[1] { delayIconProcessing.Value });
			}
			if (Utility.StrictKeyCheck(triggerIconsMenu.Value))
			{
				ShowIconMenu(LocalClient.SelectedCreatureId);
			}
			if (performanceHigh.Value)
			{
				foreach (CreatureGuid iconifiedAsset in iconifiedAssets)
				{
					SyncBaseWithIcons(iconifiedAsset);
				}
				return;
			}
			_ = LocalClient.SelectedCreatureId;
			if (true && iconifiedAssets.Contains(LocalClient.SelectedCreatureId))
			{
				SyncBaseWithIcons(LocalClient.SelectedCreatureId);
			}
		}
		else if (boardReady != 0)
		{
			if (diagnosticLevel.Value >= DiagnostiocLevel.high)
			{
				Debug.Log((object)"Icons Plugin: Board Unloaded");
			}
			boardReady = BoardState.boardNotReady;
		}
	}

	public void ShowIconMenu(CreatureGuid cid)
	{
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		//IL_000f: Unknown result type (might be due to invalid IL or missing references)
		//IL_003a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0044: Expected O, but got Unknown
		//IL_0116: Unknown result type (might be due to invalid IL or missing references)
		//IL_011d: Expected O, but got Unknown
		if (diagnosticLevel.Value >= DiagnostiocLevel.medium)
		{
			Debug.Log((object)"Icons Plugin: Showing WinForms Based Menu");
		}
		Form menu = new Form();
		((Control)menu).SuspendLayout();
		menu.FormBorderStyle = (FormBorderStyle)0;
		menu.ControlBox = false;
		menu.MinimizeBox = false;
		menu.MaximizeBox = false;
		menu.ShowInTaskbar = false;
		menu.AllowTransparency = true;
		menu.TransparencyKey = Color.CornflowerBlue;
		((Control)menu).BackColor = Color.CornflowerBlue;
		int num = 0;
		int num2 = 0;
		Regex regex = new Regex("Icons/org.lordashes.plugins.icons/(.+)\\.(P|p)(N|n)(G|g)$");
		string[] array = File.Catalog(false);
		foreach (string text in array)
		{
			if (regex.IsMatch(text))
			{
				num2++;
				string iconFile = text;
				PictureBox val = new PictureBox();
				val.SizeMode = (PictureBoxSizeMode)2;
				val.Load(File.Find(text, (CacheType)999)[0]);
				((Control)val).Top = 5;
				((Control)val).Left = num;
				((Control)val).Click += delegate
				{
					//IL_0023: Unknown result type (might be due to invalid IL or missing references)
					menu.Close();
					ToggleIcon(cid, iconFile);
				};
				((Control)menu).Controls.Add((Control)(object)val);
				num += 70;
			}
		}
		((Control)menu).Width = 70 * num2;
		((Control)menu).Height = 100;
		((Control)menu).ResumeLayout();
		menu.StartPosition = (FormStartPosition)1;
		((Control)menu).Show();
		if (diagnosticLevel.Value >= DiagnostiocLevel.ultra)
		{
			Debug.Log((object)"Menu Focus...");
		}
		((Control)menu).Focus();
	}

	private void ToggleIcon(CreatureGuid cid, string iconFile)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_0012: Unknown result type (might be due to invalid IL or missing references)
		//IL_0019: Unknown result type (might be due to invalid IL or missing references)
		//IL_001f: Unknown result type (might be due to invalid IL or missing references)
		//IL_003d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Unknown result type (might be due to invalid IL or missing references)
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		if (RadialUIPlugin.GetLastRadialTargetCreature() != NGuid.Empty && RadialUIPlugin.GetLastRadialTargetCreature() != default(NGuid))
		{
			((CreatureGuid)(ref cid))..ctor(RadialUIPlugin.GetLastRadialTargetCreature());
		}
		else
		{
			cid = LocalClient.SelectedCreatureId;
		}
		if (diagnosticLevel.Value >= DiagnostiocLevel.medium)
		{
			Debug.Log((object)("Icons Plugin: Toggling Icon (" + iconFile + ") State On Creature " + ((object)(CreatureGuid)(ref cid)).ToString()));
		}
		UpdateIconList(((object)(CreatureGuid)(ref cid)).ToString(), iconFile);
	}

	private void UpdateIconList(string cid, string iconFile)
	{
		iconFile = Path.GetFileNameWithoutExtension(iconFile);
		string text = AssetDataPlugin.ReadInfo(cid, "org.lordashes.plugins.icons");
		if (text == null)
		{
			text = "";
		}
		text = ((!text.Contains("[" + iconFile + "]")) ? (text + "[" + iconFile + "]") : text.Replace("[" + iconFile + "]", ""));
		AssetDataPlugin.SetInfo(cid, "org.lordashes.plugins.icons", text, false);
	}

	public void HandleRequest(DatumChange[] changes)
	{
		//IL_013d: 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)
		if (boardReady == BoardState.boardNotReady)
		{
			if (diagnosticLevel.Value >= DiagnostiocLevel.high)
			{
				Debug.Log((object)"Icons Plugin: Adding Request To Backlog");
			}
			backlog.AddRange(changes);
			return;
		}
		foreach (DatumChange val in changes)
		{
			try
			{
				if (val.key == "org.lordashes.plugins.icons")
				{
					string text = AssetDataPlugin.ReadInfo(val.source, "org.lordashes.plugins.icons");
					if (diagnosticLevel.Value >= DiagnostiocLevel.high)
					{
						Debug.Log((object)("Icons Plugin: Icons for Creature '" + val.source + "' have changed to '" + text + "'"));
					}
					if (text != "")
					{
						text = text.Substring(1);
						text = text.Substring(0, text.Length - 1);
						string[] iconFiles = text.Split(new string[1] { "][" }, StringSplitOptions.RemoveEmptyEntries);
						UpdateActiveIcons(new CreatureGuid(val.source), iconFiles);
					}
					else
					{
						UpdateActiveIcons(new CreatureGuid(val.source), new string[0]);
					}
				}
			}
			catch (Exception)
			{
				if (diagnosticLevel.Value >= DiagnostiocLevel.high)
				{
					Debug.Log((object)"Icons Plugin: Failure to process change. Placing back on backlog.");
				}
				backlog.Add(val);
			}
		}
	}

	private void UpdateActiveIcons(CreatureGuid cid, string[] iconFiles)
	{
		//IL_003a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bb: 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_00ef: Expected O, but got Unknown
		//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_027e: Unknown result type (might be due to invalid IL or missing references)
		if (diagnosticLevel.Value >= DiagnostiocLevel.high)
		{
			Debug.Log((object)("Icons Plugin: Updating Creature '" + ((object)(CreatureGuid)(ref cid)).ToString() + "' Icons"));
		}
		CreatureBoardAsset val = default(CreatureBoardAsset);
		CreaturePresenter.TryGetAsset(cid, ref val);
		iconifiedAssets.Remove(cid);
		for (int i = 0; i < 12; i++)
		{
			Object.Destroy((Object)(object)GameObject.Find("StateIcon" + i + ":" + ((object)(CreatureGuid)(ref cid)).ToString()));
		}
		if (iconFiles.Length == 0)
		{
			return;
		}
		Transform transform = Utility.GetAssetLoader(val.CreatureId).transform;
		iconifiedAssets.Add(cid);
		if (!((Object)(object)val != (Object)null))
		{
			return;
		}
		GameObject[] array = (GameObject[])(object)new GameObject[12];
		for (int j = 0; j < iconFiles.Length; j++)
		{
			array[j] = new GameObject();
			((Object)array[j]).name = "StateIcon" + j + ":" + ((object)(CreatureGuid)(ref cid)).ToString();
			Canvas val2 = array[j].AddComponent<Canvas>();
			Image val3 = array[j].AddComponent<Image>();
			((Component)val3).transform.SetParent(((Component)val2).transform);
			array[j].GetComponent<Image>().sprite = Image.LoadSprite("Icons/org.lordashes.plugins.icons/" + iconFiles[j] + ".PNG", (CacheType)999);
			if (!iconsOverHead.Value)
			{
				((Component)array[j].GetComponent<Image>()).transform.localScale = new Vector3(0.001f, 0.001f, 0.001f);
			}
			else
			{
				((Component)array[j].GetComponent<Image>()).transform.localScale = new Vector3(0.003f, 0.003f, 0.003f);
			}
			array[j].SetActive(true);
			if (!iconsOverHead.Value)
			{
				array[j].transform.SetParent(transform);
			}
			else
			{
				array[j].transform.SetParent(transform, true);
			}
		}
		if (diagnosticLevel.Value >= DiagnostiocLevel.ultra)
		{
			Debug.Log((object)("Icons Plugin: Updating Creature '" + ((object)(CreatureGuid)(ref cid)).ToString() + "' Icons Position"));
		}
		SyncBaseWithIcons(cid);
	}

	private void SyncBaseWithIcons(CreatureGuid cid)
	{
		//IL_0005: Unknown result type (might be due to invalid IL or missing references)
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_067a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bce: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bdd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c0c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c17: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c1c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c41: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c50: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c81: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c8b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c90: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cae: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cbe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cc8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ccd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ceb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cfc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d07: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d0c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d31: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d40: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d57: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d62: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d67: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d8c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f9a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fbd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fc2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fc7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fd7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fe1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fe6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ffa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1004: Unknown result type (might be due to invalid IL or missing references)
		//IL_1014: Unknown result type (might be due to invalid IL or missing references)
		//IL_101e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1023: Unknown result type (might be due to invalid IL or missing references)
		//IL_1037: Unknown result type (might be due to invalid IL or missing references)
		//IL_103c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1041: Unknown result type (might be due to invalid IL or missing references)
		//IL_1051: Unknown result type (might be due to invalid IL or missing references)
		//IL_105b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1060: Unknown result type (might be due to invalid IL or missing references)
		//IL_1074: Unknown result type (might be due to invalid IL or missing references)
		//IL_1079: Unknown result type (might be due to invalid IL or missing references)
		//IL_107e: Unknown result type (might be due to invalid IL or missing references)
		//IL_108f: Unknown result type (might be due to invalid IL or missing references)
		//IL_109a: Unknown result type (might be due to invalid IL or missing references)
		//IL_109f: Unknown result type (might be due to invalid IL or missing references)
		//IL_10c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_10d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_10ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_10f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_10fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_111f: Unknown result type (might be due to invalid IL or missing references)
		//IL_112e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1145: Unknown result type (might be due to invalid IL or missing references)
		//IL_1150: Unknown result type (might be due to invalid IL or missing references)
		//IL_1155: Unknown result type (might be due to invalid IL or missing references)
		//IL_117a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1189: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_11b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_11d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_11e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dcc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dd6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ddb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0def: Unknown result type (might be due to invalid IL or missing references)
		//IL_0df4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0df9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e09: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e13: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e18: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e2c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e31: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e46: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e50: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e55: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e69: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e73: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e84: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e8f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e94: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eb9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ec8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0edf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eef: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f14: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f23: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f45: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f6f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0713: Unknown result type (might be due to invalid IL or missing references)
		//IL_0718: Unknown result type (might be due to invalid IL or missing references)
		//IL_0723: Unknown result type (might be due to invalid IL or missing references)
		//IL_0728: Unknown result type (might be due to invalid IL or missing references)
		//IL_0739: Unknown result type (might be due to invalid IL or missing references)
		//IL_073f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0744: Unknown result type (might be due to invalid IL or missing references)
		//IL_0769: Unknown result type (might be due to invalid IL or missing references)
		//IL_0778: Unknown result type (might be due to invalid IL or missing references)
		//IL_078e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1229: Unknown result type (might be due to invalid IL or missing references)
		//IL_1233: Unknown result type (might be due to invalid IL or missing references)
		//IL_1238: Unknown result type (might be due to invalid IL or missing references)
		//IL_124c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1251: Unknown result type (might be due to invalid IL or missing references)
		//IL_1256: Unknown result type (might be due to invalid IL or missing references)
		//IL_1267: Unknown result type (might be due to invalid IL or missing references)
		//IL_1272: Unknown result type (might be due to invalid IL or missing references)
		//IL_1277: Unknown result type (might be due to invalid IL or missing references)
		//IL_129c: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_12dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_12e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_12eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1304: Unknown result type (might be due to invalid IL or missing references)
		//IL_1309: Unknown result type (might be due to invalid IL or missing references)
		//IL_1319: Unknown result type (might be due to invalid IL or missing references)
		//IL_1323: Unknown result type (might be due to invalid IL or missing references)
		//IL_1328: Unknown result type (might be due to invalid IL or missing references)
		//IL_133c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1341: Unknown result type (might be due to invalid IL or missing references)
		//IL_1346: Unknown result type (might be due to invalid IL or missing references)
		//IL_1357: Unknown result type (might be due to invalid IL or missing references)
		//IL_1362: Unknown result type (might be due to invalid IL or missing references)
		//IL_1367: Unknown result type (might be due to invalid IL or missing references)
		//IL_138c: Unknown result type (might be due to invalid IL or missing references)
		//IL_139b: Unknown result type (might be due to invalid IL or missing references)
		//IL_13b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_13bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_13c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_13e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_13f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_096a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0974: Unknown result type (might be due to invalid IL or missing references)
		//IL_0979: Unknown result type (might be due to invalid IL or missing references)
		//IL_099b: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a0: 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_09b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_09cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a01: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a06: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a20: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a25: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a47: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a4c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a57: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a5c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a6d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a73: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a78: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ac9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0acf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b08: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b1f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b25: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b2a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b4f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b64: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b8c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b9e: 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_07e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_080c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0811: Unknown result type (might be due to invalid IL or missing references)
		//IL_081c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0821: Unknown result type (might be due to invalid IL or missing references)
		//IL_0831: Unknown result type (might be due to invalid IL or missing references)
		//IL_083b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0840: Unknown result type (might be due to invalid IL or missing references)
		//IL_0862: Unknown result type (might be due to invalid IL or missing references)
		//IL_0867: Unknown result type (might be due to invalid IL or missing references)
		//IL_0872: Unknown result type (might be due to invalid IL or missing references)
		//IL_0877: Unknown result type (might be due to invalid IL or missing references)
		//IL_0888: Unknown result type (might be due to invalid IL or missing references)
		//IL_088e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0893: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_0914: Unknown result type (might be due to invalid IL or missing references)
		//IL_0929: Unknown result type (might be due to invalid IL or missing references)
		//IL_093f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0951: Unknown result type (might be due to invalid IL or missing references)
		//IL_15f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_15ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1604: Unknown result type (might be due to invalid IL or missing references)
		//IL_1618: Unknown result type (might be due to invalid IL or missing references)
		//IL_161d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1622: Unknown result type (might be due to invalid IL or missing references)
		//IL_1632: Unknown result type (might be due to invalid IL or missing references)
		//IL_163c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1641: Unknown result type (might be due to invalid IL or missing references)
		//IL_1655: Unknown result type (might be due to invalid IL or missing references)
		//IL_165a: Unknown result type (might be due to invalid IL or missing references)
		//IL_165f: Unknown result type (might be due to invalid IL or missing references)
		//IL_166f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1679: Unknown result type (might be due to invalid IL or missing references)
		//IL_167e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1692: Unknown result type (might be due to invalid IL or missing references)
		//IL_1697: Unknown result type (might be due to invalid IL or missing references)
		//IL_169c: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_16b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_16bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_16cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_16d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_16d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_16f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_16fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_171f: Unknown result type (might be due to invalid IL or missing references)
		//IL_172e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1745: Unknown result type (might be due to invalid IL or missing references)
		//IL_1750: Unknown result type (might be due to invalid IL or missing references)
		//IL_1755: Unknown result type (might be due to invalid IL or missing references)
		//IL_177a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1789: Unknown result type (might be due to invalid IL or missing references)
		//IL_17a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_17ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_17b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_17d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_17e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_17fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1806: Unknown result type (might be due to invalid IL or missing references)
		//IL_180b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1830: Unknown result type (might be due to invalid IL or missing references)
		//IL_183f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1427: Unknown result type (might be due to invalid IL or missing references)
		//IL_1431: Unknown result type (might be due to invalid IL or missing references)
		//IL_1436: Unknown result type (might be due to invalid IL or missing references)
		//IL_144a: Unknown result type (might be due to invalid IL or missing references)
		//IL_144f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1454: Unknown result type (might be due to invalid IL or missing references)
		//IL_1464: Unknown result type (might be due to invalid IL or missing references)
		//IL_146e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1473: Unknown result type (might be due to invalid IL or missing references)
		//IL_1487: Unknown result type (might be due to invalid IL or missing references)
		//IL_148c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1491: Unknown result type (might be due to invalid IL or missing references)
		//IL_14a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_14ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_14b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_14c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_14c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_14ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_14df: Unknown result type (might be due to invalid IL or missing references)
		//IL_14ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_14ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_1514: Unknown result type (might be due to invalid IL or missing references)
		//IL_1523: Unknown result type (might be due to invalid IL or missing references)
		//IL_153a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1545: Unknown result type (might be due to invalid IL or missing references)
		//IL_154a: Unknown result type (might be due to invalid IL or missing references)
		//IL_156f: Unknown result type (might be due to invalid IL or missing references)
		//IL_157e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1595: Unknown result type (might be due to invalid IL or missing references)
		//IL_15a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_15a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_15ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_15d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1884: Unknown result type (might be due to invalid IL or missing references)
		//IL_188e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1893: Unknown result type (might be due to invalid IL or missing references)
		//IL_18a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_18ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_18b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_18c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_18cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_18d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_18f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_1906: Unknown result type (might be due to invalid IL or missing references)
		//IL_1937: Unknown result type (might be due to invalid IL or missing references)
		//IL_1941: Unknown result type (might be due to invalid IL or missing references)
		//IL_1946: Unknown result type (might be due to invalid IL or missing references)
		//IL_195a: Unknown result type (might be due to invalid IL or missing references)
		//IL_195f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1964: Unknown result type (might be due to invalid IL or missing references)
		//IL_1974: Unknown result type (might be due to invalid IL or missing references)
		//IL_197e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1983: Unknown result type (might be due to invalid IL or missing references)
		//IL_1997: Unknown result type (might be due to invalid IL or missing references)
		//IL_199c: Unknown result type (might be due to invalid IL or missing references)
		//IL_19a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_19b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_19bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_19c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_19e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_19f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a0d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a18: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a1d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a42: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a51: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c50: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c5a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c5f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c73: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c78: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c7d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c8d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c97: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c9c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cb0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cb5: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cba: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cca: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cd4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cd9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ced: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cf2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cf7: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d07: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d11: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d16: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d2a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d2f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d34: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d45: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d50: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d55: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d7a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d89: Unknown result type (might be due to invalid IL or missing references)
		//IL_1da0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dab: Unknown result type (might be due to invalid IL or missing references)
		//IL_1db0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dd5: Unknown result type (might be due to invalid IL or missing references)
		//IL_1de4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e06: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e0b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e30: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e3f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e56: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e61: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e66: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e8b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e9a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a82: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a8c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a91: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aa5: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aaa: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aaf: Unknown result type (might be due to invalid IL or missing references)
		//IL_1abf: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ac9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ace: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ae2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ae7: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aec: Unknown result type (might be due to invalid IL or missing references)
		//IL_1afc: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b06: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b0b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b1f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b24: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b29: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b45: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b6f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b95: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ba0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ba5: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bca: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bd9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bf0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c00: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c25: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c34: Unknown result type (might be due to invalid IL or missing references)
		bool flag = false;
		if (cid == default(CreatureGuid))
		{
			return;
		}
		CreatureBoardAsset val = default(CreatureBoardAsset);
		CreaturePresenter.TryGetAsset(cid, ref val);
		if ((Object)(object)val == (Object)null)
		{
			return;
		}
		icon0 = GameObject.Find("StateIcon0:" + ((object)(CreatureGuid)(ref cid)).ToString());
		icon1 = GameObject.Find("StateIcon1:" + ((object)(CreatureGuid)(ref cid)).ToString());
		icon2 = GameObject.Find("StateIcon2:" + ((object)(CreatureGuid)(ref cid)).ToString());
		if (iconsOverHead.Value)
		{
			icon3 = GameObject.Find("StateIcon3:" + ((object)(CreatureGuid)(ref cid)).ToString());
			icon4 = GameObject.Find("StateIcon4:" + ((object)(CreatureGuid)(ref cid)).ToString());
			icon5 = GameObject.Find("StateIcon5:" + ((object)(CreatureGuid)(ref cid)).ToString());
			icon6 = GameObject.Find("StateIcon6:" + ((object)(CreatureGuid)(ref cid)).ToString());
			icon7 = GameObject.Find("StateIcon7:" + ((object)(CreatureGuid)(ref cid)).ToString());
			icon8 = GameObject.Find("StateIcon8:" + ((object)(CreatureGuid)(ref cid)).ToString());
			icon9 = GameObject.Find("StateIcon9:" + ((object)(CreatureGuid)(ref cid)).ToString());
			icon10 = GameObject.Find("StateIcon10:" + ((object)(CreatureGuid)(ref cid)).ToString());
			icon11 = GameObject.Find("StateIcon11:" + ((object)(CreatureGuid)(ref cid)).ToString());
		}
		if ((Object)(object)icon0 == (Object)null && (Object)(object)icon0 == (Object)null && (Object)(object)icon0 == (Object)null)
		{
			return;
		}
		if (val.IsExplicitlyHidden && (Object)(object)icon0 != (Object)null)
		{
			if ((Object)(object)icon0 != (Object)null)
			{
				((Behaviour)icon0.GetComponent<Canvas>()).enabled = false;
			}
			if ((Object)(object)icon1 != (Object)null)
			{
				((Behaviour)icon1.GetComponent<Canvas>()).enabled = false;
			}
			if ((Object)(object)icon2 != (Object)null)
			{
				((Behaviour)icon2.GetComponent<Canvas>()).enabled = false;
			}
			if (iconsOverHead.Value)
			{
				if ((Object)(object)icon3 != (Object)null)
				{
					((Behaviour)icon3.GetComponent<Canvas>()).enabled = false;
				}
				if ((Object)(object)icon4 != (Object)null)
				{
					((Behaviour)icon4.GetComponent<Canvas>()).enabled = false;
				}
				if ((Object)(object)icon5 != (Object)null)
				{
					((Behaviour)icon5.GetComponent<Canvas>()).enabled = false;
				}
				if ((Object)(object)icon6 != (Object)null)
				{
					((Behaviour)icon6.GetComponent<Canvas>()).enabled = false;
				}
				if ((Object)(object)icon7 != (Object)null)
				{
					((Behaviour)icon7.GetComponent<Canvas>()).enabled = false;
				}
				if ((Object)(object)icon8 != (Object)null)
				{
					((Behaviour)icon8.GetComponent<Canvas>()).enabled = false;
				}
				if ((Object)(object)icon9 != (Object)null)
				{
					((Behaviour)icon9.GetComponent<Canvas>()).enabled = false;
				}
				if ((Object)(object)icon10 != (Object)null)
				{
					((Behaviour)icon10.GetComponent<Canvas>()).enabled = false;
				}
				if ((Object)(object)icon11 != (Object)null)
				{
					((Behaviour)icon11.GetComponent<Canvas>()).enabled = false;
				}
			}
		}
		else if (!val.IsExplicitlyHidden && (Object)(object)icon0 != (Object)null)
		{
			if ((Object)(object)icon0 != (Object)null)
			{
				((Behaviour)icon0.GetComponent<Canvas>()).enabled = true;
			}
			if ((Object)(object)icon1 != (Object)null)
			{
				((Behaviour)icon1.GetComponent<Canvas>()).enabled = true;
			}
			if ((Object)(object)icon2 != (Object)null)
			{
				((Behaviour)icon2.GetComponent<Canvas>()).enabled = true;
			}
			if (iconsOverHead.Value)
			{
				if ((Object)(object)icon3 != (Object)null)
				{
					((Behaviour)icon3.GetComponent<Canvas>()).enabled = true;
				}
				if ((Object)(object)icon4 != (Object)null)
				{
					((Behaviour)icon4.GetComponent<Canvas>()).enabled = true;
				}
				if ((Object)(object)icon5 != (Object)null)
				{
					((Behaviour)icon5.GetComponent<Canvas>()).enabled = true;
				}
				if ((Object)(object)icon6 != (Object)null)
				{
					((Behaviour)icon6.GetComponent<Canvas>()).enabled = true;
				}
				if ((Object)(object)icon7 != (Object)null)
				{
					((Behaviour)icon7.GetComponent<Canvas>()).enabled = true;
				}
				if ((Object)(object)icon8 != (Object)null)
				{
					((Behaviour)icon8.GetComponent<Canvas>()).enabled = true;
				}
				if ((Object)(object)icon9 != (Object)null)
				{
					((Behaviour)icon9.GetComponent<Canvas>()).enabled = true;
				}
				if ((Object)(object)icon10 != (Object)null)
				{
					((Behaviour)icon10.GetComponent<Canvas>()).enabled = true;
				}
				if ((Object)(object)icon11 != (Object)null)
				{
					((Behaviour)icon11.GetComponent<Canvas>()).enabled = true;
				}
			}
		}
		if (val.IsExplicitlyHidden)
		{
			return;
		}
		Vector3 localScale = default(Vector3);
		((Vector3)(ref localScale))..ctor((float)Math.Sqrt(((MovableBoardAsset)val).Scale) / 1000f, (float)Math.Sqrt(((MovableBoardAsset)val).Scale) / 1000f, (float)Math.Sqrt(((MovableBoardAsset)val).Scale) / 1000f);
		Transform transform = Utility.GetBaseLoader(val.CreatureId).transform;
		if (!iconsOverHead.Value)
		{
			if ((Object)(object)icon0 != (Object)null && (Object)(object)icon1 == (Object)null && (Object)(object)icon2 == (Object)null)
			{
				offset0 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0f, 0.05f * (float)Math.Sqrt(((MovableBoardAsset)val).Scale), -0.45f) * ((MovableBoardAsset)val).Scale;
				icon0.transform.position = offset0 + transform.position;
				icon0.transform.eulerAngles = new Vector3(20f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
				icon0.transform.localScale = localScale;
			}
			else if ((Object)(object)icon0 != (Object)null && (Object)(object)icon1 != (Object)null && (Object)(object)icon2 == (Object)null)
			{
				offset0 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.125f, 0.05f * (float)Math.Sqrt(((MovableBoardAsset)val).Scale), -0.425f) * ((MovableBoardAsset)val).Scale;
				offset1 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.125f, 0.05f * (float)Math.Sqrt(((MovableBoardAsset)val).Scale), -0.425f) * ((MovableBoardAsset)val).Scale;
				icon0.transform.position = offset0 + transform.position;
				icon0.transform.eulerAngles = new Vector3(20f, ((Component)Camera.main).transform.eulerAngles.y - 20f, 0f);
				icon1.transform.position = offset1 + transform.position;
				icon1.transform.eulerAngles = new Vector3(20f, ((Component)Camera.main).transform.eulerAngles.y + 20f, 0f);
				icon0.transform.localScale = localScale;
				icon1.transform.localScale = localScale;
			}
			else
			{
				offset0 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.125f, 0.05f * (float)Math.Sqrt(((MovableBoardAsset)val).Scale), -0.425f) * ((MovableBoardAsset)val).Scale;
				offset1 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0f, 0.05f * (float)Math.Sqrt(((MovableBoardAsset)val).Scale), -0.45f) * ((MovableBoardAsset)val).Scale;
				offset2 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.125f, 0.05f * (float)Math.Sqrt(((MovableBoardAsset)val).Scale), -0.425f) * ((MovableBoardAsset)val).Scale;
				icon0.transform.position = offset0 + transform.position;
				icon0.transform.eulerAngles = new Vector3(20f, ((Component)Camera.main).transform.eulerAngles.y - 20f, 0f);
				icon1.transform.position = offset1 + transform.position;
				icon1.transform.eulerAngles = new Vector3(20f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
				icon2.transform.position = offset2 + transform.position;
				icon2.transform.eulerAngles = new Vector3(20f, ((Component)Camera.main).transform.eulerAngles.y + 20f, 0f);
				icon0.transform.localScale = localScale;
				icon1.transform.localScale = localScale;
				icon2.transform.localScale = localScale;
			}
			return;
		}
		if ((Object)(object)icon1 == (Object)null)
		{
			offset0 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0f, 0.7f, 0f);
			icon0.transform.position = offset0 + val.HookHead.position;
			icon0.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			return;
		}
		if ((Object)(object)icon2 == (Object)null)
		{
			offset1 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.17f, 0.7f, 0f);
			offset0 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.17f, 0.7f, 0f);
			icon1.transform.position = offset1 + val.HookHead.position;
			icon1.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			icon0.transform.position = offset0 + val.HookHead.position;
			icon0.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			return;
		}
		if ((Object)(object)icon3 == (Object)null)
		{
			offset2 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.34f, 0.7f, 0f);
			offset0 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.34f, 0.7f, 0f);
			offset1 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0f, 0.7f, 0f);
			icon2.transform.position = offset2 + val.HookHead.position;
			icon2.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			icon0.transform.position = offset0 + val.HookHead.position;
			icon0.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			icon1.transform.position = offset1 + val.HookHead.position;
			icon1.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			return;
		}
		offset3 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.51f, 0.7f, 0f);
		offset0 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.51f, 0.7f, 0f);
		offset1 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.17f, 0.7f, 0f);
		offset2 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.17f, 0.7f, 0f);
		icon3.transform.position = offset3 + val.HookHead.position;
		icon3.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
		icon0.transform.position = offset0 + val.HookHead.position;
		icon0.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
		icon1.transform.position = offset1 + val.HookHead.position;
		icon1.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
		icon2.transform.position = offset2 + val.HookHead.position;
		icon2.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
		if ((Object)(object)icon4 == (Object)null)
		{
			return;
		}
		if ((Object)(object)icon5 == (Object)null)
		{
			offset4 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0f, 1.04f, 0f);
			icon4.transform.position = offset4 + val.HookHead.position;
			icon4.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			return;
		}
		if ((Object)(object)icon6 == (Object)null)
		{
			offset5 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.17f, 1.04f, 0f);
			offset4 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.17f, 1.04f, 0f);
			icon5.transform.position = offset5 + val.HookHead.position;
			icon5.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			icon4.transform.position = offset4 + val.HookHead.position;
			icon4.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			return;
		}
		if ((Object)(object)icon7 == (Object)null)
		{
			offset6 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.34f, 1.04f, 0f);
			offset5 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0f, 1.04f, 0f);
			offset4 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.34f, 1.04f, 0f);
			icon6.transform.position = offset6 + val.HookHead.position;
			icon6.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			icon5.transform.position = offset5 + val.HookHead.position;
			icon5.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			icon4.transform.position = offset4 + val.HookHead.position;
			icon4.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			return;
		}
		offset7 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.51f, 1.04f, 0f);
		offset6 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.17f, 1.04f, 0f);
		offset5 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.17f, 1.04f, 0f);
		offset4 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.51f, 1.04f, 0f);
		icon7.transform.position = offset7 + val.HookHead.position;
		icon7.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
		icon6.transform.position = offset6 + val.HookHead.position;
		icon6.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
		icon5.transform.position = offset5 + val.HookHead.position;
		icon5.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
		icon4.transform.position = offset4 + val.HookHead.position;
		icon4.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
		if (!((Object)(object)icon8 == (Object)null))
		{
			if ((Object)(object)icon9 == (Object)null)
			{
				offset8 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0f, 1.38f, 0f);
				icon8.transform.position = offset8 + val.HookHead.position;
				icon8.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			}
			else if ((Object)(object)icon10 == (Object)null)
			{
				offset9 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.17f, 1.38f, 0f);
				offset8 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.17f, 1.38f, 0f);
				icon9.transform.position = offset9 + val.HookHead.position;
				icon9.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
				icon8.transform.position = offset8 + val.HookHead.position;
				icon8.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			}
			else if ((Object)(object)icon11 == (Object)null)
			{
				offset10 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.34f, 1.38f, 0f);
				offset9 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0f, 1.38f, 0f);
				offset8 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.34f, 1.38f, 0f);
				icon10.transform.position = offset10 + val.HookHead.position;
				icon10.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
				icon9.transform.position = offset9 + val.HookHead.position;
				icon9.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
				icon8.transform.position = offset8 + val.HookHead.position;
				icon8.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			}
			else
			{
				offset11 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.51f, 1.38f, 0f);
				offset10 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(0.17f, 1.38f, 0f);
				offset9 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.17f, 1.38f, 0f);
				offset8 = Quaternion.AngleAxis(((Component)Camera.main).transform.eulerAngles.y, Vector3.up) * new Vector3(-0.51f, 1.38f, 0f);
				icon11.transform.position = offset11 + val.HookHead.position;
				icon11.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
				icon10.transform.position = offset10 + val.HookHead.position;
				icon10.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
				icon9.transform.position = offset9 + val.HookHead.position;
				icon9.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
				icon8.transform.position = offset8 + val.HookHead.position;
				icon8.transform.eulerAngles = new Vector3(0f, ((Component)Camera.main).transform.eulerAngles.y, 0f);
			}
		}
	}

	public IEnumerator DelayIconProcessing(object[] inputs)
	{
		int passes = 0;
		while (boardReady == BoardState.boardIconsBuildDelay)
		{
			passes++;
			if (diagnosticLevel.Value >= DiagnostiocLevel.ultra)
			{
				Debug.Log((object)("Icons Plugin: Backlog Pass " + passes));
			}
			yield return (object)new WaitForSeconds((float)inputs[0]);
			DatumChange[] changes = backlog.ToArray();
			backlog.Clear();
			if (diagnosticLevel.Value >= DiagnostiocLevel.high)
			{
				Debug.Log((object)("Icons Plugin: Processing Backlog Of " + changes.Length + " Items"));
			}
			HandleRequest(changes);
			if (backlog.Count == 0)
			{
				if (diagnosticLevel.Value >= DiagnostiocLevel.high)
				{
					Debug.Log((object)"Icons Plugin: Backlog processed.");
				}
				boardReady = BoardState.boardReady;
				break;
			}
			if (passes >= 10)
			{
				backlog.Clear();
				Debug.LogWarning((object)"Icons Plugin: Unable to process backlog. Removing.");
				break;
			}
		}
	}
}