Decompiled source of NotEnoughSubtitlePOR v1.0.2

NotEnoughSubtitlePT.dll

Decompiled a year ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using NotEnoughSubtitle.Patches;
using TMPro;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("RadiationIsCool")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RadiationIsCool")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("8ee335db-0cbe-470c-8fbc-69263f01b35a")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
[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 NotEnoughSubtitle
{
	[BepInPlugin("Piggy3590.NotEnoughSubtitle", "Not Enough Subtitle", "1.0.2")]
	public class Plugin : BaseUnityPlugin
	{
		private const string modGUID = "Piggy3590.NotEnoughSubtitle";

		private const string modName = "Not Enough Subtitle";

		private const string modVersion = "1.0.2";

		private readonly Harmony harmony = new Harmony("Piggy3590.NotEnoughSubtitle");

		private static Plugin Instance;

		public static ManualLogSource mls;

		private void Awake()
		{
			if ((Object)(object)Instance == (Object)null)
			{
				Instance = this;
			}
			mls = Logger.CreateLogSource("Piggy3590.NotEnoughSubtitle");
			mls.LogInfo((object)"Not Enough Subtitle is loaded");
			harmony.PatchAll(typeof(Plugin));
			harmony.PatchAll(typeof(PlayerBody));
			harmony.PatchAll(typeof(HUDManagerPatch));
			harmony.PatchAll(typeof(StartOfRoundPatch));
			harmony.PatchAll(typeof(DepositItemsDeskPatch));
			harmony.PatchAll(typeof(PlayerControllerBPatch));
		}
	}
}
namespace NotEnoughSubtitle.Patches
{
	[HarmonyPatch(typeof(DepositItemsDesk))]
	[HarmonyPatch("MicrophoneSpeak")]
	internal class DepositItemsDeskPatch
	{
		public static float speakTimer = 20f;

		public static AudioClip audioClip;

		private static int speakerNum;

		private static bool isRareDialogue;

		private static bool isDialogueRerolled;

		public static bool canBeHeard;

		[HarmonyPrefix]
		[HarmonyPatch("Update")]
		private static void Update_PreFix()
		{
			if (speakTimer < 100f)
			{
				speakTimer += Time.deltaTime;
			}
			if (canBeHeard)
			{
				if (speakerNum == 0 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Seu esforço torna a empresa mais feliz.";
					Plugin.mls.LogInfo((object)"Reproduzido 1!!!!");
				}
				if (speakerNum == 1 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Nós valorizamos sua dedicação.";
					Plugin.mls.LogInfo((object)"Reproduzido 2!!!!");
				}
				if (speakerNum == 2 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Seu trabalho é muito importante para a empresa.";
					Plugin.mls.LogInfo((object)"Reproduzido 3!!!!");
				}
				if (speakerNum == 3 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Sua honestidade no trabalho é um ativo valioso para a empresa.";
					Plugin.mls.LogInfo((object)"Reproduzido 4!!!!");
				}
				if (speakerNum == 4 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Você é um verdadeiro profissional.";
					Plugin.mls.LogInfo((object)"Reproduzido 5!!!!");
				}
				if (speakerNum == 0 && speakTimer > 1f && speakTimer < 2f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Uau.";
					Plugin.mls.LogInfo((object)"Reproduzido 1!!!!");
				}
				if (speakerNum == 1 && speakTimer > 1f && speakTimer < 2f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Esta parede não pode contê-lo-";
					Plugin.mls.LogInfo((object)"Reproduzido 2!!!!");
				}
				if (speakerNum == 1 && speakTimer > 5.5f && speakTimer < 6f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Cont-";
				}
				if (speakerNum == 2 && speakTimer > 1f && speakTimer < 2f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Uau.";
					Plugin.mls.LogInfo((object)"Reproduzido 3!!!!");
				}
				if (speakerNum == 3 && speakTimer > 1f && speakTimer < 2f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> A empresa deve estar sempre feliz.";
					Plugin.mls.LogInfo((object)"Reproduzido 4!!!!");
				}
				if (speakerNum == 3 && speakTimer > 2f && speakTimer < 3f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> A emp-";
				}
				if (speakerNum == 4 && speakTimer > 1f && speakTimer < 2f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Nós precisamos de você.";
					Plugin.mls.LogInfo((object)"Reproduzido 5!!!!");
				}
				if (speakerNum == 5 && speakTimer > 2f && speakTimer < 3f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Isso-";
				}
				if (speakerNum == 6 && speakTimer > 1f && speakTimer < 2f && isRareDialogue)
				{
					((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> Continue mantendo a satisfação de nossos investidores.";
				}
			}
			if (speakTimer > 6f && speakTimer < 8f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "";
				isDialogueRerolled = false;
			}
		}

		[HarmonyPrefix]
		[HarmonyPatch("MicrophoneSpeak")]
		public static bool MicrophoneSpeak_Prefix(ref AudioSource ___speakerAudio, ref AudioClip[] ___rareMicrophoneAudios, ref AudioClip[] ___microphoneAudios, ref Random ___CompanyLevelRandom)
		{
			speakTimer = 1f;
			if (!isDialogueRerolled)
			{
				isDialogueRerolled = true;
				if (___CompanyLevelRandom.NextDouble() < 0.029999999329447746)
				{
					speakerNum = ___CompanyLevelRandom.Next(0, ___rareMicrophoneAudios.Length);
					audioClip = ___rareMicrophoneAudios[speakerNum];
					isRareDialogue = true;
				}
				else
				{
					speakerNum = ___CompanyLevelRandom.Next(0, ___microphoneAudios.Length);
					audioClip = ___microphoneAudios[speakerNum];
					isRareDialogue = false;
				}
				___speakerAudio.PlayOneShot(audioClip, 1f);
			}
			return false;
		}
	}
	public static class PlayerBody
	{
		public static Transform playerBody;
	}
	[HarmonyPatch(typeof(PlayerControllerB))]
	internal class PlayerControllerBPatch
	{
		[HarmonyPostfix]
		[HarmonyPatch("Update")]
		private static void Update_Postfix(ref Transform ___thisPlayerBody, ref bool ___isCameraDisabled)
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			if (!___isCameraDisabled && (Object)(object)GameObject.Find("SpeakerBox") != (Object)null)
			{
				if (Vector3.Distance(___thisPlayerBody.position, GameObject.Find("SpeakerBox").transform.position) <= 20f)
				{
					DepositItemsDeskPatch.canBeHeard = true;
				}
				else
				{
					DepositItemsDeskPatch.canBeHeard = false;
				}
			}
		}
	}
	[HarmonyPatch(typeof(StartOfRound))]
	internal class StartOfRoundPatch
	{
		public static float introTimer = 5000f;

		public static float firedTimer = 5000f;

		public static float zeroDayTimer = 5000f;

		[HarmonyPostfix]
		[HarmonyPatch("Awake")]
		private static void Awake_Postfix()
		{
			introTimer = 5000f;
			firedTimer = 5000f;
			zeroDayTimer = 5000f;
		}

		[HarmonyPostfix]
		[HarmonyPatch("Update")]
		private static void Update_Postfix()
		{
			if (introTimer < 5000f)
			{
				introTimer += Time.deltaTime;
			}
			if (firedTimer < 5000f)
			{
				firedTimer += Time.deltaTime;
			}
			if (zeroDayTimer < 5000f)
			{
				zeroDayTimer += Time.deltaTime;
			}
			if (introTimer > 7f && introTimer < 7.3f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Bem-vindo ao seu primeiro dia de trabalho.";
			}
			if (introTimer > 10.1f && introTimer < 10.4f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Este é o lugar onde sua consciência ocorre durante o contrato,";
			}
			if (introTimer > 12.5f && introTimer < 13f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Sua nave de controle remoto exclusiva.";
			}
			if (introTimer > 15.3f && introTimer < 15.5f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "(Fala ininteligível)";
			}
			if (introTimer > 20f && (double)introTimer < 20.3)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Sinta-se em casa aqui.";
			}
			if ((double)introTimer > 21.7 && introTimer < 22f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Após concluir o processo de embarque, verifique o manual\ne faça login no terminal de computador da nave.";
			}
			if ((double)introTimer > 28.3 && introTimer < 29f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Acreditamos que você se tornará um grande ativo para a empresa.";
			}
			if (introTimer > 31f && introTimer < 32f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Grande ativo da empresa, grande ativo da empresa...";
			}
			if (introTimer > 37f && introTimer < 38f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "";
			}
			if (firedTimer > 0.15f && firedTimer < 1f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>Piloto de Computador:</color> Você não atingiu a cota de lucro.";
			}
			if (firedTimer > 2.2f && firedTimer < 2.5f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>Piloto de Computador:</color> Portanto, seu desempenho foi avaliado como abaixo do padrão.";
			}
			if (firedTimer > 5.5f && firedTimer < 6f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>Piloto de Computador:</color> Bem-vindo ao nosso procedimento disciplinar.";
			}
			if (firedTimer > 8f && firedTimer < 9f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "";
			}
			if (zeroDayTimer > 5.25f && zeroDayTimer < 5.5f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Vá imediatamente para o prédio da empresa e venda sucata ou outros itens.";
			}
			if (zeroDayTimer > 10f && zeroDayTimer < 11f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> O tempo para atender à cota de lucro está se esgotando em 0 dias.";
			}
			if (zeroDayTimer > 13.4f && zeroDayTimer < 14f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>Piloto de Computador:</color> Você pode mover a nave para o prédio da empresa usando o terminal.";
			}
			if (zeroDayTimer > 17f && zeroDayTimer < 18f)
			{
				((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "";
			}
		}

		[HarmonyPostfix]
		[HarmonyPatch("playersFiredGameOver")]
		private static void playersFiredGameOver_Postfix()
		{
			firedTimer = -5f;
		}

		[HarmonyPostfix]
		[HarmonyPatch("playDaysLeftAlertSFXDelayed")]
		private static void playDaysLeftAlertSFXDelayed_Postfix()
		{
			zeroDayTimer = -3f;
		}

		[HarmonyPostfix]
		[HarmonyPatch("firstDayAnimation")]
		private static void firstDayAnimation_Postfix()
		{
			introTimer = -6f;
		}

		[HarmonyPostfix]
		[HarmonyPatch("DisableShipSpeakerLocalClient")]
		private static void DisableShipSpeakerLocalClient_Postfix()
		{
			introTimer = 5000f;
			firedTimer = 5000f;
			zeroDayTimer = 5000f;
			((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "";
		}
	}
	[HarmonyPatch(typeof(HUDManager))]
	internal class HUDManagerPatch
	{
		private static TextMeshProUGUI textComponent;

		public static TextMeshProUGUI RsubtitleGUItext;

		[HarmonyPostfix]
		[HarmonyPatch("Awake")]
		private static void Awake_Postfix(ref HUDManager __instance)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = new GameObject("testSubtitlesGUI");
			val.AddComponent<RectTransform>();
			TextMeshProUGUI val2 = val.AddComponent<TextMeshProUGUI>();
			RectTransform rectTransform = ((TMP_Text)val2).rectTransform;
			((Transform)rectTransform).SetParent(GameObject.Find("Systems/UI/Canvas/Panel/GameObject/PlayerScreen").transform, false);
			rectTransform.sizeDelta = new Vector2(600f, 200f);
			rectTransform.anchoredPosition = new Vector2(0f, -125f);
			((TMP_Text)val2).alignment = (TextAlignmentOptions)514;
			((TMP_Text)val2).font = ((TMP_Text)__instance.controlTipLines[0]).font;
			((TMP_Text)val2).fontSize = 16f;
			RsubtitleGUItext = val2;
		}
	}
}