Decompiled source of ExtraRundownCustomisation v0.2.0

ExtraRundownCustomization.dll

Decompiled 2 weeks ago
using System;
using System.CodeDom.Compiler;
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.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using BepInEx;
using BepInEx.Core.Logging.Interpolation;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using CellMenu;
using ExtraRundownCustomization.DataHolders;
using ExtraRundownCustomization.Handlers;
using ExtraRundownCustomization.Patches;
using ExtraRundownCustomization.Utils;
using GTFO.API;
using GameData;
using HarmonyLib;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;
using LocalProgression;
using LocalProgression.Data;
using Localization;
using MTFO.API;
using Microsoft.CodeAnalysis;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("ExtraRundownCustomization")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.1")]
[assembly: AssemblyInformationalVersion("1.0.1+git2e0460a-dirty-master.2e0460a7117c9f0b5788987f3f0982352b03d07a")]
[assembly: AssemblyProduct("ExtraRundownCustomization")]
[assembly: AssemblyTitle("ExtraRundownCustomization")]
[assembly: TargetPlatform("Windows7.0")]
[assembly: SupportedOSPlatform("Windows7.0")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.1.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 ExtraRundownCustomization
{
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("RLC.ExtraRundownCustomization", "ExtraRundownCustomization", "1.0.1")]
	internal class EntryPoint : BasePlugin
	{
		private static Harmony _Harmony;

		public override void Load()
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Expected O, but got Unknown
			_Harmony = new Harmony("ExtraRundownCustomization.Harmony");
			GUI_Patches.Setup(_Harmony);
			JsonHandler.SetupJson();
			((BasePlugin)this).Log.LogInfo((object)"ExtraRundownCustomisation Loaded");
		}
	}
	[GeneratedCode("VersionInfoGenerator", "2.1.3+git35c0c2a-master")]
	[CompilerGenerated]
	internal static class VersionInfo
	{
		public const string RootNamespace = "ExtraRundownCustomization";

		public const string Version = "1.0.1";

		public const string VersionPrerelease = null;

		public const string VersionMetadata = "git2e0460a-dirty-master";

		public const string SemVer = "1.0.1+git2e0460a-dirty-master";

		public const string GitRevShort = "2e0460a-dirty";

		public const string GitRevLong = "2e0460a7117c9f0b5788987f3f0982352b03d07a-dirty";

		public const string GitBranch = "master";

		public const string GitTag = null;

		public const int GitCommitsSinceTag = 0;

		public const bool GitIsDirty = true;
	}
}
namespace ExtraRundownCustomization.Utils
{
	public class JsonHandler
	{
		private static string ERC_CustomPath;

		private static readonly JsonSerializerOptions _setting = new JsonSerializerOptions
		{
			ReadCommentHandling = JsonCommentHandling.Skip,
			IncludeFields = true,
			PropertyNameCaseInsensitive = true,
			WriteIndented = true,
			IgnoreReadOnlyProperties = true,
			Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
		};

		public static void SetupJson()
		{
			if (!MTFOPathAPI.HasCustomPath)
			{
				Log.Error("MTFO Custom path does not exist please ensure one exists before continuing");
				return;
			}
			ERC_CustomPath = Path.Combine(MTFOPathAPI.CustomPath, "ExtraRundownCustomisation");
			if (!Directory.Exists(ERC_CustomPath))
			{
				Directory.CreateDirectory(ERC_CustomPath);
			}
			Log.Info("ERC Custom path loaded");
			MTFOHotReloadAPI.OnHotReload += OnHotReload;
			LoadJson();
		}

		private static void LoadJson(bool isHotReload = false)
		{
			Log.Info("Loading Json Data");
			RundownMenuHandlers.m_activeRundownSelectionData = DeserializeJsonAndCreateIfNotReal(Path.Combine(ERC_CustomPath + "/rundownSelectors.json"), new CustomRundownSelections());
			RundownMenuHandlers.m_activeGlobalRundownLayoutData = DeserializeJsonAndCreateIfNotReal(Path.Combine(ERC_CustomPath + "/rundownLayouts.json"), new RundownLayout());
			RundownMenuHandlers.m_activeMiscRundownData = DeserializeJsonAndCreateIfNotReal(Path.Combine(ERC_CustomPath + "/miscFeatures.json"), new MiscRundownData());
			RundownMenuHandlers.m_activeWatermarkData = DeserializeJsonAndCreateIfNotReal(Path.Combine(ERC_CustomPath + "/watermark.json"), new CustomWatermark());
			Log.Info("Json data Loaded");
			if (isHotReload)
			{
				RundownMenuHandlers.UpdateAll();
			}
		}

		private static T DeserializeJsonAndCreateIfNotReal<T>(string jsonPath, T data)
		{
			if (!File.Exists(jsonPath))
			{
				string contents = JsonSerializer.Serialize(data, _setting);
				File.WriteAllText(jsonPath, contents);
			}
			return JsonSerializer.Deserialize<T>(File.ReadAllText(jsonPath), _setting);
		}

		public static void OnHotReload()
		{
			Log.Info("Reloading json");
			LoadJson(isHotReload: true);
		}
	}
	internal static class Log
	{
		private static readonly ManualLogSource _Logger;

		static Log()
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Expected O, but got Unknown
			_Logger = new ManualLogSource("ExtraRundownCustomization");
			Logger.Sources.Add((ILogSource)(object)_Logger);
		}

		private static string Format(object msg)
		{
			return msg.ToString();
		}

		public static void Info(BepInExInfoLogInterpolatedStringHandler handler)
		{
			_Logger.LogInfo(handler);
		}

		public static void Info(string str)
		{
			_Logger.LogMessage((object)str);
		}

		public static void Info(object data)
		{
			_Logger.LogMessage((object)Format(data));
		}

		public static void Debug(BepInExDebugLogInterpolatedStringHandler handler)
		{
			_Logger.LogDebug(handler);
		}

		public static void Debug(string str)
		{
			_Logger.LogDebug((object)str);
		}

		public static void Debug(object data)
		{
			_Logger.LogDebug((object)Format(data));
		}

		public static void Error(BepInExErrorLogInterpolatedStringHandler handler)
		{
			_Logger.LogError(handler);
		}

		public static void Error(string str)
		{
			_Logger.LogError((object)str);
		}

		public static void Error(object data)
		{
			_Logger.LogError((object)Format(data));
		}

		public static void Fatal(BepInExFatalLogInterpolatedStringHandler handler)
		{
			_Logger.LogFatal(handler);
		}

		public static void Fatal(string str)
		{
			_Logger.LogFatal((object)str);
		}

		public static void Fatal(object data)
		{
			_Logger.LogFatal((object)Format(data));
		}

		public static void Warn(BepInExWarningLogInterpolatedStringHandler handler)
		{
			_Logger.LogWarning(handler);
		}

		public static void Warn(string str)
		{
			_Logger.LogWarning((object)str);
		}

