Decompiled source of FoodRandomizer v1.0.3
plugins/RSMind.FoodRandomizer.dll
Decompiled 17 hours ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using ExitGames.Client.Photon; using HarmonyLib; using Microsoft.CodeAnalysis; using Photon.Pun; using Photon.Realtime; using UnityEngine; using Zorro.Core; using pworld.Scripts.Extensions; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("RSMind.FoodRandomizer")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.3.0")] [assembly: AssemblyInformationalVersion("1.0.3+e6fb64af38d5a0a6fd0ae5976c974e25ab102bf4")] [assembly: AssemblyProduct("RSMind.FoodRandomizer")] [assembly: AssemblyTitle("FoodRandomizer")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.3.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace BepInEx { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] [Embedded] internal sealed class BepInAutoPluginAttribute : Attribute { public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace BepInEx.Preloader.Core.Patching { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] [Embedded] internal sealed class PatcherAutoPluginAttribute : Attribute { public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace Microsoft.CodeAnalysis { [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace FoodRandomizer { [BepInPlugin("RSMind.FoodRandomizer", "FoodRandomizer", "1.0.3")] public class Plugin : BaseUnityPlugin, IInRoomCallbacks { public enum BerryShuffleModes { ShuffleInType, ShuffleAll, RandomByType, Chaos, Off } public enum MushroomShuffleModes { ShuffleInType, ShuffleAll, RandomPaired, Chaos, Off } public enum ShroomberryModes { Vanilla, RandomBalanced, RandomMinimal, Chaos } public const string PROPKEY_SHUFFLE_SEED = "food_shuffle_seed"; public static ConfigEntry<BerryShuffleModes> BerryMode = null; public static ConfigEntry<MushroomShuffleModes> MushroomMode = null; public static ConfigEntry<ShroomberryModes> ShroomberryMode = null; public static ConfigEntry<int> mushroomMinHunger = null; public static ConfigEntry<int> mushroomMaxHunger = null; public static ConfigEntry<int> mushroomPoisonChance = null; public static ConfigEntry<int> mushroomMinPoisonDelay = null; public static ConfigEntry<int> mushroomMaxPoisonDelay = null; public static ConfigEntry<int> mushroomMinPoisonDuration = null; public static ConfigEntry<int> mushroomMaxPoisonDuration = null; public static ConfigEntry<int> berryMinHunger = null; public static ConfigEntry<int> berryMaxHunger = null; public static ConfigEntry<int> berryBonusChance = null; public static ConfigEntry<int> berryMinBonus = null; public static ConfigEntry<int> berryMaxBonus = null; public static ConfigEntry<int> berryDelayedPoisonChance = null; public static ConfigEntry<int> berryMinPoisonDelay = null; public static ConfigEntry<int> berryMaxPoisonDelay = null; public static ConfigEntry<int> berryMinPoisonDuration = null; public static ConfigEntry<int> berryMaxPoisonDuration = null; public static ConfigEntry<int> berryInstantPoisonChance = null; public static ConfigEntry<int> berryMinInstantPoison = null; public static ConfigEntry<int> berryMaxInstantPoison = null; public static ConfigEntry<int> berryInjuryHealChance = null; public static ConfigEntry<int> berryMinInjuryHeal = null; public static ConfigEntry<int> berryMaxInjuryHeal = null; public static ConfigEntry<int> berryHotHealChance = null; public static ConfigEntry<int> berryMinHotHeal = null; public static ConfigEntry<int> berryMaxHotHeal = null; public static ConfigEntry<int> crispberryMinHunger = null; public static ConfigEntry<int> crispberryMaxHunger = null; public static ConfigEntry<int> crispberryBonusChance = null; public static ConfigEntry<int> crispberryMinBonus = null; public static ConfigEntry<int> crispberryMaxBonus = null; public static ConfigEntry<int> crispberryDelayedPoisonChance = null; public static ConfigEntry<int> crispberryMinPoisonDelay = null; public static ConfigEntry<int> crispberryMaxPoisonDelay = null; public static ConfigEntry<int> crispberryMinPoisonDuration = null; public static ConfigEntry<int> crispberryMaxPoisonDuration = null; public static ConfigEntry<int> crispberryInstantPoisonChance = null; public static ConfigEntry<int> crispberryMinInstantPoison = null; public static ConfigEntry<int> crispberryMaxInstantPoison = null; public static ConfigEntry<int> crispberryInjuryHealChance = null; public static ConfigEntry<int> crispberryMinInjuryHeal = null; public static ConfigEntry<int> crispberryMaxInjuryHeal = null; public static ConfigEntry<int> crispberryHotHealChance = null; public static ConfigEntry<int> crispberryMinHotHeal = null; public static ConfigEntry<int> crispberryMaxHotHeal = null; public static ConfigEntry<int> berrynanaMinHunger = null; public static ConfigEntry<int> berrynanaMaxHunger = null; public static ConfigEntry<int> berrynanaBonusChance = null; public static ConfigEntry<int> berrynanaMinBonus = null; public static ConfigEntry<int> berrynanaMaxBonus = null; public static ConfigEntry<int> berrynanaDelayedPoisonChance = null; public static ConfigEntry<int> berrynanaMinPoisonDelay = null; public static ConfigEntry<int> berrynanaMaxPoisonDelay = null; public static ConfigEntry<int> berrynanaMinPoisonDuration = null; public static ConfigEntry<int> berrynanaMaxPoisonDuration = null; public static ConfigEntry<int> berrynanaInstantPoisonChance = null; public static ConfigEntry<int> berrynanaMinInstantPoison = null; public static ConfigEntry<int> berrynanaMaxInstantPoison = null; public static ConfigEntry<int> berrynanaInjuryHealChance = null; public static ConfigEntry<int> berrynanaMinInjuryHeal = null; public static ConfigEntry<int> berrynanaMaxInjuryHeal = null; public static ConfigEntry<int> berrynanaHotHealChance = null; public static ConfigEntry<int> berrynanaMinHotHeal = null; public static ConfigEntry<int> berrynanaMaxHotHeal = null; public static ConfigEntry<int> clusterberryMinHunger = null; public static ConfigEntry<int> clusterberryMaxHunger = null; public static ConfigEntry<int> clusterberryBonusChance = null; public static ConfigEntry<int> clusterberryMinBonus = null; public static ConfigEntry<int> clusterberryMaxBonus = null; public static ConfigEntry<int> clusterberryDelayedPoisonChance = null; public static ConfigEntry<int> clusterberryMinPoisonDelay = null; public static ConfigEntry<int> clusterberryMaxPoisonDelay = null; public static ConfigEntry<int> clusterberryMinPoisonDuration = null; public static ConfigEntry<int> clusterberryMaxPoisonDuration = null; public static ConfigEntry<int> clusterberryInstantPoisonChance = null; public static ConfigEntry<int> clusterberryMinInstantPoison = null; public static ConfigEntry<int> clusterberryMaxInstantPoison = null; public static ConfigEntry<int> clusterberryInjuryHealChance = null; public static ConfigEntry<int> clusterberryMinInjuryHeal = null; public static ConfigEntry<int> clusterberryMaxInjuryHeal = null; public static ConfigEntry<int> clusterberryHotHealChance = null; public static ConfigEntry<int> clusterberryMinHotHeal = null; public static ConfigEntry<int> clusterberryMaxHotHeal = null; public static ConfigEntry<int> kingberryMinHunger = null; public static ConfigEntry<int> kingberryMaxHunger = null; public static ConfigEntry<int> kingberryBonusChance = null; public static ConfigEntry<int> kingberryMinBonus = null; public static ConfigEntry<int> kingberryMaxBonus = null; public static ConfigEntry<int> kingberryDelayedPoisonChance = null; public static ConfigEntry<int> kingberryMinPoisonDelay = null; public static ConfigEntry<int> kingberryMaxPoisonDelay = null; public static ConfigEntry<int> kingberryMinPoisonDuration = null; public static ConfigEntry<int> kingberryMaxPoisonDuration = null; public static ConfigEntry<int> kingberryInstantPoisonChance = null; public static ConfigEntry<int> kingberryMinInstantPoison = null; public static ConfigEntry<int> kingberryMaxInstantPoison = null; public static ConfigEntry<int> kingberryInjuryHealChance = null; public static ConfigEntry<int> kingberryMinInjuryHeal = null; public static ConfigEntry<int> kingberryMaxInjuryHeal = null; public static ConfigEntry<int> kingberryHotHealChance = null; public static ConfigEntry<int> kingberryMinHotHeal = null; public static ConfigEntry<int> kingberryMaxHotHeal = null; public static ConfigEntry<int> prickleberryMinHunger = null; public static ConfigEntry<int> prickleberryMaxHunger = null; public static ConfigEntry<int> prickleberryBonusChance = null; public static ConfigEntry<int> prickleberryMinBonus = null; public static ConfigEntry<int> prickleberryMaxBonus = null; public static ConfigEntry<int> prickleberryDelayedPoisonChance = null; public static ConfigEntry<int> prickleberryMinPoisonDelay = null; public static ConfigEntry<int> prickleberryMaxPoisonDelay = null; public static ConfigEntry<int> prickleberryMinPoisonDuration = null; public static ConfigEntry<int> prickleberryMaxPoisonDuration = null; public static ConfigEntry<int> prickleberryInstantPoisonChance = null; public static ConfigEntry<int> prickleberryMinInstantPoison = null; public static ConfigEntry<int> prickleberryMaxInstantPoison = null; public static ConfigEntry<int> prickleberryInjuryHealChance = null; public static ConfigEntry<int> prickleberryMinInjuryHeal = null; public static ConfigEntry<int> prickleberryMaxInjuryHeal = null; public static ConfigEntry<int> prickleberryHotHealChance = null; public static ConfigEntry<int> prickleberryMinHotHeal = null; public static ConfigEntry<int> prickleberryMaxHotHeal = null; public static ConfigEntry<int> winterberryMinHunger = null; public static ConfigEntry<int> winterberryMaxHunger = null; public static ConfigEntry<int> winterberryBonusChance = null; public static ConfigEntry<int> winterberryMinBonus = null; public static ConfigEntry<int> winterberryMaxBonus = null; public static ConfigEntry<int> winterberryDelayedPoisonChance = null; public static ConfigEntry<int> winterberryMinPoisonDelay = null; public static ConfigEntry<int> winterberryMaxPoisonDelay = null; public static ConfigEntry<int> winterberryMinPoisonDuration = null; public static ConfigEntry<int> winterberryMaxPoisonDuration = null; public static ConfigEntry<int> winterberryInstantPoisonChance = null; public static ConfigEntry<int> winterberryMinInstantPoison = null; public static ConfigEntry<int> winterberryMaxInstantPoison = null; public static ConfigEntry<int> winterberryInjuryHealChance = null; public static ConfigEntry<int> winterberryMinInjuryHeal = null; public static ConfigEntry<int> winterberryMaxInjuryHeal = null; public static ConfigEntry<int> winterberryHotHealChance = null; public static ConfigEntry<int> winterberryMinHotHeal = null; public static ConfigEntry<int> winterberryMaxHotHeal = null; internal static Dictionary<string, FoodStats> VanillaStats = null; internal static Plugin instance; internal PhotonView view; private static readonly List<string> ConfigItems = new List<string> { "BerryMode", "MushroomMode", "ShroomberryMode", "mushroomMinHunger", "mushroomMaxHunger", "mushroomPoisonChance", "mushroomMinPoisonDelay", "mushroomMaxPoisonDelay", "mushroomMinPoisonDuration", "mushroomMaxPoisonDuration", "berryMinHunger", "berryMaxHunger", "berryBonusChance", "berryMinBonus", "berryMaxBonus", "berryDelayedPoisonChance", "berryMinPoisonDelay", "berryMaxPoisonDelay", "berryMinPoisonDuration", "berryMaxPoisonDuration", "berryInstantPoisonChance", "berryMinInstantPoison", "berryMaxInstantPoison", "berryInjuryHealChance", "berryMinInjuryHeal", "berryMaxInjuryHeal", "berryHotHealChance", "berryMinHotHeal", "berryMaxHotHeal", "crispberryMinHunger", "crispberryMaxHunger", "crispberryBonusChance", "crispberryMinBonus", "crispberryMaxBonus", "crispberryDelayedPoisonChance", "crispberryMinPoisonDelay", "crispberryMaxPoisonDelay", "crispberryMinPoisonDuration", "crispberryMaxPoisonDuration", "crispberryInstantPoisonChance", "crispberryMinInstantPoison", "crispberryMaxInstantPoison", "crispberryInjuryHealChance", "crispberryMinInjuryHeal", "crispberryMaxInjuryHeal", "crispberryHotHealChance", "crispberryMinHotHeal", "crispberryMaxHotHeal", "berrynanaMinHunger", "berrynanaMaxHunger", "berrynanaBonusChance", "berrynanaMinBonus", "berrynanaMaxBonus", "berrynanaDelayedPoisonChance", "berrynanaMinPoisonDelay", "berrynanaMaxPoisonDelay", "berrynanaMinPoisonDuration", "berrynanaMaxPoisonDuration", "berrynanaInstantPoisonChance", "berrynanaMinInstantPoison", "berrynanaMaxInstantPoison", "berrynanaInjuryHealChance", "berrynanaMinInjuryHeal", "berrynanaMaxInjuryHeal", "berrynanaHotHealChance", "berrynanaMinHotHeal", "berrynanaMaxHotHeal", "clusterberryMinHunger", "clusterberryMaxHunger", "clusterberryBonusChance", "clusterberryMinBonus", "clusterberryMaxBonus", "clusterberryDelayedPoisonChance", "clusterberryMinPoisonDelay", "clusterberryMaxPoisonDelay", "clusterberryMinPoisonDuration", "clusterberryMaxPoisonDuration", "clusterberryInstantPoisonChance", "clusterberryMinInstantPoison", "clusterberryMaxInstantPoison", "clusterberryInjuryHealChance", "clusterberryMinInjuryHeal", "clusterberryMaxInjuryHeal", "clusterberryHotHealChance", "clusterberryMinHotHeal", "clusterberryMaxHotHeal", "kingberryMinHunger", "kingberryMaxHunger", "kingberryBonusChance", "kingberryMinBonus", "kingberryMaxBonus", "kingberryDelayedPoisonChance", "kingberryMinPoisonDelay", "kingberryMaxPoisonDelay", "kingberryMinPoisonDuration", "kingberryMaxPoisonDuration", "kingberryInstantPoisonChance", "kingberryMinInstantPoison", "kingberryMaxInstantPoison", "kingberryInjuryHealChance", "kingberryMinInjuryHeal", "kingberryMaxInjuryHeal", "kingberryHotHealChance", "kingberryMinHotHeal", "kingberryMaxHotHeal", "prickleberryMinHunger", "prickleberryMaxHunger", "prickleberryBonusChance", "prickleberryMinBonus", "prickleberryMaxBonus", "prickleberryDelayedPoisonChance", "prickleberryMinPoisonDelay", "prickleberryMaxPoisonDelay", "prickleberryMinPoisonDuration", "prickleberryMaxPoisonDuration", "prickleberryInstantPoisonChance", "prickleberryMinInstantPoison", "prickleberryMaxInstantPoison", "prickleberryInjuryHealChance", "prickleberryMinInjuryHeal", "prickleberryMaxInjuryHeal", "prickleberryHotHealChance", "prickleberryMinHotHeal", "prickleberryMaxHotHeal", "winterberryMinHunger", "winterberryMaxHunger", "winterberryBonusChance", "winterberryMinBonus", "winterberryMaxBonus", "winterberryDelayedPoisonChance", "winterberryMinPoisonDelay", "winterberryMaxPoisonDelay", "winterberryMinPoisonDuration", "winterberryMaxPoisonDuration", "winterberryInstantPoisonChance", "winterberryMinInstantPoison", "winterberryMaxInstantPoison", "winterberryInjuryHealChance", "winterberryMinInjuryHeal", "winterberryMaxInjuryHeal", "winterberryHotHealChance", "winterberryMinHotHeal", "winterberryMaxHotHeal" }; private static readonly HashSet<string> ActionFilter = new HashSet<string> { "Action_RestoreHunger", "Action_GiveExtraStamina", "Action_InflictPoison", "Action_ModifyStatus" }; private static readonly Dictionary<string, string> BerryTypePool = new Dictionary<string, string> { { "Apple Berry Red", "crispberry" }, { "Apple Berry Green", "crispberry" }, { "Apple Berry Yellow", "crispberry" }, { "Berrynana Blue", "berrynana" }, { "Berrynana Brown", "berrynana" }, { "Berrynana Pink", "berrynana" }, { "Berrynana Yellow", "berrynana" }, { "Clusterberry Black", "clusterberry" }, { "Clusterberry Red", "clusterberry" }, { "Clusterberry Yellow", "clusterberry" }, { "Kingberry Green", "kingberry" }, { "Kingberry Purple", "kingberry" }, { "Kingberry Yellow", "kingberry" }, { "Winterberry Orange", "winterberry" }, { "Winterberry Yellow", "winterberry" }, { "Prickleberry_Red", "prickleberry" }, { "Prickleberry_Gold", "prickleberry" } }; private static readonly Dictionary<string, string> BerryAllPool = new Dictionary<string, string> { { "Apple Berry Red", "berry" }, { "Apple Berry Green", "berry" }, { "Apple Berry Yellow", "berry" }, { "Berrynana Blue", "berry" }, { "Berrynana Brown", "berry" }, { "Berrynana Pink", "berry" }, { "Berrynana Yellow", "berry" }, { "Clusterberry Black", "berry" }, { "Clusterberry Red", "berry" }, { "Clusterberry Yellow", "berry" }, { "Kingberry Green", "berry" }, { "Kingberry Purple", "berry" }, { "Kingberry Yellow", "berry" }, { "Winterberry Orange", "berry" }, { "Winterberry Yellow", "berry" }, { "Prickleberry_Red", "berry" }, { "Prickleberry_Gold", "berry" } }; private static readonly Dictionary<string, string> MushroomTypePool = new Dictionary<string, string> { { "Mushroom Chubby", "Mushroom Chubby" }, { "Mushroom Cluster", "Mushroom Cluster" }, { "Mushroom Cluster Poison", "Mushroom Cluster" }, { "Mushroom Lace", "Mushroom Bugle" }, { "Mushroom Lace Poison", "Mushroom Bugle" }, { "Mushroom Normie", "Mushroom Button" }, { "Mushroom Normie Poison", "Mushroom Button" } }; private static readonly Dictionary<string, string> MushroomAllPool = new Dictionary<string, string> { { "Mushroom Chubby", "Mushroom" }, { "Mushroom Cluster", "Mushroom" }, { "Mushroom Cluster Poison", "Mushroom" }, { "Mushroom Lace", "Mushroom" }, { "Mushroom Lace Poison", "Mushroom" }, { "Mushroom Normie", "Mushroom" }, { "Mushroom Normie Poison", "Mushroom" } }; public const string Id = "RSMind.FoodRandomizer"; internal static ManualLogSource Log { get; private set; } = null; public static string Name => "FoodRandomizer"; public static string Version => "1.0.3"; private void Awake() { //IL_1216: Unknown result type (might be due to invalid IL or missing references) //IL_121c: Expected O, but got Unknown Log = ((BaseUnityPlugin)this).Logger; BerryMode = ((BaseUnityPlugin)this).Config.Bind<BerryShuffleModes>("General", "Berry Shuffle Mode", BerryShuffleModes.RandomByType, "Shuffle in type will use only effects from variants (Red/Green/Yellow crispberry shuffle). Shuffle all will shuffle all berries. Random by type will randomize using a type's individual parameters. Chaos will randomize by global parameters."); MushroomMode = ((BaseUnityPlugin)this).Config.Bind<MushroomShuffleModes>("General", "Mushroom Shuffle Mode", MushroomShuffleModes.RandomPaired, "Shuffle in type will randomly swap each pair's toxicity (including Chubby). Shuffle all will shuffle the effects of all mushrooms. Random paired randomizes the effects of mushrooms, but guarantees one in each pair is healthy. Chaos randomizes without any guarantees."); ShroomberryMode = ((BaseUnityPlugin)this).Config.Bind<ShroomberryModes>("General", "Shroomberry Mode", ShroomberryModes.RandomBalanced, "Vanilla uses vanilla behavior. Random balanced randomizes the effects, but guarantees that there are at least 2 positive and 2 negative effects. Random minimal guarantees at least 1 positive and 1 negative effect. Chaos fully randomizes effects."); mushroomMinHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Mushrooms", "Minimum Hunger", 1, "The lower bounds, in 2.5% ticks, of randomized hunger reduction."); mushroomMaxHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Mushrooms", "Maximum Hunger", 8, "The upper bounds, in 2.5% ticks, of randomized hunger reduction."); mushroomMinPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Mushrooms", "Minimum Poison Delay", 5, "The lower bounds, in seconds, of randomized poison delay."); mushroomMaxPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Mushrooms", "Maximum Poison Delay", 15, "The upper bounds, in seconds, of randomized poison delay."); mushroomMinPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Mushrooms", "Minimum Poison Duration", 6, "The lower bounds, in seconds, of randomized poison duration. This determines the total poison applied."); mushroomMaxPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Mushrooms", "Maximum Poison Duration", 18, "The upper bounds, in seconds, of randomized poison duration. This determines the total poison applied."); mushroomPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Mushrooms", "Chaos Mode-Poison Chance", 50, "The % chance a mushroom is poisonous."); berryMinHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Minimum Hunger", 1, "The lower bounds, in 2.5% ticks, of randomized hunger reduction."); berryMaxHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Maximum Hunger", 12, "The upper bounds, in 2.5% ticks, of randomized hunger reduction."); berryBonusChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Bonus Chance", 29, "The % chance a berry grants bonus stamina."); berryMinBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Minimum Bonus Stamina", 4, "The lower bounds, in 2.5% ticks, of randomized bonus stamina."); berryMaxBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Maximum Bonus Stamina", 14, "The upper bounds, in 2.5% ticks, of randomized bonus stamina."); berryDelayedPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Delayed Poison Chance", 18, "The % chance a berry inflicts delayed poison."); berryMinPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Minimum Poison Delay", 2, "The lower bounds, in seconds, of delayed poison delay."); berryMaxPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Maximum Poison Delay", 3, "The upper bounds, in seconds, of delayed poison delay."); berryMinPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Minimum Poison Duration", 4, "The lower bounds, in seconds, of delayed poison duration. This determines the total poison applied."); berryMaxPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Maximum Poison Duration", 10, "The upper bounds, in seconds, of delayed poison duration. This determines the total poison applied."); berryInstantPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Instant Poison Chance", 6, "The % chance a berry inflicts instant poison."); berryMinInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Minimum Instant Poison", 2, "The lower bounds, in 2.5% ticks, of instant poison."); berryMaxInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Maximum Instant Poison", 2, "The upper bounds, in 2.5% ticks, of instant poison."); berryInjuryHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Injury Heal Chance", 18, "The % chance a berry heals injury."); berryMinInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Minimum Injury Heal", 4, "The lower bounds, in 2.5% ticks, of injury reduction."); berryMaxInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Maximum Injury Heal", 8, "The upper bounds, in 2.5% ticks, of injury reduction."); berryHotHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Heat Heal Chance", 24, "The % chance a berry heals heat."); berryMinHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Minimum Heat Heal", 4, "The lower bounds, in 2.5% ticks, of heat reduction."); berryMaxHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Berry Chaos Mode", "Maximum Heat Heal", 20, "The upper bounds, in 2.5% ticks, of heat reduction."); crispberryMinHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Minimum Hunger", 2, "The lower bounds, in 2.5% ticks, of randomized hunger reduction."); crispberryMaxHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Maximum Hunger", 2, "The upper bounds, in 2.5% ticks, of randomized hunger reduction."); crispberryBonusChance = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Bonus Chance", 33, "The % chance a crispberry grants bonus stamina."); crispberryMinBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Minimum Bonus Stamina", 2, "The lower bounds, in 2.5% ticks, of randomized bonus stamina."); crispberryMaxBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Maximum Bonus Stamina", 6, "The upper bounds, in 2.5% ticks, of randomized bonus stamina."); crispberryDelayedPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Delayed Poison Chance", 33, "The % chance a cripsberry inflicts delayed poison."); crispberryMinPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Minimum Poison Delay", 1, "The lower bounds, in seconds, of delayed poison delay."); crispberryMaxPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Maximum Poison Delay", 3, "The upper bounds, in seconds, of delayed poison delay."); crispberryMinPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Minimum Poison Duration", 2, "The lower bounds, in seconds, of delayed poison duration. This determines the total poison applied."); crispberryMaxPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Maximum Poison Duration", 6, "The upper bounds, in seconds, of delayed poison duration. This determines the total poison applied."); crispberryInstantPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Instant Poison Chance", 0, "The % chance a crispberry inflicts instant poison."); crispberryMinInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Minimum Instant Poison", 0, "The lower bounds, in 2.5% ticks, of instant poison."); crispberryMaxInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Maximum Instant Poison", 0, "The upper bounds, in 2.5% ticks, of instant poison."); crispberryInjuryHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Injury Heal Chance", 0, "The % chance a crispberry heals injury."); crispberryMinInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Minimum Injury Heal", 0, "The lower bounds, in 2.5% ticks, of injury reduction."); crispberryMaxInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Maximum Injury Heal", 0, "The upper bounds, in 2.5% ticks, of injury reduction."); crispberryHotHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Heat Heal Chance", 0, "The % chance a crispberry heals heat."); crispberryMinHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Minimum Heat Heal", 0, "The lower bounds, in 2.5% ticks, of heat reduction."); crispberryMaxHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Crispberries", "Maximum Heat Heal", 0, "The upper bounds, in 2.5% ticks, of heat reduction."); berrynanaMinHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Minimum Hunger", 4, "The lower bounds, in 2.5% ticks, of randomized hunger reduction."); berrynanaMaxHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Maximum Hunger", 12, "The upper bounds, in 2.5% ticks, of randomized hunger reduction."); berrynanaBonusChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Bonus Chance", 25, "The % chance a berrynana grants bonus stamina."); berrynanaMinBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Minimum Bonus Stamina", 2, "The lower bounds, in 2.5% ticks, of randomized bonus stamina."); berrynanaMaxBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Maximum Bonus Stamina", 6, "The upper bounds, in 2.5% ticks, of randomized bonus stamina."); berrynanaDelayedPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Delayed Poison Chance", 25, "The % chance a berrynana inflicts delayed poison."); berrynanaMinPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Minimum Poison Delay", 1, "The lower bounds, in seconds, of delayed poison delay."); berrynanaMaxPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Maximum Poison Delay", 3, "The upper bounds, in seconds, of delayed poison delay."); berrynanaMinPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Minimum Poison Duration", 3, "The lower bounds, in seconds, of delayed poison duration. This determines the total poison applied."); berrynanaMaxPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Maximum Poison Duration", 9, "The upper bounds, in seconds, of delayed poison duration. This determines the total poison applied."); berrynanaInstantPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Instant Poison Chance", 0, "The % chance a berrynana inflicts instant poison."); berrynanaMinInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Minimum Instant Poison", 0, "The lower bounds, in 2.5% ticks, of instant poison."); berrynanaMaxInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Maximum Instant Poison", 0, "The upper bounds, in 2.5% ticks, of instant poison."); berrynanaInjuryHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Injury Heal Chance", 0, "The % chance a berrynana heals injury."); berrynanaMinInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Minimum Injury Heal", 0, "The lower bounds, in 2.5% ticks, of injury reduction."); berrynanaMaxInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Maximum Injury Heal", 0, "The upper bounds, in 2.5% ticks, of injury reduction."); berrynanaHotHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Heat Heal Chance", 0, "The % chance a berrynana heals heat."); berrynanaMinHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Minimum Heat Heal", 0, "The lower bounds, in 2.5% ticks, of heat reduction."); berrynanaMaxHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Berrynanas", "Maximum Heat Heal", 0, "The upper bounds, in 2.5% ticks, of heat reduction."); clusterberryMinHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Minimum Hunger", 3, "The lower bounds, in 2.5% ticks, of randomized hunger reduction."); clusterberryMaxHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Maximum Hunger", 8, "The upper bounds, in 2.5% ticks, of randomized hunger reduction."); clusterberryBonusChance = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Bonus Chance", 33, "The % chance a clusterberry grants bonus stamina."); clusterberryMinBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Minimum Bonus Stamina", 2, "The lower bounds, in 2.5% ticks, of randomized bonus stamina."); clusterberryMaxBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Maximum Bonus Stamina", 6, "The upper bounds, in 2.5% ticks, of randomized bonus stamina."); clusterberryDelayedPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Delayed Poison Chance", 0, "The % chance a clusterberry inflicts delayed poison."); clusterberryMinPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Minimum Poison Delay", 0, "The lower bounds, in seconds, of delayed poison delay."); clusterberryMaxPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Maximum Poison Delay", 0, "The upper bounds, in seconds, of delayed poison delay."); clusterberryMinPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Minimum Poison Duration", 0, "The lower bounds, in seconds, of delayed poison duration. This determines the total poison applied."); clusterberryMaxPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Maximum Poison Duration", 0, "The upper bounds, in seconds, of delayed poison duration. This determines the total poison applied."); clusterberryInstantPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Instant Poison Chance", 0, "The % chance a clusterberry inflicts instant poison."); clusterberryMinInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Minimum Instant Poison", 0, "The lower bounds, in 2.5% ticks, of instant poison."); clusterberryMaxInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Maximum Instant Poison", 0, "The upper bounds, in 2.5% ticks, of instant poison."); clusterberryInjuryHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Injury Heal Chance", 33, "The % chance a clusterberry heals injury."); clusterberryMinInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Minimum Injury Heal", 6, "The lower bounds, in 2.5% ticks, of injury reduction."); clusterberryMaxInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Maximum Injury Heal", 10, "The upper bounds, in 2.5% ticks, of injury reduction."); clusterberryHotHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Heat Heal Chance", 0, "The % chance a clusterberry heals heat."); clusterberryMinHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Minimum Heat Heal", 0, "The lower bounds, in 2.5% ticks, of heat reduction."); clusterberryMaxHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Clusterberries", "Maximum Heat Heal", 0, "The upper bounds, in 2.5% ticks, of heat reduction."); kingberryMinHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Minimum Hunger", 12, "The lower bounds, in 2.5% ticks, of randomized hunger reduction."); kingberryMaxHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Maximum Hunger", 12, "The upper bounds, in 2.5% ticks, of randomized hunger reduction."); kingberryBonusChance = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Bonus Chance", 33, "The % chance a kingberry grants bonus stamina."); kingberryMinBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Minimum Bonus Stamina", 8, "The lower bounds, in 2.5% ticks, of randomized bonus stamina."); kingberryMaxBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Maximum Bonus Stamina", 20, "The upper bounds, in 2.5% ticks, of randomized bonus stamina."); kingberryDelayedPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Delayed Poison Chance", 33, "The % chance a kingberry inflicts delayed poison."); kingberryMinPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Minimum Poison Delay", 2, "The lower bounds, in seconds, of delayed poison delay."); kingberryMaxPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Maximum Poison Delay", 6, "The upper bounds, in seconds, of delayed poison delay."); kingberryMinPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Minimum Poison Duration", 5, "The lower bounds, in seconds, of delayed poison duration. This determines the total poison applied."); kingberryMaxPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Maximum Poison Duration", 15, "The upper bounds, in seconds, of delayed poison duration. This determines the total poison applied."); kingberryInstantPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Instant Poison Chance", 33, "The % chance a kingberry inflicts instant poison."); kingberryMinInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Minimum Instant Poison", 1, "The lower bounds, in 2.5% ticks, of instant poison."); kingberryMaxInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Maximum Instant Poison", 3, "The upper bounds, in 2.5% ticks, of instant poison."); kingberryInjuryHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Injury Heal Chance", 0, "The % chance a kingberry heals injury."); kingberryMinInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Minimum Injury Heal", 0, "The lower bounds, in 2.5% ticks, of injury reduction."); kingberryMaxInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Maximum Injury Heal", 0, "The upper bounds, in 2.5% ticks, of injury reduction."); kingberryHotHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Heat Heal Chance", 0, "The % chance a kingberry heals heat."); kingberryMinHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Minimum Heat Heal", 0, "The lower bounds, in 2.5% ticks, of heat reduction."); kingberryMaxHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Kingberries", "Maximum Heat Heal", 0, "The upper bounds, in 2.5% ticks, of heat reduction."); prickleberryMinHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Minimum Hunger", 4, "The lower bounds, in 2.5% ticks, of randomized hunger reduction."); prickleberryMaxHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Maximum Hunger", 8, "The upper bounds, in 2.5% ticks, of randomized hunger reduction."); prickleberryBonusChance = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Bonus Chance", 0, "The % chance a prickleberry grants bonus stamina."); prickleberryMinBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Minimum Bonus Stamina", 0, "The lower bounds, in 2.5% ticks, of randomized bonus stamina."); prickleberryMaxBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Maximum Bonus Stamina", 0, "The upper bounds, in 2.5% ticks, of randomized bonus stamina."); prickleberryDelayedPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Delayed Poison Chance", 0, "The % chance a prickleberry inflicts delayed poison."); prickleberryMinPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Minimum Poison Delay", 0, "The lower bounds, in seconds, of delayed poison delay."); prickleberryMaxPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Maximum Poison Delay", 0, "The upper bounds, in seconds, of delayed poison delay."); prickleberryMinPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Minimum Poison Duration", 0, "The lower bounds, in seconds, of delayed poison duration. This determines the total poison applied."); prickleberryMaxPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Maximum Poison Duration", 0, "The upper bounds, in seconds, of delayed poison duration. This determines the total poison applied."); prickleberryInstantPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Instant Poison Chance", 0, "The % chance a prickleberry inflicts instant poison."); prickleberryMinInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Minimum Instant Poison", 0, "The lower bounds, in 2.5% ticks, of instant poison."); prickleberryMaxInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Maximum Instant Poison", 0, "The upper bounds, in 2.5% ticks, of instant poison."); prickleberryInjuryHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Injury Heal Chance", 50, "The % chance a prickleberry heals injury."); prickleberryMinInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Minimum Injury Heal", 2, "The lower bounds, in 2.5% ticks, of injury reduction."); prickleberryMaxInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Maximum Injury Heal", 6, "The upper bounds, in 2.5% ticks, of injury reduction."); prickleberryHotHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Heat Heal Chance", 100, "The % chance a prickleberry heals heat."); prickleberryMinHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Minimum Heat Heal", 4, "The lower bounds, in 2.5% ticks, of heat reduction."); prickleberryMaxHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Prickleberries", "Maximum Heat Heal", 4, "The upper bounds, in 2.5% ticks, of heat reduction."); winterberryMinHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Minimum Hunger", 6, "The lower bounds, in 2.5% ticks, of randomized hunger reduction."); winterberryMaxHunger = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Maximum Hunger", 12, "The upper bounds, in 2.5% ticks, of randomized hunger reduction."); winterberryBonusChance = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Bonus Chance", 50, "The % chance a berry grants bonus stamina."); winterberryMinBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Minimum Bonus Stamina", 10, "The lower bounds, in 2.5% ticks, of randomized bonus stamina."); winterberryMaxBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Maximum Bonus Stamina", 18, "The upper bounds, in 2.5% ticks, of randomized bonus stamina."); winterberryDelayedPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Delayed Poison Chance", 0, "The % chance a berry inflicts delayed poison."); winterberryMinPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Minimum Poison Delay", 0, "The lower bounds, in seconds, of delayed poison delay."); winterberryMaxPoisonDelay = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Maximum Poison Delay", 0, "The upper bounds, in seconds, of delayed poison delay."); winterberryMinPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Minimum Poison Duration", 0, "The lower bounds, in seconds, of delayed poison duration. This determines the total poison applied."); winterberryMaxPoisonDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Maximum Poison Duration", 0, "The upper bounds, in seconds, of delayed poison duration. This determines the total poison applied."); winterberryInstantPoisonChance = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Instant Poison Chance", 0, "The % chance a berry inflicts instant poison."); winterberryMinInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Minimum Instant Poison", 0, "The lower bounds, in 2.5% ticks, of instant poison."); winterberryMaxInstantPoison = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Maximum Instant Poison", 0, "The upper bounds, in 2.5% ticks, of instant poison."); winterberryInjuryHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Injury Heal Chance", 50, "The % chance a berry heals injury."); winterberryMinInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Minimum Injury Heal", 6, "The lower bounds, in 2.5% ticks, of injury reduction."); winterberryMaxInjuryHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Maximum Injury Heal", 10, "The upper bounds, in 2.5% ticks, of injury reduction."); winterberryHotHealChance = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Heat Heal Chance", 100, "The % chance a berry heals heat."); winterberryMinHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Minimum Heat Heal", 12, "The lower bounds, in 2.5% ticks, of heat reduction."); winterberryMaxHotHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Winterberries", "Maximum Heat Heal", 20, "The upper bounds, in 2.5% ticks, of heat reduction."); Harmony val = new Harmony("com.rsmind.peak.FoodRandomizer"); val.PatchAll(); PhotonNetwork.AddCallbackTarget((object)this); Log.LogInfo((object)("Plugin " + Name + " is loaded!")); } private void OnDestroy() { PhotonNetwork.RemoveCallbackTarget((object)this); ResetItemDatabase(); } public unsafe void OnRoomPropertiesUpdate(Hashtable propertiesThatChanged) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) if (!((Dictionary<object, object>)(object)propertiesThatChanged).ContainsKey((object)"food_shuffle_seed")) { return; } Log.LogInfo((object)"FoodRandomiser: Watched properties updated"); ResetItemDatabase(); DictionaryEntryEnumerator enumerator = propertiesThatChanged.GetEnumerator(); try { while (((DictionaryEntryEnumerator)(ref enumerator)).MoveNext()) { DictionaryEntry current = ((DictionaryEntryEnumerator)(ref enumerator)).Current; if ((string)current.Key == "BerryMode") { BerryMode.Value = (BerryShuffleModes)current.Value; } else if ((string)current.Key == "MushroomMode") { MushroomMode.Value = (MushroomShuffleModes)current.Value; } else if ((string)current.Key == "ShroomberryMode") { ShroomberryMode.Value = (ShroomberryModes)current.Value; } else if (ConfigItems.Contains((string)current.Key)) { ((ConfigEntry<int>)typeof(Plugin).GetField((string)current.Key, BindingFlags.Static | BindingFlags.Public).GetValue(null)).Value = (int)current.Value; } } } finally { ((IDisposable)(*(DictionaryEntryEnumerator*)(&enumerator))/*cast due to .constrained prefix*/).Dispose(); } ShuffleItemDatabase((int)propertiesThatChanged[(object)"food_shuffle_seed"]); } internal static void ShuffleItemDatabase(int seed) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Invalid comparison between Unknown and I4 //IL_0b44: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Invalid comparison between Unknown and I4 //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Unknown result type (might be due to invalid IL or missing references) //IL_097d: Unknown result type (might be due to invalid IL or missing references) //IL_09c8: Unknown result type (might be due to invalid IL or missing references) //IL_09fc: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Expected O, but got Unknown //IL_0aed: Unknown result type (might be due to invalid IL or missing references) //IL_0af4: Expected O, but got Unknown //IL_0a9f: Unknown result type (might be due to invalid IL or missing references) //IL_0aa6: Expected O, but got Unknown Log.LogInfo((object)$"Got shuffle request, using seed: {seed}"); State state = Random.state; Random.InitState(seed); ItemDatabase val = SingletonAsset<ItemDatabase>.Instance; VanillaStats = new Dictionary<string, FoodStats>(); Dictionary<string, List<FoodStats>> dictionary = new Dictionary<string, List<FoodStats>>(); Dictionary<string, string> dictionary2 = ((BerryMode.Value == BerryShuffleModes.ShuffleInType || BerryMode.Value == BerryShuffleModes.RandomByType) ? BerryTypePool : BerryAllPool); if (BerryMode.Value == BerryShuffleModes.Off) { dictionary2 = new Dictionary<string, string>(); } if (MushroomMode.Value != MushroomShuffleModes.Off) { Extensions.Merge((IDictionary)dictionary2, (IDictionary)((MushroomMode.Value == MushroomShuffleModes.ShuffleInType || MushroomMode.Value == MushroomShuffleModes.RandomPaired) ? MushroomTypePool : MushroomAllPool)); } Log.LogInfo((object)"Storing vanilla food stats"); foreach (KeyValuePair<ushort, Item> item in val.itemLookup) { Item value = item.Value; if (!dictionary2.ContainsKey(((Object)value).name)) { continue; } if (!dictionary.ContainsKey(dictionary2[((Object)value).name])) { dictionary.Add(dictionary2[((Object)value).name], new List<FoodStats>()); } FoodStats foodStats = new FoodStats(); ItemAction[] components = ((Component)value).GetComponents<ItemAction>(); foreach (ItemAction val2 in components) { switch (((object)val2).GetType().Name) { case "Action_RestoreHunger": foodStats.hungerAmount = ((Action_RestoreHunger)val2).restorationAmount; break; case "Action_GiveExtraStamina": foodStats.bonusAmount = ((Action_GiveExtraStamina)val2).amount; break; case "Action_InflictPoison": foodStats.delayedPoisonDuration = ((Action_InflictPoison)val2).inflictionTime; foodStats.poisonDelay = ((Action_InflictPoison)val2).delay; break; case "Action_ModifyStatus": { STATUSTYPE statusType = ((Action_ModifyStatus)val2).statusType; if ((int)statusType != 0) { if ((int)statusType != 3) { if ((int)statusType == 8) { foodStats.hotHeal = ((Action_ModifyStatus)val2).changeAmount; } } else { foodStats.instantPoison = ((Action_ModifyStatus)val2).changeAmount; } } else { foodStats.injuryHeal = ((Action_ModifyStatus)val2).changeAmount; } break; } } } VanillaStats.Add(((Object)value).name, foodStats); dictionary[dictionary2[((Object)value).name]].Add(foodStats); } if (MushroomMode.Value == MushroomShuffleModes.RandomPaired) { Log.LogInfo((object)"Randomizing mushroom stats: Paired"); foreach (string key in dictionary.Keys) { if (!key.StartsWith("Mushroom")) { continue; } foreach (FoodStats item2 in dictionary[key]) { item2.hungerAmount = Random.Range(mushroomMinHunger.Value, mushroomMaxHunger.Value + 1); } int num = Random.Range(0, 2); if (!(key == "Mushroom Chubby") || num != 1) { FoodStats foodStats2 = dictionary[key][num]; foodStats2.poisonDelay = Random.Range(mushroomMinPoisonDelay.Value, mushroomMaxPoisonDelay.Value + 1); foodStats2.delayedPoisonDuration = Random.Range(mushroomMinPoisonDuration.Value, mushroomMaxPoisonDuration.Value + 1); if (!(key == "Mushroom Chubby")) { FoodStats foodStats3 = dictionary[key][(num + 1) % 2]; foodStats3.poisonDelay = 0f; foodStats3.delayedPoisonDuration = 0f; } } } } if (MushroomMode.Value == MushroomShuffleModes.Chaos) { Log.LogInfo((object)"Randomizing mushroom stats: Chaos"); foreach (string key2 in dictionary.Keys) { if (!key2.StartsWith("Mushroom")) { continue; } foreach (FoodStats item3 in dictionary[key2]) { item3.hungerAmount = Random.Range(mushroomMinHunger.Value, mushroomMaxHunger.Value + 1); if (Random.Range(0, 100) < mushroomPoisonChance.Value) { item3.poisonDelay = Random.Range(mushroomMinPoisonDelay.Value, mushroomMaxPoisonDelay.Value + 1); item3.delayedPoisonDuration = Random.Range(mushroomMinPoisonDuration.Value, mushroomMaxPoisonDuration.Value + 1); } else { item3.poisonDelay = 0f; item3.delayedPoisonDuration = 0f; } } } } if (BerryMode.Value == BerryShuffleModes.RandomByType || BerryMode.Value == BerryShuffleModes.Chaos) { Log.LogInfo((object)"Randomizing berry stats"); foreach (string key3 in dictionary.Keys) { if (key3.StartsWith("Mushroom")) { continue; } foreach (FoodStats item4 in dictionary[key3]) { item4.hungerAmount = (float)Random.Range(GetStatValue(key3, "MinHunger"), GetStatValue(key3, "MaxHunger") + 1) * 0.025f; if (Random.Range(0, 100) < GetStatValue(key3, "BonusChance")) { item4.bonusAmount = (float)Random.Range(GetStatValue(key3, "MinBonus"), GetStatValue(key3, "MaxBonus") + 1) * 0.025f; } else { item4.bonusAmount = 0f; } if (Random.Range(0, 100) < GetStatValue(key3, "DelayedPoisonChance")) { item4.poisonDelay = Random.Range(GetStatValue(key3, "MinPoisonDelay"), GetStatValue(key3, "MaxPoisonDelay") + 1); item4.delayedPoisonDuration = Random.Range(GetStatValue(key3, "MinPoisonDuration"), GetStatValue(key3, "MaxPoisonDuration") + 1); } else { item4.poisonDelay = 0f; item4.delayedPoisonDuration = 0f; } if (Random.Range(0, 100) < GetStatValue(key3, "InstantPoisonChance")) { item4.instantPoison = (float)Random.Range(GetStatValue(key3, "MinInstantPoison"), GetStatValue(key3, "MaxInstantPoison") + 1) * 0.025f; } else { item4.instantPoison = 0f; } if (Random.Range(0, 100) < GetStatValue(key3, "InjuryHealChance")) { item4.injuryHeal = (float)Random.Range(GetStatValue(key3, "MinInjuryHeal"), GetStatValue(key3, "MaxInjuryHeal") + 1) * -0.025f; } else { item4.injuryHeal = 0f; } if (Random.Range(0, 100) < GetStatValue(key3, "HotHealChance")) { item4.hotHeal = (float)Random.Range(GetStatValue(key3, "MinHotHeal"), GetStatValue(key3, "MaxHotHeal") + 1) * -0.025f; } else { item4.hotHeal = 0f; } } } } Log.LogInfo((object)"Applying food stats"); foreach (KeyValuePair<ushort, Item> item5 in val.itemLookup) { Item value2 = item5.Value; if (!dictionary2.ContainsKey(((Object)value2).name)) { continue; } int index = Random.Range(0, dictionary[dictionary2[((Object)value2).name]].Count); FoodStats foodStats4 = dictionary[dictionary2[((Object)value2).name]][index]; dictionary[dictionary2[((Object)value2).name]].RemoveAt(index); ItemAction[] components2 = ((Component)value2).GetComponents<ItemAction>(); foreach (ItemAction val3 in components2) { if (ActionFilter.Contains(((object)val3).GetType().Name)) { Object.Destroy((Object)(object)val3); } } Object.Destroy((Object)(object)((Component)value2).GetComponent<ItemCooking>()); if (foodStats4.hungerAmount != 0f) { Action_RestoreHunger val4 = ((Component)value2).gameObject.AddComponent<Action_RestoreHunger>(); val4.restorationAmount = foodStats4.hungerAmount; ((ItemAction)val4).OnConsumed = true; } if (foodStats4.bonusAmount != 0f) { Action_GiveExtraStamina val5 = ((Component)value2).gameObject.AddComponent<Action_GiveExtraStamina>(); val5.amount = foodStats4.bonusAmount; ((ItemAction)val5).OnConsumed = true; } if (foodStats4.injuryHeal != 0f) { Action_ModifyStatus val6 = ((Component)value2).gameObject.AddComponent<Action_ModifyStatus>(); val6.statusType = (STATUSTYPE)0; val6.changeAmount = foodStats4.injuryHeal; ((ItemAction)val6).OnConsumed = true; } if (foodStats4.hotHeal != 0f) { Action_ModifyStatus val7 = ((Component)value2).gameObject.AddComponent<Action_ModifyStatus>(); val7.statusType = (STATUSTYPE)8; val7.changeAmount = foodStats4.hotHeal; ((ItemAction)val7).OnConsumed = true; } ItemCooking val8 = ((Component)value2).gameObject.AddComponent<ItemCooking>(); if (foodStats4.instantPoison != 0f) { Action_ModifyStatus val9 = ((Component)value2).gameObject.AddComponent<Action_ModifyStatus>(); val9.statusType = (STATUSTYPE)3; val9.changeAmount = foodStats4.instantPoison; ((ItemAction)val9).OnConsumed = true; if (!dictionary2[((Object)value2).name].StartsWith("Mushroom")) { CookingBehavior_DisableScripts val10 = new CookingBehavior_DisableScripts(); val10.scriptsToDisable = CollectionExtensions.AddItem<MonoBehaviour>((IEnumerable<MonoBehaviour>)val10.scriptsToDisable, (MonoBehaviour)(object)val9).ToArray(); val8.additionalCookingBehaviors = CollectionExtensions.AddItem<AdditionalCookingBehavior>((IEnumerable<AdditionalCookingBehavior>)val8.additionalCookingBehaviors, (AdditionalCookingBehavior)(object)val10).ToArray(); } } if (foodStats4.delayedPoisonDuration != 0f) { Action_InflictPoison val11 = ((Component)value2).gameObject.AddComponent<Action_InflictPoison>(); val11.delay = foodStats4.poisonDelay; val11.inflictionTime = foodStats4.delayedPoisonDuration; val11.poisonPerSecond = 0.025f; ((ItemAction)val11).OnConsumed = true; if (!dictionary2[((Object)value2).name].StartsWith("Mushroom")) { CookingBehavior_DisableScripts val12 = new CookingBehavior_DisableScripts(); val12.scriptsToDisable = CollectionExtensions.AddItem<MonoBehaviour>((IEnumerable<MonoBehaviour>)val12.scriptsToDisable, (MonoBehaviour)(object)val11).ToArray(); val8.additionalCookingBehaviors = CollectionExtensions.AddItem<AdditionalCookingBehavior>((IEnumerable<AdditionalCookingBehavior>)val8.additionalCookingBehaviors, (AdditionalCookingBehavior)(object)val12).ToArray(); } } Action_AddOrRemoveThorns component = ((Component)value2).GetComponent<Action_AddOrRemoveThorns>(); if ((Object)(object)component != (Object)null) { CookingBehavior_DisableScripts val13 = new CookingBehavior_DisableScripts(); val13.scriptsToDisable = CollectionExtensions.AddItem<MonoBehaviour>((IEnumerable<MonoBehaviour>)val13.scriptsToDisable, (MonoBehaviour)(object)component).ToArray(); val8.additionalCookingBehaviors = CollectionExtensions.AddItem<AdditionalCookingBehavior>((IEnumerable<AdditionalCookingBehavior>)val8.additionalCookingBehaviors, (AdditionalCookingBehavior)(object)val13).ToArray(); } } Random.state = state; } internal static void ResetItemDatabase() { //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Expected O, but got Unknown //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Expected O, but got Unknown if (VanillaStats == null) { return; } ItemDatabase val = SingletonAsset<ItemDatabase>.Instance; Dictionary<string, string> berryTypePool = BerryTypePool; Extensions.Merge((IDictionary)berryTypePool, (IDictionary)MushroomTypePool); foreach (KeyValuePair<ushort, Item> item in val.itemLookup) { Item value = item.Value; if (!berryTypePool.ContainsKey(((Object)value).name)) { continue; } FoodStats foodStats = VanillaStats[((Object)value).name]; ItemAction[] components = ((Component)value).GetComponents<ItemAction>(); foreach (ItemAction val2 in components) { if (ActionFilter.Contains(((object)val2).GetType().Name)) { Object.Destroy((Object)(object)val2); } } Object.Destroy((Object)(object)((Component)value).GetComponent<ItemCooking>()); if (foodStats.hungerAmount != 0f) { Action_RestoreHunger val3 = ((Component)value).gameObject.AddComponent<Action_RestoreHunger>(); val3.restorationAmount = foodStats.hungerAmount; ((ItemAction)val3).OnConsumed = true; } if (foodStats.bonusAmount != 0f) { Action_GiveExtraStamina val4 = ((Component)value).gameObject.AddComponent<Action_GiveExtraStamina>(); val4.amount = foodStats.bonusAmount; ((ItemAction)val4).OnConsumed = true; } if (foodStats.injuryHeal != 0f) { Action_ModifyStatus val5 = ((Component)value).gameObject.AddComponent<Action_ModifyStatus>(); val5.statusType = (STATUSTYPE)0; val5.changeAmount = foodStats.injuryHeal; ((ItemAction)val5).OnConsumed = true; } if (foodStats.hotHeal != 0f) { Action_ModifyStatus val6 = ((Component)value).gameObject.AddComponent<Action_ModifyStatus>(); val6.statusType = (STATUSTYPE)8; val6.changeAmount = foodStats.hotHeal; ((ItemAction)val6).OnConsumed = true; } ItemCooking val7 = ((Component)value).gameObject.AddComponent<ItemCooking>(); if (foodStats.instantPoison != 0f) { Action_ModifyStatus val8 = ((Component)value).gameObject.AddComponent<Action_ModifyStatus>(); val8.statusType = (STATUSTYPE)3; val8.changeAmount = foodStats.instantPoison; ((ItemAction)val8).OnConsumed = true; CookingBehavior_DisableScripts val9 = new CookingBehavior_DisableScripts(); val9.scriptsToDisable = CollectionExtensions.AddItem<MonoBehaviour>((IEnumerable<MonoBehaviour>)val9.scriptsToDisable, (MonoBehaviour)(object)val8).ToArray(); val7.additionalCookingBehaviors = CollectionExtensions.AddItem<AdditionalCookingBehavior>((IEnumerable<AdditionalCookingBehavior>)val7.additionalCookingBehaviors, (AdditionalCookingBehavior)(object)val9).ToArray(); } if (foodStats.delayedPoisonDuration != 0f) { Action_InflictPoison val10 = ((Component)value).gameObject.AddComponent<Action_InflictPoison>(); val10.delay = foodStats.poisonDelay; val10.inflictionTime = foodStats.delayedPoisonDuration; val10.poisonPerSecond = 0.025f; ((ItemAction)val10).OnConsumed = true; CookingBehavior_DisableScripts val11 = new CookingBehavior_DisableScripts(); val11.scriptsToDisable = CollectionExtensions.AddItem<MonoBehaviour>((IEnumerable<MonoBehaviour>)val11.scriptsToDisable, (MonoBehaviour)(object)val10).ToArray(); val7.additionalCookingBehaviors = CollectionExtensions.AddItem<AdditionalCookingBehavior>((IEnumerable<AdditionalCookingBehavior>)val7.additionalCookingBehaviors, (AdditionalCookingBehavior)(object)val11).ToArray(); } Action_AddOrRemoveThorns component = ((Component)value).GetComponent<Action_AddOrRemoveThorns>(); if ((Object)(object)component != (Object)null) { CookingBehavior_DisableScripts val12 = new CookingBehavior_DisableScripts(); val12.scriptsToDisable = CollectionExtensions.AddItem<MonoBehaviour>((IEnumerable<MonoBehaviour>)val12.scriptsToDisable, (MonoBehaviour)(object)component).ToArray(); val7.additionalCookingBehaviors = CollectionExtensions.AddItem<AdditionalCookingBehavior>((IEnumerable<AdditionalCookingBehavior>)val7.additionalCookingBehaviors, (AdditionalCookingBehavior)(object)val12).ToArray(); } } } private static int GetStatValue(string category, string variable) { return ((ConfigEntry<int>)typeof(Plugin).GetField(category + variable, BindingFlags.Static | BindingFlags.Public).GetValue(null)).Value; } public void OnPlayerEnteredRoom(Player newPlayer) { } public void OnPlayerLeftRoom(Player otherPlayer) { } public void OnPlayerPropertiesUpdate(Player targetPlayer, Hashtable changedProps) { } public void OnMasterClientSwitched(Player newMasterClient) { } } internal class FoodStats { internal float hungerAmount; internal float bonusAmount; internal float delayedPoisonDuration; internal float poisonDelay; internal float instantPoison; internal float injuryHeal; internal float hotHeal; } } namespace FoodRandomizer.Patches { public class Hooks { [HarmonyPatch(typeof(AirportCheckInKiosk), "StartGame")] public class AirportCheckInKiosk_StartGame { public static void Prefix() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Expected O, but got Unknown //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Expected O, but got Unknown //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Expected O, but got Unknown //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Expected O, but got Unknown //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Expected O, but got Unknown //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Expected O, but got Unknown //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Expected O, but got Unknown //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Expected O, but got Unknown //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Expected O, but got Unknown //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Expected O, but got Unknown //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Expected O, but got Unknown //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Expected O, but got Unknown //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Expected O, but got Unknown //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Expected O, but got Unknown //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Expected O, but got Unknown //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Expected O, but got Unknown //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Expected O, but got Unknown //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Expected O, but got Unknown //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Expected O, but got Unknown //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Expected O, but got Unknown //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Expected O, but got Unknown //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Expected O, but got Unknown //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Expected O, but got Unknown //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Expected O, but got Unknown //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Expected O, but got Unknown //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Expected O, but got Unknown //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Expected O, but got Unknown //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Expected O, but got Unknown //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Expected O, but got Unknown //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Expected O, but got Unknown //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Expected O, but got Unknown //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Expected O, but got Unknown //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Expected O, but got Unknown //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Expected O, but got Unknown //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Expected O, but got Unknown //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0459: Expected O, but got Unknown //IL_0459: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Expected O, but got Unknown //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Expected O, but got Unknown //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Expected O, but got Unknown //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04c1: Expected O, but got Unknown //IL_04c1: Unknown result type (might be due to invalid IL or missing references) //IL_04db: Expected O, but got Unknown //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_04f5: Expected O, but got Unknown //IL_04f5: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Expected O, but got Unknown //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0529: Expected O, but got Unknown //IL_0529: Unknown result type (might be due to invalid IL or missing references) //IL_0543: Expected O, but got Unknown //IL_0543: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Expected O, but got Unknown //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_0577: Expected O, but got Unknown //IL_0577: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Expected O, but got Unknown //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Expected O, but got Unknown //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05c5: Expected O, but got Unknown //IL_05c5: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Expected O, but got Unknown //IL_05df: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: Expected O, but got Unknown //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Expected O, but got Unknown //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_062d: Expected O, but got Unknown //IL_062d: Unknown result type (might be due to invalid IL or missing references) //IL_0647: Expected O, but got Unknown //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Expected O, but got Unknown //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_067b: Expected O, but got Unknown //IL_067b: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Expected O, but got Unknown //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_06af: Expected O, but got Unknown //IL_06af: Unknown result type (might be due to invalid IL or missing references) //IL_06c9: Expected O, but got Unknown //IL_06c9: Unknown result type (might be due to invalid IL or missing references) //IL_06e3: Expected O, but got Unknown //IL_06e3: Unknown result type (might be due to invalid IL or missing references) //IL_06fd: Expected O, but got Unknown //IL_06fd: Unknown result type (might be due to invalid IL or missing references) //IL_0717: Expected O, but got Unknown //IL_0717: Unknown result type (might be due to invalid IL or missing references) //IL_0731: Expected O, but got Unknown //IL_0731: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Expected O, but got Unknown //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Expected O, but got Unknown //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_077f: Expected O, but got Unknown //IL_077f: Unknown result type (might be due to invalid IL or missing references) //IL_0799: Expected O, but got Unknown //IL_0799: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Expected O, but got Unknown //IL_07b3: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Expected O, but got Unknown //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07e7: Expected O, but got Unknown //IL_07e7: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Expected O, but got Unknown //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_081b: Expected O, but got Unknown //IL_081b: Unknown result type (might be due to invalid IL or missing references) //IL_0835: Expected O, but got Unknown //IL_0835: Unknown result type (might be due to invalid IL or missing references) //IL_084f: Expected O, but got Unknown //IL_084f: Unknown result type (might be due to invalid IL or missing references) //IL_0869: Expected O, but got Unknown //IL_0869: Unknown result type (might be due to invalid IL or missing references) //IL_0883: Expected O, but got Unknown //IL_0883: Unknown result type (might be due to invalid IL or missing references) //IL_089d: Expected O, but got Unknown //IL_089d: Unknown result type (might be due to invalid IL or missing references) //IL_08b7: Expected O, but got Unknown //IL_08b7: Unknown result type (might be due to invalid IL or missing references) //IL_08d1: Expected O, but got Unknown //IL_08d1: Unknown result type (might be due to invalid IL or missing references) //IL_08eb: Expected O, but got Unknown //IL_08eb: Unknown result type (might be due to invalid IL or missing references) //IL_0905: Expected O, but got Unknown //IL_0905: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Expected O, but got Unknown //IL_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0939: Expected O, but got Unknown //IL_0939: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Expected O, but got Unknown //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_096d: Expected O, but got Unknown //IL_096d: Unknown result type (might be due to invalid IL or missing references) //IL_0987: Expected O, but got Unknown //IL_0987: Unknown result type (might be due to invalid IL or missing references) //IL_09a1: Expected O, but got Unknown //IL_09a1: Unknown result type (might be due to invalid IL or missing references) //IL_09bb: Expected O, but got Unknown //IL_09bb: Unknown result type (might be due to invalid IL or missing references) //IL_09d5: Expected O, but got Unknown //IL_09d5: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Expected O, but got Unknown //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_0a09: Expected O, but got Unknown //IL_0a09: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Expected O, but got Unknown //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a3d: Expected O, but got Unknown //IL_0a3d: Unknown result type (might be due to invalid IL or missing references) //IL_0a57: Expected O, but got Unknown //IL_0a57: Unknown result type (might be due to invalid IL or missing references) //IL_0a71: Expected O, but got Unknown //IL_0a71: Unknown result type (might be due to invalid IL or missing references) //IL_0a8b: Expected O, but got Unknown //IL_0a8b: Unknown result type (might be due to invalid IL or missing references) //IL_0aa5: Expected O, but got Unknown //IL_0aa5: Unknown result type (might be due to invalid IL or missing references) //IL_0abf: Expected O, but got Unknown //IL_0abf: Unknown result type (might be due to invalid IL or missing references) //IL_0ad9: Expected O, but got Unknown //IL_0ad9: Unknown result type (might be due to invalid IL or missing references) //IL_0af3: Expected O, but got Unknown //IL_0af3: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: Expected O, but got Unknown //IL_0b0d: Unknown result type (might be due to invalid IL or missing references) //IL_0b27: Expected O, but got Unknown //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Expected O, but got Unknown //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Expected O, but got Unknown //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0b75: Expected O, but got Unknown //IL_0b75: Unknown result type (might be due to invalid IL or missing references) //IL_0b8f: Expected O, but got Unknown //IL_0b8f: Unknown result type (might be due to invalid IL or missing references) //IL_0ba9: Expected O, but got Unknown //IL_0ba9: Unknown result type (might be due to invalid IL or missing references) //IL_0bc3: Expected O, but got Unknown //IL_0bc3: Unknown result type (might be due to invalid IL or missing references) //IL_0bdd: Expected O, but got Unknown //IL_0bdd: Unknown result type (might be due to invalid IL or missing references) //IL_0bf7: Expected O, but got Unknown //IL_0bf7: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Expected O, but got Unknown //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c2b: Expected O, but got Unknown //IL_0c2b: Unknown result type (might be due to invalid IL or missing references) //IL_0c45: Expected O, but got Unknown //IL_0c45: Unknown result type (might be due to invalid IL or missing references) //IL_0c5f: Expected O, but got Unknown //IL_0c5f: Unknown result type (might be due to invalid IL or missing references) //IL_0c79: Expected O, but got Unknown //IL_0c79: Unknown result type (might be due to invalid IL or missing references) //IL_0c93: Expected O, but got Unknown //IL_0c93: Unknown result type (might be due to invalid IL or missing references) //IL_0cad: Expected O, but got Unknown //IL_0cad: Unknown result type (might be due to invalid IL or missing references) //IL_0cc7: Expected O, but got Unknown //IL_0cc7: Unknown result type (might be due to invalid IL or missing references) //IL_0ce1: Expected O, but got Unknown //IL_0ce1: Unknown result type (might be due to invalid IL or missing references) //IL_0cfb: Expected O, but got Unknown //IL_0cfb: Unknown result type (might be due to invalid IL or missing references) //IL_0d15: Expected O, but got Unknown //IL_0d15: Unknown result type (might be due to invalid IL or missing references) //IL_0d2f: Expected O, but got Unknown //IL_0d2f: Unknown result type (might be due to invalid IL or missing references) //IL_0d49: Expected O, but got Unknown //IL_0d49: Unknown result type (might be due to invalid IL or missing references) //IL_0d63: Expected O, but got Unknown //IL_0d63: Unknown result type (might be due to invalid IL or missing references) //IL_0d7d: Expected O, but got Unknown //IL_0d7d: Unknown result type (might be due to invalid IL or missing references) //IL_0d97: Expected O, but got Unknown //IL_0d97: Unknown result type (might be due to invalid IL or missing references) //IL_0db1: Expected O, but got Unknown //IL_0db1: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Expected O, but got Unknown //IL_0dcb: Unknown result type (might be due to invalid IL or missing references) //IL_0de5: Expected O, but got Unknown //IL_0de5: Unknown result type (might be due to invalid IL or missing references) //IL_0dff: Expected O, but got Unknown //IL_0dff: Unknown result type (might be due to invalid IL or missing references) //IL_0e19: Expected O, but got Unknown //IL_0e19: Unknown result type (might be due to invalid IL or missing references) //IL_0e33: Expected O, but got Unknown //IL_0e33: Unknown result type (might be due to invalid IL or missing references) //IL_0e4d: Expected O, but got Unknown //IL_0e4d: Unknown result type (might be due to invalid IL or missing references) //IL_0e67: Expected O, but got Unknown //IL_0e67: Unknown result type (might be due to invalid IL or missing references) //IL_0e81: Expected O, but got Unknown //IL_0e81: Unknown result type (might be due to invalid IL or missing references) //IL_0e9b: Expected O, but got Unknown //IL_0e9b: Unknown result type (might be due to invalid IL or missing references) //IL_0eb5: Expected O, but got Unknown //IL_0ebc: Expected O, but got Unknown if (PhotonNetwork.IsMasterClient) { Room currentRoom = PhotonNetwork.CurrentRoom; Hashtable val = new Hashtable(); ((Dictionary<object, object>)val).Add((object)"food_shuffle_seed", (object)Random.Range(0, int.MaxValue)); ((Dictionary<object, object>)val).Add((object)"BerryMode", (object)Plugin.BerryMode.Value); ((Dictionary<object, object>)val).Add((object)"MushroomMode", (object)Plugin.MushroomMode.Value); ((Dictionary<object, object>)val).Add((object)"ShroomberryMode", (object)Plugin.ShroomberryMode.Value); ((Dictionary<object, object>)val).Add((object)"mushroomMinHunger", (object)Plugin.mushroomMinHunger.Value); ((Dictionary<object, object>)val).Add((object)"mushroomMaxHunger", (object)Plugin.mushroomMaxHunger.Value); ((Dictionary<object, object>)val).Add((object)"mushroomPoisonChance", (object)Plugin.mushroomPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"mushroomMinPoisonDelay", (object)Plugin.mushroomMinPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"mushroomMaxPoisonDelay", (object)Plugin.mushroomMaxPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"mushroomMinPoisonDuration", (object)Plugin.mushroomMinPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"mushroomMaxPoisonDuration", (object)Plugin.mushroomMaxPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"berryMinHunger", (object)Plugin.berryMinHunger.Value); ((Dictionary<object, object>)val).Add((object)"berryMaxHunger", (object)Plugin.berryMaxHunger.Value); ((Dictionary<object, object>)val).Add((object)"berryBonusChance", (object)Plugin.berryBonusChance.Value); ((Dictionary<object, object>)val).Add((object)"berryMinBonus", (object)Plugin.berryMinBonus.Value); ((Dictionary<object, object>)val).Add((object)"berryMaxBonus", (object)Plugin.berryMaxBonus.Value); ((Dictionary<object, object>)val).Add((object)"berryDelayedPoisonChance", (object)Plugin.berryDelayedPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"berryMinPoisonDelay", (object)Plugin.berryMinPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"berryMaxPoisonDelay", (object)Plugin.berryMaxPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"berryMinPoisonDuration", (object)Plugin.berryMinPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"berryMaxPoisonDuration", (object)Plugin.berryMaxPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"berryInstantPoisonChance", (object)Plugin.berryInstantPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"berryMinInstantPoison", (object)Plugin.berryMinInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"berryMaxInstantPoison", (object)Plugin.berryMaxInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"berryInjuryHealChance", (object)Plugin.berryInjuryHealChance.Value); ((Dictionary<object, object>)val).Add((object)"berryMinInjuryHeal", (object)Plugin.berryMinInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"berryMaxInjuryHeal", (object)Plugin.berryMaxInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"berryHotHealChance", (object)Plugin.berryHotHealChance.Value); ((Dictionary<object, object>)val).Add((object)"berryMinHotHeal", (object)Plugin.berryMinHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"berryMaxHotHeal", (object)Plugin.berryMaxHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMinHunger", (object)Plugin.crispberryMinHunger.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMaxHunger", (object)Plugin.crispberryMaxHunger.Value); ((Dictionary<object, object>)val).Add((object)"crispberryBonusChance", (object)Plugin.crispberryBonusChance.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMinBonus", (object)Plugin.crispberryMinBonus.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMaxBonus", (object)Plugin.crispberryMaxBonus.Value); ((Dictionary<object, object>)val).Add((object)"crispberryDelayedPoisonChance", (object)Plugin.crispberryDelayedPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMinPoisonDelay", (object)Plugin.crispberryMinPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMaxPoisonDelay", (object)Plugin.crispberryMaxPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMinPoisonDuration", (object)Plugin.crispberryMinPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMaxPoisonDuration", (object)Plugin.crispberryMaxPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"crispberryInstantPoisonChance", (object)Plugin.crispberryInstantPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMinInstantPoison", (object)Plugin.crispberryMinInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMaxInstantPoison", (object)Plugin.crispberryMaxInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"crispberryInjuryHealChance", (object)Plugin.crispberryInjuryHealChance.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMinInjuryHeal", (object)Plugin.crispberryMinInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMaxInjuryHeal", (object)Plugin.crispberryMaxInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"crispberryHotHealChance", (object)Plugin.crispberryHotHealChance.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMinHotHeal", (object)Plugin.crispberryMinHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"crispberryMaxHotHeal", (object)Plugin.crispberryMaxHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMinHunger", (object)Plugin.berrynanaMinHunger.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMaxHunger", (object)Plugin.berrynanaMaxHunger.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaBonusChance", (object)Plugin.berrynanaBonusChance.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMinBonus", (object)Plugin.berrynanaMinBonus.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMaxBonus", (object)Plugin.berrynanaMaxBonus.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaDelayedPoisonChance", (object)Plugin.berrynanaDelayedPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMinPoisonDelay", (object)Plugin.berrynanaMinPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMaxPoisonDelay", (object)Plugin.berrynanaMaxPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMinPoisonDuration", (object)Plugin.berrynanaMinPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMaxPoisonDuration", (object)Plugin.berrynanaMaxPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaInstantPoisonChance", (object)Plugin.berrynanaInstantPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMinInstantPoison", (object)Plugin.berrynanaMinInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMaxInstantPoison", (object)Plugin.berrynanaMaxInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaInjuryHealChance", (object)Plugin.berrynanaInjuryHealChance.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMinInjuryHeal", (object)Plugin.berrynanaMinInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMaxInjuryHeal", (object)Plugin.berrynanaMaxInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaHotHealChance", (object)Plugin.berrynanaHotHealChance.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMinHotHeal", (object)Plugin.berrynanaMinHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"berrynanaMaxHotHeal", (object)Plugin.berrynanaMaxHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMinHunger", (object)Plugin.clusterberryMinHunger.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMaxHunger", (object)Plugin.clusterberryMaxHunger.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryBonusChance", (object)Plugin.clusterberryBonusChance.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMinBonus", (object)Plugin.clusterberryMinBonus.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMaxBonus", (object)Plugin.clusterberryMaxBonus.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryDelayedPoisonChance", (object)Plugin.clusterberryDelayedPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMinPoisonDelay", (object)Plugin.clusterberryMinPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMaxPoisonDelay", (object)Plugin.clusterberryMaxPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMinPoisonDuration", (object)Plugin.clusterberryMinPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMaxPoisonDuration", (object)Plugin.clusterberryMaxPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryInstantPoisonChance", (object)Plugin.clusterberryInstantPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMinInstantPoison", (object)Plugin.clusterberryMinInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMaxInstantPoison", (object)Plugin.clusterberryMaxInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryInjuryHealChance", (object)Plugin.clusterberryInjuryHealChance.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMinInjuryHeal", (object)Plugin.clusterberryMinInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMaxInjuryHeal", (object)Plugin.clusterberryMaxInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryHotHealChance", (object)Plugin.clusterberryHotHealChance.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMinHotHeal", (object)Plugin.clusterberryMinHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"clusterberryMaxHotHeal", (object)Plugin.clusterberryMaxHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMinHunger", (object)Plugin.kingberryMinHunger.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMaxHunger", (object)Plugin.kingberryMaxHunger.Value); ((Dictionary<object, object>)val).Add((object)"kingberryBonusChance", (object)Plugin.kingberryBonusChance.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMinBonus", (object)Plugin.kingberryMinBonus.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMaxBonus", (object)Plugin.kingberryMaxBonus.Value); ((Dictionary<object, object>)val).Add((object)"kingberryDelayedPoisonChance", (object)Plugin.kingberryDelayedPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMinPoisonDelay", (object)Plugin.kingberryMinPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMaxPoisonDelay", (object)Plugin.kingberryMaxPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMinPoisonDuration", (object)Plugin.kingberryMinPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMaxPoisonDuration", (object)Plugin.kingberryMaxPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"kingberryInstantPoisonChance", (object)Plugin.kingberryInstantPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMinInstantPoison", (object)Plugin.kingberryMinInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMaxInstantPoison", (object)Plugin.kingberryMaxInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"kingberryInjuryHealChance", (object)Plugin.kingberryInjuryHealChance.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMinInjuryHeal", (object)Plugin.kingberryMinInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMaxInjuryHeal", (object)Plugin.kingberryMaxInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"kingberryHotHealChance", (object)Plugin.kingberryHotHealChance.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMinHotHeal", (object)Plugin.kingberryMinHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"kingberryMaxHotHeal", (object)Plugin.kingberryMaxHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMinHunger", (object)Plugin.prickleberryMinHunger.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMaxHunger", (object)Plugin.prickleberryMaxHunger.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryBonusChance", (object)Plugin.prickleberryBonusChance.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMinBonus", (object)Plugin.prickleberryMinBonus.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMaxBonus", (object)Plugin.prickleberryMaxBonus.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryDelayedPoisonChance", (object)Plugin.prickleberryDelayedPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMinPoisonDelay", (object)Plugin.prickleberryMinPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMaxPoisonDelay", (object)Plugin.prickleberryMaxPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMinPoisonDuration", (object)Plugin.prickleberryMinPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMaxPoisonDuration", (object)Plugin.prickleberryMaxPoisonDuration.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryInstantPoisonChance", (object)Plugin.prickleberryInstantPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMinInstantPoison", (object)Plugin.prickleberryMinInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMaxInstantPoison", (object)Plugin.prickleberryMaxInstantPoison.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryInjuryHealChance", (object)Plugin.prickleberryInjuryHealChance.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMinInjuryHeal", (object)Plugin.prickleberryMinInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMaxInjuryHeal", (object)Plugin.prickleberryMaxInjuryHeal.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryHotHealChance", (object)Plugin.prickleberryHotHealChance.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMinHotHeal", (object)Plugin.prickleberryMinHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"prickleberryMaxHotHeal", (object)Plugin.prickleberryMaxHotHeal.Value); ((Dictionary<object, object>)val).Add((object)"winterberryMinHunger", (object)Plugin.winterberryMinHunger.Value); ((Dictionary<object, object>)val).Add((object)"winterberryMaxHunger", (object)Plugin.winterberryMaxHunger.Value); ((Dictionary<object, object>)val).Add((object)"winterberryBonusChance", (object)Plugin.winterberryBonusChance.Value); ((Dictionary<object, object>)val).Add((object)"winterberryMinBonus", (object)Plugin.winterberryMinBonus.Value); ((Dictionary<object, object>)val).Add((object)"winterberryMaxBonus", (object)Plugin.winterberryMaxBonus.Value); ((Dictionary<object, object>)val).Add((object)"winterberryDelayedPoisonChance", (object)Plugin.winterberryDelayedPoisonChance.Value); ((Dictionary<object, object>)val).Add((object)"winterberryMinPoisonDelay", (object)Plugin.winterberryMinPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"winterberryMaxPoisonDelay", (object)Plugin.winterberryMaxPoisonDelay.Value); ((Dictionary<object, object>)val).Add((object)"winterberryMinPoisonDuration", (object)