using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using HarmonyLib;
using Landfall.TABS;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("Tabs Poof Mod")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Tabs Poof Mod")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("8aad4f38-2ad4-4206-bf0b-7d28fb6d5c2e")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
[BepInPlugin("bayturtleking.tabs.hidetheevidence", "Hide the Evidence", "1.0.0")]
public class NoRagdollClutterPlugin : BaseUnityPlugin
{
private void Awake()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
new Harmony("bayturtleking.tabs.hidetheevidence").PatchAll();
((BaseUnityPlugin)this).Logger.LogInfo((object)"Hide the Evidence mod loaded");
}
}
[HarmonyPatch(typeof(HealthHandler), "Die", new Type[] { typeof(Unit) })]
public class Patch_HealthHandler_Die
{
private static void Postfix(HealthHandler __instance)
{
if ((Object)(object)((Component)((Component)__instance).transform.root).gameObject.GetComponent<delaydespawn>() == (Object)null)
{
((Component)((Component)__instance).transform.root).gameObject.AddComponent<delaydespawn>();
}
}
}
public class delaydespawn : MonoBehaviour
{
[CompilerGenerated]
private sealed class <despawnatdeath>d__2 : IEnumerator<object>, IDisposable, IEnumerator
{
private int <>1__state;
private object <>2__current;
public delaydespawn <>4__this;
object IEnumerator<object>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <despawnatdeath>d__2(int <>1__state)
{
this.<>1__state = <>1__state;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<>1__state = -2;
}
private bool MoveNext()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: 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_00d2: 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_007a: Unknown result type (might be due to invalid IL or missing references)
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_00de: Unknown result type (might be due to invalid IL or missing references)
//IL_00e5: Expected O, but got Unknown
//IL_00ec: 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_0117: Expected O, but got Unknown
//IL_0119: Unknown result type (might be due to invalid IL or missing references)
//IL_011e: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Unknown result type (might be due to invalid IL or missing references)
//IL_0156: Unknown result type (might be due to invalid IL or missing references)
//IL_016c: Unknown result type (might be due to invalid IL or missing references)
//IL_017d: 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_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_01aa: Unknown result type (might be due to invalid IL or missing references)
//IL_01af: Unknown result type (might be due to invalid IL or missing references)
//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
//IL_01ee: Expected O, but got Unknown
//IL_0207: Unknown result type (might be due to invalid IL or missing references)
//IL_0211: Unknown result type (might be due to invalid IL or missing references)
//IL_0216: Unknown result type (might be due to invalid IL or missing references)
//IL_022c: Unknown result type (might be due to invalid IL or missing references)
//IL_0236: Unknown result type (might be due to invalid IL or missing references)
//IL_023b: Unknown result type (might be due to invalid IL or missing references)
//IL_0252: 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_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_026d: Unknown result type (might be due to invalid IL or missing references)
//IL_027e: Unknown result type (might be due to invalid IL or missing references)
//IL_0283: Unknown result type (might be due to invalid IL or missing references)
//IL_0291: Unknown result type (might be due to invalid IL or missing references)
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_0094: Unknown result type (might be due to invalid IL or missing references)
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: Unknown result type (might be due to invalid IL or missing references)
//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
//IL_00b4: 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)
int num = <>1__state;
delaydespawn delaydespawn2 = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
<>2__current = (object)new WaitForSeconds(1.5f);
<>1__state = 1;
return true;
case 1:
{
<>1__state = -1;
if ((Object)(object)delaydespawn2._root == (Object)null)
{
return false;
}
Unit componentInChildren = delaydespawn2._root.GetComponentInChildren<Unit>();
if ((Object)(object)componentInChildren != (Object)null)
{
((Behaviour)componentInChildren).enabled = false;
}
Rigidbody[] componentsInChildren = delaydespawn2._root.GetComponentsInChildren<Rigidbody>();
Vector3 position;
if (componentsInChildren.Length != 0)
{
Vector3 val = Vector3.zero;
Rigidbody[] array = componentsInChildren;
foreach (Rigidbody val2 in array)
{
val += val2.position;
}
position = val / (float)componentsInChildren.Length;
}
else
{
position = delaydespawn2._root.transform.position + Vector3.up;
}
GameObject val3 = new GameObject("SmokeEffect");
val3.transform.position = position;
ParticleSystem val4 = val3.AddComponent<ParticleSystem>();
((Renderer)((Component)val4).GetComponent<ParticleSystemRenderer>()).material = new Material(Shader.Find("Particles/Standard Unlit"));
MainModule main = val4.main;
((MainModule)(ref main)).duration = 0.3f;
((MainModule)(ref main)).loop = false;
((MainModule)(ref main)).startLifetime = new MinMaxCurve(0.8f, 1.4f);
((MainModule)(ref main)).startSpeed = new MinMaxCurve(1f, 4f);
((MainModule)(ref main)).startSize = new MinMaxCurve(0.1f, 0.4f);
((MainModule)(ref main)).gravityModifier = MinMaxCurve.op_Implicit(-0.05f);
((MainModule)(ref main)).maxParticles = 40;
EmissionModule emission = val4.emission;
((EmissionModule)(ref emission)).SetBursts((Burst[])(object)new Burst[1]
{
new Burst(0f, (short)30)
});
ShapeModule shape = val4.shape;
((ShapeModule)(ref shape)).shapeType = (ParticleSystemShapeType)0;
((ShapeModule)(ref shape)).radius = 0.5f;
ColorOverLifetimeModule colorOverLifetime = val4.colorOverLifetime;
((ColorOverLifetimeModule)(ref colorOverLifetime)).enabled = true;
Gradient val5 = new Gradient();
val5.SetKeys((GradientColorKey[])(object)new GradientColorKey[2]
{
new GradientColorKey(new Color(0.9f, 0.9f, 0.9f), 0f),
new GradientColorKey(new Color(0.4f, 0.4f, 0.4f), 1f)
}, (GradientAlphaKey[])(object)new GradientAlphaKey[3]
{
new GradientAlphaKey(1f, 0f),
new GradientAlphaKey(0.5f, 0.5f),
new GradientAlphaKey(0f, 1f)
});
((ColorOverLifetimeModule)(ref colorOverLifetime)).color = new MinMaxGradient(val5);
val4.Play();
Object.Destroy((Object)(object)val3, 3f);
Object.Destroy((Object)(object)delaydespawn2._root);
return false;
}
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
}
private GameObject _root;
private void Start()
{
_root = ((Component)((Component)this).transform.root).gameObject;
((MonoBehaviour)this).StartCoroutine(despawnatdeath());
}
[IteratorStateMachine(typeof(<despawnatdeath>d__2))]
private IEnumerator despawnatdeath()
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <despawnatdeath>d__2(0)
{
<>4__this = this
};
}
}