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 Death Messages Korean v0.0.2
Nyan.LC.DeathMessages.dll
Decompiled a month agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; [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: AssemblyCompany("Nyan.LC.DeathMessages")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("This is a description")] [assembly: AssemblyFileVersion("0.0.2.0")] [assembly: AssemblyInformationalVersion("0.0.2")] [assembly: AssemblyProduct("Nyan.LC.DeathMessages")] [assembly: AssemblyTitle("Nyan.LC.DeathMessages")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.2.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.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; } } [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 LCDeathMessages { public static class DeathMessages { private static List<string> Unknown { get; } = new List<string>(10) { "$$이(가) 패배했습니다.", "$$의 영혼이 무지개다리를 건넜습니다.", "$$이(가) 살해당했습니다.", "$$이(가) 요단강을 건넜습니다.", "$$의 심장이 멎었습니다.", "$$이(가) 접속을 종료했습니다.", "$$의 생명 유지 장치가 제거되었습니다.", "$$의 안색이 창백해졌습니다.", "$$의 무능함이 만천하에 드러났습니다.", "$$이(가) 숨을 거두었습니다." }; private static List<string> Bludgeoning { get; } = new List<string>(8) { "$$이(가) 참혹한 패배를 맛보았습니다.", "$$의 뼈가 부러졌습니다.", "$$이(가) 머리를 세게 맞았습니다.", "$$이(가) 둔기에 맞아 이승으로 떠났습니다.", "$$이(가) 흉기에 찔리고 말았습니다.", "$$이(가) 막다른 길에 맞닥뜨렸습니다.", "$$의 목뼈가 사라졌습니다.", "$$이(가) 치명상을 입고 쓰러졌습니다." }; private static List<string> Gravity { get; } = new List<string>(9) { "$$이(가) 착지하지 못했습니다.", "$$이(가) 발을 헛디뎠습니다.", "$$이(가) 중력의 법칙을 몸소 깨달았습니다.", "$$이(가) 본인이 날 수 있다고 착각했습니다.", "$$이(가) 바닥에 작은 구덩이를 남겼습니다.", "$$이(가) 바닥에 평범한 크기의 구덩이를 남겼습니다.", "$$이(가) 바닥에 거대한 분화구를 남겼습니다.", "$$이(가) 단단한 땅 위를 걷는 법을 잊어버렸습니다.", "$$이(가) 바닥에 납작하게 짓눌렸습니다." }; private static List<string> Blast { get; } = new List<string>(8) { "$$이(가) 쾅 하고 터져버렸습니다!", "$$이(가) 사방팔방으로 흩어졌습니다.", "$$이(가) 화려한 폭발과 함께 생을 마감했습니다.", "$$이(가) 형체도 없이 박살났습니다.", "$$이(가) 자폭했습니다.", "$$이(가) 한 줌의 먼지가 되어 사라졌습니다.", "$$이(가) 폭발에 휘말렸습니다.", "$$이(가) 원자 단위로 분해되었습니다." }; private static List<string> Strangulation { get; } = new List<string>(6) { "$$의 목이 예쁜 리본처럼 꽉 조여졌습니다.", "$$이(가) 숨이 막혀 정신을 잃고 말았습니다.", "$$이(가) 목이 졸려 비참한 최후를 맞았습니다.", "$$이(가) 숨을 뺏겨버리고 말았습니다.", "$$이(가) 숨 쉴 권리를 박탈당했습니다.", "$$의 목이 꽉 조여졌습니다." }; private static List<string> Suffocation { get; } = new List<string>(9) { "$$이(가) 숨을 쉴 수 없었습니다.", "$$의 공기가 바닥나고 말았습니다.", "$$의 허파가 텅 비어버렸습니다.", "$$이(가) 마지막 숨을 내뱉었습니다.", "$$이(가) 어둠 속에서 질식해 죽었습니다.", "$$의 마지막 숨결은 허망하게 흩어졌습니다.", "$$이(가) 질식사했습니다.", "$$이(가) 저산소증을 겪으며 쓰러졌습니다.", "$$의 숨결이 멎었습니다." }; private static List<string> Mauling => new List<string>(10) { "$$이(가) 살해당했습니다.", "$$이(가) 차갑게 죽었습니다.", "$$이(가) 살해되었습니다.", "$$의 얼굴이 뜯겨 나갔습니다.", "$$의 내장이 파헤쳐졌습니다.", "$$이(가) 처참하게 학살당했습니다.", "$$이(가) 몸이 두 동강 났습니다.", "$$의 시체를 구분할 수 없었습니다.", "$$의 주요 장기들이 파열되었습니다.", "$$이(가) " + ((Object)Plugin.RoundData.currentLevel).name + "에서 '제거'되었습니다." }; private static List<string> Gunshots { get; } = new List<string>(9) { "$$의 몸에 구멍이 몇 개 더 뚫렸습니다.", "$$의 몸이 뚫렸습니다.", "$$의 몸속에 총알이 이식되었습니다.", "$$이(가) 훌륭한 사격 연습 표적이 되었습니다.", "$$이(가) 총소리를 듣지 못했습니다.", "$$이(가) '네오'가 아니었습니다. (영화 매트릭스 패러디)", "$$이(가) 총알이 아프다는 사실을 몸소 깨달았습니다.", "$$이(가) 사살당했습니다.", "$$이(가) 제 발로 사격 연습장에 걸어 들어갔습니다." }; private static List<string> Crushing { get; } = new List<string>(6) { "$$이(가) 짓눌리는 참혹한 패배를 맞이했습니다.", "$$이(가) 압력을 견디지 못했습니다.", "$$의 생명은 무참히 짓눌려 꺼졌습니다.", "$$이(가) 감당할 수 없는 무게에 짓눌렸습니다.", "$$이(가) 엄청난 압력 아래 고통스럽게 쓰러졌습니다.", "$$이(가) 중력이 단지 떨어뜨리기만 하는 게 아님을 깨달았습니다." }; private static List<string> Drowning { get; } = new List<string>(7) { "$$이(가) 상어 밥이 되었습니다.", "$$이(가) 물고기들과 함께 잠들었습니다.", "$$이(가) 물에 빠져 죽었습니다.", "$$이(가) 호수를 통째로 마시려다 실패했습니다.", "$$이(가) '아틀란티스'를 발견했습니다.", "$$이(가) 물을 잘못 마시고 말았습니다.", "$$이(가) 아가미가 없었습니다." }; private static List<string> Abandoned { get; } = new List<string>(6) { "$$이(가) 뒤에 홀로 남겨졌습니다.", "$$이(가) 모두의 기억 속에서 잊혔습니다.", "$$이(가) 그다지 중요한 존재가 아니었습니다.", "$$이(가) 그냥 행성에 머물기로 결정했습니다.", "$$이(가) 시간 가는 줄 모르고 있다가 화를 당했습니다.", "$$이(가) 미션의 가장 중요한 마지막 단계를 잊어버렸습니다." }; private static List<string> Electrocution { get; } = new List<string>(8) { "$$이(가) 대체 무슨 일이 일어났는지 알지 못했습니다.", "$$이(가) 넘쳐나는 와트(전력)를 감당하지 못했습니다.", "$$이(가) 인간 배터리가 되어버렸습니다.", "$$이(가) 인간 피뢰침이 되었습니다.", "$$의 긍정적인 생명력이 '음전하(-)'로 바뀌었습니다.", "$$이(가) 지지직 소리와 함께 타버렸습니다.", "$$이(가) 건드리지 말아야 할 전선을 건드렸습니다.", "$$이(가) 더 이상 '전류가 흐르지(살아있지)' 않습니다." }; private static List<string> Kicking { get; } = new List<string>(3) { "$$이(가) 축구공이 되었습니다.", "$$이(가) 멀리 날아갔습니다.", "$$이(가) 실연당했습니다." }; public static string Get(CauseOfDeath cause, string username) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected I4, but got Unknown Random random = new Random(); if (1 == 0) { } string text = (int)cause switch { 0 => Unknown[random.Next(0, Unknown.Count)], 1 => Bludgeoning[random.Next(0, Bludgeoning.Count)], 2 => Gravity[random.Next(0, Gravity.Count)], 3 => Blast[random.Next(0, Blast.Count)], 4 => Strangulation[random.Next(0, Strangulation.Count)], 5 => Suffocation[random.Next(0, Suffocation.Count)], 6 => Mauling[random.Next(0, Mauling.Count)], 7 => Gunshots[random.Next(0, Gunshots.Count)], 8 => Crushing[random.Next(0, Crushing.Count)], 9 => Drowning[random.Next(0, Drowning.Count)], 10 => Abandoned[random.Next(0, Abandoned.Count)], 11 => Electrocution[random.Next(0, Electrocution.Count)], 12 => Kicking[random.Next(0, Kicking.Count)], _ => string.Empty, }; if (1 == 0) { } return text.Replace("$$", username); } } [BepInPlugin("Nyan.LC.DeathMessages", "Nyan.LC.DeathMessages", "0.0.2")] public class Plugin : BaseUnityPlugin { public static Plugin? Instance; private readonly Harmony _harmony = new Harmony("Nyan.LC.DeathMessages"); public static StartOfRound RoundData => StartOfRound.Instance; public static ManualLogSource? Log { [return: NotNull] get; private set; } private void Awake() { if (Instance == null) { Instance = this; } ((BaseUnityPlugin)this).Logger.LogInfo((object)"Started Death Messages Plugin Successfully."); _harmony.PatchAll(typeof(Plugin)); Log = ((BaseUnityPlugin)this).Logger; } [HarmonyPatch(typeof(PlayerControllerB), "KillPlayer")] [HarmonyPostfix] private static void SendDeathMessage(PlayerControllerB __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) if (__instance.isPlayerDead) { string text = DeathMessages.Get(__instance.causeOfDeath, __instance.playerUsername); string text2 = "<color=#E11919>" + text + "</color>"; HUDManager.Instance.AddTextToChatOnServer(text2, -1); } } } public static class PluginInfo { public const string PLUGIN_GUID = "Nyan.LC.DeathMessages"; public const string PLUGIN_NAME = "Nyan.LC.DeathMessages"; public const string PLUGIN_VERSION = "0.0.2"; } }