using System;
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 AntiAssists.Patches;
using BepInEx;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using PluginConfig.API;
using PluginConfig.API.Fields;
using TMPro;
using UnityEngine;
using plog;
[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("AntiAssists")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Allows buffs to be configured via PluginConfigurator without cheats")]
[assembly: AssemblyFileVersion("0.1.1.0")]
[assembly: AssemblyInformationalVersion("0.1.1+f54916fd18f1a978f539f9a753ea3b9a1522e670")]
[assembly: AssemblyProduct("AntiAssists")]
[assembly: AssemblyTitle("AntiAssists")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.1.1.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 AntiAssists
{
[BepInPlugin("com.whyis2plus2.AntiAssists", "BuffsConfig", "0.1.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Plugin : BaseUnityPlugin
{
public const string PLUGIN_GUID = "com.whyis2plus2.AntiAssists";
public const string PLUGIN_NAME = "BuffsConfig";
public const string PLUGIN_VERSION = "0.1.0";
public static Plugin instance;
public Logger logger;
private PluginConfigurator config;
public Harmony harmony;
public string workingDir;
public bool forceSand = false;
public bool radianceEnabled = false;
public float radianceTier = 1f;
private void Awake()
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Expected O, but got Unknown
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Expected O, but got Unknown
//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
//IL_00cc: Expected O, but got Unknown
//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Expected O, but got Unknown
//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0108: Expected O, but got Unknown
//IL_012e: Unknown result type (might be due to invalid IL or missing references)
//IL_0134: Expected O, but got Unknown
//IL_0172: Unknown result type (might be due to invalid IL or missing references)
//IL_017c: Expected O, but got Unknown
//IL_0185: Unknown result type (might be due to invalid IL or missing references)
//IL_018f: Expected O, but got Unknown
//IL_0198: Unknown result type (might be due to invalid IL or missing references)
//IL_01a2: Expected O, but got Unknown
instance = this;
logger = new Logger("BuffsConfig");
workingDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
harmony = new Harmony("com.whyis2plus2.AntiAssists");
harmony.PatchAll(typeof(FinalRankPatch));
harmony.PatchAll(typeof(BuffsFix));
config = PluginConfigurator.Create("BuffsConfig", "com.whyis2plus2.AntiAssists");
config.SetIconWithURL("file://" + workingDir + "/icon.png");
BoolField val = new BoolField(config.rootPanel, "Sanded Enemies", "sandToggle", forceSand);
BoolField val2 = new BoolField(config.rootPanel, "Enable Radiance", "radianceToggle", radianceEnabled);
ConfigDivision radianceDivision = new ConfigDivision(config.rootPanel, "radianceDivision");
FloatSliderField val3 = new FloatSliderField((ConfigPanel)(object)radianceDivision, "Radiance Tier", "radianceTierSlider", new Tuple<float, float>(1f, 10f), radianceTier, 0);
forceSand = val.value;
radianceEnabled = val2.value;
radianceTier = val3.value;
((ConfigField)radianceDivision).interactable = radianceEnabled;
val.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
{
forceSand = e.value;
};
val2.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
{
radianceEnabled = e.value;
((ConfigField)radianceDivision).interactable = e.value;
};
val3.onValueChange += (OnValueChangeEventDelegate)delegate(FloatSliderValueChangeEvent e)
{
radianceTier = Mathf.Round(e.newValue);
};
}
}
}
namespace AntiAssists.Patches
{
public static class BuffsFix
{
private static bool forceSand => Plugin.instance.forceSand;
private static bool radianceEnabled => Plugin.instance.radianceEnabled;
private static float radianceTier => Plugin.instance.radianceTier;
[HarmonyPostfix]
[HarmonyPatch(typeof(EnemyIdentifier), "Start")]
public static void EnemyIdentifier_Start_Postfix(ref EnemyIdentifier __instance)
{
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Invalid comparison between Unknown and I4
if (!__instance.puppet)
{
if (forceSand)
{
__instance.Sandify(false);
}
if (radianceEnabled && (int)__instance.enemyType != 39)
{
__instance.radianceTier = radianceTier;
__instance.BuffAll();
}
}
}
}
public static class FinalRankPatch
{
private static bool forceSand => Plugin.instance.forceSand;
private static bool radianceEnabled => Plugin.instance.radianceEnabled;
private static float radianceTier => Plugin.instance.radianceTier;
[HarmonyPostfix]
[HarmonyPatch(typeof(FinalRank), "SetInfo")]
public static void SetInfo_Postfix(ref FinalRank __instance, int restarts, bool damage, bool majorUsed, bool cheatsUsed)
{
int num = 1;
if (!damage)
{
num++;
}
if (majorUsed)
{
num++;
}
if (cheatsUsed)
{
num++;
}
if (radianceEnabled)
{
num++;
}
if (forceSand)
{
num++;
}
__instance.extraInfo.text = "";
if (cheatsUsed)
{
TMP_Text extraInfo = __instance.extraInfo;
extraInfo.text += "- <color=#44FF45>CHEATS USED</color>\n";
}
if (majorUsed)
{
TMP_Text extraInfo2 = __instance.extraInfo;
extraInfo2.text += "- <color=#4C99E6>MAJOR ASSISTS USED</color>\n";
}
if (restarts == 0)
{
TMP_Text extraInfo3 = __instance.extraInfo;
extraInfo3.text += "+ NO RESTARTS\n";
if (num < 3)
{
TMP_Text extraInfo4 = __instance.extraInfo;
extraInfo4.text += " (+500<color=orange>P</color>)\n";
}
}
else
{
TMP_Text extraInfo5 = __instance.extraInfo;
extraInfo5.text += $"- <color=red>{restarts}</color> RESTARTS\n";
}
if (!damage)
{
TMP_Text extraInfo6 = __instance.extraInfo;
extraInfo6.text += "+ <color=orange>NO DAMAGE</color>\n";
if (num < 3)
{
TMP_Text extraInfo7 = __instance.extraInfo;
extraInfo7.text += " (+5,000<color=orange>P</color>)\n";
}
}
if (radianceEnabled)
{
TMP_Text extraInfo8 = __instance.extraInfo;
extraInfo8.text += $"+ <color=#7de8f2>RADIANCE (TIER {(int)radianceTier})</color>\n";
if (num < 3)
{
TMP_Text extraInfo9 = __instance.extraInfo;
extraInfo9.text += $" (+{1500 * (int)radianceTier:#,##}<color=orange>P</color>)\n";
}
}
if (forceSand)
{
TMP_Text extraInfo10 = __instance.extraInfo;
extraInfo10.text += "+ <color=#f9dd75>SANDED</color>\n";
if (num < 3)
{
TMP_Text extraInfo11 = __instance.extraInfo;
extraInfo11.text += " (+1,000<color=orange>P</color>)\n";
}
}
}
[HarmonyPrefix]
[HarmonyPatch(typeof(FinalRank), "PointsShow")]
public static void PointsShow_Prefix(ref FinalRank __instance)
{
if (forceSand)
{
FinalRank obj = __instance;
obj.totalPoints += 1000;
}
if (radianceEnabled)
{
FinalRank obj2 = __instance;
obj2.totalPoints += Mathf.RoundToInt(1500f * radianceTier);
}
}
}
}