Decompiled source of TheBenBroREPOMod v1.0.5

TheBenBroREPO.dll

Decompiled 2 weeks 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 Microsoft.CodeAnalysis;
using REPOLib.Modules;
using UnityEngine;
using UnityEngine.Events;

[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-CSharp")]
[assembly: IgnoresAccessChecksTo("REPOLib")]
[assembly: AssemblyCompany("TheBenBroREPO")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("TheBenBroREPO")]
[assembly: AssemblyTitle("TheBenBroREPO")]
[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;
		}
	}
}
public class ValuableNitty : MonoBehaviour
{
	private enum State
	{
		Idle,
		Active
	}

	private PhysGrabObject physGrabObject;

	private List<string> transitiveVerbs = new List<string>();

	private List<string> intransitiveVerbs = new List<string>();

	private List<string> adjectives = new List<string>();

	private List<string> intensifiers = new List<string>();

	private List<string> nouns = new List<string>();

	private List<string> adverbs = new List<string>();

	private float coolDownUntilNextSentence = 3f;

	private bool particlesPlaying;

	private State currentState;

	private string playerName = "[playerName]";

	private void Start()
	{
		physGrabObject = ((Component)this).GetComponent<PhysGrabObject>();
		InitializeWordLists();
	}

	private void Update()
	{
		if ((Object)(object)physGrabObject == (Object)null)
		{
			physGrabObject = ((Component)this).GetComponent<PhysGrabObject>();
		}
		if (SemiFunc.IsMultiplayer())
		{
			switch (currentState)
			{
			case State.Idle:
				StateIdle();
				break;
			case State.Active:
				StateActive();
				break;
			}
		}
	}