		public static void Warn(object data)
		{
			_Logger.LogWarning((object)Format(data));
		}
	}
}
namespace ExtraRundownCustomization.Patches
{
	public class GUI_Patches
	{
		[HarmonyPatch(typeof(CM_PageRundown_New), "Update")]
		private class Patch_CM_PageRundown_New_Update
		{
			public static void Postfix(CM_PageRundown_New __instance)
			{
				if (__instance.m_currentRundownData == null)
				{
					((TMP_Text)__instance.m_textRundownHeaderTop).text = RundownMenuHandlers.m_activeRundownSelectionData.TextHeaderTop;
				}
				if (((Component)__instance.m_buttonConnect).gameObject.active)
				{
					((Component)__instance.m_textRundownHeaderTop).gameObject.SetActive(true);
				}
				if (((Component)((Component)__instance.m_popupMovement).transform.GetChild(0)).gameObject.active)
				{
					RundownMenuHandlers.m_popupMovementActive = true;
				}
				else
				{
					RundownMenuHandlers.m_popupMovementActive = false;
				}
				RundownMenuHandlers.LazyUpdate();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "ResetRundownSelection")]
		private class Patch_CM_PageRundown_New_ResetRundownSelection
		{
			public static void Postfix()
			{
				RundownMenuHandlers.UpdateRundownSelections();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "UpdateHeaderText")]
		private class Patch_CM_PageRundown_New_UpdateHeaderText
		{
			public static void Postfix()
			{
				RundownMenuHandlers.UpdateRundownSelections();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "SetIconStatus")]
		private class Patch_CM_PageRundown_New_SetIconStatus
		{
			public static void Postfix()
			{
				RundownMenuHandlers.UpdateExpeditionIcons();
			}
		}

		[HarmonyPatch(typeof(CM_ExpeditionIcon_New), "UpdateBorderColor")]
		private class Patch_CM_ExpeditionIcon_New_UpdateBorderColor
		{
			public static void Postfix()
			{
				RundownMenuHandlers.UpdateExpeditionIcons();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "UpdateTierIconsWithProgression")]
		private class Patch_CM_PageRundown_New_UpdateTierIconsWithProgression
		{
			public static void Postfix()
			{
				RundownMenuHandlers.UpdateExpeditionIcons();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "RundownSelectionRevealed")]
		private class Patch_CM_PageRundown_New_RundownSelectionRevealed
		{
			public static void Postfix()
			{
				RundownMenuHandlers.UpdateRundownSelections();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "OnEnable")]
		private class Patch_CM_PageRundown_New_OnEnable
		{
			public static void Postfix()
			{
				RundownMenuHandlers.UpdateRundownSelections();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "ResetElements")]
		private class Patch_CM_PageRundown_New_ResetElements
		{
			public static void Postfix(CM_PageRundown_New __instance)
			{
				RundownMenuHandlers.UpdateRundownSelections();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "TryPlaceRundown")]
		private class Patch_CM_PageRundown_New_TryPlaceRundown
		{
			public static void Postfix(CM_PageRundown_New __instance)
			{
				RundownMenuHandlers.UpdateRundownSelections();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "PlaceRundown")]
		private class Patch_CM_PageRundown_New_PlaceRundown
		{
			public static void Postfix(CM_PageRundown_New __instance)
			{
				RundownMenuHandlers.UpdateRundownSelections();
			}
		}

		[HarmonyPatch(typeof(CM_PageRundown_New), "Setup")]
		private class Patch_CM_PageRundown_New_Setup
		{
			public static void Postfix(CM_PageRundown_New __instance)
			{
				CM_Item selectRundownButton = __instance.m_selectRundownButton;
				selectRundownButton.OnBtnPressCallback += Action<int>.op_Implicit((Action<int>)delegate
				{
					RundownMenuHandlers.UpdateRundownSelections();
				});
				RundownMenuHandlers.m_rundownInstance = __instance;
				RundownMenuHandlers.UpdateRundownSelections();
				RundownMenuHandlers.SetupRundownFeatures();
			}
		}

		[HarmonyPatch(typeof(PUI_Watermark), "UpdateWatermark")]
		private class Patch_PUI_Watermark_UpdateWatermark
		{
			public static void Postfix(PUI_Watermark __instance)
			{
				RundownMenuHandlers.UpdateWatermark(__instance);
				RundownMenuHandlers.m_watermarkInstance = __instance;
			}
		}

		public static void Setup(Harmony harmony)
		{
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_Update));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_ResetRundownSelection));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_UpdateHeaderText));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_SetIconStatus));
			harmony.PatchAll(typeof(Patch_CM_ExpeditionIcon_New_UpdateBorderColor));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_UpdateTierIconsWithProgression));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_RundownSelectionRevealed));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_OnEnable));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_ResetElements));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_TryPlaceRundown));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_PlaceRundown));
			harmony.PatchAll(typeof(Patch_CM_PageRundown_New_Setup));
			harmony.PatchAll(typeof(Patch_PUI_Watermark_UpdateWatermark));
			Log.Info("ERC GUI_Patches Setup");
		}
	}
}
namespace ExtraRundownCustomization.Handlers
{
	public class RundownMenuHandlers
	{
		public static CustomRundownSelections m_activeRundownSelectionData;

		public static RundownLayout m_activeGlobalRundownLayoutData;

		public static MiscRundownData m_activeMiscRundownData;

		public static CustomWatermark m_activeWatermarkData;

		public static CM_PageRundown_New m_rundownInstance;

		public static PUI_Watermark m_watermarkInstance;

		public static bool m_popupMovementActive = false;

		public static List<GameObject> rundownSelectors = new List<GameObject>();

		private static GameObject customTierMarker1;

		private static GameObject customTierMarker2;

		private static GameObject customTierMarker3;

		private static GameObject customTierMarker4;

		private static GameObject customTierMarker5;

		public static void UpdateAll()
		{
			UpdateRundownSelections();
			UpdateWatermark(m_watermarkInstance);
			UpdateMiscFeatures();
			if (m_rundownInstance.m_rundownIsRevealed)
			{
				UpdateExpeditionIcons();
			}
			if (m_activeMiscRundownData.EnableERCDataReload)
			{
				AddReloadButton();
			}
		}

		public static void AddReloadButton()
		{
			if (!((Object)(object)m_rundownInstance == (Object)null))
			{
				m_rundownInstance.m_matchmakeAllButton.SetText("RELOAD ERC DATA");
				m_rundownInstance.m_matchmakeAllButton.OnBtnPressCallback = Action<int>.op_Implicit((Action<int>)delegate
				{
					JsonHandler.OnHotReload();
				});
			}
		}

