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.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: IgnoresAccessChecksTo("")]
[assembly: AssemblyCompany("Marms")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("PlushieMod")]
[assembly: AssemblyTitle("PlushieMod")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
}
namespace PlushieMod
{
[BepInPlugin("Marms.PlushieMod", "PlushieMod", "1.0.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class PlushieMod : BaseUnityPlugin
{
internal static PlushieMod Instance { get; private set; }
internal static ManualLogSource Logger => Instance._logger;
private ManualLogSource _logger => ((BaseUnityPlugin)this).Logger;
internal Harmony? Harmony { get; set; }
private void Awake()
{
Instance = this;
((Component)this).gameObject.transform.parent = null;
((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
Patch();
Logger.LogInfo((object)$"{((BaseUnityPlugin)this).Info.Metadata.GUID} v{((BaseUnityPlugin)this).Info.Metadata.Version} has loaded!");
}
internal void Patch()
{
//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_0021: Expected O, but got Unknown
//IL_0026: Expected O, but got Unknown
if (Harmony == null)
{
Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID);
Harmony val2 = val;
Harmony = val;
}
Harmony.PatchAll();
}
internal void Unpatch()
{
Harmony? harmony = Harmony;
if (harmony != null)
{
harmony.UnpatchSelf();
}
}
private void Update()
{
}
}
public class SizeChanger : MonoBehaviour
{
[SerializeField]
private GameObject objectToChange;
[SerializeField]
private float minSize = 0.5f;
[SerializeField]
private float maxSize = 2f;
[SerializeField]
private float sizeChangeValue = 0.95f;
[SerializeField]
private float perChangeCap = 0.2f;
[SerializeField]
private float dollarValueMultiplier = 1.5f;
private float capMax;
private float capMin;
private PhysGrabObject physGrab;
private Transform _transform;
private bool canChange = false;
private bool canRoll = true;
private bool hasCapTriggered = false;
private void Start()
{
_transform = objectToChange.transform;
physGrab = ((Component)this).GetComponent<PhysGrabObject>();
}
private void Update()
{
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
if (physGrab.playerGrabbing.Count <= 0)
{
canRoll = true;
canChange = false;
}
if (canChange && physGrab.playerGrabbing.Count > 0)
{
HandleSizeChange(sizeChangeValue);
}
else if (canRoll && physGrab.playerGrabbing.Count > 0)
{
canChange = Roll();
canRoll = false;
capMax = _transform.localScale.x + perChangeCap;
capMin = _transform.localScale.x - perChangeCap;
}
}
private void HandleSizeChange(float value)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_0167: 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_0177: Unknown result type (might be due to invalid IL or missing references)
//IL_017f: 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)
Vector3 localScale = _transform.localScale;
if (localScale.x * value >= maxSize)
{
if (!hasCapTriggered)
{
ModifyDollarValue();
}
_transform.localScale = new Vector3(maxSize, maxSize, maxSize);
canChange = false;
hasCapTriggered = true;
}
else if (localScale.x * value <= minSize)
{
if (!hasCapTriggered)
{
ModifyDollarValue();
}
_transform.localScale = new Vector3(minSize, minSize, minSize);
hasCapTriggered = true;
canChange = false;
}
else if (localScale.x * value <= capMin)
{
_transform.localScale = new Vector3(capMin, capMin, capMin);
canChange = false;
}
else if (localScale.x >= capMax)
{
_transform.localScale = new Vector3(capMax, capMax, capMax);
canChange = false;
}
else
{
_transform.localScale = new Vector3(localScale.x * value, localScale.y * value, localScale.z * value);
}
}
private bool Roll()
{
if (Random.Range(1, 10) <= 5)
{
return false;
}
return true;
}
private void ModifyDollarValue()
{
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
PhysGrabObjectImpactDetector component = objectToChange.GetComponent<PhysGrabObjectImpactDetector>();
component.Heal(dollarValueMultiplier, objectToChange.transform.position);
ValuableObject component2 = objectToChange.GetComponent<ValuableObject>();
}
}
}