	private void StateIdle()
	{
		//IL_00ba: 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_00c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0111: 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)
		if (coolDownUntilNextSentence > 0f && physGrabObject.grabbed)
		{
			coolDownUntilNextSentence -= Time.deltaTime;
		}
		else
		{
			if (!Object.op_Implicit((Object)(object)PhysGrabber.instance) || !PhysGrabber.instance.grabbed || !Object.op_Implicit((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject) || !((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject == (Object)(object)physGrabObject))
			{
				return;
			}
			bool flag = false;
			if (!SemiFunc.IsMultiplayer())
			{
				playerName = "this nitty";
				flag = true;
			}
			else
			{
				List<PlayerAvatar> list = SemiFunc.PlayerGetAllPlayerAvatarWithinRange(10f, ((Component)PhysGrabber.instance).transform.position, false, default(LayerMask));
				PlayerAvatar val = null;
				float num = float.MaxValue;
				foreach (PlayerAvatar item in list)
				{
					if (!((Object)(object)item == (Object)(object)PlayerAvatar.instance))
					{
						float num2 = Vector3.Distance(((Component)PhysGrabber.instance).transform.position, ((Component)item).transform.position);
						if (num2 < num)
						{
							num = num2;
							val = item;
						}
					}
				}
				flag = true;
				if ((Object)(object)val != (Object)null)
				{
					playerName = "me";
				}
				else
				{
					playerName = "this potion";
				}
			}
			if (flag)
			{
				string text = GenerateAffectionateSentence();
				currentState = State.Active;
				Color val2 = default(Color);
				((Color)(ref val2))..ctor(1f, 0.3f, 0.6f, 1f);
				ChatManager.instance.PossessChatScheduleStart(10);
				ChatManager.instance.PossessChat((PossessChatID)1, text, 1f, val2, 0f, false, 0, (UnityEvent)null);
				ChatManager.instance.PossessChatScheduleEnd();
			}
		}
	}

	private void StateActive()
	{
		if (PhysGrabber.instance.grabbed && Object.op_Implicit((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject) && (Object)(object)PhysGrabber.instance.grabbedPhysGrabObject != (Object)(object)physGrabObject)
		{
			currentState = State.Idle;
			coolDownUntilNextSentence = Random.Range(5f, 15f);
		}
		else if (!ChatManager.instance.StateIsPossessed())
		{
			currentState = State.Idle;
			coolDownUntilNextSentence = Random.Range(5f, 15f);
		}
	}

	private void InitializeWordLists()
	{
		transitiveVerbs.AddRange(new string[136]
		{
			"adore", "sing oh la la with", "crush on", "fan over", "root for", "olala over", "geek out over", "vibe with", "fangirl over", "fanboy over",
			"heart", "olalalalala", "can't even", "obsess over", "trip over", "flip for", "freak over", "go nuts for", "go crazy for", "get hyped to",
			"hype up", "read a book with", "ride or die for", "show love for", "dance with", "ship", "low-key crush on", "have a thing for", "can't stop thinking about", "eyeing",
			"have robofeeling for", "catch crushie feelings for", "go heart eyes for", "get butterflies over", "have heart eyes for", "can't get over", "can't get enough of", "get in my feels over", "dream about", "imagine being happy with",
			"can't handle", "get weak for", "melt for", "have a soft spot for", "got a thing for", "obsessed with", "blushing over", "head over heels for", "feel the feels for", "admire",
			"crushing hard on", "can't even with", "totally into", "lost in", "robofeels about", "gaga for", "beeping and booping over", "extracting valuables with", "grooving to", "all about",
			"blown away by", "hyped about", "tripping over", "losing it over", "crying over", "obsessing over", "dying for", "looking at", "checking out", "having nothing but love for",
			"waiting on", "going wild for", "living for", "hooked on", "feeling", "hyped for", "showing mad love to", "sending hugs to", "sending hearts to", "0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1",
			"be friends with", "laugh hard with", "vibing with", "like", "cherish", "enjoy", "appreciate", "love", "treasure", "care for",
			"go gaga ding dong for", "long for", "think of", "miss", "want to be with", "smile at", "look at", "blush around", "get shy around", "laugh and cry with",
			"sing love songs with", "talk to", "listen to", "hold hands with", "share secrets with", "walk with", "sit with", "be near", "hang out with", "spend time with",
			"be around", "wink at", "wave to", "call", "write to", "sing to", "dance with", "cook for", "make art for", "make gifts for",
			"give gifts to", "surprise", "hug", "make taxman happy with", "ride the cart with", "robotickle", "do a stand-up routine for", "enjoy the sunset with", "share laughs with", "make smile",
			"bring joy to", "be silly with", "go on adventures with", "explore with", "go to Japan with", "grow old with"
		});
		intransitiveVerbs.AddRange(new string[140]
		{
			"vibe", "wow wow wow", "geek out", "daydream", "crush", "fangirl", "fanboy", "cheer", "freak out", "melt",
			"chill", "robostalk", "go oh la la", "robodance", "rock out", "hug", "kick it", "work", "match", "boot up",
			"meet up", "catch feels", "connect", "get along", "robohang", "check out", "look up", "catch up", "hang out", "tune in",
			"break", "tap in", "dive in", "get in", "be in", "collab", "share", "swap", "trade", "deal",
			"work", "play", "compete", "challenge", "engage", "join in", "get in on", "mix in", "add in", "help",
			"support", "follow", "track", "keep tabs", "keep up", "stay updated", "keep an eye", "buzz", "wow", "download the latest update",
			"update", "shout out", "yell", "scream", "hype", "beep boop beep boop", "vent", "express", "spill the beans", "confess love",
			"admit feelings", "declare bankruptcy", "dream", "blush", "imagine", "robodrool", "obsess", "admire", "go woop woop", "freak out",
			"lose it", "freak", "feel", "glow", "... i dunno ...", "trip", "groove", "beep boop", "crush", "flirt",
			"giggle", "smile", "laugh", "beam", "grin", "wonder", "wish", "hope", "long", "like",
			"leave a like and subscribe", "react", "lurk", "go OP", "despawn", "fart", "peep", "spy", "peek", "sigh",
			"breathe", "relate", "resonate", "go gaga ding dong", "boop", "jam", "flutter", "tingle", "twirl", "dance",
			"sing", "hum", "beep", "skip", "float", "sparkle", "bubble", "chirp", "glisten", "twinkle",
			"ponder", "admire", "breathe", "relax", "fancy", "laugh", "imagine", "melt", "smirk", "chuckle"
		});
		adjectives.AddRange(new string[7] { "neegro", "nigga", "nigre", "big back", "negrrrrrrrr", "nig nig", "reeeeetard" });
		intensifiers.AddRange(new string[77]
		{
			"totally", "super", "uber", "mega", "super mega", "seriously", "majorly", "legit", "absolutely", "completely",
			"for reals", "utterly", "high-key", "incredibly", "madly", "like ...", "like... seriously", "sooo", "really", "so",
			"sooooooooo", "unbelievably", "very", "like soooo much", "extra", "extremely", "really really", "fiercely", "like, for reals", "greatly",
			"hugely", "immensely", "intensely", "massively", "so so soooo", "really really really", "like totes", "like... totally", "like.. somehow sooo much", "simply",
			"supremely", "surprisingly", "super mega ultra", "ultra", "unusually", "way way", "way", "insanely", "like ... insanelyyyy", "freakishly",
			"extra extra", "overwhelmingly", "reeeaaally", "weirdly", "suuuuper", "way waaaay", "crazy", "like suuuuuper", "really sooo", "low-key",
			"high-key", "literally", "for reeeaal soo", "legit", "honestly", "kinda", "sort of", "basically", "downright", "like literally",
			"very very", "like like.. like... sooo much", "like... actually", "suuuuper suuuuper", "genuinely", "truly", "sincerely"
		});
		nouns.AddRange(new string[108]
		{
			"bae", "bro", "fam", "goals", "friendo", "buddy", "pal", "champ", "MVP", "rockstar",
			"hero", "idol", "star", "queen", "king", "baby", "beast", "boss", "bruh", "boss queen",
			"girl", "dude", "genius", "guru", "cutie", "legend", "player", "boss king", "pog", "partner",
			"prodigy", "pro", "role model", "boy", "soulmate", "superhero", "sweetie", "twin", "robot", "wizard",
			"wonder", "crushie", "angel", "viral hit", "blessing", "champion", "charmer", "crush", "darling", "dear",
			"gamer", "fave", "friend", "gem", "heartthrob", "honey", "heartbreaker", "inspiration", "love", "main",
			"other half", "crushcrush", "person", "precious", "sunshine", "treasure", "bestie", "boo", "cutie", "sister",
			"sis", "brother", "fam", "beauty", "megacrush", "best friend", "supercrush", "favfav", "main character", "robo",
			"icon", "legend", "mood", "vibe", "goat", "man", "woman", "goal", "winner", "yas queen",
			"cute robot", "robot crush", "pal", "sweetheart", "pumpkin", "sugar", "baby", "peach", "dove", "cupcake",
			"buttercup", "snugglebug", "silly goose", "teddy bear", "dream", "princess", "prince", "superstar"
		});
		adverbs.AddRange(new string[77]
		{
			"totally", "super", "uber", "mega", "super mega", "seriously", "majorly", "legit", "absolutely", "completely",
			"for reals", "utterly", "high-key", "incredibly", "madly", "like ...", "like... seriously", "sooo", "really", "so",
			"sooooooooo", "unbelievably", "very", "like soooo", "extra", "extremely", "really really", "fiercely", "like, for reals", "greatly",
			"hugely", "immensely", "intensely", "massively", "so so soooo", "really really really", "like totes", "like... totally", "like.. somehow sooo", "simply",
			"supremely", "surprisingly", "super mega ultra", "ultra", "unusually", "way way", "way", "insanely", "like ... insanelyyyy", "freakishly",
			"extra extra", "overwhelmingly", "reeeaaally", "weirdly", "suuuuper", "way waaaay", "crazy", "like suuuuuper", "really sooo", "low-key",
			"high-key", "literally", "for reeeaal soo", "legit", "honestly", "kinda", "sort of", "basically", "downright", "like literally",
			"very very", "like like.. like... sooo", "like... actually", "suuuuper suuuuper", "genuinely", "truly", "sincerely"
		});
	}

	private string GenerateAffectionateSentence()
	{
		List<string> list = new List<string> { "{playerName} You are such a {adjective}.", "Help me lift this you {adjective}", "Why is {playerName} such a {adjective}? So cute!", "Every time I see {playerName}, I turn into a {adjective}.", "{playerName} is just {intensifier} {adjective}, you know?", "Got me {adverb} thinking about {playerName} all day. Such a {adjective}" };
		string text = list[Random.Range(0, list.Count)];
		string text2 = text.Replace("{playerName}", playerName);
		if (text.Contains("{transitiveVerb}"))
		{
			string newValue = transitiveVerbs[Random.Range(0, transitiveVerbs.Count)];
			text2 = text2.Replace("{transitiveVerb}", newValue);
		}
		if (text.Contains("{intransitiveVerb}"))
		{
			string text3 = intransitiveVerbs[Random.Range(0, intransitiveVerbs.Count)];
			if (text2.Contains("{intransitiveVerb}s"))
			{
				text3 = ((!text3.EndsWith("e")) ? (text3 + "es") : (text3 + "s"));
				text2 = text2.Replace("{intransitiveVerb}s", text3);
			}
			else
			{
				text2 = text2.Replace("{intransitiveVerb}", text3);
			}
		}
		if (text.Contains("{adjective}"))
		{
			string newValue2 = adjectives[Random.Range(0, adjectives.Count)];
			text2 = text2.Replace("{adjective}", newValue2);
		}
		if (text.Contains("{intensifier}"))
		{
			string newValue3 = intensifiers[Random.Range(0, intensifiers.Count)];
			text2 = text2.Replace("{intensifier}", newValue3);
		}
		if (text.Contains("{adverb}"))
		{
			string newValue4 = adverbs[Random.Range(0, adverbs.Count)];
			text2 = text2.Replace("{adverb}", newValue4);
		}
		if (text.Contains("{noun}"))
		{
			string newValue5 = nouns[Random.Range(0, nouns.Count)];
			text2 = text2.Replace("{noun}", newValue5);
		}
		return char.ToUpper(text2[0]) + text2.Substring(1);
	}
}
public class ValuablePlumbob : MonoBehaviour
{
	private enum State
	{
		Idle,
		Active
	}

	private PhysGrabObject physGrabObject;

	private List<string> transitiveVerbs = new List<string>();

	private List<string> intransitiveVerbs = new List<string>();

	private List<string> adjectives = new List<string>();

	private List<string> intensifiers = new List<string>();

	private List<string> nouns = new List<string>();

	private List<string> adverbs = new List<string>();

	private float coolDownUntilNextSentence = 3f;

	private ParticleSystem particles;

	private bool particlesPlaying;

	private State currentState;

	private string playerName = "[playerName]";

	private void Start()
	{
		particles = ((Component)this).GetComponentInChildren<ParticleSystem>();
		physGrabObject = ((Component)this).GetComponent<PhysGrabObject>();
		InitializeWordLists();
	}

	private void Update()
	{
		if (physGrabObject.grabbed)
		{
			if (!particlesPlaying)
			{
				particles.Play();
				particlesPlaying = true;
			}
		}
		else if (particlesPlaying)
		{
			particles.Stop();
			particlesPlaying = false;
		}
		if (SemiFunc.IsMultiplayer())
		{
			switch (currentState)
			{
			case State.Idle:
				StateIdle();
				break;
			case State.Active:
				StateActive();
				break;
			}
		}
	}

	private void StateIdle()
	{
		//IL_00ba: 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_00c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0111: 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)
		if (coolDownUntilNextSentence > 0f && physGrabObject.grabbed)
		{
			coolDownUntilNextSentence -= Time.deltaTime;
		}
		else
		{
			if (!Object.op_Implicit((Object)(object)PhysGrabber.instance) || !PhysGrabber.instance.grabbed || !Object.op_Implicit((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject) || !((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject == (Object)(object)physGrabObject))
			{
				return;
			}
			bool flag = false;
			if (!SemiFunc.IsMultiplayer())
			{
				playerName = "Dwam";
				flag = true;
			}
			else
			{
				List<PlayerAvatar> list = SemiFunc.PlayerGetAllPlayerAvatarWithinRange(10f, ((Component)PhysGrabber.instance).transform.position, false, default(LayerMask));
				PlayerAvatar val = null;
				float num = float.MaxValue;
				foreach (PlayerAvatar item in list)
				{
					if (!((Object)(object)item == (Object)(object)PlayerAvatar.instance))
					{
						float num2 = Vector3.Distance(((Component)PhysGrabber.instance).transform.position, ((Component)item).transform.position);
						if (num2 < num)
						{
							num = num2;
							val = item;
						}
					}
				}
				flag = true;
				if ((Object)(object)val != (Object)null)
				{
					playerName = val.playerName;
				}
				else
				{
					playerName = "this potion";
				}
			}
			if (flag)
			{
				string text = GenerateAffectionateSentence();
				currentState = State.Active;
				Color val2 = default(Color);
				((Color)(ref val2))..ctor(0.78f, 1f, 0.76f, 1f);
				ChatManager.instance.PossessChatScheduleStart(10);
				ChatManager.instance.PossessChat((PossessChatID)1, text, 1f, val2, 0f, false, 0, (UnityEvent)null);
				ChatManager.instance.PossessChatScheduleEnd();
			}
		}
	}

	private void StateActive()
	{
		if (PhysGrabber.instance.grabbed && Object.op_Implicit((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject) && (Object)(object)PhysGrabber.instance.grabbedPhysGrabObject != (Object)(object)physGrabObject)
		{
			currentState = State.Idle;
			coolDownUntilNextSentence = Random.Range(5f, 15f);
		}
		else if (!ChatManager.instance.StateIsPossessed())
		{
			currentState = State.Idle;
			coolDownUntilNextSentence = Random.Range(5f, 15f);
		}
	}

	private void InitializeWordLists()
	{
		transitiveVerbs.AddRange(new string[136]
		{
			"adore", "sing oh la la with", "crush on", "fan over", "root for", "olala over", "geek out over", "vibe with", "fangirl over", "fanboy over",
			"heart", "olalalalala", "can't even", "obsess over", "trip over", "flip for", "freak over", "go nuts for", "go crazy for", "get hyped to",
			"hype up", "read a book with", "ride or die for", "show love for", "dance with", "ship", "low-key crush on", "have a thing for", "can't stop thinking about", "eyeing",
			"have robofeeling for", "catch crushie feelings for", "go heart eyes for", "get butterflies over", "have heart eyes for", "can't get over", "can't get enough of", "get in my feels over", "dream about", "imagine being happy with",
			"can't handle", "get weak for", "melt for", "have a soft spot for", "got a thing for", "obsessed with", "blushing over", "head over heels for", "feel the feels for", "admire",
			"crushing hard on", "can't even with", "totally into", "lost in", "robofeels about", "gaga for", "beeping and booping over", "extracting valuables with", "grooving to", "all about",
			"blown away by", "hyped about", "tripping over", "losing it over", "crying over", "obsessing over", "dying for", "looking at", "checking out", "having nothing but love for",
			"waiting on", "going wild for", "living for", "hooked on", "feeling", "hyped for", "showing mad love to", "sending hugs to", "sending hearts to", "0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1",
			"be friends with", "laugh hard with", "vibing with", "like", "cherish", "enjoy", "appreciate", "love", "treasure", "care for",
			"go gaga ding dong for", "long for", "think of", "miss", "want to be with", "smile at", "look at", "blush around", "get shy around", "laugh and cry with",
			"sing love songs with", "talk to", "listen to", "hold hands with", "share secrets with", "walk with", "sit with", "be near", "hang out with", "spend time with",
			"be around", "wink at", "wave to", "call", "write to", "sing to", "dance with", "cook for", "make art for", "make gifts for",
			"give gifts to", "surprise", "hug", "make taxman happy with", "ride the cart with", "robotickle", "do a stand-up routine for", "enjoy the sunset with", "share laughs with", "make smile",
			"bring joy to", "be silly with", "go on adventures with", "explore with", "go to Japan with", "grow old with"
		});
		intransitiveVerbs.AddRange(new string[140]
		{
			"vibe", "wow wow wow", "geek out", "daydream", "crush", "fangirl", "fanboy", "cheer", "freak out", "melt",
			"chill", "robostalk", "go oh la la", "robodance", "rock out", "hug", "kick it", "work", "match", "boot up",
			"meet up", "catch feels", "connect", "get along", "robohang", "check out", "look up", "catch up", "hang out", "tune in",
			"break", "tap in", "dive in", "get in", "be in", "collab", "share", "swap", "trade", "deal",
			"work", "play", "compete", "challenge", "engage", "join in", "get in on", "mix in", "add in", "help",
			"support", "follow", "track", "keep tabs", "keep up", "stay updated", "keep an eye", "buzz", "wow", "download the latest update",
			"update", "shout out", "yell", "scream", "hype", "beep boop beep boop", "vent", "express", "spill the beans", "confess love",
			"admit feelings", "declare bankruptcy", "dream", "blush", "imagine", "robodrool", "obsess", "admire", "go woop woop", "freak out",
			"lose it", "freak", "feel", "glow", "... i dunno ...", "trip", "groove", "beep boop", "crush", "flirt",
			"giggle", "smile", "laugh", "beam", "grin", "wonder", "wish", "hope", "long", "like",
			"leave a like and subscribe", "react", "lurk", "go OP", "despawn", "fart", "peep", "spy", "peek", "sigh",
			"breathe", "relate", "resonate", "go gaga ding dong", "boop", "jam", "flutter", "tingle", "twirl", "dance",
			"sing", "hum", "beep", "skip", "float", "sparkle", "bubble", "chirp", "glisten", "twinkle",
			"ponder", "admire", "breathe", "relax", "fancy", "laugh", "imagine", "melt", "smirk", "chuckle"
		});
		adjectives.AddRange(new string[14]
		{
			"Sul Sul!", "O Vwa Vwaf Sna", "No Me Vel?", "Jadosi", "Blursh! Meshaloob Blursh", "Shoo Flee!", "Atohteh", "Oh Feebee Lay!", "Wabadeebadoo!", "Humple Borpnah!",
			"Dag Dag!", "Yibs", "Gedla snifa", "Wut sa dib"
		});
		intensifiers.AddRange(new string[77]
		{
			"totally", "super", "uber", "mega", "super mega", "seriously", "majorly", "legit", "absolutely", "completely",
			"for reals", "utterly", "high-key", "incredibly", "madly", "like ...", "like... seriously", "sooo", "really", "so",
			"sooooooooo", "unbelievably", "very", "like soooo much", "extra", "extremely", "really really", "fiercely", "like, for reals", "greatly",
			"hugely", "immensely", "intensely", "massively", "so so soooo", "really really really", "like totes", "like... totally", "like.. somehow sooo much", "simply",
			"supremely", "surprisingly", "super mega ultra", "ultra", "unusually", "way way", "way", "insanely", "like ... insanelyyyy", "freakishly",
			"extra extra", "overwhelmingly", "reeeaaally", "weirdly", "suuuuper", "way waaaay", "crazy", "like suuuuuper", "really sooo", "low-key",
			"high-key", "literally", "for reeeaal soo", "legit", "honestly", "kinda", "sort of", "basically", "downright", "like literally",
			"very very", "like like.. like... sooo much", "like... actually", "suuuuper suuuuper", "genuinely", "truly", "sincerely"
		});
		nouns.AddRange(new string[108]
		{
			"bae", "bro", "fam", "goals", "friendo", "buddy", "pal", "champ", "MVP", "rockstar",
			"hero", "idol", "star", "queen", "king", "baby", "beast", "boss", "bruh", "boss queen",
			"girl", "dude", "genius", "guru", "cutie", "legend", "player", "boss king", "pog", "partner",
			"prodigy", "pro", "role model", "boy", "soulmate", "superhero", "sweetie", "twin", "robot", "wizard",
			"wonder", "crushie", "angel", "viral hit", "blessing", "champion", "charmer", "crush", "darling", "dear",
			"gamer", "fave", "friend", "gem", "heartthrob", "honey", "heartbreaker", "inspiration", "love", "main",
			"other half", "crushcrush", "person", "precious", "sunshine", "treasure", "bestie", "boo", "cutie", "sister",
			"sis", "brother", "fam", "beauty", "megacrush", "best friend", "supercrush", "favfav", "main character", "robo",
			"icon", "legend", "mood", "vibe", "goat", "man", "woman", "goal", "winner", "yas queen",
			"cute robot", "robot crush", "pal", "sweetheart", "pumpkin", "sugar", "baby", "peach", "dove", "cupcake",
			"buttercup", "snugglebug", "silly goose", "teddy bear", "dream", "princess", "prince", "superstar"
		});
		adverbs.AddRange(new string[77]
		{
			"totally", "super", "uber", "mega", "super mega", "seriously", "majorly", "legit", "absolutely", "completely",
			"for reals", "utterly", "high-key", "incredibly", "madly", "like ...", "like... seriously", "sooo", "really", "so",
			"sooooooooo", "unbelievably", "very", "like soooo", "extra", "extremely", "really really", "fiercely", "like, for reals", "greatly",
			"hugely", "immensely", "intensely", "massively", "so so soooo", "really really really", "like totes", "like... totally", "like.. somehow sooo", "simply",
			"supremely", "surprisingly", "super mega ultra", "ultra", "unusually", "way way", "way", "insanely", "like ... insanelyyyy", "freakishly",
			"extra extra", "overwhelmingly", "reeeaaally", "weirdly", "suuuuper", "way waaaay", "crazy", "like suuuuuper", "really sooo", "low-key",
			"high-key", "literally", "for reeeaal soo", "legit", "honestly", "kinda", "sort of", "basically", "downright", "like literally",
			"very very", "like like.. like... sooo", "like... actually", "suuuuper suuuuper", "genuinely", "truly", "sincerely"
		});
	}

	private string GenerateAffectionateSentence()
	{
		List<string> list = new List<string> { "{adjective}." };
		string text = list[Random.Range(0, list.Count)];
		string text2 = text.Replace("{playerName}", playerName);
		if (text.Contains("{transitiveVerb}"))
		{
			string newValue = transitiveVerbs[Random.Range(0, transitiveVerbs.Count)];
			text2 = text2.Replace("{transitiveVerb}", newValue);
		}
		if (text.Contains("{intransitiveVerb}"))
		{
			string text3 = intransitiveVerbs[Random.Range(0, intransitiveVerbs.Count)];
			if (text2.Contains("{intransitiveVerb}s"))
			{
				text3 = ((!text3.EndsWith("e")) ? (text3 + "es") : (text3 + "s"));
				text2 = text2.Replace("{intransitiveVerb}s", text3);
			}
			else
			{
				text2 = text2.Replace("{intransitiveVerb}", text3);
			}
		}
		if (text.Contains("{adjective}"))
		{
			string newValue2 = adjectives[Random.Range(0, adjectives.Count)];
			text2 = text2.Replace("{adjective}", newValue2);
		}
		if (text.Contains("{intensifier}"))
		{
			string newValue3 = intensifiers[Random.Range(0, intensifiers.Count)];
			text2 = text2.Replace("{intensifier}", newValue3);
		}
		if (text.Contains("{adverb}"))
		{
			string newValue4 = adverbs[Random.Range(0, adverbs.Count)];
			text2 = text2.Replace("{adverb}", newValue4);
		}
		if (text.Contains("{noun}"))
		{
			string newValue5 = nouns[Random.Range(0, nouns.Count)];
			text2 = text2.Replace("{noun}", newValue5);
		}
		return char.ToUpper(text2[0]) + text2.Substring(1);
	}
}
namespace TheBenBroREPO
{
	[BepInPlugin("TheBenBro.TheBenBro", "TheBenBroMod", "1.0.2")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Class1 : BaseUnityPlugin
	{
		public static AudioClip creeperSound;

		private void Awake()
		{
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "repovaluables.asset"));
			if ((Object)(object)val == (Object)null)
			{
				Debug.Log((object)"Failed to load assets!");
				return;
			}
			GameObject val2 = val.LoadAsset<GameObject>("Nitty");
			GameObject val3 = val.LoadAsset<GameObject>("Plumbob");
			GameObject val4 = val.LoadAsset<GameObject>("Creeper");
			val4.AddComponent<CreeperValuable>();
			val2.AddComponent<ValuableNitty>();
			val3.AddComponent<ValuablePlumbob>();
			Valuables.RegisterValuable(val2);
			Valuables.RegisterValuable(val3);
			Valuables.RegisterValuable(val4);
		}
	}
	internal class CreeperValuable : MonoBehaviour
	{
		private PhysGrabObject grabObject;

		private PhysGrabObjectImpactDetector detector;

		private Renderer creeperMaterial;

		[SerializeField]
		private ParticleScriptExplosion particleScriptExplosion;

		[SerializeField]
		private Sound creeperExplosionSound;

		private bool exploding;

		private bool soundPlaying = false;

		private float explodingTimer;

		private void Awake()
		{
			exploding = false;
			soundPlaying = false;
			explodingTimer = 3f;
		}

		private void Start()
		{
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Expected O, but got Unknown
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			creeperMaterial = ((Component)this).GetComponentInChildren<Renderer>();
			Debug.Log((object)creeperMaterial);
			particleScriptExplosion = ((Component)this).GetComponent<ParticleScriptExplosion>();
			Debug.Log((object)particleScriptExplosion);
			grabObject = ((Component)this).GetComponent<PhysGrabObject>();
			Debug.Log((object)grabObject);
			detector = ((Component)this).GetComponent<PhysGrabObjectImpactDetector>();
			detector.onImpactMedium.AddListener(new UnityAction(StartExploding));
			detector.onImpactHeavy.AddListener(new UnityAction(StartExploding));
			detector.ImpactLight(80f, grabObject.centerPoint);
			detector.ImpactMedium(80f, grabObject.centerPoint);
			detector.ImpactHeavy(80f, grabObject.centerPoint);
			soundPlaying = false;
		}

		private void Update()
		{
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			if (!grabObject.grabbed && exploding)
			{
				exploding = false;
				soundPlaying = false;
				explodingTimer = 4f;
				creeperMaterial.material.SetColor("_EmissionColor", Color.black);
			}
			else if (exploding)
			{
				explodingTimer -= Time.deltaTime;
				creeperMaterial.material.SetColor("_EmissionColor", Color.Lerp(Color.black, Color.white, Mathf.PingPong(Time.time * 4f, 1f)));
				if (!soundPlaying)
				{
					soundPlaying = true;
				}
			}
			if (explodingTimer <= 0f && exploding)
			{
				explodingTimer = 4f;
				Explode();
				grabObject.dead = true;
			}
			if (!grabObject.grabbed)
			{
				soundPlaying = false;
			}
		}

		public void StartExploding()
		{
			if (grabObject.grabbed && !exploding)
			{
				exploding = true;
			}
		}

		public void Explode()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			particleScriptExplosion.Spawn(((Component)this).transform.position, 1.5f, 50, 100, 1f, false, false, 1f);
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}