using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
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 BepInEx;
using BepInEx.Bootstrap;
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 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.0")]
[assembly: AssemblyInformationalVersion("1.0.0+git5536475-dirty-master.5536475f3b8d1f2c33450c48e6dfc784bc201f53")]
[assembly: AssemblyProduct("ExtraRundownCustomization")]
[assembly: AssemblyTitle("ExtraRundownCustomization")]
[assembly: TargetPlatform("Windows7.0")]
[assembly: SupportedOSPlatform("Windows7.0")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace ExtraRundownCustomization
{
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("RLC.ExtraRundownCustomization", "ExtraRundownCustomization", "1.0.0")]
internal class EntryPoint : BasePlugin
{
public override void Load()
{
GUI_Patches.Setup();
JsonHandler.SetupJson();
string key = "Inas.LocalProgression";
if (((BaseChainloader<BasePlugin>)(object)IL2CPPChainloader.Instance).Plugins.TryGetValue(key, out var _))
{
((BasePlugin)this).Log.LogInfo((object)"LocalProgression detected");
RundownMenuHandlers.m_hasLocalProg = true;
}
((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.0";
public const string VersionPrerelease = null;
public const string VersionMetadata = "git5536475-dirty-master";
public const string SemVer = "1.0.0+git5536475-dirty-master";
public const string GitRevShort = "5536475-dirty";
public const string GitRevLong = "5536475f3b8d1f2c33450c48e6dfc784bc201f53-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;
}
}
}
[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.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_Update), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_ResetRundownSelection), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_UpdateHeaderText), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_SetIconStatus), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_ExpeditionIcon_New_UpdateBorderColor), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_UpdateTierIconsWithProgression), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_RundownSelectionRevealed), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_OnEnable), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_ResetElements), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_TryPlaceRundown), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_PlaceRundown), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_CM_PageRundown_New_Setup), (string)null);
Harmony.CreateAndPatchAll(typeof(Patch_PUI_Watermark_UpdateWatermark), (string)null);
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_hasLocalProg = 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)
{
//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0349: Unknown result type (might be due to invalid IL or missing references)
//IL_034e: Unknown result type (might be due to invalid IL or missing references)
//IL_039a: Unknown result type (might be due to invalid IL or missing references)
//IL_043b: Unknown result type (might be due to invalid IL or missing references)
//IL_0487: Unknown result type (might be due to invalid IL or missing references)
//IL_04e3: Unknown result type (might be due to invalid IL or missing references)
//IL_052f: Unknown result type (might be due to invalid IL or missing references)
//IL_0534: Unknown result type (might be due to invalid IL or missing references)
//IL_0580: Unknown result type (might be due to invalid IL or missing references)
//IL_05f0: Unknown result type (might be due to invalid IL or missing references)
AddReloadButton();
if (!m_activeRundownSelectionData.Enabled)
{
Log.Info("Rundown Selection data is not enabled");
return;
}
CM_PageRundown_New rundownInstance = m_rundownInstance;
if ((Object)(object)rundownInstance == (Object)null)
{
Log.Info("Instance is null");
return;
}
UpdateMiscFeatures();
rundownSelectors.Clear();
for (int i = 0; i < 8; i++)
{
rundownSelectors.Add(((Component)rundownInstance.m_rundownHolder.GetChild(16).GetChild(i)).gameObject);
}
if (m_rundownInstance.m_currentRundownData != null)
{
((Component)m_rundownInstance.m_textRundownHeaderTop).gameObject.SetActive(true);
((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);
}
foreach (GameObject rundownSelector in rundownSelectors)
{
switch (((Object)rundownSelector).name)
{
case "Rundown_Surface_SelectionALT_R1":
UpdateRundownSelector(rundownSelector, m_activeRundownSelectionData.Selector_R1);
break;
case "Rundown_Surface_SelectionALT_R2":
UpdateRundownSelector(rundownSelector, m_activeRundownSelectionData.Selector_R2);
break;
case "Rundown_Surface_SelectionALT_R3":
UpdateRundownSelector(rundownSelector, m_activeRundownSelectionData.Selector_R3);
break;
case "Rundown_Surface_SelectionALT_R4":
UpdateRundownSelector(rundownSelector, m_activeRundownSelectionData.Selector_R4);
break;
case "Rundown_Surface_SelectionALT_R5":
UpdateRundownSelector(rundownSelector, m_activeRundownSelectionData.Selector_R5);
break;
case "Rundown_Surface_SelectionALT_R6":
UpdateRundownSelector(rundownSelector, m_activeRundownSelectionData.Selector_R6);
break;
case "Rundown_Surface_SelectionALT_R7":
{
rundownSelector.transform.localPosition = new Vector3(m_activeRundownSelectionData.Selector_R7.pos.x, m_activeRundownSelectionData.Selector_R7.pos.y, m_activeRundownSelectionData.Selector_R7.pos.z);
rundownSelector.transform.localRotation = Quaternion.Euler(new Vector3(m_activeRundownSelectionData.Selector_R7.rot.x, m_activeRundownSelectionData.Selector_R7.rot.y, m_activeRundownSelectionData.Selector_R7.rot.z));
rundownSelector.transform.localScale = new Vector3(m_activeRundownSelectionData.Selector_R7.scale.x, m_activeRundownSelectionData.Selector_R7.scale.y, m_activeRundownSelectionData.Selector_R7.scale.z);
CM_RundownSelection component2 = rundownSelector.GetComponent<CM_RundownSelection>();
TextMeshPro component3 = ((Component)rundownSelector.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshPro>();
((TMP_Text)component2.m_rundownText).text = m_activeRundownSelectionData.Selector_R7.name;
((TMP_Text)component3).text = m_activeRundownSelectionData.Selector_R7.altText;
component2.m_rundownText.transform.localPosition = new Vector3(m_activeRundownSelectionData.Selector_R7.namePos.x, m_activeRundownSelectionData.Selector_R7.namePos.y, m_activeRundownSelectionData.Selector_R7.namePos.z);
component3.transform.localPosition = new Vector3(m_activeRundownSelectionData.Selector_R7.altTextPos.x, m_activeRundownSelectionData.Selector_R7.altTextPos.y, m_activeRundownSelectionData.Selector_R7.altTextPos.z);
((Component)component3).gameObject.SetActive(true);
break;
}
case "Rundown_Surface_SelectionALT_R8":
{
rundownSelector.transform.localPosition = new Vector3(m_activeRundownSelectionData.Selector_R8.pos.x, m_activeRundownSelectionData.Selector_R8.pos.y, m_activeRundownSelectionData.Selector_R8.pos.z);
rundownSelector.transform.localRotation = Quaternion.Euler(new Vector3(m_activeRundownSelectionData.Selector_R8.rot.x, m_activeRundownSelectionData.Selector_R8.rot.y, m_activeRundownSelectionData.Selector_R8.rot.z));
rundownSelector.transform.localScale = new Vector3(m_activeRundownSelectionData.Selector_R8.scale.x, m_activeRundownSelectionData.Selector_R8.scale.y, m_activeRundownSelectionData.Selector_R8.scale.z);
CM_RundownSelection component = rundownSelector.GetComponent<CM_RundownSelection>();
((TMP_Text)component.m_rundownText).text = m_activeRundownSelectionData.Selector_R8.name;
component.m_rundownText.transform.localPosition = new Vector3(m_activeRundownSelectionData.Selector_R8.namePos.x, m_activeRundownSelectionData.Selector_R8.namePos.y, m_activeRundownSelectionData.Selector_R8.namePos.z);
break;
}
}
}
}
private static void UpdateRundownSelector(GameObject obj, RundownSelector data)
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
//IL_0121: Unknown result type (might be due to invalid IL or missing references)
obj.transform.localPosition = new Vector3(data.pos.x, data.pos.y, data.pos.z);
obj.transform.localRotation = Quaternion.Euler(new Vector3(data.rot.x, data.rot.y, data.rot.z));
obj.transform.localScale = new Vector3(data.scale.x, data.scale.y, data.scale.z);
CM_RundownSelection component = obj.GetComponent<CM_RundownSelection>();
((TMP_Text)component.m_rundownText).text = data.name;
((TMP_Text)component.m_altText).text = data.altText;
component.m_rundownText.transform.localPosition = new Vector3(data.namePos.x, data.namePos.y, data.namePos.z);
component.m_altText.transform.localPosition = new Vector3(data.altTextPos.x, data.altTextPos.y, data.altTextPos.z);
}
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);
int index;
if (((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID == m_activeGlobalRundownLayoutData.R1.RundownDatablockID)
{
UpdateRundown(m_activeGlobalRundownLayoutData.R1);
}
if (((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID == m_activeGlobalRundownLayoutData.R2.RundownDatablockID)
{
UpdateRundown(m_activeGlobalRundownLayoutData.R2);
}
if (((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID == m_activeGlobalRundownLayoutData.R3.RundownDatablockID)
{
UpdateRundown(m_activeGlobalRundownLayoutData.R3);
}
if (((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID == m_activeGlobalRundownLayoutData.R4.RundownDatablockID)
{
UpdateRundown(m_activeGlobalRundownLayoutData.R4);
}
if (((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID == m_activeGlobalRundownLayoutData.R5.RundownDatablockID)
{
UpdateRundown(m_activeGlobalRundownLayoutData.R5);
}
if (((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID == m_activeGlobalRundownLayoutData.R6.RundownDatablockID)
{
UpdateRundown(m_activeGlobalRundownLayoutData.R6);
}
if (((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID == m_activeGlobalRundownLayoutData.R7.RundownDatablockID)
{
UpdateRundown(m_activeGlobalRundownLayoutData.R7);
}
if (((GameDataBlockBase<RundownDataBlock>)(object)m_rundownInstance.m_currentRundownData).persistentID == m_activeGlobalRundownLayoutData.R8.RundownDatablockID)
{
UpdateRundown(m_activeGlobalRundownLayoutData.R8);
}
void UpdateIcon(CM_ExpeditionIcon_New expIcon, ExpeditionButton data)
{
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
//IL_0135: Unknown result type (might be due to invalid IL or missing references)
//IL_016c: Unknown result type (might be due to invalid IL or missing references)
//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
//IL_008a: Unknown result type (might be due to invalid IL or missing references)
//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
//IL_022e: Unknown result type (might be due to invalid IL or missing references)
//IL_0206: Unknown result type (might be due to invalid IL or missing references)
//IL_020c: Invalid comparison between Unknown and I4
//IL_0264: Unknown result type (might be due to invalid IL or missing references)
//IL_0336: Unknown result type (might be due to invalid IL or missing references)
//IL_0355: Unknown result type (might be due to invalid IL or missing references)
//IL_03a2: Unknown result type (might be due to invalid IL or missing references)
//IL_0394: Unknown result type (might be due to invalid IL or missing references)
//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
//IL_02df: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)expIcon == (Object)null)
{
Log.Error("expIcon was null in UpdateIcon");
}
else
{
expIcon.SetShortName("<color=white>" + data.label);
((Component)expIcon).transform.localPosition = new Vector3(data.buttonPos.x, data.buttonPos.y, data.buttonPos.z);
if (data.changeScale)
{
((Component)expIcon).transform.localScale = new Vector3(data.buttonScale.x, data.buttonScale.y, data.buttonScale.z);
}
expIcon.m_colorUnlocked = new Color(data.buttonColor.r, data.buttonColor.g, data.buttonColor.b, data.buttonColor.a);
expIcon.m_colorStory = new Color(data.buttonColor.r, data.buttonColor.g, data.buttonColor.b, data.buttonColor.a);
expIcon.m_colorLocked = new Color(data.buttonColor.r, data.buttonColor.g, data.buttonColor.b, data.buttonColor.a * 0.66f);
expIcon.SetBorderColor(new Color(data.buttonColor.r, data.buttonColor.g, data.buttonColor.b, data.buttonColor.a));
((Component)expIcon.m_artifactHeatText).gameObject.SetActive(data.enableHeat);
((TMP_Text)expIcon.m_artifactHeatText).text = data.heatText;
expIcon.m_statusText.transform.localPosition = new Vector3(data.statusPos.x, data.statusPos.y, data.statusPos.z);
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++;
if (m_hasLocalProg)
{
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 UpdateRundown(IndividualRundownLayout data)
{
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);
}
}
}
}
}
public static void UpdateMiscFeatures(bool isRepeat = false)
{
//IL_016a: Unknown result type (might be due to invalid IL or missing references)
//IL_0122: Unknown result type (might be due to invalid IL or missing references)
//IL_04d4: Unknown result type (might be due to invalid IL or missing references)
//IL_0616: Unknown result type (might be due to invalid IL or missing references)
//IL_0585: Unknown result type (might be due to invalid IL or missing references)
//IL_0358: Unknown result type (might be due to invalid IL or missing references)
//IL_037b: Unknown result type (might be due to invalid IL or missing references)
//IL_039e: Unknown result type (might be due to invalid IL or missing references)
//IL_03c1: Unknown result type (might be due to invalid IL or missing references)
//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
if (m_activeMiscRundownData == null)
{
Log.Error("Misc feature data was null");
return;
}
if ((Object)(object)m_rundownInstance == (Object)null)
{
Log.Error("rundown instance was null");
return;
}
if (!m_activeMiscRundownData.Enabled)
{
Log.Debug("Misc rundown features not enabled");
return;
}
((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)
{
((Component)m_rundownInstance.m_tierMarkerSectorSummary).transform.localPosition = new Vector3(90000f, 0f, 0f);
}
else
{
((Component)m_rundownInstance.m_tierMarkerSectorSummary).transform.localPosition = new Vector3(m_activeMiscRundownData.SectorSummaryPosition.x, m_activeMiscRundownData.SectorSummaryPosition.y, m_activeMiscRundownData.SectorSummaryPosition.z);
((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 && m_hasLocalProg)
{
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 = new Vector3(m_activeMiscRundownData.IntelButtonPosition.x, m_activeMiscRundownData.IntelButtonPosition.y, m_activeMiscRundownData.IntelButtonPosition.z);
}
((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;
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;
AddReloadButton();
}
((Component)((Component)m_rundownInstance.m_aboutTheRundownButton).transform.GetChild(0)).gameObject.SetActive(m_activeMiscRundownData.EnableButtonAboutTheRundown);
((Behaviour)((Component)m_rundownInstance.m_aboutTheRundownButton).GetComponent<BoxCollider2D>()).enabled = m_activeMiscRundownData.EnableButtonAboutTheRundown;
((Behaviour)((Component)m_rundownInstance.m_aboutTheRundownButton).GetComponent<TextMeshPro>()).enabled = m_activeMiscRundownData.EnableButtonAboutTheRundown;
((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);
}
}
}
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; }
}
[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 = 0.6f,
y = 0.6f,
z = 0.6f
},
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 = 0.8f,
y = 0.8f,
z = 0.8f
},
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 = 0.8f,
y = 0.8f,
z = 0.8f
},
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 = 1.2f,
y = 1.2f,
z = 1.2f
},
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 = 1.1f,
y = 1.1f,
z = 1.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 = 1.09f,
y = 1.09f,
z = 1.09f
},
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 = "<color=orange>ALT://",
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 Selection_R8 Selector_R8 { get; set; } = new Selection_R8();
}
public class RundownSelector
{
public string name { get; set; }
public string altText { get; set; }
public Vector3 pos { get; set; }
public Vector3 rot { get; set; }
public Vector3 scale { get; set; }
public Vector3 namePos { get; set; }
public Vector3 altTextPos { get; set; }
}
public class Selection_R8
{
public string name { get; set; } = "R8";
public Vector3 pos { get; set; } = new Vector3
{
x = 550f,
y = 150f,
z = 0f
};
public Vector3 rot { get; set; } = new Vector3
{
x = 0f,
y = 0f,
z = 0f
};
public Vector3 scale { get; set; } = new Vector3
{
x = 1.25f,
y = 1.2f,
z = 1.25f
};
public Vector3 namePos { get; set; } = new Vector3
{
x = 0f,
y = 39f,
z = 0f
};
}
[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; }
}
[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; }
}
}