Decompiled source of Weedheim v2.0.4
plugins/Weedheim.dll
Decompiled 4 days ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Jotunn; using Jotunn.Configs; using Jotunn.Entities; using Jotunn.Extensions; using Jotunn.Managers; using Jotunn.Utils; using Microsoft.CodeAnalysis; using UnityEngine; using UnityEngine.PostProcessing; using UnityEngine.SceneManagement; using UnityEngine.UI; using Weedheim.Effects; using Weedheim.Updates; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("Weedheim")] [assembly: AssemblyDescription("https://discord.gg/nzybGbmXfV")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("MagicMike")] [assembly: AssemblyProduct("Weedheim")] [assembly: AssemblyCopyright("Copyright © MagicMike 2025Weedheim")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")] [assembly: AssemblyFileVersion("2.0.4")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("2.0.4.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } public class WH_LokiBelt : SE_Stats { public bool m_enablePing; public EffectList m_pingEffectNear = new EffectList(); public EffectList m_pingEffectMed = new EffectList(); public EffectList m_pingEffectFar = new EffectList(); public float m_closerTriggerDistance = 4f; public float m_furtherTriggerDistance = 6f; public float m_closeFrequency = 0.5f; public float m_distantFrequency = 3f; private float m_updateBeaconTimer; private float m_pingTimer; private Beacon m_beacon; private float m_lastDistance; public override void UpdateStatusEffect(float dt) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0148: 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_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) if (!m_enablePing) { return; } m_updateBeaconTimer += dt; if (m_updateBeaconTimer > 1f) { m_updateBeaconTimer = 0f; Beacon val = Beacon.FindClosestBeaconInRange(((Component)((StatusEffect)this).m_character).transform.position); if ((Object)(object)val != (Object)(object)m_beacon) { m_beacon = val; if (Object.op_Implicit((Object)(object)m_beacon)) { m_lastDistance = Utils.DistanceXZ(((Component)((StatusEffect)this).m_character).transform.position, ((Component)m_beacon).transform.position); m_pingTimer = 0f; } } } if (!((Object)(object)m_beacon != (Object)null)) { return; } float num = Utils.DistanceXZ(((Component)((StatusEffect)this).m_character).transform.position, ((Component)m_beacon).transform.position); float num2 = Mathf.Clamp01(num / m_beacon.m_range); float num3 = Mathf.Lerp(m_closeFrequency, m_distantFrequency, num2); m_pingTimer += dt; if (m_pingTimer > num3) { m_pingTimer = 0f; if (num2 < 0.2f) { m_pingEffectNear.Create(((Component)((StatusEffect)this).m_character).transform.position, ((Component)((StatusEffect)this).m_character).transform.rotation, ((Component)((StatusEffect)this).m_character).transform, 1f, -1); } else if (num2 < 0.6f) { m_pingEffectMed.Create(((Component)((StatusEffect)this).m_character).transform.position, ((Component)((StatusEffect)this).m_character).transform.rotation, ((Component)((StatusEffect)this).m_character).transform, 1f, -1); } else { m_pingEffectFar.Create(((Component)((StatusEffect)this).m_character).transform.position, ((Component)((StatusEffect)this).m_character).transform.rotation, ((Component)((StatusEffect)this).m_character).transform, 1f, -1); } m_lastDistance = num; } } } namespace Weedheim { internal class FileWatcher { public static void WatchFileChanges(string path, Action onChanged) { FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(); string directoryName = Path.GetDirectoryName(path); string fileName = Path.GetFileName(path); fileSystemWatcher.Path = directoryName; fileSystemWatcher.Filter = fileName; fileSystemWatcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite; fileSystemWatcher.Changed += delegate { onChanged?.Invoke(); }; fileSystemWatcher.Deleted += delegate { onChanged?.Invoke(); }; fileSystemWatcher.Created += delegate { onChanged?.Invoke(); }; fileSystemWatcher.Renamed += delegate { onChanged?.Invoke(); }; fileSystemWatcher.EnableRaisingEvents = true; } public static void WatchTranslationChanges(string path, Action onChanged) { if (!Directory.Exists(WeedheimMod.TranslationFilePath)) { return; } try { WatchFileChanges(Path.Combine(path, "*.*"), onChanged); } catch { Logger.LogError((object)"There was an issue loading Translation files!"); } } } internal static class LocalisedText { public static CustomLocalization Localization = LocalizationManager.Instance.GetLocalization(); public static void AddLocalisations() { CustomLocalization localization = Localization; string text = "English"; localization.AddTranslation(ref text, new Dictionary<string, string> { { "piece_budmaster", "Budmaster2000" }, { "piece_budmaster_add_weed", "Add Buds" }, { "piece_budmaster_empty", "Empty" }, { "piece_sapling_mystic", "Blue Mystic Sapling" }, { "piece_sapling_mystic_desc", "Plant this to grow some stinky weed!" }, { "piece_sapling_honey", "Honey Badger Sapling" }, { "piece_sapling_honey_desc", "Plant this to grow some stinky weed!" }, { "piece_sapling_kush", "Purple Kush Sapling" }, { "piece_sapling_kush_desc", "Plant this to grow some stinky weed!" }, { "piece_sapling_cherry", "Black Cherry Sapling" }, { "piece_sapling_cherry_desc", "Plant this to grow some stinky weed!" }, { "piece_sapling_widow", "White Widow Sapling" }, { "piece_sapling_widow_desc", "Plant this to grow some stinky weed!" }, { "piece_sapling_desire", "Burning Desire Sapling" }, { "piece_sapling_desire_desc", "Plant this to grow some stinky weed!" }, { "piece_sapling_lights", "Northern Lights Sapling" }, { "piece_sapling_lights_desc", "Plant this to grow some stinky weed!" }, { "piece_sapling_poison", "Durban Poison Sapling" }, { "piece_sapling_poison_desc", "Plant this to grow some stinky weed!" }, { "piece_sapling_liberty", "Liberty Cap Mushrooms!" }, { "piece_sapling_liberty_desc", "Plant these to grow some magic mushrooms!" }, { "piece_sleeping_bag", "Sleeping Bag" }, { "piece_sleeping_bag_desc", "Sleep under the stars, no matter where you are." }, { "piece_mm_chair", "Chair" } }); CustomLocalization localization2 = Localization; text = "English"; localization2.AddTranslation(ref text, new Dictionary<string, string> { { "item_bag_o_kush", "Bag of Purple Kush" }, { "item_bag_o_badger", "Bag of Honey Badger" }, { "item_bag_o_cherry", "Bag of Black Cherry" }, { "item_bag_o_mystic", "Bag of Blue Mystic" }, { "item_bag_o_widow", "Bag of White Widow" }, { "item_bag_o_desire", "Bag of Burning Desire" }, { "item_bag_o_lights", "Bag of Northern Lights" }, { "item_bag_o_poison", "Bag of Durban Poison" }, { "item_cannabis_seeds", "Female Cannabis Seeds" }, { "item_cannabis_seeds_desc", "Seeds of the Cannabis plant." }, { "item_mystic_bud", "Blue Mystic Bud" }, { "item_mystic_bud_desc", "Needs drying and grinding with the Budmaster2000 to be smokeable!" }, { "item_cherry_bud", "Black Cherry Bud" }, { "item_cherry_bud_desc", "Needs drying and grinding with the Budmaster2000 to be smokeable!" }, { "item_honey_bud", "Honey Badger Bud" }, { "item_honey_bud_desc", "Needs drying and grinding with the Budmaster2000 to be smokeable!" }, { "item_kush_bud", "Purple Kush Bud" }, { "item_kush_bud_desc", "Needs drying and grinding with the Budmaster2000 to be smokeable!" }, { "item_widow_bud", "White Widow Bud" }, { "item_widow_bud_desc", "Needs drying and grinding with the Budmaster2000 to be smokeable!" }, { "item_desire_bud", "Burning Desire Bud" }, { "item_desire_bud_desc", "Needs drying and grinding with the Budmaster2000 to be smokeable!" }, { "item_lights_bud", "Northern Lights Bud" }, { "item_lights_bud_desc", "Needs drying and grinding with the Budmaster2000 to be smokeable!" }, { "item_poison_bud", "Durban Poison Bud" }, { "item_poison_bud_desc", "Needs drying and grinding with the Budmaster2000 to be smokeable!" }, { "item_mushroom_spores", "Mushroom Spores" }, { "item_mushroom_spores_desc", "Mushroom spores for growing magic mushrooms." }, { "item_joint_cherry", "Black Cherry Spliff" }, { "item_joint_cherry_desc", "Black Cherry exhibits clear-headed uplifting effects good for productivity." }, { "item_joint_badger", "Honey Badger Spliff" }, { "item_joint_badger_desc", "Very pretty. Smooth. Happy and active high." }, { "item_joint_mystic", "Blue Mystic Spliff" }, { "item_joint_mystic_desc", "Very mellow with hints of berry and pine." }, { "item_joint_kush", "Purple Kush Spliff" }, { "item_joint_kush_desc", "Euphoria blankets the mind while physical relaxation rids the body of pain." }, { "item_joint_widow", "White Widow Spliff" }, { "item_joint_widow_desc", "Heady as f*ck with a trickle down body high." }, { "item_joint_desire", "Burning Desire Spliff" }, { "item_joint_desire_desc", "A potent high that hits immediately." }, { "item_joint_lights", "Northern Lights Spliff" }, { "item_joint_lights_desc", "Relaxing muscles and easing the mind." }, { "item_joint_poison", "Durban Poison Spliff" }, { "item_joint_poison_desc", "Helps you stay productive through a busy day." }, { "item_joint_paper", "Kingsize Paper" }, { "item_joint_paper_desc", "Roll a fat doobies with this." }, { "item_magic_mushrooms", "Magic Mushrooms" }, { "item_magic_mushrooms_desc", "Good for tripping your tits off!" }, { "item_lokis_utility_belt", "Lokis Utility Belt" }, { "item_lokis_utility_belt_desc", "Even Odin himself is astonished by the power of this belt!" }, { "item_lokis_bong", "Lokis Magical Bong" }, { "item_lokis_bong_desc", "A very nice bong for smoking Lokis special blend." }, { "item_lokis_blend", "Lokis Special Blend" }, { "item_lokis_blend_desc", "A special mystery blend created by Loki!" }, { "item_cbd_potion", "CBD Potion" }, { "item_cbd_potion_desc", "For when you need to come down quickly!" }, { "item_sleeping_bag", "Sleeping Bag (Packed)" }, { "item_sleeping_bag_desc", "Use this to craft a sleeping bag." }, { "item_trophy_rasta_troll", "Rasta Troll Trophy" }, { "item_trophy_rasta_troll_desc", "The leathery skin smells like weed!" }, { "item_trophy_rasta_troll_lore", "The leathery skin smells like weed!" } }); CustomLocalization localization3 = Localization; text = "English"; localization3.AddTranslation(ref text, new Dictionary<string, string> { { "spliff_badger_tooltip", "Very pretty. Smooth. Happy and active high." }, { "spliff_badger_effect_name", "Happy Stoned" }, { "spliff_badger_start", "You feel happy & active!" }, { "spliff_cherry_effect_name", "Productive Stoned" }, { "spliff_cherry_tooltip", "Clear-headed, uplifting effects good for productivity." }, { "spliff_cherry_start", "You feel uplifted & productive!" }, { "spliff_kush_effect_name", "Euphoric Stoned" }, { "spliff_kush_tooltip", "Euphoria blankets the mind while physical relaxation rids the body of pain!" }, { "spliff_kush_start", "You feel euphoric & relaxed!" }, { "spliff_mystic_effect_name", "Mellow Stoned" }, { "spliff_mystic_tooltip", "Very mellow with hints of berry and pine." }, { "spliff_mystic_start", "You feel mellow!" }, { "spliff_widow_effect_name", "Heady Stoned" }, { "spliff_widow_tooltip", "Heady as f*ck with a trickle down body high." }, { "spliff_widow_start", "Your body feels heavy!" }, { "spliff_desire_effect_name", "Nicely Stoned" }, { "spliff_desire_tooltip", "A potent high that hits immediately." }, { "spliff_desire_start", "You feel productive!" }, { "spliff_lights_effect_name", "Relaxed Stoned" }, { "spliff_lights_tooltip", "Relaxing muscles and easing the mind." }, { "spliff_lights_start", "Your body feels relaxed!" }, { "spliff_poison_effect_name", "Productive Stoned" }, { "spliff_poison_tooltip", "Helps you stay productive through a busy day." }, { "spliff_poison_start", "You feel productive!" }, { "cooldown_spliff", "You can't smoke another spliff right now! {0}secs remaining." }, { "bong_effect_name", "High as F**k" }, { "bong_tooltip", "Stoned as f*ck with a trickle down body high." }, { "bong_effect_start", "Your mind is racing. Your body feels heavy!" }, { "cooldown_bong", "You can't smoke another bong right now! {0}secs remaining." }, { "liberty_effect_name", "Tripping Balls" }, { "liberty_tooltip", "You keep seeing funny creatures. (or do you?!)." }, { "liberty_effect_start", "You're tripping your balls off!" }, { "cooldown_mushroom", "You can't consume more mushrooms right now! {0}secs remaining." }, { "wh_effect_stop", "You've come down!" }, { "loki_ubelt_name", "Lokis Belt" }, { "loki_ubelt_tooltip", "Helps you find hidden things & increases your carry weight." }, { "loki_ubelt_start", "You sense hidden objects & feel stronger." } }); CustomLocalization localization4 = Localization; text = "English"; localization4.AddTranslation(ref text, new Dictionary<string, string> { { "npc_loki_randomtalk01", "I really needed that man!" }, { "npc_loki_randomtalk02", "Better out than in dude!" }, { "npc_loki_randomtalk03", "Wow, Excuse me dude!" }, { "npc_loki_randomtalk04", "Hmmmm, smells well beefy man!" }, { "npc_loki_randomtalk05", "I once stuck a carrot up my bum dude!" }, { "npc_loki_randomtalk06", "I like to go commando, and feel the breeze against my balls man!" }, { "npc_loki_randomtalk07", "That was a bit chunky dude!" }, { "npc_loki_greeting01", "Hey man, wanna buy some Cannabis seeds?" }, { "npc_loki_greeting02", "Need a fat doobie man?" }, { "npc_loki_greeting03", "Want some magic mushrooms dude?" }, { "npc_loki_goodbye01", "Farewell dude, have a good day." }, { "npc_loki_goodbye02", "See you again soon dude." }, { "npc_loki_goodbye03", "Do not get too stoned my man!" }, { "npc_loki_trade01", "I'm interested in trade, not chatter!" }, { "npc_loki_trade02", "Dude, let us make a deal." }, { "npc_loki_trade03", "You're fortunate to have caught me in a good mood. Let us trade man." }, { "npc_loki_buy01", "These are fine items, not the sort of things you can just pick up." }, { "npc_loki_buy02", "Don't touch anything unless you're prepared to pay for it man." }, { "npc_loki_buy03", "Cast your eyes over my goods dude, but keep your hands to yourself." }, { "npc_loki_sell01", "Let's see what crap you've picked up dude..." }, { "npc_loki_sell02", "Hmm, what have we here dude?" }, { "npc_loki_sell03", "Show me what you have man." } }); CustomLocalization localization5 = Localization; text = "English"; localization5.AddTranslation(ref text, new Dictionary<string, string> { { "freya_randomtext_1", "Wanna play hide the sausage?!" }, { "freya_randomtext_2", "Do you like the way I sway my hips?!" }, { "freya_randomtext_3", "I need another hand-print on my butt!" }, { "freya_randomtext_4", "Loki has a massive green todger!" }, { "freya_randomtext_5", "Wanna dance with me?" } }); CustomLocalization localization6 = Localization; text = "English"; localization6.AddTranslation(ref text, new Dictionary<string, string> { { "stoned_troll", "Rasta Troll" }, { "stoned_troll_female", "Rasta Troll" }, { "stoned_troll_infant", "Rasta Troll Infant" }, { "stoned_troll_infant_female", "Rasta Troll Infant" }, { "tame_status", "Taming Status: " }, { "tame_consumables", "Consumables: " }, { "food_level", "Food Duration: " }, { "tame_pregnancy", "Pregnancy: " }, { "tame_pregnant", "Is Pregnant" }, { "love_points", "Love Points: " }, { "infant_troll", "Infant Troll: " }, { "infant_neck", "Infant Neck: " }, { "needs_mate", "Needs a mate" }, { "needs_a_mate", " needs a mate!" }, { "is_hungry", " is hungry!" }, { "is_pregnant", " is pregnant!" }, { "is_horny", " is horny!" }, { "grown", " grown" }, { "creature_faction", "Creature Faction: " } }); } } internal class MainConfig { internal enum GlobalSpawnKeys { defeated_bonemass, defeated_gdking, defeated_goblinking, defeated_dragon, defeated_eikthyr, defeated_queen, defeated_fader, defeated_serpent, KilledTroll, killed_surtling, KilledBat, None } internal const string GeneralSection = "General_Settings"; internal static ConfigEntry<bool> enablePlugin; internal static ConfigEntry<bool> enableLogo; internal static ConfigEntry<bool> enableTrippingVFX; internal static ConfigEntry<bool> enableStonedVFX; internal static ConfigEntry<bool> ignoreWindspeed; internal static ConfigEntry<bool> disableRoofCheck; internal static ConfigEntry<bool> disableRestriction; internal static ConfigEntry<bool> showGrowTimer; internal static ConfigEntry<bool> showGrowPercent; internal static ConfigEntry<bool> groundOnly; internal static ConfigEntry<bool> needCultivated; internal const string BeltSection = "Belt_Settings"; internal static ConfigEntry<bool> enableWishbone; internal static ConfigEntry<float> DetectSilverDistance; internal static ConfigEntry<float> DetectMudPileDistance; internal static ConfigEntry<float> DetectBuriedDistance; internal static ConfigEntry<float> DetectMosquitoDistance; internal static ConfigEntry<float> closeFrequency; internal static ConfigEntry<float> distantFrequency; internal static ConfigEntry<float> maxCarryWeight; internal static ConfigEntry<float> stealthModifier; internal static ConfigEntry<float> speedModifier; internal static ConfigEntry<bool> enableDemister; internal static ConfigEntry<float> demisterRange; internal const string BongSection = "Bong_Settings"; internal static ConfigEntry<float> bongDuration; internal static ConfigEntry<float> bongCooldown; internal static ConfigEntry<float> bongStaminaUsageVal; internal static ConfigEntry<float> bongHealthRegenVal; internal static ConfigEntry<float> bongStaminaRegenVal; internal static ConfigEntry<float> bongEitrRegenVal; internal static ConfigEntry<float> bongDamageVal; internal static ConfigEntry<float> bongSpeedVal; internal static ConfigEntry<float> bongJumpVal; internal static ConfigEntry<float> bongFallSpeed; internal static ConfigEntry<float> bongFallDamage; internal static ConfigEntry<bool> bongRested; internal static ConfigEntry<float> bongRestedDuration; internal const string SleepingBag = "Sleeping_Bag_Settings"; internal static ConfigEntry<bool> bedCheckExposure; internal static ConfigEntry<bool> bedCheckWet; internal static ConfigEntry<bool> bedCheckFire; internal static ConfigEntry<bool> bedCheckEnemies; internal const string HoneyBadgerPlant = "Honey_Badger_Plant"; internal static ConfigEntry<int> growTimeBadger; internal static ConfigEntry<int> respawnTimeBadger; internal static ConfigEntry<float> minScaleBadger; internal static ConfigEntry<float> maxScaleBadger; internal static ConfigEntry<float> growRadiusBadger; internal static ConfigEntry<int> budYieldDropBadger; internal const string HoneyBadgerEffects = "Honey_Badger_Effects"; internal static ConfigEntry<float> jointDurationBadger; internal static ConfigEntry<float> jointCooldownBadger; internal static ConfigEntry<float> jointStaminaUsageValBadger; internal static ConfigEntry<float> jointHealthRegenValBadger; internal static ConfigEntry<float> jointStaminaRegenValBadger; internal static ConfigEntry<float> jointEitrRegenValBadger; internal static ConfigEntry<float> jointDamageValBadger; internal static ConfigEntry<float> jointSpeedValBadger; internal static ConfigEntry<float> jointJumpValBadger; internal static ConfigEntry<float> jointFallSpeedBadger; internal static ConfigEntry<float> jointFallDamageBadger; internal const string BlackCherryPlant = "Black_Cherry_Plant"; internal static ConfigEntry<int> growTimeCherry; internal static ConfigEntry<int> respawnTimeCherry; internal static ConfigEntry<float> minScaleCherry; internal static ConfigEntry<float> maxScaleCherry; internal static ConfigEntry<float> growRadiusCherry; internal static ConfigEntry<int> budYieldDropCherry; internal const string BlackCherryEffects = "Black_Cherry_Effects"; internal static ConfigEntry<float> jointDurationCherry; internal static ConfigEntry<float> jointCooldownCherry; internal static ConfigEntry<float> jointStaminaUsageValCherry; internal static ConfigEntry<float> jointHealthRegenValCherry; internal static ConfigEntry<float> jointStaminaRegenValCherry; internal static ConfigEntry<float> jointEitrRegenValCherry; internal static ConfigEntry<float> jointDamageValCherry; internal static ConfigEntry<float> jointSpeedValCherry; internal static ConfigEntry<float> jointJumpValCherry; internal static ConfigEntry<float> jointFallSpeedCherry; internal static ConfigEntry<float> jointFallDamageCherry; internal const string PurpleKushPlant = "Purple_Kush_Plant"; internal static ConfigEntry<int> growTimeKush; internal static ConfigEntry<int> respawnTimeKush; internal static ConfigEntry<float> minScaleKush; internal static ConfigEntry<float> maxScaleKush; internal static ConfigEntry<float> growRadiusKush; internal static ConfigEntry<int> budYieldDropKush; internal const string PurpleKushEffects = "Purple_Kush_Effects"; internal static ConfigEntry<float> jointDurationKush; internal static ConfigEntry<float> jointCooldownKush; internal static ConfigEntry<float> jointStaminaUsageValKush; internal static ConfigEntry<float> jointHealthRegenValKush; internal static ConfigEntry<float> jointStaminaRegenValKush; internal static ConfigEntry<float> jointEitrRegenValKush; internal static ConfigEntry<float> jointDamageValKush; internal static ConfigEntry<float> jointSpeedValKush; internal static ConfigEntry<float> jointJumpValKush; internal static ConfigEntry<float> jointFallSpeedKush; internal static ConfigEntry<float> jointFallDamageKush; internal const string BlueMysticPlant = "Blue_Mystic_Plant"; internal static ConfigEntry<int> growTimeMystic; internal static ConfigEntry<int> respawnTimeMystic; internal static ConfigEntry<float> minScaleMystic; internal static ConfigEntry<float> maxScaleMystic; internal static ConfigEntry<float> growRadiusMystic; internal static ConfigEntry<int> budYieldDropMystic; internal const string BlueMysticEffects = "Blue_Mystic_Effects"; internal static ConfigEntry<float> jointDurationMystic; internal static ConfigEntry<float> jointCooldownMystic; internal static ConfigEntry<float> jointStaminaUsageValMystic; internal static ConfigEntry<float> jointHealthRegenValMystic; internal static ConfigEntry<float> jointStaminaRegenValMystic; internal static ConfigEntry<float> jointEitrRegenValMystic; internal static ConfigEntry<float> jointDamageValMystic; internal static ConfigEntry<float> jointSpeedValMystic; internal static ConfigEntry<float> jointJumpValMystic; internal static ConfigEntry<float> jointFallSpeedMystic; internal static ConfigEntry<float> jointFallDamageMystic; internal const string WhiteWidowPlant = "White_Widow_Plant"; internal static ConfigEntry<int> growTimeWidow; internal static ConfigEntry<int> respawnTimeWidow; internal static ConfigEntry<float> minScaleWidow; internal static ConfigEntry<float> maxScaleWidow; internal static ConfigEntry<float> growRadiusWidow; internal static ConfigEntry<int> budYieldDropWidow; internal const string WhiteWidowEffects = "White_Widow_Effects"; internal static ConfigEntry<float> jointDurationWidow; internal static ConfigEntry<float> jointCooldownWidow; internal static ConfigEntry<float> jointStaminaUsageValWidow; internal static ConfigEntry<float> jointHealthRegenValWidow; internal static ConfigEntry<float> jointStaminaRegenValWidow; internal static ConfigEntry<float> jointEitrRegenValWidow; internal static ConfigEntry<float> jointDamageValWidow; internal static ConfigEntry<float> jointSpeedValWidow; internal static ConfigEntry<float> jointJumpValWidow; internal static ConfigEntry<float> jointFallSpeedWidow; internal static ConfigEntry<float> jointFallDamageWidow; internal const string BurningDesirePlant = "Burning_Desire_Plant"; internal static ConfigEntry<int> growTimeDesire; internal static ConfigEntry<int> respawnTimeDesire; internal static ConfigEntry<float> minScaleDesire; internal static ConfigEntry<float> maxScaleDesire; internal static ConfigEntry<float> growRadiusDesire; internal static ConfigEntry<int> budYieldDropDesire; internal const string BurningDesireEffects = "Burning_Desire_Effects"; internal static ConfigEntry<float> jointDurationDesire; internal static ConfigEntry<float> jointCooldownDesire; internal static ConfigEntry<float> jointStaminaUsageValDesire; internal static ConfigEntry<float> jointHealthRegenValDesire; internal static ConfigEntry<float> jointStaminaRegenValDesire; internal static ConfigEntry<float> jointEitrRegenValDesire; internal static ConfigEntry<float> jointDamageValDesire; internal static ConfigEntry<float> jointSpeedValDesire; internal static ConfigEntry<float> jointJumpValDesire; internal static ConfigEntry<float> jointFallSpeedDesire; internal static ConfigEntry<float> jointFallDamageDesire; internal const string NorthernLightsPlant = "Northern_Lights_Plant"; internal static ConfigEntry<int> growTimeLights; internal static ConfigEntry<int> respawnTimeLights; internal static ConfigEntry<float> minScaleLights; internal static ConfigEntry<float> maxScaleLights; internal static ConfigEntry<float> growRadiusLights; internal static ConfigEntry<int> budYieldDropLights; internal const string NorthernLightsEffects = "Northern_Lights_Effects"; internal static ConfigEntry<float> jointDurationLights; internal static ConfigEntry<float> jointCooldownLights; internal static ConfigEntry<float> jointStaminaUsageValLights; internal static ConfigEntry<float> jointHealthRegenValLights; internal static ConfigEntry<float> jointStaminaRegenValLights; internal static ConfigEntry<float> jointEitrRegenValLights; internal static ConfigEntry<float> jointDamageValLights; internal static ConfigEntry<float> jointSpeedValLights; internal static ConfigEntry<float> jointJumpValLights; internal static ConfigEntry<float> jointFallSpeedLights; internal static ConfigEntry<float> jointFallDamageLights; internal const string DurbanPoisonPlant = "Durban_Poison_Plant"; internal static ConfigEntry<int> growTimePoison; internal static ConfigEntry<int> respawnTimePoison; internal static ConfigEntry<float> minScalePoison; internal static ConfigEntry<float> maxScalePoison; internal static ConfigEntry<float> growRadiusPoison; internal static ConfigEntry<int> budYieldDropPoison; internal const string DurbanPoisonEffects = "Durban_Poison_Effects"; internal static ConfigEntry<float> jointDurationPoison; internal static ConfigEntry<float> jointCooldownPoison; internal static ConfigEntry<float> jointStaminaUsageValPoison; internal static ConfigEntry<float> jointHealthRegenValPoison; internal static ConfigEntry<float> jointStaminaRegenValPoison; internal static ConfigEntry<float> jointEitrRegenValPoison; internal static ConfigEntry<float> jointDamageValPoison; internal static ConfigEntry<float> jointSpeedValPoison; internal static ConfigEntry<float> jointJumpValPoison; internal static ConfigEntry<float> jointFallSpeedPoison; internal static ConfigEntry<float> jointFallDamagePoison; internal const string LibertyPlant = "Liberty_Cap_Mushroom"; internal static ConfigEntry<int> growTimeLiberty; internal static ConfigEntry<int> respawnTimeLiberty; internal static ConfigEntry<float> minScaleLiberty; internal static ConfigEntry<float> maxScaleLiberty; internal static ConfigEntry<float> growRadiusLiberty; internal static ConfigEntry<int> libertyYieldDrop; internal const string LibertyEffects = "Liberty_Cap_Effects"; internal static ConfigEntry<float> libertyDuration; internal static ConfigEntry<float> libertyCooldown; internal static ConfigEntry<float> libertyStaminaUsageVal; internal static ConfigEntry<float> libertyHealthRegenVal; internal static ConfigEntry<float> libertyStaminaRegenVal; internal static ConfigEntry<float> libertyEitrRegenVal; internal static ConfigEntry<float> libertyDamageVal; internal static ConfigEntry<float> libertySpeedVal; internal static ConfigEntry<float> libertyJumpVal; internal static ConfigEntry<float> libertyFallSpeed; internal static ConfigEntry<float> libertyFallDamage; internal const string RastaTroll = "Rasta_Trolls"; internal static ConfigEntry<bool> enableTroll; internal static ConfigEntry<GlobalSpawnKeys> globalKeyTroll; internal static ConfigEntry<bool> outsideBlackForest; internal static ConfigEntry<bool> huntPlayerTroll; internal static ConfigEntry<int> minLevelTroll; internal static ConfigEntry<int> maxLevelTroll; internal static ConfigEntry<float> healthTroll; internal static ConfigEntry<bool> canBeTamedTroll; internal static ConfigEntry<bool> startTamedTroll; internal static ConfigEntry<float> tamingTimeTroll; internal static ConfigEntry<float> fedDurationTroll; internal static ConfigEntry<float> trophyDropTroll; internal const string RastaTrollProcreation = "Rasta_Trolls_Procreation"; internal static ConfigEntry<bool> enableProcreationTroll; internal static ConfigEntry<float> totalCheckRangeTroll; internal static ConfigEntry<float> pregnancyChanceTroll; internal static ConfigEntry<float> pregnancyDurationTroll; internal static ConfigEntry<float> updateIntervalTroll; internal static ConfigEntry<float> partnerCheckRangeTroll; internal static ConfigEntry<int> maxCreaturesTroll; internal static ConfigEntry<int> requiredLoveTroll; internal static ConfigEntry<float> infantHealthTroll; internal static ConfigEntry<float> infantGrowTimeTroll; internal static ConfigEntry<int> infantLevelTroll; internal const string CreatureStats = "Creature_Status"; internal static ConfigEntry<bool> showExtendedName; internal static ConfigEntry<bool> showFoodDuration; internal static ConfigEntry<bool> showPregnancy; internal static ConfigEntry<bool> showPregnancyProgress; internal static ConfigEntry<bool> showLovePoints; internal static ConfigEntry<bool> showGrowth; internal static ConfigEntry<float> viewDistance; public static void InitConfigs(ConfigFile config) { enablePlugin = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "EnableWeedheim", true, "Enable the Weedheim plugin.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); enableLogo = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "EnableLogo", true, "Enable the Weedheim logo.\n", false, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); enableTrippingVFX = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "EnableTrippingVFX", true, "Enable a rainbow colour effect while tripping.\n", false, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); enableStonedVFX = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "EnableStonedVFX", true, "Enable a red colour effect while stoned.\n", false, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); ignoreWindspeed = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "BudmasterWindIntensity", false, "If on Budmaster2000 always produces at average speed, regardless of wind intensity.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); disableRoofCheck = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "DisableRoofCheck", true, "Enable this for the plants & mushrooms to be grown under a roof.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); disableRestriction = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "DisableBiomeRestriction", true, "Enable this for the cannabis plants to be grown in any biome.\n\nDefault Biomes:\nMeadows = Purple Kush,\nSwamp = Durban Poison,\nMountain = White Widow,\nBlackForest = Black Cherry,\nPlains = Honey Badger,\nAshLands = Burning Desire,\nDeepNorth = Northern Lights,\nMistlands = Blue Mystic\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); showGrowTimer = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "ShowGrowTimer", true, "Display growth time remaining on cannabis plants and mushrooms.\n", false, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); showGrowPercent = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "ShowGrowPercent", false, "Display growth time remaining as percentage on cannabis plants and mushrooms.\n", false, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); groundOnly = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "PlantGroundOnly", true, "Enable this for the plants & mushrooms to be planted on the ground only.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); groundOnly.SettingChanged += WeedheimMod.OnMainConfigChanged; needCultivated = ConfigFileExtensions.BindConfigInOrder<bool>(config, "General_Settings", "PlantCultivatedGround", false, "Enable this for the plants & mushrooms to only be grown on cultivated ground.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); needCultivated.SettingChanged += WeedheimMod.OnMainConfigChanged; enableWishbone = ConfigFileExtensions.BindConfigInOrder<bool>(config, "Belt_Settings", "EnableWishbone", true, "Enable wishbone on the belt.\n(un-equip, then re-equip belt for setting to take effect).", false, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); enableWishbone.SettingChanged += WeedheimMod.OnMainConfigChanged; DetectSilverDistance = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "SilverDistance", 20f, "At what distance to detect silver.\n (un-equip, then re-equip belt for setting to take effect).", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(10f, 60f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); DetectMudPileDistance = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "MudPileDistance", 20f, "At what distance to detect mud piles.\n(un-equip, then re-equip belt for setting to take effect).", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(10f, 60f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); DetectBuriedDistance = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "BuriedDistance", 20f, "At what distance to detect buried treasure.\n(un-equip, then re-equip belt for setting to take effect).", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(10f, 60f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); DetectMosquitoDistance = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "MosquitoDistance", 80f, "At what distance to detect Deathsquitos.\n(un-equip, then re-equip belt for setting to take effect).", false, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 80f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); closeFrequency = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "CloseFrequency", 0.3f, "Speed the beacon pings at.\n(un-equip, then re-equip belt for setting to take effect).", false, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 1f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); closeFrequency.SettingChanged += WeedheimMod.OnMainConfigChanged; distantFrequency = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "DistantFrequency", 3f, "Speed the beacon pings at.\n(un-equip, then re-equip belt for setting to take effect).", false, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(2f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); distantFrequency.SettingChanged += WeedheimMod.OnMainConfigChanged; enableDemister = ConfigFileExtensions.BindConfigInOrder<bool>(config, "Belt_Settings", "EnableDemister", true, "Enable demister on the belt.\n(un-equip, then re-equip belt for setting to take effect).", false, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); demisterRange = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "DemisterRange", 35f, "Maximum range for the demister.\n(un-equip, then re-equip belt for setting to take effect).", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 50f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); demisterRange.SettingChanged += WeedheimMod.OnMainConfigChanged; maxCarryWeight = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "CarryWeight", 150f, "Maximum additional carry weight.\n(un-equip, then re-equip belt for setting to take effect).", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 300f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxCarryWeight.SettingChanged += WeedheimMod.OnMainConfigChanged; stealthModifier = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "StealthModifier", 0f, "Stealth modifier from belt.\n(un-equip, then re-equip belt for setting to take effect).", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); stealthModifier.SettingChanged += WeedheimMod.OnMainConfigChanged; speedModifier = ConfigFileExtensions.BindConfigInOrder<float>(config, "Belt_Settings", "SpeedModifier", 0f, "Speed modifier from belt.\n(un-equip, then re-equip belt for setting to take effect).", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); speedModifier.SettingChanged += WeedheimMod.OnMainConfigChanged; bongDuration = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongEffectDuration", 300f, "Effective time in seconds for smoking bongs to last.\n(Default 300 (5mins)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongDuration.SettingChanged += WeedheimMod.OnMainConfigChanged; bongCooldown = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongEffectCooldown", 60f, "Wait time in seconds before the next bong may be consumed.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongCooldown.SettingChanged += WeedheimMod.OnMainConfigChanged; bongStaminaUsageVal = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongStaminaUsage", 0.2f, "Percentage amount for stamina usage.\nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(-1f, 1f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongStaminaUsageVal.SettingChanged += WeedheimMod.OnMainConfigChanged; bongStaminaRegenVal = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongStaminaRegen", 1f, "Percentage amount for stamina regeneration.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongStaminaRegenVal.SettingChanged += WeedheimMod.OnMainConfigChanged; bongHealthRegenVal = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongHealthRegen", 1.5f, "Percentage amount for health regeneration.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongHealthRegenVal.SettingChanged += WeedheimMod.OnMainConfigChanged; bongEitrRegenVal = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongEitrRegen", 1.5f, "Percentage amount for eitr regeneration.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongEitrRegenVal.SettingChanged += WeedheimMod.OnMainConfigChanged; bongDamageVal = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongDamageModifier", 1f, "Damage modifier from smoking bongs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongDamageVal.SettingChanged += WeedheimMod.OnMainConfigChanged; bongSpeedVal = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongSpeedModifier", -0.2f, "Speed modifier from smoking bongs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(-1f, 1f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongSpeedVal.SettingChanged += WeedheimMod.OnMainConfigChanged; bongJumpVal = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongJumpModifier", -0.2f, "Jump height modifier from smoking bongs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(-1f, 1f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongJumpVal.SettingChanged += WeedheimMod.OnMainConfigChanged; bongFallSpeed = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongFallSpeed", 0f, "Fall Speed modifier from smoking bongs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 10f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongFallSpeed.SettingChanged += WeedheimMod.OnMainConfigChanged; bongFallDamage = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongFallDamage", 0f, "Fall Damage modifier from smoking bongs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongFallDamage.SettingChanged += WeedheimMod.OnMainConfigChanged; bongRested = ConfigFileExtensions.BindConfigInOrder<bool>(config, "Bong_Settings", "BongRestedBuff", true, "Enable bong rested buff.", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongRested.SettingChanged += WeedheimMod.OnMainConfigChanged; bongRestedDuration = ConfigFileExtensions.BindConfigInOrder<float>(config, "Bong_Settings", "BongRestedDuration", 300f, "How many seconds should the Rested Buff last?\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(60f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bongRestedDuration.SettingChanged += WeedheimMod.OnMainConfigChanged; bedCheckExposure = ConfigFileExtensions.BindConfigInOrder<bool>(config, "Sleeping_Bag_Settings", "DisableExposureCheck", true, "Disable exposure check when using the sleeping bag.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bedCheckWet = ConfigFileExtensions.BindConfigInOrder<bool>(config, "Sleeping_Bag_Settings", "DisableWetCheck", true, "Disable wet check when using the sleeping bag.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bedCheckFire = ConfigFileExtensions.BindConfigInOrder<bool>(config, "Sleeping_Bag_Settings", "DisableFireCheck", true, "Disable fire check when using the sleeping bag.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); bedCheckEnemies = ConfigFileExtensions.BindConfigInOrder<bool>(config, "Sleeping_Bag_Settings", "DisableEnemiesCheck", true, "Disable enemy check when using the sleeping bag.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimeBadger = ConfigFileExtensions.BindConfigInOrder<int>(config, "Honey_Badger_Plant", "PlantGrowTime", 3600, "Time in seconds for a plant to grow.\n(86400 = 24hrs, 43200 = 12hrs, 21600 = 6hrs, 3600 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(60, 604800), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimeBadger.SettingChanged += WeedheimMod.OnPlantConfigChanged; minScaleBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Plant", "MinimumPlantScale", 0.9f, "Minimum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); minScaleBadger.SettingChanged += WeedheimMod.OnPlantConfigChanged; maxScaleBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Plant", "MaximumPlantScale", 1.1f, "Maximum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxScaleBadger.SettingChanged += WeedheimMod.OnPlantConfigChanged; growRadiusBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Plant", "PlantGrowRadius", 0.5f, "Area needed for a plant to grow healthy.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growRadiusBadger.SettingChanged += WeedheimMod.OnPlantConfigChanged; respawnTimeBadger = ConfigFileExtensions.BindConfigInOrder<int>(config, "Honey_Badger_Plant", "BudRespawnTime", 1440, "Time in minutes for buds to respawn.\n(1440 = 24hrs, 720 = 12hrs, 360 = 6hrs, 60 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10080), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); respawnTimeBadger.SettingChanged += WeedheimMod.OnPlantConfigChanged; budYieldDropBadger = ConfigFileExtensions.BindConfigInOrder<int>(config, "Honey_Badger_Plant", "BudDropAmount", 9, "Amount of buds to drop from a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); budYieldDropBadger.SettingChanged += WeedheimMod.OnPlantConfigChanged; jointDurationBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerEffectDuration", 60f, "Effective time in seconds for smoking a spliff to last.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDurationBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointCooldownBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerEffectCooldown", 60f, "Wait time in seconds before the next joint may be smoked.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointCooldownBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaUsageValBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerStaminaUsage", 0.1f, "Percentage amount for Stamina usage.\nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaUsageValBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaRegenValBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerStaminaRegen", 1f, "Percentage amount for Stamina regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaRegenValBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointHealthRegenValBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerHealthRegen", 1.1f, "Percentage amount for Health regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointHealthRegenValBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointEitrRegenValBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerEitrRegen", 1.1f, "Percentage amount for Eitr regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointEitrRegenValBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointDamageValBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerDamageModifier", 1f, "Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDamageValBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointSpeedValBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerSpeedModifier", -0.1f, "Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointSpeedValBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointJumpValBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "BadgerJumpModifier", -0.1f, "Jump height modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointJumpValBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallSpeedBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "FallSpeedModifier", 0f, "Fall Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallSpeedBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallDamageBadger = ConfigFileExtensions.BindConfigInOrder<float>(config, "Honey_Badger_Effects", "FallDamageModifier", 0f, "Fall Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallDamageBadger.SettingChanged += WeedheimMod.OnEffectConfigChanged; growTimeCherry = ConfigFileExtensions.BindConfigInOrder<int>(config, "Black_Cherry_Plant", "PlantGrowTime", 3600, "Time in seconds for a plant to grow.\n(86400 = 24hrs, 43200 = 12hrs, 21600 = 6hrs, 3600 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(60, 604800), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimeCherry.SettingChanged += WeedheimMod.OnPlantConfigChanged; minScaleCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Plant", "MinimumPlantScale", 0.9f, "Minimum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); minScaleCherry.SettingChanged += WeedheimMod.OnPlantConfigChanged; maxScaleCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Plant", "MaximumPlantScale", 1.1f, "Maximum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxScaleCherry.SettingChanged += WeedheimMod.OnPlantConfigChanged; growRadiusCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Plant", "PlantGrowRadius", 0.5f, "Area needed for a plant to grow healthy.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growRadiusCherry.SettingChanged += WeedheimMod.OnPlantConfigChanged; respawnTimeCherry = ConfigFileExtensions.BindConfigInOrder<int>(config, "Black_Cherry_Plant", "BudRespawnTime", 1440, "Time in minutes for buds to respawn.\n(1440 = 24hrs, 720 = 12hrs, 360 = 6hrs, 60 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10080), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); respawnTimeCherry.SettingChanged += WeedheimMod.OnPlantConfigChanged; budYieldDropCherry = ConfigFileExtensions.BindConfigInOrder<int>(config, "Black_Cherry_Plant", "BudDropAmount", 9, "Amount of buds to drop from a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); budYieldDropCherry.SettingChanged += WeedheimMod.OnPlantConfigChanged; jointDurationCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherryEffectDuration", 60f, "Effective time in seconds for smoking a spliff to last.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDurationCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointCooldownCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherryEffectCooldown", 60f, "Wait time in seconds before the next joint may be smoked.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointCooldownCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaUsageValCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherryStaminaUsage", 0.1f, "Percentage amount for Stamina usage. \nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaUsageValCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaRegenValCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherryStaminaRegen", 1f, "Percentage amount for Stamina regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaRegenValCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointHealthRegenValCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherryHealthRegen", 1.1f, "Percentage amount for Health regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointHealthRegenValCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointEitrRegenValCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherryEitrRegen", 1.1f, "Percentage amount for Eitr regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointEitrRegenValCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointDamageValCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherryDamageModifier", 1f, "Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDamageValCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointSpeedValCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherrySpeedModifier", -0.1f, "Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointSpeedValCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointJumpValCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "CherryJumpModifier", -0.1f, "Jump height modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointJumpValCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallSpeedCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "FallSpeedModifier", 0f, "Fall Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallSpeedCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallDamageCherry = ConfigFileExtensions.BindConfigInOrder<float>(config, "Black_Cherry_Effects", "FallDamageModifier", 0f, "Fall Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallDamageCherry.SettingChanged += WeedheimMod.OnEffectConfigChanged; growTimeKush = ConfigFileExtensions.BindConfigInOrder<int>(config, "Purple_Kush_Plant", "PlantGrowTime", 3600, "Time in seconds for a plant to grow.\n(86400 = 24hrs, 43200 = 12hrs, 21600 = 6hrs, 3600 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(60, 604800), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimeKush.SettingChanged += WeedheimMod.OnPlantConfigChanged; minScaleKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Plant", "MinimumPlantScale", 0.9f, "Minimum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); minScaleKush.SettingChanged += WeedheimMod.OnPlantConfigChanged; maxScaleKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Plant", "MaximumPlantScale", 1.1f, "Maximum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxScaleKush.SettingChanged += WeedheimMod.OnPlantConfigChanged; growRadiusKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Plant", "PlantGrowRadius", 0.5f, "Area needed for a plant to grow healthy.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growRadiusKush.SettingChanged += WeedheimMod.OnPlantConfigChanged; respawnTimeKush = ConfigFileExtensions.BindConfigInOrder<int>(config, "Purple_Kush_Plant", "BudRespawnTime", 1440, "Time in minutes for buds to respawn.\n(1440 = 24hrs, 720 = 12hrs, 360 = 6hrs, 60 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10080), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); respawnTimeKush.SettingChanged += WeedheimMod.OnPlantConfigChanged; budYieldDropKush = ConfigFileExtensions.BindConfigInOrder<int>(config, "Purple_Kush_Plant", "BudDropAmount", 9, "Amount of buds to drop from a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); budYieldDropKush.SettingChanged += WeedheimMod.OnPlantConfigChanged; jointDurationKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushEffectDuration", 60f, "Effective time in seconds for smoking a spliff to last.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDurationKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointCooldownKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushEffectCooldown", 60f, "Wait time in seconds before the next joint may be smoked.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointCooldownKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaUsageValKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushStaminaUsage", 0.1f, "Percentage amount for Stamina usage.\nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaUsageValKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaRegenValKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushStaminaRegen", 1f, "Percentage amount for Stamina regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaRegenValKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointHealthRegenValKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushHealthRegen", 1.1f, "Percentage amount for Health regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointHealthRegenValKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointEitrRegenValKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushEitrRegen", 1.1f, "Percentage amount for Eitr regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointEitrRegenValKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointDamageValKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushDamageModifier", 1f, "Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDamageValKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointSpeedValKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushSpeedModifier", -0.1f, "Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointSpeedValKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointJumpValKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "KushJumpModifier", -0.1f, "Jump height modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointJumpValKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallSpeedKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "FallSpeedModifier", 0f, "Fall Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallSpeedKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallDamageKush = ConfigFileExtensions.BindConfigInOrder<float>(config, "Purple_Kush_Effects", "FallDamageModifier", 0f, "Fall Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallDamageKush.SettingChanged += WeedheimMod.OnEffectConfigChanged; growTimeMystic = ConfigFileExtensions.BindConfigInOrder<int>(config, "Blue_Mystic_Plant", "PlantGrowTime", 3600, "Time in seconds for a plant to grow.\n(86400 = 24hrs, 43200 = 12hrs, 21600 = 6hrs, 3600 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(60, 604800), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimeMystic.SettingChanged += WeedheimMod.OnPlantConfigChanged; minScaleMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Plant", "MinimumPlantScale", 0.9f, "Minimum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); minScaleMystic.SettingChanged += WeedheimMod.OnPlantConfigChanged; maxScaleMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Plant", "MaximumPlantScale", 1.1f, "Maximum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxScaleMystic.SettingChanged += WeedheimMod.OnPlantConfigChanged; growRadiusMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Plant", "PlantGrowRadius", 0.5f, "Area needed for a plant to grow healthy.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growRadiusMystic.SettingChanged += WeedheimMod.OnPlantConfigChanged; respawnTimeMystic = ConfigFileExtensions.BindConfigInOrder<int>(config, "Blue_Mystic_Plant", "BudRespawnTime", 1440, "Time in minutes for buds to respawn.\n(1440 = 24hrs, 720 = 12hrs, 360 = 6hrs, 60 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10080), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); respawnTimeMystic.SettingChanged += WeedheimMod.OnPlantConfigChanged; budYieldDropMystic = ConfigFileExtensions.BindConfigInOrder<int>(config, "Blue_Mystic_Plant", "BudDropAmount", 9, "Amount of buds to drop from a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); budYieldDropMystic.SettingChanged += WeedheimMod.OnPlantConfigChanged; jointDurationMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticEffectDuration", 60f, "Effective time in seconds for smoking a spliff to last.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDurationMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointCooldownMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticEffectCooldown", 60f, "Wait time in seconds before the next joint may be smoked.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointCooldownMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaUsageValMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticStaminaUsage", 0.1f, "Percentage amount for Stamina usage.\nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaUsageValMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaRegenValMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticStaminaRegen", 1f, "Percentage amount for Stamina regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaRegenValMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointHealthRegenValMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticHealthRegen", 1.1f, "Percentage amount for Health regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointHealthRegenValMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointEitrRegenValMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticEitrRegen", 1.1f, "Percentage amount for Eitr regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointEitrRegenValMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointDamageValMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticDamageModifier", 1f, "Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDamageValMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointSpeedValMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticSpeedModifier", -0.1f, "Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointSpeedValMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointJumpValMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "MysticJumpModifier", -0.1f, "Jump height modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointJumpValMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallSpeedMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "FallSpeedModifier", 0f, "Fall Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallSpeedMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallDamageMystic = ConfigFileExtensions.BindConfigInOrder<float>(config, "Blue_Mystic_Effects", "FallDamageModifier", 0f, "Fall Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallDamageMystic.SettingChanged += WeedheimMod.OnEffectConfigChanged; growTimeWidow = ConfigFileExtensions.BindConfigInOrder<int>(config, "White_Widow_Plant", "PlantGrowTime", 3600, "Time in seconds for a plant to grow.\n(86400 = 24hrs, 43200 = 12hrs, 21600 = 6hrs, 3600 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(60, 604800), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimeWidow.SettingChanged += WeedheimMod.OnPlantConfigChanged; minScaleWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Plant", "MinimumPlantScale", 0.9f, "Minimum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); minScaleWidow.SettingChanged += WeedheimMod.OnPlantConfigChanged; maxScaleWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Plant", "MaximumPlantScale", 1.1f, "Maximum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxScaleWidow.SettingChanged += WeedheimMod.OnPlantConfigChanged; growRadiusWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Plant", "PlantGrowRadius", 0.5f, "Area needed for a plant to grow healthy.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growRadiusWidow.SettingChanged += WeedheimMod.OnPlantConfigChanged; respawnTimeWidow = ConfigFileExtensions.BindConfigInOrder<int>(config, "White_Widow_Plant", "BudRespawnTime", 1440, "Time in minutes for buds to respawn.\n(1440 = 24hrs, 720 = 12hrs, 360 = 6hrs, 60 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10080), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); respawnTimeWidow.SettingChanged += WeedheimMod.OnPlantConfigChanged; budYieldDropWidow = ConfigFileExtensions.BindConfigInOrder<int>(config, "White_Widow_Plant", "BudDropAmount", 9, "Amount of buds to drop from a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); budYieldDropWidow.SettingChanged += WeedheimMod.OnPlantConfigChanged; jointDurationWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowEffectDuration", 60f, "Effective time in seconds for smoking a spliff to last.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDurationWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointCooldownWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowEffectCooldown", 60f, "Wait time in seconds before the next joint may be smoked.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointCooldownWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaUsageValWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowStaminaUsage", 0.1f, "Percentage amount for Stamina usage.\nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaUsageValWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaRegenValWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowStaminaRegen", 1f, "Percentage amount for Stamina regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaRegenValWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointHealthRegenValWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowHealthRegen", 1.1f, "Percentage amount for Health regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointHealthRegenValWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointEitrRegenValWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowEitrRegen", 1.1f, "Percentage amount for Eitr regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointEitrRegenValWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointDamageValWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowDamageModifier", 1f, "Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDamageValWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointSpeedValWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowSpeedModifier", -0.1f, "Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointSpeedValWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointJumpValWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "WidowJumpModifier", -0.1f, "Jump height modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointJumpValWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallSpeedWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "FallSpeedModifier", 0f, "Fall Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallSpeedWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallDamageWidow = ConfigFileExtensions.BindConfigInOrder<float>(config, "White_Widow_Effects", "FallDamageModifier", 0f, "Fall Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallDamageWidow.SettingChanged += WeedheimMod.OnEffectConfigChanged; growTimeDesire = ConfigFileExtensions.BindConfigInOrder<int>(config, "Burning_Desire_Plant", "PlantGrowTime", 3600, "Time in seconds for a plant to grow.\n(86400 = 24hrs, 43200 = 12hrs, 21600 = 6hrs, 3600 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(60, 604800), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimeDesire.SettingChanged += WeedheimMod.OnPlantConfigChanged; minScaleDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Plant", "MinimumPlantScale", 0.9f, "Minimum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); minScaleDesire.SettingChanged += WeedheimMod.OnPlantConfigChanged; maxScaleDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Plant", "MaximumPlantScale", 1.1f, "Maximum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxScaleDesire.SettingChanged += WeedheimMod.OnPlantConfigChanged; growRadiusDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Plant", "PlantGrowRadius", 0.5f, "Area needed for a plant to grow healthy.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growRadiusDesire.SettingChanged += WeedheimMod.OnPlantConfigChanged; respawnTimeDesire = ConfigFileExtensions.BindConfigInOrder<int>(config, "Burning_Desire_Plant", "BudRespawnTime", 1440, "Time in minutes for buds to respawn.\n(1440 = 24hrs, 720 = 12hrs, 360 = 6hrs, 60 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10080), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); respawnTimeDesire.SettingChanged += WeedheimMod.OnPlantConfigChanged; budYieldDropDesire = ConfigFileExtensions.BindConfigInOrder<int>(config, "Burning_Desire_Plant", "BudDropAmount", 9, "Amount of buds to drop from a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); budYieldDropDesire.SettingChanged += WeedheimMod.OnPlantConfigChanged; jointDurationDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireEffectDuration", 60f, "Effective time in seconds for smoking a spliff to last.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDurationDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointCooldownDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireEffectCooldown", 60f, "Wait time in seconds before the next joint may be smoked.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointCooldownDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaUsageValDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireStaminaUsage", 0.1f, "Percentage amount for Stamina usage.\nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaUsageValDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaRegenValDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireStaminaRegen", 1f, "Percentage amount for Stamina regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaRegenValDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointHealthRegenValDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireHealthRegen", 1.1f, "Percentage amount for Health regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointHealthRegenValDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointEitrRegenValDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireEitrRegen", 1.1f, "Percentage amount for Eitr regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointEitrRegenValDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointDamageValDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireDamageModifier", 1f, "Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDamageValDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointSpeedValDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireSpeedModifier", -0.1f, "Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointSpeedValDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointJumpValDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "DesireJumpModifier", -0.1f, "Jump height modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointJumpValDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallSpeedDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "FallSpeedModifier", 0f, "Fall Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallSpeedDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallDamageDesire = ConfigFileExtensions.BindConfigInOrder<float>(config, "Burning_Desire_Effects", "FallDamageModifier", 0f, "Fall Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallDamageDesire.SettingChanged += WeedheimMod.OnEffectConfigChanged; growTimeLights = ConfigFileExtensions.BindConfigInOrder<int>(config, "Northern_Lights_Plant", "PlantGrowTime", 3600, "Time in seconds for a plant to grow.\n(86400 = 24hrs, 43200 = 12hrs, 21600 = 6hrs, 3600 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(60, 604800), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimeLights.SettingChanged += WeedheimMod.OnPlantConfigChanged; minScaleLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Plant", "MinimumPlantScale", 0.9f, "Minimum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); minScaleLights.SettingChanged += WeedheimMod.OnPlantConfigChanged; maxScaleLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Plant", "MaximumPlantScale", 1.1f, "Maximum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxScaleLights.SettingChanged += WeedheimMod.OnPlantConfigChanged; growRadiusLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Plant", "PlantGrowRadius", 0.5f, "Area needed for a plant to grow healthy.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growRadiusLights.SettingChanged += WeedheimMod.OnPlantConfigChanged; respawnTimeLights = ConfigFileExtensions.BindConfigInOrder<int>(config, "Northern_Lights_Plant", "BudRespawnTime", 1440, "Time in minutes for buds to respawn.\n(1440 = 24hrs, 720 = 12hrs, 360 = 6hrs, 60 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10080), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); respawnTimeLights.SettingChanged += WeedheimMod.OnPlantConfigChanged; budYieldDropLights = ConfigFileExtensions.BindConfigInOrder<int>(config, "Northern_Lights_Plant", "BudDropAmount", 9, "Amount of buds to drop from a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); budYieldDropLights.SettingChanged += WeedheimMod.OnPlantConfigChanged; jointDurationLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsEffectDuration", 60f, "Effective time in seconds for smoking a spliff to last.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDurationLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointCooldownLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsEffectCooldown", 60f, "Wait time in seconds before the next joint may be smoked.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointCooldownLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaUsageValLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsStaminaUsage", 0.1f, "Percentage amount for Stamina usage.\nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaUsageValLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaRegenValLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsStaminaRegen", 1f, "Percentage amount for Stamina regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaRegenValLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointHealthRegenValLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsHealthRegen", 1.1f, "Percentage amount for Health regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointHealthRegenValLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointEitrRegenValLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsEitrRegen", 1.1f, "Percentage amount for Eitr regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointEitrRegenValLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointDamageValLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsDamageModifier", 1f, "Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDamageValLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointSpeedValLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsSpeedModifier", -0.1f, "Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointSpeedValLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointJumpValLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "LightsJumpModifier", -0.1f, "Jump height modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointJumpValLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallSpeedLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "FallSpeedModifier", 0f, "Fall Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallSpeedLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallDamageLights = ConfigFileExtensions.BindConfigInOrder<float>(config, "Northern_Lights_Effects", "FallDamageModifier", 0f, "Fall Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallDamageLights.SettingChanged += WeedheimMod.OnEffectConfigChanged; growTimePoison = ConfigFileExtensions.BindConfigInOrder<int>(config, "Durban_Poison_Plant", "PlantGrowTime", 3600, "Time in seconds for a plant to grow.\n(86400 = 24hrs, 43200 = 12hrs, 21600 = 6hrs, 3600 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(60, 604800), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growTimePoison.SettingChanged += WeedheimMod.OnPlantConfigChanged; minScalePoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Plant", "MinimumPlantScale", 0.9f, "Minimum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); minScalePoison.SettingChanged += WeedheimMod.OnPlantConfigChanged; maxScalePoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Plant", "MaximumPlantScale", 1.1f, "Maximum scale of a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2.5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); maxScalePoison.SettingChanged += WeedheimMod.OnPlantConfigChanged; growRadiusPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Plant", "PlantGrowRadius", 0.5f, "Area needed for a plant to grow healthy.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); growRadiusPoison.SettingChanged += WeedheimMod.OnPlantConfigChanged; respawnTimePoison = ConfigFileExtensions.BindConfigInOrder<int>(config, "Durban_Poison_Plant", "BudRespawnTime", 1440, "Time in minutes for buds to respawn.\n(1440 = 24hrs, 720 = 12hrs, 360 = 6hrs, 60 = 1hr).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 10080), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); respawnTimePoison.SettingChanged += WeedheimMod.OnPlantConfigChanged; budYieldDropPoison = ConfigFileExtensions.BindConfigInOrder<int>(config, "Durban_Poison_Plant", "BudDropAmount", 9, "Amount of buds to drop from a plant.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 20), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); budYieldDropPoison.SettingChanged += WeedheimMod.OnPlantConfigChanged; jointDurationPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonEffectDuration", 60f, "Effective time in seconds for smoking a spliff to last.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDurationPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointCooldownPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonEffectCooldown", 60f, "Wait time in seconds before the next joint may be smoked.\n(Default 60 (1min)).\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 1200f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointCooldownPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaUsageValPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonStaminaUsage", 0.1f, "Percentage amount for Stamina usage.\nThis will effect jump, attack, block, dodge, swim and run stamina.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaUsageValPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointStaminaRegenValPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonStaminaRegen", 1f, "Percentage amount for Stamina regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointStaminaRegenValPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointHealthRegenValPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonHealthRegen", 1.1f, "Percentage amount for Health regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointHealthRegenValPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointEitrRegenValPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonEitrRegen", 1.1f, "Percentage amount for Eitr regeneration.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointEitrRegenValPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointDamageValPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonDamageModifier", 1f, "Damage modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointDamageValPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointSpeedValPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonSpeedModifier", -0.1f, "Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointSpeedValPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointJumpValPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "PoisonJumpModifier", -0.1f, "Jump height modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)null, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointJumpValPoison.SettingChanged += WeedheimMod.OnEffectConfigChanged; jointFallSpeedPoison = ConfigFileExtensions.BindConfigInOrder<float>(config, "Durban_Poison_Effects", "FallSpeedModifier", 0f, "Fall Speed modifier from smoking spliffs.\n", true, true, true, (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 5f), (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null); jointFallSpeedPoison.SettingChanged += WeedheimMod