Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of PORO v1.0.1
PORO.dll
Decompiled a year agousing 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 Photon.Pun; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] [assembly: AssemblyCompany("PORO")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("P.O.R.O.")] [assembly: AssemblyTitle("PORO")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace PORO; internal class EvilPoroTrap : Trap { private PhysGrabObject physgrabobject; [Space] [Header("Frog Components")] public GameObject Frog; public GameObject NonRotate; [Space] [Header("Sounds")] public Sound CrankStart; public Sound CrankEnd; public Sound CrankLoop; public Sound Jump; [Space] public AnimationCurve FrogJumpCurve; private float FrogJumpLerp; public float FrogJumpSpeed; public float upMult; public float forwardMult; private bool FrogJumpActive; public float FrogJumpIntensity; [Space] [Header("Squeeze Animation")] public AnimationCurve HeadSqueezeCurve; private bool HeadSqueezeActive; public float HeadSqueezeSpeed; public float HeadSqueezeIntensity; private float HeadSqueezeLerp; [Space] [Header("Jump Delay Lerp")] public float minJumpSpeedupMult = 1.7f; [Space] [Header("Jump Delay Lerp")] public float maxJumpSpeedupMult = 0.5f; public float timeToCalmDown = 7f; public float calmLerpProgress; protected float baseScale = 0.02f; private Quaternion initialFrogRotation; private Rigidbody rb; private bool LoopPlaying; private bool everPickedUp; private float frogJumpTimer; private PhysGrabObjectImpactDetector impactDetector; private bool grabbedPrev; public float minJumpDelay = 0.5f; public float maxJumpDelay = 0.8f; protected override void Start() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) ((Trap)this).Start(); impactDetector = ((Component)this).GetComponent<PhysGrabObjectImpactDetector>(); initialFrogRotation = Frog.transform.localRotation; rb = ((Component)this).GetComponent<Rigidbody>(); physgrabobject = ((Component)this).GetComponent<PhysGrabObject>(); baseScale = (Frog.transform.localScale.x + Frog.transform.localScale.y + Frog.transform.localScale.z) / 3f; } protected override void Update() { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: 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_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0263: 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_0288: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) ((Trap)this).Update(); CrankLoop.PlayLoop(LoopPlaying, 0.8f, 0.8f, 1f); if (base.physGrabObject.grabbed) { if (!grabbedPrev) { Jump.Play(physgrabobject.centerPoint, 1f, 1f, 1f, 1f); grabbedPrev = true; if (base.physGrabObject.grabbedLocal) { PhysGrabber.instance.OverrideGrabDistance(0.8f); if (SemiFunc.IsMasterClientOrSingleplayer()) { Quaternion val = Quaternion.Euler(45f, 180f, 0f); Quaternion val2 = Quaternion.Euler(0f, 0f, 0f); Quaternion identity = Quaternion.identity; base.physGrabObject.TurnXYZ(val, val2, identity); } } } everPickedUp = true; LoopPlaying = false; if (base.trapActive) { TrapStop(); } } else { grabbedPrev = false; if (everPickedUp) { base.trapStart = true; } } if (base.trapStart && !impactDetector.inCart) { TrapActivate(); } if (!base.trapActive || base.physGrabObject.grabbed) { return; } base.enemyInvestigate = true; LoopPlaying = true; if (FrogJumpActive) { FrogJumpLerp += FrogJumpSpeed * Time.deltaTime; if (FrogJumpLerp >= 1f) { FrogJumpLerp = 0f; FrogJumpActive = false; } } if (HeadSqueezeActive) { HeadSqueezeLerp += HeadSqueezeSpeed * Time.deltaTime; base.enemyInvestigate = true; if (HeadSqueezeLerp >= 1f) { HeadSqueezeLerp = 0f; HeadSqueezeActive = false; base.trapTriggered = false; } } float num = baseScale * (1f + HeadSqueezeCurve.Evaluate(HeadSqueezeLerp) * HeadSqueezeIntensity); Frog.transform.localScale = new Vector3(num, num, num); float num2 = 40f; float num3 = 1f * Mathf.Sin(Time.time * num2); float num4 = 1f * Mathf.Sin(Time.time * num2 + MathF.PI / 2f); Frog.transform.localRotation = initialFrogRotation * Quaternion.Euler(num3, 0f, num4); Frog.transform.localPosition = new Vector3(Frog.transform.localPosition.x, Frog.transform.localPosition.y - num3 * 0.005f * Time.deltaTime, Frog.transform.localPosition.z); if (frogJumpTimer > 0f) { calmLerpProgress += Time.deltaTime; calmLerpProgress = Mathf.Min(calmLerpProgress, timeToCalmDown); frogJumpTimer -= Time.deltaTime * Mathf.Lerp(minJumpSpeedupMult, maxJumpSpeedupMult, calmLerpProgress / timeToCalmDown); } else if (SemiFunc.IsMultiplayer()) { if (SemiFunc.IsMasterClient()) { base.photonView.RPC("FrogJumpRPC", (RpcTarget)0, Array.Empty<object>()); } } else { FrogJump(); } } public void FrogJump() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_017a: 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_018a: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: 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_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) if (impactDetector.inCart) { TrapStop(); return; } frogJumpTimer = Random.Range(minJumpDelay, maxJumpDelay); base.enemyInvestigate = true; Jump.Play(physgrabobject.centerPoint, 1f, 1f, 1f, 1f); FrogJumpActive = true; FrogJumpLerp = 0f; base.enemyInvestigateRange = 5f; HeadSqueezeActive = true; HeadSqueezeLerp = 0f; if (base.isLocal) { Vector3 insideUnitSphere; if (Vector3.Dot(Frog.transform.up, Vector3.up) > 0.5f) { rb.AddForce(Vector3.up * 4f * upMult, (ForceMode)1); rb.AddForce(((Component)this).transform.forward * 2.5f * forwardMult, (ForceMode)1); insideUnitSphere = Random.insideUnitSphere; Vector3 val = ((Vector3)(ref insideUnitSphere)).normalized * Random.Range(0.05f, 0.1f); val.z = 0f; val.x = 0f; rb.AddTorque(val * 0.25f, (ForceMode)1); } else { rb.AddForce(Vector3.up * 4f * upMult, (ForceMode)1); insideUnitSphere = Random.insideUnitSphere; Vector3 normalized = ((Vector3)(ref insideUnitSphere)).normalized; rb.AddTorque(normalized * 0.03f, (ForceMode)1); } } } [PunRPC] public void FrogJumpRPC() { FrogJump(); } public void TrapStop() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) base.trapActive = false; base.trapStart = false; LoopPlaying = false; base.trapTriggered = false; CrankEnd.Play(physgrabobject.centerPoint, 1f, 1f, 1f, 1f); calmLerpProgress = 0f; } public void TrapActivate() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (!base.trapTriggered) { CrankStart.Play(physgrabobject.centerPoint, 1f, 1f, 1f, 1f); base.trapActive = true; base.trapTriggered = true; } } } public static class Constants { public const string GUID = "me.excuze.repomods.poro"; public const string NAME = "P.O.R.O."; public const string VERSION = "1.0.0"; } [BepInPlugin("PORO", "P.O.R.O.", "1.0.0")] public class Plugin : BaseUnityPlugin { public static ManualLogSource Logger; private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Logger.LogInfo((object)"Plugin PORO is loaded!"); } } public class PlushieTrap : Trap { protected PhysGrabObject physgrabobject; private MeshRenderer mesh; protected float baseScale = 0.02f; [Space] [Header("Plushie Components")] public GameObject Plushie; [Space] [Header("Sounds")] public Sound PlushVO; [Space] [Header("Head Squeeze Animation")] public AnimationCurve HeadSqueezeCurve; private bool HeadSqueezeActive; public float HeadSqueezeSpeed; public float HeadSqueezeIntensity; private float HeadSqueezeLerp; protected override void Start() { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: 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) ((Trap)this).Start(); physgrabobject = ((Component)this).GetComponent<PhysGrabObject>(); mesh = Plushie.GetComponent<MeshRenderer>(); baseScale = (Plushie.transform.localScale.x + Plushie.transform.localScale.y + Plushie.transform.localScale.z) / 3f; } protected override void Update() { //IL_009c: Unknown result type (might be due to invalid IL or missing references) ((Trap)this).Update(); if (!base.trapActive) { return; } base.enemyInvestigateRange = 5f; if (HeadSqueezeActive) { HeadSqueezeLerp += HeadSqueezeSpeed * Time.deltaTime; base.enemyInvestigate = true; if (HeadSqueezeLerp >= 1f) { HeadSqueezeLerp = 0f; HeadSqueezeActive = false; base.trapTriggered = false; } } float num = baseScale * (1f + HeadSqueezeCurve.Evaluate(HeadSqueezeLerp) * HeadSqueezeIntensity); Plushie.transform.localScale = new Vector3(num, num, num); } public virtual void TrapStop() { base.trapActive = false; physgrabobject.dead = true; } protected virtual void TrapActivate() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) if (!base.trapTriggered) { PlushVO.Play(physgrabobject.centerPoint, 1f, 1f, 1f, 1f); HeadSqueezeActive = true; base.trapActive = true; base.trapTriggered = true; } } private void TouchHeadLogic() { TrapActivate(); } public void TouchHead() { if (GameManager.instance.gameMode == 0) { TouchHeadLogic(); } else if (PhotonNetwork.IsMasterClient) { base.photonView.RPC("TouchHeadRPC", (RpcTarget)0, Array.Empty<object>()); } } [PunRPC] private void TouchHeadRPC() { TouchHeadLogic(); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "PORO"; public const string PLUGIN_NAME = "P.O.R.O."; public const string PLUGIN_VERSION = "1.0.0"; }