Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of BossAdd v1.2.4
BepInEx/plugins/bossadd/bossadd.dll
Decompiled 2 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using JetBrains.Annotations; using Microsoft.CodeAnalysis; using UnityEngine; using UnityEngine.Rendering; using bossadd.Patches; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyVersion("0.0.0.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [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 bossadd { public static class BonemassConfig { public static ConfigEntry<bool> SplitEnabled { get; private set; } public static ConfigEntry<float> SplitHealthThreshold { get; private set; } public static ConfigEntry<string> SplitHPThresholdMessage { get; private set; } public static ConfigEntry<bool> KillConditionEnabled { get; private set; } public static ConfigEntry<bool> KillOrderEnabled { get; private set; } public static ConfigEntry<float> WrongOrderHealPercent { get; private set; } public static ConfigEntry<float> MiniLeashDistance { get; private set; } public static ConfigEntry<string> MiniSaveMessage { get; private set; } public static ConfigEntry<string> MiniSaveVFX { get; private set; } public static ConfigEntry<float> MiniSaveVFXScale { get; private set; } public static ConfigEntry<float> MiniDamageMult { get; private set; } public static ConfigEntry<float> MiniHPMult { get; private set; } public static ConfigEntry<float> MiniSpeedMult { get; private set; } public static ConfigEntry<float> MiniAttackRangeMult { get; private set; } public static ConfigEntry<float> MiniAttackIntervalMult { get; private set; } public static ConfigEntry<float> MiniAnimationSpeedMult { get; private set; } public static ConfigEntry<string> MiniResistBlunt { get; private set; } public static ConfigEntry<string> MiniResistSlash { get; private set; } public static ConfigEntry<string> MiniResistPierce { get; private set; } public static ConfigEntry<string> MiniResistFire { get; private set; } public static ConfigEntry<string> MiniResistFrost { get; private set; } public static ConfigEntry<string> MiniResistLightning { get; private set; } public static ConfigEntry<string> MiniResistPoison { get; private set; } public static ConfigEntry<string> MiniResistSpirit { get; private set; } public static ConfigEntry<bool> BonusSpawnEnabled { get; private set; } public static ConfigEntry<string> BonusSpawnPrefab { get; private set; } public static ConfigEntry<float> BonusSpawnChance { get; private set; } public static ConfigEntry<int> BonusSpawnCount { get; private set; } public static ConfigEntry<float> BonusSpawnHealthThreshold { get; private set; } public static ConfigEntry<string> BonusSpawnHPThresholdMessage { get; private set; } public static ConfigEntry<float> BonusSpawnMinDistanceFromBoss { get; private set; } public static ConfigEntry<float> ProjectileSpeedMult { get; private set; } public static ConfigEntry<float> ProjectileDamageBlunt { get; private set; } public static ConfigEntry<float> ProjectileHitRadius { get; private set; } public static ConfigEntry<float> ProjectileDamagePoison { get; private set; } public static ConfigEntry<bool> ProjectileStickyEnabled { get; private set; } public static ConfigEntry<string> ProjectileStickySourceEffect { get; private set; } public static ConfigEntry<string> ProjectileStickyDisplayName { get; private set; } public static ConfigEntry<float> ProjectileStickyDuration { get; private set; } public static ConfigEntry<float> ProjectilePushForceFallback { get; private set; } public static ConfigEntry<float> ProjectileSpawnOffsetDistance { get; private set; } public static ConfigEntry<float> ProjectileAimHeightOffset { get; private set; } public static ConfigEntry<bool> MiniInvulnerableEnabled { get; private set; } public static ConfigEntry<string> PhaseMessage { get; private set; } public static ConfigEntry<float> PhaseMessageHP { get; private set; } public static void Bind(ConfigFile cfg) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Expected O, but got Unknown //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Expected O, but got Unknown //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Expected O, but got Unknown //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Expected O, but got Unknown //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Expected O, but got Unknown //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Expected O, but got Unknown //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Expected O, but got Unknown //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Expected O, but got Unknown //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Expected O, but got Unknown //IL_0420: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Expected O, but got Unknown //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Expected O, but got Unknown //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Expected O, but got Unknown //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Expected O, but got Unknown //IL_057c: Unknown result type (might be due to invalid IL or missing references) //IL_0586: Expected O, but got Unknown //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_0636: Expected O, but got Unknown //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Expected O, but got Unknown //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c8: Expected O, but got Unknown //IL_0707: Unknown result type (might be due to invalid IL or missing references) //IL_0711: Expected O, but got Unknown //IL_0750: Unknown result type (might be due to invalid IL or missing references) //IL_075a: Expected O, but got Unknown //IL_0799: Unknown result type (might be due to invalid IL or missing references) //IL_07a3: Expected O, but got Unknown //IL_07e2: Unknown result type (might be due to invalid IL or missing references) //IL_07ec: Expected O, but got Unknown //IL_082b: Unknown result type (might be due to invalid IL or missing references) //IL_0835: Expected O, but got Unknown //IL_089d: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Expected O, but got Unknown //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Expected O, but got Unknown //IL_094b: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Expected O, but got Unknown //IL_09a2: Unknown result type (might be due to invalid IL or missing references) //IL_09ac: Expected O, but got Unknown //IL_09e7: Unknown result type (might be due to invalid IL or missing references) //IL_09f1: Expected O, but got Unknown //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0a3a: Expected O, but got Unknown //IL_0a79: Unknown result type (might be due to invalid IL or missing references) //IL_0a83: Expected O, but got Unknown //IL_0ad0: Unknown result type (might be due to invalid IL or missing references) //IL_0ada: Expected O, but got Unknown //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_0b31: Expected O, but got Unknown //IL_0b7e: Unknown result type (might be due to invalid IL or missing references) //IL_0b88: Expected O, but got Unknown //IL_0bd5: Unknown result type (might be due to invalid IL or missing references) //IL_0bdf: Expected O, but got Unknown //IL_0c35: Unknown result type (might be due to invalid IL or missing references) //IL_0c3f: Expected O, but got Unknown //IL_0c8c: Unknown result type (might be due to invalid IL or missing references) //IL_0c96: Expected O, but got Unknown //IL_0cd5: Unknown result type (might be due to invalid IL or missing references) //IL_0cdf: Expected O, but got Unknown //IL_0d1e: Unknown result type (might be due to invalid IL or missing references) //IL_0d28: Expected O, but got Unknown //IL_0d75: Unknown result type (might be due to invalid IL or missing references) //IL_0d7f: Expected O, but got Unknown //IL_0dc1: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Expected O, but got Unknown //IL_0e18: Unknown result type (might be due to invalid IL or missing references) //IL_0e22: Expected O, but got Unknown //IL_0e61: Unknown result type (might be due to invalid IL or missing references) //IL_0e6b: Expected O, but got Unknown //IL_0eb8: Unknown result type (might be due to invalid IL or missing references) //IL_0ec2: Expected O, but got Unknown SplitEnabled = cfg.Bind<bool>("Bonemass", "(Split Summon) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Bonemass.SplitSummon.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 9000 } })); SplitHealthThreshold = cfg.Bind<float>("Bonemass", "(Split Summon) HPThreshold", 50f, new ConfigDescription(LocalizationManager.Desc("Bonemass.SplitSummon.HPThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 99f), new object[1] { new ConfigurationManagerAttributes { Order = 8990 } })); SplitHPThresholdMessage = cfg.Bind<string>("Bonemass", "(Split Summon) HPThresholdMessage", "", new ConfigDescription(LocalizationManager.Desc("Bonemass.SplitSummon.HPThresholdMessage"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8985 } })); ConfigSectionDivider.Insert(cfg, "Bonemass", "(Divider) 1", 8985, 8000); KillConditionEnabled = cfg.Bind<bool>("Bonemass", "(Kill Condition) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Bonemass.KillCondition.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8000 } })); KillOrderEnabled = cfg.Bind<bool>("Bonemass", "(Kill Condition) OrderEnabled", true, new ConfigDescription(LocalizationManager.Desc("Bonemass.KillCondition.OrderEnabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7990 } })); WrongOrderHealPercent = cfg.Bind<float>("Bonemass", "(Kill Condition) WrongOrderHeal", 20f, new ConfigDescription(LocalizationManager.Desc("Bonemass.KillCondition.WrongOrderHeal"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 50f), new object[1] { new ConfigurationManagerAttributes { Order = 7980 } })); MiniSaveMessage = cfg.Bind<string>("Bonemass", "(Kill Condition) MiniSaveMessage", "", new ConfigDescription(LocalizationManager.Desc("Bonemass.KillCondition.MiniSaveMessage"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7975 } })); MiniSaveVFX = cfg.Bind<string>("Bonemass", "(Kill Condition) MiniSaveVFX", "vfx_BombBlob_explode_poison", new ConfigDescription(LocalizationManager.Desc("Bonemass.KillCondition.MiniSaveVFX"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7973 } })); MiniSaveVFXScale = cfg.Bind<float>("Bonemass", "(Kill Condition) MiniSaveVFXScale", 2f, new ConfigDescription(LocalizationManager.Desc("Bonemass.KillCondition.MiniSaveVFXScale"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 10f), new object[1] { new ConfigurationManagerAttributes { Order = 7972 } })); MiniInvulnerableEnabled = cfg.Bind<bool>("Bonemass", "(Kill Condition) MiniInvulnerable", true, new ConfigDescription(LocalizationManager.Desc("Bonemass.KillCondition.MiniInvulnerable"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7970 } })); MiniLeashDistance = cfg.Bind<float>("Bonemass", "(Kill Condition) MiniLeashDistance", 50f, new ConfigDescription(LocalizationManager.Desc("Bonemass.KillCondition.MiniLeashDistance"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(10f, 200f), new object[1] { new ConfigurationManagerAttributes { Order = 7960 } })); ConfigSectionDivider.Insert(cfg, "Bonemass", "(Divider) 2", 7960, 7000); MiniDamageMult = cfg.Bind<float>("Bonemass", "(Mini Stat) DamageMult", 0.5f, new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniStat.DamageMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 7000 } })); MiniHPMult = cfg.Bind<float>("Bonemass", "(Mini Stat) HPMult", 0.3f, new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniStat.HPMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.05f, 1f), new object[1] { new ConfigurationManagerAttributes { Order = 6990 } })); MiniSpeedMult = cfg.Bind<float>("Bonemass", "(Mini Stat) SpeedMult", 1.6f, new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniStat.SpeedMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { new ConfigurationManagerAttributes { Order = 6980 } })); MiniAttackRangeMult = cfg.Bind<float>("Bonemass", "(Mini Stat) AttackRangeMult", 0.35f, new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniStat.AttackRangeMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 1f), new object[1] { new ConfigurationManagerAttributes { Order = 6970 } })); MiniAttackIntervalMult = cfg.Bind<float>("Bonemass", "(Mini Stat) AttackIntervalMult", 1f, new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniStat.AttackIntervalMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.3f, 3f), new object[1] { new ConfigurationManagerAttributes { Order = 6960 } })); MiniAnimationSpeedMult = cfg.Bind<float>("Bonemass", "(Mini Stat) AnimationSpeedMult", 1.6f, new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniStat.AnimationSpeedMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 3f), new object[1] { new ConfigurationManagerAttributes { Order = 6950 } })); ConfigSectionDivider.Insert(cfg, "Bonemass", "(Divider) 3", 6950, 6000); AcceptableValueList<string> val = new AcceptableValueList<string>(new string[8] { "Inherit", "Normal", "Resistant", "VeryResistant", "Weak", "VeryWeak", "Immune", "Ignore" }); MiniResistBlunt = cfg.Bind<string>("Bonemass", "(Mini Resist) Blunt", "Inherit", new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniResist.Blunt"), (AcceptableValueBase)(object)val, new object[1] { new ConfigurationManagerAttributes { Order = 6000 } })); MiniResistSlash = cfg.Bind<string>("Bonemass", "(Mini Resist) Slash", "Inherit", new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniResist.Slash"), (AcceptableValueBase)(object)val, new object[1] { new ConfigurationManagerAttributes { Order = 5990 } })); MiniResistPierce = cfg.Bind<string>("Bonemass", "(Mini Resist) Pierce", "Inherit", new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniResist.Pierce"), (AcceptableValueBase)(object)val, new object[1] { new ConfigurationManagerAttributes { Order = 5980 } })); MiniResistFire = cfg.Bind<string>("Bonemass", "(Mini Resist) Fire", "Inherit", new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniResist.Fire"), (AcceptableValueBase)(object)val, new object[1] { new ConfigurationManagerAttributes { Order = 5970 } })); MiniResistFrost = cfg.Bind<string>("Bonemass", "(Mini Resist) Frost", "Inherit", new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniResist.Frost"), (AcceptableValueBase)(object)val, new object[1] { new ConfigurationManagerAttributes { Order = 5960 } })); MiniResistLightning = cfg.Bind<string>("Bonemass", "(Mini Resist) Lightning", "Inherit", new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniResist.Lightning"), (AcceptableValueBase)(object)val, new object[1] { new ConfigurationManagerAttributes { Order = 5950 } })); MiniResistPoison = cfg.Bind<string>("Bonemass", "(Mini Resist) Poison", "Inherit", new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniResist.Poison"), (AcceptableValueBase)(object)val, new object[1] { new ConfigurationManagerAttributes { Order = 5940 } })); MiniResistSpirit = cfg.Bind<string>("Bonemass", "(Mini Resist) Spirit", "Inherit", new ConfigDescription(LocalizationManager.Desc("Bonemass.MiniResist.Spirit"), (AcceptableValueBase)(object)val, new object[1] { new ConfigurationManagerAttributes { Order = 5930 } })); ConfigSectionDivider.Insert(cfg, "Bonemass", "(Divider) 4", 5930, 5000); ProjectileSpeedMult = cfg.Bind<float>("Bonemass", "(Throw Projectile) SpeedMult", 5f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.SpeedMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 5000 } })); ProjectileDamageBlunt = cfg.Bind<float>("Bonemass", "(Throw Projectile) DamageBlunt", 20f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.DamageBlunt"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 200f), new object[1] { new ConfigurationManagerAttributes { Order = 4990 } })); ProjectileHitRadius = cfg.Bind<float>("Bonemass", "(Throw Projectile) HitRadius", 2f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.HitRadius"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 3f), new object[1] { new ConfigurationManagerAttributes { Order = 4980 } })); ProjectileDamagePoison = cfg.Bind<float>("Bonemass", "(Throw Projectile) DamagePoison", 30f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.DamagePoison"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 200f), new object[1] { new ConfigurationManagerAttributes { Order = 4970 } })); ProjectileStickyEnabled = cfg.Bind<bool>("Bonemass", "(Throw Projectile) StickyEnabled", true, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.StickyEnabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 4960 } })); ProjectileStickySourceEffect = cfg.Bind<string>("Bonemass", "(Throw Projectile) StickySourceEffect", "Tared", new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.StickySourceEffect"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 4950 } })); ProjectileStickyDisplayName = cfg.Bind<string>("Bonemass", "(Throw Projectile) StickyDisplayName", "오물투성이", new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.StickyDisplayName"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 4940 } })); ProjectileStickyDuration = cfg.Bind<float>("Bonemass", "(Throw Projectile) StickyDuration", 10f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.StickyDuration"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 30f), new object[1] { new ConfigurationManagerAttributes { Order = 4930 } })); ProjectilePushForceFallback = cfg.Bind<float>("Bonemass", "(Throw Projectile) PushForceFallback", 25f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.PushForceFallback"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 200f), new object[1] { new ConfigurationManagerAttributes { Order = 4920 } })); ProjectileSpawnOffsetDistance = cfg.Bind<float>("Bonemass", "(Throw Projectile) SpawnOffsetDistance", 5f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.SpawnOffsetDistance"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 15f), new object[1] { new ConfigurationManagerAttributes { Order = 4910 } })); ProjectileAimHeightOffset = cfg.Bind<float>("Bonemass", "(Throw Projectile) AimHeightOffset", 2.5f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowProjectile.AimHeightOffset"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 6f), new object[1] { new ConfigurationManagerAttributes { Order = 4905 } })); ConfigSectionDivider.Insert(cfg, "Bonemass", "(Divider) 5", 4905, 4000); BonusSpawnEnabled = cfg.Bind<bool>("Bonemass", "(Throw Summon) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowSummon.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 4000 } })); BonusSpawnHealthThreshold = cfg.Bind<float>("Bonemass", "(Throw Summon) HPThreshold", 80f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowSummon.HPThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 3995 } })); BonusSpawnHPThresholdMessage = cfg.Bind<string>("Bonemass", "(Throw Summon) HPThresholdMessage", "", new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowSummon.HPThresholdMessage"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 3990 } })); BonusSpawnPrefab = cfg.Bind<string>("Bonemass", "(Throw Summon) Prefab", "Draugr_Ranged", new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowSummon.Prefab"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 3985 } })); BonusSpawnChance = cfg.Bind<float>("Bonemass", "(Throw Summon) Chance", 100f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowSummon.Chance"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 3980 } })); BonusSpawnCount = cfg.Bind<int>("Bonemass", "(Throw Summon) Count", 3, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowSummon.Count"), (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), new object[1] { new ConfigurationManagerAttributes { Order = 3975 } })); BonusSpawnMinDistanceFromBoss = cfg.Bind<float>("Bonemass", "(Throw Summon) MinDistanceFromBoss", 8f, new ConfigDescription(LocalizationManager.Desc("Bonemass.ThrowSummon.MinDistanceFromBoss"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 30f), new object[1] { new ConfigurationManagerAttributes { Order = 3970 } })); PhaseMessage = cfg.Bind<string>("Bonemass", "(Phase) Message", "", new ConfigDescription(LocalizationManager.Desc("Bonemass.Phase.Message"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 2000 } })); PhaseMessageHP = cfg.Bind<float>("Bonemass", "(Phase) MessageHP", 50f, new ConfigDescription(LocalizationManager.Desc("Bonemass.Phase.MessageHP"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 1990 } })); } } internal static class MiniBonemassVariants { public const int Count = 5; public static readonly string[] Names = new string[5] { "MiniBonemass_Red", "MiniBonemass_Orange", "MiniBonemass_Yellow", "MiniBonemass_Green", "MiniBonemass_Blue" }; public static readonly string[] KoreanNames = new string[5] { "빨강", "주황", "노랑", "초록", "파랑" }; public static readonly Color[] Colors = (Color[])(object)new Color[5] { new Color(1f, 0.05f, 0.05f), new Color(1f, 0.45f, 0f), new Color(1f, 1f, 0f), new Color(0f, 0.9f, 0.8f), new Color(0.05f, 0.3f, 1f) }; public static bool IsMini(string prefabName) { return prefabName?.StartsWith("MiniBonemass_") ?? false; } public static int IndexOf(string prefabName) { for (int i = 0; i < Names.Length; i++) { if (Names[i] == prefabName) { return i; } } return -1; } } internal static class MonsterDB { private static readonly FieldInfo s_namedPrefabsField = AccessTools.Field(typeof(ZNetScene), "m_namedPrefabs"); private static readonly GameObject[] s_variants = (GameObject[])(object)new GameObject[5]; private static readonly Dictionary<GameObject, GameObject> s_weaponCloneCache = new Dictionary<GameObject, GameObject>(); private static GameObject s_templateHolder; private static bool s_itemsLogged = false; private static readonly FieldInfo s_attackRangeField = AccessTools.Field(typeof(Attack), "m_attackRange"); private static readonly List<GameObject> s_pendingObjectDBItems = new List<GameObject>(); private static readonly MethodInfo s_updateRegistersMethod = AccessTools.Method(typeof(ObjectDB), "UpdateRegisters", (Type[])null, (Type[])null); private static void EnsureTemplateHolder() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown if (!((Object)(object)s_templateHolder != (Object)null)) { s_templateHolder = new GameObject("MiniBonemassTemplateHolder"); s_templateHolder.SetActive(false); Object.DontDestroyOnLoad((Object)(object)s_templateHolder); } } [HarmonyPostfix] public static void Postfix(ZNetScene __instance) { if (!(s_namedPrefabsField.GetValue(__instance) is Dictionary<int, GameObject> namedPrefabs)) { Plugin.Log.LogError((object)"[MonsterDB] m_namedPrefabs 접근 실패"); return; } for (int i = 0; i < 5; i++) { RegisterVariant(__instance, namedPrefabs, i); } } private static void RegisterVariant(ZNetScene zns, Dictionary<int, GameObject> namedPrefabs, int idx) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) string text = MiniBonemassVariants.Names[idx]; Color tint = MiniBonemassVariants.Colors[idx]; if ((Object)(object)zns.GetPrefab(text) != (Object)null) { return; } if ((Object)(object)s_variants[idx] != (Object)null) { zns.m_prefabs.Add(s_variants[idx]); namedPrefabs[StringExtensionMethods.GetStableHashCode(text)] = s_variants[idx]; Plugin.Log.LogInfo((object)("[MonsterDB] " + text + " 재등록")); return; } GameObject prefab = zns.GetPrefab("Bonemass"); if ((Object)(object)prefab == (Object)null) { Plugin.Log.LogError((object)("[MonsterDB] Bonemass 프리팹 없음 — " + text + " 등록 실패")); return; } LogBonemassAttackItems(prefab); bool activeSelf = prefab.activeSelf; prefab.SetActive(false); GameObject val = Object.Instantiate<GameObject>(prefab); prefab.SetActive(activeSelf); ((Object)val).name = text; Object.DontDestroyOnLoad((Object)(object)val); EnsureTemplateHolder(); val.transform.SetParent(s_templateHolder.transform, false); val.SetActive(true); Character component = prefab.GetComponent<Character>(); Character component2 = val.GetComponent<Character>(); if ((Object)(object)component2 != (Object)null) { component2.m_boss = false; component2.m_bossEvent = ""; component2.m_runSpeed *= BonemassConfig.MiniSpeedMult.Value; component2.m_walkSpeed *= BonemassConfig.MiniSpeedMult.Value; component2.m_swimSpeed *= BonemassConfig.MiniSpeedMult.Value; component2.m_acceleration *= BonemassConfig.MiniSpeedMult.Value; if ((Object)(object)component != (Object)null) { component2.m_health = Mathf.Max(component.m_health * BonemassConfig.MiniHPMult.Value, 1f); } } if ((Object)(object)component2 != (Object)null) { DamageModifiers damageModifiers = component2.m_damageModifiers; damageModifiers.m_blunt = ParseModifier(BonemassConfig.MiniResistBlunt.Value, damageModifiers.m_blunt); damageModifiers.m_slash = ParseModifier(BonemassConfig.MiniResistSlash.Value, damageModifiers.m_slash); damageModifiers.m_pierce = ParseModifier(BonemassConfig.MiniResistPierce.Value, damageModifiers.m_pierce); damageModifiers.m_fire = ParseModifier(BonemassConfig.MiniResistFire.Value, damageModifiers.m_fire); damageModifiers.m_frost = ParseModifier(BonemassConfig.MiniResistFrost.Value, damageModifiers.m_frost); damageModifiers.m_lightning = ParseModifier(BonemassConfig.MiniResistLightning.Value, damageModifiers.m_lightning); damageModifiers.m_poison = ParseModifier(BonemassConfig.MiniResistPoison.Value, damageModifiers.m_poison); damageModifiers.m_spirit = ParseModifier(BonemassConfig.MiniResistSpirit.Value, damageModifiers.m_spirit); component2.m_damageModifiers = damageModifiers; } RemoveNonMeleeAttackItems(val); ZNetView component3 = val.GetComponent<ZNetView>(); if ((Object)(object)component3 != (Object)null) { component3.m_persistent = false; } MonsterAI component4 = val.GetComponent<MonsterAI>(); if ((Object)(object)component4 != (Object)null && BonemassConfig.MiniAttackIntervalMult.Value != 1f) { component4.m_minAttackInterval *= BonemassConfig.MiniAttackIntervalMult.Value; } CharacterDrop component5 = val.GetComponent<CharacterDrop>(); if ((Object)(object)component5 != (Object)null) { component5.m_drops.Clear(); } ApplyTint(val, tint); val.transform.localScale = Vector3.one * 0.3f; zns.m_prefabs.Add(val); namedPrefabs[StringExtensionMethods.GetStableHashCode(text)] = val; s_variants[idx] = val; } private static void LogBonemassAttackItems(GameObject original) { if (!s_itemsLogged) { s_itemsLogged = true; if ((Object)(object)original.GetComponent<Humanoid>() == (Object)null) { Plugin.Log.LogWarning((object)"[MonsterDB:진단] Bonemass에 Humanoid 컴포넌트 없음 — m_defaultItems 기반 접근 불가, 다른 방식 필요"); } } } private static void RemoveNonMeleeAttackItems(GameObject mini) { Humanoid component = mini.GetComponent<Humanoid>(); if (!((Object)(object)component == (Object)null)) { float rangeMult = BonemassConfig.MiniAttackRangeMult.Value; float intervalMult = BonemassConfig.MiniAttackIntervalMult.Value; component.m_defaultItems = (from go in FilterMeleeOnly(component.m_defaultItems) select CreateMiniExclusiveWeapon(go, rangeMult, intervalMult)).ToArray(); component.m_randomWeapon = (from go in FilterMeleeOnly(component.m_randomWeapon) select CreateMiniExclusiveWeapon(go, rangeMult, intervalMult)).ToArray(); } } private static GameObject CreateMiniExclusiveWeapon(GameObject weaponPrefab, float rangeMult, float intervalMult) { if ((Object)(object)weaponPrefab == (Object)null) { return weaponPrefab; } if (s_weaponCloneCache.TryGetValue(weaponPrefab, out var value)) { return value; } ItemDrop component = weaponPrefab.GetComponent<ItemDrop>(); if (component?.m_itemData?.m_shared == null) { return weaponPrefab; } bool activeSelf = weaponPrefab.activeSelf; weaponPrefab.SetActive(false); GameObject val = Object.Instantiate<GameObject>(weaponPrefab); weaponPrefab.SetActive(activeSelf); ((Object)val).name = ((Object)weaponPrefab).name + "_MiniBonemass"; Object.DontDestroyOnLoad((Object)(object)val); val.SetActive(false); ItemDrop component2 = val.GetComponent<ItemDrop>(); SharedData shared = component2.m_itemData.m_shared; if (shared == component.m_itemData.m_shared) { Plugin.Log.LogWarning((object)("[MonsterDB:진단] " + ((Object)val).name + " SharedData가 원본과 공유 중 — 독립 복제 실패, 별도 조치 필요")); } shared.m_aiAttackRange *= rangeMult; if (shared.m_aiAttackRangeMin > 0f) { shared.m_aiAttackRangeMin *= rangeMult; } ScaleAttackRange(shared.m_attack, rangeMult); ScaleAttackRange(shared.m_secondaryAttack, rangeMult); shared.m_aiAttackInterval *= intervalMult; RegisterInObjectDB(val); Plugin.Log.LogInfo((object)("[MonsterDB] MiniBonemass 전용 무기 생성: " + ((Object)val).name + " — " + $"aiAttackRange={shared.m_aiAttackRange:F2} attackRange={GetAttackRange(shared.m_attack):F2} " + "secondaryAttackRange=" + ((shared.m_secondaryAttack != null) ? GetAttackRange(shared.m_secondaryAttack).ToString("F2") : "N/A") + " " + $"aiAttackInterval={shared.m_aiAttackInterval:F2} (rangeMult {rangeMult:F2} / intervalMult {intervalMult:F2})")); s_weaponCloneCache[weaponPrefab] = val; return val; } private static void ScaleAttackRange(Attack attack, float mult) { if (attack != null && !(s_attackRangeField == null)) { float num = (float)(s_attackRangeField.GetValue(attack) ?? ((object)0f)); s_attackRangeField.SetValue(attack, num * mult); } } private static float GetAttackRange(Attack attack) { if (attack == null || s_attackRangeField == null) { return 0f; } return (float)(s_attackRangeField.GetValue(attack) ?? ((object)0f)); } private static void RegisterInObjectDB(GameObject itemPrefab) { if (!s_pendingObjectDBItems.Contains(itemPrefab)) { s_pendingObjectDBItems.Add(itemPrefab); } TryFlushPendingObjectDBItems(); } internal static void TryFlushPendingObjectDBItems() { if ((Object)(object)ObjectDB.instance == (Object)null) { return; } bool flag = false; List<GameObject> list = new List<GameObject>(); foreach (GameObject item in s_pendingObjectDBItems) { if (!((Object)(object)item == (Object)null) && !ObjectDB.instance.m_items.Contains(item)) { if (ObjectDB.instance.m_items.Exists((GameObject existing) => (Object)(object)existing != (Object)null && ((Object)existing).name == ((Object)item).name)) { Plugin.Log.LogWarning((object)("[MonsterDB] ObjectDB 등록 스킵(이름 중복): " + ((Object)item).name)); continue; } ObjectDB.instance.m_items.Add(item); flag = true; list.Add(item); } } if (!flag) { return; } try { s_updateRegistersMethod?.Invoke(ObjectDB.instance, null); } catch (Exception ex) { Plugin.Log.LogError((object)("[MonsterDB:진단] UpdateRegisters() 호출 중 예외 — " + ex.GetType().Name + ": " + ex.Message + " (내부: " + ex.InnerException?.GetType().Name + ": " + ex.InnerException?.Message + ")")); return; } foreach (GameObject item2 in list) { GameObject itemPrefab = ObjectDB.instance.GetItemPrefab(((Object)item2).name); if ((Object)(object)itemPrefab != (Object)(object)item2) { Plugin.Log.LogWarning((object)("[MonsterDB] ObjectDB 등록 후 조회 검증 실패: " + ((Object)item2).name + " — " + (((Object)(object)itemPrefab == (Object)null) ? "못찾음" : "다른 객체가 조회됨"))); } } } private static GameObject[] FilterMeleeOnly(GameObject[] arr) { if (arr == null || arr.Length == 0) { return arr; } return arr.Where(delegate(GameObject go) { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Invalid comparison between Unknown and I4 //IL_0086: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)go == (Object)null) { return true; } Attack val = go.GetComponent<ItemDrop>()?.m_itemData?.m_shared?.m_attack; if (val == null) { return true; } bool flag = (int)val.m_attackType == 0 || (int)val.m_attackType == 1; if (!flag) { Plugin.Log.LogInfo((object)("[MonsterDB] MiniBonemass 근접외 공격 제거: " + ((Object)go).name + " " + $"(attackType={val.m_attackType})")); } return flag; }).ToArray(); } private static DamageModifier ParseModifier(string value, DamageModifier original) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) if (string.IsNullOrEmpty(value) || value == "Inherit") { return original; } if (Enum.TryParse<DamageModifier>(value, out DamageModifier result)) { return result; } Plugin.Log.LogWarning((object)("[MonsterDB] 알 수 없는 저항값 '" + value + "' → Inherit 처리")); return original; } internal static void ApplyTint(GameObject go, Color tint) { //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) Renderer[] componentsInChildren = go.GetComponentsInChildren<Renderer>(true); foreach (Renderer val in componentsInChildren) { if (val is ParticleSystemRenderer) { continue; } Material[] sharedMaterials = val.sharedMaterials; bool flag = false; for (int j = 0; j < sharedMaterials.Length; j++) { if (!((Object)(object)sharedMaterials[j] == (Object)null)) { Material val2 = new Material(sharedMaterials[j]); if (val2.HasProperty("_Color")) { Color color = val2.color; val2.color = new Color(tint.r, tint.g, tint.b, color.a); } if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", tint * 15f); } if (val2.HasProperty("_TintColor")) { val2.SetColor("_TintColor", new Color(tint.r, tint.g, tint.b, 0.5f)); } sharedMaterials[j] = val2; flag = true; } } if (flag) { val.sharedMaterials = sharedMaterials; } } ParticleSystem[] componentsInChildren2 = go.GetComponentsInChildren<ParticleSystem>(true); foreach (ParticleSystem val3 in componentsInChildren2) { MainModule main = val3.main; EmissionModule emission = val3.emission; ((EmissionModule)(ref emission)).rateOverTimeMultiplier = ((EmissionModule)(ref emission)).rateOverTimeMultiplier * 0.1f; ((EmissionModule)(ref emission)).rateOverDistanceMultiplier = ((EmissionModule)(ref emission)).rateOverDistanceMultiplier * 0.1f; ((MainModule)(ref main)).startSizeMultiplier = ((MainModule)(ref main)).startSizeMultiplier * 0.35f; MinMaxGradient startColor = ((MainModule)(ref main)).startColor; Color color2 = ((MinMaxGradient)(ref startColor)).color; ((MainModule)(ref main)).startColor = new MinMaxGradient(new Color(tint.r, tint.g, tint.b, color2.a * 0.06f)); } } } [HarmonyPatch] internal static class MonsterDBObjectDBRegisterPatch { [HarmonyTargetMethods] private static IEnumerable<MethodBase> TargetMethods() { yield return AccessTools.Method(typeof(ObjectDB), "Awake", (Type[])null, (Type[])null); yield return AccessTools.Method(typeof(ObjectDB), "CopyOtherDB", (Type[])null, (Type[])null); } [HarmonyPostfix] public static void Postfix() { MonsterDB.TryFlushPendingObjectDBItems(); } } public static class EikthyrSummonConfig { public static ConfigEntry<bool> Enabled { get; private set; } public static ConfigEntry<SummonTriggerMode> TriggerMode { get; private set; } public static ConfigEntry<int> HealthStepCount { get; private set; } public static ConfigEntry<float> TimerInterval { get; private set; } public static ConfigEntry<string> SummonPrefab { get; private set; } public static ConfigEntry<int> SummonCount { get; private set; } public static ConfigEntry<int> SummonLevel { get; private set; } public static ConfigEntry<int> MaxTotalSummons { get; private set; } public static ConfigEntry<bool> UseCLLC { get; private set; } public static ConfigEntry<bool> SpecialSummonEnabled { get; private set; } public static ConfigEntry<float> SpecialSummonHealthThreshold { get; private set; } public static ConfigEntry<string> SpecialSummonHPThresholdMessage { get; private set; } public static ConfigEntry<string> SpecialSummonPrefab { get; private set; } public static ConfigEntry<int> SpecialSummonCount { get; private set; } public static ConfigEntry<int> SpecialSummonLevel { get; private set; } public static ConfigEntry<float> SpawnRadius { get; private set; } public static ConfigEntry<float> SpawnDelay { get; private set; } public static ConfigEntry<float> SpecialSummonVfxScale { get; private set; } public static ConfigEntry<bool> HornGlowEnabled { get; private set; } public static ConfigEntry<string> HornGlowColor { get; private set; } public static ConfigEntry<float> HornGlowIntensity { get; private set; } public static ConfigEntry<bool> BodyLightningEnabled { get; private set; } public static ConfigEntry<float> BodyLightningScale { get; private set; } public static ConfigEntry<float> BodyLightningSpread { get; private set; } public static ConfigEntry<bool> TransformEnabled { get; private set; } public static ConfigEntry<float> TransformScale { get; private set; } public static ConfigEntry<bool> Phase2Enabled { get; private set; } public static ConfigEntry<float> Phase2HealthThreshold { get; private set; } public static ConfigEntry<string> Phase2HPThresholdMessage { get; private set; } public static ConfigEntry<string> StompAnimName { get; private set; } public static ConfigEntry<float> LightningProcChance { get; private set; } public static ConfigEntry<int> LightningCount { get; private set; } public static ConfigEntry<float> LightningDamageBlunt { get; private set; } public static ConfigEntry<float> LightningDamageSlash { get; private set; } public static ConfigEntry<float> LightningDamagePierce { get; private set; } public static ConfigEntry<float> LightningDamageLightning { get; private set; } public static ConfigEntry<float> LightningPushForce { get; private set; } public static ConfigEntry<float> LightningStartDelay { get; private set; } public static ConfigEntry<float> LightningSafeZoneRadius { get; private set; } public static ConfigEntry<float> LightningDotDuration { get; private set; } public static ConfigEntry<float> LightningDotMinDamage { get; private set; } public static ConfigEntry<float> LightningDotMaxDamage { get; private set; } public static ConfigEntry<bool> HornLaunchEnabled { get; private set; } public static ConfigEntry<float> HornLaunchHealthThreshold { get; private set; } public static ConfigEntry<string> HornLaunchAnimName { get; private set; } public static ConfigEntry<float> HornLaunchHorizontalForce { get; private set; } public static ConfigEntry<float> HornLaunchVerticalForce { get; private set; } public static ConfigEntry<float> HornLaunchProcChance { get; private set; } public static ConfigEntry<bool> HornLaunchAffectsBlocking { get; private set; } public static ConfigEntry<string> HornLaunchHPThresholdMessage { get; private set; } public static ConfigEntry<string> PhaseMessage { get; private set; } public static ConfigEntry<float> PhaseMessageHP { get; private set; } public static void Bind(ConfigFile cfg) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Expected O, but got Unknown //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Expected O, but got Unknown //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Expected O, but got Unknown //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Expected O, but got Unknown //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Expected O, but got Unknown //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Expected O, but got Unknown //IL_034e: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Expected O, but got Unknown //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Expected O, but got Unknown //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_040f: Expected O, but got Unknown //IL_044e: Unknown result type (might be due to invalid IL or missing references) //IL_0458: Expected O, but got Unknown //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Expected O, but got Unknown //IL_04ea: Unknown result type (might be due to invalid IL or missing references) //IL_04f4: Expected O, but got Unknown //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Expected O, but got Unknown //IL_058a: Unknown result type (might be due to invalid IL or missing references) //IL_0594: Expected O, but got Unknown //IL_05e1: Unknown result type (might be due to invalid IL or missing references) //IL_05eb: Expected O, but got Unknown //IL_062d: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Expected O, but got Unknown //IL_0684: Unknown result type (might be due to invalid IL or missing references) //IL_068e: Expected O, but got Unknown //IL_06db: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Expected O, but got Unknown //IL_0732: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Expected O, but got Unknown //IL_0789: Unknown result type (might be due to invalid IL or missing references) //IL_0793: Expected O, but got Unknown //IL_07e0: Unknown result type (might be due to invalid IL or missing references) //IL_07ea: Expected O, but got Unknown //IL_0837: Unknown result type (might be due to invalid IL or missing references) //IL_0841: Expected O, but got Unknown //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_0898: Expected O, but got Unknown //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08ef: Expected O, but got Unknown //IL_093c: Unknown result type (might be due to invalid IL or missing references) //IL_0946: Expected O, but got Unknown //IL_0993: Unknown result type (might be due to invalid IL or missing references) //IL_099d: Expected O, but got Unknown //IL_09f3: Unknown result type (might be due to invalid IL or missing references) //IL_09fd: Expected O, but got Unknown //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) //IL_0a54: Expected O, but got Unknown //IL_0aaa: Unknown result type (might be due to invalid IL or missing references) //IL_0ab4: Expected O, but got Unknown //IL_0aef: Unknown result type (might be due to invalid IL or missing references) //IL_0af9: Expected O, but got Unknown //IL_0b3c: Unknown result type (might be due to invalid IL or missing references) //IL_0b46: Expected O, but got Unknown //IL_0b93: Unknown result type (might be due to invalid IL or missing references) //IL_0b9d: Expected O, but got Unknown //IL_0bdc: Unknown result type (might be due to invalid IL or missing references) //IL_0be6: Expected O, but got Unknown //IL_0c28: Unknown result type (might be due to invalid IL or missing references) //IL_0c32: Expected O, but got Unknown //IL_0c73: Unknown result type (might be due to invalid IL or missing references) //IL_0c7d: Expected O, but got Unknown //IL_0cc3: Unknown result type (might be due to invalid IL or missing references) //IL_0ccd: Expected O, but got Unknown //IL_0d08: Unknown result type (might be due to invalid IL or missing references) //IL_0d12: Expected O, but got Unknown //IL_0d5f: Unknown result type (might be due to invalid IL or missing references) //IL_0d69: Expected O, but got Unknown //IL_0db6: Unknown result type (might be due to invalid IL or missing references) //IL_0dc0: Expected O, but got Unknown //IL_0e16: Unknown result type (might be due to invalid IL or missing references) //IL_0e20: Expected O, but got Unknown //IL_0e6d: Unknown result type (might be due to invalid IL or missing references) //IL_0e77: Expected O, but got Unknown //IL_0eb6: Unknown result type (might be due to invalid IL or missing references) //IL_0ec0: Expected O, but got Unknown //IL_0eff: Unknown result type (might be due to invalid IL or missing references) //IL_0f09: Expected O, but got Unknown //IL_0f4b: Unknown result type (might be due to invalid IL or missing references) //IL_0f55: Expected O, but got Unknown //IL_0f96: Unknown result type (might be due to invalid IL or missing references) //IL_0fa0: Expected O, but got Unknown //IL_0fed: Unknown result type (might be due to invalid IL or missing references) //IL_0ff7: Expected O, but got Unknown //IL_1051: Unknown result type (might be due to invalid IL or missing references) //IL_105b: Expected O, but got Unknown //IL_10a8: Unknown result type (might be due to invalid IL or missing references) //IL_10b2: Expected O, but got Unknown HornLaunchEnabled = cfg.Bind<bool>("Eikthyr", "(Horn Attack) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 9000 } })); HornLaunchHealthThreshold = cfg.Bind<float>("Eikthyr", "(Horn Attack) HPThreshold", 70f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.HPThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 8990 } })); HornLaunchHPThresholdMessage = cfg.Bind<string>("Eikthyr", "(Horn Attack) HPThresholdMessage", "", new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.HPThresholdMessage"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8985 } })); HornLaunchAnimName = cfg.Bind<string>("Eikthyr", "(Horn Attack) Anim", "attack1", new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.Anim"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8980 } })); HornLaunchHorizontalForce = cfg.Bind<float>("Eikthyr", "(Horn Attack) HorizontalForce", 2f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.HorizontalForce"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 8970 } })); HornLaunchVerticalForce = cfg.Bind<float>("Eikthyr", "(Horn Attack) VerticalForce", 20f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.VerticalForce"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 8960 } })); HornLaunchProcChance = cfg.Bind<float>("Eikthyr", "(Horn Attack) ProcChance", 100f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.ProcChance"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 8950 } })); HornLaunchAffectsBlocking = cfg.Bind<bool>("Eikthyr", "(Horn Attack) AffectsBlocking", true, new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.AffectsBlocking"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8940 } })); HornGlowEnabled = cfg.Bind<bool>("Eikthyr", "(Horn Attack) GlowEnabled", true, new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.GlowEnabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8935 } })); HornGlowColor = cfg.Bind<string>("Eikthyr", "(Horn Attack) GlowColor", "#F0FFFF", new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.GlowColor"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8933 } })); HornGlowIntensity = cfg.Bind<float>("Eikthyr", "(Horn Attack) GlowIntensity", 3f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.HornAttack.GlowIntensity"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 10f), new object[1] { new ConfigurationManagerAttributes { Order = 8932 } })); ConfigSectionDivider.Insert(cfg, "Eikthyr", "(Divider) 1", 8932, 8000); Phase2Enabled = cfg.Bind<bool>("Eikthyr", "(Lightning) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8000 } })); Phase2HealthThreshold = cfg.Bind<float>("Eikthyr", "(Lightning) HPThreshold", 50f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.HPThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 99f), new object[1] { new ConfigurationManagerAttributes { Order = 7990 } })); Phase2HPThresholdMessage = cfg.Bind<string>("Eikthyr", "(Lightning) HPThresholdMessage", "", new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.HPThresholdMessage"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7985 } })); BodyLightningEnabled = cfg.Bind<bool>("Eikthyr", "(Lightning) BodyLightningEnabled", true, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.BodyLightningEnabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7983 } })); BodyLightningScale = cfg.Bind<float>("Eikthyr", "(Lightning) BodyLightningScale", 1.35f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.BodyLightningScale"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 7981 } })); BodyLightningSpread = cfg.Bind<float>("Eikthyr", "(Lightning) BodyLightningSpread", 1.3f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.BodyLightningSpread"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 7980 } })); StompAnimName = cfg.Bind<string>("Eikthyr", "(Lightning) StompAnim", "stomp", new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.StompAnim"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7979 } })); LightningProcChance = cfg.Bind<float>("Eikthyr", "(Lightning) ProcChance", 100f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.ProcChance"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 7970 } })); LightningCount = cfg.Bind<int>("Eikthyr", "(Lightning) Count", 1, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.Count"), (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), new object[1] { new ConfigurationManagerAttributes { Order = 7960 } })); LightningDamageBlunt = cfg.Bind<float>("Eikthyr", "(Lightning) DamageBlunt", 0f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.DamageBlunt"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1000f), new object[1] { new ConfigurationManagerAttributes { Order = 7950 } })); LightningDamageSlash = cfg.Bind<float>("Eikthyr", "(Lightning) DamageSlash", 0f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.DamageSlash"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1000f), new object[1] { new ConfigurationManagerAttributes { Order = 7940 } })); LightningDamagePierce = cfg.Bind<float>("Eikthyr", "(Lightning) DamagePierce", 10f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.DamagePierce"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1000f), new object[1] { new ConfigurationManagerAttributes { Order = 7930 } })); LightningDamageLightning = cfg.Bind<float>("Eikthyr", "(Lightning) DamageLightning", 20f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.DamageLightning"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1000f), new object[1] { new ConfigurationManagerAttributes { Order = 7920 } })); LightningPushForce = cfg.Bind<float>("Eikthyr", "(Lightning) PushForce", 30f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.PushForce"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 200f), new object[1] { new ConfigurationManagerAttributes { Order = 7915 } })); LightningStartDelay = cfg.Bind<float>("Eikthyr", "(Lightning) StartDelay", 0.8f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.StartDelay"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 7910 } })); LightningSafeZoneRadius = cfg.Bind<float>("Eikthyr", "(Lightning) SafeZoneRadius", 10f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.SafeZoneRadius"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 49f), new object[1] { new ConfigurationManagerAttributes { Order = 7900 } })); LightningDotDuration = cfg.Bind<float>("Eikthyr", "(Lightning) DotDuration", 4f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.DotDuration"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 30f), new object[1] { new ConfigurationManagerAttributes { Order = 7890 } })); LightningDotMinDamage = cfg.Bind<float>("Eikthyr", "(Lightning) DotMinDamage", 1f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.DotMinDamage"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 7880 } })); LightningDotMaxDamage = cfg.Bind<float>("Eikthyr", "(Lightning) DotMaxDamage", 2f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Lightning.DotMaxDamage"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 7870 } })); ConfigSectionDivider.Insert(cfg, "Eikthyr", "(Divider) 2", 7870, 7860); TransformEnabled = cfg.Bind<bool>("Eikthyr", "(Transform) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Transform.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7860 } })); TransformScale = cfg.Bind<float>("Eikthyr", "(Transform) Scale", 1f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Transform.Scale"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.3f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 7850 } })); ConfigSectionDivider.Insert(cfg, "Eikthyr", "(Divider) 2b", 7850, 7000); Enabled = cfg.Bind<bool>("Eikthyr", "(Summon) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7000 } })); TriggerMode = cfg.Bind<SummonTriggerMode>("Eikthyr", "(Summon) TriggerMode", SummonTriggerMode.Both, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.TriggerMode"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 6990 } })); HealthStepCount = cfg.Bind<int>("Eikthyr", "(Summon) HealthStepCount", 10, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.HealthStepCount"), (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { new ConfigurationManagerAttributes { Order = 6980 } })); TimerInterval = cfg.Bind<float>("Eikthyr", "(Summon) TimerInterval", 30f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.TimerInterval"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 3600f), new object[1] { new ConfigurationManagerAttributes { Order = 6970 } })); SummonPrefab = cfg.Bind<string>("Eikthyr", "(Summon) Prefab", "Neck", new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.Prefab"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 6960 } })); SummonCount = cfg.Bind<int>("Eikthyr", "(Summon) Count", 4, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.Count"), (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 50), new object[1] { new ConfigurationManagerAttributes { Order = 6950 } })); SummonLevel = cfg.Bind<int>("Eikthyr", "(Summon) Level", 2, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.Level"), (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), new object[1] { new ConfigurationManagerAttributes { Order = 6940 } })); MaxTotalSummons = cfg.Bind<int>("Eikthyr", "(Summon) MaxTotal", 20, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.MaxTotal"), (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 200), new object[1] { new ConfigurationManagerAttributes { Order = 6930 } })); UseCLLC = cfg.Bind<bool>("Eikthyr", "(Summon) UseCLLC", false, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.UseCLLC"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 6920 } })); SpawnRadius = cfg.Bind<float>("Eikthyr", "(Summon) SpawnRadius", 8f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpawnRadius"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(2f, 30f), new object[1] { new ConfigurationManagerAttributes { Order = 6910 } })); SpawnDelay = cfg.Bind<float>("Eikthyr", "(Summon) SpawnDelay", -1f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpawnDelay"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(-1f, 10f), new object[1] { new ConfigurationManagerAttributes { Order = 6900 } })); ConfigSectionDivider.Insert(cfg, "Eikthyr", "(Divider) 3", 6900, 6800); SpecialSummonEnabled = cfg.Bind<bool>("Eikthyr", "(Special Summon) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpecialEnabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 6800 } })); SpecialSummonHealthThreshold = cfg.Bind<float>("Eikthyr", "(Special Summon) HPThreshold", 50f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpecialHPThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 99f), new object[1] { new ConfigurationManagerAttributes { Order = 6790 } })); SpecialSummonHPThresholdMessage = cfg.Bind<string>("Eikthyr", "(Special Summon) HPThresholdMessage", "", new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpecialHPThresholdMessage"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 6785 } })); SpecialSummonPrefab = cfg.Bind<string>("Eikthyr", "(Special Summon) Prefab", "Boar", new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpecialPrefab"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 6780 } })); SpecialSummonCount = cfg.Bind<int>("Eikthyr", "(Special Summon) Count", 3, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpecialCount"), (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10), new object[1] { new ConfigurationManagerAttributes { Order = 6770 } })); SpecialSummonLevel = cfg.Bind<int>("Eikthyr", "(Special Summon) Level", 3, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpecialLevel"), (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 5), new object[1] { new ConfigurationManagerAttributes { Order = 6760 } })); SpecialSummonVfxScale = cfg.Bind<float>("Eikthyr", "(Special Summon) SpawnVFXScale", 3f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Summon.SpecialSpawnVFXScale"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { new ConfigurationManagerAttributes { Order = 6750 } })); ConfigSectionDivider.Insert(cfg, "Eikthyr", "(Divider) 4", 6750, 6000); PhaseMessage = cfg.Bind<string>("Eikthyr", "(Phase) Message", "", new ConfigDescription(LocalizationManager.Desc("Eikthyr.Phase.Message"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 6000 } })); PhaseMessageHP = cfg.Bind<float>("Eikthyr", "(Phase) MessageHP", 50f, new ConfigDescription(LocalizationManager.Desc("Eikthyr.Phase.MessageHP"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 5990 } })); } } public static class ModerConfig { public static ConfigEntry<bool> AirBreathEnabled { get; private set; } public static ConfigEntry<float> AirBreathCooldown { get; private set; } public static ConfigEntry<float> AirBreathTickInterval { get; private set; } public static ConfigEntry<float> AirBreathDuration { get; private set; } public static ConfigEntry<float> AirBreathRange { get; private set; } public static ConfigEntry<float> AirBreathAngle { get; private set; } public static ConfigEntry<float> AirBreathDamageFrost { get; private set; } public static ConfigEntry<float> AirBreathDamageBlunt { get; private set; } public static ConfigEntry<float> AirBreathStaggerMult { get; private set; } public static ConfigEntry<string> AirBreathVFX { get; private set; } public static ConfigEntry<float> AirBreathMinAltitude { get; private set; } public static ConfigEntry<float> AirBreathHPThreshold { get; private set; } public static ConfigEntry<string> AirBreathHPThresholdMessage { get; private set; } public static ConfigEntry<string> PhaseMessage { get; private set; } public static ConfigEntry<float> PhaseMessageHP { get; private set; } public static ConfigEntry<bool> AirBreathFurColorEnabled { get; private set; } public static ConfigEntry<string> AirBreathFurColor { get; private set; } public static ConfigEntry<float> AirBreathFurColorIntensity { get; private set; } public static ConfigEntry<float> AirBreathFurBrightnessThreshold { get; private set; } public static ConfigEntry<bool> GroundBreathEnabled { get; private set; } public static ConfigEntry<float> GroundBreathTickInterval { get; private set; } public static ConfigEntry<float> GroundBreathDuration { get; private set; } public static ConfigEntry<float> GroundBreathRange { get; private set; } public static ConfigEntry<float> GroundBreathAngle { get; private set; } public static ConfigEntry<float> GroundBreathHeight { get; private set; } public static ConfigEntry<float> GroundBreathDamageFrost { get; private set; } public static ConfigEntry<float> GroundBreathDamageBlunt { get; private set; } public static ConfigEntry<float> GroundBreathPushForce { get; private set; } public static ConfigEntry<float> GroundBreathStaggerMult { get; private set; } public static ConfigEntry<bool> StrikeEnabled { get; private set; } public static ConfigEntry<bool> StrikeTakeoffEnabled { get; private set; } public static ConfigEntry<float> StrikeRadius { get; private set; } public static ConfigEntry<float> StrikeExpandDuration { get; private set; } public static ConfigEntry<float> StrikeDamageBlunt { get; private set; } public static ConfigEntry<float> StrikePushForce { get; private set; } public static ConfigEntry<float> StrikePushForceY { get; private set; } public static ConfigEntry<float> StrikeStaggerMult { get; private set; } public static ConfigEntry<string> StrikeImpactVFX { get; private set; } public static ConfigEntry<float> StrikeImpactVFXScale { get; private set; } public static ConfigEntry<bool> FearEnabled { get; private set; } public static ConfigEntry<float> FearHPThreshold { get; private set; } public static ConfigEntry<string> FearHPThresholdMessage { get; private set; } public static ConfigEntry<float> FearTargetRadius { get; private set; } public static ConfigEntry<float> FearDelay { get; private set; } public static ConfigEntry<float> FearImpactRadius { get; private set; } public static ConfigEntry<float> FearDamageLightning { get; private set; } public static ConfigEntry<float> FearDamagePierce { get; private set; } public static ConfigEntry<float> FearPushForce { get; private set; } public static ConfigEntry<float> FearStaggerMult { get; private set; } public static ConfigEntry<float> FearShockSlowPercent { get; private set; } public static ConfigEntry<float> FearShockDuration { get; private set; } public static ConfigEntry<float> FearMeleeRangeThreshold { get; private set; } public static ConfigEntry<float> FearNoMeleeCastInterval { get; private set; } public static ConfigEntry<float> FearForcedTriggerMinInterval { get; private set; } public static ConfigEntry<string> FearMessage { get; private set; } public static ConfigEntry<float> FearImpactVFXScaleMultiplier { get; private set; } public static ConfigEntry<bool> FearHornGlowEnabled { get; private set; } public static ConfigEntry<string> FearHornGlowColor { get; private set; } public static ConfigEntry<float> FearHornGlowIntensity { get; private set; } public static ConfigEntry<float> FearHornGlowScale { get; private set; } public static ConfigEntry<bool> TransformEnabled { get; private set; } public static ConfigEntry<float> TransformScale { get; private set; } public static void Bind(ConfigFile cfg) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Expected O, but got Unknown //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Expected O, but got Unknown //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Expected O, but got Unknown //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Expected O, but got Unknown //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Expected O, but got Unknown //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Expected O, but got Unknown //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Expected O, but got Unknown //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Expected O, but got Unknown //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Expected O, but got Unknown //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Expected O, but got Unknown //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Expected O, but got Unknown //IL_04bc: Unknown result type (might be due to invalid IL or missing references) //IL_04c6: Expected O, but got Unknown //IL_0513: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Expected O, but got Unknown //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Expected O, but got Unknown //IL_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Expected O, but got Unknown //IL_0621: Unknown result type (might be due to invalid IL or missing references) //IL_062b: Expected O, but got Unknown //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_0682: Expected O, but got Unknown //IL_06cf: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Expected O, but got Unknown //IL_0726: Unknown result type (might be due to invalid IL or missing references) //IL_0730: Expected O, but got Unknown //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Expected O, but got Unknown //IL_07d4: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Expected O, but got Unknown //IL_082b: Unknown result type (might be due to invalid IL or missing references) //IL_0835: Expected O, but got Unknown //IL_0882: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Expected O, but got Unknown //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_08e3: Expected O, but got Unknown //IL_0939: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Expected O, but got Unknown //IL_0990: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Expected O, but got Unknown //IL_09d9: Unknown result type (might be due to invalid IL or missing references) //IL_09e3: Expected O, but got Unknown //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0a3a: Expected O, but got Unknown //IL_0a87: Unknown result type (might be due to invalid IL or missing references) //IL_0a91: Expected O, but got Unknown //IL_0ade: Unknown result type (might be due to invalid IL or missing references) //IL_0ae8: Expected O, but got Unknown //IL_0b35: Unknown result type (might be due to invalid IL or missing references) //IL_0b3f: Expected O, but got Unknown //IL_0b8c: Unknown result type (might be due to invalid IL or missing references) //IL_0b96: Expected O, but got Unknown //IL_0be3: Unknown result type (might be due to invalid IL or missing references) //IL_0bed: Expected O, but got Unknown //IL_0c3a: Unknown result type (might be due to invalid IL or missing references) //IL_0c44: Expected O, but got Unknown //IL_0c91: Unknown result type (might be due to invalid IL or missing references) //IL_0c9b: Expected O, but got Unknown //IL_0ce8: Unknown result type (might be due to invalid IL or missing references) //IL_0cf2: Expected O, but got Unknown //IL_0d3f: Unknown result type (might be due to invalid IL or missing references) //IL_0d49: Expected O, but got Unknown //IL_0d96: Unknown result type (might be due to invalid IL or missing references) //IL_0da0: Expected O, but got Unknown //IL_0ded: Unknown result type (might be due to invalid IL or missing references) //IL_0df7: Expected O, but got Unknown //IL_0e36: Unknown result type (might be due to invalid IL or missing references) //IL_0e40: Expected O, but got Unknown //IL_0e8d: Unknown result type (might be due to invalid IL or missing references) //IL_0e97: Expected O, but got Unknown //IL_0ed2: Unknown result type (might be due to invalid IL or missing references) //IL_0edc: Expected O, but got Unknown //IL_0f1b: Unknown result type (might be due to invalid IL or missing references) //IL_0f25: Expected O, but got Unknown //IL_0f72: Unknown result type (might be due to invalid IL or missing references) //IL_0f7c: Expected O, but got Unknown //IL_0fc9: Unknown result type (might be due to invalid IL or missing references) //IL_0fd3: Expected O, but got Unknown //IL_1029: Unknown result type (might be due to invalid IL or missing references) //IL_1033: Expected O, but got Unknown //IL_106e: Unknown result type (might be due to invalid IL or missing references) //IL_1078: Expected O, but got Unknown //IL_10c5: Unknown result type (might be due to invalid IL or missing references) //IL_10cf: Expected O, but got Unknown //IL_111c: Unknown result type (might be due to invalid IL or missing references) //IL_1126: Expected O, but got Unknown //IL_1173: Unknown result type (might be due to invalid IL or missing references) //IL_117d: Expected O, but got Unknown //IL_11ca: Unknown result type (might be due to invalid IL or missing references) //IL_11d4: Expected O, but got Unknown //IL_1221: Unknown result type (might be due to invalid IL or missing references) //IL_122b: Expected O, but got Unknown //IL_1278: Unknown result type (might be due to invalid IL or missing references) //IL_1282: Expected O, but got Unknown //IL_12c1: Unknown result type (might be due to invalid IL or missing references) //IL_12cb: Expected O, but got Unknown //IL_1318: Unknown result type (might be due to invalid IL or missing references) //IL_1322: Expected O, but got Unknown //IL_1378: Unknown result type (might be due to invalid IL or missing references) //IL_1382: Expected O, but got Unknown //IL_13cf: Unknown result type (might be due to invalid IL or missing references) //IL_13d9: Expected O, but got Unknown //IL_1433: Unknown result type (might be due to invalid IL or missing references) //IL_143d: Expected O, but got Unknown //IL_148a: Unknown result type (might be due to invalid IL or missing references) //IL_1494: Expected O, but got Unknown AirBreathEnabled = cfg.Bind<bool>("Moder", "(Air Breath) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 9000 } })); AirBreathHPThreshold = cfg.Bind<float>("Moder", "(Air Breath) HPThreshold", 50f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.HPThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 8995 } })); AirBreathHPThresholdMessage = cfg.Bind<string>("Moder", "(Air Breath) HPThresholdMessage", "", new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.HPThresholdMessage"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8992 } })); AirBreathCooldown = cfg.Bind<float>("Moder", "(Air Breath) Cooldown", 8f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.Cooldown"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 60f), new object[1] { new ConfigurationManagerAttributes { Order = 8990 } })); AirBreathTickInterval = cfg.Bind<float>("Moder", "(Air Breath) TickInterval", 0.25f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.TickInterval"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 2f), new object[1] { new ConfigurationManagerAttributes { Order = 8985 } })); AirBreathDuration = cfg.Bind<float>("Moder", "(Air Breath) Duration", 2.5f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.Duration"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 10f), new object[1] { new ConfigurationManagerAttributes { Order = 8982 } })); AirBreathRange = cfg.Bind<float>("Moder", "(Air Breath) Range", 35f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.Range"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(5f, 80f), new object[1] { new ConfigurationManagerAttributes { Order = 8980 } })); AirBreathAngle = cfg.Bind<float>("Moder", "(Air Breath) Angle", 30f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.Angle"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(10f, 180f), new object[1] { new ConfigurationManagerAttributes { Order = 8970 } })); AirBreathDamageFrost = cfg.Bind<float>("Moder", "(Air Breath) DamageFrost", 100f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.DamageFrost"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 500f), new object[1] { new ConfigurationManagerAttributes { Order = 8960 } })); AirBreathDamageBlunt = cfg.Bind<float>("Moder", "(Air Breath) DamageBlunt", 10f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.DamageBlunt"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 500f), new object[1] { new ConfigurationManagerAttributes { Order = 8950 } })); AirBreathStaggerMult = cfg.Bind<float>("Moder", "(Air Breath) StaggerMult", 0.3f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.StaggerMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 8945 } })); AirBreathVFX = cfg.Bind<string>("Moder", "(Air Breath) VFX", "vfx_dragon_coldbreath", new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.VFX"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8940 } })); AirBreathMinAltitude = cfg.Bind<float>("Moder", "(Air Breath) MinAltitude", 8f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.MinAltitude"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 30f), new object[1] { new ConfigurationManagerAttributes { Order = 8930 } })); AirBreathFurColorEnabled = cfg.Bind<bool>("Moder", "(Air Breath) FurColorEnabled", true, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.FurColorEnabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8897 } })); AirBreathFurColor = cfg.Bind<string>("Moder", "(Air Breath) FurColor", "#1FA2FF", new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.FurColor"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8896 } })); AirBreathFurColorIntensity = cfg.Bind<float>("Moder", "(Air Breath) FurColorIntensity", 2f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.FurColorIntensity"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 3f), new object[1] { new ConfigurationManagerAttributes { Order = 8895 } })); AirBreathFurBrightnessThreshold = cfg.Bind<float>("Moder", "(Air Breath) FurBrightnessThreshold", 0.6f, new ConfigDescription(LocalizationManager.Desc("Moder.AirBreath.FurBrightnessThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 0.95f), new object[1] { new ConfigurationManagerAttributes { Order = 8894 } })); ConfigSectionDivider.Insert(cfg, "Moder", "(Divider) 1", 8894, 8890); GroundBreathEnabled = cfg.Bind<bool>("Moder", "(Ground Breath) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8890 } })); GroundBreathTickInterval = cfg.Bind<float>("Moder", "(Ground Breath) TickInterval", 0.25f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.TickInterval"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 2f), new object[1] { new ConfigurationManagerAttributes { Order = 8880 } })); GroundBreathDuration = cfg.Bind<float>("Moder", "(Ground Breath) Duration", 2.5f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.Duration"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 10f), new object[1] { new ConfigurationManagerAttributes { Order = 8875 } })); GroundBreathRange = cfg.Bind<float>("Moder", "(Ground Breath) Range", 35f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.Range"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(2f, 40f), new object[1] { new ConfigurationManagerAttributes { Order = 8870 } })); GroundBreathAngle = cfg.Bind<float>("Moder", "(Ground Breath) Angle", 30f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.Angle"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(10f, 180f), new object[1] { new ConfigurationManagerAttributes { Order = 8860 } })); GroundBreathHeight = cfg.Bind<float>("Moder", "(Ground Breath) Height", 1f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.Height"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 8850 } })); GroundBreathDamageFrost = cfg.Bind<float>("Moder", "(Ground Breath) DamageFrost", 100f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.DamageFrost"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 500f), new object[1] { new ConfigurationManagerAttributes { Order = 8840 } })); GroundBreathDamageBlunt = cfg.Bind<float>("Moder", "(Ground Breath) DamageBlunt", 10f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.DamageBlunt"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 500f), new object[1] { new ConfigurationManagerAttributes { Order = 8830 } })); GroundBreathPushForce = cfg.Bind<float>("Moder", "(Ground Breath) PushForce", 20f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.PushForce"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 200f), new object[1] { new ConfigurationManagerAttributes { Order = 8820 } })); GroundBreathStaggerMult = cfg.Bind<float>("Moder", "(Ground Breath) StaggerMult", 0.3f, new ConfigDescription(LocalizationManager.Desc("Moder.GroundBreath.StaggerMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 8815 } })); ConfigSectionDivider.Insert(cfg, "Moder", "(Divider) 2", 8815, 8000); FearEnabled = cfg.Bind<bool>("Moder", "(Dragon Fear) Enabled", true, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.Enabled"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 8000 } })); FearHPThreshold = cfg.Bind<float>("Moder", "(Dragon Fear) HPThreshold", 70f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.HPThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 7990 } })); FearHPThresholdMessage = cfg.Bind<string>("Moder", "(Dragon Fear) HPThresholdMessage", "", new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.HPThresholdMessage"), (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Order = 7985 } })); FearTargetRadius = cfg.Bind<float>("Moder", "(Dragon Fear) TargetRadius", 100f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.TargetRadius"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 200f), new object[1] { new ConfigurationManagerAttributes { Order = 7970 } })); FearDelay = cfg.Bind<float>("Moder", "(Dragon Fear) Delay", 0.5f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.Delay"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 7960 } })); FearImpactRadius = cfg.Bind<float>("Moder", "(Dragon Fear) ImpactRadius", 4f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.ImpactRadius"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 20f), new object[1] { new ConfigurationManagerAttributes { Order = 7950 } })); FearDamageLightning = cfg.Bind<float>("Moder", "(Dragon Fear) DamageLightning", 40f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.DamageLightning"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 500f), new object[1] { new ConfigurationManagerAttributes { Order = 7940 } })); FearDamagePierce = cfg.Bind<float>("Moder", "(Dragon Fear) DamagePierce", 20f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.DamagePierce"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 500f), new object[1] { new ConfigurationManagerAttributes { Order = 7935 } })); FearPushForce = cfg.Bind<float>("Moder", "(Dragon Fear) PushForce", 50f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.PushForce"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 200f), new object[1] { new ConfigurationManagerAttributes { Order = 7930 } })); FearStaggerMult = cfg.Bind<float>("Moder", "(Dragon Fear) StaggerMult", 1f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.StaggerMult"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), new object[1] { new ConfigurationManagerAttributes { Order = 7920 } })); FearShockSlowPercent = cfg.Bind<float>("Moder", "(Dragon Fear) ShockSlowPercent", 80f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.ShockSlowPercent"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), new object[1] { new ConfigurationManagerAttributes { Order = 7910 } })); FearShockDuration = cfg.Bind<float>("Moder", "(Dragon Fear) ShockDuration", 8f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.ShockDuration"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 30f), new object[1] { new ConfigurationManagerAttributes { Order = 7900 } })); FearMeleeRangeThreshold = cfg.Bind<float>("Moder", "(Dragon Fear) MeleeRangeThreshold", 20f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.MeleeRangeThreshold"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 30f), new object[1] { new ConfigurationManagerAttributes { Order = 7895 } })); FearNoMeleeCastInterval = cfg.Bind<float>("Moder", "(Dragon Fear) NoMeleeCastInterval", 3f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFear.NoMeleeCastInterval"), (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 60f), new object[1] { new ConfigurationManagerAttributes { Order = 7890 } })); FearForcedTriggerMinInterval = cfg.Bind<float>("Moder", "(Dragon Fear) ForcedTriggerMinInterval", 10f, new ConfigDescription(LocalizationManager.Desc("Moder.DragonFe