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 BepInEx;
using BepInEx.Configuration;
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(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("OnePunch")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("OnePunch")]
[assembly: AssemblyTitle("OnePunch")]
[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 OnePunch
{
[BepInPlugin("GeeEm.WrestlingEmpire.OnePunch", "OnePunch", "1.1.3")]
[HarmonyPatch]
public class Plugin : BaseUnityPlugin
{
[HarmonyPatch(typeof(DFOGOCNBECG))]
public static class DFOGOCNBECG_Patch
{
[HarmonyPatch("DIIMPIPKAFK")]
[HarmonyPrefix]
private static void DIIMPIPKAFK_Prefix(DFOGOCNBECG __instance, DFOGOCNBECG ELPIOHCPOIJ, int DODBHICKEPB, float CLNCAKDCODN, float FJDILPBOGEJ)
{
if (__instance.EMDMDLNJFKP.id == Characters.star)
{
if (NoHealthAndStun.Value)
{
DamageStun(ELPIOHCPOIJ);
}
if (Dizzyness.Value)
{
DizzyTarget(ELPIOHCPOIJ);
}
if (InjureTarget.Value)
{
Injure(ELPIOHCPOIJ);
}
if (KOTarget.Value)
{
KnockOut(ELPIOHCPOIJ);
}
if (Dismemberment.Value)
{
RandomDismemberment(ELPIOHCPOIJ);
}
}
}
[HarmonyPatch("MHNNBEOCPGA")]
[HarmonyPrefix]
private static void MHNNBEOCPGA_Prefix(DFOGOCNBECG __instance, int MKCPMOJGBEM, float FPLEMEKHJLD, float FJDILPBOGEJ)
{
if (__instance.EMDMDLNJFKP.id == Characters.star && (__instance.DPHHFKLDOOG > 0 || __instance.ELPIOHCPOIJ.NLDPMDNKGIC == 643 || __instance.ELPIOHCPOIJ.NLDPMDNKGIC == 644))
{
if (NoHealthAndStun.Value)
{
DamageStun(__instance.ELPIOHCPOIJ);
}
if (Dizzyness.Value)
{
DizzyTarget(__instance.ELPIOHCPOIJ);
}
if (InjureTarget.Value)
{
Injure(__instance.ELPIOHCPOIJ);
}
if (KOTarget.Value)
{
KnockOut(__instance.ELPIOHCPOIJ);
}
if (Dismemberment.Value)
{
RandomDismemberment(__instance.ELPIOHCPOIJ);
}
}
}
[HarmonyPatch("LKGOPCPNDNK")]
[HarmonyPrefix]
private static void LKGOPCPNDNK_Prefix(DFOGOCNBECG __instance, DFOGOCNBECG __0, int __1, float __2)
{
if (__instance.EMDMDLNJFKP.id == Characters.star)
{
if (NoHealthAndStun.Value)
{
DamageStun(__0);
}
if (Dizzyness.Value)
{
DizzyTarget(__0);
}
if (InjureTarget.Value)
{
Injure(__0);
}
if (KOTarget.Value)
{
KnockOut(__0);
}
if (Dismemberment.Value)
{
RandomDismemberment(__0);
}
}
}
[HarmonyPatch("PFGONEIPHLJ")]
[HarmonyPrefix]
private static void PFGONEIPHLJ_Prefix(DFOGOCNBECG __instance, float KCMMOFECACH, float HAFBGEAMBMI, float JHCBBFEIKHL, int HNMOIBIFJID, float CLNCAKDCODN, float FJDILPBOGEJ)
{
if (__instance.EMDMDLNJFKP.id != Characters.star)
{
return;
}
HAFBGEAMBMI *= __instance.JNLAJNFCDHA;
KCMMOFECACH *= __instance.JNLAJNFCDHA;
float nJDGEELLAKG = __instance.NJDGEELLAKG;
float bMFDFFLPBOJ = __instance.BMFDFFLPBOJ;
float num = HAFBGEAMBMI;
if (num < KCMMOFECACH / 2f)
{
num = KCMMOFECACH / 2f;
}
nJDGEELLAKG += NAEEIFNFBBO.PDOBPEFCMCK(__instance.PJJFOALHEPF, num);
bMFDFFLPBOJ += NAEEIFNFBBO.GPMMBFPCFFL(__instance.PJJFOALHEPF, num);
CLNCAKDCODN *= 0.5f + __instance.HNFHLLJOFKI[2] / 200f;
int num2 = 0;
int num3 = 0;
int num4 = 0;
float num5 = 9999f;
for (int i = 1; i <= NJBJIIIACEP.NBBBLJDBLNM; i++)
{
DFOGOCNBECG val = NJBJIIIACEP.OAAMGFLINOB[i];
if (i == __instance.PLFGKLGCOMD || !(val.AHBNKMMMGFI > 0f) || __instance.KPEFINJBJLJ[i] != 0 || LIPNHOMGGHF.FAKHAFKOBPB == 60)
{
continue;
}
int num6 = val.KFHGMKAKGDC();
if ((HNMOIBIFJID <= 0 || num6 <= 0) && num6 < 3)
{
continue;
}
float num7 = (val.DFINJNKKMFL(1) + val.DFINJNKKMFL(3)) / 2f;
num7 += 4f * (__instance.JNLAJNFCDHA * val.JNLAJNFCDHA);
if (i == __instance.NNMDEFLLNBF)
{
}
if (!(JHCBBFEIKHL > val.FNNBCDPJBIO - 3f) || !(JHCBBFEIKHL <= num7))
{
continue;
}
int num8 = val.MDOAGGHHHDC(nJDGEELLAKG, bMFDFFLPBOJ, KCMMOFECACH);
if (num8 == 0)
{
num8 = val.MDOAGGHHHDC((__instance.NJDGEELLAKG + nJDGEELLAKG) / 2f, (__instance.BMFDFFLPBOJ + bMFDFFLPBOJ) / 2f, KCMMOFECACH / 2f);
}
if (__instance.GDIEPKEPCAJ() == 0 && num6 >= 3 && val.ECCLLOHOJDO(10) > 0 && __instance.KDDHPODFDHB != -1)
{
num8 = 0;
}
if (val.DFINJNKKMFL(1) > val.FNNBCDPJBIO + 10f * val.JNLAJNFCDHA)
{
num8 = 0;
}
if (num8 > 0 && __instance.GDIEPKEPCAJ() > 0)
{
if (__instance.GEPLNBJEDLH[9] < 0 && __instance.GEPLNBJEDLH[12] < 0)
{
num8 = 0;
}
if (GIMNNPMAKNJ.JIHKMLJICDO(__instance.NJDGEELLAKG, __instance.BMFDFFLPBOJ, 0f) != GIMNNPMAKNJ.JIHKMLJICDO(val.NJDGEELLAKG, val.BMFDFFLPBOJ, 0f))
{
num8 = 0;
}
if (Mathf.Abs(__instance.EKOHAKPAOGN - val.EKOHAKPAOGN) > 2f || Mathf.Abs(__instance.FNNBCDPJBIO - val.FNNBCDPJBIO) > 2f || __instance.NELODEMHJHN != val.NELODEMHJHN)
{
num8 = 0;
}
if (__instance.KPEFINJBJLJ[0] != 0)
{
num8 = 0;
}
if ((__instance.NEMJMNEGAAH(i) > 0 || val.FIEMGOLBHIO == 3) && __instance.NNMDEFLLNBF > 0 && __instance.NNMDEFLLNBF != i && __instance.JKIPPBBKNOC != i)
{
num8 = 0;
}
}
if (val.CJAFIDDNBOC() > 0)
{
num8 = 0;
}
if (GIMNNPMAKNJ.DMPAOJMIAHN(__instance.NJDGEELLAKG, __instance.DFINJNKKMFL(1), __instance.BMFDFFLPBOJ, val.NJDGEELLAKG, val.DFINJNKKMFL(1), val.BMFDFFLPBOJ, 0f) > 0)
{
num8 = 0;
}
if (val.NELODEMHJHN > 0 && HAPFAOIMGOL.OMOGPIJGMKO[val.NELODEMHJHN].HOBALCFBGBK() != 0)
{
num8 = 0;
}
if (num8 > 0)
{
float num9 = NAEEIFNFBBO.FHPCDHIGILG(nJDGEELLAKG, bMFDFFLPBOJ, val.NJDGEELLAKG, val.BMFDFFLPBOJ);
if (num6 <= 2)
{
num9 *= 4f;
}
if (__instance.GDIEPKEPCAJ() > 0 && val.MKKDHANKPEN > 0)
{
num9 *= 2f;
}
if ((__instance.NEMJMNEGAAH(i) > 0 || val.FIEMGOLBHIO == 3) && __instance.NNMDEFLLNBF != i && __instance.JKIPPBBKNOC != i)
{
num9 *= 10f;
}
if (num9 < num5)
{
num3 = 1;
num2 = i;
num4 = num8;
num5 = num9;
}
}
}
if (__instance.KPEFINJBJLJ[0] == 0 && __instance.GPKBOEBABNI[0] == 0 && __instance.GDIEPKEPCAJ() == 0)
{
for (int j = 1; j <= HAPFAOIMGOL.HOEGNFNHMOA; j++)
{
GGKBLABCJFN val2 = HAPFAOIMGOL.OMOGPIJGMKO[j];
if (val2.LOBDMDPMFLK < 0 || (val2.LOBDMDPMFLK > 0 && HNMOIBIFJID >= 2))
{
float num10 = NAEEIFNFBBO.FHPCDHIGILG(__instance.NJDGEELLAKG, __instance.BMFDFFLPBOJ, val2.NJDGEELLAKG, val2.BMFDFFLPBOJ);
if (val2.GBLDMIAPNEP(nJDGEELLAKG, JHCBBFEIKHL, bMFDFFLPBOJ, 0f) > 0 && j != __instance.NELODEMHJHN && num10 < num5)
{
num3 = 2;
num2 = j;
num5 = num10;
}
}
}
}
if (num3 == 1 && num2 > 0)
{
int num11 = num2;
DFOGOCNBECG instance = NJBJIIIACEP.OAAMGFLINOB[num11];
if (NoHealthAndStun.Value)
{
DamageStun(instance);
}
if (Dizzyness.Value)
{
DizzyTarget(instance);
}
if (InjureTarget.Value)
{
Injure(instance);
}
if (KOTarget.Value)
{
KnockOut(instance);
}
if (Dismemberment.Value)
{
RandomDismemberment(instance);
}
}
}
}
public const string PluginGuid = "GeeEm.WrestlingEmpire.OnePunch";
public const string PluginName = "OnePunch";
public const string PluginVer = "1.1.3";
internal static ManualLogSource Log;
internal static readonly Harmony Harmony = new Harmony("GeeEm.WrestlingEmpire.OnePunch");
internal static string PluginPath;
public static ConfigEntry<bool> NoHealthAndStun;
public static ConfigEntry<bool> Dizzyness;
public static ConfigEntry<bool> InjureTarget;
public static ConfigEntry<bool> KOTarget;
public static ConfigEntry<bool> Dismemberment;
private void Awake()
{
Log = ((BaseUnityPlugin)this).Logger;
PluginPath = Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location);
NoHealthAndStun = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "No Health", true, "Attacks will remove all health and stun the target");
Dizzyness = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Dizzyness", true, "Attacks will apply dizzyness to the target");
InjureTarget = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Injure", false, "Attacks will injure the target");
KOTarget = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Knock out", false, "Attacks will knock out the target");
Dismemberment = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Dismemberment", false, "(Experimental) Attacks are very likely to remove random limbs from the target");
}
private void OnEnable()
{
Harmony.PatchAll();
((BaseUnityPlugin)this).Logger.LogInfo((object)"Loaded OnePunch!");
}
private void OnDisable()
{
Harmony.UnpatchSelf();
((BaseUnityPlugin)this).Logger.LogInfo((object)"Unloaded OnePunch!");
}
public static void RandomDismemberment(DFOGOCNBECG instance)
{
int num = Random.Range(3, 16);
instance.CMOPOKMFJMG(num, 1000000f, 1f);
}
public static void Injure(DFOGOCNBECG instance)
{
instance.PGJEOKAEPCL = Random.Range(1, 31);
if (FFCEGMEAIBP.LOBDMDPMFLK == 0 && instance.EMDMDLNJFKP.injuryTime < 2)
{
instance.EMDMDLNJFKP.injuryTime = 2;
}
CHLPMKEGJBJ.BPLLANFDDDP(instance.GPGOFIFBCLP, CHLPMKEGJBJ.KEMDEGPNJAD[NAEEIFNFBBO.PMEEFNOLAGF(1, 2, 0)], -0.1f, 1f);
instance.KMGCIKMAJCJ(NAEEIFNFBBO.PMEEFNOLAGF(2, 3, 0), 1f);
CHLPMKEGJBJ.KIKKPCJGDLM(0, 0, 0f);
instance.HLGALFAGDGC /= 2f;
instance.BBBGPIILOBB /= 2f;
Characters.LPGPAKHJMMA(NJBJIIIACEP.OAAMGFLINOB[instance.JNNBBJKLEFK].GOOKPABIPBC, instance.GOOKPABIPBC);
NJBJIIIACEP.PKGACKAGENN(instance.JNNBBJKLEFK, instance.PLFGKLGCOMD, 1);
}
public static void KnockOut(DFOGOCNBECG instance)
{
instance.DMEDPMIPBAO = 1;
instance.MGPDGDCIBGC = 1f;
}
public static void DamageStun(DFOGOCNBECG instance)
{
instance.HLGALFAGDGC = 0f;
instance.OIHGGHEDIFF = 0f;
instance.OKPAGLBJIOH = float.MaxValue;
}
public static void DizzyTarget(DFOGOCNBECG instance)
{
instance.FLOPBFFLLDE = float.MinValue;
}
}
}