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.Configuration;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using TMPro;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Controls;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
[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 = "")]
[assembly: AssemblyCompany("AbilityPresets")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Allows the user to set ability presets that they can access instantly by pressing buttons")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("AbilityPresets")]
[assembly: AssemblyTitle("AbilityPresets")]
[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 AbilityPresets
{
[BepInPlugin("com.PizzaMan730.AbilityPresets", "AbilityPresets", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
private ConfigFile config;
private ConfigEntry<int> Preset1_1;
private ConfigEntry<int> Preset1_2;
private ConfigEntry<int> Preset1_3;
private ConfigEntry<int> Preset2_1;
private ConfigEntry<int> Preset2_2;
private ConfigEntry<int> Preset2_3;
private ConfigEntry<int> Preset3_1;
private ConfigEntry<int> Preset3_2;
private ConfigEntry<int> Preset3_3;
private ConfigEntry<int> Preset4_1;
private ConfigEntry<int> Preset4_2;
private ConfigEntry<int> Preset4_3;
private ConfigEntry<int> Preset5_1;
private ConfigEntry<int> Preset5_2;
private ConfigEntry<int> Preset5_3;
private ConfigEntry<int> Preset6_1;
private ConfigEntry<int> Preset6_2;
private ConfigEntry<int> Preset6_3;
private ConfigEntry<int> Preset7_1;
private ConfigEntry<int> Preset7_2;
private ConfigEntry<int> Preset7_3;
private ConfigEntry<int> Preset8_1;
private ConfigEntry<int> Preset8_2;
private ConfigEntry<int> Preset8_3;
private ConfigEntry<int> Preset9_1;
private ConfigEntry<int> Preset9_2;
private ConfigEntry<int> Preset9_3;
private ConfigEntry<int> Preset0_1;
private ConfigEntry<int> Preset0_2;
private ConfigEntry<int> Preset0_3;
private void Awake()
{
//IL_0401: Unknown result type (might be due to invalid IL or missing references)
//IL_0407: Expected O, but got Unknown
((BaseUnityPlugin)this).Logger.LogInfo((object)"AbilityPresets has loaded!");
config = ((BaseUnityPlugin)this).Config;
Preset1_1 = config.Bind<int>("Preset 1", "Slot 1", 0, "");
Preset1_2 = config.Bind<int>("Preset 1", "Slot 2", 0, "");
Preset1_3 = config.Bind<int>("Preset 1", "Slot 3", 0, "");
Preset2_1 = config.Bind<int>("Preset 2", "Slot 1", 0, "");
Preset2_2 = config.Bind<int>("Preset 2", "Slot 2", 0, "");
Preset2_3 = config.Bind<int>("Preset 2", "Slot 3", 0, "");
Preset3_1 = config.Bind<int>("Preset 3", "Slot 1", 0, "");
Preset3_2 = config.Bind<int>("Preset 3", "Slot 2", 0, "");
Preset3_3 = config.Bind<int>("Preset 3", "Slot 3", 0, "");
Preset4_1 = config.Bind<int>("Preset 4", "Slot 1", 0, "");
Preset4_2 = config.Bind<int>("Preset 4", "Slot 2", 0, "");
Preset4_3 = config.Bind<int>("Preset 4", "Slot 3", 0, "");
Preset5_1 = config.Bind<int>("Preset 5", "Slot 1", 0, "");
Preset5_2 = config.Bind<int>("Preset 5", "Slot 2", 0, "");
Preset5_3 = config.Bind<int>("Preset 5", "Slot 3", 0, "");
Preset6_1 = config.Bind<int>("Preset 6", "Slot 1", 0, "");
Preset6_2 = config.Bind<int>("Preset 6", "Slot 2", 0, "");
Preset6_3 = config.Bind<int>("Preset 6", "Slot 3", 0, "");
Preset7_1 = config.Bind<int>("Preset 7", "Slot 1", 0, "");
Preset7_2 = config.Bind<int>("Preset 7", "Slot 2", 0, "");
Preset7_3 = config.Bind<int>("Preset 7", "Slot 3", 0, "");
Preset8_1 = config.Bind<int>("Preset 8", "Slot 1", 0, "");
Preset8_2 = config.Bind<int>("Preset 8", "Slot 2", 0, "");
Preset8_3 = config.Bind<int>("Preset 8", "Slot 3", 0, "");
Preset9_1 = config.Bind<int>("Preset 9", "Slot 1", 0, "");
Preset9_2 = config.Bind<int>("Preset 9", "Slot 2", 0, "");
Preset9_3 = config.Bind<int>("Preset 9", "Slot 3", 0, "");
Preset0_1 = config.Bind<int>("Preset 0", "Slot 1", 0, "");
Preset0_2 = config.Bind<int>("Preset 0", "Slot 2", 0, "");
Preset0_3 = config.Bind<int>("Preset 0", "Slot 3", 0, "");
Harmony val = new Harmony("com.PizzaMan730.AbilityPresets");
}
private void Update()
{
//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)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_05a6: Unknown result type (might be due to invalid IL or missing references)
//IL_05ad: Expected O, but got Unknown
//IL_05e2: Unknown result type (might be due to invalid IL or missing references)
//IL_0606: Unknown result type (might be due to invalid IL or missing references)
//IL_0634: Unknown result type (might be due to invalid IL or missing references)
//IL_0639: Unknown result type (might be due to invalid IL or missing references)
//IL_0677: Unknown result type (might be due to invalid IL or missing references)
//IL_068b: Unknown result type (might be due to invalid IL or missing references)
Scene activeScene = SceneManager.GetActiveScene();
if (!(((Scene)(ref activeScene)).name == "ChSelect_online"))
{
activeScene = SceneManager.GetActiveScene();
if (!(((Scene)(ref activeScene)).name == "CharacterSelect"))
{
return;
}
}
bool isPressed = ((ButtonControl)Keyboard.current[(Key)55]).isPressed;
if (((ButtonControl)Keyboard.current[(Key)41]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset1_1, Preset1_2, Preset1_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset1_1.Value, Preset1_2.Value, Preset1_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)42]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset2_1, Preset2_2, Preset2_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset2_1.Value, Preset2_2.Value, Preset2_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)43]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset3_1, Preset3_2, Preset3_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset3_1.Value, Preset3_2.Value, Preset3_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)44]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset4_1, Preset4_2, Preset4_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset4_1.Value, Preset4_2.Value, Preset4_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)45]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset5_1, Preset5_2, Preset5_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset5_1.Value, Preset5_2.Value, Preset5_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)46]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset6_1, Preset6_2, Preset6_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset6_1.Value, Preset6_2.Value, Preset6_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)47]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset7_1, Preset7_2, Preset7_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset7_1.Value, Preset7_2.Value, Preset7_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)48]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset8_1, Preset8_2, Preset8_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset8_1.Value, Preset8_2.Value, Preset8_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)49]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset9_1, Preset9_2, Preset9_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset9_1.Value, Preset9_2.Value, Preset9_3.Value);
}
}
if (((ButtonControl)Keyboard.current[(Key)50]).wasPressedThisFrame)
{
if (isPressed)
{
Debug.Log((object)"Saving preset");
SavePreset(Preset0_1, Preset0_2, Preset0_3);
}
else
{
Debug.Log((object)"Loading preset");
LoadPreset(Preset0_1.Value, Preset0_2.Value, Preset0_3.Value);
}
}
if ((Object)(object)GameObject.Find("PresetText") == (Object)null)
{
Canvas component = GameObject.Find("Canvas").GetComponent<Canvas>();
GameObject val = new GameObject("PresetText", new Type[2]
{
typeof(RectTransform),
typeof(TextMeshProUGUI)
});
val.transform.SetParent(((Component)component).transform);
TextMeshProUGUI component2 = val.GetComponent<TextMeshProUGUI>();
((Graphic)component2).raycastTarget = false;
((TMP_Text)component2).text = "Press a number key to load that preset\nHold control while pressing to save";
((Graphic)component2).color = Color.black;
((TMP_Text)component2).alignment = (TextAlignmentOptions)514;
((TMP_Text)component2).font = LocalizedText.localizationTable.GetFont(Settings.Get().Language, false);
((TMP_Text)component2).fontSize = 20f;
RectTransform component3 = val.GetComponent<RectTransform>();
Rect rect = ((Component)component).GetComponent<RectTransform>().rect;
float height = ((Rect)(ref rect)).height;
float width = ((Rect)(ref rect)).width;
component3.anchoredPosition = new Vector2((0f - width) / 2f + 600f, (0f - height) / 2f + 100f);
component3.sizeDelta = new Vector2(width, 100f);
val.SetActive(true);
}
}
private void SavePreset(ConfigEntry<int> Preset1, ConfigEntry<int> Preset2, ConfigEntry<int> Preset3)
{
Transform val = GameObject.Find("Rectangle1").transform.FindChild("SELECT_COLOR");
Preset1.Value = ((Component)val.FindChild("ability_TOP")).GetComponent<SelectAbility>().SelectedIndex;
Preset2.Value = ((Component)val.FindChild("ability_MID")).GetComponent<SelectAbility>().SelectedIndex;
Preset3.Value = ((Component)val.FindChild("ability_BOT")).GetComponent<SelectAbility>().SelectedIndex;
}
private void LoadPreset(int Preset1, int Preset2, int Preset3)
{
Debug.Log((object)"Test");
Transform val = GameObject.Find("Rectangle1").transform.FindChild("SELECT_COLOR");
Debug.Log((object)"Test1");
((SelectableMonoBehaviour)((Component)val.FindChild("ability_TOP")).GetComponent<SelectAbility>()).Select(Preset1);
((SelectableMonoBehaviour)((Component)val.FindChild("ability_MID")).GetComponent<SelectAbility>()).Select(Preset2);
((SelectableMonoBehaviour)((Component)val.FindChild("ability_BOT")).GetComponent<SelectAbility>()).Select(Preset3);
}
}
public enum Abilities
{
random,
dash,
grenade,
bow,
engine,
blink,
gust,
grow,
rock,
missile,
spike,
time,
smoke,
platform,
revive,
roll,
shrink,
blackhole,
invisibility,
meteor,
macho,
push,
tesla,
mine,
teleport,
drill,
hookshot,
beam
}
public static class PluginInfo
{
public const string PLUGIN_GUID = "AbilityPresets";
public const string PLUGIN_NAME = "AbilityPresets";
public const string PLUGIN_VERSION = "1.0.0";
}
}