Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of NotEnoughSubtitlePOR v1.0.2
NotEnoughSubtitlePT.dll
Decompiled 2 years agousing 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; } } }