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 FriendSkins v1.0.4
ToothlessMod.dll
Decompiled a year agousing System; 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 BepInEx.Configuration; using Dissonance; using GameNetcodeStuff; using HarmonyLib; using Microsoft.CodeAnalysis; using ModelReplacement; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("ToothlessMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ToothlessMod")] [assembly: AssemblyTitle("ToothlessMod")] [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; } } } namespace ToothlessModelReplacement { public class MRTOOTHLESS : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Toothless"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { GameObject gameObject = ((Component)base.replacementModel.transform.Find("Toothless.004/Root/Hips/Spine_01/Spine_01.001/Spine_02/Spine_03/Spine_04/Spine_05/Spine_06/Spine_07/Spine_08/Spine_09/Head_01/Jaw_02")).gameObject; JawSync jawSync = gameObject.AddComponent(typeof(JawSync)) as JawSync; jawSync.player = ((BodyReplacementBase)this).controller; jawSync.init(); } } public class JawSync : MonoBehaviour { public PlayerControllerB player; public float initialJawOpening = 0.03840819f; public float maxJawOpening = 0.1f; public float sensibility = 1f; protected VoicePlayerState voice; private void Start() { } private void Update() { //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)StartOfRound.Instance.voiceChatModule == (Object)null) { return; } if (voice == null) { init(); } if (voice != null) { float y = initialJawOpening; if (voice.IsSpeaking) { y = initialJawOpening - Mathf.Clamp(voice.Amplitude * sensibility, 0f, maxJawOpening); } Vector3 localPosition = ((Component)this).gameObject.transform.localPosition; localPosition.y = y; ((Component)this).gameObject.transform.localPosition = localPosition; } } public void init() { StartOfRound.Instance.RefreshPlayerVoicePlaybackObjects(); voice = player.voicePlayerState; if (voice == null && (Object)(object)player == (Object)(object)StartOfRound.Instance.localPlayerController) { voice = StartOfRound.Instance.voiceChatModule.FindPlayer(StartOfRound.Instance.voiceChatModule.LocalPlayerName); } } } [BepInPlugin("com.greezor.ToothlessModel", "ToothlessModel", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableModelForAllSuits { get; private set; } public static ConfigEntry<bool> enableModelAsDefault { get; private set; } public static ConfigEntry<string> suitNamesToEnableModel { get; private set; } private static void InitConfig() { enableModelForAllSuits = config.Bind<bool>("Suits to Replace Settings", "Enable Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits"); enableModelAsDefault = config.Bind<bool>("Suits to Replace Settings", "Enable Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered."); suitNamesToEnableModel = config.Bind<string>("Suits to Replace Settings", "Suits to enable Model for", "Toothless", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableModelForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRTOOTHLESS)); } if (enableModelAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRTOOTHLESS)); } string[] array = suitNamesToEnableModel.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(MRTOOTHLESS)); } Harmony val = new Harmony("com.greezor.ToothlessModel"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin com.greezor.ToothlessModel is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "grztoothlessbundle"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
VALORANT_MOD_LETHAL.dll
Decompiled a year agousing System; 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 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("VALORANT_MOD_LETHAL")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("VALORANT_MOD_LETHAL")] [assembly: AssemblyTitle("VALORANT_MOD_LETHAL")] [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; } } } namespace ModelReplacement { public class MRASTRA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "ASTRA"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRBREACH : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "BREACH"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRBRIMSTONE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "BRIMSTONE"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRCHAMBER : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "CHAMBER"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRCYPHER : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "CYPHER"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRCLOVE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "CLOVE"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRDEADLOCK : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "DEADLOCK"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRFADE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "FADE"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRGEKKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "GEKKO"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRHARBOR : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "HARBOR"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRISO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "ISO"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRJETT : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "JETT"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKAYO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "KAYO"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKILLJOY : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "KILLJOY"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRNEON : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "NEON"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MROMEN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "OMEN"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRPHOENIX : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "PHOENIX"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRRAZE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "RAZE"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRREYNA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "REYNA"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSAGE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "SAGE"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSKYE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "SKYE"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSOVA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "SOVA"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRVIPER : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "VIPER"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRVYSE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "VYSE"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRWINGMAN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "WINGMAN"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRYORU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "YORU"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("astrodart_VALORANT_AGENTS", "VALORANT_AGENTS", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("ASTRA", typeof(MRASTRA)); ModelReplacementAPI.RegisterSuitModelReplacement("BREACH", typeof(MRBREACH)); ModelReplacementAPI.RegisterSuitModelReplacement("BRIMSTONE", typeof(MRBRIMSTONE)); ModelReplacementAPI.RegisterSuitModelReplacement("CHAMBER", typeof(MRCHAMBER)); ModelReplacementAPI.RegisterSuitModelReplacement("CLOVE", typeof(MRCLOVE)); ModelReplacementAPI.RegisterSuitModelReplacement("CYPHER", typeof(MRCYPHER)); ModelReplacementAPI.RegisterSuitModelReplacement("DEADLOCK", typeof(MRDEADLOCK)); ModelReplacementAPI.RegisterSuitModelReplacement("FADE", typeof(MRFADE)); ModelReplacementAPI.RegisterSuitModelReplacement("GEKKO", typeof(MRGEKKO)); ModelReplacementAPI.RegisterSuitModelReplacement("HARBOR", typeof(MRHARBOR)); ModelReplacementAPI.RegisterSuitModelReplacement("ISO", typeof(MRISO)); ModelReplacementAPI.RegisterSuitModelReplacement("JETT", typeof(MRJETT)); ModelReplacementAPI.RegisterSuitModelReplacement("KAYO", typeof(MRKAYO)); ModelReplacementAPI.RegisterSuitModelReplacement("KILLJOY", typeof(MRKILLJOY)); ModelReplacementAPI.RegisterSuitModelReplacement("NEON", typeof(MRNEON)); ModelReplacementAPI.RegisterSuitModelReplacement("OMEN", typeof(MROMEN)); ModelReplacementAPI.RegisterSuitModelReplacement("PHOENIX", typeof(MRPHOENIX)); ModelReplacementAPI.RegisterSuitModelReplacement("RAZE", typeof(MRRAZE)); ModelReplacementAPI.RegisterSuitModelReplacement("REYNA", typeof(MRREYNA)); ModelReplacementAPI.RegisterSuitModelReplacement("SAGE", typeof(MRSAGE)); ModelReplacementAPI.RegisterSuitModelReplacement("SKYE", typeof(MRSKYE)); ModelReplacementAPI.RegisterSuitModelReplacement("SOVA", typeof(MRSOVA)); ModelReplacementAPI.RegisterSuitModelReplacement("VIPER", typeof(MRVIPER)); ModelReplacementAPI.RegisterSuitModelReplacement("VYSE", typeof(MRVYSE)); ModelReplacementAPI.RegisterSuitModelReplacement("WINGMAN", typeof(MRWINGMAN)); ModelReplacementAPI.RegisterSuitModelReplacement("YORU", typeof(MRYORU)); Harmony val = new Harmony("astrodart_VALORANT_AGENTS"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin astrodart_VALORANT_AGENTS is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "valorant_bundle"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
DarknessMod.dll
Decompiled a year agousing System; 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 BepInEx.Configuration; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("DarknessMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("DarknessMod")] [assembly: AssemblyTitle("DarknessMod")] [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; } } } namespace ModelReplacement { public class MRDARKNESS : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "darkness"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("RedsunDarknessModel", "DarknessModel", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableModelForAllSuits { get; private set; } public static ConfigEntry<bool> enableModelAsDefault { get; private set; } public static ConfigEntry<string> suitNamesToEnableModel { get; private set; } private static void InitConfig() { enableModelForAllSuits = config.Bind<bool>("Suits to Replace Settings", "Enable Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits"); enableModelAsDefault = config.Bind<bool>("Suits to Replace Settings", "Enable Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered."); suitNamesToEnableModel = config.Bind<string>("Suits to Replace Settings", "Suits to enable Model for", "Darkness", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableModelForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRDARKNESS)); } if (enableModelAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRDARKNESS)); } string[] array = suitNamesToEnableModel.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(MRDARKNESS)); } Harmony val = new Harmony("RedsunDarknessModel"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin RedsunDarknessModel is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "RedsunDarknessModel"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
Female.dll
Decompiled a year agousing System; 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 BepInEx.Configuration; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("Female")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Female")] [assembly: AssemblyTitle("Female")] [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; } } } namespace ModelReplacement { public class MRSCAVENGER_FEMALE1 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Scavenger_female1"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("com.vegasx.femalescavenger", "Female Scavenger", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableModelForAllSuits { get; private set; } public static ConfigEntry<bool> enableModelAsDefault { get; private set; } public static ConfigEntry<string> suitNamesToEnableModel { get; private set; } private static void InitConfig() { enableModelForAllSuits = config.Bind<bool>("Suits to Replace Settings", "Enable Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits"); enableModelAsDefault = config.Bind<bool>("Suits to Replace Settings", "Enable Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered."); suitNamesToEnableModel = config.Bind<string>("Suits to Replace Settings", "Suits to enable Model for", "Female", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableModelForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRSCAVENGER_FEMALE1)); } if (enableModelAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRSCAVENGER_FEMALE1)); } string[] array = suitNamesToEnableModel.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(MRSCAVENGER_FEMALE1)); } Harmony val = new Harmony("com.vegasx.femalescavenger"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin com.vegasx.femalescavenger is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "femalebundle"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
HololiveModelReplacements.dll
Decompiled a year agousing System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using HololiveModelAdditions.Replacements; using Microsoft.CodeAnalysis; using ModelReplacement; 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("HololiveModelReplacements")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+e1fca9e336bed92c92e3fdb6f03eec9baa15581a")] [assembly: AssemblyProduct("HololiveModelReplacements")] [assembly: AssemblyTitle("HololiveModelReplacements")] [assembly: AssemblyVersion("1.0.0.0")] 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; } } } namespace HololiveModelAdditions { [BepInPlugin("tacocat.HololiveModels", "Hololive Company", "1.3.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public void InitConfig() { } private void Awake() { //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Kiara", typeof(KiaraReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Botan", typeof(BotanReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Gura", typeof(GuraReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Lamy", typeof(LamyReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Okayu", typeof(OkayuReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Watame", typeof(WatameReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Pekora", typeof(PekoraReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Koyori", typeof(KoyoriReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Korone", typeof(KoroneReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Polka", typeof(PolkaReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Towa", typeof(TowaReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Marine", typeof(MarineReplacement)); ModelReplacementAPI.RegisterSuitModelReplacement("Kanata", typeof(KanataReplacement)); Harmony val = new Harmony("tacocat.HololiveModels"); val.PatchAll(); } } public static class Assets { public static string mainAssetBundleName = "mbundle"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name; } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace HololiveModelAdditions.Replacements { public class KiaraReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "kiaraPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class BotanReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "botanPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class GuraReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "guraPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class LamyReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "lamyPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class OkayuReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "okayuPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class WatameReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "watamePrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class PekoraReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "pekoraPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class KoyoriReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "koyoriPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class KoroneReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "koronePrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class PolkaReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "polkaPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class TowaReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "towaPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class MarineReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "marinePrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } public class KanataReplacement : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "kanataPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } protected override void AddModelScripts() { base.UseNoPostProcessing = true; } } }
Th8.dll
Decompiled a year agousing System; 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 HarmonyLib; using Microsoft.CodeAnalysis; using ModelReplacement; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("Th8")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Th8")] [assembly: AssemblyTitle("Th8")] [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; } } } namespace Touhou8Models { public class MREIRIN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Eirin"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMOKOU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Mokou"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMYSTIA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Mystia"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRTEWI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Tewi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRWRIGGLE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Wriggle"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKEINE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Keine"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKAGUYA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kaguya"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRREISEN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Reisen"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("Shen.Touhou8Models", "Touhou8PlayerModels", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Wriggle", typeof(MRWRIGGLE)); ModelReplacementAPI.RegisterSuitModelReplacement("Mystia", typeof(MRMYSTIA)); ModelReplacementAPI.RegisterSuitModelReplacement("Keine", typeof(MRKEINE)); ModelReplacementAPI.RegisterSuitModelReplacement("Tewi", typeof(MRTEWI)); ModelReplacementAPI.RegisterSuitModelReplacement("Reisen", typeof(MRREISEN)); ModelReplacementAPI.RegisterSuitModelReplacement("Eirin", typeof(MREIRIN)); ModelReplacementAPI.RegisterSuitModelReplacement("Kaguya", typeof(MRKAGUYA)); ModelReplacementAPI.RegisterSuitModelReplacement("Mokou", typeof(MRMOKOU)); Harmony val = new Harmony("Shen.Touhou8Models"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Shen.Touhou8Models is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "Touhou8PlayerModel"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
Th10.dll
Decompiled a year agousing System; 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 HarmonyLib; using Microsoft.CodeAnalysis; using ModelReplacement; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("Th10")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Th10")] [assembly: AssemblyTitle("Th10")] [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; } } } namespace Touhou10Models { public class MRKANAKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kanako"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRHINA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Hina"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMOMIJI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Momiji"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSHIZUHA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Shizuha"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMINORIKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Minoriko"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRNITORI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Nitori"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSANAE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Sanae"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSUWAKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Suwako"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("Shen.Touhou10Models", "Touhou10PlayerModels", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Shizuha", typeof(MRSHIZUHA)); ModelReplacementAPI.RegisterSuitModelReplacement("Minoriko", typeof(MRMINORIKO)); ModelReplacementAPI.RegisterSuitModelReplacement("Hina", typeof(MRHINA)); ModelReplacementAPI.RegisterSuitModelReplacement("Nitori", typeof(MRNITORI)); ModelReplacementAPI.RegisterSuitModelReplacement("Momiji", typeof(MRMOMIJI)); ModelReplacementAPI.RegisterSuitModelReplacement("Sanae", typeof(MRSANAE)); ModelReplacementAPI.RegisterSuitModelReplacement("Kanako", typeof(MRKANAKO)); ModelReplacementAPI.RegisterSuitModelReplacement("Suwako", typeof(MRSUWAKO)); Harmony val = new Harmony("Shen.Touhou10Models"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Shen.Touhou10Models is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "Touhou10PlayerModel"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
Th12.dll
Decompiled a year agousing System; 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 HarmonyLib; using Microsoft.CodeAnalysis; using ModelReplacement; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("Th12")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Th12")] [assembly: AssemblyTitle("Th12")] [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; } } } namespace Touhou12Models { public class MRNUE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Nue"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRNAZRIN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Nazrin"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRBYAKUREN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Byakuren"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRICHIRIN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Ichirin"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKOGASA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kogasa"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSHOU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Shou"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMURASA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Murasa"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("Shen.Touhou12Models", "Touhou12PlayerModels", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Nazrin", typeof(MRNAZRIN)); ModelReplacementAPI.RegisterSuitModelReplacement("Kogasa", typeof(MRKOGASA)); ModelReplacementAPI.RegisterSuitModelReplacement("Ichirin", typeof(MRICHIRIN)); ModelReplacementAPI.RegisterSuitModelReplacement("Murasa", typeof(MRMURASA)); ModelReplacementAPI.RegisterSuitModelReplacement("Shou", typeof(MRSHOU)); ModelReplacementAPI.RegisterSuitModelReplacement("Byakuren", typeof(MRBYAKUREN)); ModelReplacementAPI.RegisterSuitModelReplacement("Nue", typeof(MRNUE)); Harmony val = new Harmony("Shen.Touhou12Models"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Shen.Touhou12Models is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "Touhou12PlayerModel"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
Th15.dll
Decompiled a year agousing System; 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 HarmonyLib; using Microsoft.CodeAnalysis; using ModelReplacement; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("Th15")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Th15")] [assembly: AssemblyTitle("Th15")] [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; } } } namespace Touhou15Models { public class MRSEIRAN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Seiran"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRRINGO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Ringo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRDOREMY : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Doremy"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSAGUME : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Sagume"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRCLOWNPIECE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Clownpiece"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRJUNKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Junko"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRHECATIA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Hecatia"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("Shen.Touhou15Models", "Touhou15PlayerModels", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Seiran", typeof(MRSEIRAN)); ModelReplacementAPI.RegisterSuitModelReplacement("Ringo", typeof(MRRINGO)); ModelReplacementAPI.RegisterSuitModelReplacement("Doremy", typeof(MRDOREMY)); ModelReplacementAPI.RegisterSuitModelReplacement("Sagume", typeof(MRSAGUME)); ModelReplacementAPI.RegisterSuitModelReplacement("Clownpiece", typeof(MRCLOWNPIECE)); ModelReplacementAPI.RegisterSuitModelReplacement("Junko", typeof(MRJUNKO)); ModelReplacementAPI.RegisterSuitModelReplacement("Hecatia", typeof(MRHECATIA)); Harmony val = new Harmony("Shen.Touhou15Models"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Shen.Touhou15Models is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "Touhou15PlayerModel"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
ThPW.dll
Decompiled a year agousing System; 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 HarmonyLib; using Microsoft.CodeAnalysis; using ModelReplacement; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("ThPW")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ThPW")] [assembly: AssemblyTitle("ThPW")] [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; } } } namespace TouhouPrintWorksModels { public class MRLUNA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Luna"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSTAR : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Star"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSUNNY : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Sunny"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKASEN : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kasen"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKOSUZU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kosuzu"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRMIYOI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Miyoi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRAKYUU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Akyuu"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("Shen.TouhouPrintWorksModels", "TouhouPrintWorksPlayerModels", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Luna", typeof(MRLUNA)); ModelReplacementAPI.RegisterSuitModelReplacement("Star", typeof(MRSTAR)); ModelReplacementAPI.RegisterSuitModelReplacement("Sunny", typeof(MRSUNNY)); ModelReplacementAPI.RegisterSuitModelReplacement("Kasen", typeof(MRKASEN)); ModelReplacementAPI.RegisterSuitModelReplacement("Kosuzu", typeof(MRKOSUZU)); ModelReplacementAPI.RegisterSuitModelReplacement("Miyoi", typeof(MRMIYOI)); ModelReplacementAPI.RegisterSuitModelReplacement("Akyuu", typeof(MRAKYUU)); Harmony val = new Harmony("Shen.TouhouPrintWorksModels"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Shen.TouhouPrintWorksModels is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "TouhouPrintWorksPlayerModel"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }
ThSO.dll
Decompiled a year agousing System; 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 HarmonyLib; using Microsoft.CodeAnalysis; using ModelReplacement; 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: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("ThSO")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ThSO")] [assembly: AssemblyTitle("ThSO")] [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; } } } namespace TouhouSpinOffModels { public class MRSUIKA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Suika"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRIKU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Iku"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRTENSHI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Tenshi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRKOKORO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kokoro"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSUMIREKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Sumireko"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRYUUMA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yuuma"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRJOON : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Joon"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRSHION : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Shion"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("Shen.TouhouSpinOffModels", "TouhouSpinOffPlayerModels", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Suika", typeof(MRSUIKA)); ModelReplacementAPI.RegisterSuitModelReplacement("Iku", typeof(MRIKU)); ModelReplacementAPI.RegisterSuitModelReplacement("Tenshi", typeof(MRTENSHI)); ModelReplacementAPI.RegisterSuitModelReplacement("Kokoro", typeof(MRKOKORO)); ModelReplacementAPI.RegisterSuitModelReplacement("Sumireko", typeof(MRSUMIREKO)); ModelReplacementAPI.RegisterSuitModelReplacement("Yuuma", typeof(MRYUUMA)); ModelReplacementAPI.RegisterSuitModelReplacement("Joon", typeof(MRJOON)); ModelReplacementAPI.RegisterSuitModelReplacement("Shion", typeof(MRSHION)); Harmony val = new Harmony("Shen.TouhouSpinOffModels"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Shen.TouhouSpinOffModels is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "TouhouSpinOffPlayerModel"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }