using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.6", FrameworkDisplayName = ".NET Framework 4.6")]
[assembly: AssemblyCompany("CustomColors")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Allows you to make your Bopl any RGB color you want!")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("CustomColors")]
[assembly: AssemblyTitle("CustomColors")]
[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 CustomColors
{
[BepInPlugin("com.rbdev.CustomColors", "CustomColors", "1.0.0")]
[BepInProcess("BoplBattle.exe")]
public class Plugin : BaseUnityPlugin
{
public class Patches
{
[HarmonyPatch(typeof(PlayerBody), "UpdateSim")]
[HarmonyPostfix]
public static void ColorPatch(ref IPlayerIdHolder ___idHolder)
{
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
SlimeController[] slimeControllers = GetSlimeControllers();
foreach (SlimeController val in slimeControllers)
{
if (val.GetPlayerId() == localPlayerId && (Object)(object)val != (Object)null)
{
MonoBehaviour.print((object)"found a match!");
((Renderer)val.GetPlayerSprite()).material.SetColor("_ShadowColor", new Color(red / 255f, green / 255f, blue / 255f));
}
}
}
[HarmonyPatch(typeof(Player), "UpdateFRAMEDependentInputs")]
[HarmonyPrefix]
public static void PlayerPatch(Player __instance)
{
if (__instance.IsLocalPlayer)
{
localPlayerId = __instance.Id;
}
}
public static GameSessionHandler GetGameSessionHandler()
{
FieldInfo field = typeof(GameSessionHandler).GetField("selfRef", BindingFlags.Static | BindingFlags.NonPublic);
object? value = field.GetValue(null);
return (GameSessionHandler)((value is GameSessionHandler) ? value : null);
}
public static SlimeController[] GetSlimeControllers()
{
FieldInfo field = typeof(GameSessionHandler).GetField("slimeControllers", BindingFlags.Instance | BindingFlags.NonPublic);
return field.GetValue(GetGameSessionHandler()) as SlimeController[];
}
}
internal static float red = 255f;
internal static float green = 255f;
internal static float blue = 255f;
internal static int localPlayerId = 1;
internal static bool customColorsWindow = true;
private static ManualLogSource logger;
private void Awake()
{
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Expected O, but got Unknown
logger = ((BaseUnityPlugin)this).Logger;
((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin CustomColors is loaded!");
Harmony val = new Harmony("com.rbdev.CustomColors");
val.PatchAll(typeof(Patches));
InfoLog("Log test, ignore");
WarnLog("Warning test, ignore");
ErrorLog("Error test, ignore");
}
private void CustomColorsWindow(int windowID)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
//IL_010c: Unknown result type (might be due to invalid IL or missing references)
//IL_012b: Unknown result type (might be due to invalid IL or missing references)
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
//IL_017e: Unknown result type (might be due to invalid IL or missing references)
//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
//IL_0205: Unknown result type (might be due to invalid IL or missing references)
//IL_0224: Unknown result type (might be due to invalid IL or missing references)
//IL_0249: Unknown result type (might be due to invalid IL or missing references)
//IL_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_028d: Unknown result type (might be due to invalid IL or missing references)
//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
GUI.color = new Color(red / 255f, 0f, 0f);
red = GUI.HorizontalSlider(new Rect(10f, 20f, 150f, 30f), red, 0f, 255f);
GUI.color = new Color(0f, green / 255f, 0f);
green = GUI.HorizontalSlider(new Rect(10f, 45f, 150f, 30f), green, 0f, 255f);
GUI.color = new Color(0f, 0f, blue / 255f);
blue = GUI.HorizontalSlider(new Rect(10f, 70f, 150f, 30f), blue, 0f, 255f);
GUI.color = new Color(red / 255f, 0f, 0f);
red = float.Parse(GUI.TextField(new Rect(200f, 20f, 50f, 20f), red.ToString(), 5));
GUI.color = new Color(0f, green / 255f, 0f);
green = float.Parse(GUI.TextField(new Rect(200f, 45f, 50f, 20f), green.ToString(), 5));
GUI.color = new Color(0f, 0f, blue / 255f);
blue = float.Parse(GUI.TextField(new Rect(200f, 70f, 50f, 20f), blue.ToString(), 5));
GUI.color = new Color(red / 255f, 0f, 0f);
GUI.Label(new Rect(255f, 20f, 50f, 20f), "███████");
GUI.color = new Color(0f, green / 255f, 0f);
GUI.Label(new Rect(255f, 45f, 50f, 20f), "███████");
GUI.color = new Color(0f, 0f, blue / 255f);
GUI.Label(new Rect(255f, 70f, 50f, 20f), "███████");
GUI.color = new Color(red / 255f, green / 255f, blue / 255f);
GUI.Label(new Rect(25f, 95f, 200f, 20f), "███████████████████████████████████");
GUI.DragWindow();
}
private void OnGUI()
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_007e: 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_0099: Expected O, but got Unknown
//IL_0094: Unknown result type (might be due to invalid IL or missing references)
GUI.color = Color.yellow;
if (GUI.Button(new Rect(25f, 100f, 100f, 20f), "Custom Colors"))
{
if (customColorsWindow)
{
customColorsWindow = false;
}
else
{
customColorsWindow = true;
}
}
if (customColorsWindow)
{
GUI.color = Color.yellow;
GUI.Window(42069, new Rect(10f, 125f, 300f, 125f), new WindowFunction(CustomColorsWindow), "Custom Colors");
}
}
internal static void InfoLog(string message)
{
logger.LogInfo((object)message);
}
internal static void WarnLog(string message)
{
logger.LogWarning((object)message);
}
internal static void ErrorLog(string message)
{
logger.LogError((object)message);
}
}
public static class PluginInfo
{
public const string PLUGIN_GUID = "CustomColors";
public const string PLUGIN_NAME = "CustomColors";
public const string PLUGIN_VERSION = "1.0.0";
}
}