		public static void UpdateRundownSelections(bool isRepeat = false)
		{
			AddReloadButton();
			if (!m_activeRundownSelectionData.Enabled)
			{
				return;
			}
			CM_PageRundown_New rundownInstance = m_rundownInstance;
			if ((Object)(object)rundownInstance == (Object)null)
			{
				Log.Info("Instance is null");
				return;
			}
			UpdateMiscFeatures();
			if (m_rundownInstance.m_currentRundownData != null)
			{
				((TMP_Text)rundownInstance.m_textRundownHeaderTop).text = "<color=white><size=300%>" + LocalizedText.op_Implicit(m_rundownInstance.m_currentRundownData.StorytellingData.Title);
				return;
			}
			((TMP_Text)rundownInstance.m_textRundownHeader).text = m_activeRundownSelectionData.TextHeader;
			((TMP_Text)rundownInstance.m_textRundownHeaderTop).text = m_activeRundownSelectionData.TextHeaderTop;
			if (rundownInstance.m_rundownIsRevealed)
			{
				((TMP_Text)rundownInstance.m_textRundownHeader).text = LocalizedText.op_Implicit(m_rundownInstance.m_currentRundownData.StorytellingData.Title);
			}
			RundownSelector[] array = new RundownSelector[8] { m_activeRundownSelectionData.Selector_R1, m_activeRundownSelectionData.Selector_R7, m_activeRundownSelectionData.Selector_R2, m_activeRundownSelectionData.Selector_R3, m_activeRundownSelectionData.Selector_R4, m_activeRundownSelectionData.Selector_R5, m_activeRundownSelectionData.Selector_R6, m_activeRundownSelectionData.Selector_R8 };
			for (int i = 0; i < rundownInstance.m_rundownSelections.Count; i++)
			{
				CM_RundownSelection comp2 = rundownInstance.m_rundownSelections[i];
				RundownSelector data2 = array[i];
				UpdateRundownSelector(comp2, data2);
			}
			static void UpdateRundownSelector(CM_RundownSelection comp, RundownSelector data)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0022: Unknown result type (might be due to invalid IL or missing references)
				//IL_0027: 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_0154: Unknown result type (might be due to invalid IL or missing references)
				//IL_0174: Unknown result type (might be due to invalid IL or missing references)
				//IL_0194: Unknown result type (might be due to invalid IL or missing references)
				//IL_0199: Unknown result type (might be due to invalid IL or missing references)
				//IL_01aa: 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_0113: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
				((Component)comp).transform.localPosition = data.pos;
				((Component)comp).transform.localRotation = Quaternion.Euler((Vector3)data.rot);
				((Component)comp).transform.localScale = data.scale;
				if (((Component)comp).transform.GetChildCount() < 3)
				{
					if ((Object)(object)comp.m_altText == (Object)null)
					{
						comp.m_altText = ((Component)((Component)comp).transform.GetChild(0).GetChild(0)).GetComponent<TextMeshPro>();
						((Component)comp.m_altText).gameObject.SetActive(true);
					}
					((TMP_Text)comp.m_altText).text = data.altText;
					comp.m_altText.transform.localPosition = data.altTextPos;
				}
				else
				{
					Transform val = ((Component)comp).transform.Find("FriendsHosting");
					if ((Object)(object)val != (Object)null)
					{
						Transform transform = new GameObject("TextHolder").transform;
						transform.SetParent(((Component)comp).transform, false);
						val.SetParent(transform, true);
						Transform obj = ((Component)comp).transform.Find("RundownText");
						Transform transform2 = new GameObject("TextHolder").transform;
						transform2.SetParent(((Component)comp).transform, false);
						obj.SetParent(transform2, true);
					}
				}
				((TMP_Text)comp.m_rundownText).text = data.name;
				comp.m_rundownText.transform.localPosition = data.namePos;
				comp.m_rundownText.transform.parent.localScale = data.textScale;
				comp.m_rundownText.transform.parent.localRotation = Quaternion.Inverse(((Component)comp).transform.localRotation);
				comp.m_originalColor = data.color;
				if (((CM_Item)comp).m_isHovering)
				{
					((CM_Item)comp).OnHoverIn();
				}
				else
				{
					((CM_Item)comp).OnHoverOut();
				}
				if (data.useFlatVersion)
				{
					comp.RotateGUIXFlat();
				}
				else
				{
					comp.ResetGUIXRotation();
				}
				comp.SetIsUsed(data.enabled);
				for (int j = 0; j < ((Component)comp).transform.GetChildCount(); j++)
				{
					((Component)((Component)comp).transform.GetChild(j)).gameObject.SetActive(data.show);
				}
				((Behaviour)((CM_Item)comp).m_collider).enabled = data.show;
			}
		}

