using System;
using System.Collections;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using TMPro;
using UnityEngine;
using UnityMobCracker.Plugins;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("UnityMobCracker")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("UnityMobCracker")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("ed682d65-6d24-4d50-bde3-77517b2ce593")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
public static class LightControllerDetails
{
public static bool DoorsLowered = false;
public static GameObject LightBackwards;
public static GameObject LightForwards;
public static GameObject ComponenentForward;
public static GameObject ComponenentBackwards;
public static GameObject ValueAdd;
public static GameObject ValueSubtract;
public static bool ExecutingLightChange = false;
public static Gradient gradient;
public static int CurrentLightIndex = 0;
public static int AvaliableShipLights = 3;
public static ShipLight[] LightObjects;
public static ShipLight[] HighlighedShipObjects;
public static int globalLightPropertyIndex = 0;
public static string[] PropertyNames = new string[6] { "Mode", "Intensity", "Speed (Dynamic Only)", "Color - Red (Custom Only)", "Color - Green (Custom Only)", "Color - Blue (Custom Only)" };
public static string[] ModeNames = new string[3] { "Original", "Custom", "Dynamic" };
public static Color[] LerpColors = (Color[])(object)new Color[7]
{
NewLerpColor(148, 0, 211),
NewLerpColor(75, 0, 130),
NewLerpColor(0, 0, 255),
NewLerpColor(0, 255, 0),
NewLerpColor(255, 255, 0),
NewLerpColor(255, 127, 0),
NewLerpColor(255, 0, 0)
};
public static GradientColorKey[] SmoothLights = (GradientColorKey[])(object)new GradientColorKey[7];
public static bool incIntWait = false;
public static bool decIntWait = false;
public static bool incSpeWait = false;
public static bool decSpeWait = false;
public static bool toggleLightWait = false;
public static bool toggleLight2Wait = false;
public static GameObject PanelCanvas1;
public static GameObject PanelCanvas2;
public static int BaseIntensity = 100;
public static float BaseSpeed = 0.0001f;
public static int SpeedIndex = 12;
public static GameObject MAINPanel;
public static GameObject SECONDPanel;
public static bool currentMode = true;
public static ShipLight GlobalLight;
public static Color NewLerpColor(int r, int g, int b)
{
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
return new Color((float)(r / 200), (float)(g / 200), (float)(b / 200));
}
public static bool GetGameSceneLoaded()
{
return (Object)(object)GameObject.Find("OutsideShipRoom") != (Object)null;
}
}
public class ShipLight
{
public GameObject[] Objects;
public int RedValue = 255;
public int GreenValue = 255;
public int BlueValue = 255;
public Color CreatedColor;
public int ModeID = 0;
public int LocalPropertyIndex = 0;
public int SpeedIndex = 1;
public int IntensityIndex = 4;
public string name;
public float LerpWaitIndex;
public int LerpColorIndex = 0;
public Color NextColor = new Color(0f, 0f, 0f, 1f);
public ShipLight(GameObject[] Objects, string Name)
{
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
this.Objects = Objects;
name = Name;
}
public void UpdateLight()
{
//IL_0075: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
LerpWaitIndex -= (float)SpeedIndex * LightControllerDetails.BaseSpeed;
if (LerpWaitIndex <= 0f)
{
LerpWaitIndex = 1f;
LerpColorIndex++;
if (LerpColorIndex >= LightControllerDetails.LerpColors.Length)
{
LerpColorIndex = 0;
}
}
NextColor = LightControllerDetails.gradient.Evaluate(LerpWaitIndex);
}
public void UpdateCreatedColor(string r = null, string g = null, string b = null)
{
//IL_0070: 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)
if (r != null)
{
RedValue = Convert.ToInt32(r);
}
if (g != null)
{
GreenValue = Convert.ToInt32(g);
}
if (b != null)
{
BlueValue = Convert.ToInt32(b);
}
CreatedColor = new Color((float)(RedValue / 255), (float)(GreenValue / 255), (float)(BlueValue / 255), 1f);
}
}
namespace UnityMobCracker
{
[BepInPlugin("harmless-exploit.lethal", "Simple Game Config", "1.0.0.0")]
public class MobCrackerBase : BaseUnityPlugin
{
private readonly Harmony harmony = new Harmony("harmless-exploit.lethal");
private static MobCrackerBase Instance;
internal ManualLogSource mls;
private void Awake()
{
if ((Object)(object)Instance == (Object)null)
{
Instance = this;
}
mls = Logger.CreateLogSource("harmless-exploit.lethal");
mls.LogInfo((object)"harmless-exploit.lethal ONLINE");
harmony.PatchAll(typeof(MobCrackerBase));
harmony.PatchAll(typeof(MainPatch));
}
}
}
namespace UnityMobCracker.Plugins
{
[HarmonyPatch(typeof(PlayerControllerB))]
internal class MainPatch
{
[HarmonyPatch("Update")]
[HarmonyPostfix]
private static void updateObject(ref bool ___isInHangarShipRoom, ref bool ___isInsideFactory)
{
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Expected O, but got Unknown
if (!Object.op_Implicit((Object)(object)GameObject.Find("harmlessExploitHandler")))
{
GameObject val = new GameObject("harmlessExploitHandler");
val.AddComponent<HarmlessHandler>();
}
}
}
public class HarmlessHandler : MonoBehaviour
{
private void Awake()
{
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
GameObject.Find("AnimatedShipDoor").transform.position = new Vector3(0f, -100f, 0f);
GameObject.Find("ShipInnerRoomBoundsTrigger").transform.localScale = new Vector3(5000f, 1000f, 5000f);
((MonoBehaviour)this).StartCoroutine(ExecuteParty.Main());
}
}
public class ExecuteParty
{
public static IEnumerator Main()
{
while (true)
{
CheckForGameLoaded();
CheckForGameUnloaded();
GameObject sourceUp = GameObject.Find("HangarDoorButtonPanel");
if ((Object)(object)GameObject.Find("First Component") == (Object)null && (Object)(object)sourceUp != (Object)null)
{
Transform MainParent = GameObject.Find("HangarShip").transform;
GameObject[] FirstLightObjects = (GameObject[])(object)new GameObject[2]
{
GameObject.Find("Area Light (3)"),
GameObject.Find("Area Light (9)")
};
GameObject[] SecondLightObjects = (GameObject[])(object)new GameObject[2]
{
GameObject.Find("Area Light (4)"),
GameObject.Find("Area Light (8)")
};
GameObject[] ThirdLightObjects = (GameObject[])(object)new GameObject[2]
{
GameObject.Find("Area Light (5)"),
GameObject.Find("Area Light (7)")
};
LightControllerDetails.LightObjects = new ShipLight[4];
LightControllerDetails.LightObjects[1] = new ShipLight(FirstLightObjects, "Front");
LightControllerDetails.LightObjects[2] = new ShipLight(SecondLightObjects, "Middle");
LightControllerDetails.LightObjects[3] = new ShipLight(ThirdLightObjects, "Back");
LightControllerDetails.LightObjects[0] = new ShipLight(null, "");
LightControllerDetails.LightObjects[0].UpdateCreatedColor();
LightControllerDetails.LightObjects[1].UpdateCreatedColor();
LightControllerDetails.LightObjects[2].UpdateCreatedColor();
LightControllerDetails.LightObjects[3].UpdateCreatedColor();
LightControllerDetails.HighlighedShipObjects = LightControllerDetails.LightObjects;
GameObject Panel1 = Object.Instantiate<GameObject>(sourceUp, MainParent);
GameObject Panel2 = Object.Instantiate<GameObject>(sourceUp, MainParent);
GameObject Panel3 = Object.Instantiate<GameObject>(sourceUp, MainParent);
LightControllerDetails.LightForwards = ((Component)Panel1.transform.Find("StartButton").GetChild(0)).gameObject;
LightControllerDetails.LightBackwards = ((Component)Panel1.transform.Find("StopButton").GetChild(0)).gameObject;
LightControllerDetails.ComponenentBackwards = ((Component)Panel2.transform.Find("StopButton").GetChild(0)).gameObject;
LightControllerDetails.ComponenentForward = ((Component)Panel2.transform.Find("StartButton").GetChild(0)).gameObject;
LightControllerDetails.ValueAdd = ((Component)Panel3.transform.Find("StartButton").GetChild(0)).gameObject;
LightControllerDetails.ValueSubtract = ((Component)Panel3.transform.Find("StopButton").GetChild(0)).gameObject;
GameObject LFparent = new GameObject("ButtonContainer");
GameObject LBparent = new GameObject("ButtonContainer");
GameObject CFparent = new GameObject("ButtonContainer");
GameObject CBparent = new GameObject("ButtonContainer");
GameObject VAparent = new GameObject("ButtonContainer");
GameObject VSparent = new GameObject("ButtonContainer");
LFparent.transform.SetParent(Panel1.transform);
LBparent.transform.SetParent(Panel1.transform);
CFparent.transform.SetParent(Panel1.transform);
CBparent.transform.SetParent(Panel1.transform);
VAparent.transform.SetParent(Panel1.transform);
VSparent.transform.SetParent(Panel1.transform);
LightControllerDetails.LightForwards.transform.parent.SetParent(LFparent.transform);
LightControllerDetails.LightBackwards.transform.parent.SetParent(LBparent.transform);
LightControllerDetails.ComponenentBackwards.transform.parent.SetParent(CBparent.transform);
LightControllerDetails.ComponenentForward.transform.parent.SetParent(CFparent.transform);
LightControllerDetails.ValueAdd.transform.parent.SetParent(VAparent.transform);
LightControllerDetails.ValueSubtract.transform.parent.SetParent(VSparent.transform);
((Object)Panel1).name = "First Component";
LightControllerDetails.PanelCanvas1 = ((Component)Panel1.transform.Find("ElevatorPanelScreen")).gameObject;
LightControllerDetails.PanelCanvas2 = ((Component)Panel2.transform.Find("ElevatorPanelScreen")).gameObject;
Object.Destroy((Object)(object)Panel1.GetComponent<MeshFilter>());
Object.Destroy((Object)(object)Panel2.GetComponent<MeshFilter>());
Object.Destroy((Object)(object)Panel3.GetComponent<MeshFilter>());
Object.Destroy((Object)(object)((Component)Panel3.transform.Find("ElevatorPanelScreen")).gameObject);
Object.Destroy((Object)(object)((Component)Panel1.transform.Find("ButtonLights")).gameObject);
Object.Destroy((Object)(object)((Component)Panel2.transform.Find("ButtonLights")).gameObject);
Object.Destroy((Object)(object)((Component)Panel3.transform.Find("ButtonLights")).gameObject);
Object.Destroy((Object)(object)((Component)Panel2.transform.Find("ScanNode (2)")).gameObject);
Object.Destroy((Object)(object)((Component)Panel3.transform.Find("ScanNode (2)")).gameObject);
Object.Destroy((Object)(object)((Component)LightControllerDetails.PanelCanvas1.transform.GetChild(0).GetChild(1)).gameObject);
LightControllerDetails.LightBackwards.GetComponent<InteractTrigger>().holdInteraction = true;
LightControllerDetails.ComponenentBackwards.GetComponent<InteractTrigger>().holdInteraction = true;
LightControllerDetails.ComponenentForward.GetComponent<InteractTrigger>().holdInteraction = true;
LightControllerDetails.LightForwards.GetComponent<InteractTrigger>().holdInteraction = true;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().holdInteraction = true;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().holdInteraction = true;
LightControllerDetails.LightBackwards.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ComponenentBackwards.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ComponenentForward.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.LightForwards.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.LightForwards.GetComponent<InteractTrigger>().cooldownTime = 0.25f;
LightControllerDetails.LightBackwards.GetComponent<InteractTrigger>().cooldownTime = 0.25f;
LightControllerDetails.ComponenentBackwards.GetComponent<InteractTrigger>().cooldownTime = 0.25f;
LightControllerDetails.ComponenentForward.GetComponent<InteractTrigger>().cooldownTime = 0.25f;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
LightControllerDetails.LightBackwards.GetComponent<InteractTrigger>().hoverTip = "Previous : [LMB]";
LightControllerDetails.LightForwards.GetComponent<InteractTrigger>().hoverTip = "Next : [LMB]";
LightControllerDetails.ComponenentBackwards.GetComponent<InteractTrigger>().hoverTip = "Previous : [LMB]";
LightControllerDetails.ComponenentForward.GetComponent<InteractTrigger>().hoverTip = "Next : [LMB]";
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().hoverTip = "Add : [LMB]";
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().hoverTip = "Subtract : [LMB]";
ScanNodeProperties scanProp1 = ((Component)Panel1.transform.Find("ScanNode (2)")).gameObject.GetComponent<ScanNodeProperties>();
scanProp1.headerText = "Light Controls";
scanProp1.nodeType = 1;
scanProp1.subText = "Don't use on the job!";
GameObject LightSwitch = GameObject.Find("LightSwitchContainer");
GameObject LightSwitchScanNode = Object.Instantiate<GameObject>(((Component)Panel1.transform.Find("ScanNode (2)")).gameObject, LightSwitch.transform);
ScanNodeProperties scanSwitch = LightSwitchScanNode.GetComponent<ScanNodeProperties>();
scanSwitch.headerText = "Light Switch";
scanSwitch.nodeType = 0;
scanSwitch.subText = "Why would you turn this off?";
LightSwitchScanNode.transform.localPosition = new Vector3(0f, 0f, 0f);
LFparent.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
LBparent.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
CFparent.transform.localEulerAngles = new Vector3(0f, 180f, 180f);
CBparent.transform.localEulerAngles = new Vector3(0f, 180f, 180f);
VAparent.transform.localEulerAngles = new Vector3(0f, 180f, 180f);
VSparent.transform.localEulerAngles = new Vector3(0f, 180f, 180f);
LightControllerDetails.LightForwards.transform.parent.localEulerAngles = new Vector3(180f, 0f, 0f);
LightControllerDetails.LightBackwards.transform.parent.localEulerAngles = new Vector3(180f, 0f, 0f);
LightControllerDetails.ComponenentForward.transform.parent.localEulerAngles = new Vector3(180f, 0f, 0f);
LightControllerDetails.ComponenentBackwards.transform.parent.localEulerAngles = new Vector3(180f, 0f, 0f);
LightControllerDetails.ValueAdd.transform.parent.localEulerAngles = new Vector3(180f, 0f, 0f);
LightControllerDetails.ValueSubtract.transform.parent.localEulerAngles = new Vector3(180f, 0f, 0f);
LightControllerDetails.LightForwards.transform.localScale = new Vector3(0.11f, 0.11f, 0.11f);
LightControllerDetails.LightBackwards.transform.localScale = new Vector3(0.11f, 0.11f, 0.11f);
LightControllerDetails.ComponenentForward.transform.localScale = new Vector3(0.11f, 0.11f, 0.11f);
LightControllerDetails.ComponenentBackwards.transform.localScale = new Vector3(0.11f, 0.11f, 0.11f);
LightControllerDetails.ValueAdd.transform.localScale = new Vector3(0.11f, 0.11f, 0.11f);
LightControllerDetails.ValueSubtract.transform.localScale = new Vector3(0.11f, 0.11f, 0.11f);
Panel1.transform.rotation = Quaternion.Euler(new Vector3(90f, 90f, 90f));
((Component)Panel1.transform.Find("Audio")).transform.position = new Vector3(2.5507f, 2.9481f, -11.75f);
((Component)Panel2.transform.Find("Audio")).transform.position = new Vector3(2.5507f, 2.9481f, -11.75f);
((Component)Panel3.transform.Find("Audio")).transform.position = new Vector3(2.5507f, 2.9481f, -11.75f);
LightControllerDetails.PanelCanvas1.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
LightControllerDetails.PanelCanvas1.transform.position = new Vector3(2.25f, 2.7878f, -11.7294f);
LightControllerDetails.PanelCanvas1.transform.localScale = new Vector3(0.0005f, 0.0003f, 0.0006f);
LightControllerDetails.PanelCanvas2.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
LightControllerDetails.PanelCanvas2.transform.position = new Vector3(2.25f, 2.5751f, -11.7294f);
LightControllerDetails.PanelCanvas2.transform.localScale = new Vector3(-0.0006f, -0.0005f, -0.0005f);
LFparent.transform.position = new Vector3(2.4016f, 2.9481f, -11.75f);
LBparent.transform.position = new Vector3(1.8109f, 2.6454f, -11.75f);
CFparent.transform.position = new Vector3(2.4326f, 2.6209f, -11.75f);
CBparent.transform.position = new Vector3(1.8654f, 2.819f, -11.7501f);
VAparent.transform.position = new Vector3(2.4326f, 2.4316f, -11.75f);
VSparent.transform.position = new Vector3(1.8654f, 2.6572f, -11.7501f);
LFparent.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f);
LBparent.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f);
sourceUp.transform.position = new Vector3(-4.2485f, 2.1882f, -16.323f);
LightControllerDetails.gradient = new Gradient();
LightControllerDetails.SmoothLights[0] = new GradientColorKey(LightControllerDetails.LerpColors[0], 0.14f);
LightControllerDetails.SmoothLights[1] = new GradientColorKey(LightControllerDetails.LerpColors[1], 0.28f);
LightControllerDetails.SmoothLights[2] = new GradientColorKey(LightControllerDetails.LerpColors[2], 0.42f);
LightControllerDetails.SmoothLights[3] = new GradientColorKey(LightControllerDetails.LerpColors[3], 0.56f);
LightControllerDetails.SmoothLights[4] = new GradientColorKey(LightControllerDetails.LerpColors[4], 0.7f);
LightControllerDetails.SmoothLights[5] = new GradientColorKey(LightControllerDetails.LerpColors[5], 0.84f);
LightControllerDetails.SmoothLights[6] = new GradientColorKey(LightControllerDetails.LerpColors[6], 1f);
GradientAlphaKey[] alphas = (GradientAlphaKey[])(object)new GradientAlphaKey[2]
{
new GradientAlphaKey(1f, 0f),
new GradientAlphaKey(1f, 1f)
};
LightControllerDetails.gradient.SetKeys(LightControllerDetails.SmoothLights, alphas);
Panel1.transform.Find("ScanNode (2)").position = new Vector3(2.3161f, 2.6208f, -11.75f);
UpdateSelectedLight(add: false, edit: false);
}
InteractTrigger LightBackwardsComp = LightControllerDetails.LightBackwards.GetComponent<InteractTrigger>();
InteractTrigger LightForwardsComp = LightControllerDetails.LightForwards.GetComponent<InteractTrigger>();
InteractTrigger ComponenentBackwardsComp = LightControllerDetails.ComponenentBackwards.GetComponent<InteractTrigger>();
InteractTrigger ComponenentForwardComp = LightControllerDetails.ComponenentForward.GetComponent<InteractTrigger>();
InteractTrigger ValueAddComp = LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>();
InteractTrigger ValueSubtractComp = LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>();
if (LightBackwardsComp.isBeingHeldByPlayer && !LightControllerDetails.incIntWait)
{
LightControllerDetails.incIntWait = true;
}
else if (ComponenentBackwardsComp.isBeingHeldByPlayer && !LightControllerDetails.decIntWait)
{
LightControllerDetails.decIntWait = true;
}
else if (ComponenentForwardComp.isBeingHeldByPlayer && !LightControllerDetails.incSpeWait)
{
LightControllerDetails.incSpeWait = true;
}
else if (LightForwardsComp.isBeingHeldByPlayer && !LightControllerDetails.decSpeWait)
{
LightControllerDetails.decSpeWait = true;
}
else if (ValueAddComp.isBeingHeldByPlayer && !LightControllerDetails.toggleLightWait)
{
LightControllerDetails.toggleLightWait = true;
}
else if (ValueSubtractComp.isBeingHeldByPlayer && !LightControllerDetails.toggleLight2Wait)
{
LightControllerDetails.toggleLight2Wait = true;
}
if (!ValueAddComp.isBeingHeldByPlayer && LightControllerDetails.toggleLightWait)
{
LightControllerDetails.toggleLightWait = false;
ChangeValue(LightControllerDetails.HighlighedShipObjects, add: true);
}
else if (!ValueSubtractComp.isBeingHeldByPlayer && LightControllerDetails.toggleLight2Wait)
{
LightControllerDetails.toggleLight2Wait = false;
ChangeValue(LightControllerDetails.HighlighedShipObjects, add: false);
}
else if (!ComponenentBackwardsComp.isBeingHeldByPlayer && LightControllerDetails.decIntWait)
{
LightControllerDetails.decIntWait = false;
ChangeConfig(LightControllerDetails.HighlighedShipObjects, positive: false);
}
else if (!ComponenentForwardComp.isBeingHeldByPlayer && LightControllerDetails.incSpeWait)
{
LightControllerDetails.incSpeWait = false;
ChangeConfig(LightControllerDetails.HighlighedShipObjects, positive: true);
}
else if (!LightBackwardsComp.isBeingHeldByPlayer && LightControllerDetails.incIntWait)
{
LightControllerDetails.incIntWait = false;
UpdateSelectedLight(add: false, edit: true);
}
else if (!LightForwardsComp.isBeingHeldByPlayer && LightControllerDetails.decSpeWait)
{
LightControllerDetails.decSpeWait = false;
UpdateSelectedLight(add: true, edit: true);
}
for (int i = 0; i < LightControllerDetails.LightObjects.Length; i++)
{
if (i == 0)
{
continue;
}
LightControllerDetails.LightObjects[i].UpdateLight();
for (int b = 0; b < LightControllerDetails.LightObjects[i].Objects.Length; b++)
{
Light LightObj = LightControllerDetails.LightObjects[i].Objects[b].GetComponent<Light>();
LightObj.intensity = LightControllerDetails.LightObjects[i].IntensityIndex * LightControllerDetails.BaseIntensity;
if (LightControllerDetails.LightObjects[i].ModeID == 0)
{
LightObj.color = new Color(1f, 1f, 1f, 1f);
}
if (LightControllerDetails.LightObjects[i].ModeID == 1)
{
LightObj.color = new Color((float)(LightControllerDetails.LightObjects[i].RedValue / 255), (float)(LightControllerDetails.LightObjects[i].GreenValue / 255), (float)(LightControllerDetails.LightObjects[i].BlueValue / 255), 1f);
}
if (LightControllerDetails.LightObjects[i].ModeID == 2)
{
LightObj.color = Color.Lerp(LightObj.color, LightControllerDetails.LightObjects[i].NextColor, Time.deltaTime * (float)(15 / LightControllerDetails.SpeedIndex));
}
}
}
yield return (object)new WaitForSeconds(0.01f);
}
static void ChangeConfig(ShipLight[] selectedLights, bool positive)
{
//IL_031b: 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)
if (!LightControllerDetails.ExecutingLightChange)
{
LightControllerDetails.ExecutingLightChange = true;
int num;
if (selectedLights.Length > 1)
{
LightControllerDetails.globalLightPropertyIndex += (positive ? 1 : (-1));
if (LightControllerDetails.globalLightPropertyIndex >= LightControllerDetails.PropertyNames.Length)
{
LightControllerDetails.globalLightPropertyIndex = 0;
}
if (LightControllerDetails.globalLightPropertyIndex < 0)
{
LightControllerDetails.globalLightPropertyIndex = LightControllerDetails.PropertyNames.Length - 1;
}
num = LightControllerDetails.globalLightPropertyIndex;
}
else
{
selectedLights[0].LocalPropertyIndex += (positive ? 1 : (-1));
if (selectedLights[0].LocalPropertyIndex >= LightControllerDetails.PropertyNames.Length)
{
selectedLights[0].LocalPropertyIndex = 0;
}
if (selectedLights[0].LocalPropertyIndex < 0)
{
selectedLights[0].LocalPropertyIndex = selectedLights[0].LocalPropertyIndex - 1;
}
num = selectedLights[0].LocalPropertyIndex;
}
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).text = "Change " + LightControllerDetails.PropertyNames[num];
switch (num)
{
case 0:
{
int modeID = selectedLights[0].ModeID;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = LightControllerDetails.ModeNames[modeID];
break;
}
case 1:
{
int intensityIndex = selectedLights[0].IntensityIndex;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = intensityIndex.ToString();
break;
}
case 2:
{
int speedIndex = selectedLights[0].SpeedIndex;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = speedIndex.ToString();
break;
}
case 3:
{
int redValue = selectedLights[0].RedValue;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = redValue + " / 255";
selectedLights[0].UpdateCreatedColor();
break;
}
case 4:
{
int greenValue = selectedLights[0].GreenValue;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = greenValue + " / 255";
selectedLights[0].UpdateCreatedColor();
break;
}
case 5:
{
int blueValue = selectedLights[0].BlueValue;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = blueValue + " / 255";
selectedLights[0].UpdateCreatedColor();
break;
}
}
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).fontSize = 20f;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).margin = new Vector4(0f, -10f, -5f, 0f);
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).alignment = (TextAlignmentOptions)258;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).margin = new Vector4(0f, 0f, -5f, 0f);
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).alignment = (TextAlignmentOptions)514;
LightControllerDetails.ExecutingLightChange = false;
}
}
static void ChangeValue(ShipLight[] selectedLights, bool add)
{
if (!LightControllerDetails.ExecutingLightChange)
{
LightControllerDetails.ExecutingLightChange = true;
int num2 = selectedLights[0].LocalPropertyIndex;
if (selectedLights.Length > 1)
{
num2 = LightControllerDetails.globalLightPropertyIndex;
}
switch (num2)
{
case 0:
{
selectedLights[0].ModeID = selectedLights[0].ModeID + (add ? 1 : (-1));
if (selectedLights[0].ModeID >= LightControllerDetails.ModeNames.Length)
{
selectedLights[0].ModeID = 0;
}
if (selectedLights[0].ModeID < 0)
{
selectedLights[0].ModeID = LightControllerDetails.ModeNames.Length - 1;
}
for (int l = 0; l < selectedLights.Length; l++)
{
selectedLights[l].ModeID = selectedLights[0].ModeID;
}
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().cooldownTime = 0.25f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().cooldownTime = 0.25f;
int modeID2 = selectedLights[0].ModeID;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = LightControllerDetails.ModeNames[modeID2];
break;
}
case 1:
{
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
selectedLights[0].IntensityIndex = Mathf.Max(0, selectedLights[0].IntensityIndex + (add ? 1 : (-1)));
int intensityIndex2 = selectedLights[0].IntensityIndex;
for (int n = 0; n < selectedLights.Length; n++)
{
selectedLights[n].IntensityIndex = selectedLights[0].IntensityIndex;
}
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = intensityIndex2.ToString();
break;
}
case 2:
{
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 5f;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
selectedLights[0].SpeedIndex = Mathf.Max(0, selectedLights[0].SpeedIndex + (add ? 1 : (-1)));
int speedIndex2 = selectedLights[0].SpeedIndex;
for (int num3 = 0; num3 < selectedLights.Length; num3++)
{
selectedLights[num3].SpeedIndex = selectedLights[0].SpeedIndex;
}
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = speedIndex2.ToString();
break;
}
case 3:
{
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 7f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 7f;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
selectedLights[0].RedValue = Mathf.Clamp(selectedLights[0].RedValue + (add ? 5 : (-5)), 0, 255);
int redValue2 = selectedLights[0].RedValue;
for (int k = 0; k < selectedLights.Length; k++)
{
selectedLights[k].RedValue = selectedLights[0].RedValue;
}
selectedLights[0].UpdateCreatedColor();
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = redValue2 + " / 255";
break;
}
case 4:
{
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 7f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 7f;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
selectedLights[0].GreenValue = Mathf.Clamp(selectedLights[0].GreenValue + (add ? 5 : (-5)), 0, 255);
int greenValue2 = selectedLights[0].GreenValue;
for (int m = 0; m < selectedLights.Length; m++)
{
selectedLights[m].GreenValue = selectedLights[0].GreenValue;
}
selectedLights[0].UpdateCreatedColor();
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = greenValue2 + " / 255";
break;
}
case 5:
{
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 7f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().timeToHoldSpeedMultiplier = 7f;
LightControllerDetails.ValueAdd.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
LightControllerDetails.ValueSubtract.GetComponent<InteractTrigger>().cooldownTime = 0.1f;
selectedLights[0].BlueValue = Mathf.Clamp(selectedLights[0].BlueValue + (add ? 5 : (-5)), 0, 255);
int blueValue2 = selectedLights[0].BlueValue;
for (int j = 0; j < selectedLights.Length; j++)
{
selectedLights[j].BlueValue = selectedLights[0].BlueValue;
}
selectedLights[0].UpdateCreatedColor();
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = blueValue2 + " / 255";
break;
}
}
LightControllerDetails.ExecutingLightChange = false;
}
}
static void CheckForGameLoaded()
{
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0065: Unknown result type (might be due to invalid IL or missing references)
if (LightControllerDetails.GetGameSceneLoaded() && !LightControllerDetails.DoorsLowered)
{
LightControllerDetails.DoorsLowered = true;
GameObject.Find("AnimatedShipDoor").transform.localPosition = new Vector3(0.2533f, 0.2784f, -0.0709f);
GameObject.Find("HangarDoorButtonPanel").transform.position = new Vector3(-4.2485f, 2.1882f, -16.323f);
}
}
static void CheckForGameUnloaded()
{
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
if (!LightControllerDetails.GetGameSceneLoaded() && LightControllerDetails.DoorsLowered)
{
LightControllerDetails.DoorsLowered = false;
GameObject.Find("AnimatedShipDoor").transform.position = new Vector3(0f, -100f, 0f);
GameObject.Find("HangarDoorButtonPanel").transform.position = new Vector3(-4.2485f, 2.1882f, -16.323f);
}
}
static void UpdateSelectedLight(bool add, bool edit)
{
//IL_019a: Unknown result type (might be due to invalid IL or missing references)
//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
//IL_022a: Unknown result type (might be due to invalid IL or missing references)
//IL_04b5: Unknown result type (might be due to invalid IL or missing references)
//IL_0515: Unknown result type (might be due to invalid IL or missing references)
if (!LightControllerDetails.ExecutingLightChange)
{
LightControllerDetails.ExecutingLightChange = true;
if (edit)
{
LightControllerDetails.CurrentLightIndex += (add ? 1 : (-1));
if (LightControllerDetails.CurrentLightIndex > LightControllerDetails.AvaliableShipLights)
{
LightControllerDetails.CurrentLightIndex = 0;
}
if (LightControllerDetails.CurrentLightIndex < 0)
{
LightControllerDetails.CurrentLightIndex = LightControllerDetails.AvaliableShipLights;
}
switch (LightControllerDetails.CurrentLightIndex)
{
case 0:
LightControllerDetails.HighlighedShipObjects = LightControllerDetails.LightObjects;
break;
case 1:
LightControllerDetails.HighlighedShipObjects = new ShipLight[1] { LightControllerDetails.LightObjects[1] };
break;
case 2:
LightControllerDetails.HighlighedShipObjects = new ShipLight[1] { LightControllerDetails.LightObjects[2] };
break;
case 3:
LightControllerDetails.HighlighedShipObjects = new ShipLight[1] { LightControllerDetails.LightObjects[3] };
break;
}
}
ShipLight[] highlighedShipObjects = LightControllerDetails.HighlighedShipObjects;
string text = highlighedShipObjects[0].name + " Light";
int num4 = highlighedShipObjects[0].LocalPropertyIndex;
if (highlighedShipObjects.Length > 1)
{
text = "All Lights";
num4 = LightControllerDetails.globalLightPropertyIndex;
}
((TMP_Text)((Component)LightControllerDetails.PanelCanvas1.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).text = "Editing " + text;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas1.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).fontSize = 20f;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas1.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).margin = new Vector4(0f, 0f, -5f, 0f);
((TMP_Text)((Component)LightControllerDetails.PanelCanvas1.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).alignment = (TextAlignmentOptions)514;
((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).transform.localScale = new Vector3(-2.2695f, 3.9225f, 1f);
((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).transform.localScale = new Vector3(-2.7349f, 2.737f, 1f);
if (num4 >= LightControllerDetails.PropertyNames.Length)
{
num4 = 0;
highlighedShipObjects[0].LocalPropertyIndex = 0;
}
if (num4 < 0)
{
num4 = LightControllerDetails.PropertyNames.Length - 1;
highlighedShipObjects[0].LocalPropertyIndex = LightControllerDetails.PropertyNames.Length - 1;
}
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).text = "Change " + LightControllerDetails.PropertyNames[num4];
switch (num4)
{
case 0:
{
int modeID3 = highlighedShipObjects[0].ModeID;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = LightControllerDetails.ModeNames[modeID3];
break;
}
case 1:
{
int intensityIndex3 = highlighedShipObjects[0].IntensityIndex;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = intensityIndex3.ToString();
break;
}
case 2:
{
int speedIndex3 = highlighedShipObjects[0].SpeedIndex;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = speedIndex3.ToString();
break;
}
case 3:
{
int redValue3 = highlighedShipObjects[0].RedValue;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = redValue3 + " / 255";
highlighedShipObjects[0].UpdateCreatedColor();
break;
}
case 4:
{
int greenValue3 = highlighedShipObjects[0].GreenValue;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = greenValue3 + " / 255";
highlighedShipObjects[0].UpdateCreatedColor();
break;
}
case 5:
{
int blueValue3 = highlighedShipObjects[0].BlueValue;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).text = blueValue3 + " / 255";
highlighedShipObjects[0].UpdateCreatedColor();
break;
}
}
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).fontSize = 20f;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).margin = new Vector4(0f, -10f, -5f, 0f);
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).alignment = (TextAlignmentOptions)258;
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).margin = new Vector4(0f, 0f, -5f, 0f);
((TMP_Text)((Component)LightControllerDetails.PanelCanvas2.transform.GetChild(0).GetChild(1)).GetComponent<TextMeshProUGUI>()).alignment = (TextAlignmentOptions)514;
LightControllerDetails.ExecutingLightChange = false;
}
}
}
}
}