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 HiyoriMercenary v1.0.2
HiyoriMercenary.dll
Decompiled 7 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using MonoMod.RuntimeDetour.HookGen; using RoR2; using RoR2.ContentManagement; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] namespace HiyoriMercenary; [BepInPlugin("com.JestAnAnimator.HiyoriMercenary", "Hiyori Mercenary", "1.0.0")] public class HiyoriMercenaryPlugin : BaseUnityPlugin { private class FieldException : Exception { public FieldException(string message, Exception innerException) : base(message, innerException) { } } private static AssetBundle assetBundle; private static readonly List<Material> materialsWithRoRShader = new List<Material>(); internal static HiyoriMercenaryPlugin Instance { get; private set; } internal static ManualLogSource InstanceLogger { get { HiyoriMercenaryPlugin instance = Instance; return (instance != null) ? ((BaseUnityPlugin)instance).Logger : null; } } private void Start() { Instance = this; using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HiyoriMercenary.jestananimatorhiyorimercenary")) { assetBundle = AssetBundle.LoadFromStream(stream); } ((ResourceAvailability)(ref BodyCatalog.availability)).CallWhenAvailable((Action)BodyCatalogInit); HookEndpointManager.Add((MethodBase)typeof(Language).GetMethod("LoadStrings"), (Delegate)new Action<Action<Language>, Language>(LanguageLoadStrings)); ReplaceShaders(); } private static void ReplaceShaders() { LoadMaterialsWithReplacedShader("RoR2/Base/Shaders/HGStandard.shader", "Assets/HiyoriMErc/MATHiyoriMerc.mat"); } private static void LoadMaterialsWithReplacedShader(string shaderPath, params string[] materialPaths) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) Shader shader = Addressables.LoadAssetAsync<Shader>((object)shaderPath).WaitForCompletion(); foreach (string text in materialPaths) { Material val = assetBundle.LoadAsset<Material>(text); val.shader = shader; materialsWithRoRShader.Add(val); } } private static void LanguageLoadStrings(Action<Language> orig, Language self) { orig(self); self.SetStringByToken("JESTANANIMATOR_SKIN_HIYORIMERCINFO_NAME", "Hiyori(Backpack)"); self.SetStringByToken("JESTANANIMATOR_SKIN_HIYORIMERCNOBKINFO_NAME", "Hiyori"); } private static void Nothing(Action<SkinDef> orig, SkinDef self) { } private static void BodyCatalogInit() { MethodInfo method = typeof(SkinDef).GetMethod("Awake", BindingFlags.Instance | BindingFlags.NonPublic); HookEndpointManager.Add((MethodBase)method, (Delegate)new Action<Action<SkinDef>, SkinDef>(Nothing)); AddMercBodyHiyoriMercInfoSkin(); AddMercBodyHiyoriMercNOBKInfoSkin(); HookEndpointManager.Remove((MethodBase)method, (Delegate)new Action<Action<SkinDef>, SkinDef>(Nothing)); } private static void AddMercBodyHiyoriMercInfoSkin() { //IL_0273: Unknown result type (might be due to invalid IL or missing references) string text = "MercBody"; string text2 = "HiyoriMercInfo"; try { GameObject val = BodyCatalog.FindBodyPrefab(text); if (!Object.op_Implicit((Object)(object)val)) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin because \"" + text + "\" doesn't exist")); return; } ModelLocator component = val.GetComponent<ModelLocator>(); if (!Object.op_Implicit((Object)(object)component)) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\" because it doesn't have \"ModelLocator\" component")); return; } GameObject gameObject = ((Component)component.modelTransform).gameObject; ModelSkinController skinController = (Object.op_Implicit((Object)(object)gameObject) ? gameObject.GetComponent<ModelSkinController>() : null); if (!Object.op_Implicit((Object)(object)skinController)) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\" because it doesn't have \"ModelSkinController\" component")); return; } Renderer[] renderers = gameObject.GetComponentsInChildren<Renderer>(true); SkinDef skin = ScriptableObject.CreateInstance<SkinDef>(); TryCatchThrow("Icon", delegate { skin.icon = assetBundle.LoadAsset<Sprite>("Assets\\SkinMods\\HiyoriMercenary\\Icons\\HiyoriMercInfoIcon.png"); }); ((Object)skin).name = text2; skin.nameToken = "JESTANANIMATOR_SKIN_HIYORIMERCINFO_NAME"; skin.rootObject = gameObject; TryCatchThrow("Base Skins", delegate { skin.baseSkins = (SkinDef[])(object)new SkinDef[1] { skinController.skins[0] }; }); TryCatchThrow("Unlockable Name", delegate { skin.unlockableDef = ((IEnumerable<UnlockableDef>)ContentManager.unlockableDefs).FirstOrDefault((Func<UnlockableDef, bool>)((UnlockableDef def) => def.cachedName == "Hiyori(Backpack)")); }); TryCatchThrow("Game Object Activations", delegate { skin.gameObjectActivations = Array.Empty<GameObjectActivation>(); }); TryCatchThrow("Renderer Infos", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) skin.rendererInfos = (RendererInfo[])(object)new RendererInfo[2] { new RendererInfo { defaultMaterial = assetBundle.LoadAsset<Material>("Assets/HiyoriMErc/MATHiyoriMerc.mat"), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = renderers[7] }, new RendererInfo { defaultMaterial = assetBundle.LoadAsset<Material>("Assets/HiyoriMErc/MATHiyoriMerc.mat"), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = renderers[8] } }; }); TryCatchThrow("Mesh Replacements", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) skin.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[2] { new MeshReplacement { mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\HiyoriMercenary\\Meshes\\HiyoriMercMesh.mesh"), renderer = renderers[7] }, new MeshReplacement { mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\HiyoriMercenary\\Meshes\\HiyoriMercSwordMesh.mesh"), renderer = renderers[8] } }; }); TryCatchThrow("Minion Skin Replacements", delegate { skin.minionSkinReplacements = Array.Empty<MinionSkinReplacement>(); }); TryCatchThrow("Projectile Ghost Replacements", delegate { skin.projectileGhostReplacements = Array.Empty<ProjectileGhostReplacement>(); }); Array.Resize(ref skinController.skins, skinController.skins.Length + 1); skinController.skins[skinController.skins.Length - 1] = skin; BodyCatalog.skins[BodyCatalog.FindBodyIndex(val)] = skinController.skins; } catch (FieldException ex) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\"")); InstanceLogger.LogWarning((object)("Field causing issue: " + ex.Message)); InstanceLogger.LogError((object)ex.InnerException); } catch (Exception ex2) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\"")); InstanceLogger.LogError((object)ex2); } } private static void AddMercBodyHiyoriMercNOBKInfoSkin() { //IL_0273: Unknown result type (might be due to invalid IL or missing references) string text = "MercBody"; string text2 = "HiyoriMercNOBKInfo"; try { GameObject val = BodyCatalog.FindBodyPrefab(text); if (!Object.op_Implicit((Object)(object)val)) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin because \"" + text + "\" doesn't exist")); return; } ModelLocator component = val.GetComponent<ModelLocator>(); if (!Object.op_Implicit((Object)(object)component)) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\" because it doesn't have \"ModelLocator\" component")); return; } GameObject gameObject = ((Component)component.modelTransform).gameObject; ModelSkinController skinController = (Object.op_Implicit((Object)(object)gameObject) ? gameObject.GetComponent<ModelSkinController>() : null); if (!Object.op_Implicit((Object)(object)skinController)) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\" because it doesn't have \"ModelSkinController\" component")); return; } Renderer[] renderers = gameObject.GetComponentsInChildren<Renderer>(true); SkinDef skin = ScriptableObject.CreateInstance<SkinDef>(); TryCatchThrow("Icon", delegate { skin.icon = assetBundle.LoadAsset<Sprite>("Assets\\SkinMods\\HiyoriMercenary\\Icons\\HiyoriMercNOBKInfoIcon.png"); }); ((Object)skin).name = text2; skin.nameToken = "JESTANANIMATOR_SKIN_HIYORIMERCNOBKINFO_NAME"; skin.rootObject = gameObject; TryCatchThrow("Base Skins", delegate { skin.baseSkins = (SkinDef[])(object)new SkinDef[1] { skinController.skins[0] }; }); TryCatchThrow("Unlockable Name", delegate { skin.unlockableDef = ((IEnumerable<UnlockableDef>)ContentManager.unlockableDefs).FirstOrDefault((Func<UnlockableDef, bool>)((UnlockableDef def) => def.cachedName == "Hiyori")); }); TryCatchThrow("Game Object Activations", delegate { skin.gameObjectActivations = Array.Empty<GameObjectActivation>(); }); TryCatchThrow("Renderer Infos", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) skin.rendererInfos = (RendererInfo[])(object)new RendererInfo[2] { new RendererInfo { defaultMaterial = assetBundle.LoadAsset<Material>("Assets/HiyoriMErc/MATHiyoriMerc.mat"), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = renderers[7] }, new RendererInfo { defaultMaterial = assetBundle.LoadAsset<Material>("Assets/HiyoriMErc/MATHiyoriMerc.mat"), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = renderers[8] } }; }); TryCatchThrow("Mesh Replacements", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) skin.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[2] { new MeshReplacement { mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\HiyoriMercenary\\Meshes\\HiyoriMercNOBKMesh.mesh"), renderer = renderers[7] }, new MeshReplacement { mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\HiyoriMercenary\\Meshes\\HiyoriMercSwordMesh.mesh"), renderer = renderers[8] } }; }); TryCatchThrow("Minion Skin Replacements", delegate { skin.minionSkinReplacements = Array.Empty<MinionSkinReplacement>(); }); TryCatchThrow("Projectile Ghost Replacements", delegate { skin.projectileGhostReplacements = Array.Empty<ProjectileGhostReplacement>(); }); Array.Resize(ref skinController.skins, skinController.skins.Length + 1); skinController.skins[skinController.skins.Length - 1] = skin; BodyCatalog.skins[BodyCatalog.FindBodyIndex(val)] = skinController.skins; } catch (FieldException ex) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\"")); InstanceLogger.LogWarning((object)("Field causing issue: " + ex.Message)); InstanceLogger.LogError((object)ex.InnerException); } catch (Exception ex2) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\"")); InstanceLogger.LogError((object)ex2); } } private static void TryCatchThrow(string message, Action action) { try { action?.Invoke(); } catch (Exception innerException) { throw new FieldException(message, innerException); } } }
HiyoriMercVoiceover.dll
Decompiled 7 months agousing System; using System.Collections; using System.Collections.Generic; 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 BaseVoiceoverLib; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using HiyoriMercVoiceover.Components; using HiyoriMercVoiceover.Modules; using Microsoft.CodeAnalysis; using R2API; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.ContentManagement; using UnityEngine; using UnityEngine.AddressableAssets; [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("HiyoriMercVoiceover")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+84cdb6f9431052239401c7adb6d7a5920fb2fcc0")] [assembly: AssemblyProduct("HiyoriMercVoiceover")] [assembly: AssemblyTitle("HiyoriMercVoiceover")] [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 HiyoriMercVoiceover { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Schale.HiyoriMercVoiceover", "HiyoriMercVoiceover", "1.0.2")] public class HiyoriMercVoiceoverPlugin : BaseUnityPlugin { public class NSEInfo { public NetworkSoundEventDef nse; public uint akId = 0u; public string eventName = string.Empty; public NSEInfo(NetworkSoundEventDef source) { nse = source; akId = source.akId; eventName = source.eventName; } private void DisableSound() { nse.akId = 0u; nse.eventName = string.Empty; } private void EnableSound() { nse.akId = akId; nse.eventName = eventName; } public void ValidateParams() { if (akId == 0) { akId = nse.akId; } if (eventName == string.Empty) { eventName = nse.eventName; } if (!enableVoicelines.Value) { DisableSound(); } else { EnableSound(); } } } public static ConfigEntry<bool> enableVoicelines; public static ConfigEntry<KeyboardShortcut> buttonHurt; public static ConfigEntry<KeyboardShortcut> buttonShout; public static ConfigEntry<KeyboardShortcut> buttonTitle; public static ConfigEntry<KeyboardShortcut> buttonBweh; public static ConfigEntry<KeyboardShortcut> buttonItai; public static ConfigEntry<KeyboardShortcut> buttonEX1; public static ConfigEntry<KeyboardShortcut> buttonEX2; public static ConfigEntry<KeyboardShortcut> buttonEX3; public static ConfigEntry<KeyboardShortcut> buttonEXL1; public static ConfigEntry<KeyboardShortcut> buttonEXL2; public static ConfigEntry<KeyboardShortcut> buttonEXL3; public static ConfigEntry<KeyboardShortcut> buttonOwari1; public static ConfigEntry<KeyboardShortcut> buttonOwari2; public static ConfigEntry<KeyboardShortcut> buttonOwari3; public static ConfigEntry<KeyboardShortcut> buttonCommon; public static ConfigEntry<KeyboardShortcut> buttonNigashimasen; public static ConfigEntry<KeyboardShortcut> buttonArigatou; public static ConfigEntry<KeyboardShortcut> buttonGrotesque; public static bool playedSeasonalVoiceline = false; public static AssetBundle assetBundle; public static SurvivorDef survivorDef = Addressables.LoadAssetAsync<SurvivorDef>((object)"RoR2/Base/Merc/Merc.asset").WaitForCompletion(); public static List<NSEInfo> nseList = new List<NSEInfo>(); private void Awake() { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Expected O, but got Unknown //IL_0099: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Expected O, but got Unknown //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Expected O, but got Unknown //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Expected O, but got Unknown //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Expected O, but got Unknown //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Expected O, but got Unknown //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Expected O, but got Unknown //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Expected O, but got Unknown //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Expected O, but got Unknown //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Expected O, but got Unknown //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Expected O, but got Unknown //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Expected O, but got Unknown //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Expected O, but got Unknown //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Expected O, but got Unknown //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Expected O, but got Unknown //IL_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Expected O, but got Unknown //IL_02f0: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Expected O, but got Unknown //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Expected O, but got Unknown //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Expected O, but got Unknown Files.PluginInfo = ((BaseUnityPlugin)this).Info; RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoad)); new Content().Initialize(); using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HiyoriMercVoiceover.hiyorimercbundle")) { assetBundle = AssetBundle.LoadFromStream(stream); } SoundBanks.Init(); InitNSE(); enableVoicelines = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Settings", "Enable Voicelines"), true, new ConfigDescription("Enable voicelines when using the Hiyori Mercenary Skin.", (AcceptableValueBase)null, Array.Empty<object>())); enableVoicelines.SettingChanged += EnableVoicelines_SettingChanged; buttonTitle = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Blue Archive"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonHurt = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Hurt"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonShout = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Shout"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonBweh = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Bweh"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonItai = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Itai Desu"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonEX1 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "EX 1"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonEX2 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "EX 2"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonEX3 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "EX 3"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonEXL1 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "EX Lv1"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonEXL2 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "EX Lv2"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonEXL3 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "EX Lv3"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonOwari1 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Owari 1"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonOwari2 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Owari 2"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonOwari3 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Owari 3"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonCommon = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Common Skill"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonNigashimasen = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Nigashimasen"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonArigatou = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Arigatou"), KeyboardShortcut.Empty, (ConfigDescription)null); buttonGrotesque = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Grotesque"), KeyboardShortcut.Empty, (ConfigDescription)null); if (Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions")) { RiskOfOptionsCompat(); } } private void EnableVoicelines_SettingChanged(object sender, EventArgs e) { RefreshNSE(); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void RiskOfOptionsCompat() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected O, but got Unknown //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Expected O, but got Unknown //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Expected O, but got Unknown //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Expected O, but got Unknown //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Expected O, but got Unknown //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected O, but got Unknown //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Expected O, but got Unknown //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Expected O, but got Unknown //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Expected O, but got Unknown //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Expected O, but got Unknown //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Expected O, but got Unknown //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Expected O, but got Unknown //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Expected O, but got Unknown //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Expected O, but got Unknown ModSettingsManager.SetModIcon(assetBundle.LoadAsset<Sprite>("hiyori")); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(enableVoicelines)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonTitle)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonHurt)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonShout)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonBweh)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonItai)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonEX1)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonEX2)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonEX3)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonEXL1)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonEXL2)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonEXL3)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonOwari1)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonOwari2)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonOwari3)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonCommon)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonNigashimasen)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonArigatou)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonGrotesque)); } private void OnLoad() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Expected O, but got Unknown //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Expected O, but got Unknown //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Expected O, but got Unknown //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Expected O, but got Unknown //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Expected O, but got Unknown SkinDef val = null; SkinDef val2 = null; SkinDef[] array = SkinCatalog.FindSkinsForBody(BodyCatalog.FindBodyIndex("MercBody")); SkinDef[] array2 = array; foreach (SkinDef val3 in array2) { if (((Object)val3).name == "HiyoriMercInfo") { val = val3; } else if (((Object)val3).name == "HiyoriMercNOBKInfo") { val2 = val3; } if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val2)) { break; } } if (Object.op_Implicit((Object)(object)val)) { VoiceoverInfo val4 = new VoiceoverInfo(typeof(HiyoriMercVoiceoverComponent), val, "MercBody"); val4.selectActions = (LobbySelectActions)Delegate.Combine((Delegate?)(object)val4.selectActions, (Delegate?)new LobbySelectActions(HiyoriSelect)); } else { Debug.LogError((object)"HiyoriMercVoiceover: Hiyori Merc SkinDef not found. Voicelines will not work!"); } if (Object.op_Implicit((Object)(object)val2)) { VoiceoverInfo val5 = new VoiceoverInfo(typeof(HiyoriMercVoiceoverComponent), val2, "MercBody"); val5.selectActions = (LobbySelectActions)Delegate.Combine((Delegate?)(object)val5.selectActions, (Delegate?)new LobbySelectActions(HiyoriSelect)); } else { Debug.LogError((object)"HiyoriMercVoiceover: Hiyori Merc (No Case) SkinDef not found. Voicelines will not work!"); } RefreshNSE(); } private void HiyoriSelect(GameObject mannequinObject) { if (!enableVoicelines.Value) { return; } bool flag = false; if (!playedSeasonalVoiceline) { if ((DateTime.Today.Month == 1 && DateTime.Today.Day == 1) || (DateTime.Today.Month == 12 && DateTime.Today.Day == 31)) { Util.PlaySound("Play_HiyoriMerc_Lobby_Newyear", mannequinObject); flag = true; } else if (DateTime.Today.Month == 5 && DateTime.Today.Day == 24) { Util.PlaySound("Play_HiyoriMerc_Lobby_bday", mannequinObject); flag = true; } else if (DateTime.Today.Month == 10 && DateTime.Today.Day == 31) { Util.PlaySound("Play_HiyoriMerc_Lobby_Halloween", mannequinObject); flag = true; } else if (DateTime.Today.Month == 12 && (DateTime.Today.Day == 24 || DateTime.Today.Day == 25)) { Util.PlaySound("Play_HiyoriMerc_Lobby_xmas", mannequinObject); flag = true; } if (flag) { playedSeasonalVoiceline = true; } } if (!flag) { if (Util.CheckRoll(5f, 0f, (CharacterMaster)null)) { Util.PlaySound("Play_HiyoriMerc_Title", mannequinObject); } else { Util.PlaySound("Play_HiyoriMerc_Lobby", mannequinObject); } } } private void InitNSE() { HiyoriMercVoiceoverComponent.nseHurt = RegisterNSE("Play_HiyoriMerc_Hurt"); HiyoriMercVoiceoverComponent.nseShout = RegisterNSE("Play_HiyoriMerc_Shout"); HiyoriMercVoiceoverComponent.nseTitle = RegisterNSE("Play_HiyoriMerc_Title"); HiyoriMercVoiceoverComponent.nseBweh = RegisterNSE("Play_HiyoriMerc_Bweh"); HiyoriMercVoiceoverComponent.nseItai = RegisterNSE("Play_HiyoriMerc_Itai"); HiyoriMercVoiceoverComponent.nseEX1 = RegisterNSE("Play_HiyoriMerc_ExSkill_1"); HiyoriMercVoiceoverComponent.nseEX2 = RegisterNSE("Play_HiyoriMerc_ExSkill_2"); HiyoriMercVoiceoverComponent.nseEX3 = RegisterNSE("Play_HiyoriMerc_ExSkill_3"); HiyoriMercVoiceoverComponent.nseEXL1 = RegisterNSE("Play_HiyoriMerc_ExSkill_Level_1"); HiyoriMercVoiceoverComponent.nseEXL2 = RegisterNSE("Play_HiyoriMerc_ExSkill_Level_2"); HiyoriMercVoiceoverComponent.nseEXL3 = RegisterNSE("Play_HiyoriMerc_ExSkill_Level_3"); HiyoriMercVoiceoverComponent.nseOwari1 = RegisterNSE("Play_HiyoriMerc_Owari_1"); HiyoriMercVoiceoverComponent.nseOwari2 = RegisterNSE("Play_HiyoriMerc_Owari_2"); HiyoriMercVoiceoverComponent.nseOwari3 = RegisterNSE("Play_HiyoriMerc_Owari_3"); HiyoriMercVoiceoverComponent.nseCommon = RegisterNSE("Play_HiyoriMerc_CommonSkill"); HiyoriMercVoiceoverComponent.nseNigashimasen = RegisterNSE("Play_HiyoriMerc_Special"); HiyoriMercVoiceoverComponent.nseArigatou = RegisterNSE("Play_HiyoriMerc_Arigatou"); HiyoriMercVoiceoverComponent.nseGrotesque = RegisterNSE("Play_HiyoriMerc_Grotesque"); } public void RefreshNSE() { foreach (NSEInfo nse in nseList) { nse.ValidateParams(); } } private NetworkSoundEventDef RegisterNSE(string eventName) { NetworkSoundEventDef val = ScriptableObject.CreateInstance<NetworkSoundEventDef>(); val.eventName = eventName; Content.networkSoundEventDefs.Add(val); nseList.Add(new NSEInfo(val)); return val; } } } namespace HiyoriMercVoiceover.Modules { public class Content : IContentPackProvider { [CompilerGenerated] private sealed class <FinalizeAsync>d__8 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public FinalizeAsyncArgs args; public Content <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <FinalizeAsync>d__8(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <GenerateContentPackAsync>d__7 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public GetContentPackAsyncArgs args; public Content <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <GenerateContentPackAsync>d__7(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; ContentPack.Copy(<>4__this.contentPack, args.output); args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <LoadStaticContentAsync>d__6 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public LoadStaticContentAsyncArgs args; public Content <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <LoadStaticContentAsync>d__6(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; <>4__this.contentPack.identifier = <>4__this.identifier; <>4__this.contentPack.networkSoundEventDefs.Add(networkSoundEventDefs.ToArray()); args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } internal ContentPack contentPack = new ContentPack(); public static List<NetworkSoundEventDef> networkSoundEventDefs = new List<NetworkSoundEventDef>(); public string identifier => "com.Schale.HiyoriMercVoiceover"; public void Initialize() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders); } private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); } [IteratorStateMachine(typeof(<LoadStaticContentAsync>d__6))] public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <LoadStaticContentAsync>d__6(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(<GenerateContentPackAsync>d__7))] public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <GenerateContentPackAsync>d__7(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(<FinalizeAsync>d__8))] public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <FinalizeAsync>d__8(0) { <>4__this = this, args = args }; } } public static class Files { public static PluginInfo PluginInfo; internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location); internal static void Init(PluginInfo info) { PluginInfo = info; } internal static string GetPathToFile(string folderName, string fileName) { return Path.Combine(assemblyDir, folderName, fileName); } } public static class SoundBanks { private static bool initialized; public static string SoundBankDirectory => Files.assemblyDir; public static void Init() { if (initialized) { return; } initialized = true; using Stream stream = new FileStream(SoundBankDirectory + "\\HiyoriMercSoundbank.bnk", FileMode.Open); byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); SoundBanks.Add(array); } } } namespace HiyoriMercVoiceover.Components { public class HiyoriMercVoiceoverComponent : BaseVoiceoverComponent { public static NetworkSoundEventDef nseHurt; public static NetworkSoundEventDef nseShout; public static NetworkSoundEventDef nseTitle; public static NetworkSoundEventDef nseBweh; public static NetworkSoundEventDef nseItai; public static NetworkSoundEventDef nseEX1; public static NetworkSoundEventDef nseEX2; public static NetworkSoundEventDef nseEX3; public static NetworkSoundEventDef nseEXL1; public static NetworkSoundEventDef nseEXL2; public static NetworkSoundEventDef nseEXL3; public static NetworkSoundEventDef nseOwari1; public static NetworkSoundEventDef nseOwari2; public static NetworkSoundEventDef nseOwari3; public static NetworkSoundEventDef nseCommon; public static NetworkSoundEventDef nseNigashimasen; public static NetworkSoundEventDef nseArigatou; public static NetworkSoundEventDef nseGrotesque; private bool acquiredScepter = false; private float levelCooldown = 0f; private float lowHealthCooldown = 0f; private float shrineFailCooldown = 0f; private float specialCooldown = 0f; protected override void FixedUpdate() { ((BaseVoiceoverComponent)this).FixedUpdate(); if (levelCooldown > 0f) { levelCooldown -= Time.fixedDeltaTime; } if (lowHealthCooldown > 0f) { lowHealthCooldown -= Time.fixedDeltaTime; } if (shrineFailCooldown > 0f) { shrineFailCooldown -= Time.fixedDeltaTime; } if (specialCooldown > 0f) { specialCooldown -= Time.fixedDeltaTime; } } protected override void Start() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) ((BaseVoiceoverComponent)this).Start(); if (Object.op_Implicit((Object)(object)base.inventory) && base.inventory.GetItemCount(BaseVoiceoverComponent.scepterIndex) > 0) { acquiredScepter = true; } } public override void PlayUtilityAuthority(GenericSkill skill) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseShout, 0f, false); } public override void PlaySpecialAuthority(GenericSkill skill) { if (!(specialCooldown > 0f)) { bool flag = false; if ((!Util.CheckRoll(50f, 0f, (CharacterMaster)null)) ? ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseNigashimasen, 1.2f, false) : ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseCommon, 3f, false)) { specialCooldown = 7f; } } } public override void PlaySpawn() { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Spawn", 6.2f, true); } public override void PlayDeath() { if (Util.CheckRoll(33.333332f, 0f, (CharacterMaster)null)) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Owari_1", 6f, true); } else if (Util.CheckRoll(50f, 0f, (CharacterMaster)null)) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Owari_2", 3.7f, true); } else { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Owari_3", 4.6f, true); } } public override void PlayShrineOfChanceFailServer() { if (!(shrineFailCooldown > 0f) && (Util.CheckRoll(70f, 0f, (CharacterMaster)null) ? ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseEXL3, 4f, false) : (Util.CheckRoll(33.333332f, 0f, (CharacterMaster)null) ? ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseOwari1, 6f, false) : ((!Util.CheckRoll(50f, 0f, (CharacterMaster)null)) ? ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseOwari3, 4.6f, false) : ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseOwari2, 3.7f, false))))) { shrineFailCooldown = 20f; } } public override void PlayLevelUp() { if (!(levelCooldown > 0f) && (Util.CheckRoll(50f, 0f, (CharacterMaster)null) ? ((!Util.CheckRoll(50f, 0f, (CharacterMaster)null)) ? ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Growup_2", 12f, false) : ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Growup_1", 10f, false)) : ((!Util.CheckRoll(50f, 0f, (CharacterMaster)null)) ? ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Growup_4", 4.7f, false) : ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Growup_3", 5.7f, false)))) { levelCooldown = 60f; } } public override void PlayHurt(float percentHPLost) { if (percentHPLost >= 0.1f) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Hurt", 0f, false); } } public override void PlayTeleporterStart() { if (Util.CheckRoll(33.333332f, 0f, (CharacterMaster)null)) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_ExSkill_1", 4.4f, false); } else if (Util.CheckRoll(50f, 0f, (CharacterMaster)null)) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_ExSkill_2", 5.2f, false); } else { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_ExSkill_3", 6f, false); } } public override void PlayTeleporterFinish() { if (Util.CheckRoll(33.333332f, 0f, (CharacterMaster)null)) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_ExSkill_Level_1", 6.8f, false); } else if (Util.CheckRoll(50f, 0f, (CharacterMaster)null)) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_ExSkill_Level_2", 4.2f, false); } else { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_ExSkill_Level_3", 4f, false); } } public override void PlayVictory() { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_RunVictory", 7.2f, true); } public void PlayAcquireScepter() { if (!acquiredScepter) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_AcquireScepter", 13f, true); acquiredScepter = true; } } public void PlayAcquireLegendary() { if (Util.CheckRoll(50f, 0f, (CharacterMaster)null)) { if (Util.CheckRoll(50f, 0f, (CharacterMaster)null)) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Relationship_1", 11f, false); } else { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Relationship_2", 5.3f, false); } } else if (Util.CheckRoll(50f, 0f, (CharacterMaster)null)) { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Relationship_3", 11f, false); } else { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Relationship_4", 7.4f, false); } } public override void PlayLowHealth() { if (!(lowHealthCooldown > 0f)) { bool flag = false; if ((!Util.CheckRoll(50f, 0f, (CharacterMaster)null)) ? ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Itai", 5.8f, false) : ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Bweh", 2.25f, false)) { lowHealthCooldown = 60f; } } } public void PlaySquid() { ((BaseVoiceoverComponent)this).TryPlaySound("Play_HiyoriMerc_Grotesque", 1.5f, false); } protected override void Inventory_onItemAddedClient(ItemIndex itemIndex) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Invalid comparison between Unknown and I4 //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Invalid comparison between Unknown and I4 ((BaseVoiceoverComponent)this).Inventory_onItemAddedClient(itemIndex); if ((int)BaseVoiceoverComponent.scepterIndex != -1 && itemIndex == BaseVoiceoverComponent.scepterIndex) { PlayAcquireScepter(); return; } ItemDef itemDef = ItemCatalog.GetItemDef(itemIndex); if ((Object)(object)itemDef == (Object)(object)Items.Squid || (Object)(object)itemDef == (Object)(object)Items.NovaOnLowHealth) { PlaySquid(); } else if (Object.op_Implicit((Object)(object)itemDef) && (int)itemDef.deprecatedTier == 2) { PlayAcquireLegendary(); } } protected override void CheckInputs() { if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonHurt)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseHurt, 0.1f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonShout)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseShout, 0.1f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonTitle)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseTitle, 5.6f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonBweh)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseBweh, 2.25f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonItai)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseItai, 5.8f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonEX1)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseEX1, 4.4f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonEX2)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseEX2, 5.2f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonEX3)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseEX3, 6f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonEXL1)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseEXL1, 6.8f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonEXL2)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseEXL2, 4.2f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonEXL3)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseEXL3, 4f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonOwari1)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseOwari1, 6f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonOwari2)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseOwari2, 3.7f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonOwari3)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseOwari3, 4.6f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonCommon)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseCommon, 3f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonNigashimasen)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseNigashimasen, 1.2f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonArigatou)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseArigatou, 4f, false); } else if (Utils.GetKeyPressed(HiyoriMercVoiceoverPlugin.buttonGrotesque)) { ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseGrotesque, 1.5f, false); } } public override bool ComponentEnableVoicelines() { return HiyoriMercVoiceoverPlugin.enableVoicelines.Value; } } }