Decompiled source of SurvivorTweaks v2.2.2

SurvivorTweaks.dll

Decompiled a month ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using EntityStates;
using EntityStates.Bandit2.Weapon;
using EntityStates.Captain.Weapon;
using EntityStates.CaptainSupplyDrop;
using EntityStates.Chef;
using EntityStates.Commando.CommandoWeapon;
using EntityStates.Engi.EngiBubbleShield;
using EntityStates.Engi.Mine;
using EntityStates.EngiTurret.EngiTurretWeapon;
using EntityStates.FalseSon;
using EntityStates.Huntress;
using EntityStates.Huntress.HuntressWeapon;
using EntityStates.Huntress.Weapon;
using EntityStates.Loader;
using EntityStates.Mage;
using EntityStates.Mage.Weapon;
using EntityStates.Merc;
using EntityStates.Railgunner.Weapon;
using EntityStates.Seeker;
using EntityStates.Toolbot;
using EntityStates.Treebot.TreebotFlower;
using EntityStates.Treebot.Weapon;
using EntityStates.VoidSurvivor.Weapon;
using IL.RoR2;
using Microsoft.CodeAnalysis;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using On.EntityStates.Bandit2.Weapon;
using On.EntityStates.Captain.Weapon;
using On.EntityStates.Chef;
using On.EntityStates.Engi.EngiBubbleShield;
using On.EntityStates.FalseSon;
using On.EntityStates.Huntress.HuntressWeapon;
using On.EntityStates.Huntress.Weapon;
using On.EntityStates.Loader;
using On.EntityStates.Merc;
using On.EntityStates.Railgunner.Weapon;
using On.EntityStates.Seeker;
using On.EntityStates.Toolbot;
using On.EntityStates.Treebot.TreebotFlower;
using On.EntityStates.Treebot.Weapon;
using On.EntityStates.VoidSurvivor.Weapon;
using On.RoR2;
using On.RoR2.Projectile;
using RoR2;
using RoR2.Orbs;
using RoR2.Projectile;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("SurvivorTweaks")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("SurvivorTweaks")]
[assembly: AssemblyTitle("SurvivorTweaks")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.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 SurvivorTweaks
{
	internal static class Log
	{
		private static ManualLogSource _logSource;

		internal static void Init(ManualLogSource logSource)
		{
			_logSource = logSource;
		}

		internal static void Debug(object data)
		{
			_logSource.LogDebug(data);
		}

		internal static void Error(object data)
		{
			_logSource.LogError(data);
		}

		internal static void Fatal(object data)
		{
			_logSource.LogFatal(data);
		}

		internal static void Info(object data)
		{
			_logSource.LogInfo(data);
		}

		internal static void Message(object data)
		{
			_logSource.LogMessage(data);
		}

		internal static void Warning(object data)
		{
			_logSource.LogWarning(data);
		}
	}
	[BepInPlugin("Jeffdev.SurvivorTweaks", "SurvivorTweaks", "2.2.2")]
	public class SurvivorTweaks : BaseUnityPlugin
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static hook_AuthorityModifyOverlapAttack <>9__311_3;

			public static hook_OnEnter <>9__311_6;

			public static hook_OnEnter <>9__311_7;

			public static hook_OnProjectileFiredLocal <>9__311_8;

			public static hook_RootPulse <>9__311_9;

			public static hook_AuthorityModifyOverlapAttack <>9__311_10;

			public static hook_OnEnter <>9__311_16;

			public static hook_OnEnter <>9__311_17;

			public static hook_OnEnter <>9__311_18;

			public static hook_OnEnter <>9__311_19;

			public static Func<Instruction, bool> <>9__311_25;

			public static Manipulator <>9__311_20;

			public static hook_OnEnter <>9__311_21;

			public static hook_OnEnter <>9__311_22;

			public static hook_OnEnter <>9__311_23;

			public static Func<Instruction, bool> <>9__319_0;

			public static Func<float, float> <>9__319_1;

			public static Func<Instruction, bool> <>9__319_2;

			public static Func<Instruction, bool> <>9__319_3;

			public static Func<float, float> <>9__319_4;

			public static Func<Instruction, bool> <>9__320_0;

			public static Func<Instruction, bool> <>9__320_1;

			public static Func<Instruction, bool> <>9__320_2;

			public static Func<Instruction, bool> <>9__320_3;

			public static Func<Instruction, bool> <>9__320_4;

			public static Func<Instruction, bool> <>9__320_5;

			public static Func<Instruction, bool> <>9__320_6;

			public static Func<float, float> <>9__320_7;

			public static Func<Instruction, bool> <>9__325_0;

			internal void <Awake>b__311_3(orig_AuthorityModifyOverlapAttack orig, SlashBlade self, OverlapAttack overlapAttack)
			{
				overlapAttack.damage = (float)bandDaggerDmg.Value / 100f * ((BaseState)self).damageStat;
				orig.Invoke(self, overlapAttack);
			}

			internal void <Awake>b__311_6(orig_OnEnter orig, ToolbotDash self)
			{
				self.speedMultiplier = multTransportMoveSpd.Value / 100;
				orig.Invoke(self);
			}

			internal void <Awake>b__311_7(orig_OnEnter orig, Deployed self)
			{
				orig.Invoke(self);
				BeginRapidlyActivatingAndDeactivating component = ((EntityState)self).gameObject.GetComponent<BeginRapidlyActivatingAndDeactivating>();
				if (Object.op_Implicit((Object)(object)component))
				{
					((Behaviour)component).enabled = false;
				}
			}

			internal void <Awake>b__311_8(orig_OnProjectileFiredLocal orig, AimMortar2 self)
			{
				if (self.healthCostFraction != 0f)
				{
					self.healthCostFraction = (float)rexSeedSelf.Value / 100f;
				}
				orig.Invoke(self);
			}

			internal void <Awake>b__311_9(orig_RootPulse orig, TreebotFlower2Projectile self)
			{
				self.procCoefficient = rexGrowthRootProc.Value;
				orig.Invoke(self);
			}

			internal void <Awake>b__311_10(orig_AuthorityModifyOverlapAttack orig, SwingComboFist self, OverlapAttack overlapAttack)
			{
				overlapAttack.damage = (float)loaderKnuckleDmg.Value / 100f * ((BaseState)self).damageStat;
				overlapAttack.procCoefficient = loaderKnuckleProc.Value;
				orig.Invoke(self, overlapAttack);
			}

			internal void <Awake>b__311_16(orig_OnEnter orig, CrushBase self)
			{
				if (self is CrushCorruption)
				{
					self.selfHealFraction = (float)voidSuppressHeal.Value / 100f;
					self.corruptionChange = -voidSuppressCorruptCrushed.Value;
				}
				else if (self is CrushHealth)
				{
					self.selfHealFraction = 0f - (float)voidCorruptSuppressCrush.Value / 100f;
					self.corruptionChange = voidCorruptSuppressGain.Value;
				}
				orig.Invoke(self);
			}

			internal void <Awake>b__311_17(orig_OnEnter orig, SpiritPunch self)
			{
				self.dmgBuffIncrease = seekerInnerSpiritPunchThird.Value / 100f;
				orig.Invoke(self);
			}

			internal void <Awake>b__311_18(orig_OnEnter orig, Meditate self)
			{
				self.blastRadius = seekerMeditateAoE.Value;
				self.blastRadiusScaling = (float)seekerInnerMeditateRadius.Value - 1f;
				orig.Invoke(self);
			}

			internal void <Awake>b__311_19(orig_OnEnter orig, Reprieve self)
			{
				self.barrierTranquilityGrowth = seekerInnerReprieveBarrier.Value / 100f;
				self.barrierOnReprieveEnter = seekerReprieveBarrier.Value / 100f;
				orig.Invoke(self);
			}

			internal void <Awake>b__311_20(ILContext il)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Expected O, but got Unknown
				ILCursor val = new ILCursor(il);
				int num = 0;
				while (val.TryGotoNext(new Func<Instruction, bool>[1]
				{
					(Instruction i) => ILPatternMatchingExt.MatchLdcR4(i, 0.04f)
				}))
				{
					val.Next.Operand = chefKissHeal.Value / 2f / 100f;
					num++;
				}
				Log.Info($"Replaced {num} occurrences of 0.04f for Chefs Kiss");
			}

			internal bool <Awake>b__311_25(Instruction i)
			{
				return ILPatternMatchingExt.MatchLdcR4(i, 0.04f);
			}

			internal void <Awake>b__311_21(orig_OnEnter orig, YesChef self)
			{
				self.explosionDamageCoefficient = chefYesChefDmg.Value;
				orig.Invoke(self);
			}

			internal void <Awake>b__311_22(orig_OnEnter orig, MeridiansWillFire self)
			{
				self.damage = falseSonMeridianDmg.Value / 100f;
				self.forcePullRadius = falseSonMeridianPullAoe.Value;
				self.blastRadius = falseSonMeridianAoe.Value;
				self.coreBuffDuration = falseSonMeridianGrowthBase.Value;
				self.bonusDurationFromGrowth = falseSonMeridianGrowthIncrease.Value;
				orig.Invoke(self);
			}

			internal void <Awake>b__311_23(orig_OnEnter orig, LaserFatherBurstPrep self)
			{
				self.secondaryRefillPercentage = falseSonBurstSpikeFill.Value / 100f;
				orig.Invoke(self);
			}

			internal bool <IL_DotController_AddDot>b__319_0(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdcR4(x, 1f);
			}

			internal float <IL_DotController_AddDot>b__319_1(float orig)
			{
				return acridPoisonMaxHealth.Value;
			}

			internal bool <IL_DotController_AddDot>b__319_2(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdfld<DotStack>(x, "damage");
			}

			internal bool <IL_DotController_AddDot>b__319_3(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdcR4(x, 50f);
			}

			internal float <IL_DotController_AddDot>b__319_4(float orig)
			{
				return acridPoisonCap.Value / 100f;
			}

			internal bool <HealthComponent_Heal>b__320_0(Instruction x)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return x.OpCode == OpCodes.Ldsfld;
			}

			internal bool <HealthComponent_Heal>b__320_1(Instruction x)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return x.OpCode == OpCodes.Callvirt;
			}

			internal bool <HealthComponent_Heal>b__320_2(Instruction x)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return x.OpCode == OpCodes.Stloc_3;
			}

			internal bool <HealthComponent_Heal>b__320_3(Instruction x)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return x.OpCode == OpCodes.Ldc_R4;
			}

			internal bool <HealthComponent_Heal>b__320_4(Instruction x)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return x.OpCode == OpCodes.Ldloc_3;
			}

			internal bool <HealthComponent_Heal>b__320_5(Instruction x)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return x.OpCode == OpCodes.Conv_R4;
			}

			internal bool <HealthComponent_Heal>b__320_6(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdcR4(x, 0.1f);
			}

			internal float <HealthComponent_Heal>b__320_7(float orig)
			{
				return seekerSojournHealReduction.Value / 100f;
			}

			internal bool <BulletAttack_HandleBulletDamage>b__325_0(Instruction x)
			{
				return ILPatternMatchingExt.MatchCall(x, typeof(NetworkExtensions), "ReadDamageInfo");
			}
		}

		public const string PluginGUID = "Jeffdev.SurvivorTweaks";

		public const string PluginAuthor = "Jeffdev";

		public const string PluginName = "SurvivorTweaks";

		public const string PluginVersion = "2.2.2";

		public static ConfigEntry<int> cmdDblTapDmg;

		public static ConfigEntry<float> cmdDblTapProc;

		public static ConfigEntry<int> cmdRoundDmg;

		public static ConfigEntry<float> cmdRoundProc;

		public static ConfigEntry<int> cmdBlastDmg;

		public static ConfigEntry<float> cmdBlastProc;

		public static ConfigEntry<int> cmdSuppDmg;

		public static ConfigEntry<float> cmdSuppProc;

		public static ConfigEntry<int> cmdGrenadeAoe;

		public static ConfigEntry<int> cmdGrenadeDmg;

		public static ConfigEntry<float> cmdGrenadeProc;

		public static ConfigEntry<int> huntStrafeDmg;

		public static ConfigEntry<float> huntStrafeProc;

		public static ConfigEntry<int> huntFlurryDmg;

		public static ConfigEntry<float> huntFlurryProc;

		public static ConfigEntry<int> huntGlaiveDmg;

		public static ConfigEntry<int> huntGlaiveDmgBounce;

		public static ConfigEntry<float> huntGlaiveProc;

		public static ConfigEntry<float> huntArrowRainAoe;

		public static ConfigEntry<int> huntArrowRainDmg;

		public static ConfigEntry<float> huntArrowRainProc;

		public static ConfigEntry<int> huntBallistaDmg;

		public static ConfigEntry<float> huntBallistaProc;

		public static ConfigEntry<int> bandHemoDmg;

		public static ConfigEntry<int> bandBurstDmg;

		public static ConfigEntry<float> bandBurstProc;

		public static ConfigEntry<int> bandBlastDmg;

		public static ConfigEntry<float> bandBlastProc;

		public static ConfigEntry<int> bandDaggerDmg;

		public static ConfigEntry<float> bandDaggerProc;

		public static ConfigEntry<int> bandShivDmg;

		public static ConfigEntry<float> bandShivProc;

		public static ConfigEntry<int> bandSmokeDmg;

		public static ConfigEntry<float> bandSmokeProc;

		public static ConfigEntry<int> bandLightsOutDmg;

		public static ConfigEntry<float> bandLightsOutProc;

		public static ConfigEntry<int> bandDesperadoDmg;

		public static ConfigEntry<int> bandDesperadoBuff;

		public static ConfigEntry<float> bandDesperadoProc;

		public static ConfigEntry<int> multNailgunDmg;

		public static ConfigEntry<float> multNailgunProc;

		public static ConfigEntry<int> multRebarDmg;

		public static ConfigEntry<float> multRebarProc;

		public static ConfigEntry<float> multScrapAoe;

		public static ConfigEntry<int> multScrapDmg;

		public static ConfigEntry<float> multScrapProc;

		public static ConfigEntry<int> multSawDmg;

		public static ConfigEntry<float> multSawProc;

		public static ConfigEntry<int> multCanisterDmg;

		public static ConfigEntry<int> multBombletDmg;

		public static ConfigEntry<float> multCanisterProc;

		public static ConfigEntry<float> multBombletProc;

		public static ConfigEntry<int> multTransportDmg;

		public static ConfigEntry<int> multTransportMoveSpd;

		public static ConfigEntry<float> multTransportProc;

		public static ConfigEntry<float> engGrenadeAoe;

		public static ConfigEntry<int> engGrenadeDmg;

		public static ConfigEntry<int> engGrenadeMax;

		public static ConfigEntry<float> engGrenadeProc;

		public static ConfigEntry<float> engPressureAoe;

		public static ConfigEntry<int> engPressureMinDmg;

		public static ConfigEntry<int> engPressureMaxDmg;

		public static ConfigEntry<float> engPressureProc;

		public static ConfigEntry<float> engSpiderAoe;

		public static ConfigEntry<int> engSpiderDmg;

		public static ConfigEntry<float> engSpiderProc;

		public static ConfigEntry<int> engBubbleDuration;

		public static ConfigEntry<int> engHarpoonDmg;

		public static ConfigEntry<float> engHarpoonProc;

		public static ConfigEntry<int> engHarpoonRange;

		public static ConfigEntry<int> engTurretGaussDmg;

		public static ConfigEntry<float> engTurretGaussProc;

		public static ConfigEntry<int> engTurretCarbonDmg;

		public static ConfigEntry<float> engTurretCarbonProc;

		public static ConfigEntry<float> artiFlameAoe;

		public static ConfigEntry<int> artiFlameDmg;

		public static ConfigEntry<float> artiFlameProc;

		public static ConfigEntry<float> artiPlasmaAoe;

		public static ConfigEntry<int> artiPlasmaDmg;

		public static ConfigEntry<float> artiPlasmaProc;

		public static ConfigEntry<float> artiBombAoe;

		public static ConfigEntry<int> artiBombSparkDmg;

		public static ConfigEntry<float> artiBombProc;

		public static ConfigEntry<float> artiSparkProc;

		public static ConfigEntry<int> artiSpearMinDmg;

		public static ConfigEntry<int> artiSpearMaxDmg;

		public static ConfigEntry<float> artiSpearProc;

		public static ConfigEntry<int> artiSnapDmg;

		public static ConfigEntry<float> artiSnapProc;

		public static ConfigEntry<int> artiFlamethrowerDmg;

		public static ConfigEntry<float> artiFlamethrowerProc;

		public static ConfigEntry<float> artiIonAoe;

		public static ConfigEntry<int> artiIonDmg;

		public static ConfigEntry<float> artiIonProc;

		public static ConfigEntry<int> mercSwordDmg;

		public static ConfigEntry<float> mercSwordProc;

		public static ConfigEntry<int> mercWhirlwindDmg;

		public static ConfigEntry<float> mercWhirlwindProc;

		public static ConfigEntry<int> mercRisingDmg;

		public static ConfigEntry<float> mercRisingProc;

		public static ConfigEntry<int> mercBindDmg;

		public static ConfigEntry<float> mercBindProc;

		public static ConfigEntry<int> mercFocusDmg;

		public static ConfigEntry<float> mercFocusProc;

		public static ConfigEntry<int> mercEviscDmg;

		public static ConfigEntry<float> mercEviscProc;

		public static ConfigEntry<int> mercSlicingDmg;

		public static ConfigEntry<float> mercSlicingProc;

		public static ConfigEntry<int> rexWeakenArmor;

		public static ConfigEntry<int> rexWeakenDuration;

		public static ConfigEntry<int> rexWeakenMove;

		public static ConfigEntry<int> rexInjectDmg;

		public static ConfigEntry<int> rexInjectHeal;

		public static ConfigEntry<float> rexInjectProc;

		public static ConfigEntry<int> rexDrillDmg;

		public static ConfigEntry<int> rexDrillDuration;

		public static ConfigEntry<int> rexDrillProjCount;

		public static ConfigEntry<float> rexDrillProc;

		public static ConfigEntry<float> rexDrillAoe;

		public static ConfigEntry<int> rexSeedDmg;

		public static ConfigEntry<float> rexSeedProc;

		public static ConfigEntry<int> rexSeedSelf;

		public static ConfigEntry<int> rexBrambleDmg;

		public static ConfigEntry<int> rexBrambleHeal;

		public static ConfigEntry<float> rexBrambleProc;

		public static ConfigEntry<int> rexBrambleSelf;

		public static ConfigEntry<int> rexHarvestDmg;

		public static ConfigEntry<int> rexHarvestDuration;

		public static ConfigEntry<int> rexHarvestHeal;

		public static ConfigEntry<float> rexHarvestProc;

		public static ConfigEntry<float> rexGrowthAoe;

		public static ConfigEntry<int> rexGrowthDmg;

		public static ConfigEntry<int> rexGrowthDuration;

		public static ConfigEntry<int> rexGrowthHealPulse;

		public static ConfigEntry<int> rexGrowthHealPulseCount;

		public static ConfigEntry<int> rexGrowthSelf;

		public static ConfigEntry<float> rexGrowthProjProc;

		public static ConfigEntry<float> rexGrowthRootProc;

		public static ConfigEntry<int> loaderKnuckleDmg;

		public static ConfigEntry<float> loaderKnuckleProc;

		public static ConfigEntry<int> loaderSpikedDmg;

		public static ConfigEntry<float> loaderSpikedProc;

		public static ConfigEntry<float> loaderChargedGauntletProc;

		public static ConfigEntry<int> loaderThunderGauntletCone;

		public static ConfigEntry<float> loaderThunderGauntletProc;

		public static ConfigEntry<int> loaderPylonDmg;

		public static ConfigEntry<int> loaderPylonDuration;

		public static ConfigEntry<int> loaderPylonProjectiles;

		public static ConfigEntry<float> loaderPylonProc;

		public static ConfigEntry<int> loaderPylonRange;

		public static ConfigEntry<int> loaderThunderslamDmg;

		public static ConfigEntry<float> loaderThunderslamProc;

		public static ConfigEntry<float> acridPoisonMaxHealth;

		public static ConfigEntry<float> acridPoisonBaseDamage;

		public static ConfigEntry<float> acridPoisonCap;

		public static ConfigEntry<int> acridPoisonDuration;

		public static ConfigEntry<int> acridBlightDuration;

		public static ConfigEntry<float> acridBlightDmg;

		public static ConfigEntry<int> acridWoundsSwipeDmg;

		public static ConfigEntry<int> acridWoundsFinalDmg;

		public static ConfigEntry<float> acridWoundsProc;

		public static ConfigEntry<int> acridNeuroDmg;

		public static ConfigEntry<float> acridNeuroProc;

		public static ConfigEntry<int> acridBiteDmg;

		public static ConfigEntry<float> acridBiteProc;

		public static ConfigEntry<int> acridLeapPoolDmg;

		public static ConfigEntry<int> acridLeapPoolDuration;

		public static ConfigEntry<int> acridLeapDmg;

		public static ConfigEntry<float> acridLeapProc;

		public static ConfigEntry<float> acridLeapAcidProc;

		public static ConfigEntry<int> acridFrenziedDmg;

		public static ConfigEntry<float> acridFrenziedProc;

		public static ConfigEntry<int> acridPandemicDmg;

		public static ConfigEntry<int> acridPandemicRange;

		public static ConfigEntry<float> acridPandemicProc;

		public static DotIndex SulfurPoisonIndex;

		public static ConfigEntry<int> captainShotgunDmg;

		public static ConfigEntry<float> captainShotgunProc;

		public static ConfigEntry<float> captainTaserAoe;

		public static ConfigEntry<int> captainTaserDmg;

		public static ConfigEntry<float> captainTaserProc;

		public static ConfigEntry<int> captainProbeDmg;

		public static ConfigEntry<float> captainProbeProc;

		public static ConfigEntry<int> captainDiabloDmg;

		public static ConfigEntry<float> captainDiabloProc;

		public static ConfigEntry<int> captainBeaconDmg;

		public static ConfigEntry<int> captainBeaconRadius;

		public static ConfigEntry<int> captainBeaconHeal;

		public static ConfigEntry<float> captainBeaconShockCount;

		public static ConfigEntry<int> captainBeaconResupplyUses;

		public static ConfigEntry<int> railgunnerXQRDamage;

		public static ConfigEntry<float> railgunnerXQRProc;

		public static ConfigEntry<int> railgunnerM99Damage;

		public static ConfigEntry<float> railgunnerM99Proc;

		public static ConfigEntry<int> railgunnerHH44Damage;

		public static ConfigEntry<float> railgunnerHH44Proc;

		public static ConfigEntry<int> railgunnerPolarDuration;

		public static ConfigEntry<int> railgunnerSuperCritMult;

		public static ConfigEntry<int> railgunnerSuperDamage;

		public static ConfigEntry<float> railgunnerSuperProc;

		public static ConfigEntry<int> railgunnerCryoDamage;

		public static ConfigEntry<float> railgunnerCryoProc;

		public static ConfigEntry<int> voidDrownDmg;

		public static ConfigEntry<float> voidDrownProc;

		public static ConfigEntry<int> voidCorruptDrownDmg;

		public static ConfigEntry<float> voidCorruptDrownProc;

		public static ConfigEntry<int> voidFloodUnchargedDmg;

		public static ConfigEntry<int> voidFloodChargedDmg;

		public static ConfigEntry<float> voidFloodProc;

		public static ConfigEntry<int> voidCorruptFloodDmg;

		public static ConfigEntry<float> voidCorruptFloodProc;

		public static ConfigEntry<int> voidSuppressCorruptCrushed;

		public static ConfigEntry<int> voidSuppressHeal;

		public static ConfigEntry<int> voidCorruptSuppressGain;

		public static ConfigEntry<int> voidCorruptSuppressCrush;

		public static ConfigEntry<float> seekerInnerSpiritPunchThird;

		public static ConfigEntry<float> seekerInnerUnseenHandHeal;

		public static ConfigEntry<float> seekerInnerSojournRadius;

		public static ConfigEntry<float> seekerInnerReprieveBarrier;

		public static ConfigEntry<float> seekerInnerMeditateHeal;

		public static ConfigEntry<float> seekerInnerMeditateDmg;

		public static ConfigEntry<int> seekerInnerMeditateRadius;

		public static ConfigEntry<float> seekerInnerPalmSize;

		public static ConfigEntry<float> seekerInnerPalmSpeed;

		public static ConfigEntry<int> seekerInnerPalmDmg;

		public static ConfigEntry<float> seekerInnerPalmHeal;

		public static ConfigEntry<int> seekerSpiritPunchDmg;

		public static ConfigEntry<int> seekerSpiritPunchThirdDmg;

		public static ConfigEntry<float> seekerSpiritPunchProc;

		public static ConfigEntry<float> seekerSpiritPunchThirdProc;

		public static ConfigEntry<int> seekerSpiritPunchAoE;

		public static ConfigEntry<int> seekerUnseenHandDmg;

		public static ConfigEntry<float> seekerUnseenHandHeal;

		public static ConfigEntry<float> seekerUnseenHandProc;

		public static ConfigEntry<int> seekerSoulSpiralDmg;

		public static ConfigEntry<int> seekerSoulSpiralHits;

		public static ConfigEntry<float> seekerSoulSpiralBarrier;

		public static ConfigEntry<float> seekerSoulSpiralProc;

		public static ConfigEntry<int> seekerSojournDmg;

		public static ConfigEntry<float> seekerSojournSelfDmg;

		public static ConfigEntry<int> seekerSojournBaseMinRadius;

		public static ConfigEntry<int> seekerSojournBaseMaxRadius;

		public static ConfigEntry<float> seekerSojournDmgIncrease;

		public static ConfigEntry<float> seekerSojournHealReduction;

		public static ConfigEntry<float> seekerSojournProc;

		public static ConfigEntry<int> seekerReprieveDmg;

		public static ConfigEntry<float> seekerReprieveBarrier;

		public static ConfigEntry<float> seekerReprieveProc;

		public static ConfigEntry<int> seekerCycloneDmg;

		public static ConfigEntry<float> seekerCycloneHeal;

		public static ConfigEntry<int> seekerCycloneDuration;

		public static ConfigEntry<int> seekerCycloneRadius;

		public static ConfigEntry<float> seekerCycloneDmgIncrease;

		public static ConfigEntry<float> seekerCycloneHealIncrease;

		public static ConfigEntry<float> seekerCycloneDurationIncrease;

		public static ConfigEntry<int> seekerMeditateDmg;

		public static ConfigEntry<float> seekerMeditateHeal;

		public static ConfigEntry<int> seekerMeditateAoE;

		public static ConfigEntry<float> seekerMeditateProc;

		public static ConfigEntry<int> seekerPalmMinDmg;

		public static ConfigEntry<int> seekerPalmMaxDmg;

		public static ConfigEntry<float> seekerPalmMinHeal;

		public static ConfigEntry<float> seekerPalmMaxHeal;

		public static ConfigEntry<float> seekerPalmBarrier;

		public static ConfigEntry<float> seekerPalmProc;

		public static ConfigEntry<float> chefKissHeal;

		public static ConfigEntry<float> chefOilPoolProc;

		public static ConfigEntry<float> chefSearDmg;

		public static ConfigEntry<float> chefSearProc;

		public static ConfigEntry<float> chefSearBoostDmg;

		public static ConfigEntry<float> chefSearBoostProc;

		public static ConfigEntry<float> chefIceDmg;

		public static ConfigEntry<float> chefIceProc;

		public static ConfigEntry<int> chefIceAoe;

		public static ConfigEntry<float> chefIceBoostDmg;

		public static ConfigEntry<float> chefIceBoostProc;

		public static ConfigEntry<int> chefIceBoostAoe;

		public static ConfigEntry<float> chefOilSpillDmg;

		public static ConfigEntry<float> chefOilSpillProc;

		public static ConfigEntry<float> chefGlazeDmg;

		public static ConfigEntry<float> chefGlazeProc;

		public static ConfigEntry<float> chefYesChefDmg;

		public static ConfigEntry<float> chefYesChefProc;

		public static ConfigEntry<float> falseSonClubDmg;

		public static ConfigEntry<float> falseSonClubProc;

		public static ConfigEntry<float> falseSonOverheadClubDmg;

		public static ConfigEntry<float> falseSonChargeClubDmg;

		public static ConfigEntry<float> falseSonChargeClubProc;

		public static ConfigEntry<float> falseSonSpikeDmg;

		public static ConfigEntry<float> falseSonSpikeProc;

		public static ConfigEntry<float> falseSonStakeDmg;

		public static ConfigEntry<float> falseSonStakeProc;

		public static ConfigEntry<float> falseSonStakeBoltDmg;

		public static ConfigEntry<float> falseSonStakeBoltProc;

		public static ConfigEntry<int> falseSonStakeBoltAoe;

		public static ConfigEntry<float> falseSonStepDmg;

		public static ConfigEntry<float> falseSonStepProc;

		public static ConfigEntry<float> falseSonMeridianDmg;

		public static ConfigEntry<int> falseSonMeridianAoe;

		public static ConfigEntry<int> falseSonMeridianPullAoe;

		public static ConfigEntry<float> falseSonMeridianGrowthBase;

		public static ConfigEntry<float> falseSonMeridianGrowthIncrease;

		public static ConfigEntry<float> falseSonFatherProc;

		public static ConfigEntry<float> falseSonBurstDmg;

		public static ConfigEntry<float> falseSonBurstProc;

		public static ConfigEntry<float> falseSonBurstSpikeFill;

		public static string[] survivorBodies = new string[18]
		{
			"CommandoBody", "HuntressBody", "Bandit2Body", "ToolbotBody", "MercBody", "EngiBody", "EngiTurretBody", "EngiWalkerTurretBody", "MageBody", "TreebotBody",
			"LoaderBody", "CrocoBody", "CaptainBody", "RailgunnerBody", "VoidSurvivorBody", "SeekerBody", "ChefBody", "FalseSonBody"
		};

		public void Awake()
		{
			//IL_296b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2975: Expected O, but got Unknown
			//IL_297c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2986: Expected O, but got Unknown
			//IL_298d: Unknown result type (might be due to invalid IL or missing references)
			//IL_2997: Expected O, but got Unknown
			//IL_299e: Unknown result type (might be due to invalid IL or missing references)
			//IL_29a8: Expected O, but got Unknown
			//IL_29af: Unknown result type (might be due to invalid IL or missing references)
			//IL_29b9: Expected O, but got Unknown
			//IL_29e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_29ee: Expected O, but got Unknown
			//IL_29f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_29ff: Expected O, but got Unknown
			//IL_29cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_29d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_29d8: Expected O, but got Unknown
			//IL_2a13: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a18: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a1e: Expected O, but got Unknown
			//IL_2a4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a58: Expected O, but got Unknown
			//IL_2a37: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a3c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a42: Expected O, but got Unknown
			//IL_2a6c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a71: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a77: Expected O, but got Unknown
			//IL_2a90: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a95: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a9b: Expected O, but got Unknown
			//IL_2acb: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ad5: Expected O, but got Unknown
			//IL_2adc: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ae6: Expected O, but got Unknown
			//IL_2aed: Unknown result type (might be due to invalid IL or missing references)
			//IL_2af7: Expected O, but got Unknown
			//IL_2afe: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b08: Expected O, but got Unknown
			//IL_2b0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b19: Expected O, but got Unknown
			//IL_2ab4: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ab9: Unknown result type (might be due to invalid IL or missing references)
			//IL_2abf: Expected O, but got Unknown
			//IL_2b2d: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b32: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b38: Expected O, but got Unknown
			//IL_2b51: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b56: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b5c: Expected O, but got Unknown
			//IL_2b75: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b80: Expected O, but got Unknown
			//IL_2bb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bba: Expected O, but got Unknown
			//IL_2b99: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ba4: Expected O, but got Unknown
			//IL_2bce: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bd3: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bd9: Expected O, but got Unknown
			//IL_2bf2: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bf7: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bfd: Expected O, but got Unknown
			//IL_2c16: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c1b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c21: Expected O, but got Unknown
			//IL_2c51: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c5b: Expected O, but got Unknown
			//IL_2c62: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c6c: Expected O, but got Unknown
			//IL_2c73: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c7d: Expected O, but got Unknown
			//IL_2c84: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c8e: Expected O, but got Unknown
			//IL_2c95: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c9f: Expected O, but got Unknown
			//IL_2ca6: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cb0: Expected O, but got Unknown
			//IL_2cb7: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cc1: Expected O, but got Unknown
			//IL_2cc8: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cd2: Expected O, but got Unknown
			//IL_2cd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ce3: Expected O, but got Unknown
			//IL_2c3a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c3f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c45: Expected O, but got Unknown
			Log.Init(((BaseUnityPlugin)this).Logger);
			cmdDblTapDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Double Tap", "Damage", 100, "Base damage % for Double Tap.");
			cmdDblTapProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Double Tap", "Proc Coefficient", 1f, "Proc coefficient for Double Tap.");
			cmdRoundDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Phase Round", "Damage", 300, "Base damage % for Phase Round.");
			cmdRoundProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Phase Round", "Proc Coefficient", 1f, "Proc coefficient for Phase Round.");
			cmdBlastDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Phase Blast", "Damage", 200, "Base damage % per shot for Phase Blast.");
			cmdBlastProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Phase Blast", "Proc Coefficient", 0.5f, "Proc coefficient for Phase Blast.");
			cmdSuppDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Suppressive Fire", "Damage", 100, "Base damage % for Suppressive Fire.");
			cmdSuppProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Suppressive Fire", "Proc Coefficient", 1f, "Proc coefficient for Suppressive Fire.");
			cmdGrenadeAoe = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Frag Grenade", "Explosion Radius", 11, "Explosion radius of Frag Grenade in meters.");
			cmdGrenadeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Frag Grenade", "Damage", 700, "Base damage % for Frag Grenade.");
			cmdGrenadeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Frag Grenade", "Proc Coefficient", 1f, "Proc coefficient for Frag Grenade.");
			huntStrafeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Strafe", "Damage", 150, "Base damage % for Strafe.");
			huntStrafeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Strafe", "Proc Coefficient", 1f, "Proc coefficient for Strafe.");
			huntFlurryDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Flurry", "Damage", 100, "Base damage % for Flurry.");
			huntFlurryProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Flurry", "Proc Coefficient", 0.7f, "Proc coefficient for Flurry.");
			huntGlaiveDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Laser Glaive", "Damage", 250, "Base damage % for the initial hit of Laser Glaive.");
			huntGlaiveDmgBounce = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Laser Glaive", "Bounce Damage", 10, "TOTAL damage increase % for Laser Glaive per bounce.");
			huntGlaiveProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Laser Glaive", "Proc Coefficient", 0.8f, "Proc coefficient for Laser Glaive.");
			huntArrowRainAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Arrow Rain", "Scale", 1f, "Area of effect scale for Arrow Rain. 1.0 is no scaling from default.");
			huntArrowRainDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Arrow Rain", "Damage", 330, "Base damage % for Arrow Rain per second.");
			huntArrowRainProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Arrow Rain", "Proc Coefficient", 0.2f, "Proc coefficient for Arrow Rain.");
			huntBallistaDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Ballista", "Damage", 900, "Base damage % for Ballista.");
			huntBallistaProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Ballista", "Proc Coefficient", 1f, "Proc coefficient for Ballista.");
			bandHemoDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Hemorrhage", "Damage", 2000, "Amount of base damage % done by Hemorrhage.");
			bandBurstDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Burst", "Damage", 100, "Damage multiplier % of each Burst projectile.");
			bandBurstProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Burst", "Proc Coefficient", 0.5f, "Proc coefficient of Burst.");
			bandBlastDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Blast", "Damage", 330, "Damage multiplier % of each Blast projectile.");
			bandBlastProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Blast", "Proc Coefficient", 1f, "Proc coefficient of Blast.");
			bandDaggerDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Serrated Dagger", "Damage", 360, "Damage multiplier % of Serrated Dagger.");
			bandDaggerProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Serrated Dagger", "Proc Coefficient", 1f, "Proc coefficient of Serrated Dagger.");
			bandShivDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Serrated Shiv", "Damage", 240, "Damage multiplier % of each Serrated Shiv projectile.");
			bandShivProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Serrated Shiv", "Proc Coefficient", 1f, "Proc coefficient of Serrated Shiv.");
			bandSmokeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Smoke Bomb", "Damage", 200, "Damage multiplier % of Smoke Bomb Enter/Exit.");
			bandSmokeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Smoke Bomb", "Proc Coefficient", 1f, "Proc coefficient of Smoke Bomb.");
			bandLightsOutDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Lights Out", "Damage", 600, "Damage multiplier % of each Lights Out projectile.");
			bandLightsOutProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Lights Out", "Proc Coefficient", 1f, "Proc coefficient of Lights Out.");
			bandDesperadoDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Desperado", "Damage", 600, "Damage multiplier % of each Desperado projectile.");
			bandDesperadoBuff = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Desperado", "Buff Damage", 10, "Damage multiplier % increase per Bandit Skull buff.");
			bandDesperadoProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Desperado", "Proc Coefficient", 1f, "Proc coefficient of Desperado.");
			multNailgunDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Auto-Nailgun", "Damage", 70, "Damage multiplier % of each Auto-Nailgun projectile.");
			multNailgunProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Auto-Nailgun", "Proc Coefficient", 0.6f, "Proc coefficient of Auto-Nailgun.");
			multRebarDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Rebar Puncher", "Damage", 600, "Damage multiplier % of each Rebar Puncher projectile.");
			multRebarProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Rebar Puncher", "Proc Coefficient", 1f, "Proc coefficient of Rebar Puncher.");
			multScrapAoe = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Scrap Launcher", "Explosion Radius", 7f, "Explosion radius of Scrap Launcher in meters.");
			multScrapDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Scrap Launcher", "Damage", 360, "Damage multiplier % of each Scrap Launcher projectile.");
			multScrapProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Scrap Launcher", "Proc Coefficient", 1f, "Proc coefficient of Scrap Launcher.");
			multSawDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Power Saw", "Damage", 100, "Damage multiplier % of each Power Saw tick.");
			multSawProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Power Saw", "Proc Coefficient", 1f, "Proc coefficient of Power Saw.");
			multCanisterDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Blast Canister", "Canister Damage", 220, "Damage multiplier % of Blast Canister explosion.");
			multBombletDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Blast Canister", "Bomblet Damage", 44, "Damage multiplier % of Blast Canister bomblets.");
			multCanisterProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Blast Canister", "Canister Proc Coefficient", 1f, "Proc coefficient of Blast Canister explosion.");
			multBombletProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Blast Canister", "Bomblet Proc Coefficient", 0.3f, "Proc coefficient of Blast Canister bomblets.");
			multTransportDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Transport Mode", "Damage", 250, "Damage multiplier % of Transport Mode attack.");
			multTransportMoveSpd = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Transport Mode", "Movement Speed Bonus", 220, "Movement speed bonus % granted by Transport Mode.");
			multTransportProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Transport Mode", "Proc Coefficient", 1f, "Proc coefficient of Transport Mode attack.");
			engGrenadeAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Bouncing Grenades", "Explosion Radius", 3.5f, "Explosion radius of Bouncing Grenades in meters.");
			engGrenadeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Bouncing Grenades", "Damage", 100, "Damage multiplier % of each Bouncing Grenade projectile.");
			engGrenadeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Bouncing Grenades", "Proc Coefficient", 1f, "Proc coefficient of Bouncing Grenades.");
			engPressureAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Pressure Mines", "Explosion Radius", 7.5f, "Explosion radius of Pressure Mines in meters.");
			engPressureMinDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Pressure Mines", "Unarmed Damage", 300, "Damage multiplier % of Pressure Mines when not fully armed.");
			engPressureMaxDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Pressure Mines", "Fully Armed Damage", 900, "Damage multiplier % of Pressure Mines when fully armed.");
			engPressureProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Pressure Mines", "Proc Coefficient", 1f, "Proc coefficient of Pressure Mines.");
			engSpiderAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Spider Mines", "Explosion Radius", 7.5f, "Explosion radius of Spider Mines in meters.");
			engSpiderDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Spider Mines", "Damage", 600, "Damage multiplier % of Spider Mines.");
			engSpiderProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Spider Mines", "Proc Coefficient", 1f, "Proc coefficient of Spider Mines.");
			engBubbleDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Bubble Shield", "Duration", 15, "Duration of Bubble Shield in seconds.");
			engHarpoonDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Thermal Harpoons", "Damage", 500, "Damage multiplier % of each Thermal Harpoon projectile.");
			engHarpoonProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Thermal Harpoons", "Proc Coefficient", 1f, "Proc coefficient of Thermal Harpoons.");
			engTurretGaussDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - TR12 Gauss Auto-Turret", "Damage", 70, "Damage multiplier % of each TR12 Gauss Auto-Turret projectile.");
			engTurretGaussProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - TR12 Gauss Auto-Turret", "Proc Coefficient", 1f, "Proc coefficient of TR12 Gauss Auto-Turret.");
			engTurretCarbonDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - TR58 Carbonizer Turret", "Damage", 40, "Damage multiplier % of each TR58 Carbonizer Turret projectile.");
			engTurretCarbonProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - TR58 Carbonizer Turret", "Proc Coefficient", 0.6f, "Proc coefficient of TR58 Carbonizer Turret.");
			artiFlameAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Flame Bolt", "Explosion Radius", 2.5f, "Explosion radius of Flame Bolt in meters.");
			artiFlameDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Flame Bolt", "Damage", 280, "Damage multiplier % of each Flame Bolt projectile.");
			artiFlameProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Flame Bolt", "Proc Coefficient", 0.5f, "Proc coefficient of Flame Bolt.");
			artiPlasmaAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Plasma Bolt", "Explosion Radius", 6f, "Explosion radius of Plasma Bolt in meters.");
			artiPlasmaDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Plasma Bolt", "Damage", 280, "Damage multiplier % of each Plasma Bolt projectile.");
			artiPlasmaProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Plasma Bolt", "Proc Coefficient", 0.5f, "Proc coefficient of Plasma Bolt.");
			artiBombAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Charged Nano-Bomb", "Explosion Radius", 14f, "Explosion radius of Charged Nano-Bomb in meters.");
			artiBombSparkDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Charged Nano-Bomb", "Spark Damage", 10, "Damage multiplier % of Charged Nano-Bomb sparks, % of damage extra or less from the nano bomb");
			artiBombProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Charged Nano-Bomb", "Explosion Proc Coefficient", 1f, "Proc coefficient of Charged Nano-Bomb explosion.");
			artiSparkProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Charged Nano-Bomb", "Spark Proc Coefficient", 0.3f, "Proc coefficient of Charged Nano-Bomb sparks.");
			artiSpearMinDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Cast Nano-Spear", "Min Damage", 400, "Minimum damage multiplier % of Cast Nano-Spear projectile.");
			artiSpearMaxDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Cast Nano-Spear", "Max Damage", 1200, "Maximum damage multiplier % of Cast Nano-Spear projectile.");
			artiSpearProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Cast Nano-Spear", "Proc Coefficient", 1f, "Proc coefficient of Cast Nano-Spear projectile.");
			artiSnapDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Snapfreeze", "Damage", 100, "Damage multiplier % of Snapfreeze projectile.");
			artiSnapProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Snapfreeze", "Proc Coefficient", 1f, "Proc coefficient of Snapfreeze projectile.");
			artiFlamethrowerDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Flamethrower", "Damage", 95, "Damage multiplier % of each Flamethrower projectile.");
			artiFlamethrowerProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Flamethrower", "Proc Coefficient", 1f, "Proc coefficient of Flamethrower.");
			artiIonAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Ion Surge", "Explosion Radius", 14f, "Explosion radius of Ion Surge in meters.");
			artiIonDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Ion Surge", "Damage", 800, "Damage multiplier % of Ion Surge projectile.");
			artiIonProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Ion Surge", "Proc Coefficient", 1f, "Proc coefficient of Ion Surge.");
			mercSwordDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Laser Sword", "Damage", 130, "Damage multiplier % of each Laser Sword slice.");
			mercSwordProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Laser Sword", "Proc Coefficient", 1f, "Proc coefficient of each Laser Sword slice.");
			mercWhirlwindDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Whirlwind", "Damage", 200, "Damage multiplier % of each Whirlwind slice.");
			mercWhirlwindProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Whirlwind", "Proc Coefficient", 1f, "Proc coefficient of Whirlwind.");
			mercRisingDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Rising Thunder", "Damage", 550, "Damage multiplier % of Rising Thunder.");
			mercRisingProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Rising Thunder", "Proc Coefficient", 1f, "Proc coefficient of Rising Thunder.");
			mercBindDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Binding Assault", "Damage", 300, "Damage multiplier % of each Binding Assault slice.");
			mercBindProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Binding Assault", "Proc Coefficient", 1f, "Proc coefficient of Binding Assault.");
			mercFocusDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Focused Assault", "Damage", 700, "Damage multiplier % of Focused Assault.");
			mercFocusProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Focused Assault", "Proc Coefficient", 1f, "Proc coefficient of Focused Assault.");
			mercEviscDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Eviscerate", "Damage", 110, "Damage multiplier % of each Eviscerate slice.");
			mercEviscProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Eviscerate", "Proc Coefficient", 1f, "Proc coefficient of Eviscerate.");
			mercSlicingDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Slicing Winds", "Damage", 100, "Damage multiplier % of each Slicing Winds slice.");
			mercSlicingProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Slicing Winds", "Proc Coefficient", 1f, "Proc coefficient of Slicing Winds.");
			rexInjectDmg = ((BaseUnityPlugin)this).Config.Bind<int>("REX - DIRECTIVE: Inject", "Damage", 80, "Damage multiplier % of each Inject projectile.");
			rexInjectHeal = ((BaseUnityPlugin)this).Config.Bind<int>("REX - DIRECTIVE: Inject", "Heal Multiplier", 60, "Heal multiplier % of Inject damage dealt.");
			rexInjectProc = ((BaseUnityPlugin)this).Config.Bind<float>("REX - DIRECTIVE: Inject", "Proc Coefficient", 0.5f, "Proc coefficient of Inject.");
			rexDrillDmg = ((BaseUnityPlugin)this).Config.Bind<int>("REX - DIRECTIVE: Drill", "Damage", 90, "Damage multiplier % of each drill projectile.");
			rexDrillDuration = ((BaseUnityPlugin)this).Config.Bind<int>("REX - DIRECTIVE: Drill", "Duration", 3, "Duration of Drill in seconds.");
			rexDrillProjCount = ((BaseUnityPlugin)this).Config.Bind<int>("REX - DIRECTIVE: Drill", "Projectile Count", 16, "Number of projectiles created by Drill.");
			rexDrillProc = ((BaseUnityPlugin)this).Config.Bind<float>("REX - DIRECTIVE: Drill", "Proc Coefficient", 0.5f, "Proc coefficient of Drill.");
			rexDrillAoe = ((BaseUnityPlugin)this).Config.Bind<float>("REX - DIRECTIVE: Drill", "Area of Effect", 1f, "Area of Effect scale for Drill. 1.0 is no scaling.");
			rexSeedDmg = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Seed Barrage", "Damage", 450, "Damage multiplier % of Seed Barrage.");
			rexSeedProc = ((BaseUnityPlugin)this).Config.Bind<float>("REX - Seed Barrage", "Proc Coefficient", 1f, "Proc coefficient of Seed Barrage.");
			rexSeedSelf = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Seed Barrage", "Self-Damage", 15, "Percent of max HP consumed when using Seed Barrage.");
			rexBrambleDmg = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Bramble Volley", "Damage", 550, "Damage multiplier % of Bramble Volley attack.");
			rexBrambleHeal = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Bramble Volley", "Healing", 10, "Percent of max HP healed per enemy hit by Bramble Volley.");
			rexBrambleProc = ((BaseUnityPlugin)this).Config.Bind<float>("REX - Bramble Volley", "Proc Coefficient", 0.5f, "Proc coefficient of Bramble Volley.");
			rexBrambleSelf = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Bramble Volley", "Self-Damage", 20, "Percent of max HP consumed when using Bramble Volley.");
			rexHarvestDmg = ((BaseUnityPlugin)this).Config.Bind<int>("REX - DIRECTIVE: Harvest", "Damage", 330, "Damage multiplier % of Harvest attack.");
			rexHarvestDuration = ((BaseUnityPlugin)this).Config.Bind<int>("REX - DIRECTIVE: Harvest", "Fruit Duration", 20, "Duration (in seconds) of fruits on the ground.");
			rexHarvestHeal = ((BaseUnityPlugin)this).Config.Bind<int>("REX - DIRECTIVE: Harvest", "Fruit Healing", 25, "Percent of max HP healed by Harvest fruits.");
			rexHarvestProc = ((BaseUnityPlugin)this).Config.Bind<float>("REX - DIRECTIVE: Harvest", "Proc Coefficient", 1f, "Proc coefficient of Harvest.");
			rexGrowthAoe = ((BaseUnityPlugin)this).Config.Bind<float>("REX - Tangling Growth", "Explosion Radius", 10f, "Explosion radius of Tangling Growth in meters.");
			rexGrowthDmg = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Tangling Growth", "Damage", 200, "Damage multiplier % of Tangling Growth.");
			rexGrowthDuration = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Tangling Growth", "Duration", 8, "Duration of Tangling Growth roots in seconds.");
			rexGrowthHealPulse = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Tangling Growth", "Root Pulse Healing", 13, "Percent of total max HP healed per enemy snared by Tangling Growth, after all pulses.");
			rexGrowthHealPulseCount = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Tangling Growth", "Root Pulse Healing Count", 17, "How many pulses to do.");
			rexGrowthSelf = ((BaseUnityPlugin)this).Config.Bind<int>("REX - Tangling Growth", "Self-Damage", 25, "Percent of max HP consumed when using Tangling Growth.");
			rexGrowthProjProc = ((BaseUnityPlugin)this).Config.Bind<float>("REX - Tangling Growth", "Projectile Proc Coefficient", 1f, "Proc coefficient of Tangling Growth projectile.");
			rexGrowthRootProc = ((BaseUnityPlugin)this).Config.Bind<float>("REX - Tangling Growth", "Root Proc Coefficient", 0f, "Proc coefficient of Tangling Growth roots.");
			loaderKnuckleDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Loader - Knuckleboom", "Damage", 320, "Damage multiplier % of each Knuckleboom swing.");
			loaderKnuckleProc = ((BaseUnityPlugin)this).Config.Bind<float>("Loader - Knuckleboom", "Proc Coefficient", 1f, "Proc coefficient of Knuckleboom.");
			loaderSpikedDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Loader - Spiked Fist", "Damage", 320, "Damage multiplier % of Spiked Fist projectile.");
			loaderSpikedProc = ((BaseUnityPlugin)this).Config.Bind<float>("Loader - Spiked Fist", "Proc Coefficient", 1f, "Proc coefficient of Spiked Fist.");
			loaderChargedGauntletProc = ((BaseUnityPlugin)this).Config.Bind<float>("Loader - Charged Gauntlet", "Proc Coefficient", 1f, "Proc coefficient of Charged Gauntlet.");
			loaderThunderGauntletCone = ((BaseUnityPlugin)this).Config.Bind<int>("Loader - Thunder Gauntlet", "Cone Damage", 900, "Damage multiplier % of Thunder Gauntlet lightning cone.");
			loaderThunderGauntletProc = ((BaseUnityPlugin)this).Config.Bind<float>("Loader - Thunder Gauntlet", "Proc Coefficient", 1f, "Proc coefficient of Thunder Gauntlet.");
			loaderPylonDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Loader - M551 Pylon", "Damage", 100, "Damage multiplier % of each Pylon projectile.");
			loaderPylonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Loader - M551 Pylon", "Duration", 16, "Duration of Pylon in seconds.");
			loaderPylonProjectiles = ((BaseUnityPlugin)this).Config.Bind<int>("Loader - M551 Pylon", "Projectile Count", 6, "Number of projectiles fired by Pylon.");
			loaderPylonProc = ((BaseUnityPlugin)this).Config.Bind<float>("Loader - M551 Pylon", "Proc Coefficient", 0.5f, "Proc coefficient of Pylon.");
			loaderPylonRange = ((BaseUnityPlugin)this).Config.Bind<int>("Loader - M551 Pylon", "Range", 25, "Range of Pylon in meters.");
			loaderThunderslamDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Loader - Thunderslam", "Damage", 2000, "Damage multiplier % of Thunderslam.");
			loaderThunderslamProc = ((BaseUnityPlugin)this).Config.Bind<float>("Loader - Thunderslam", "Proc Coefficient", 1f, "Proc coefficient of Thunderslam.");
			acridPoisonMaxHealth = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Poison", "Damage (Max Health)", 1f, "Damage multiplier % of victim’s maximum health for Poison.");
			acridPoisonBaseDamage = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Poison", "Damage (Base)", 100f, "Damage multiplier % of base damage for Poison.");
			acridPoisonCap = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Poison", "Damage Cap", 5000f, "Maximum damage multiplier % cap of Poison.");
			acridPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Poison", "Duration", 10, "Duration of Poison in seconds.");
			acridBlightDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Blight", "Duration", 5, "Duration of Blight in seconds.");
			acridBlightDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Blight", "Damage", 20f, "Damage multiplier % per tick of Blight.");
			acridWoundsSwipeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Vicious Wounds", "Swipe Damage", 200, "Damage multiplier % of first two swipes of Vicious Wounds.");
			acridWoundsFinalDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Vicious Wounds", "Final Swipe Damage", 400, "Damage multiplier % of final swipe of Vicious Wounds.");
			acridWoundsProc = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Vicious Wounds", "Proc Coefficient", 1f, "Proc coefficient of Vicious Wounds.");
			acridNeuroDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Neurotoxin", "Damage", 240, "Damage multiplier % of Neurotoxin.");
			acridNeuroProc = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Neurotoxin", "Proc Coefficient", 1f, "Proc coefficient of Neurotoxin.");
			acridBiteDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Ravenous Bite", "Damage", 320, "Damage multiplier % of Ravenous Bite.");
			acridBiteProc = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Ravenous Bite", "Proc Coefficient", 1f, "Proc coefficient of Ravenous Bite.");
			acridLeapPoolDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Caustic Leap", "Pool Damage", 25, "Damage multiplier % per tick of Caustic Leap's acid pool.");
			acridLeapPoolDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Caustic Leap", "Pool Duration", 10, "Duration of Caustic Leap’' acid pool in seconds.");
			acridLeapDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Caustic Leap", "Leap Damage", 320, "Damage multiplier % of Caustic Leap impact.");
			acridLeapProc = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Caustic Leap", "Proc Coefficient", 1f, "Proc coefficient of Caustic Leap.");
			acridLeapAcidProc = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Caustic Leap", "Pool Proc Coefficient", 0.1f, "Proc coefficient of Caustic Leap's acid pool.");
			acridFrenziedDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Frenzied Leap", "Damage", 550, "Damage multiplier % of Frenzied Leap.");
			acridFrenziedProc = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Frenzied Leap", "Proc Coefficient", 1f, "Proc coefficient of Frenzied Leap.");
			acridPandemicDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Pandemic", "Damage", 100, "Damage multiplier % of Pandemic.");
			acridPandemicRange = ((BaseUnityPlugin)this).Config.Bind<int>("Acrid - Pandemic", "Spread Range", 30, "Range in meters of Pandemic’s spread.");
			acridPandemicProc = ((BaseUnityPlugin)this).Config.Bind<float>("Acrid - Pandemic", "Proc Coefficient", 1f, "Proc coefficient of Pandemic.");
			captainShotgunDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Vulcan Shotgun", "Damage Multiplier", 120, "Damage multiplier % of Vulcan Shotgun.");
			captainShotgunProc = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Vulcan Shotgun", "Proc Coefficient", 0.75f, "Proc coefficient of Vulcan Shotgun.");
			captainTaserAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Power Taser", "Area of Effect", 2f, "Area of effect radius (in meters) of Power Taser.");
			captainTaserDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Power Taser", "Damage Multiplier", 100, "Damage multiplier % of Power Taser.");
			captainTaserProc = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Power Taser", "Proc Coefficient", 1f, "Proc coefficient of Power Taser.");
			captainProbeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Orbital Probe", "Damage Multiplier", 1000, "Damage multiplier % of Orbital Probe.");
			captainProbeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Orbital Probe", "Proc Coefficient", 1f, "Proc coefficient of Orbital Probe.");
			captainDiabloDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - OGM-72 DIABLO Strike", "Damage Multiplier", 40000, "Damage multiplier % of Diablo Strike.");
			captainDiabloProc = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - OGM-72 DIABLO Strike", "Proc Coefficient", 1f, "Proc coefficient of Diablo Strike.");
			captainBeaconDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Orbital Supply Beacon", "Damage Multiplier", 2000, "Damage multiplier % of Orbital Supply Beacon.");
			captainBeaconRadius = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Orbital Supply Beacon", "Radius", 10, "Radius of Orbital Supply Beacon in meters.");
			captainBeaconHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Beacon Healing", "Maximum Health Healing", 10, "Percent of max HP healed per second.");
			captainBeaconShockCount = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Beacon Shocking", "Shocks Frequency", 0.33f, "The frequency of shots for captains shock beacon.");
			captainBeaconResupplyUses = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Beacon Resupply", "Number of Uses", 3, "Number of uses provided by Resupply Beacon.");
			railgunnerXQRDamage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - XQR Smart Round System", "Damage Multiplier", 100, "Damage multiplier % of XQR Smart Round System.");
			railgunnerXQRProc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - XQR Smart Round System", "Proc Coefficient", 1f, "Proc coefficient of XQR Smart Round System (original value: 1.0).");
			railgunnerM99Damage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - M99", "Damage Multiplier", 1000, "Damage multiplier % of M99.");
			railgunnerM99Proc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - M99", "Proc Coefficient", 1f, "Proc coefficient of M99.");
			railgunnerHH44Damage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - HH44", "Damage Multiplier", 400, "Damage multiplier % of HH44 (original value: 400%).");
			railgunnerHH44Proc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - HH44", "Proc Coefficient", 1f, "Proc coefficient of HH44.");
			railgunnerPolarDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - Polar Field Device", "Duration", 12, "Duration in seconds of Polar Field Device (original value: 12s).");
			railgunnerSuperCritMult = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - Supercharged Railgun", "Critical Strike Damage Multiplier", 150, "Critical strike damage multiplier % of Supercharged Railgun.");
			railgunnerSuperDamage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - Supercharged Railgun", "Damage Multiplier", 4000, "Damage multiplier % of Supercharged Railgun.");
			railgunnerSuperProc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - Supercharged Railgun", "Proc Coefficient", 3f, "Proc coefficient of Supercharged Railgun.");
			railgunnerCryoDamage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - Cryocharged Railgun", "Damage Multiplier", 2000, "Damage multiplier % of Cryocharged Railgun.");
			railgunnerCryoProc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - Cryocharged Railgun", "Proc Coefficient", 1.5f, "Proc coefficient of Cryocharged Railgun");
			voidDrownDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Drown", "Damage", 300, "Damage multiplier % of Drown.");
			voidDrownProc = ((BaseUnityPlugin)this).Config.Bind<float>("Void Fiend - Drown", "Proc Coefficient", 1f, "Proc coefficient of Drown.");
			voidCorruptDrownDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Corrupted Drown", "Damage per Tick", 250, "Damage multiplier % per tick of Corrupted Drown (8 ticks per second).");
			voidCorruptDrownProc = ((BaseUnityPlugin)this).Config.Bind<float>("Void Fiend - Corrupted Drown", "Proc Coefficient", 0.625f, "Proc coefficient of Corrupted Drown.");
			voidFloodUnchargedDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Flood", "Damage Uncharged", 600, "Damage multiplier % of uncharged Flood.");
			voidFloodChargedDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Flood", "Damage Charged", 1100, "Damage multiplier % of charged Flood.");
			voidFloodProc = ((BaseUnityPlugin)this).Config.Bind<float>("Void Fiend - Flood", "Proc Coefficient", 1f, "Proc coefficient of Flood.");
			voidCorruptFloodDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Corrupted Flood", "Damage", 1100, "Damage multiplier % of Corrupted Flood.");
			voidCorruptFloodProc = ((BaseUnityPlugin)this).Config.Bind<float>("Void Fiend - Corrupted Flood", "Proc Coefficient", 1f, "Proc coefficient of Corrupted Flood.");
			voidSuppressCorruptCrushed = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Suppress", "Corruption Crushed", 25, "Percent of corruption reduced when casting Suppress.");
			voidSuppressHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Suppress", "Healing", 25, "Percent of max HP healed when casting Suppress.");
			voidCorruptSuppressGain = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Corrupted Suppress", "Corruption Gain", 25, "Percent of corruption gained when casting Corrupted Suppress.");
			voidCorruptSuppressCrush = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Corrupted Suppress", "HP Crushed", 25, "Percent of max HP crushed when casting Corrupted Suppress.");
			seekerInnerSpiritPunchThird = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Spirit Punch Third Damage Increase", 6.67f, "Spirit Punch third explosion damage increase %.");
			seekerInnerUnseenHandHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Unseen Hand Healing Increase", 4f, "Healing increase % for Unseen Hand.");
			seekerInnerSojournRadius = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Sojourn Explosion Radius Increase", 14.28f, "Explosion radius increase % for Sojourn.");
			seekerInnerReprieveBarrier = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Reprieve Barrier Increase", 10f, "Barrier increase % for Reprieve.");
			seekerInnerMeditateHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Meditate Healing Increase", 4f, "Healing increase % for Meditate.");
			seekerInnerMeditateDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Meditate Damage Increase", 200f, "Damage increase % for Meditate.");
			seekerInnerMeditateRadius = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Inner Strength", "Meditate Radius Increase", 2, "Radius increase in meters for Meditate.");
			seekerInnerPalmSize = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Palm Blast Size Increase", 15f, "Size increase % for Palm Blast.");
			seekerInnerPalmSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Palm Blast Speed Increase", 8.33f, "Speed increase % for Palm Blast.");
			seekerInnerPalmDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Inner Strength", "Palm Blast Damage Increase", 250, "Damage increase % for Palm Blast.");
			seekerInnerPalmHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Inner Strength", "Palm Blast Healing Increase", 3f, "Healing increase % for Palm Blast.");
			seekerSpiritPunchDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Spirit Punch", "Damage", 250, "Base damage % for Spirit Punch.");
			seekerSpiritPunchThirdDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Spirit Punch", "Third Explosion Damage", 350, "Third explosion damage % for Spirit Punch.");
			seekerSpiritPunchProc = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Spirit Punch", "Proc Coefficient", 1f, "Proc coefficient for Spirit Punch.");
			seekerSpiritPunchThirdProc = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Spirit Punch", "Proc Coefficient", 0.75f, "Proc coefficient for third explosion Spirit Punch.");
			seekerSpiritPunchAoE = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Spirit Punch", "Area of Effect", 7, "AoE radius in meters for Spirit Punch.");
			seekerUnseenHandDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Unseen Hand", "Damage", 600, "Base damage % for Unseen Hand.");
			seekerUnseenHandHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Unseen Hand", "Heal Percent", 3.5f, "Healing increase % for Unseen Hand.");
			seekerUnseenHandProc = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Unseen Hand", "Proc Coefficient", 1f, "Proc Coefficient for Unseen Hand.");
			seekerSoulSpiralDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Soul Spiral", "Damage", 150, "Base damage % for Soul Spiral.");
			seekerSoulSpiralHits = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Soul Spiral", "Orb Hits Before Expiring", 11, "Number of orb hits before expiring without Tranquility.");
			seekerSoulSpiralBarrier = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Soul Spiral", "Barrier Gain", 3f, "Barrier gain % of max HP from Soul Spiral.");
			seekerSoulSpiralProc = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Soul Spiral", "Proc Coefficient", 1f, "Proc coefficient of Soul Spiral.");
			seekerSojournDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Sojourn", "Damage", 500, "Base damage % for Sojourn.");
			seekerSojournSelfDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Sojourn", "Damage Per Second", 25f, "Damage % received per second.");
			seekerSojournDmgIncrease = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Sojourn", "Damage Increase Per Second", 500f, "Damage multiplier increase % per second.");
			seekerSojournBaseMinRadius = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Sojourn", "Base Min Radius", 5, "Base Min Radius of Sojourn in meters.");
			seekerSojournBaseMaxRadius = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Sojourn", "Base Max Radius", 20, "Base Max Radius of Sojourn in meters.");
			seekerSojournHealReduction = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Sojourn", "Healing Reduction Per Second", 10f, "Healing reduction % per second.");
			seekerSojournProc = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Sojourn", "Proc Coefficient", 1f, "Proc coefficient for Sojourn.");
			seekerReprieveDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Reprieve", "Damage", 200, "Damage % for Reprieve.");
			seekerReprieveBarrier = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Reprieve", "Barrier Gain", 20f, "Barrier gain % of maximum health.");
			seekerReprieveProc = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Reprieve", "Proc Coefficient", 1f, "Proc coefficient for Reprieve.");
			seekerCycloneDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Reprieve", "Cyclone Damage", 100, "Damage multiplier % every 0.5s.");
			seekerCycloneHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Reprieve", "Healing", 1f, "Healing % every 0.5s.");
			seekerCycloneDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Reprieve", "Duration", 4, "Duration in seconds.");
			seekerCycloneRadius = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Reprieve", "Radius", 20, "Radius in meters.");
			seekerCycloneDmgIncrease = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Reprieve", "Damage Increase Per Second", 50f, "Damage increase % per second of flight.");
			seekerCycloneHealIncrease = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Reprieve", "Healing Increase Per Second", 1f, "Healing increase % per second of flight.");
			seekerCycloneDurationIncrease = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Reprieve", "Duration Increase Per Second", 0.5f, "Duration increase in seconds per second of flight.");
			seekerMeditateDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Meditate", "Damage", 300, "Damage multiplier % of Meditate.");
			seekerMeditateHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Meditate", "Maximum Health Healing", 25f, "Healing % of max HP.");
			seekerMeditateAoE = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Meditate", "Area of Effect", 10, "AoE radius in meters.");
			seekerMeditateProc = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Meditate", "Proc Coefficient", 1f, "Proc coefficient of Meditate.");
			seekerPalmMinDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Palm Blast", "Min Damage", 400, "Min Damage multiplier % of Palm Blast.");
			seekerPalmMaxDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Seeker - Palm Blast", "Max Damage", 700, "Damage multiplier % of Charged Palm Blast.");
			seekerPalmMinHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Palm Blast", "Min Healing", 9f, "Min Healing % of Palm Blast.");
			seekerPalmMaxHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Palm Blast", "Max Healing", 15f, "Healing % of Charged Palm Blast");
			seekerPalmBarrier = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Palm Blast", "Multihit Barrier Gain", 20f, "Barrier gain % of max HP.");
			seekerPalmProc = ((BaseUnityPlugin)this).Config.Bind<float>("Seeker - Palm Blast", "Proc Coefficient", 1f, "Proc coefficient of Palm Blast.");
			chefKissHeal = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Chefs Kiss", "Heal Amount", 8f, "Base heal % amount of max HP for Chef's Kiss.");
			chefOilPoolProc = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Oil Pools", "Oil Pool Proc Coefficient", 0.1f, "Proc coefficient for Chef's Oil Pools.");
			chefSearDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Sear", "Damage", 600f, "Base damage % for Sear.");
			chefSearProc = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Sear", "Proc Coefficient", 1f, "Proc coefficient for Sear.");
			chefSearBoostDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Sear", "Boosted Damage", 700f, "Base damage % for boosted Sear projectiles.");
			chefSearBoostProc = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Sear", "Boosted Proc Coefficient", 1f, "Proc coefficient for boosted Sear projectiles.");
			chefIceDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Ice Box", "Damage", 150f, "Base damage % for each Ice Box projectile.");
			chefIceProc = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Ice Box", "Proc Coefficient", 1f, "Proc coefficient for each Ice Box projectile.");
			chefIceAoe = ((BaseUnityPlugin)this).Config.Bind<int>("Chef - Ice Box", "Explosion Radius", 3, "Explosion radius of Ice Box projecitles in meters.");
			chefIceBoostDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Ice Box", "Boosted Damage", 1500f, "Base damage % for boosted Ice Box.");
			chefIceBoostProc = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Ice Box", "Boosted Proc Coefficient", 1f, "Proc coefficient for boosted Ice Box.");
			chefIceBoostAoe = ((BaseUnityPlugin)this).Config.Bind<int>("Chef - Ice Box", "Boosted Explosion Radius", 15, "Explosion radius of boosted Ice Box.");
			chefOilSpillDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Oil Spill", "Damage", 200f, "Base damage % for Oil Spill.");
			chefOilSpillProc = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Oil Spill", "Proc Coefficient", 1f, "Proc coefficient for Oil Spill.");
			chefGlazeDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Glaze", "Damage", 250f, "Base damage % for each Glaze projectile.");
			chefGlazeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Glaze", "Proc Coefficient", 1f, "Proc coefficient for each Glaze projectile.");
			chefYesChefDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Yes Chef", "Damage", 400f, "Base damage % for Yes Chef explosion.");
			chefYesChefProc = ((BaseUnityPlugin)this).Config.Bind<float>("Chef - Yes Chef", "Proc Coefficient", 0.33f, "Proc coefficient for Yes Chef explosion.");
			falseSonClubDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Club of the Forsaken", "Damage", 450f, "Base damage % for Club of the Forsaken.");
			falseSonOverheadClubDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Club of the Forsaken", "Overhead Swing Damage", 400f, "Base damage % for Club of the Forsaken Overhead Swing.");
			falseSonClubProc = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Club of the Forsaken", "Proc Coefficient", 1f, "Proc coefficient for Club of the Forsaken.");
			falseSonChargeClubDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Club of the Forsaken", "Charged Damage", 1000f, "Base damage % for Charged Club of the Forsaken.");
			falseSonChargeClubProc = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Club of the Forsaken", "Proc Coefficient", 1.5f, "Proc coefficient for Charged Club of the Forsaken.");
			falseSonSpikeDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Lunar Spikes", "Damage", 200f, "Base damage % for Lunar Spikes.");
			falseSonSpikeProc = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Lunar Spikes", "Proc Coefficient", 1f, "Proc coefficient for Lunar Spikes.");
			falseSonStakeDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Lunar Stakes", "Damage", 300f, "Base damage % for Lunar Stakes.");
			falseSonStakeProc = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Lunar Stakes", "Proc Coefficient", 1f, "Proc coefficient for Lunar Stakes.");
			falseSonStakeBoltDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Lunar Stakes", "Bolt Damage", 150f, "Base damage % for Lunar Stake Lightning Bolt.");
			falseSonStakeBoltProc = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Lunar Stakes", "Bolt Proc Coefficient", 1f, "Proc coefficient for Lunar Stake Lightning Bolt.");
			falseSonStakeBoltAoe = ((BaseUnityPlugin)this).Config.Bind<int>("False Son - Lunar Stakes", "Bolt AOE Radius", 6, "Area of effect radius in meters for Lunar Stake Lightning Bolt.");
			falseSonStepDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Step of the Brothers", "Damage", 200f, "Base damage % for Step of the Brothers.");
			falseSonStepProc = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Step of the Brothers", "Proc Coefficient", 0.5f, "Proc coefficient for Step of the Brothers.");
			falseSonMeridianDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Meridians Will", "Damage", 150f, "Base damage % for Meridian's Will.");
			falseSonMeridianAoe = ((BaseUnityPlugin)this).Config.Bind<int>("False Son - Meridians Will", "AOE Radius", 25, "Area of effect radius in meters for Meridian's Will.");
			falseSonMeridianPullAoe = ((BaseUnityPlugin)this).Config.Bind<int>("False Son - Meridians Will", "Pull Radius", 15, "Pull radius for Meridian's Will.");
			falseSonMeridianGrowthBase = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Meridians Will", "Growth Base", 4f, "Base growth multiplier for Meridian's Will.");
			falseSonMeridianGrowthIncrease = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Meridians Will", "Growth Increase", 0.33f, "Growth increase per stack for Meridian's Will.");
			falseSonFatherProc = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Laser of the Father", "Proc Coefficient", 0.45f, "Proc coefficient for Laser of the Father.");
			falseSonBurstDmg = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Laser Burst", "Damage", 1250f, "Base damage % for Laser Burst.");
			falseSonBurstProc = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Laser Burst", "Proc Coefficient", 1f, "Proc coefficient for Laser Burst.");
			falseSonBurstSpikeFill = ((BaseUnityPlugin)this).Config.Bind<float>("False Son - Laser Burst", "Spike Refill", 50f, "Percentage of Lunar Spikes refilled by Laser Burst.");
			FireSeekingArrow.CreateArrowOrb += new hook_CreateArrowOrb(FireSeekingArrow_CreateArrowOrb);
			FireFlurrySeekingArrow.CreateArrowOrb += new hook_CreateArrowOrb(FireFlurrySeekingArrow_CreateArrowOrb);
			FireArrowSnipe.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireArrowSnipe self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(huntBallistaDmg.Value, huntBallistaProc.Value, ((BaseState)self).damageStat, bulletAttack);
				orig.Invoke(self, bulletAttack);
			};
			Bandit2FireRifle.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, Bandit2FireRifle self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(bandBlastDmg.Value, bandBlastProc.Value, ((BaseState)self).damageStat, bulletAttack);
				orig.Invoke(self, bulletAttack);
			};
			FireShotgun2.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireShotgun2 self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(bandBurstDmg.Value, bandBurstProc.Value, ((BaseState)self).damageStat, bulletAttack);
				orig.Invoke(self, bulletAttack);
			};
			object obj = <>c.<>9__311_3;
			if (obj == null)
			{
				hook_AuthorityModifyOverlapAttack val = delegate(orig_AuthorityModifyOverlapAttack orig, SlashBlade self, OverlapAttack overlapAttack)
				{
					overlapAttack.damage = (float)bandDaggerDmg.Value / 100f * ((BaseState)self).damageStat;
					orig.Invoke(self, overlapAttack);
				};
				<>c.<>9__311_3 = val;
				obj = (object)val;
			}
			SlashBlade.AuthorityModifyOverlapAttack += (hook_AuthorityModifyOverlapAttack)obj;
			FireSidearmResetRevolver.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSidearmResetRevolver self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(bandLightsOutDmg.Value, bandLightsOutProc.Value, ((BaseState)self).damageStat, bulletAttack);
				orig.Invoke(self, bulletAttack);
			};
			FireSidearmSkullRevolver.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSidearmSkullRevolver self, BulletAttack bulletAttack)
			{
				orig.Invoke(self, bulletAttack);
				ApplyCustomBulletValues(bandDesperadoDmg.Value, bandDesperadoProc.Value, ((BaseState)self).damageStat, bulletAttack);
				int num2 = 0;
				if (Object.op_Implicit((Object)(object)((EntityState)self).characterBody))
				{
					num2 = ((EntityState)self).characterBody.GetBuffCount(Buffs.BanditSkull);
				}
				float num3 = 1f + (float)bandDesperadoBuff.Value / 100f * (float)num2;
				bulletAttack.damage *= num3;
			};
			object obj2 = <>c.<>9__311_6;
			if (obj2 == null)
			{
				hook_OnEnter val2 = delegate(orig_OnEnter orig, ToolbotDash self)
				{
					self.speedMultiplier = multTransportMoveSpd.Value / 100;
					orig.Invoke(self);
				};
				<>c.<>9__311_6 = val2;
				obj2 = (object)val2;
			}
			ToolbotDash.OnEnter += (hook_OnEnter)obj2;
			object obj3 = <>c.<>9__311_7;
			if (obj3 == null)
			{
				hook_OnEnter val3 = delegate(orig_OnEnter orig, Deployed self)
				{
					orig.Invoke(self);
					BeginRapidlyActivatingAndDeactivating component28 = ((EntityState)self).gameObject.GetComponent<BeginRapidlyActivatingAndDeactivating>();
					if (Object.op_Implicit((Object)(object)component28))
					{
						((Behaviour)component28).enabled = false;
					}
				};
				<>c.<>9__311_7 = val3;
				obj3 = (object)val3;
			}
			Deployed.OnEnter += (hook_OnEnter)obj3;
			FocusedAssaultDash.HandleHit += new hook_HandleHit(FocusedAssaultDash_HandleHit);
			object obj4 = <>c.<>9__311_8;
			if (obj4 == null)
			{
				hook_OnProjectileFiredLocal val4 = delegate(orig_OnProjectileFiredLocal orig, AimMortar2 self)
				{
					if (self.healthCostFraction != 0f)
					{
						self.healthCostFraction = (float)rexSeedSelf.Value / 100f;
					}
					orig.Invoke(self);
				};
				<>c.<>9__311_8 = val4;
				obj4 = (object)val4;
			}
			AimMortar2.OnProjectileFiredLocal += (hook_OnProjectileFiredLocal)obj4;
			object obj5 = <>c.<>9__311_9;
			if (obj5 == null)
			{
				hook_RootPulse val5 = delegate(orig_RootPulse orig, TreebotFlower2Projectile self)
				{
					self.procCoefficient = rexGrowthRootProc.Value;
					orig.Invoke(self);
				};
				<>c.<>9__311_9 = val5;
				obj5 = (object)val5;
			}
			TreebotFlower2Projectile.RootPulse += (hook_RootPulse)obj5;
			object obj6 = <>c.<>9__311_10;
			if (obj6 == null)
			{
				hook_AuthorityModifyOverlapAttack val6 = delegate(orig_AuthorityModifyOverlapAttack orig, SwingComboFist self, OverlapAttack overlapAttack)
				{
					overlapAttack.damage = (float)loaderKnuckleDmg.Value / 100f * ((BaseState)self).damageStat;
					overlapAttack.procCoefficient = loaderKnuckleProc.Value;
					orig.Invoke(self, overlapAttack);
				};
				<>c.<>9__311_10 = val6;
				obj6 = (object)val6;
			}
			SwingComboFist.AuthorityModifyOverlapAttack += (hook_AuthorityModifyOverlapAttack)obj6;
			FireCaptainShotgun.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireCaptainShotgun self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(captainShotgunDmg.Value, captainShotgunProc.Value, ((BaseState)self).damageStat, bulletAttack);
				orig.Invoke(self, bulletAttack);
			};
			FireSnipeHeavy.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSnipeHeavy self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(railgunnerM99Damage.Value, railgunnerM99Proc.Value, ((BaseState)self).damageStat, bulletAttack);
				orig.Invoke(self, bulletAttack);
			};
			FireSnipeLight.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSnipeLight self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(railgunnerHH44Damage.Value, railgunnerHH44Proc.Value, ((BaseState)self).damageStat, bulletAttack);
				orig.Invoke(self, bulletAttack);
			};
			FireSnipeSuper.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSnipeSuper self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(railgunnerSuperDamage.Value, railgunnerSuperProc.Value, ((BaseState)self).damageStat, bulletAttack);
				if (bulletAttack.isCrit)
				{
					((BaseFireSnipe)self).critDamageMultiplier = (float)railgunnerSuperCritMult.Value / 100f;
				}
				orig.Invoke(self, bulletAttack);
			};
			FireSnipeCryo.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSnipeCryo self, BulletAttack bulletAttack)
			{
				ApplyCustomBulletValues(railgunnerCryoDamage.Value, railgunnerCryoProc.Value, ((BaseState)self).damageStat, bulletAttack);
				orig.Invoke(self, bulletAttack);
			};
			object obj7 = <>c.<>9__311_16;
			if (obj7 == null)
			{
				hook_OnEnter val7 = delegate(orig_OnEnter orig, CrushBase self)
				{
					if (self is CrushCorruption)
					{
						self.selfHealFraction = (float)voidSuppressHeal.Value / 100f;
						self.corruptionChange = -voidSuppressCorruptCrushed.Value;
					}
					else if (self is CrushHealth)
					{
						self.selfHealFraction = 0f - (float)voidCorruptSuppressCrush.Value / 100f;
						self.corruptionChange = voidCorruptSuppressGain.Value;
					}
					orig.Invoke(self);
				};
				<>c.<>9__311_16 = val7;
				obj7 = (object)val7;
			}
			CrushBase.OnEnter += (hook_OnEnter)obj7;
			object obj8 = <>c.<>9__311_17;
			if (obj8 == null)
			{
				hook_OnEnter val8 = delegate(orig_OnEnter orig, SpiritPunch self)
				{
					self.dmgBuffIncrease = seekerInnerSpiritPunchThird.Value / 100f;
					orig.Invoke(self);
				};
				<>c.<>9__311_17 = val8;
				obj8 = (object)val8;
			}
			SpiritPunch.OnEnter += (hook_OnEnter)obj8;
			object obj9 = <>c.<>9__311_18;
			if (obj9 == null)
			{
				hook_OnEnter val9 = delegate(orig_OnEnter orig, Meditate self)
				{
					self.blastRadius = seekerMeditateAoE.Value;
					self.blastRadiusScaling = (float)seekerInnerMeditateRadius.Value - 1f;
					orig.Invoke(self);
				};
				<>c.<>9__311_18 = val9;
				obj9 = (object)val9;
			}
			Meditate.OnEnter += (hook_OnEnter)obj9;
			object obj10 = <>c.<>9__311_19;
			if (obj10 == null)
			{
				hook_OnEnter val10 = delegate(orig_OnEnter orig, Reprieve self)
				{
					self.barrierTranquilityGrowth = seekerInnerReprieveBarrier.Value / 100f;
					self.barrierOnReprieveEnter = seekerReprieveBarrier.Value / 100f;
					orig.Invoke(self);
				};
				<>c.<>9__311_19 = val10;
				obj10 = (object)val10;
			}
			Reprieve.OnEnter += (hook_OnEnter)obj10;
			SeekerController.CmdTriggerHealPulse += new hook_CmdTriggerHealPulse(SeekerController_CmdTriggerHealPulse);
			object obj11 = <>c.<>9__311_20;
			if (obj11 == null)
			{
				Manipulator val11 = delegate(ILContext il)
				{
					//IL_0001: Unknown result type (might be due to invalid IL or missing references)
					//IL_0007: Expected O, but got Unknown
					ILCursor val17 = new ILCursor(il);
					int num = 0;
					while (val17.TryGotoNext(new Func<Instruction, bool>[1]
					{
						(Instruction i) => ILPatternMatchingExt.MatchLdcR4(i, 0.04f)
					}))
					{
						val17.Next.Operand = chefKissHeal.Value / 2f / 100f;
						num++;
					}
					Log.Info($"Replaced {num} occurrences of 0.04f for Chefs Kiss");
				};
				<>c.<>9__311_20 = val11;
				obj11 = (object)val11;
			}
			GlobalEventManager.OnCharacterDeath += (Manipulator)obj11;
			object obj12 = <>c.<>9__311_21;
			if (obj12 == null)
			{
				hook_OnEnter val12 = delegate(orig_OnEnter orig, YesChef self)
				{
					self.explosionDamageCoefficient = chefYesChefDmg.Value;
					orig.Invoke(self);
				};
				<>c.<>9__311_21 = val12;
				obj12 = (object)val12;
			}
			YesChef.OnEnter += (hook_OnEnter)obj12;
			object obj13 = <>c.<>9__311_22;
			if (obj13 == null)
			{
				hook_OnEnter val13 = delegate(orig_OnEnter orig, MeridiansWillFire self)
				{
					self.damage = falseSonMeridianDmg.Value / 100f;
					self.forcePullRadius = falseSonMeridianPullAoe.Value;
					self.blastRadius = falseSonMeridianAoe.Value;
					self.coreBuffDuration = falseSonMeridianGrowthBase.Value;
					self.bonusDurationFromGrowth = falseSonMeridianGrowthIncrease.Value;
					orig.Invoke(self);
				};
				<>c.<>9__311_22 = val13;
				obj13 = (object)val13;
			}
			MeridiansWillFire.OnEnter += (hook_OnEnter)obj13;
			object obj14 = <>c.<>9__311_23;
			if (obj14 == null)
			{
				hook_OnEnter val14 = delegate(orig_OnEnter orig, LaserFatherBurstPrep self)
				{
					self.secondaryRefillPercentage = falseSonBurstSpikeFill.Value / 100f;
					orig.Invoke(self);
				};
				<>c.<>9__311_23 = val14;
				obj14 = (object)val14;
			}
			LaserFatherBurstPrep.OnEnter += (hook_OnEnter)obj14;
			BulletAttack.HandleBulletDamage += new Manipulator(BulletAttack_HandleBulletDamage);
			HealthComponent.Heal += new Manipulator(HealthComponent_Heal);
			BulletAttack.DefaultHitCallbackImplementation += new hook_DefaultHitCallbackImplementation(BulletAttack_DefaultHitCallbackImplementation);
			DotController.InitDotCatalog += new hook_InitDotCatalog(DotController_InitDotCatalog);
			DotController.AddDot_GameObject_float_HurtBox_DotIndex_float_Nullable1_Nullable1_Nullable1 += new Manipulator(IL_DotController_AddDot);
			DotController.AddDot_GameObject_float_HurtBox_DotIndex_float_Nullable1_Nullable1_Nullable1 += new hook_AddDot_GameObject_float_HurtBox_DotIndex_float_Nullable1_Nullable1_Nullable1(DotController_AddDot_GameObject_float_HurtBox_DotIndex_float_Nullable1_Nullable1_Nullable1);
			BlastAttack.PerformDamageServer += new hook_PerformDamageServer(BlastAttack_PerformDamageServer);
			OverlapAttack.PerformDamage += new hook_PerformDamage(OverlapAttack_PerformDamage);
			ProjectileManager.FireProjectileServer += new hook_FireProjectileServer(ProjectileManager_FireProjectileServer);
			try
			{
				RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate
				{
					//IL_0893: Unknown result type (might be due to invalid IL or missing references)
					//IL_0898: Unknown result type (might be due to invalid IL or missing references)
					//IL_08e0: Unknown result type (might be due to invalid IL or missing references)
					//IL_08e5: Unknown result type (might be due to invalid IL or missing references)
					//IL_09ba: Unknown result type (might be due to invalid IL or missing references)
					//IL_09bf: Unknown result type (might be due to invalid IL or missing references)
					//IL_09d4: Unknown result type (might be due to invalid IL or missing references)
					//IL_09e3: Unknown result type (might be due to invalid IL or missing references)
					//IL_0a01: Unknown result type (might be due to invalid IL or missing references)
					//IL_0a06: Unknown result type (might be due to invalid IL or missing references)
					//IL_0a5d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0a62: Unknown result type (might be due to invalid IL or missing references)
					//IL_0aa4: Unknown result type (might be due to invalid IL or missing references)
					//IL_0aa9: Unknown result type (might be due to invalid IL or missing references)
					//IL_0af2: Unknown result type (might be due to invalid IL or missing references)
					//IL_0af7: Unknown result type (might be due to invalid IL or missing references)
					//IL_0b2f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0b34: Unknown result type (might be due to invalid IL or missing references)
					//IL_0b76: Unknown result type (might be due to invalid IL or missing references)
					//IL_0b7b: Unknown result type (might be due to invalid IL or missing references)
					//IL_0bbc: Unknown result type (might be due to invalid IL or missing references)
					//IL_0bc1: Unknown result type (might be due to invalid IL or missing references)
					//IL_0bf3: Unknown result type (might be due to invalid IL or missing references)
					//IL_0bf8: Unknown result type (might be due to invalid IL or missing references)
					//IL_0c50: Unknown result type (might be due to invalid IL or missing references)
					//IL_0c55: Unknown result type (might be due to invalid IL or missing references)
					//IL_0c9c: Unknown result type (might be due to invalid IL or missing references)
					//IL_0ca1: Unknown result type (might be due to invalid IL or missing references)
					//IL_0ce8: Unknown result type (might be due to invalid IL or missing references)
					//IL_0ced: Unknown result type (might be due to invalid IL or missing references)
					//IL_0d0f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0d14: Unknown result type (might be due to invalid IL or missing references)
					//IL_0d62: Unknown result type (might be due to invalid IL or missing references)
					//IL_0d67: Unknown result type (might be due to invalid IL or missing references)
					//IL_0e02: Unknown result type (might be due to invalid IL or missing references)
					//IL_0e07: Unknown result type (might be due to invalid IL or missing references)
					//IL_0e4e: Unknown result type (might be due to invalid IL or missing references)
					//IL_0e53: Unknown result type (might be due to invalid IL or missing references)
					//IL_0e85: Unknown result type (might be due to invalid IL or missing references)
					//IL_0e8a: Unknown result type (might be due to invalid IL or missing references)
					//IL_0ed8: Unknown result type (might be due to invalid IL or missing references)
					//IL_0edd: Unknown result type (might be due to invalid IL or missing references)
					//IL_0f2f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0f3e: Unknown result type (might be due to invalid IL or missing references)
					//IL_0f5c: Unknown result type (might be due to invalid IL or missing references)
					//IL_0f61: Unknown result type (might be due to invalid IL or missing references)
					//IL_0fe4: Unknown result type (might be due to invalid IL or missing references)
					//IL_0fe9: Unknown result type (might be due to invalid IL or missing references)
					//IL_1022: Unknown result type (might be due to invalid IL or missing references)
					//IL_1027: Unknown result type (might be due to invalid IL or missing references)
					//IL_10d5: Unknown result type (might be due to invalid IL or missing references)
					//IL_10da: Unknown result type (might be due to invalid IL or missing references)
					//IL_110c: Unknown result type (might be due to invalid IL or missing references)
					//IL_1111: Unknown result type (might be due to invalid IL or missing references)
					//IL_114a: Unknown result type (might be due to invalid IL or missing references)
					//IL_114f: Unknown result type (might be due to invalid IL or missing references)
					//IL_1188: Unknown result type (might be due to invalid IL or missing references)
					//IL_118d: Unknown result type (might be due to invalid IL or missing references)
					//IL_11fd: Unknown result type (might be due to invalid IL or missing references)
					//IL_1202: Unknown result type (might be due to invalid IL or missing references)
					//IL_1234: Unknown result type (might be due to invalid IL or missing references)
					//IL_1239: Unknown result type (might be due to invalid IL or missing references)
					//IL_1283: Unknown result type (might be due to invalid IL or missing references)
					//IL_1288: Unknown result type (might be due to invalid IL or missing references)
					//IL_12d2: Unknown result type (might be due to invalid IL or missing references)
					//IL_12d7: Unknown result type (might be due to invalid IL or missing references)
					//IL_132e: Unknown result type (might be due to invalid IL or missing references)
					//IL_1333: Unknown result type (might be due to invalid IL or missing references)
					//IL_1365: Unknown result type (might be due to invalid IL or missing references)
					//IL_136a: Unknown result type (might be due to invalid IL or missing references)
					//IL_13b2: Unknown result type (might be due to invalid IL or missing references)
					//IL_13b7: Unknown result type (might be due to invalid IL or missing references)
					//IL_13c6: Unknown result type (might be due to invalid IL or missing references)
					//IL_13cb: Unknown result type (might be due to invalid IL or missing references)
					//IL_1440: Unknown result type (might be due to invalid IL or missing references)
					//IL_1445: Unknown result type (might be due to invalid IL or missing references)
					//IL_146d: Unknown result type (might be due to invalid IL or missing references)
					//IL_1472: Unknown result type (might be due to invalid IL or missing references)
					//IL_14a4: Unknown result type (might be due to invalid IL or missing references)
					//IL_14a9: Unknown result type (might be due to invalid IL or missing references)
					//IL_14cc: Unknown result type (might be due to invalid IL or missing references)
					//IL_14d1: Unknown result type (might be due to invalid IL or missing references)
					//IL_1503: Unknown result type (might be due to invalid IL or missing references)
					//IL_1508: Unknown result type (might be due to invalid IL or missing references)
					//IL_153a: Unknown result type (might be due to invalid IL or missing references)
					//IL_153f: Unknown result type (might be due to invalid IL or missing references)
					//IL_1571: Unknown result type (might be due to invalid IL or missing references)
					//IL_1576: Unknown result type (might be due to invalid IL or missing references)
					//IL_15a8: Unknown result type (might be due to invalid IL or missing references)
					//IL_15ad: Unknown result type (might be due to invalid IL or missing references)
					//IL_15f0: Unknown result type (might be due to invalid IL or missing references)
					//IL_15f5: Unknown result type (might be due to invalid IL or missing references)
					//IL_1658: Unknown result type (might be due to invalid IL or missing references)
					//IL_165d: Unknown result type (might be due to invalid IL or missing references)
					//IL_16c0: Unknown result type (might be due to invalid IL or missing referenc