		public static void UpdateExpeditionIcons()
		{
			UpdateMiscFeatures();
			if (!m_activeGlobalRundownLayoutData.Enabled)
			{
				return;
			}
			if ((Object)(object)m_rundownInstance == (Object)null)
			{
				Log.Error("m_rundownInstance is null");
				return;
			}
			((TMP_Text)m_rundownInstance.m_textRundownHeader).text = LocalizedText.op_Implicit(m_rundownInstance.m_currentRundownData.StorytellingData.Title);
			IndividualRundownLayout individualRundownLayout = new IndividualRundownLayout[8] { m_activeGlobalRundownLayoutData.R1, m_activeGlobalRundownLayoutData.R2, m_activeGlobalRundownLayoutData.R3, m_activeGlobalRundownLayoutData.R4, m_activeGlobalRundownLayoutData.R5, m_activeGlobalRundownLayoutData.R6, m_activeGlobalRundownLayoutData.R7, m_activeGlobalRundownLayoutData.R8 }.FirstOrDefault((IndividualRundownLayout rundownData) => rundownData.RundownDatablockID == ((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID);
			int index;
			if (individualRundownLayout != null)
			{
				UpdateRundown(individualRundownLayout);
			}
			static void DoLocalProgressionStuff(CM_ExpeditionIcon_New expIcon)
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
				//IL_0105: Unknown result type (might be due to invalid IL or missing references)
				//IL_0152: Unknown result type (might be due to invalid IL or missing references)
				//IL_0144: Unknown result type (might be due to invalid IL or missing references)
				//IL_009b: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				uint num = LocalProgressionManager.Current.ActiveRundownID();
				ExpeditionProgressionData expeditionLP = LocalProgressionManager.Current.GetExpeditionLP(num, expIcon.Tier, expIcon.ExpIndex);
				Color color = default(Color);
				((Color)(ref color))..ctor(0f, 1f, 82f / 85f, 0.5f);
				if (((Component)expIcon).transform.childCount > 1)
				{
					SpriteRenderer[] array = Il2CppArrayBase<SpriteRenderer>.op_Implicit(((Component)((Component)expIcon).transform.GetChild(1)).GetComponentsInChildren<SpriteRenderer>());
					foreach (SpriteRenderer val in array)
					{
						if (expeditionLP.NoBoosterAllClearCount <= 0)
						{
							val.color = new Color(0f, 0f, 0f, 0f);
						}
						else
						{
							val.color = color;
						}
					}
				}
				else
				{
					GameObject obj = Object.Instantiate<GameObject>(((Component)((Component)expIcon).transform.GetChild(0).GetChild(1)).gameObject, ((Component)expIcon).transform);
					obj.transform.localPosition = new Vector3(-3f, 0f, 0f);
					obj.transform.localScale = new Vector3(0.97f, 0.97f, 0.97f);
					SpriteRenderer[] array = Il2CppArrayBase<SpriteRenderer>.op_Implicit(obj.GetComponentsInChildren<SpriteRenderer>());
					foreach (SpriteRenderer val2 in array)
					{
						if (expeditionLP.NoBoosterAllClearCount <= 0)
						{
							val2.color = new Color(0f, 0f, 0f, 0f);
						}
						else
						{
							val2.color = color;
						}
					}
				}
			}
			void UpdateIcon(CM_ExpeditionIcon_New expIcon, ExpeditionButton data)
			{
				//IL_0052: Unknown result type (might be due to invalid IL or missing references)
				//IL_008b: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
				//IL_0134: 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_0178: 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_0185: Unknown result type (might be due to invalid IL or missing references)
				//IL_018b: Invalid comparison between Unknown and I4
				if ((Object)(object)expIcon == (Object)null)
				{
					Log.Error("expIcon was null in UpdateIcon");
				}
				else
				{
					expIcon.SetShortName("<color=white>" + data.label);
					((Component)expIcon).transform.localPosition = data.buttonPos;
					if (data.changeScale)
					{
						((Component)expIcon).transform.localScale = data.buttonScale;
					}
					expIcon.m_colorUnlocked = data.buttonColor;
					expIcon.m_colorStory = data.buttonColor;
					expIcon.m_colorLocked = data.buttonColor;
					((CM_Item)expIcon).m_spriteAlphaOut = ((CM_Item)expIcon).m_spriteAlphaOver;
					expIcon.SetBorderColor((Color)data.buttonColor);
					((Component)expIcon.m_artifactHeatText).gameObject.SetActive(data.enableHeat);
					((TMP_Text)expIcon.m_artifactHeatText).text = data.heatText;
					expIcon.m_statusText.transform.localPosition = data.statusPos;
					if (data.overrideDecryptText)
					{
						((Component)expIcon.m_decryptErrorText).gameObject.SetActive(true);
						((TMP_Text)expIcon.m_decryptErrorText).text = data.decryptText;
					}
					if ((int)expIcon._Status_k__BackingField == 0 && (int)expIcon.Accessibility == 5)
					{
						expIcon.SetUnlockedByText();
					}
					((Graphic)expIcon.m_statusText).color = new Color(1f, 1f, 1f, 1f);
					index++;
					InteropAPI.ExecuteWhenPluginExists("Inas.LocalProgression", (Action<PluginInfo>)delegate
					{
						DoLocalProgressionStuff(expIcon);
					});
				}
			}
			void UpdateRundown(IndividualRundownLayout data)
			{
				//IL_0253: Unknown result type (might be due to invalid IL or missing references)
				//IL_0271: Unknown result type (might be due to invalid IL or missing references)
				if (data == null)
				{
					Log.Error("Data was null aborting UpdateRundown");
				}
				else if (data.Enabled)
				{
					index = 0;
					if (data.Tier1 != null)
					{
						ExpeditionButton[] tier = data.Tier1;
						foreach (ExpeditionButton data2 in tier)
						{
							if (m_rundownInstance.m_expIconsTier1 == null || m_rundownInstance.m_expIconsTier1.Count <= index)
							{
								break;
							}
							UpdateIcon(m_rundownInstance.m_expIconsTier1[index], data2);
						}
					}
					index = 0;
					if (data.Tier2 != null)
					{
						ExpeditionButton[] tier = data.Tier2;
						foreach (ExpeditionButton data3 in tier)
						{
							if (m_rundownInstance.m_expIconsTier2 == null || m_rundownInstance.m_expIconsTier2.Count <= index)
							{
								break;
							}
							UpdateIcon(m_rundownInstance.m_expIconsTier2[index], data3);
						}
					}
					index = 0;
					if (data.Tier3 != null)
					{
						ExpeditionButton[] tier = data.Tier3;
						foreach (ExpeditionButton data4 in tier)
						{
							if (m_rundownInstance.m_expIconsTier3 == null || m_rundownInstance.m_expIconsTier3.Count <= index)
							{
								break;
							}
							UpdateIcon(m_rundownInstance.m_expIconsTier3[index], data4);
						}
					}
					index = 0;
					if (data.Tier4 != null)
					{
						ExpeditionButton[] tier = data.Tier4;
						foreach (ExpeditionButton data5 in tier)
						{
							if (m_rundownInstance.m_expIconsTier4 == null || m_rundownInstance.m_expIconsTier4.Count <= 0)
							{
								break;
							}
							UpdateIcon(m_rundownInstance.m_expIconsTier4[index], data5);
						}
					}
					index = 0;
					if (data.Tier5 != null)
					{
						ExpeditionButton[] tier = data.Tier5;
						foreach (ExpeditionButton data6 in tier)
						{
							if (m_rundownInstance.m_expIconsTier5 == null || m_rundownInstance.m_expIconsTier5.Count <= 0)
							{
								break;
							}
							UpdateIcon(m_rundownInstance.m_expIconsTier5[index], data6);
						}
					}
					if (((Component)m_rundownInstance.m_guix_Tier2).gameObject.active)
					{
						GameObject gameObject = ((Component)m_rundownInstance.m_guix_Ext).gameObject;
						gameObject.SetActive(data.EnableExtensionPage);
						gameObject.transform.localPosition = data.ExtensionPagePos;
						gameObject.transform.localScale = new Vector3(0.85f, 0.85f, 0.85f);
						((TMP_Text)m_rundownInstance.m_externalExpHeader).text = data.ExtensionPageText;
					}
				}
			}
		}

		public static void UpdateMiscFeatures(bool isRepeat = false)
		{
			//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_054b: Unknown result type (might be due to invalid IL or missing references)
			//IL_03cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0415: Unknown result type (might be due to invalid IL or missing references)
			//IL_0438: Unknown result type (might be due to invalid IL or missing references)
			//IL_045b: Unknown result type (might be due to invalid IL or missing references)
			//IL_066a: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fc: Unknown result type (might be due to invalid IL or missing references)
			if (m_activeMiscRundownData == null)
			{
				Log.Error("Misc feature data was null");
			}
			else if ((Object)(object)m_rundownInstance == (Object)null)
			{
				Log.Error("rundown instance was null");
			}
			else
			{
				if (!m_activeMiscRundownData.Enabled)
				{
					return;
				}
				if (MTFOHotReloadAPI.HotReloadEnabled)
				{
					Transform child = ((Component)m_rundownInstance).transform.GetChild(2).GetChild(3);
					for (int i = 0; i < child.childCount; i++)
					{
						if (((Object)child.GetChild(i)).name == "Button HotReload")
						{
							((Component)child.GetChild(i).GetChild(0)).gameObject.SetActive(true);
							((Behaviour)((Component)child.GetChild(i)).GetComponent<TextMeshPro>()).enabled = true;
							((Behaviour)((Component)child.GetChild(i)).GetComponent<BoxCollider2D>()).enabled = true;
						}
					}
				}
				((Component)((Component)m_rundownInstance.m_buttonVanityItemDrops).transform.GetChild(0)).gameObject.SetActive(m_activeMiscRundownData.EnableVanityPage);
				((Behaviour)((Component)m_rundownInstance.m_buttonVanityItemDrops).GetComponent<BoxCollider2D>()).enabled = m_activeMiscRundownData.EnableVanityPage;
				((Behaviour)((Component)m_rundownInstance.m_buttonVanityItemDrops).GetComponent<TextMeshPro>()).enabled = m_activeMiscRundownData.EnableVanityPage;
				((Component)((Component)m_rundownInstance.m_vanityItemDropsNext).transform.GetChild(0)).gameObject.SetActive(m_activeMiscRundownData.EnableVanityPage);
				((Component)((Component)m_rundownInstance.m_vanityItemDropsNext).transform.GetChild(1)).gameObject.SetActive(m_activeMiscRundownData.EnableVanityPage);
				if (!m_activeMiscRundownData.EnableSectorSummary)
				{
					if (!((Object)(object)m_rundownInstance.m_tierMarkerSectorSummary == (Object)null))
					{
						((Component)m_rundownInstance.m_tierMarkerSectorSummary).transform.localPosition = new Vector3(90000f, 0f, 0f);
					}
				}
				else if (!((Object)(object)m_rundownInstance.m_tierMarkerSectorSummary == (Object)null))
				{
					((Component)m_rundownInstance.m_tierMarkerSectorSummary).transform.localPosition = m_activeMiscRundownData.SectorSummaryPosition;
					((Component)((Component)m_rundownInstance.m_tierMarkerSectorSummary).transform.GetChild(0).GetChild(0)).gameObject.SetActive(false);
				}
				if (m_rundownInstance.m_rundownIsRevealed)
				{
					Enumerator<CM_RundownSelection> enumerator = m_rundownInstance.m_rundownSelections.GetEnumerator();
					while (enumerator.MoveNext())
					{
						((Component)enumerator.Current).gameObject.SetActive(false);
					}
					if (m_activeMiscRundownData.OverrideTierMarkerText)
					{
						if ((Object)(object)customTierMarker1 == (Object)null)
						{
							SetupRundownFeatures();
						}
						customTierMarker1.transform.SetSiblingIndex(m_rundownInstance.m_rundownHolder.childCount - 1);
						customTierMarker2.transform.SetSiblingIndex(m_rundownInstance.m_rundownHolder.childCount - 1);
						customTierMarker3.transform.SetSiblingIndex(m_rundownInstance.m_rundownHolder.childCount - 1);
						customTierMarker4.transform.SetSiblingIndex(m_rundownInstance.m_rundownHolder.childCount - 1);
						customTierMarker5.transform.SetSiblingIndex(m_rundownInstance.m_rundownHolder.childCount - 1);
						CM_RundownTierMarker component = customTierMarker1.GetComponent<CM_RundownTierMarker>();
						CM_RundownTierMarker component2 = customTierMarker2.GetComponent<CM_RundownTierMarker>();
						CM_RundownTierMarker component3 = customTierMarker3.GetComponent<CM_RundownTierMarker>();
						CM_RundownTierMarker component4 = customTierMarker4.GetComponent<CM_RundownTierMarker>();
						CM_RundownTierMarker component5 = customTierMarker5.GetComponent<CM_RundownTierMarker>();
						((TMP_Text)component.m_header).text = m_activeMiscRundownData.Tier1Text;
						((TMP_Text)component2.m_header).text = m_activeMiscRundownData.Tier2Text;
						((TMP_Text)component3.m_header).text = m_activeMiscRundownData.Tier3Text;
						((TMP_Text)component4.m_header).text = m_activeMiscRundownData.Tier4Text;
						((TMP_Text)component5.m_header).text = m_activeMiscRundownData.Tier5Text;
						customTierMarker1.transform.localPosition = new Vector3(0f, -205f, 0f);
						customTierMarker2.transform.localPosition = new Vector3(0f, -435f, 0f);
						customTierMarker3.transform.localPosition = new Vector3(0f, -665f, 0f);
						customTierMarker4.transform.localPosition = new Vector3(0f, -895f, 0f);
						customTierMarker5.transform.localPosition = new Vector3(0f, -1125f, 0f);
						customTierMarker1.SetActive(true);
						customTierMarker2.SetActive(true);
						customTierMarker3.SetActive(true);
						customTierMarker4.SetActive(true);
						customTierMarker5.SetActive(true);
						((Component)m_rundownInstance.m_tierMarker1).gameObject.SetActive(false);
						((Component)m_rundownInstance.m_tierMarker2).gameObject.SetActive(false);
						((Component)m_rundownInstance.m_tierMarker3).gameObject.SetActive(false);
						((Component)m_rundownInstance.m_tierMarker4).gameObject.SetActive(false);
						((Component)m_rundownInstance.m_tierMarker5).gameObject.SetActive(false);
					}
					else
					{
						((Component)m_rundownInstance.m_tierMarker1).gameObject.SetActive(m_activeMiscRundownData.EnableTierMarkers);
						((Graphic)m_rundownInstance.m_tierMarker1.m_header).color = new Color(0.5189f, 0.5189f, 0.5189f, 0.2745f);
						((Component)m_rundownInstance.m_tierMarker2).gameObject.SetActive(m_activeMiscRundownData.EnableTierMarkers);
						((Component)m_rundownInstance.m_tierMarker3).gameObject.SetActive(m_activeMiscRundownData.EnableTierMarkers);
						((Component)m_rundownInstance.m_tierMarker4).gameObject.SetActive(m_activeMiscRundownData.EnableTierMarkers);
						((Component)m_rundownInstance.m_tierMarker5).gameObject.SetActive(m_activeMiscRundownData.EnableTierMarkers);
					}
					if (m_activeMiscRundownData.EnableERCDataReload)
					{
						((Component)m_rundownInstance.m_matchmakeAllButton).gameObject.transform.localPosition = new Vector3(0f, 210f, 0f);
						AddReloadButton();
					}
					((Component)((Component)m_rundownInstance).transform.GetChild(2).GetChild(4).GetChild(18)).gameObject.SetActive(false);
					((Component)m_rundownInstance.m_rundownIntelButton).gameObject.SetActive(m_activeMiscRundownData.EnableIntelButton);
					((Component)m_rundownInstance.m_rundownIntelButton).transform.localPosition = m_activeMiscRundownData.IntelButtonPosition;
				}
				((Component)((Component)m_rundownInstance.m_matchmakeAllButton).transform.GetChild(0)).gameObject.SetActive(m_activeMiscRundownData.EnableMatchmakingButton);
				((Behaviour)((Component)m_rundownInstance.m_matchmakeAllButton).GetComponent<BoxCollider2D>()).enabled = m_activeMiscRundownData.EnableMatchmakingButton;
				((Behaviour)((Component)m_rundownInstance.m_matchmakeAllButton).GetComponent<TextMeshPro>()).enabled = m_activeMiscRundownData.EnableMatchmakingButton;
				if (m_activeMiscRundownData.EnableERCDataReload)
				{
					((Component)((Component)m_rundownInstance.m_matchmakeAllButton).transform.GetChild(0)).gameObject.SetActive(true);
					((Behaviour)((Component)m_rundownInstance.m_matchmakeAllButton).GetComponent<BoxCollider2D>()).enabled = true;
					((Behaviour)((Component)m_rundownInstance.m_matchmakeAllButton).GetComponent<TextMeshPro>()).enabled = true;
					AddReloadButton();
				}
				((Component)((Component)m_rundownInstance.m_discordButton).transform.GetChild(0)).gameObject.SetActive(m_activeMiscRundownData.EnableButtonDiscord);
				((Behaviour)((Component)m_rundownInstance.m_discordButton).GetComponent<BoxCollider2D>()).enabled = m_activeMiscRundownData.EnableButtonDiscord;
				((Behaviour)((Component)m_rundownInstance.m_discordButton).GetComponent<TextMeshPro>()).enabled = m_activeMiscRundownData.EnableButtonDiscord;
				((Component)((Component)m_rundownInstance.m_creditsButton).transform.GetChild(0)).gameObject.SetActive(m_activeMiscRundownData.EnableButtonCredits);
				((Behaviour)((Component)m_rundownInstance.m_creditsButton).GetComponent<BoxCollider2D>()).enabled = m_activeMiscRundownData.EnableButtonCredits;
				((Behaviour)((Component)m_rundownInstance.m_creditsButton).GetComponent<TextMeshPro>()).enabled = m_activeMiscRundownData.EnableButtonCredits;
				((Component)((Component)m_rundownInstance.m_gifButton).transform.GetChild(0)).gameObject.SetActive(m_activeMiscRundownData.EnableDOWGif);
				((Component)((Component)m_rundownInstance.m_tutorialButton).transform.GetChild(0)).gameObject.SetActive(m_activeMiscRundownData.EnableTutorialButton);
				((Behaviour)((Component)m_rundownInstance.m_tutorialButton).GetComponent<BoxCollider2D>()).enabled = m_activeMiscRundownData.EnableTutorialButton;
			}
		}

		public static void UpdateWatermark(PUI_Watermark __instance)
		{
			if (m_activeWatermarkData.Enabled)
			{
				((TMP_Text)__instance.m_watermarkText).text = m_activeWatermarkData.Text;
			}
		}

		public static void SetupRundownFeatures()
		{
			customTierMarker1 = Object.Instantiate<GameObject>(m_rundownInstance.m_tierMarkerPrefab, m_rundownInstance.m_rundownHolder);
			customTierMarker2 = Object.Instantiate<GameObject>(m_rundownInstance.m_tierMarkerPrefab, m_rundownInstance.m_rundownHolder);
			customTierMarker3 = Object.Instantiate<GameObject>(m_rundownInstance.m_tierMarkerPrefab, m_rundownInstance.m_rundownHolder);
			customTierMarker4 = Object.Instantiate<GameObject>(m_rundownInstance.m_tierMarkerPrefab, m_rundownInstance.m_rundownHolder);
			customTierMarker5 = Object.Instantiate<GameObject>(m_rundownInstance.m_tierMarkerPrefab, m_rundownInstance.m_rundownHolder);
			customTierMarker1.SetActive(false);
			customTierMarker2.SetActive(false);
			customTierMarker3.SetActive(false);
			customTierMarker4.SetActive(false);
			customTierMarker5.SetActive(false);
		}

		public static void LazyUpdate()
		{
			if (m_popupMovementActive)
			{
				Enumerator<CM_ExpeditionIcon_New> enumerator = m_rundownInstance.m_expIconsAll.GetEnumerator();
				while (enumerator.MoveNext())
				{
					((Behaviour)((CM_Item)enumerator.Current).m_collider).enabled = false;
				}
			}
			else
			{
				Enumerator<CM_ExpeditionIcon_New> enumerator = m_rundownInstance.m_expIconsAll.GetEnumerator();
				while (enumerator.MoveNext())
				{
					((Behaviour)((CM_Item)enumerator.Current).m_collider).enabled = true;
				}
			}
		}
	}
}
namespace ExtraRundownCustomization.DataHolders
{
	[Serializable]
	public class Color
	{
		public float r { get; set; }

		public float g { get; set; }

		public float b { get; set; }

		public float a { get; set; }

		public static implicit operator Color(Color c)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			Color result = default(Color);
			result.r = c.r;
			result.g = c.g;
			result.b = c.b;
			result.a = c.a;
			return result;
		}
	}
	[Serializable]
	public class CustomRundownSelections
	{
		public bool Enabled { get; set; }

		public string TextHeader { get; set; } = "SELECT RUNDOWN";


		public string TextHeaderTop { get; set; } = "<color=red>CLCTR MULTITHREAD PROCESSOR ACTIVATED";


		public RundownSelector Selector_R1 { get; set; } = new RundownSelector
		{
			name = "R1",
			altText = "<color=orange>ALT://",
			pos = new Vector3
			{
				x = -476f,
				y = 45f,
				z = 0f
			},
			rot = new Vector3
			{
				x = 0f,
				y = 0f,
				z = 0f
			},
			scale = new Vector3
			{
				x = 1f,
				y = 1f,
				z = 1f
			},
			namePos = new Vector3
			{
				x = 0f,
				y = 39f,
				z = 0f
			},
			altTextPos = new Vector3
			{
				x = -46f,
				y = 34.8f,
				z = 0f
			}
		};


		public RundownSelector Selector_R2 { get; set; } = new RundownSelector
		{
			name = "R2",
			altText = "<color=orange>ALT://",
			pos = new Vector3
			{
				x = -241f,
				y = -78f,
				z = 0f
			},
			rot = new Vector3
			{
				x = 0f,
				y = 0f,
				z = 0f
			},
			scale = new Vector3
			{
				x = 1f,
				y = 1f,
				z = 1f
			},
			namePos = new Vector3
			{
				x = 0f,
				y = 39f,
				z = 0f
			},
			altTextPos = new Vector3
			{
				x = -46f,
				y = 34.8f,
				z = 0f
			}
		};


		public RundownSelector Selector_R3 { get; set; } = new RundownSelector
		{
			name = "R3",
			altText = "<color=orange>ALT://",
			pos = new Vector3
			{
				x = -346f,
				y = 179.6f,
				z = 13.956f
			},
			rot = new Vector3
			{
				x = 0f,
				y = 0f,
				z = 0f
			},
			scale = new Vector3
			{
				x = 1f,
				y = 1f,
				z = 1f
			},
			namePos = new Vector3
			{
				x = 0f,
				y = 39f,
				z = 0f
			},
			altTextPos = new Vector3
			{
				x = -46f,
				y = 34.8f,
				z = 0f
			}
		};


		public RundownSelector Selector_R4 { get; set; } = new RundownSelector
		{
			name = "R4",
			altText = "<color=orange>ALT://",
			pos = new Vector3
			{
				x = -109f,
				y = 226f,
				z = 0f
			},
			rot = new Vector3
			{
				x = 0f,
				y = 0f,
				z = 0f
			},
			scale = new Vector3
			{
				x = 1f,
				y = 1f,
				z = 1f
			},
			namePos = new Vector3
			{
				x = 0f,
				y = 39f,
				z = 0f
			},
			altTextPos = new Vector3
			{
				x = -46f,
				y = 34.8f,
				z = 0f
			}
		};


		public RundownSelector Selector_R5 { get; set; } = new RundownSelector
		{
			name = "R5",
			altText = "<color=orange>ALT://",
			pos = new Vector3
			{
				x = 55f,
				y = -16f,
				z = 0f
			},
			rot = new Vector3
			{
				x = 0f,
				y = 0f,
				z = 0f
			},
			scale = new Vector3
			{
				x = 1f,
				y = 1f,
				z = 1f
			},
			namePos = new Vector3
			{
				x = 0f,
				y = 39f,
				z = 0f
			},
			altTextPos = new Vector3
			{
				x = -46f,
				y = 34.8f,
				z = 0f
			}
		};


		public RundownSelector Selector_R6 { get; set; } = new RundownSelector
		{
			name = "R6",
			altText = "<color=orange>ALT://",
			pos = new Vector3
			{
				x = 240f,
				y = 235f,
				z = 0f
			},
			rot = new Vector3
			{
				x = 0f,
				y = 0f,
				z = 0f
			},
			scale = new Vector3
			{
				x = 1f,
				y = 1f,
				z = 1f
			},
			namePos = new Vector3
			{
				x = 0f,
				y = 39f,
				z = 0f
			},
			altTextPos = new Vector3
			{
				x = -46f,
				y = 34.8f,
				z = 0f
			}
		};


		public RundownSelector Selector_R7 { get; set; } = new RundownSelector
		{
			name = "R7",
			altText = "",
			pos = new Vector3
			{
				x = 317f,
				y = -104f,
				z = 0f
			},
			rot = new Vector3
			{
				x = 0f,
				y = 0f,
				z = 0f
			},
			scale = new Vector3
			{
				x = 1f,
				y = 1f,
				z = 1f
			},
			namePos = new Vector3
			{
				x = 0f,
				y = 39f,
				z = 0f
			},
			altTextPos = new Vector3
			{
				x = -46f,
				y = 34.8f,
				z = 0f
			}
		};


		public RundownSelector_R8 Selector_R8 { get; set; } = new RundownSelector_R8
		{
			name = "R8",
			pos = new Vector3
			{
				x = 550f,
				y = 150f,
				z = 0f
			},
			rot = new Vector3
			{
				x = 0f,
				y = 0f,
				z = 0f
			},
			scale = new Vector3
			{
				x = 1f,
				y = 1f,
				z = 1f
			},
			namePos = new Vector3
			{
				x = 0f,
				y = 134f,
				z = 0f
			}
		};

	}
	public class RundownSelector
	{
		public bool show { get; set; } = true;


		public bool enabled { get; set; } = true;


		public string name { get; set; }

		public virtual string altText { get; set; }

		public bool useFlatVersion { get; set; }

		public Vector3 pos { get; set; }

		public Vector3 rot { get; set; }

		public Vector3 scale { get; set; }

		public Vector3 namePos { get; set; }

		public virtual Vector3 altTextPos { get; set; }

		public Vector3 textScale { get; set; } = new Vector3
		{
			x = 1f,
			y = 1f,
			z = 1f
		};


		public Color color { get; set; } = new Color
		{
			r = 1f,
			g = 1f,
			b = 1f,
			a = 0.7843f
		};

	}
	public class RundownSelector_R8 : RundownSelector
	{
		[JsonIgnore]
		public override string altText { get; set; }

		[JsonIgnore]
		public override Vector3 altTextPos { get; set; }
	}
	[Serializable]
	public class CustomWatermark
	{
		public bool Enabled { get; set; }

		public string Text { get; set; } = "<color=red>MODDED</color> <color=orange>4.6.2+git44e73d7-dirty-main</color>";

	}
	public class MiscRundownData
	{
		public bool Enabled { get; set; }

		public bool EnableERCDataReload { get; set; }

		public bool EnableTutorialButton { get; set; } = true;


		public bool EnableMatchmakingButton { get; set; } = true;


		public bool EnableButtonAboutTheRundown { get; set; } = true;


		public bool EnableButtonDiscord { get; set; } = true;


		public bool EnableButtonCredits { get; set; } = true;


		public bool EnableDOWGif { get; set; }

		public bool EnableVanityPage { get; set; } = true;


		public bool EnableIntelButton { get; set; } = true;


		public Vector3 IntelButtonPosition { get; set; } = new Vector3
		{
			x = 0f,
			y = 20f,
			z = -70f
		};


		public bool EnableSectorSummary { get; set; } = true;


		public Vector3 SectorSummaryPosition { get; set; } = new Vector3
		{
			x = 0f,
			y = 0f,
			z = 0f
		};


		public bool EnableTierMarkers { get; set; }

		public bool OverrideTierMarkerText { get; set; }

		public string Tier1Text { get; set; } = "Tier A";


		public string Tier2Text { get; set; } = "Tier B";


		public string Tier3Text { get; set; } = "Tier C";


		public string Tier4Text { get; set; } = "Tier D";


		public string Tier5Text { get; set; } = "Tier E";

	}
	[Serializable]
	public class RundownLayout
	{
		public bool Enabled { get; set; }

		public IndividualRundownLayout R1 { get; set; } = new IndividualRundownLayout
		{
			Enabled = false,
			RundownDatablockID = 32u,
			Tier1 = new ExpeditionButton[1]
			{
				new ExpeditionButton
				{
					label = "R1A1",
					buttonPos = new Vector3
					{
						x = -75f,
						y = 0f,
						z = 0f
					},
					buttonScale = new Vector3
					{
						x = 10f,
						y = 10f,
						z = 10f
					},
					buttonColor = new Color
					{
						r = 1f,
						g = 1f,
						b = 1f,
						a = 1f
					},
					enableHeat = true,
					heatText = "ARTIFACT HEAT: <color=orange>100%",
					statusPos = new Vector3
					{
						x = -156.378f,
						y = -67.81f,
						z = -1.36f
					},
					overrideDecryptText = false,
					decryptText = "://err: UNABLE TO DECRYPT; QP_%: 66,1\u202c"
				}
			},
			Tier2 = new ExpeditionButton[2]
			{
				new ExpeditionButton
				{
					label = "R1B1",
					buttonPos = new Vector3
					{
						x = -412.5f,
						y = 0f,
						z = 0f
					},
					buttonScale = new Vector3
					{
						x = 1.818f,
						y = 1.818f,
						z = 1.818f
					},
					buttonColor = new Color
					{
						r = 1f,
						g = 1f,
						b = 1f,
						a = 1f
					},
					enableHeat = true,
					heatText = "ARTIFACT HEAT: <color=orange>100%",
					statusPos = new Vector3
					{
						x = -156.378f,
						y = -67.81f,
						z = -1.36f
					},
					overrideDecryptText = false,
					decryptText = "://err: UNABLE TO DECRYPT; QP_%: 66,1\u202c"
				},
				new ExpeditionButton
				{
					label = "R1B2",
					buttonPos = new Vector3
					{
						x = 412.5f,
						y = 0f,
						z = 0f
					},
					buttonScale = new Vector3
					{
						x = 1.818f,
						y = 1.818f,
						z = 1.818f
					},
					buttonColor = new Color
					{
						r = 1f,
						g = 1f,
						b = 1f,
						a = 1f
					},
					enableHeat = true,
					heatText = "ARTIFACT HEAT: <color=orange>100%",
					statusPos = new Vector3
					{
						x = -156.378f,
						y = -67.81f,
						z = -1.36f
					},
					overrideDecryptText = false,
					decryptText = "://err: UNABLE TO DECRYPT; QP_%: 66,1\u202c"
				}
			},
			Tier3 = new ExpeditionButton[2]
			{
				new ExpeditionButton
				{
					label = "R1C1",
					buttonPos = new Vector3
					{
						x = -487.5f,
						y = 0f,
						z = 0f
					},
					buttonScale = new Vector3
					{
						x = 1.5385f,
						y = 1.5385f,
						z = 1.5385f
					},
					buttonColor = new Color
					{
						r = 1f,
						g = 1f,
						b = 1f,
						a = 1f
					},
					enableHeat = true,
					heatText = "ARTIFACT HEAT: <color=orange>100%",
					statusPos = new Vector3
					{
						x = -156.378f,
						y = -67.81f,
						z = -1.36f
					},
					overrideDecryptText = false,
					decryptText = "://err: UNABLE TO DECRYPT; QP_%: 66,1\u202c"
				},
				new ExpeditionButton
				{
					label = "R1C2",
					buttonPos = new Vector3
					{
						x = 487.5f,
						y = 0f,
						z = 0f
					},
					buttonScale = new Vector3
					{
						x = 1.5385f,
						y = 1.5385f,
						z = 1.5385f
					},
					buttonColor = new Color
					{
						r = 1f,
						g = 1f,
						b = 1f,
						a = 1f
					},
					enableHeat = true,
					heatText = "ARTIFACT HEAT: <color=orange>100%",
					statusPos = new Vector3
					{
						x = -156.378f,
						y = -67.81f,
						z = -1.36f
					},
					overrideDecryptText = false,
					decryptText = "://err: UNABLE TO DECRYPT; QP_%: 66,1\u202c"
				}
			},
			Tier4 = new ExpeditionButton[1]
			{
				new ExpeditionButton
				{
					label = "R1D1",
					buttonPos = new Vector3
					{
						x = -75f,
						y = 0f,
						z = 0f
					},
					buttonScale = new Vector3
					{
						x = 10f,
						y = 10f,
						z = 10f
					},
					buttonColor = new Color
					{
						r = 1f,
						g = 1f,
						b = 1f,
						a = 1f
					},
					enableHeat = true,
					heatText = "ARTIFACT HEAT: <color=orange>100%",
					statusPos = new Vector3
					{
						x = -156.378f,
						y = -67.81f,
						z = -1.36f
					},
					overrideDecryptText = false,
					decryptText = "://err: UNABLE TO DECRYPT; QP_%: 66,1\u202c"
				}
			},
			Tier5 = Array.Empty<ExpeditionButton>()
		};


		public IndividualRundownLayout R2 { get; set; } = new IndividualRundownLayout
		{
			Enabled = false,
			RundownDatablockID = 33u,
			Tier1 = Array.Empty<ExpeditionButton>(),
			Tier2 = Array.Empty<ExpeditionButton>(),
			Tier3 = Array.Empty<ExpeditionButton>(),
			Tier4 = Array.Empty<ExpeditionButton>(),
			Tier5 = Array.Empty<ExpeditionButton>()
		};


		public IndividualRundownLayout R3 { get; set; } = new IndividualRundownLayout
		{
			Enabled = false,
			RundownDatablockID = 34u,
			Tier1 = Array.Empty<ExpeditionButton>(),
			Tier2 = Array.Empty<ExpeditionButton>(),
			Tier3 = Array.Empty<ExpeditionButton>(),
			Tier4 = Array.Empty<ExpeditionButton>(),
			Tier5 = Array.Empty<ExpeditionButton>()
		};


		public IndividualRundownLayout R4 { get; set; } = new IndividualRundownLayout
		{
			Enabled = false,
			RundownDatablockID = 37u,
			Tier1 = Array.Empty<ExpeditionButton>(),
			Tier2 = Array.Empty<ExpeditionButton>(),
			Tier3 = Array.Empty<ExpeditionButton>(),
			Tier4 = Array.Empty<ExpeditionButton>(),
			Tier5 = Array.Empty<ExpeditionButton>()
		};


		public IndividualRundownLayout R5 { get; set; } = new IndividualRundownLayout
		{
			Enabled = false,
			RundownDatablockID = 38u,
			Tier1 = Array.Empty<ExpeditionButton>(),
			Tier2 = Array.Empty<ExpeditionButton>(),
			Tier3 = Array.Empty<ExpeditionButton>(),
			Tier4 = Array.Empty<ExpeditionButton>(),
			Tier5 = Array.Empty<ExpeditionButton>()
		};


		public IndividualRundownLayout R6 { get; set; } = new IndividualRundownLayout
		{
			Enabled = false,
			RundownDatablockID = 41u,
			Tier1 = Array.Empty<ExpeditionButton>(),
			Tier2 = Array.Empty<ExpeditionButton>(),
			Tier3 = Array.Empty<ExpeditionButton>(),
			Tier4 = Array.Empty<ExpeditionButton>(),
			Tier5 = Array.Empty<ExpeditionButton>()
		};


		public IndividualRundownLayout R7 { get; set; } = new IndividualRundownLayout
		{
			Enabled = false,
			RundownDatablockID = 31u,
			Tier1 = Array.Empty<ExpeditionButton>(),
			Tier2 = Array.Empty<ExpeditionButton>(),
			Tier3 = Array.Empty<ExpeditionButton>(),
			Tier4 = Array.Empty<ExpeditionButton>(),
			Tier5 = Array.Empty<ExpeditionButton>()
		};


		public IndividualRundownLayout R8 { get; set; } = new IndividualRundownLayout
		{
			Enabled = false,
			RundownDatablockID = 35u,
			Tier1 = Array.Empty<ExpeditionButton>(),
			Tier2 = Array.Empty<ExpeditionButton>(),
			Tier3 = Array.Empty<ExpeditionButton>(),
			Tier4 = Array.Empty<ExpeditionButton>(),
			Tier5 = Array.Empty<ExpeditionButton>()
		};

	}
	[Serializable]
	public class IndividualRundownLayout
	{
		public bool Enabled { get; set; }

		public uint RundownDatablockID { get; set; }

		public ExpeditionButton[] Tier1 { get; set; }

		public ExpeditionButton[] Tier2 { get; set; }

		public ExpeditionButton[] Tier3 { get; set; }

		public ExpeditionButton[] Tier4 { get; set; }

		public ExpeditionButton[] Tier5 { get; set; }

		public bool EnableExtensionPage { get; set; }

		public Vector3 ExtensionPagePos { get; set; } = new Vector3
		{
			x = 0f,
			y = -459f,
			z = 0f
		};


		public string ExtensionPageText { get; set; } = "<color=orange>://EXT";

	}
	[Serializable]
	public class ExpeditionButton
	{
		public string label { get; set; }

		public Vector3 buttonPos { get; set; } = new Vector3();


		public bool changeScale { get; set; }

		public Vector3 buttonScale { get; set; } = new Vector3();


		public Color buttonColor { get; set; } = new Color
		{
			r = 1f,
			g = 1f,
			b = 1f,
			a = 1f
		};


		public bool enableHeat { get; set; } = true;


		public string heatText { get; set; } = "ARTIFACT HEAT <color=orange>100%";


		public Vector3 statusPos { get; set; } = new Vector3
		{
			x = -156.378f,
			y = -67.81f,
			z = -1.36f
		};


		public bool overrideDecryptText { get; set; }

		public string decryptText { get; set; }
	}
	[Serializable]
	public class Vector3
	{
		public float x { get; set; }

		public float y { get; set; }

		public float z { get; set; }

		public static implicit operator Vector3(Vector3 v)
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			return new Vector3(v.x, v.y, v.z);
		}
	}
}