Decompiled source of LowTierSisyphus v2.0.1

plugins/LowTierSisyphus/LowTierSisyphus.dll

Decompiled 8 months ago
using System;
using System.Collections.Generic;
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 HarmonyLib;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
[assembly: AssemblyCompany("LowTierSisyphus")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyDescription("Come forth, child of man, and kill yourself, now.")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+d7c92cbd25c739b12e92c37c5d023e153fd111a7")]
[assembly: AssemblyProduct("LowTierSisyphus")]
[assembly: AssemblyTitle("LowTierSisyphus")]
[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 LowTierSisy
{
	[BepInPlugin("ImNotSimon.LowTierSisyphus", "LowTierSisyphus", "1.1.0")]
	public class Plugin : BaseUnityPlugin
	{
		[HarmonyPatch(typeof(StockMapInfo), "Awake")]
		internal class Patch00
		{
			private static void Postfix(StockMapInfo __instance)
			{
				AudioSource[] array = Resources.FindObjectsOfTypeAll<AudioSource>();
				foreach (AudioSource val in array)
				{
					if (Object.op_Implicit((Object)(object)val.clip))
					{
						bool flag = false;
						List<SubtitleDataLine> list = new List<SubtitleDataLine>();
						if (((Object)val.clip).name == "sp_intro")
						{
							Debug.Log((object)"Replacing sissypuss intro");
							val.clip = LowTierSisyBundle.LoadAsset<AudioClip>("lowtiersisy.wav");
							flag = true;
							list.Add(MakeLine("You are a worthless", 0f));
							list.Add(MakeLine("BITCH ASS machine.", 1.1f));
							list.Add(MakeLine("Your life LITERALLY is as valuable as a summer's ant.", 2.26f));
							list.Add(MakeLine("I'm just gonna stomp you,", 5.86f));
							list.Add(MakeLine("and you're gonna keep coming back.", 7.36f));
							list.Add(MakeLine("I'mma seal up all my cracks,", 9.77f));
							list.Add(MakeLine("you're gonna keep coming back.", 11.48f));
							list.Add(MakeLine("Why?", 13.28f));
							list.Add(MakeLine("'Cause YOU smellin' the BLOOD,", 13.87f));
							list.Add(MakeLine("you worthless", 15.5f));
							list.Add(MakeLine("BITCH ASS machine.", 16.5f));
							list.Add(MakeLine("You're gonna stay on my dick until you DIE.", 17.78f));
							list.Add(MakeLine("You serve no purpose in life.", 20.54f));
							list.Add(MakeLine("Your purpose in life is to be on my stream", 22.021f));
							list.Add(MakeLine("SUCKING on my dick daily.", 24.34f));
							list.Add(MakeLine("Your purpose in life is to be in that chat", 26.605f));
							list.Add(MakeLine("BLOWING the dick daily.", 29f));
							list.Add(MakeLine("Your life is nothing, you serve ZERO purpose!", 31f));
							list.Add(MakeLine("Come forth, Child of Man", 34.69f));
							list.Add(MakeLine("and kill yourself", 36.73f));
							list.Add(MakeLine("NOW!", 38.036f));
						}
						if (flag)
						{
							object value = Traverse.Create((object)((Component)val).GetComponent<SubtitledAudioSource>()).Field("subtitles").GetValue();
							((SubtitleData)((value is SubtitleData) ? value : null)).lines = list.ToArray();
						}
					}
				}
			}
		}

		private static Harmony harmony;

		internal static AssetBundle LowTierSisyBundle;

		private void Awake()
		{
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			Debug.Log((object)"BEGONE! (low tier sisyphus starting)");
			Assembly.GetExecutingAssembly();
			string path = "lowtiersisy";
			LowTierSisyBundle = AssetBundle.LoadFromFile(Path.Combine(ModPath(), path));
			harmony = new Harmony("ltg.Sisyphus");
			harmony.PatchAll();
		}

		public static string ModPath()
		{
			return Assembly.GetExecutingAssembly().Location.Substring(0, Assembly.GetExecutingAssembly().Location.LastIndexOf(Path.DirectorySeparatorChar));
		}

		private static SubtitleDataLine MakeLine(string subtitle, float time)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: 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_0014: Expected O, but got Unknown
			return new SubtitleDataLine
			{
				subtitle = subtitle,
				time = time
			};
		}
	}
}