using System; 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 BepInEx; using BepInEx.Logging; using HarmonyLib; using Microsoft.CodeAnalysis; using PluginConfig.API; using PluginConfig.API.Fields; 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: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("aquavirtualpet")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Aqua Virtual Ultra Pet")] [assembly: AssemblyTitle("aquavirtualpet")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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 aquavirtualpet { public class Aqua : MonoBehaviour { private RectTransform trans; private Animator ani; public float width = 80f; public float jumpMult = 1f; public float speedMult = 1f; public float gravMult = 1f; public float waveProbability = 20f; public bool willWave = true; public bool wallJumps = true; private float yVelocity; private float xCoeff = 1f; private float waveTime = 0f; private RectTransform canvas; private readonly float[] waveTimes = new float[2] { 1.35f, 1.017f }; private void Start() { trans = ((Component)this).gameObject.GetComponent(); canvas = GameObject.Find("/Canvas").GetComponent(); ani = ((Component)this).gameObject.GetComponent(); Jump(); } private void Jump(float min = -1f, float max = 1f, bool jumps = true, bool canWave = false) { if (waveTime > 0f) { return; } if (willWave && canWave && Random.Range(0f, 1f) > 1f - 1f / waveProbability) { int num = Random.Range(1, 3); ani.SetInteger("Anim", num); waveTime = waveTimes[num - 1] * (float)Random.Range(2, 6); yVelocity = 0f; xCoeff = 0f; } else { if (jumps) { yVelocity = width * jumpMult * Random.Range(2f, 4f); } xCoeff = Random.Range(min, max); } } private void Update() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_0064: 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_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) trans.sizeDelta = new Vector2(width, width); if (trans.anchoredPosition.x > canvas.sizeDelta.x / 2f - width / 2f) { trans.anchoredPosition = new Vector2(canvas.sizeDelta.x / 2f - width / 2f, trans.anchoredPosition.y); Jump(-1f, -0.1f, wallJumps); } if (trans.anchoredPosition.x < 0f - (canvas.sizeDelta.x / 2f - width / 2f)) { trans.anchoredPosition = new Vector2(0f - (canvas.sizeDelta.x / 2f - width / 2f), trans.anchoredPosition.y); Jump(0.1f, 1f, wallJumps); } if (trans.anchoredPosition.y < 0f) { trans.anchoredPosition = new Vector2(trans.anchoredPosition.x, 0f); Jump(-1f, 1f, jumps: true, canWave: true); } if (ani.GetInteger("Anim") != 0) { waveTime -= Time.deltaTime; if (waveTime < 0f) { ani.SetInteger("Anim", 0); Jump(); } } else { ((Transform)trans).Translate(Vector2.op_Implicit(new Vector2(width * xCoeff * 2f * speedMult, yVelocity) * Time.deltaTime)); yVelocity -= width * 8f * gravMult * Time.deltaTime; } } } [BepInPlugin("aquavirtualpet", "Aqua Virtual Ultra Pet", "1.0.0")] public class Plugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static FloatValueChangeEventDelegate <>9__9_0; public static FloatValueChangeEventDelegate <>9__9_1; public static FloatValueChangeEventDelegate <>9__9_2; public static FloatValueChangeEventDelegate <>9__9_3; public static FloatValueChangeEventDelegate <>9__9_4; public static BoolValueChangeEventDelegate <>9__9_5; public static BoolValueChangeEventDelegate <>9__9_6; internal void b__9_0(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.width = e.value; } } internal void b__9_1(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.jumpMult = e.value; } } internal void b__9_2(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.speedMult = e.value; } } internal void b__9_3(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.gravMult = e.value; } } internal void b__9_4(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.waveProbability = e.value; } } internal void b__9_5(BoolValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.willWave = e.value; } } internal void b__9_6(BoolValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.wallJumps = e.value; } } } internal static ManualLogSource Logger; public static GameObject aqua; public static Aqua aquaSettings; public Harmony harm; public static string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); public static readonly AssetBundle Assets = AssetBundle.LoadFromFile(Path.Combine(directory, "aqua.bundle")); public static readonly Dictionary assetDict = new Dictionary(); private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Logger.LogInfo((object)"Plugin aquavirtualpet is loaded!"); SceneManager.sceneLoaded += OnSceneLoaded; Object[] array = Assets.LoadAllAssets(); Object[] array2 = array; foreach (Object val in array2) { Object val2 = val; assetDict[val2.name] = val2; Logger.LogInfo((object)("Loaded " + ((object)val).GetType()?.ToString() + " " + val2.name)); } } private static void UpdateAqua() { aquaSettings.width = AQUAConfig.sizeField.value; aquaSettings.jumpMult = AQUAConfig.jumpField.value; aquaSettings.speedMult = AQUAConfig.speedField.value; aquaSettings.gravMult = AQUAConfig.gravField.value; aquaSettings.waveProbability = AQUAConfig.waveProbField.value; aquaSettings.willWave = AQUAConfig.waveField.value; aquaSettings.wallJumps = AQUAConfig.wallJumpField.value; } private void Start() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Expected O, but got Unknown //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Expected O, but got Unknown //IL_00c8: 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_00d3: Expected O, but got Unknown //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Expected O, but got Unknown //IL_011c: 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) //IL_0127: Expected O, but got Unknown AQUAConfig.Init(); FloatField sizeField = AQUAConfig.sizeField; object obj = <>c.<>9__9_0; if (obj == null) { FloatValueChangeEventDelegate val = delegate(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.width = e.value; } }; <>c.<>9__9_0 = val; obj = (object)val; } sizeField.onValueChange += (FloatValueChangeEventDelegate)obj; FloatField jumpField = AQUAConfig.jumpField; object obj2 = <>c.<>9__9_1; if (obj2 == null) { FloatValueChangeEventDelegate val2 = delegate(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.jumpMult = e.value; } }; <>c.<>9__9_1 = val2; obj2 = (object)val2; } jumpField.onValueChange += (FloatValueChangeEventDelegate)obj2; FloatField speedField = AQUAConfig.speedField; object obj3 = <>c.<>9__9_2; if (obj3 == null) { FloatValueChangeEventDelegate val3 = delegate(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.speedMult = e.value; } }; <>c.<>9__9_2 = val3; obj3 = (object)val3; } speedField.onValueChange += (FloatValueChangeEventDelegate)obj3; FloatField gravField = AQUAConfig.gravField; object obj4 = <>c.<>9__9_3; if (obj4 == null) { FloatValueChangeEventDelegate val4 = delegate(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.gravMult = e.value; } }; <>c.<>9__9_3 = val4; obj4 = (object)val4; } gravField.onValueChange += (FloatValueChangeEventDelegate)obj4; FloatField waveProbField = AQUAConfig.waveProbField; object obj5 = <>c.<>9__9_4; if (obj5 == null) { FloatValueChangeEventDelegate val5 = delegate(FloatValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.waveProbability = e.value; } }; <>c.<>9__9_4 = val5; obj5 = (object)val5; } waveProbField.onValueChange += (FloatValueChangeEventDelegate)obj5; BoolField waveField = AQUAConfig.waveField; object obj6 = <>c.<>9__9_5; if (obj6 == null) { BoolValueChangeEventDelegate val6 = delegate(BoolValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.willWave = e.value; } }; <>c.<>9__9_5 = val6; obj6 = (object)val6; } waveField.onValueChange += (BoolValueChangeEventDelegate)obj6; BoolField wallJumpField = AQUAConfig.wallJumpField; object obj7 = <>c.<>9__9_6; if (obj7 == null) { BoolValueChangeEventDelegate val7 = delegate(BoolValueChangeEvent e) { if ((Object)(object)aqua != (Object)null) { aquaSettings.wallJumps = e.value; } }; <>c.<>9__9_6 = val7; obj7 = (object)val7; } wallJumpField.onValueChange += (BoolValueChangeEventDelegate)obj7; } private static void OnSceneLoaded(Scene scene, LoadSceneMode mode) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown aqua = null; aquaSettings = null; GameObject val = GameObject.Find("/Canvas"); if ((Object)(object)val != (Object)null) { aqua = Object.Instantiate((GameObject)assetDict["Aqua"], val.transform); aquaSettings = ((Component)aqua.transform.GetChild(0)).gameObject.AddComponent(); UpdateAqua(); } } } public static class AQUAConfig { private static PluginConfigurator config; public static FloatField sizeField; public static FloatField jumpField; public static FloatField speedField; public static FloatField gravField; public static FloatField waveProbField; public static BoolField waveField; public static BoolField wallJumpField; public static Dictionary weaponPairs = new Dictionary(); private static string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); public static void Init() { //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Expected O, but got Unknown //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Expected O, but got Unknown //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Expected O, but got Unknown //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Expected O, but got Unknown //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Expected O, but got Unknown //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Expected O, but got Unknown config = PluginConfigurator.Create("Aqua Virtual Ultra Pet", "aquavirtualpet"); config.SetIconWithURL("file://" + Path.Combine(directory, "icon.png")); sizeField = new FloatField(config.rootPanel, "Aqua Size", "size", 80f, 1f, 500f); jumpField = new FloatField(config.rootPanel, "Jump Power", "jump", 1f, 0.1f, 10f); speedField = new FloatField(config.rootPanel, "Speed", "spd", 1f, 0.1f, 10f); gravField = new FloatField(config.rootPanel, "Gravity", "grav", 1f, 0.1f, 10f); waveField = new BoolField(config.rootPanel, "Waves", "wv", true); waveProbField = new FloatField(config.rootPanel, "Wave Probability (1 in", "wvp", 20f, 1f, 100f); wallJumpField = new BoolField(config.rootPanel, "Wall Jumps", "wll", true); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "aquavirtualpet"; public const string PLUGIN_NAME = "Aqua Virtual Ultra Pet"; public const string PLUGIN_VERSION = "1.0.0"; } }