using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using HarmonyLib;
using UnityEngine;
using UnityEngine.SceneManagement;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("SmolV1")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SmolV1")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("6ef7e345-9f0f-4de2-9ff5-fffd3c2a8a67")]
[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")]
namespace SmolV1;
[BepInPlugin("DolfeLive.Ultrakill.UltraSmol", "UltraSmol", "1.0.0")]
public class Class1 : BaseUnityPlugin
{
public const string pluginGuid = "DolfeLive.Ultrakill.UltraSmol";
public const string pluginName = "UltraSmol";
public const string pluginVersion = "1.0.0.0";
private GameObject Player;
private GameObject PlayerCam;
private GameObject SingularityPrefab;
private GameObject Singularity;
private GameObject[] allObjects;
private Vector3 SizeControl = new Vector3(1f, 1f, 1f);
private int ToggleMode = 0;
private int SingleAxisControl = 0;
private void Start()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Expected O, but got Unknown
Harmony val = new Harmony("DolfeLive.Ultrakill.UltraSmol");
val.PatchAll();
SingularityPrefab = new GameObject();
}
private void Update()
{
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Unknown result type (might be due to invalid IL or missing references)
//IL_0149: Unknown result type (might be due to invalid IL or missing references)
//IL_0337: Unknown result type (might be due to invalid IL or missing references)
//IL_0341: Expected O, but got Unknown
//IL_036d: Unknown result type (might be due to invalid IL or missing references)
//IL_0372: Unknown result type (might be due to invalid IL or missing references)
//IL_040f: Unknown result type (might be due to invalid IL or missing references)
//IL_0414: Unknown result type (might be due to invalid IL or missing references)
//IL_042b: Unknown result type (might be due to invalid IL or missing references)
//IL_0430: Unknown result type (might be due to invalid IL or missing references)
//IL_0872: Unknown result type (might be due to invalid IL or missing references)
//IL_0877: Unknown result type (might be due to invalid IL or missing references)
//IL_088e: Unknown result type (might be due to invalid IL or missing references)
//IL_0893: Unknown result type (might be due to invalid IL or missing references)
//IL_0fa4: Unknown result type (might be due to invalid IL or missing references)
//IL_0fa9: Unknown result type (might be due to invalid IL or missing references)
//IL_0fc0: Unknown result type (might be due to invalid IL or missing references)
//IL_0fc5: Unknown result type (might be due to invalid IL or missing references)
//IL_04c5: Unknown result type (might be due to invalid IL or missing references)
//IL_04ca: Unknown result type (might be due to invalid IL or missing references)
//IL_04e1: Unknown result type (might be due to invalid IL or missing references)
//IL_04e6: Unknown result type (might be due to invalid IL or missing references)
//IL_0e87: Unknown result type (might be due to invalid IL or missing references)
//IL_0e91: Unknown result type (might be due to invalid IL or missing references)
//IL_0e96: Unknown result type (might be due to invalid IL or missing references)
//IL_09e3: Unknown result type (might be due to invalid IL or missing references)
//IL_09e8: Unknown result type (might be due to invalid IL or missing references)
//IL_09ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0a04: Unknown result type (might be due to invalid IL or missing references)
//IL_0f2e: Unknown result type (might be due to invalid IL or missing references)
//IL_0f33: 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)
//IL_05f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0ba1: Unknown result type (might be due to invalid IL or missing references)
//IL_0ba6: Unknown result type (might be due to invalid IL or missing references)
//IL_0bbd: Unknown result type (might be due to invalid IL or missing references)
//IL_0bc2: Unknown result type (might be due to invalid IL or missing references)
//IL_0704: Unknown result type (might be due to invalid IL or missing references)
//IL_0709: Unknown result type (might be due to invalid IL or missing references)
//IL_0d5f: Unknown result type (might be due to invalid IL or missing references)
//IL_0d64: Unknown result type (might be due to invalid IL or missing references)
//IL_0d7b: Unknown result type (might be due to invalid IL or missing references)
//IL_0d80: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)Player == (Object)null || (Object)(object)PlayerCam == (Object)null)
{
PlayerCam = GameObject.Find("Main Camera");
Player = GameObject.Find("Player");
}
if ((Object)(object)Player.transform.parent != (Object)null || (Object)(object)PlayerCam.transform.parent != (Object)(object)Player)
{
PlayerCam.transform.SetParent(Player.transform);
Player.transform.SetParent((Transform)null);
}
if (Player.transform.localScale != new Vector3(1f, 1f, 1f) || PlayerCam.transform.localScale != new Vector3(1f, 1f, 1f))
{
Player.transform.localScale = new Vector3(1f, 1f, 1f);
PlayerCam.transform.localScale = new Vector3(1f, 1f, 1f);
}
if (Input.GetKeyDown((KeyCode)92))
{
ToggleMode++;
ClearNotif();
if (ToggleMode == 0)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=red>Mode set to: " + ToggleMode + " This Mode is Multaplicative.</color>", "", "", 0, false);
}
else if (ToggleMode == 1)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=red>Mode set to: " + ToggleMode + " This Mode is Addative.</color>", "", "", 0, false);
}
else if (ToggleMode == 2)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=red>Mode set to: " + ToggleMode + " This Mode is Control individual axis. \n Press ] to swap between axices and = and - to increase or decrease</color>", "", "", 0, false);
}
else if (ToggleMode == 3)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=red>Mode set to: " + ToggleMode + " This Mode is Disabled. \n Any inputs that would normally affect sale have been disabled because mode changing!</color>", "", "", 0, false);
}
else if (ToggleMode == 4)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=red>Mode set to: " + ToggleMode + " This mode is flip current x y or/and z</color>", "", "", 0, false);
}
else if (ToggleMode == 5)
{
ToggleMode = 0;
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=red>Mode set to: " + ToggleMode + " This Mode is Multaplicative.</color>", "", "", 0, false);
}
}
if ((Object)(object)SingularityPrefab == (Object)null)
{
SingularityPrefab = new GameObject();
}
else if ((Object)(object)Singularity == (Object)null)
{
Singularity = Object.Instantiate<GameObject>(SingularityPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
}
if (ToggleMode == 3)
{
return;
}
Vector3 sizeControl;
if (ToggleMode == 0)
{
if (Input.GetKeyDown((KeyCode)61) && SingleAxisControl == 0)
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Add multiple size from x y and z");
SizeControl = new Vector3(SizeControl.x * 10f, SizeControl.y * 10f, SizeControl.z * 10f);
ClearNotif();
HudMessageReceiver instance = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "\n Press 0 To update everying size</color>", "", "", 0, false);
}
else if (Input.GetKeyDown((KeyCode)45) && SingleAxisControl == 0)
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Remove multiple size from x y and z");
SizeControl = new Vector3(SizeControl.x * 0.1f, SizeControl.y * 0.1f, SizeControl.z * 0.1f);
ClearNotif();
HudMessageReceiver instance2 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance2.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "\n Press 0 To update everying size</color>", "", "", 0, false);
}
if (Input.GetKeyDown((KeyCode)61) && (SingleAxisControl == 1 || SingleAxisControl == 2 || SingleAxisControl == 3))
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Add multiple size from x y or z");
if (SingleAxisControl == 1)
{
SizeControl.x *= 10f;
}
if (SingleAxisControl == 2)
{
SizeControl.y *= 10f;
}
if (SingleAxisControl == 3)
{
SizeControl.z *= 10f;
}
ClearNotif();
HudMessageReceiver instance3 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance3.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "\n Press 0 To update everying size</color>", "", "", 0, false);
}
else if (Input.GetKeyDown((KeyCode)45) && (SingleAxisControl == 1 || SingleAxisControl == 2 || SingleAxisControl == 3))
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Remove multiple size from x y or z");
if (SingleAxisControl == 1)
{
SizeControl.x *= 0.1f;
}
if (SingleAxisControl == 2)
{
SizeControl.y *= 0.1f;
}
if (SingleAxisControl == 3)
{
SizeControl.z *= 0.1f;
}
ClearNotif();
HudMessageReceiver instance4 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance4.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "\n Press 0 To update everying size</color>", "", "", 0, false);
}
}
else if (ToggleMode == 1)
{
if (Input.GetKeyDown((KeyCode)61) && SingleAxisControl == 0)
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Add 1 to all decimal level");
decimal num = (decimal)SizeControl.x;
decimal num2 = (decimal)SizeControl.y;
decimal num3 = (decimal)SizeControl.z;
decimal d = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num)[3] >> 16));
decimal d2 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num2)[3] >> 16));
decimal d3 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num3)[3] >> 16));
num = decimal.Add(num, d);
num2 = decimal.Add(num2, d2);
num3 = decimal.Add(num3, d3);
SizeControl = new Vector3((float)num, (float)num2, (float)num3);
ClearNotif();
HudMessageReceiver instance5 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance5.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "\n Press 0 To update everying size</color>", "", "", 0, false);
}
if (Input.GetKeyDown((KeyCode)45) && SingleAxisControl == 0)
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Remove 1 from all decimal level");
decimal num4 = (decimal)SizeControl.x;
decimal num5 = (decimal)SizeControl.y;
decimal num6 = (decimal)SizeControl.z;
decimal d4 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num4)[3] >> 16));
decimal d5 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num5)[3] >> 16));
decimal d6 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num6)[3] >> 16));
num4 = decimal.Subtract(num4, d4);
num5 = decimal.Subtract(num5, d5);
num6 = decimal.Subtract(num6, d6);
SizeControl = new Vector3((float)num4, (float)num5, (float)num6);
ClearNotif();
HudMessageReceiver instance6 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance6.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "\n Press 0 To update everying size</color>", "", "", 0, false);
}
else if (Input.GetKeyDown((KeyCode)61) && (SingleAxisControl == 1 || SingleAxisControl == 2 || SingleAxisControl == 3))
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Add 1 to x y or z");
decimal num7 = (decimal)SizeControl.x;
decimal num8 = (decimal)SizeControl.y;
decimal num9 = (decimal)SizeControl.z;
decimal d7 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num7)[3] >> 16));
decimal d8 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num8)[3] >> 16));
decimal d9 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num9)[3] >> 16));
if (SingleAxisControl == 1)
{
num7 = decimal.Add(num7, d7);
}
if (SingleAxisControl == 2)
{
num8 = decimal.Add(num8, d8);
}
if (SingleAxisControl == 3)
{
num9 = decimal.Add(num9, d9);
}
SizeControl = new Vector3((float)num7, (float)num8, (float)num9);
ClearNotif();
HudMessageReceiver instance7 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance7.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "\n Press 0 To update everying size</color>", "", "", 0, false);
}
else if (Input.GetKeyDown((KeyCode)45) && (SingleAxisControl == 1 || SingleAxisControl == 2 || SingleAxisControl == 3))
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Remove 1 from x y or z");
decimal num10 = (decimal)SizeControl.x;
decimal num11 = (decimal)SizeControl.y;
decimal num12 = (decimal)SizeControl.z;
decimal d10 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num10)[3] >> 16));
decimal d11 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num11)[3] >> 16));
decimal d12 = decimal.Divide(1m, (decimal)Math.Pow(10.0, decimal.GetBits(num12)[3] >> 16));
if (SingleAxisControl == 1)
{
num10 = decimal.Subtract(num10, d10);
}
if (SingleAxisControl == 2)
{
num11 = decimal.Subtract(num11, d11);
}
if (SingleAxisControl == 3)
{
num12 = decimal.Subtract(num12, d12);
}
SizeControl = new Vector3((float)num10, (float)num11, (float)num12);
ClearNotif();
HudMessageReceiver instance8 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance8.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "\n Press 0 To update everying size</color>", "", "", 0, false);
}
}
else if (ToggleMode == 2)
{
if (Input.GetKeyDown((KeyCode)93))
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Size control add 1");
SingleAxisControl++;
ClearNotif();
AxisMsg();
}
else if (Input.GetKeyDown((KeyCode)91))
{
((BaseUnityPlugin)this).Logger.LogInfo((object)"Size control remove 1");
SingleAxisControl--;
ClearNotif();
AxisMsg();
}
}
else if (ToggleMode == 4 && (Input.GetKeyDown((KeyCode)61) || Input.GetKeyDown((KeyCode)45)))
{
if (SingleAxisControl == 0)
{
SizeControl *= -1f;
}
if (SingleAxisControl == 1)
{
SizeControl.x *= -1f;
}
if (SingleAxisControl == 2)
{
SizeControl.y *= -1f;
}
if (SingleAxisControl == 3)
{
SizeControl.z *= -1f;
}
HudMessageReceiver instance9 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance9.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "</color>", "", "", 0, false);
}
if (Input.GetKeyDown((KeyCode)48))
{
ListGameObjectsInScene();
ClearNotif();
UpdateSize();
}
else if (Input.GetKeyDown((KeyCode)57))
{
SizeControl = new Vector3(1f, 1f, 1f);
ClearNotif();
HudMessageReceiver instance10 = MonoSingleton<HudMessageReceiver>.Instance;
sizeControl = SizeControl;
instance10.SendHudMessage("<color=red>Current scale: " + ((object)(Vector3)(ref sizeControl)).ToString() + "</color>", "", "", 0, false);
UpdateSize();
}
}
private void UpdateSize()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: 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_00f2: Unknown result type (might be due to invalid IL or missing references)
//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
if (SizeControl != new Vector3(0f, 0f, 0f))
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=blue>Updated size to: " + SizeControl.x + " " + SizeControl.y + " " + SizeControl.z + "</color>", "", "", 0, false);
Singularity.transform.localScale = new Vector3(SizeControl.x, SizeControl.y, SizeControl.z);
}
else if (SizeControl == new Vector3(0f, 0f, 0f))
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=red>Trying to set the scale to 0 will immediately crash your game \n This failsafe has prevented it!</color>", "", "", 0, false);
}
}
private void ListGameObjectsInScene()
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
Scene activeScene = SceneManager.GetActiveScene();
GameObject[] rootGameObjects = ((Scene)(ref activeScene)).GetRootGameObjects();
GameObject[] array = rootGameObjects;
foreach (GameObject val in array)
{
if ((Object)(object)val != (Object)(object)Singularity || (Object)(object)val != (Object)(object)Player || (Object)(object)val != (Object)(object)PlayerCam)
{
val.transform.SetParent(Singularity.transform, false);
}
}
}
private void ClearNotif()
{
MonoSingleton<HudMessageReceiver>.Instance.ClearMessage();
}
private void AxisMsg()
{
((BaseUnityPlugin)this).Logger.LogInfo((object)SingleAxisControl);
if (SingleAxisControl == 0)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=yellow>Mode set to: " + SingleAxisControl + " This Mode is all axies.</color>", "", "", 0, false);
}
else if (SingleAxisControl == 1)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=blue>Mode set to: " + SingleAxisControl + " This Mode is x.</color>", "", "", 0, false);
}
else if (SingleAxisControl == 2)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=green>Mode set to: " + SingleAxisControl + " This Mode is y</color>", "", "", 0, false);
}
else if (SingleAxisControl == 3)
{
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=orange>Mode set to: " + SingleAxisControl + " This Mode is z</color>", "", "", 0, false);
}
else if (SingleAxisControl >= 4 || SingleAxisControl <= -1)
{
SingleAxisControl = 0;
MonoSingleton<HudMessageReceiver>.Instance.SendHudMessage("<color=yellow>Mode set to: " + SingleAxisControl + " This Mode is all axies.</color>", "", "", 0, false);
}
}
}