using 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.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using PluginConfig.API;
using PluginConfig.API.Decorators;
using PluginConfig.API.Fields;
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("YellowImpactPitchIndication")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.3.0")]
[assembly: AssemblyInformationalVersion("1.0.3")]
[assembly: AssemblyProduct("Yellow Impact Pitch Indication")]
[assembly: AssemblyTitle("YellowImpactPitchIndication")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.3.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace YellowImpactPitchIndication
{
public enum MotorRotationEnum
{
Movement_Speed_Only,
Time_Left_Only,
Max_of_Speed_and_Time_Left,
Both_Speed_and_Time_Left
}
[BepInPlugin("YellowImpactPitchIndication", "Yellow Impact Pitch Indication", "1.0.3")]
[Harmony]
public class Plugin : BaseUnityPlugin
{
internal static ManualLogSource Logger;
private static PluginConfigurator config;
private static float pitch = 1f;
private static float variation = 0.2f;
private void Awake()
{
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Expected O, but got Unknown
Logger = ((BaseUnityPlugin)this).Logger;
Harmony val = new Harmony("YellowImpactPitchIndication");
val.PatchAll();
config = PluginConfig.CreateConfig();
Logger.LogInfo((object)"Plugin YellowImpactPitchIndication is loaded!");
}
[HarmonyPatch(typeof(ShotgunHammer), "ImpactRoutine")]
[HarmonyPrefix]
private static void ChangePitch(ShotgunHammer __instance)
{
int num = MonoSingleton<WeaponCharges>.Instance.shoAltYellows;
if (PluginConfig.adjustInAdvance && __instance.tier == 1)
{
num++;
}
if (num < 0)
{
num = 0;
}
if (num > 3)
{
num = 3;
}
if (__instance.wid.delay == 0f)
{
if (PluginConfig.appliesToTier[__instance.tier])
{
pitch = PluginConfig.pitches[num];
variation = PluginConfig.pitchVariations[num];
}
else
{
pitch = PluginConfig.fallbackPitch[__instance.tier];
variation = PluginConfig.fallbackVariation[__instance.tier];
}
}
if (variation == 0f)
{
variation = 0.0001f;
}
RandomPitch component = ((Component)__instance.hitSound).gameObject.GetComponent<RandomPitch>();
component.pitchVariation = variation;
component.defaultPitch = pitch;
}
[HarmonyPatch(typeof(ShotgunHammer), "Awake")]
[HarmonyPostfix]
private static void SetupSteamIndicator(ShotgunHammer __instance)
{
if (!Object.op_Implicit((Object)(object)((Component)__instance).gameObject.GetComponent<SteamIndicator>()))
{
((Component)__instance).gameObject.AddComponent<SteamIndicator>();
}
}
[HarmonyPatch(typeof(ShotgunHammer), "Update")]
[HarmonyPrefix]
private static void ModifyCooldownSteamColor(ShotgunHammer __instance)
{
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: 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_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: 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)
if (MonoSingleton<WeaponCharges>.Instance.shoaltcooldowns[__instance.variation] > 0f && !__instance.overheatAud.isPlaying)
{
MainModule main = __instance.overheatParticle.main;
MinMaxGradient startColor = ((MainModule)(ref main)).startColor;
((MinMaxGradient)(ref startColor)).color = new Color(PluginConfig.cdParticleColor.r, PluginConfig.cdParticleColor.g, PluginConfig.cdParticleColor.b, PluginConfig.cdParticleOpacity);
((MainModule)(ref main)).startColor = startColor;
}
}
[HarmonyPatch(typeof(ShotgunHammer), "LateUpdate")]
[HarmonyPrefix]
private static void GetMotorRotation(ShotgunHammer __instance, ref Quaternion __state)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
__state = __instance.motorPreviousRotation;
}
[HarmonyPatch(typeof(ShotgunHammer), "LateUpdate")]
[HarmonyPostfix]
private static void SetMotorRotation(ShotgunHammer __instance, Quaternion __state)
{
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
if (PluginConfig.motorRotation == MotorRotationEnum.Movement_Speed_Only || (PluginConfig.motorRotation == MotorRotationEnum.Both_Speed_and_Time_Left && MonoSingleton<WeaponCharges>.Instance.shoAltYellowsTimer <= 0f))
{
return;
}
__instance.rotatingMotor.localRotation = __state;
float num = Time.timeScale;
if (__instance.impactRoutine != null)
{
num = 1f;
}
float num2 = MonoSingleton<WeaponCharges>.Instance.shoAltYellowsTimer * PluginConfig.motorRotationMultiplier;
num2 /= 3f;
if (PluginConfig.motorRotation == MotorRotationEnum.Max_of_Speed_and_Time_Left && num2 < __instance.currentSpeed)
{
num2 = __instance.currentSpeed;
}
__instance.rotatingMotor.Rotate(Vector3.up * num2 * 10f * num * Time.unscaledDeltaTime * 150f, (Space)1);
__instance.motorPreviousRotation = __instance.rotatingMotor.localRotation;
__instance.motorSprite.color = new Color(1f, 1f, 1f, num2 / 3f);
if (!PluginConfig.originalMotorSound)
{
__instance.motorSound.volume = num2 / 2f;
if (__instance.impactRoutine == null)
{
AudioSourceExtensions.SetPitch(__instance.motorSound, num2 * num);
}
else
{
AudioSourceExtensions.SetPitch(__instance.motorSound, (float)(__instance.tier + 1));
}
}
}
}
public static class PluginConfig
{
[Serializable]
[CompilerGenerated]
private sealed class <>c
{
public static readonly <>c <>9 = new <>c();
public static BoolValueChangeEventDelegate <>9__22_0;
public static BoolValueChangeEventDelegate <>9__22_1;
public static BoolValueChangeEventDelegate <>9__22_2;
public static BoolValueChangeEventDelegate <>9__22_3;
public static BoolValueChangeEventDelegate <>9__22_5;
public static BoolValueChangeEventDelegate <>9__22_7;
public static FloatValueChangeEventDelegate <>9__22_8;
public static FloatValueChangeEventDelegate <>9__22_9;
public static FloatValueChangeEventDelegate <>9__22_10;
public static FloatValueChangeEventDelegate <>9__22_11;
public static ColorValueChangeEventDelegate <>9__22_12;
public static FloatValueChangeEventDelegate <>9__22_13;
public static FloatValueChangeEventDelegate <>9__22_14;
public static FloatValueChangeEventDelegate <>9__22_15;
public static FloatValueChangeEventDelegate <>9__22_16;
public static FloatValueChangeEventDelegate <>9__22_17;
public static FloatValueChangeEventDelegate <>9__22_18;
public static FloatValueChangeEventDelegate <>9__22_19;
public static FloatValueChangeEventDelegate <>9__22_20;
public static FloatValueChangeEventDelegate <>9__22_21;
public static FloatValueChangeEventDelegate <>9__22_22;
public static FloatValueChangeEventDelegate <>9__22_23;
public static FloatValueChangeEventDelegate <>9__22_24;
public static FloatValueChangeEventDelegate <>9__22_26;
public static BoolValueChangeEventDelegate <>9__22_27;
public static ColorValueChangeEventDelegate <>9__22_28;
public static FloatValueChangeEventDelegate <>9__22_29;
internal void <CreateConfig>b__22_0(BoolValueChangeEvent e)
{
appliesToTier[0] = e.value;
((ConfigField)fallbackDiv[0]).interactable = !e.value;
}
internal void <CreateConfig>b__22_1(BoolValueChangeEvent e)
{
appliesToTier[1] = e.value;
((ConfigField)fallbackDiv[1]).interactable = !e.value;
}
internal void <CreateConfig>b__22_2(BoolValueChangeEvent e)
{
appliesToTier[2] = e.value;
((ConfigField)fallbackDiv[2]).interactable = !e.value;
}
internal void <CreateConfig>b__22_3(BoolValueChangeEvent e)
{
adjustInAdvance = e.value;
}
internal void <CreateConfig>b__22_5(BoolValueChangeEvent e)
{
mutuallyExclusiveSteams[0] = e.value;
}
internal void <CreateConfig>b__22_7(BoolValueChangeEvent e)
{
mutuallyExclusiveSteams[1] = e.value;
}
internal void <CreateConfig>b__22_8(FloatValueChangeEvent e)
{
particleSpeed = e.value;
}
internal void <CreateConfig>b__22_9(FloatValueChangeEvent e)
{
particleRate[0] = e.value;
}
internal void <CreateConfig>b__22_10(FloatValueChangeEvent e)
{
particleRate[1] = e.value;
}
internal void <CreateConfig>b__22_11(FloatValueChangeEvent e)
{
particleRate[2] = e.value;
}
internal void <CreateConfig>b__22_12(ColorValueChangeEvent e)
{
//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)
particleColor = e.value;
}
internal void <CreateConfig>b__22_13(FloatValueChangeEvent e)
{
particleOpacity[0] = e.value;
}
internal void <CreateConfig>b__22_14(FloatValueChangeEvent e)
{
particleOpacity[1] = e.value;
}
internal void <CreateConfig>b__22_15(FloatValueChangeEvent e)
{
particleOpacity[2] = e.value;
}
internal void <CreateConfig>b__22_16(FloatValueChangeEvent e)
{
steamParticleRot[0] = e.value;
}
internal void <CreateConfig>b__22_17(FloatValueChangeEvent e)
{
steamParticleRot[1] = e.value;
}
internal void <CreateConfig>b__22_18(FloatValueChangeEvent e)
{
steamParticleRot[2] = e.value;
}
internal void <CreateConfig>b__22_19(FloatValueChangeEvent e)
{
steamVolume[0] = e.value;
}
internal void <CreateConfig>b__22_20(FloatValueChangeEvent e)
{
steamPitch[0] = e.value;
}
internal void <CreateConfig>b__22_21(FloatValueChangeEvent e)
{
steamVolume[1] = e.value;
}
internal void <CreateConfig>b__22_22(FloatValueChangeEvent e)
{
steamPitch[1] = e.value;
}
internal void <CreateConfig>b__22_23(FloatValueChangeEvent e)
{
steamVolume[2] = e.value;
}
internal void <CreateConfig>b__22_24(FloatValueChangeEvent e)
{
steamPitch[2] = e.value;
}
internal void <CreateConfig>b__22_26(FloatValueChangeEvent e)
{
motorRotationMultiplier = e.value;
}
internal void <CreateConfig>b__22_27(BoolValueChangeEvent e)
{
originalMotorSound = e.value;
}
internal void <CreateConfig>b__22_28(ColorValueChangeEvent e)
{
//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)
cdParticleColor = e.value;
}
internal void <CreateConfig>b__22_29(FloatValueChangeEvent e)
{
cdParticleOpacity = e.value;
}
}
public static bool[] appliesToTier = new bool[3] { true, true, true };
public static bool adjustInAdvance = false;
public static float[] pitches = new float[4] { 1f, 1.15f, 1.25f, 1.25f };
public static float[] pitchVariations = new float[4] { 0.0325f, 0.0325f, 0.0325f, 0.0325f };
public static float[] fallbackPitch = new float[3] { 1f, 1f, 1f };
public static float[] fallbackVariation = new float[3] { 0.2f, 0.2f, 0.2f };
public static bool steamParticles = true;
public static bool steamAudio = true;
public static float particleSpeed = 30f;
public static float[] particleOpacity = new float[3] { 0.75f, 0.75f, 0.75f };
public static Color particleColor = new Color(0.3585f, 0.3585f, 0.3585f);
public static float[] particleRate = new float[3] { 125f, 250f, 375f };
public static float[] steamVolume = new float[3] { 0.45f, 0.55f, 0.65f };
public static float[] steamPitch = new float[3] { 1.1f, 1.1f, 1.1f };
public static float[] steamParticleRot = new float[3] { 45f, 45f, 180f };
public static float cdParticleOpacity = 0.75f;
public static Color cdParticleColor = new Color(0.3585f, 0.3585f, 0.3585f);
public static bool[] mutuallyExclusiveSteams = new bool[2] { true, true };
public static MotorRotationEnum motorRotation = MotorRotationEnum.Time_Left_Only;
public static float motorRotationMultiplier = 0.5f;
public static bool originalMotorSound = true;
private static ConfigDivision[] fallbackDiv = (ConfigDivision[])(object)new ConfigDivision[3];
public static PluginConfigurator CreateConfig()
{
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
//IL_008f: Expected O, but got Unknown
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a5: Expected O, but got Unknown
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Expected O, but got Unknown
//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
//IL_00d3: Expected O, but got Unknown
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00ea: Expected O, but got Unknown
//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_0123: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: Unknown result type (might be due to invalid IL or missing references)
//IL_013f: Unknown result type (might be due to invalid IL or missing references)
//IL_014e: Unknown result type (might be due to invalid IL or missing references)
//IL_0184: Unknown result type (might be due to invalid IL or missing references)
//IL_0189: Unknown result type (might be due to invalid IL or missing references)
//IL_018f: Expected O, but got Unknown
//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
//IL_01d0: Expected O, but got Unknown
//IL_0207: Unknown result type (might be due to invalid IL or missing references)
//IL_020c: Unknown result type (might be due to invalid IL or missing references)
//IL_0212: Expected O, but got Unknown
//IL_0260: Unknown result type (might be due to invalid IL or missing references)
//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
//IL_02f1: Expected O, but got Unknown
//IL_02fa: Unknown result type (might be due to invalid IL or missing references)
//IL_0304: Expected O, but got Unknown
//IL_0242: Unknown result type (might be due to invalid IL or missing references)
//IL_0247: Unknown result type (might be due to invalid IL or missing references)
//IL_024d: Expected O, but got Unknown
//IL_0353: Unknown result type (might be due to invalid IL or missing references)
//IL_0377: Unknown result type (might be due to invalid IL or missing references)
//IL_0381: Expected O, but got Unknown
//IL_038a: Unknown result type (might be due to invalid IL or missing references)
//IL_0394: Expected O, but got Unknown
//IL_0339: Unknown result type (might be due to invalid IL or missing references)
//IL_033e: Unknown result type (might be due to invalid IL or missing references)
//IL_0344: Expected O, but got Unknown
//IL_03c9: Unknown result type (might be due to invalid IL or missing references)
//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
//IL_03d4: Expected O, but got Unknown
//IL_0409: Unknown result type (might be due to invalid IL or missing references)
//IL_040e: Unknown result type (might be due to invalid IL or missing references)
//IL_0414: Expected O, but got Unknown
//IL_044f: Unknown result type (might be due to invalid IL or missing references)
//IL_0454: Unknown result type (might be due to invalid IL or missing references)
//IL_045a: Expected O, but got Unknown
//IL_0495: Unknown result type (might be due to invalid IL or missing references)
//IL_049a: Unknown result type (might be due to invalid IL or missing references)
//IL_04a0: Expected O, but got Unknown
//IL_04db: Unknown result type (might be due to invalid IL or missing references)
//IL_04e0: Unknown result type (might be due to invalid IL or missing references)
//IL_04e6: Expected O, but got Unknown
//IL_051b: Unknown result type (might be due to invalid IL or missing references)
//IL_0520: Unknown result type (might be due to invalid IL or missing references)
//IL_0526: Expected O, but got Unknown
//IL_0561: Unknown result type (might be due to invalid IL or missing references)
//IL_0566: Unknown result type (might be due to invalid IL or missing references)
//IL_056c: Expected O, but got Unknown
//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
//IL_05ac: Unknown result type (might be due to invalid IL or missing references)
//IL_05b2: Expected O, but got Unknown
//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
//IL_05f2: Unknown result type (might be due to invalid IL or missing references)
//IL_05f8: Expected O, but got Unknown
//IL_0633: Unknown result type (might be due to invalid IL or missing references)
//IL_0638: Unknown result type (might be due to invalid IL or missing references)
//IL_063e: Expected O, but got Unknown
//IL_0679: Unknown result type (might be due to invalid IL or missing references)
//IL_067e: Unknown result type (might be due to invalid IL or missing references)
//IL_0684: Expected O, but got Unknown
//IL_06bf: Unknown result type (might be due to invalid IL or missing references)
//IL_06c4: Unknown result type (might be due to invalid IL or missing references)
//IL_06ca: Expected O, but got Unknown
//IL_0705: Unknown result type (might be due to invalid IL or missing references)
//IL_070a: Unknown result type (might be due to invalid IL or missing references)
//IL_0710: Expected O, but got Unknown
//IL_074b: Unknown result type (might be due to invalid IL or missing references)
//IL_0750: Unknown result type (might be due to invalid IL or missing references)
//IL_0756: Expected O, but got Unknown
//IL_0791: Unknown result type (might be due to invalid IL or missing references)
//IL_0796: Unknown result type (might be due to invalid IL or missing references)
//IL_079c: Expected O, but got Unknown
//IL_07d7: Unknown result type (might be due to invalid IL or missing references)
//IL_07dc: Unknown result type (might be due to invalid IL or missing references)
//IL_07e2: Expected O, but got Unknown
//IL_081d: Unknown result type (might be due to invalid IL or missing references)
//IL_0822: Unknown result type (might be due to invalid IL or missing references)
//IL_0828: Expected O, but got Unknown
//IL_087d: Unknown result type (might be due to invalid IL or missing references)
//IL_08b4: Unknown result type (might be due to invalid IL or missing references)
//IL_08be: Expected O, but got Unknown
//IL_0863: Unknown result type (might be due to invalid IL or missing references)
//IL_0868: Unknown result type (might be due to invalid IL or missing references)
//IL_086e: Expected O, but got Unknown
//IL_08ed: Unknown result type (might be due to invalid IL or missing references)
//IL_08f2: Unknown result type (might be due to invalid IL or missing references)
//IL_08f8: Expected O, but got Unknown
//IL_0947: Unknown result type (might be due to invalid IL or missing references)
//IL_092d: Unknown result type (might be due to invalid IL or missing references)
//IL_0932: Unknown result type (might be due to invalid IL or missing references)
//IL_0938: Expected O, but got Unknown
//IL_0978: Unknown result type (might be due to invalid IL or missing references)
//IL_097d: Unknown result type (might be due to invalid IL or missing references)
//IL_0983: Expected O, but got Unknown
//IL_09b4: Unknown result type (might be due to invalid IL or missing references)
//IL_09b9: Unknown result type (might be due to invalid IL or missing references)
//IL_09bf: Expected O, but got Unknown
PluginConfigurator val = PluginConfigurator.Create("Impact Hammer Hit Indicator Config", "YellowImpactPitchIndication");
val.SetIconWithURL(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? "", "icon.png"));
new ConfigSpace(val.rootPanel, 5f);
new ConfigHeader(val.rootPanel, "General", 24);
ConfigDivision steamAudioDiv = null;
ConfigDivision steamParticleDiv = null;
ConfigDivision motorDiv = null;
ConfigPanel val2 = new ConfigPanel(val.rootPanel, "Green Hits", "greenHitsPanel");
ConfigPanel val3 = new ConfigPanel(val.rootPanel, "Yellow Hits", "yellowHitsPanel");
ConfigPanel val4 = new ConfigPanel(val.rootPanel, "Red Hits", "redHitsPanel");
ConfigPanel val5 = new ConfigPanel(val.rootPanel, "Steam Indicator", "steamPanel");
ConfigPanel val6 = new ConfigPanel(val.rootPanel, "Extras", "extrasPanel");
new ConfigSpace(val2, 5f);
new ConfigSpace(val3, 5f);
new ConfigSpace(val4, 5f);
new ConfigSpace(val5, 5f);
new ConfigSpace(val6, 5f);
new ConfigHeader(val2, "General", 24);
new ConfigHeader(val3, "General", 24);
new ConfigHeader(val4, "General", 24);
BoolField obj = BoolSetting(val, val2, "Applies to Green hits", "appliesToTier0", ref appliesToTier[0]);
object obj2 = <>c.<>9__22_0;
if (obj2 == null)
{
BoolValueChangeEventDelegate val7 = delegate(BoolValueChangeEvent e)
{
appliesToTier[0] = e.value;
((ConfigField)fallbackDiv[0]).interactable = !e.value;
};
<>c.<>9__22_0 = val7;
obj2 = (object)val7;
}
obj.onValueChange += (BoolValueChangeEventDelegate)obj2;
BoolField obj3 = BoolSetting(val, val3, "Applies to Yellow hits", "appliesToTier1", ref appliesToTier[1]);
object obj4 = <>c.<>9__22_1;
if (obj4 == null)
{
BoolValueChangeEventDelegate val8 = delegate(BoolValueChangeEvent e)
{
appliesToTier[1] = e.value;
((ConfigField)fallbackDiv[1]).interactable = !e.value;
};
<>c.<>9__22_1 = val8;
obj4 = (object)val8;
}
obj3.onValueChange += (BoolValueChangeEventDelegate)obj4;
BoolField obj5 = BoolSetting(val, val4, "Applies to Red hits", "appliesToTier2", ref appliesToTier[2]);
object obj6 = <>c.<>9__22_2;
if (obj6 == null)
{
BoolValueChangeEventDelegate val9 = delegate(BoolValueChangeEvent e)
{
appliesToTier[2] = e.value;
((ConfigField)fallbackDiv[2]).interactable = !e.value;
};
<>c.<>9__22_2 = val9;
obj6 = (object)val9;
}
obj5.onValueChange += (BoolValueChangeEventDelegate)obj6;
BoolField obj7 = BoolSetting(val, val3, "Yellow hits use next pitch", "adjustInAdvance", ref adjustInAdvance);
object obj8 = <>c.<>9__22_3;
if (obj8 == null)
{
BoolValueChangeEventDelegate val10 = delegate(BoolValueChangeEvent e)
{
adjustInAdvance = e.value;
};
<>c.<>9__22_3 = val10;
obj8 = (object)val10;
}
obj7.onValueChange += (BoolValueChangeEventDelegate)obj8;
new ConfigHeader(val.rootPanel, "Rising Pitch", 24);
PitchSettings(val, val.rootPanel, 0);
PitchSettings(val, val.rootPanel, 1);
PitchSettings(val, val.rootPanel, 2);
PitchSettings(val, val.rootPanel, 3);
PitchFallbacks(val, val2, 0);
PitchFallbacks(val, val3, 1);
PitchFallbacks(val, val4, 2);
new ConfigHeader(val5, "Steam Audio", 24);
BoolSetting(val, val5, "Enable Steam Audio", "steamAudio", ref steamAudio).onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
{
steamAudio = e.value;
((ConfigField)steamAudioDiv).interactable = e.value;
};
steamAudioDiv = new ConfigDivision(val5, "audioDiv");
BoolField obj9 = BoolSetting(val, (ConfigPanel)(object)steamAudioDiv, "Disable audio on long cooldown", "mutuallyExclusiveSteams", ref mutuallyExclusiveSteams[0]);
object obj10 = <>c.<>9__22_5;
if (obj10 == null)
{
BoolValueChangeEventDelegate val11 = delegate(BoolValueChangeEvent e)
{
mutuallyExclusiveSteams[0] = e.value;
};
<>c.<>9__22_5 = val11;
obj10 = (object)val11;
}
obj9.onValueChange += (BoolValueChangeEventDelegate)obj10;
new ConfigHeader(val5, "Steam Particles", 24);
BoolSetting(val, val5, "Enable Steam Particles", "steamParticles", ref steamParticles).onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
{
steamParticles = e.value;
((ConfigField)steamParticleDiv).interactable = e.value;
};
steamParticleDiv = new ConfigDivision(val5, "particleDiv");
BoolField obj11 = BoolSetting(val, (ConfigPanel)(object)steamParticleDiv, "Disable particles on long cooldown", "mutuallyExclusiveSteams2", ref mutuallyExclusiveSteams[1]);
object obj12 = <>c.<>9__22_7;
if (obj12 == null)
{
BoolValueChangeEventDelegate val12 = delegate(BoolValueChangeEvent e)
{
mutuallyExclusiveSteams[1] = e.value;
};
<>c.<>9__22_7 = val12;
obj12 = (object)val12;
}
obj11.onValueChange += (BoolValueChangeEventDelegate)obj12;
FloatField obj13 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Speed", "particleSpeed", ref particleSpeed);
object obj14 = <>c.<>9__22_8;
if (obj14 == null)
{
FloatValueChangeEventDelegate val13 = delegate(FloatValueChangeEvent e)
{
particleSpeed = e.value;
};
<>c.<>9__22_8 = val13;
obj14 = (object)val13;
}
obj13.onValueChange += (FloatValueChangeEventDelegate)obj14;
FloatField obj15 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rate -\n1 Yellow Hit", "particleRate1", ref particleRate[0]);
object obj16 = <>c.<>9__22_9;
if (obj16 == null)
{
FloatValueChangeEventDelegate val14 = delegate(FloatValueChangeEvent e)
{
particleRate[0] = e.value;
};
<>c.<>9__22_9 = val14;
obj16 = (object)val14;
}
obj15.onValueChange += (FloatValueChangeEventDelegate)obj16;
FloatField obj17 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rate -\n2 Yellow Hits", "particleRate2", ref particleRate[1]);
object obj18 = <>c.<>9__22_10;
if (obj18 == null)
{
FloatValueChangeEventDelegate val15 = delegate(FloatValueChangeEvent e)
{
particleRate[1] = e.value;
};
<>c.<>9__22_10 = val15;
obj18 = (object)val15;
}
obj17.onValueChange += (FloatValueChangeEventDelegate)obj18;
FloatField obj19 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rate -\n3+ Yellow Hits", "particleRate3", ref particleRate[2]);
object obj20 = <>c.<>9__22_11;
if (obj20 == null)
{
FloatValueChangeEventDelegate val16 = delegate(FloatValueChangeEvent e)
{
particleRate[2] = e.value;
};
<>c.<>9__22_11 = val16;
obj20 = (object)val16;
}
obj19.onValueChange += (FloatValueChangeEventDelegate)obj20;
ColorField obj21 = ColorSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Color", "particleColor", ref particleColor);
object obj22 = <>c.<>9__22_12;
if (obj22 == null)
{
ColorValueChangeEventDelegate val17 = delegate(ColorValueChangeEvent e)
{
//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)
particleColor = e.value;
};
<>c.<>9__22_12 = val17;
obj22 = (object)val17;
}
obj21.onValueChange += (ColorValueChangeEventDelegate)obj22;
FloatField obj23 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Opacity -\n1 Yellow Hit", "particleOpacity1", ref particleOpacity[0]);
object obj24 = <>c.<>9__22_13;
if (obj24 == null)
{
FloatValueChangeEventDelegate val18 = delegate(FloatValueChangeEvent e)
{
particleOpacity[0] = e.value;
};
<>c.<>9__22_13 = val18;
obj24 = (object)val18;
}
obj23.onValueChange += (FloatValueChangeEventDelegate)obj24;
FloatField obj25 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Opacity -\n2 Yellow Hits", "particleOpacity2", ref particleOpacity[1]);
object obj26 = <>c.<>9__22_14;
if (obj26 == null)
{
FloatValueChangeEventDelegate val19 = delegate(FloatValueChangeEvent e)
{
particleOpacity[1] = e.value;
};
<>c.<>9__22_14 = val19;
obj26 = (object)val19;
}
obj25.onValueChange += (FloatValueChangeEventDelegate)obj26;
FloatField obj27 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Opacity -\n3+ Yellow Hits", "particleOpacity3", ref particleOpacity[2]);
object obj28 = <>c.<>9__22_15;
if (obj28 == null)
{
FloatValueChangeEventDelegate val20 = delegate(FloatValueChangeEvent e)
{
particleOpacity[2] = e.value;
};
<>c.<>9__22_15 = val20;
obj28 = (object)val20;
}
obj27.onValueChange += (FloatValueChangeEventDelegate)obj28;
FloatField obj29 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rotation X", "particleRotX", ref steamParticleRot[0]);
object obj30 = <>c.<>9__22_16;
if (obj30 == null)
{
FloatValueChangeEventDelegate val21 = delegate(FloatValueChangeEvent e)
{
steamParticleRot[0] = e.value;
};
<>c.<>9__22_16 = val21;
obj30 = (object)val21;
}
obj29.onValueChange += (FloatValueChangeEventDelegate)obj30;
FloatField obj31 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rotation Y", "particleRotY", ref steamParticleRot[1]);
object obj32 = <>c.<>9__22_17;
if (obj32 == null)
{
FloatValueChangeEventDelegate val22 = delegate(FloatValueChangeEvent e)
{
steamParticleRot[1] = e.value;
};
<>c.<>9__22_17 = val22;
obj32 = (object)val22;
}
obj31.onValueChange += (FloatValueChangeEventDelegate)obj32;
FloatField obj33 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rotation Z", "particleRotZ", ref steamParticleRot[2]);
object obj34 = <>c.<>9__22_18;
if (obj34 == null)
{
FloatValueChangeEventDelegate val23 = delegate(FloatValueChangeEvent e)
{
steamParticleRot[2] = e.value;
};
<>c.<>9__22_18 = val23;
obj34 = (object)val23;
}
obj33.onValueChange += (FloatValueChangeEventDelegate)obj34;
FloatField obj35 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Volume -\n1 Yellow Hit", "steamVolume1", ref steamVolume[0]);
object obj36 = <>c.<>9__22_19;
if (obj36 == null)
{
FloatValueChangeEventDelegate val24 = delegate(FloatValueChangeEvent e)
{
steamVolume[0] = e.value;
};
<>c.<>9__22_19 = val24;
obj36 = (object)val24;
}
obj35.onValueChange += (FloatValueChangeEventDelegate)obj36;
FloatField obj37 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Pitch -\n1 Yellow Hit", "steamPitch1", ref steamPitch[0]);
object obj38 = <>c.<>9__22_20;
if (obj38 == null)
{
FloatValueChangeEventDelegate val25 = delegate(FloatValueChangeEvent e)
{
steamPitch[0] = e.value;
};
<>c.<>9__22_20 = val25;
obj38 = (object)val25;
}
obj37.onValueChange += (FloatValueChangeEventDelegate)obj38;
FloatField obj39 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Volume -\n2 Yellow Hits", "steamVolume2", ref steamVolume[1]);
object obj40 = <>c.<>9__22_21;
if (obj40 == null)
{
FloatValueChangeEventDelegate val26 = delegate(FloatValueChangeEvent e)
{
steamVolume[1] = e.value;
};
<>c.<>9__22_21 = val26;
obj40 = (object)val26;
}
obj39.onValueChange += (FloatValueChangeEventDelegate)obj40;
FloatField obj41 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Pitch -\n2 Yellow Hits", "steamPitch2", ref steamPitch[1]);
object obj42 = <>c.<>9__22_22;
if (obj42 == null)
{
FloatValueChangeEventDelegate val27 = delegate(FloatValueChangeEvent e)
{
steamPitch[1] = e.value;
};
<>c.<>9__22_22 = val27;
obj42 = (object)val27;
}
obj41.onValueChange += (FloatValueChangeEventDelegate)obj42;
FloatField obj43 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Volume -\n3+ Yellow Hits", "steamVolume3", ref steamVolume[2]);
object obj44 = <>c.<>9__22_23;
if (obj44 == null)
{
FloatValueChangeEventDelegate val28 = delegate(FloatValueChangeEvent e)
{
steamVolume[2] = e.value;
};
<>c.<>9__22_23 = val28;
obj44 = (object)val28;
}
obj43.onValueChange += (FloatValueChangeEventDelegate)obj44;
FloatField obj45 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Pitch -\n3+ Yellow Hits", "steamPitch3", ref steamPitch[2]);
object obj46 = <>c.<>9__22_24;
if (obj46 == null)
{
FloatValueChangeEventDelegate val29 = delegate(FloatValueChangeEvent e)
{
steamPitch[2] = e.value;
};
<>c.<>9__22_24 = val29;
obj46 = (object)val29;
}
obj45.onValueChange += (FloatValueChangeEventDelegate)obj46;
new ConfigHeader(val6, "Spinning Motor", 24);
EnumSetting(val, val6, "Motor Rotation", "motorRotation", ref motorRotation).onValueChange += delegate(EnumValueChangeEvent<MotorRotationEnum> e)
{
motorRotation = e.value;
((ConfigField)motorDiv).interactable = e.value != MotorRotationEnum.Movement_Speed_Only;
};
motorDiv = new ConfigDivision(val6, "motorDiv");
FloatField obj47 = FloatSetting(val, (ConfigPanel)(object)motorDiv, "Motor Rotation Multiplier", "motorRotationMultiplier", ref motorRotationMultiplier);
object obj48 = <>c.<>9__22_26;
if (obj48 == null)
{
FloatValueChangeEventDelegate val30 = delegate(FloatValueChangeEvent e)
{
motorRotationMultiplier = e.value;
};
<>c.<>9__22_26 = val30;
obj48 = (object)val30;
}
obj47.onValueChange += (FloatValueChangeEventDelegate)obj48;
BoolField obj49 = BoolSetting(val, (ConfigPanel)(object)motorDiv, "Use Original Sound Volume", "originalMotorSound", ref originalMotorSound);
object obj50 = <>c.<>9__22_27;
if (obj50 == null)
{
BoolValueChangeEventDelegate val31 = delegate(BoolValueChangeEvent e)
{
originalMotorSound = e.value;
};
<>c.<>9__22_27 = val31;
obj50 = (object)val31;
}
obj49.onValueChange += (BoolValueChangeEventDelegate)obj50;
new ConfigHeader(val6, "Long Cooldown Steam Particles", 24);
ColorField obj51 = ColorSetting(val, val6, "Long Cooldown Particle Color", "cdParticleColor", ref cdParticleColor);
object obj52 = <>c.<>9__22_28;
if (obj52 == null)
{
ColorValueChangeEventDelegate val32 = delegate(ColorValueChangeEvent e)
{
//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)
cdParticleColor = e.value;
};
<>c.<>9__22_28 = val32;
obj52 = (object)val32;
}
obj51.onValueChange += (ColorValueChangeEventDelegate)obj52;
FloatField obj53 = FloatSetting(val, val6, "Long Cooldown Particle Opacity", "cdParticleOpacity", ref cdParticleOpacity);
object obj54 = <>c.<>9__22_29;
if (obj54 == null)
{
FloatValueChangeEventDelegate val33 = delegate(FloatValueChangeEvent e)
{
cdParticleOpacity = e.value;
};
<>c.<>9__22_29 = val33;
obj54 = (object)val33;
}
obj53.onValueChange += (FloatValueChangeEventDelegate)obj54;
return val;
}
public static void PitchSettings(PluginConfigurator config, ConfigPanel panel, int hitNum)
{
//IL_0080: Unknown result type (might be due to invalid IL or missing references)
//IL_008a: Expected O, but got Unknown
//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0107: Expected O, but got Unknown
FloatSetting(config, panel, string.Format("Base Pitch -\n{0}{1} Yellow Hit{2}", hitNum, (hitNum == 3) ? "+" : string.Empty, (hitNum == 1) ? string.Empty : "s"), $"pitchHit{hitNum}", ref pitches[hitNum]).onValueChange += (FloatValueChangeEventDelegate)delegate(FloatValueChangeEvent e)
{
pitches[hitNum] = e.value;
};
FloatSetting(config, panel, string.Format("Pitch Variation -\n{0}{1} Yellow Hit{2}", hitNum, (hitNum == 3) ? "+" : string.Empty, (hitNum == 1) ? string.Empty : "s"), $"pitchVariation{hitNum}", ref pitchVariations[hitNum]).onValueChange += (FloatValueChangeEventDelegate)delegate(FloatValueChangeEvent e)
{
pitchVariations[hitNum] = e.value;
};
}
public static void PitchFallbacks(PluginConfigurator config, ConfigPanel panel, int tier)
{
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Expected O, but got Unknown
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Expected O, but got Unknown
//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
//IL_00f1: Expected O, but got Unknown
fallbackDiv[tier] = new ConfigDivision(panel, $"fallbackDiv{tier}");
((ConfigField)fallbackDiv[tier]).interactable = !appliesToTier[tier];
FloatSetting(config, (ConfigPanel)(object)fallbackDiv[tier], "Base Pitch", $"fallbackPitch{tier}", ref fallbackPitch[tier]).onValueChange += (FloatValueChangeEventDelegate)delegate(FloatValueChangeEvent e)
{
fallbackPitch[tier] = e.value;
};
FloatSetting(config, (ConfigPanel)(object)fallbackDiv[tier], "Pitch Variation", $"fallbackVariation{tier}", ref fallbackVariation[tier]).onValueChange += (FloatValueChangeEventDelegate)delegate(FloatValueChangeEvent e)
{
fallbackVariation[tier] = e.value;
};
}
public static FloatField FloatSetting(PluginConfigurator config, ConfigPanel panel, string name, string guid, ref float value)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Expected O, but got Unknown
FloatField val = new FloatField(panel, name, guid, value);
value = val.value;
return val;
}
public static BoolField BoolSetting(PluginConfigurator config, ConfigPanel panel, string name, string guid, ref bool value)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Expected O, but got Unknown
BoolField val = new BoolField(panel, name, guid, value);
value = val.value;
return val;
}
public static ColorField ColorSetting(PluginConfigurator config, ConfigPanel panel, string name, string guid, ref Color value)
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Expected O, but got Unknown
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
ColorField val = new ColorField(panel, name, guid, value);
value = val.value;
return val;
}
public static EnumField<T> EnumSetting<T>(PluginConfigurator config, ConfigPanel panel, string name, string guid, ref T value) where T : struct
{
EnumField<T> val = new EnumField<T>(panel, name, guid, value);
value = val.value;
T[] array = Enum.GetValues(typeof(T)) as T[];
for (int i = 0; i < array.Length; i++)
{
T val2 = array[i];
val.SetEnumDisplayName(val2, val2.ToString().Replace('_', ' '));
}
return val;
}
}
public class SteamIndicator : MonoBehaviour
{
private ShotgunHammer hammer;
private ParticleSystem steamParticle;
private AudioSource steamAud;
private int yellowsCount;
private void Start()
{
//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
yellowsCount = -1;
hammer = ((Component)this).GetComponent<ShotgunHammer>();
GameObject val = null;
Transform val2 = ((Component)hammer.overheatParticle).transform.parent.Find("Yellow Hits Particle System");
if (Object.op_Implicit((Object)(object)val2))
{
val = ((Component)val2).gameObject;
}
if (!Object.op_Implicit((Object)(object)val))
{
val = Object.Instantiate<GameObject>(((Component)hammer.overheatParticle).gameObject);
((Object)val).name = "Yellow Hits Particle System";
val.transform.parent = ((Component)hammer.overheatParticle).transform.parent;
val.transform.position = ((Component)hammer.overheatParticle).transform.position;
val.transform.localEulerAngles = new Vector3(PluginConfig.steamParticleRot[0], PluginConfig.steamParticleRot[1], PluginConfig.steamParticleRot[2]);
val.transform.localScale = ((Component)hammer.overheatParticle).transform.localScale;
}
steamParticle = val.GetComponent<ParticleSystem>();
steamAud = val.GetComponent<AudioSource>();
}
private void OnDisable()
{
yellowsCount = -1;
}
private void Update()
{
//IL_0123: Unknown result type (might be due to invalid IL or missing references)
//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_014a: Unknown result type (might be due to invalid IL or missing references)
//IL_014f: Unknown result type (might be due to invalid IL or missing references)
//IL_017f: Unknown result type (might be due to invalid IL or missing references)
//IL_018c: Unknown result type (might be due to invalid IL or missing references)
//IL_019a: Unknown result type (might be due to invalid IL or missing references)
//IL_019f: Unknown result type (might be due to invalid IL or missing references)
if (PluginConfig.mutuallyExclusiveSteams[0] && hammer.overheated)
{
steamAud.Stop();
}
if (PluginConfig.mutuallyExclusiveSteams[1] && hammer.overheated)
{
steamParticle.Stop();
}
if (MonoSingleton<WeaponCharges>.Instance.shoAltYellowsTimer <= 0f && yellowsCount != -1)
{
yellowsCount = -1;
steamAud.Stop();
steamParticle.Stop();
}
else
{
if (!(MonoSingleton<WeaponCharges>.Instance.shoAltYellowsTimer > 0f) || yellowsCount == MonoSingleton<WeaponCharges>.Instance.shoAltYellows)
{
return;
}
yellowsCount = MonoSingleton<WeaponCharges>.Instance.shoAltYellows;
if (yellowsCount > 3)
{
yellowsCount = 3;
}
if (PluginConfig.steamParticles)
{
((Component)steamParticle).transform.localEulerAngles = new Vector3(PluginConfig.steamParticleRot[0], PluginConfig.steamParticleRot[1], PluginConfig.steamParticleRot[2]);
MainModule main = steamParticle.main;
((MainModule)(ref main)).startSpeedMultiplier = PluginConfig.particleSpeed;
MinMaxGradient startColor = ((MainModule)(ref main)).startColor;
((MinMaxGradient)(ref startColor)).color = new Color(PluginConfig.particleColor.r, PluginConfig.particleColor.g, PluginConfig.particleColor.b, PluginConfig.particleOpacity[yellowsCount - 1]);
((MainModule)(ref main)).startColor = startColor;
EmissionModule emission = steamParticle.emission;
((EmissionModule)(ref emission)).rateOverTimeMultiplier = PluginConfig.particleRate[yellowsCount - 1];
steamParticle.Play();
}
if (PluginConfig.steamAudio)
{
steamAud.volume = PluginConfig.steamVolume[yellowsCount - 1];
steamAud.pitch = PluginConfig.steamPitch[yellowsCount - 1];
if (steamAud.isPlaying)
{
steamAud.Stop();
}
AudioSourceExtensions.Play(steamAud, true);
}
yellowsCount = MonoSingleton<WeaponCharges>.Instance.shoAltYellows;
}
}
}
public static class MyPluginInfo
{
public const string PLUGIN_GUID = "YellowImpactPitchIndication";
public const string PLUGIN_NAME = "Yellow Impact Pitch Indication";
public const string PLUGIN_VERSION = "1.0.3";
}
}