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 NotEnoughSubtitleKOR v1.0.4
NotEnoughSubtitleKR.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.4")] public class Plugin : BaseUnityPlugin { private const string modGUID = "Piggy3590.NotEnoughSubtitle"; private const string modName = "Not Enough Subtitle"; private const string modVersion = "1.0.4"; 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> 귀하의 노력이 회사를 행복하게 만듭니다."; } if (speakerNum == 1 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 우리는 여러분의 헌신을 소중하게 생각합니다."; } if (speakerNum == 2 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 여러분의 수고는 회사에 매우 중요합니다."; } if (speakerNum == 3 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 여러분의 정직한 업무는 회사의 귀중한 자산입니다."; } if (speakerNum == 4 && speakTimer > 1f && speakTimer < 2f && !isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 여러분은 진정한 전문가입니다."; } if (speakerNum == 0 && speakTimer > 1f && speakTimer < 2f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 와."; } if (speakerNum == 1 && speakTimer > 1f && speakTimer < 2f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 이 벽은 우리를 가둘 수 없-"; } if (speakerNum == 1 && speakTimer > 5.5f && speakTimer < 6f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 가ㄷㅜㄹ"; } if (speakerNum == 2 && speakTimer > 1f && speakTimer < 2f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 와."; } if (speakerNum == 3 && speakTimer > 1f && speakTimer < 2f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 회사는 항상 행복해야 합니다."; } if (speakerNum == 3 && speakTimer > 2f && speakTimer < 3f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 호ㅣ사는 항ㅅㅏㅇ"; } if (speakerNum == 4 && speakTimer > 1f && speakTimer < 2f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 우리는 당신이 필요합니다."; } if (speakerNum == 5 && speakTimer > 2f && speakTimer < 3f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 이ㅣㅣㅣㅣ--"; } if (speakerNum == 6 && speakTimer > 1f && speakTimer < 2f && isRareDialogue) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>???:</color> 계속해서 우리 투자자들의 만족도를 유지하세요."; } } 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>함선:</color> 당신의 첫 번째 출근을 환영합니다."; } if (introTimer > 10.1f && introTimer < 10.4f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>함선:</color> 이곳은 귀하의 자동 조종 함선이며,\n계약 기간 동안 여러분의 의식주가 이루어질 것입니다."; } if (introTimer > 15.3f && introTimer < 15.5f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "(알아들을 수 없는 말)"; } if (introTimer > 20f && (double)introTimer < 20.3) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>함선:</color> 집처럼 편하게 지내시길 바랍니다."; } if ((double)introTimer > 21.7 && introTimer < 22f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>함선:</color> 탑승 절차를 완료하셨다면 지침서를 확인하신 후\n함선의 컴퓨터 터미널에 로그인하시기 바랍니다."; } if ((double)introTimer > 28.3 && introTimer < 29f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>함선:</color> 우리는 여러분이 회사의 큰 자산이 될 것이라고 믿습니다."; } if (introTimer > 31f && introTimer < 32f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>함선:</color> 자산 회사의 큰 큰 자산 회사의 큰 큰 자산..."; } if (introTimer > 37f && introTimer < 38f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = ""; } if (firedTimer > 0.15f && firedTimer < 1f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>함선:</color> 여러분들은 수익 할당량을 충족하지 못했기 때문에\n귀하의 성과는 표준 이하로 간주되었습니다."; } if (firedTimer > 5.5f && firedTimer < 6f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#F15F5F>함선:</color> 우리의 징계 절차에 오신 것을 환영합니다."; } if (firedTimer > 8f && firedTimer < 9f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = ""; } if (zeroDayTimer > 5.25f && zeroDayTimer < 5.5f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>함선:</color> 즉시 회사 건물로 이동하여 폐품이나 기타 물건들을 판매하십시오."; } if (zeroDayTimer > 10f && zeroDayTimer < 11f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>함선:</color> 수익 할당량을 충족시킬 수 있는 시간이 0일 남았습니다."; } if (zeroDayTimer > 13.4f && zeroDayTimer < 14f) { ((TMP_Text)HUDManagerPatch.RsubtitleGUItext).text = "<color=#5CD1E5>함선:</color> 터미널을 사용하여 함선을 회사 건물로 이동시킬 수 있습니다."; } 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; } } }