Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Weedheim v2.0.4
plugins/Weedheim.dll
Decompiled 9 months 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