Decompiled source of Crystal Burden v1.5.11

Crystal_Burden.dll

Decompiled 3 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BodyBlend;
using EntityStates;
using EntityStates.Duplicator;
using HG;
using IL.RoR2;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using MonoMod.RuntimeDetour;
using On.RoR2;
using R2API;
using RoR2;
using RoR2.ContentManagement;
using RoR2.Items;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("a15a3d6a-6ae9-46e1-99bc-007f149c9fc0")]
[assembly: AssemblyFileVersion("0.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace Crystal_Burden;

internal class HerCurseArtifact : Crystal_Burden
{
	public static void Init()
	{
		Crystal_Burden.HerCurse = ScriptableObject.CreateInstance<ArtifactDef>();
		LanguageAPI.Add("HERCURSE_DESC", "All item drops will be turned into " + Crystal_Burden.HerBurden.nameToken + " Variants");
		Crystal_Burden.HerCurse.descriptionToken = "HERCURSE_DESC";
		ConfigEntry<bool> nsfw = Crystal_Burden.Nsfw;
		if (nsfw != null && nsfw.Value)
		{
			LanguageAPI.Add("HERCURSE_NAME", "Artifact of Her Curse");
			Crystal_Burden.HerCurse.nameToken = "HERCURSE_NAME";
			Crystal_Burden.HerCurse.smallIconSelectedSprite = Crystal_Burden.bundle.LoadAsset<Sprite>("HerCurseArtifactBurdenEnabled");
			Crystal_Burden.HerCurse.smallIconDeselectedSprite = Crystal_Burden.bundle.LoadAsset<Sprite>("HerCurseArtifactBurdenDisabled");
		}
		else
		{
			ConfigEntry<bool> nsfw2 = Crystal_Burden.Nsfw;
			if (nsfw2 == null || !nsfw2.Value)
			{
				LanguageAPI.Add("HERCURSE_NAME", "Artifact of Crystal Curse");
				Crystal_Burden.HerCurse.nameToken = "HERCURSE_NAME";
				Crystal_Burden.HerCurse.smallIconSelectedSprite = Crystal_Burden.bundle.LoadAsset<Sprite>("HerCurseArtifactCrystalEnabled");
				Crystal_Burden.HerCurse.smallIconDeselectedSprite = Crystal_Burden.bundle.LoadAsset<Sprite>("HerCurseArtifactCrystalDisabled");
			}
		}
		ContentAddition.AddArtifactDef(Crystal_Burden.HerCurse);
	}
}
internal static class BodyBlendCompatibility
{
	public static void SetBlendValue(this CharacterBody body, string name, float value, string source)
	{
		BodyBlendController bodyBlendController = body.GetBodyBlendController();
		if (Object.op_Implicit((Object)(object)bodyBlendController))
		{
			bodyBlendController.SetBlendTargetWeight(name, value, source, false);
		}
	}

	public static void RemoveBlend(this CharacterBody body, string name, string source)
	{
		BodyBlendController bodyBlendController = body.GetBodyBlendController();
		if (Object.op_Implicit((Object)(object)bodyBlendController))
		{
			bodyBlendController.RemoveBlendTargetWeight(name, source);
		}
	}

	private static BodyBlendController GetBodyBlendController(this CharacterBody body)
	{
		return ((Component)body.modelLocator.modelTransform).gameObject.GetComponent<BodyBlendController>();
	}
}
internal class FakeBodySizeScript : MonoBehaviour
{
	private static int globalIndexTick;

	private int personalIndex;

	private void OnEnable()
	{
		personalIndex = globalIndexTick;
		globalIndexTick++;
	}

	private void OnDisable()
	{
		globalIndexTick--;
	}

	internal void UpdateStacks(string item, int newStacks, CharacterBody body)
	{
		if (item == "burden")
		{
			FakeSizeHandoffManager.burdenprefabSizeScripts.ElementAt(personalIndex).UpdateStacks(newStacks);
		}
		if (item == "recluse")
		{
			FakeSizeHandoffManager.recluseprefabSizeScripts.ElementAt(personalIndex).UpdateStacks(newStacks);
		}
		if (item == "fury")
		{
			FakeSizeHandoffManager.furyprefabSizeScripts.ElementAt(personalIndex).UpdateStacks(newStacks);
		}
		if (item == "torpor")
		{
			FakeSizeHandoffManager.torporprefabSizeScripts.ElementAt(personalIndex).UpdateStacks(newStacks);
		}
		if (item == "rancor")
		{
			FakeSizeHandoffManager.rancorprefabSizeScripts.ElementAt(personalIndex).UpdateStacks(newStacks);
		}
		if (item == "panic")
		{
			FakeSizeHandoffManager.panicprefabSizeScripts.ElementAt(personalIndex).UpdateStacks(newStacks);
		}
	}

	internal void SetBodyMultiplier(string nameToken, CharacterBody body)
	{
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		//IL_0095: Unknown result type (might be due to invalid IL or missing references)
		//IL_009f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_0121: Unknown result type (might be due to invalid IL or missing references)
		//IL_0133: Unknown result type (might be due to invalid IL or missing references)
		//IL_013d: 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_0183: 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_01c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0211: Unknown result type (might be due to invalid IL or missing references)
		//IL_0223: Unknown result type (might be due to invalid IL or missing references)
		//IL_022d: Unknown result type (might be due to invalid IL or missing references)
		float characterSizeMultiplier = nameToken switch
		{
			"CROCO_BODY_NAME" => 10f, 
			"TOOLBOT_BODY_NAME" => 10f, 
			"TREEBOT_BODY_NAME" => 2f, 
			"HERETIC_BODY_NAME" => 2f, 
			"MELT_NAME" => 0.25f, 
			_ => 1f, 
		};
		if (body.inventory.GetItemCount(Crystal_Burden.HerBurden.itemIndex) > 0 && Crystal_Burden.HerBurden.itemIndex != Crystal_Burden.VariantOnSurvivor.itemIndex)
		{
			FakeSizeHandoffManager.burdenprefabSizeScripts.ElementAt(personalIndex).characterSizeMultiplier = characterSizeMultiplier;
		}
		if (body.inventory.GetItemCount(Crystal_Burden.HerRecluse.itemIndex) > 0 && Crystal_Burden.HerRecluse.itemIndex != Crystal_Burden.VariantOnSurvivor.itemIndex)
		{
			FakeSizeHandoffManager.recluseprefabSizeScripts.ElementAt(personalIndex).characterSizeMultiplier = characterSizeMultiplier;
		}
		if (body.inventory.GetItemCount(Crystal_Burden.HerFury.itemIndex) > 0 && Crystal_Burden.HerFury.itemIndex != Crystal_Burden.VariantOnSurvivor.itemIndex)
		{
			FakeSizeHandoffManager.furyprefabSizeScripts.ElementAt(personalIndex).characterSizeMultiplier = characterSizeMultiplier;
		}
		if (body.inventory.GetItemCount(Crystal_Burden.HerTorpor.itemIndex) > 0 && Crystal_Burden.HerTorpor.itemIndex != Crystal_Burden.VariantOnSurvivor.itemIndex)
		{
			FakeSizeHandoffManager.torporprefabSizeScripts.ElementAt(personalIndex).characterSizeMultiplier = characterSizeMultiplier;
		}
		if (body.inventory.GetItemCount(Crystal_Burden.HerRancor.itemIndex) > 0 && Crystal_Burden.HerRancor.itemIndex != Crystal_Burden.VariantOnSurvivor.itemIndex)
		{
			FakeSizeHandoffManager.rancorprefabSizeScripts.ElementAt(personalIndex).characterSizeMultiplier = characterSizeMultiplier;
		}
		if (body.inventory.GetItemCount(Crystal_Burden.HerPanic.itemIndex) > 0 && Crystal_Burden.HerPanic.itemIndex != Crystal_Burden.VariantOnSurvivor.itemIndex)
		{
			FakeSizeHandoffManager.panicprefabSizeScripts.ElementAt(personalIndex).characterSizeMultiplier = characterSizeMultiplier;
		}
	}
}
internal class FakeBurdenPrefabSizeScript : MonoBehaviour
{
	private Vector3 originalScale;

	private Vector3 newScale;

	internal float characterSizeMultiplier;

	internal static float maxSizeMultiplier = Crystal_Burden.MaxSize.Value;

	internal static float stackSizeMultiplier = (Crystal_Burden.MaxSize.Value - 1f) / Crystal_Burden.SizeMultiplier.Value;

	private void OnEnable()
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		originalScale = new Vector3(0.0125f, 0.0125f, 0.0125f);
		newScale = new Vector3(0.05f, 0.05f, 0.05f);
		characterSizeMultiplier = 1f;
		FakeSizeHandoffManager.burdenprefabSizeScripts.Add(this);
	}

	private void Update()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		((Component)this).transform.localScale = newScale;
	}

	private void OnDisable()
	{
		FakeSizeHandoffManager.burdenprefabSizeScripts.Remove(this);
	}

	internal void UpdateStacks(int newStacks)
	{
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		float num = 1f + (float)newStacks * stackSizeMultiplier;
		if (num <= maxSizeMultiplier)
		{
			newScale = originalScale * characterSizeMultiplier * num;
		}
		else
		{
			newScale = originalScale * characterSizeMultiplier * maxSizeMultiplier;
		}
	}
}
internal class FakeFuryPrefabSizeScript : MonoBehaviour
{
	private Vector3 originalScale;

	private Vector3 newScale;

	internal float characterSizeMultiplier;

	internal static float maxSizeMultiplier = Crystal_Burden.MaxSize.Value;

	internal static float stackSizeMultiplier = (Crystal_Burden.MaxSize.Value - 1f) / Crystal_Burden.SizeMultiplier.Value;

	private void OnEnable()
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		originalScale = new Vector3(0.0125f, 0.0125f, 0.0125f);
		newScale = new Vector3(0.05f, 0.05f, 0.05f);
		characterSizeMultiplier = 1f;
		FakeSizeHandoffManager.furyprefabSizeScripts.Add(this);
	}

	private void Update()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		((Component)this).transform.localScale = newScale;
	}

	private void OnDisable()
	{
		FakeSizeHandoffManager.furyprefabSizeScripts.Remove(this);
	}

	internal void UpdateStacks(int newStacks)
	{
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		float num = 1f + (float)newStacks * stackSizeMultiplier;
		if (num <= maxSizeMultiplier)
		{
			newScale = originalScale * characterSizeMultiplier * num;
		}
		else
		{
			newScale = originalScale * characterSizeMultiplier * maxSizeMultiplier;
		}
	}
}
internal class FakePanicPrefabSizeScript : MonoBehaviour
{
	private Vector3 originalScale;

	private Vector3 newScale;

	internal float characterSizeMultiplier;

	internal static float maxSizeMultiplier = Crystal_Burden.MaxSize.Value;

	internal static float stackSizeMultiplier = (Crystal_Burden.MaxSize.Value - 1f) / Crystal_Burden.SizeMultiplier.Value;

	private void OnEnable()
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		originalScale = new Vector3(0.0125f, 0.0125f, 0.0125f);
		newScale = new Vector3(0.05f, 0.05f, 0.05f);
		characterSizeMultiplier = 1f;
		FakeSizeHandoffManager.panicprefabSizeScripts.Add(this);
	}

	private void Update()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		((Component)this).transform.localScale = newScale;
	}

	private void OnDisable()
	{
		FakeSizeHandoffManager.panicprefabSizeScripts.Remove(this);
	}

	internal void UpdateStacks(int newStacks)
	{
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		float num = 1f + (float)newStacks * stackSizeMultiplier;
		if (num <= maxSizeMultiplier)
		{
			newScale = originalScale * characterSizeMultiplier * num;
		}
		else
		{
			newScale = originalScale * characterSizeMultiplier * maxSizeMultiplier;
		}
	}
}
internal class FakeRancorPrefabSizeScript : MonoBehaviour
{
	private Vector3 originalScale;

	private Vector3 newScale;

	internal float characterSizeMultiplier;

	internal static float maxSizeMultiplier = Crystal_Burden.MaxSize.Value;

	internal static float stackSizeMultiplier = (Crystal_Burden.MaxSize.Value - 1f) / Crystal_Burden.SizeMultiplier.Value;

	private void OnEnable()
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		originalScale = new Vector3(0.0125f, 0.0125f, 0.0125f);
		newScale = new Vector3(0.05f, 0.05f, 0.05f);
		characterSizeMultiplier = 1f;
		FakeSizeHandoffManager.rancorprefabSizeScripts.Add(this);
	}

	private void Update()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		((Component)this).transform.localScale = newScale;
	}

	private void OnDisable()
	{
		FakeSizeHandoffManager.rancorprefabSizeScripts.Remove(this);
	}

	internal void UpdateStacks(int newStacks)
	{
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		float num = 1f + (float)newStacks * stackSizeMultiplier;
		if (num <= maxSizeMultiplier)
		{
			newScale = originalScale * characterSizeMultiplier * num;
		}
		else
		{
			newScale = originalScale * characterSizeMultiplier * maxSizeMultiplier;
		}
	}
}
internal class FakeReclusePrefabSizeScript : MonoBehaviour
{
	private Vector3 originalScale;

	private Vector3 newScale;

	internal float characterSizeMultiplier;

	internal static float maxSizeMultiplier = Crystal_Burden.MaxSize.Value;

	internal static float stackSizeMultiplier = (Crystal_Burden.MaxSize.Value - 1f) / Crystal_Burden.SizeMultiplier.Value;

	private void OnEnable()
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		originalScale = new Vector3(0.0125f, 0.0125f, 0.0125f);
		newScale = new Vector3(0.05f, 0.05f, 0.05f);
		characterSizeMultiplier = 1f;
		FakeSizeHandoffManager.recluseprefabSizeScripts.Add(this);
	}

	private void Update()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		((Component)this).transform.localScale = newScale;
	}

	private void OnDisable()
	{
		FakeSizeHandoffManager.recluseprefabSizeScripts.Remove(this);
	}

	internal void UpdateStacks(int newStacks)
	{
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		float num = 1f + (float)newStacks * stackSizeMultiplier;
		if (num <= maxSizeMultiplier)
		{
			newScale = originalScale * characterSizeMultiplier * num;
		}
		else
		{
			newScale = originalScale * characterSizeMultiplier * maxSizeMultiplier;
		}
	}
}
internal class FakeSizeHandoffManager
{
	internal static List<FakeBurdenPrefabSizeScript> burdenprefabSizeScripts = new List<FakeBurdenPrefabSizeScript>();

	internal static List<FakeReclusePrefabSizeScript> recluseprefabSizeScripts = new List<FakeReclusePrefabSizeScript>();

	internal static List<FakeFuryPrefabSizeScript> furyprefabSizeScripts = new List<FakeFuryPrefabSizeScript>();

	internal static List<FakeTorporPrefabSizeScript> torporprefabSizeScripts = new List<FakeTorporPrefabSizeScript>();

	internal static List<FakeRancorPrefabSizeScript> rancorprefabSizeScripts = new List<FakeRancorPrefabSizeScript>();

	internal static List<FakePanicPrefabSizeScript> panicprefabSizeScripts = new List<FakePanicPrefabSizeScript>();
}
internal class FakeTorporPrefabSizeScript : MonoBehaviour
{
	private Vector3 originalScale;

	private Vector3 newScale;

	internal float characterSizeMultiplier;

	internal static float maxSizeMultiplier = Crystal_Burden.MaxSize.Value;

	internal static float stackSizeMultiplier = (Crystal_Burden.MaxSize.Value - 1f) / Crystal_Burden.SizeMultiplier.Value;

	private void OnEnable()
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		originalScale = new Vector3(0.0125f, 0.0125f, 0.0125f);
		newScale = new Vector3(0.05f, 0.05f, 0.05f);
		characterSizeMultiplier = 1f;
		FakeSizeHandoffManager.torporprefabSizeScripts.Add(this);
	}

	private void Update()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		((Component)this).transform.localScale = newScale;
	}

	private void OnDisable()
	{
		FakeSizeHandoffManager.torporprefabSizeScripts.Remove(this);
	}

	internal void UpdateStacks(int newStacks)
	{
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		float num = 1f + (float)newStacks * stackSizeMultiplier;
		if (num <= maxSizeMultiplier)
		{
			newScale = originalScale * characterSizeMultiplier * num;
		}
		else
		{
			newScale = originalScale * characterSizeMultiplier * maxSizeMultiplier;
		}
	}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.Kalkune.Crystal_Burden", "Crystal_Burden", "1.5.11")]
public class Crystal_Burden : BaseUnityPlugin
{
	[Serializable]
	[CompilerGenerated]
	private sealed class <>c
	{
		public static readonly <>c <>9 = new <>c();

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

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

		public static Manipulator <>9__108_0;

		public static Action <>9__108_1;

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

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

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

		public static Func<CharacterBody, bool> <>9__128_4;

		public static Func<CharacterBody, float> <>9__128_5;

		public static Func<CharacterBody, float> <>9__128_6;

		public static Func<CharacterBody, float> <>9__128_7;

		public static Func<CharacterBody, float> <>9__128_8;

		public static Func<CharacterBody, float> <>9__128_9;

		public static Func<CharacterBody, float> <>9__128_10;

		public static Func<CharacterBody, float> <>9__128_11;

		public static Func<CharacterBody, float> <>9__128_12;

		public static Func<CharacterBody, float> <>9__128_13;

		internal void <Awake>b__108_0(ILContext il)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			ILCursor val = new ILCursor(il);
			if (val.TryGotoNext(new Func<Instruction, bool>[2]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 14),
				(Instruction x) => ILPatternMatchingExt.MatchStloc(x, 6)
			}))
			{
				val.Index += 2;
				val.Emit(OpCodes.Ldc_I4, 20);
				val.Emit(OpCodes.Stloc, 6);
			}
		}

		internal bool <Awake>b__108_2(Instruction x)
		{
			return ILPatternMatchingExt.MatchLdcI4(x, 14);
		}

		internal bool <Awake>b__108_3(Instruction x)
		{
			return ILPatternMatchingExt.MatchStloc(x, 6);
		}

		internal void <Awake>b__108_1()
		{
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = Resources.Load<GameObject>("prefabs/characterbodies/hereticbody");
			if (Object.op_Implicit((Object)(object)val))
			{
				ChildLocator componentInChildren = val.GetComponentInChildren<ChildLocator>();
				if (Object.op_Implicit((Object)(object)componentInChildren))
				{
					Transform val2 = componentInChildren.FindChild("ThighL");
					Transform val3 = componentInChildren.FindChild("ThighR");
					Transform val4 = componentInChildren.FindChild("Chest");
					ref NameTransformPair[] transformPairs = ref componentInChildren.transformPairs;
					NameTransformPair val5 = new NameTransformPair
					{
						name = "KneeL",
						transform = val2.Find("HipPart1_L/HipPart2_L/Knee_L")
					};
					ArrayUtils.ArrayAppend<NameTransformPair>(ref transformPairs, ref val5);
					ref NameTransformPair[] transformPairs2 = ref componentInChildren.transformPairs;
					val5 = new NameTransformPair
					{
						name = "KneeR",
						transform = val3.Find("HipPart1_R/HipPart2_R/Knee_R")
					};
					ArrayUtils.ArrayAppend<NameTransformPair>(ref transformPairs2, ref val5);
					ref NameTransformPair[] transformPairs3 = ref componentInChildren.transformPairs;
					val5 = new NameTransformPair
					{
						name = "ElbowL",
						transform = val4.Find("Scapula_L/Shoulder_L/ShoulderPart1_L/ShoulderPart2_L/Elbow_L")
					};
					ArrayUtils.ArrayAppend<NameTransformPair>(ref transformPairs3, ref val5);
				}
			}
		}

		internal bool <WhoKnows>b__128_1(Instruction x)
		{
			return ILPatternMatchingExt.MatchLdarg(x, 0);
		}

		internal bool <WhoKnows>b__128_2(Instruction x)
		{
			return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs).GetField("Weak"));
		}

		internal bool <WhoKnows>b__128_3(Instruction x)
		{
			return ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "HasBuff");
		}

		internal bool <WhoKnows>b__128_4(CharacterBody cb)
		{
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				int itemCount = cb.master.inventory.GetItemCount(HerBurden.itemIndex);
				int itemCount2 = cb.master.inventory.GetItemCount(HerRecluse.itemIndex);
				int itemCount3 = cb.master.inventory.GetItemCount(HerFury.itemIndex);
				int itemCount4 = cb.master.inventory.GetItemCount(HerTorpor.itemIndex);
				int itemCount5 = cb.master.inventory.GetItemCount(HerRancor.itemIndex);
				int itemCount6 = cb.master.inventory.GetItemCount(HerPanic.itemIndex);
				if (itemCount > 0 || itemCount2 > 0 || itemCount3 > 0 || itemCount4 > 0 || itemCount5 > 0 || itemCount6 > 0)
				{
					return true;
				}
				return false;
			}
			return false;
		}

		internal float <WhoKnows>b__128_5(CharacterBody cb)
		{
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_010e: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			float num = 1f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				if (cb.master.inventory.GetItemCount(Items.ShieldOnly) > 0)
				{
					return num;
				}
				int num2 = 1;
				if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
				{
					num2++;
				}
				int itemCount = cb.master.inventory.GetItemCount(HerBurden.itemIndex);
				if (itemCount > 0)
				{
					num = ((cb.GetBuffCount(HerGambleBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2, (float)itemCount)) : (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2 * 2f, (float)itemCount)));
				}
				int itemCount2 = cb.master.inventory.GetItemCount(HerFury.itemIndex);
				if (itemCount2 > 0 && ToggleDebuffs.Value)
				{
					num = ((cb.GetBuffCount(HerGambleDeBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2, (float)itemCount2)) : (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2 * 2f, (float)itemCount2)));
				}
			}
			return num;
		}

		internal float <WhoKnows>b__128_6(CharacterBody cb)
		{
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_010e: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			float num = 1f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				if (cb.master.inventory.GetItemCount(Items.ShieldOnly) == 0)
				{
					return num;
				}
				int num2 = 1;
				if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
				{
					num2++;
				}
				int itemCount = cb.master.inventory.GetItemCount(HerBurden.itemIndex);
				if (itemCount > 0)
				{
					num = ((cb.GetBuffCount(HerGambleBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2, (float)itemCount)) : (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2 * 2f, (float)itemCount)));
				}
				int itemCount2 = cb.master.inventory.GetItemCount(HerFury.itemIndex);
				if (itemCount2 > 0 && ToggleDebuffs.Value)
				{
					num = ((cb.GetBuffCount(HerGambleDeBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2, (float)itemCount2)) : (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2 * 2f, (float)itemCount2)));
				}
			}
			return num;
		}

		internal float <WhoKnows>b__128_7(CharacterBody cb)
		{
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			float num = 1f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				int num2 = 1;
				if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
				{
					num2++;
				}
				int itemCount = cb.master.inventory.GetItemCount(HerFury.itemIndex);
				if (itemCount > 0)
				{
					num = ((cb.GetBuffCount(HerGambleBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2, (float)itemCount)) : (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2 * 2f, (float)itemCount)));
				}
				int itemCount2 = cb.master.inventory.GetItemCount(HerTorpor.itemIndex);
				if (itemCount2 > 0 && ToggleDebuffs.Value)
				{
					num = ((cb.GetBuffCount(HerGambleDeBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2, (float)itemCount2)) : (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2 * 2f, (float)itemCount2)));
				}
			}
			return num;
		}

		internal float <WhoKnows>b__128_8(CharacterBody cb)
		{
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			float num = 1f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				int num2 = 1;
				if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
				{
					num2++;
				}
				int itemCount = cb.master.inventory.GetItemCount(HerPanic.itemIndex);
				if (itemCount > 0)
				{
					num = ((cb.GetBuffCount(HerGambleBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2, (float)itemCount)) : (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2 * 2f, (float)itemCount)));
				}
				int itemCount2 = cb.master.inventory.GetItemCount(HerBurden.itemIndex);
				if (itemCount2 > 0 && ToggleDebuffs.Value)
				{
					num = ((cb.GetBuffCount(HerGambleDeBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2, (float)itemCount2)) : (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2 * 2f, (float)itemCount2)));
				}
			}
			return num;
		}

		internal float <WhoKnows>b__128_9(CharacterBody cb)
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			float num = 0f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				int itemCount = cb.master.inventory.GetItemCount(HerRecluse.itemIndex);
				if (itemCount > 0)
				{
					num += 5f;
				}
			}
			return num;
		}

		internal float <WhoKnows>b__128_10(CharacterBody cb)
		{
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			float num = 1f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				int num2 = 1;
				if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
				{
					num2++;
				}
				int itemCount = cb.master.inventory.GetItemCount(HerRecluse.itemIndex);
				if (itemCount > 1)
				{
					num = ((cb.GetBuffCount(HerGambleBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2, (float)(itemCount - 1))) : (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2 * 2f, (float)(itemCount - 1))));
				}
				int itemCount2 = cb.master.inventory.GetItemCount(HerRancor.itemIndex);
				if (itemCount2 > 0 && ToggleDebuffs.Value)
				{
					num = ((cb.GetBuffCount(HerGambleDeBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2, (float)itemCount2)) : (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2 * 2f, (float)itemCount2)));
				}
			}
			return num;
		}

		internal float <WhoKnows>b__128_11(CharacterBody cb)
		{
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			float num = 1f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				int num2 = 1;
				if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
				{
					num2++;
				}
				int itemCount = cb.master.inventory.GetItemCount(HerRancor.itemIndex);
				if (itemCount > 0)
				{
					num = ((cb.GetBuffCount(HerGambleBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2, (float)itemCount)) : (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2 * 2f, (float)itemCount)));
				}
				int itemCount2 = cb.master.inventory.GetItemCount(HerPanic.itemIndex);
				if (itemCount2 > 0 && ToggleDebuffs.Value)
				{
					num = ((cb.GetBuffCount(HerGambleDeBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2, (float)itemCount2)) : (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2 * 2f, (float)itemCount2)));
				}
			}
			return num;
		}

		internal float <WhoKnows>b__128_12(CharacterBody cb)
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			float num = 0f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				int itemCount = cb.master.inventory.GetItemCount(HerTorpor.itemIndex);
				if (itemCount > 0)
				{
					num += (float)Math.Min(5, itemCount);
				}
			}
			return num;
		}

		internal float <WhoKnows>b__128_13(CharacterBody cb)
		{
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			float num = 1f;
			if (Object.op_Implicit((Object)(object)cb.master) && Object.op_Implicit((Object)(object)cb.master.inventory))
			{
				int num2 = 1;
				if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
				{
					num2++;
				}
				int itemCount = cb.master.inventory.GetItemCount(HerTorpor.itemIndex);
				if (itemCount > 0)
				{
					num = ((cb.GetBuffCount(HerGambleBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2, (float)itemCount)) : (num * Mathf.Pow(1f + (Hbbuff.Value - 1f) * (float)num2 * 2f, (float)itemCount)));
				}
				int itemCount2 = cb.master.inventory.GetItemCount(HerRecluse.itemIndex);
				if (itemCount2 > 0 && ToggleDebuffs.Value)
				{
					num = ((cb.GetBuffCount(HerGambleDeBuff.buffIndex) <= 0) ? (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2, (float)itemCount2)) : (num * Mathf.Pow(1f - (1f - Hbdebuff.Value) * (float)num2 * 2f, (float)itemCount2)));
				}
			}
			return num;
		}
	}

	public static AssetBundle bundle;

	public static ItemDef HerBurden;

	public static ItemDef HerRecluse;

	public static ItemDef HerFury;

	public static ItemDef HerTorpor;

	public static ItemDef HerRancor;

	public static ItemDef HerPanic;

	public static ItemDef HBItemPicker;

	public static EquipmentDef HerGamble;

	public static BuffDef HerGambleBuff;

	public static BuffDef HerGambleDeBuff;

	public static ArtifactDef HerCurse;

	public static ItemDef VariantOnSurvivor;

	public static List<PickupIndex> TransformedList = new List<PickupIndex>();

	public static PickupIndex CurrentTransformedItem = PickupIndex.none;

	public static float Hbbv;

	public static float Hbdbv;

	public static bool HerBurdenInstalled = false;

	public static bool BodyBlend = false;

	public static string NameToken = "";

	public static ConfigEntry<bool> ItemVisibility { get; set; }

	public static ConfigEntry<bool> LuckEffect { get; set; }

	public static ConfigEntry<bool> GiveOriginalItem { get; set; }

	public static ConfigEntry<bool> ToggleDebuffs { get; set; }

	public static ConfigEntry<bool> VariantDropCount { get; set; }

	public static ConfigEntry<bool> VariantsAffectSize { get; set; }

	public static ConfigEntry<bool> Nsfw { get; set; }

	public static ConfigEntry<bool> LuckInverseEffect { get; set; }

	public static ConfigEntry<bool> ParticleTrail { get; set; }

	public static ConfigEntry<bool> TogglePearlCleanse { get; set; }

	public static ConfigEntry<string> Artist { get; set; }

	public static ConfigEntry<string> VariantShownOnSurvivor { get; set; }

	public static ConfigEntry<float> MaxSize { get; set; }

	public static ConfigEntry<float> SizeMultiplier { get; set; }

	public static ConfigEntry<float> DecreaseItemDropPercentage { get; set; }

	public static ConfigEntry<float> MinimumDropChance { get; set; }

	public static ConfigEntry<int> ChanceChangePickup { get; set; }

	public static ConfigEntry<int> ChanceEnemyDrop { get; set; }

	public static ConfigEntry<int> LimitDecreaseItemDropPercentage { get; set; }

	public static ConfigEntry<float> Hbbuff { get; set; }

	public static ConfigEntry<float> Hbdebuff { get; set; }

	public static ConfigEntry<string> Hbversion { get; set; }

	public void Awake()
	{
		//IL_019c: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a6: Expected O, but got Unknown
		//IL_0227: Unknown result type (might be due to invalid IL or missing references)
		//IL_0231: Expected O, but got Unknown
		//IL_0469: Unknown result type (might be due to invalid IL or missing references)
		//IL_046e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0474: Expected O, but got Unknown
		//IL_04de: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e4: Expected O, but got Unknown
		//IL_050e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0514: Expected O, but got Unknown
		//IL_053e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0544: Expected O, but got Unknown
		//IL_056e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0574: Expected O, but got Unknown
		//IL_05db: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e2: Expected O, but got Unknown
		//IL_060c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0613: Expected O, but got Unknown
		//IL_063d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0644: Expected O, but got Unknown
		//IL_068c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0693: Expected O, but got Unknown
		//IL_06db: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e2: Expected O, but got Unknown
		//IL_070a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0711: Expected O, but got Unknown
		//IL_073b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0742: Expected O, but got Unknown
		//IL_076c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0773: Expected O, but got Unknown
		//IL_079d: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a4: Expected O, but got Unknown
		//IL_07ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d5: Expected O, but got Unknown
		SoftDependencies.Init();
		ItemVisibility = ((BaseUnityPlugin)this).Config.Bind<bool>("1. Her Burden Toggle", "Toggle Item Visibility", true, "Changes if Burden Variants shows on the Survivor");
		LuckEffect = ((BaseUnityPlugin)this).Config.Bind<bool>("1. Her Burden Toggle", "Toggle Luck Effect", true, "Changes if luck effects chance to pickup Burden Variants once you have a Variant");
		GiveOriginalItem = ((BaseUnityPlugin)this).Config.Bind<bool>("1. Her Burden Toggle", "Toggle Give Original Item", false, "Changes if you receive the original item along with a Burden Variant (Lunar Tier Exclusive)");
		ToggleDebuffs = ((BaseUnityPlugin)this).Config.Bind<bool>("1. Her Burden Toggle", "Toggle Debuffs", true, "Changes if debuffs are applied or not. If false, Burden Variants will change to legendaries and makes them have a chance to drop on kill");
		VariantDropCount = ((BaseUnityPlugin)this).Config.Bind<bool>("1. Her Burden Toggle", "Toggle Variant Drop Count", true, "Changes if all Burden Variants are in the drop list separately or together. If false, Variants will only have one entry into the drop list");
		LuckInverseEffect = ((BaseUnityPlugin)this).Config.Bind<bool>("1. Her Burden Toggle", "Toggle Luck Inverse Effect", true, "Changes if luck is inverted for the \"Toggle Luck Effect\". If true, luck will be inverted");
		TogglePearlCleanse = ((BaseUnityPlugin)this).Config.Bind<bool>("1. Her Burden Toggle", "Toggle Cleanse into Pearls", false, "Changes if Variants gets cleansed into Pearls rather than the original item.");
		if (HerBurdenInstalled || File.ReadAllText(Paths.ConfigPath + "\\com.Kalkune.Crystal_Burden.cfg").Contains("[0. Her Burden NSFW Toggle]"))
		{
			Nsfw = ((BaseUnityPlugin)this).Config.Bind<bool>("0. Her Burden NSFW Toggle", "Toggles Her Burden NSFW", true, "Changes if Her Burden is NSFW or SFW. If false, Her Burden will switch to SFW models");
			ParticleTrail = ((BaseUnityPlugin)this).Config.Bind<bool>("2. Her Burden Toggle", "Toggle Particle Trail", false, "Changes if the particle trail is visible or not visible");
			Artist = ((BaseUnityPlugin)this).Config.Bind<string>("2. Her Burden General", "Artist", "Hush", new ConfigDescription("Decides which artist to use", (AcceptableValueBase)(object)new AcceptableValueList<string>(new string[2] { "Hush", "aka6" }), Array.Empty<object>()));
			VariantsAffectSize = ((BaseUnityPlugin)this).Config.Bind<bool>("2. Her Burden Toggle", "Toggle Variants Affect Size", false, "Changes if other Burden Variants increase item display size");
			VariantShownOnSurvivor = ((BaseUnityPlugin)this).Config.Bind<string>("2. Her Burden General", "Variant Size Increase", "Burden", new ConfigDescription("Changes which Variant gets its size increased", (AcceptableValueBase)(object)new AcceptableValueList<string>(new string[6] { "Burden", "Recluse", "Fury", "Torpor", "Rancor", "Panic" }), Array.Empty<object>()));
		}
		MaxSize = ((BaseUnityPlugin)this).Config.Bind<float>("1. Her Burden Size", "Max size of Variant", 2f, "Changes the max size of all Variants on the Survivor");
		SizeMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("1. Her Burden Size", "Size Multiplier for Variant", 20f, "Changes how many of each Variant are required to get to the max size");
		DecreaseItemDropPercentage = ((BaseUnityPlugin)this).Config.Bind<float>("1. Her Burden Mechanics", "Decrease Item Drop Percentage", 0.8f, "The rate of the drop chance percentage decreases towards \"Minimum Drop Chance\" (Lunar Tier Exclusive)");
		MinimumDropChance = ((BaseUnityPlugin)this).Config.Bind<float>("1. Her Burden Mechanics", "Minimum Drop Chance", 10f, "Minimum Variant Drop chance, doesn't override \"Chance to change pickup to Her Burden Variants\" if \"Minimum Drop Chance\" is a higher value than \"Chance to change pickup to Her Burden Variants\" (Lunar Tier Exclusive)");
		ChanceChangePickup = ((BaseUnityPlugin)this).Config.Bind<int>("1. Her Burden Mechanics", "Chance to change pickup to Her Burden Variants", 100, "Chance to change other items to Burden Variants on pickup once you have a Variant (Lunar Tier Exclusive)");
		ChanceEnemyDrop = ((BaseUnityPlugin)this).Config.Bind<int>("1. Her Burden Mechanics", "Chance for enemies to drop Her Burden Variants", 5, "Chance for enemies to drop Burden Variants once you have a Variant (Legendary Tier Exclusive)");
		LimitDecreaseItemDropPercentage = ((BaseUnityPlugin)this).Config.Bind<int>("1. Her Burden Mechanics", "Item Limit Amount to Decrease Item Drop Percentage", 20, "Variants needed to start decreasing drop chance. \"Decrease Item Drop Percentage\" and \"Minimum Drop Chance\" are part of this config (Lunar Tier Exclusive)");
		Hbbuff = ((BaseUnityPlugin)this).Config.Bind<float>("1. Her Burden Mechanics", "Buff", 1.05f, "Changes the increase of buff of the item exponentially per item");
		Hbdebuff = ((BaseUnityPlugin)this).Config.Bind<float>("1. Her Burden Mechanics", "Debuff", 0.975f, "Changes the decrease of debuff of the item exponentially per item");
		Hbversion = ((BaseUnityPlugin)this).Config.Bind<string>("Dev. Development Config", "Version", "1.5.2", "I don't recommend changing this value");
		Hbbv = (float)Math.Round((Hbbuff.Value - 1f) * 100f, 2);
		Hbdbv = (float)Math.Round(Math.Abs((Hbdebuff.Value - 1f) * 100f), 2);
		using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Crystal_Burden.Resources.herburden"))
		{
			bundle = AssetBundle.LoadFromStream(stream);
		}
		ConfigChanges.Init();
		MiscItems.Init();
		HerBurdenItem.Init();
		HerRecluseItem.Init();
		HerFuryItem.Init();
		HerTorporItem.Init();
		HerRancorItem.Init();
		HerPanicItem.Init();
		HerGambleEquipment.Init();
		HerCurseArtifact.Init();
		object obj = <>c.<>9__108_0;
		if (obj == null)
		{
			Manipulator val = delegate(ILContext il)
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Expected O, but got Unknown
				//IL_006d: Unknown result type (might be due to invalid IL or missing references)
				//IL_007b: Unknown result type (might be due to invalid IL or missing references)
				ILCursor val21 = new ILCursor(il);
				if (val21.TryGotoNext(new Func<Instruction, bool>[2]
				{
					(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 14),
					(Instruction x) => ILPatternMatchingExt.MatchStloc(x, 6)
				}))
				{
					val21.Index += 2;
					val21.Emit(OpCodes.Ldc_I4, 20);
					val21.Emit(OpCodes.Stloc, 6);
				}
			};
			<>c.<>9__108_0 = val;
			obj = (object)val;
		}
		ItemCatalog.SetItemDefs += (Manipulator)obj;
		RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate
		{
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			GameObject val16 = Resources.Load<GameObject>("prefabs/characterbodies/hereticbody");
			if (Object.op_Implicit((Object)(object)val16))
			{
				ChildLocator componentInChildren = val16.GetComponentInChildren<ChildLocator>();
				if (Object.op_Implicit((Object)(object)componentInChildren))
				{
					Transform val17 = componentInChildren.FindChild("ThighL");
					Transform val18 = componentInChildren.FindChild("ThighR");
					Transform val19 = componentInChildren.FindChild("Chest");
					ref NameTransformPair[] transformPairs = ref componentInChildren.transformPairs;
					NameTransformPair val20 = new NameTransformPair
					{
						name = "KneeL",
						transform = val17.Find("HipPart1_L/HipPart2_L/Knee_L")
					};
					ArrayUtils.ArrayAppend<NameTransformPair>(ref transformPairs, ref val20);
					ref NameTransformPair[] transformPairs2 = ref componentInChildren.transformPairs;
					val20 = new NameTransformPair
					{
						name = "KneeR",
						transform = val18.Find("HipPart1_R/HipPart2_R/Knee_R")
					};
					ArrayUtils.ArrayAppend<NameTransformPair>(ref transformPairs2, ref val20);
					ref NameTransformPair[] transformPairs3 = ref componentInChildren.transformPairs;
					val20 = new NameTransformPair
					{
						name = "ElbowL",
						transform = val19.Find("Scapula_L/Shoulder_L/ShoulderPart1_L/ShoulderPart2_L/Elbow_L")
					};
					ArrayUtils.ArrayAppend<NameTransformPair>(ref transformPairs3, ref val20);
				}
			}
		});
		WhoKnows();
		Hook val2 = new Hook((MethodBase)typeof(CharacterBody).GetMethod("Update", BindingFlags.Instance | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("CharacterBody_Update"));
		Hook val3 = new Hook((MethodBase)typeof(CharacterMaster).GetMethod("OnBodyStart", BindingFlags.Instance | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("CharacterMaster_OnBodyStart"));
		Hook val4 = new Hook((MethodBase)typeof(Duplicating).GetMethod("OnEnter", BindingFlags.Instance | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("Duplicating_OnEnter"));
		Hook val5 = new Hook((MethodBase)typeof(EquipmentSlot).GetMethod("PerformEquipmentAction", BindingFlags.Instance | BindingFlags.NonPublic), typeof(Crystal_Burden).GetMethod("EquipmentSlot_PerformEquipmentAction"));
		GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal;
		Hook val6 = new Hook((MethodBase)typeof(PickupDropletController).GetMethod("CreatePickupDroplet", new Type[3]
		{
			typeof(CreatePickupInfo),
			typeof(Vector3),
			typeof(Vector3)
		}), typeof(Crystal_Burden).GetMethod("PickupDropletController_CreatePickupDroplet_CreatePickupInfo_Vector3_Vector3"));
		Hook val7 = new Hook((MethodBase)typeof(CharacterMaster).GetMethod("RespawnExtraLife", BindingFlags.Instance | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("CharacterMaster_RespawnExtraLife"));
		Hook val8 = new Hook((MethodBase)typeof(PickupPickerController).GetMethod("SetOptionsFromPickupForCommandArtifact", BindingFlags.Instance | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("PickupPickerController_SetOptionsFromPickupForCommandArtifact"));
		Hook val9 = new Hook((MethodBase)typeof(Inventory).GetMethod("GiveItem", new Type[2]
		{
			typeof(ItemIndex),
			typeof(int)
		}), typeof(Crystal_Burden).GetMethod("Inventory_GiveItem_ItemIndex_int"));
		Hook val10 = new Hook((MethodBase)typeof(Inventory).GetMethod("RemoveItem", new Type[2]
		{
			typeof(ItemIndex),
			typeof(int)
		}), typeof(Crystal_Burden).GetMethod("Inventory_RemoveItem_ItemIndex_int"));
		Hook val11 = new Hook((MethodBase)typeof(ItemDef).GetMethod("AttemptGrant"), typeof(Crystal_Burden).GetMethod("ItemDef_AttemptGrant"));
		Hook val12 = new Hook((MethodBase)typeof(LunarItemOrEquipmentCostTypeHelper).GetMethod("PayCost", BindingFlags.Static | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("LunarItemOrEquipmentCostTypeHelper_PayCost"));
		Hook val13 = new Hook((MethodBase)typeof(PurchaseInteraction).GetMethod("GetInteractability", BindingFlags.Instance | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("PurchaseInteraction_GetInteractability"));
		Hook val14 = new Hook((MethodBase)typeof(ShopTerminalBehavior).GetMethod("DropPickup", BindingFlags.Instance | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("ShopTerminalBehavior_DropPickup"));
		Hook val15 = new Hook((MethodBase)typeof(CharacterBody).GetMethod("RecalculateStats", BindingFlags.Instance | BindingFlags.Public), typeof(Crystal_Burden).GetMethod("CharacterBody_RecalculateStats"));
	}

	public static void CharacterBody_RecalculateStats(Action<CharacterBody> orig, CharacterBody self)
	{
		if (!Object.op_Implicit((Object)(object)((self != null) ? self.inventory : null)))
		{
			orig(self);
			return;
		}
		self.acceleration += (float)(self.inventory.GetItemCount(HerPanic) * 4);
		orig(self);
	}

	public static void ShopTerminalBehavior_DropPickup(Action<ShopTerminalBehavior> orig, ShopTerminalBehavior self)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_001b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Unknown result type (might be due to invalid IL or missing references)
		//IL_0025: Unknown result type (might be due to invalid IL or missing references)
		if (CurrentTransformedItem != PickupIndex.none)
		{
			self.pickupIndex = CurrentTransformedItem;
			CurrentTransformedItem = PickupIndex.none;
		}
		orig(self);
	}

	public static Interactability PurchaseInteraction_GetInteractability(Func<PurchaseInteraction, Interactor, Interactability> orig, PurchaseInteraction self, Interactor activator)
	{
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		//IL_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		if (self.displayNameToken.ToLower() == "shrine_cleanse_name" && CurrentTransformedItem != PickupIndex.none && !TogglePearlCleanse.Value)
		{
			return (Interactability)0;
		}
		return orig(self, activator);
	}

	public static void LunarItemOrEquipmentCostTypeHelper_PayCost(orig_PayCost orig, CostTypeDef costTypeDef, PayCostContext context)
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0003: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		//IL_004d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_011a: Unknown result type (might be due to invalid IL or missing references)
		Inventory inventory = ((Component)context.activator).GetComponent<CharacterBody>().inventory;
		int cost = context.cost;
		int itemWeight = 0;
		int equipmentWeight = 0;
		for (int i = 0; i < LunarItemOrEquipmentCostTypeHelper.lunarItemIndices.Length; i++)
		{
			ItemIndex val = LunarItemOrEquipmentCostTypeHelper.lunarItemIndices[i];
			int itemCount = inventory.GetItemCount(val);
			itemWeight += itemCount;
		}
		int j = 0;
		for (int equipmentSlotCount = inventory.GetEquipmentSlotCount(); j < equipmentSlotCount; j++)
		{
			EquipmentIndex equipmentIndex = inventory.GetEquipment((uint)j).equipmentIndex;
			if (Array.IndexOf(LunarItemOrEquipmentCostTypeHelper.lunarEquipmentIndices, equipmentIndex) != -1)
			{
				equipmentWeight++;
			}
		}
		int totalWeight = itemWeight + equipmentWeight;
		for (int k = 0; k < cost; k++)
		{
			TakeOne();
		}
		MultiShopCardUtils.OnNonMoneyPurchase(context);
		void TakeOne()
		{
			//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_03af: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0400: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_0316: Unknown result type (might be due to invalid IL or missing references)
			//IL_032f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_010b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Invalid comparison between Unknown and I4
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Invalid comparison between Unknown and I4
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Invalid comparison between Unknown and I4
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Invalid comparison between Unknown and I4
			//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Invalid comparison between Unknown and I4
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Invalid comparison between Unknown and I4
			//IL_0234: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Invalid comparison between Unknown and I4
			//IL_0264: Unknown result type (might be due to invalid IL or missing references)
			//IL_024e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Unknown result type (might be due to invalid IL or missing references)
			//IL_0176: Invalid comparison between Unknown and I4
			//IL_0294: Unknown result type (might be due to invalid IL or missing references)
			//IL_027e: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ae: Unknown result type (might be due to invalid IL or missing references)
			float nextNormalizedFloat = context.rng.nextNormalizedFloat;
			float num = (float)itemWeight / (float)totalWeight;
			if (nextNormalizedFloat < num)
			{
				int num2 = Mathf.FloorToInt(Util.Remap(Util.Remap(nextNormalizedFloat, 0f, num, 0f, 1f), 0f, 1f, 0f, (float)itemWeight));
				int num3 = 0;
				for (int l = 0; l < LunarItemOrEquipmentCostTypeHelper.lunarItemIndices.Length; l++)
				{
					ItemIndex val2 = LunarItemOrEquipmentCostTypeHelper.lunarItemIndices[l];
					int itemCount2 = inventory.GetItemCount(val2);
					num3 += itemCount2;
					if (num2 < num3)
					{
						if (TransformedList.Count != 0 && ItemCatalog.GetItemDef(val2).ContainsTag((ItemTag)19) && !TogglePearlCleanse.Value)
						{
							CurrentTransformedItem = TransformedList[Random.Range(0, TransformedList.Count)];
							ItemTier itemTier = PickupCatalog.GetPickupDef(CurrentTransformedItem).itemTier;
							TransformedList.Remove(CurrentTransformedItem);
							int num4 = (((int)itemTier == 0 || (int)itemTier == 6) ? 1 : (((int)itemTier != 1 && (int)itemTier != 7) ? (((int)itemTier != 2 && (int)itemTier != 8) ? (((int)itemTier == 3) ? 1 : (((int)itemTier != 4 && (int)itemTier != 9) ? 1 : 1)) : 5) : 2));
							for (int m = 0; m < num4; m++)
							{
								List<ItemIndex> list = new List<ItemIndex>();
								if (inventory.GetItemCount(HerBurden.itemIndex) > 0)
								{
									list.Add(HerBurden.itemIndex);
								}
								if (inventory.GetItemCount(HerRecluse.itemIndex) > 0)
								{
									list.Add(HerRecluse.itemIndex);
								}
								if (inventory.GetItemCount(HerFury.itemIndex) > 0)
								{
									list.Add(HerFury.itemIndex);
								}
								if (inventory.GetItemCount(HerTorpor.itemIndex) > 0)
								{
									list.Add(HerTorpor.itemIndex);
								}
								if (inventory.GetItemCount(HerRancor.itemIndex) > 0)
								{
									list.Add(HerRancor.itemIndex);
								}
								if (inventory.GetItemCount(HerPanic.itemIndex) > 0)
								{
									list.Add(HerPanic.itemIndex);
								}
								ItemIndex val3 = list[Random.Range(0, list.Count)];
								inventory.RemoveItem(val3, 1);
								context.results.itemsTaken.Add(val3);
							}
						}
						else
						{
							inventory.RemoveItem(val2, 1);
							context.results.itemsTaken.Add(val2);
						}
						break;
					}
				}
			}
			else
			{
				int num5 = Mathf.FloorToInt(Util.Remap(Util.Remap(nextNormalizedFloat, num, 1f, 0f, 1f), 0f, 1f, 0f, (float)equipmentWeight));
				int num6 = 0;
				for (int n = 0; n < inventory.GetEquipmentSlotCount(); n++)
				{
					EquipmentIndex equipmentIndex2 = inventory.GetEquipment((uint)n).equipmentIndex;
					if (Array.IndexOf(LunarItemOrEquipmentCostTypeHelper.lunarEquipmentIndices, equipmentIndex2) != -1)
					{
						num6++;
						if (num5 < num6)
						{
							inventory.SetEquipment(EquipmentState.empty, (uint)n);
							context.results.equipmentTaken.Add(equipmentIndex2);
						}
					}
				}
			}
		}
	}

	public static void ItemDef_AttemptGrant(orig_AttemptGrant orig, ref GrantContext context)
	{
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0023: Unknown result type (might be due to invalid IL or missing references)
		//IL_0080: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0164: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Expected O, but got Unknown
		//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_020f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0265: Unknown result type (might be due to invalid IL or missing references)
		//IL_026f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0274: Unknown result type (might be due to invalid IL or missing references)
		//IL_0222: Unknown result type (might be due to invalid IL or missing references)
		//IL_0284: Unknown result type (might be due to invalid IL or missing references)
		//IL_028e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0293: Unknown result type (might be due to invalid IL or missing references)
		//IL_0235: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0248: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0300: Unknown result type (might be due to invalid IL or missing references)
		//IL_030a: Unknown result type (might be due to invalid IL or missing references)
		//IL_030f: Unknown result type (might be due to invalid IL or missing references)
		//IL_03eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_031f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0329: Unknown result type (might be due to invalid IL or missing references)
		//IL_032e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0407: Unknown result type (might be due to invalid IL or missing references)
		//IL_0411: Unknown result type (might be due to invalid IL or missing references)
		//IL_0416: Unknown result type (might be due to invalid IL or missing references)
		//IL_033e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0348: Unknown result type (might be due to invalid IL or missing references)
		//IL_034d: Unknown result type (might be due to invalid IL or missing references)
		//IL_035a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0364: Unknown result type (might be due to invalid IL or missing references)
		//IL_0369: Unknown result type (might be due to invalid IL or missing references)
		//IL_0376: Unknown result type (might be due to invalid IL or missing references)
		//IL_0380: Unknown result type (might be due to invalid IL or missing references)
		//IL_0385: Unknown result type (might be due to invalid IL or missing references)
		//IL_046b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0470: Unknown result type (might be due to invalid IL or missing references)
		//IL_0472: Unknown result type (might be due to invalid IL or missing references)
		//IL_0475: Invalid comparison between Unknown and I4
		//IL_0392: Unknown result type (might be due to invalid IL or missing references)
		//IL_039c: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0477: Unknown result type (might be due to invalid IL or missing references)
		//IL_047a: Invalid comparison between Unknown and I4
		//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_047c: Unknown result type (might be due to invalid IL or missing references)
		//IL_047f: Invalid comparison between Unknown and I4
		//IL_0498: Unknown result type (might be due to invalid IL or missing references)
		//IL_049b: Invalid comparison between Unknown and I4
		//IL_0481: Unknown result type (might be due to invalid IL or missing references)
		//IL_0485: Invalid comparison between Unknown and I4
		//IL_049d: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a0: Invalid comparison between Unknown and I4
		//IL_04d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0524: Unknown result type (might be due to invalid IL or missing references)
		//IL_0529: Unknown result type (might be due to invalid IL or missing references)
		//IL_052e: Unknown result type (might be due to invalid IL or missing references)
		//IL_053b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0540: Unknown result type (might be due to invalid IL or missing references)
		//IL_0545: Unknown result type (might be due to invalid IL or missing references)
		//IL_0552: Unknown result type (might be due to invalid IL or missing references)
		//IL_0557: Unknown result type (might be due to invalid IL or missing references)
		//IL_055c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0569: Unknown result type (might be due to invalid IL or missing references)
		//IL_056e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0573: Unknown result type (might be due to invalid IL or missing references)
		//IL_0580: Unknown result type (might be due to invalid IL or missing references)
		//IL_0585: Unknown result type (might be due to invalid IL or missing references)
		//IL_058a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0597: Unknown result type (might be due to invalid IL or missing references)
		//IL_059c: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0605: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_05cc: Unknown result type (might be due to invalid IL or missing references)
		CharacterBody body = context.body;
		Inventory inventory = body.inventory;
		GenericPickupController controller = context.controller;
		context.shouldNotify = false;
		PickupIndex pickupIndex = controller.pickupIndex;
		if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
		{
			orig.Invoke(ref context);
			Size(1, body, truefalse: false);
			Size(2, body, truefalse: false);
			return;
		}
		if (ToggleDebuffs.Value)
		{
			float num = ChanceChangePickup.Value;
			int num2 = inventory.GetItemCount(HerBurden.itemIndex) + inventory.GetItemCount(HerRecluse.itemIndex) + inventory.GetItemCount(HerFury.itemIndex) + inventory.GetItemCount(HerTorpor.itemIndex) + inventory.GetItemCount(HerRancor.itemIndex) + inventory.GetItemCount(HerPanic.itemIndex);
			float num3 = num2 - LimitDecreaseItemDropPercentage.Value;
			if (num3 < 0f)
			{
				num3 = 0f;
			}
			if (num > MinimumDropChance.Value && num2 > LimitDecreaseItemDropPercentage.Value)
			{
				num *= Mathf.Pow(DecreaseItemDropPercentage.Value, num3);
				if (num < MinimumDropChance.Value)
				{
					num = MinimumDropChance.Value;
				}
			}
			CharacterMaster val = new CharacterMaster();
			val.luck = ((Component)inventory).GetComponent<CharacterMaster>().luck;
			if (LuckEffect.Value)
			{
				if (LuckInverseEffect.Value)
				{
					val.luck = 0f - val.luck;
				}
				num += val.luck;
			}
			int num4 = 0;
			while (num > 100f)
			{
				num -= 100f;
				num4++;
			}
			bool flag = false;
			if (inventory.GetItemCount(HerBurden.itemIndex) > 0 || inventory.GetItemCount(HerRecluse.itemIndex) > 0 || inventory.GetItemCount(HerFury.itemIndex) > 0 || inventory.GetItemCount(HerTorpor.itemIndex) > 0 || inventory.GetItemCount(HerRancor.itemIndex) > 0 || inventory.GetItemCount(HerPanic.itemIndex) > 0)
			{
				flag = true;
			}
			bool flag2 = false;
			if (controller.pickupIndex == PickupCatalog.FindPickupIndex(HerBurden.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(HerRecluse.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(HerFury.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(HerTorpor.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(HerRancor.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(HerPanic.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(Items.ScrapWhite.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(Items.ScrapGreen.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(Items.ScrapRed.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(Items.ScrapYellow.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(Items.ArtifactKey.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(Items.LunarTrinket.itemIndex))
			{
				flag2 = true;
			}
			if (!flag2 && GiveOriginalItem.Value && (controller.pickupIndex == PickupCatalog.FindPickupIndex(Items.Pearl.itemIndex) || controller.pickupIndex == PickupCatalog.FindPickupIndex(Items.ShinyPearl.itemIndex)))
			{
				flag2 = true;
			}
			if (Util.CheckRoll(num, 0f, (CharacterMaster)null))
			{
				num4++;
			}
			if (flag && num4 > 0 && !flag2)
			{
				ItemTier itemTier = ((PickupIndex)(ref controller.pickupIndex)).pickupDef.itemTier;
				if ((int)itemTier == 1 || (int)itemTier == 7 || (int)itemTier == 4 || (int)itemTier == 9)
				{
					num4++;
				}
				else if ((int)itemTier == 2 || (int)itemTier == 8)
				{
					num4 += 4;
				}
				if (GiveOriginalItem.Value)
				{
					orig.Invoke(ref context);
					GenericPickupController.SendPickupMessage(body.master, controller.pickupIndex);
				}
				for (int num5 = num4; num5 > 0; num5--)
				{
					switch (Mathf.FloorToInt((float)Random.Range(0, 6)))
					{
					case 0:
						controller.pickupIndex = PickupCatalog.FindPickupIndex(HerBurden.itemIndex);
						break;
					case 1:
						controller.pickupIndex = PickupCatalog.FindPickupIndex(HerRecluse.itemIndex);
						break;
					case 2:
						controller.pickupIndex = PickupCatalog.FindPickupIndex(HerFury.itemIndex);
						break;
					case 3:
						controller.pickupIndex = PickupCatalog.FindPickupIndex(HerTorpor.itemIndex);
						break;
					case 4:
						controller.pickupIndex = PickupCatalog.FindPickupIndex(HerRancor.itemIndex);
						break;
					case 5:
						controller.pickupIndex = PickupCatalog.FindPickupIndex(HerPanic.itemIndex);
						break;
					}
					orig.Invoke(ref context);
					CharacterMasterNotificationQueue.PushItemTransformNotification(body.master, PickupCatalog.GetPickupDef(pickupIndex).itemIndex, ((PickupIndex)(ref controller.pickupIndex)).pickupDef.itemIndex, (TransformationType)3);
				}
				if (!TogglePearlCleanse.Value)
				{
					TransformedList.Add(pickupIndex);
				}
				Size(1, body, truefalse: false);
				Size(2, body, truefalse: false);
				context.shouldNotify = false;
				return;
			}
		}
		orig.Invoke(ref context);
		Size(1, body, truefalse: false);
		Size(2, body, truefalse: false);
	}

	public static void Inventory_RemoveItem_ItemIndex_int(Action<Inventory, ItemIndex, int> orig, Inventory self, ItemIndex itemIndex, int count)
	{
		//IL_0039: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		//IL_0066: Unknown result type (might be due to invalid IL or missing references)
		//IL_0070: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: Unknown result type (might be due to invalid IL or missing references)
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0129: Unknown result type (might be due to invalid IL or missing references)
		//IL_0118: Unknown result type (might be due to invalid IL or missing references)
		//IL_013b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0145: Unknown result type (might be due to invalid IL or missing references)
		//IL_0170: Unknown result type (might be due to invalid IL or missing references)
		//IL_015f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0182: Unknown result type (might be due to invalid IL or missing references)
		//IL_018c: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d3: 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_020c: Unknown result type (might be due to invalid IL or missing references)
		//IL_021d: Unknown result type (might be due to invalid IL or missing references)
		//IL_024e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0267: Unknown result type (might be due to invalid IL or missing references)
		CharacterMaster component = ((Component)self).gameObject.GetComponent<CharacterMaster>();
		if (!Object.op_Implicit((Object)(object)component))
		{
			return;
		}
		CharacterBody body = component.GetBody();
		bool flag = false;
		bool flag2 = false;
		List<ItemIndex> list = new List<ItemIndex>();
		if (self.GetItemCount(VariantOnSurvivor.itemIndex) > 0)
		{
			flag2 = true;
		}
		if (self.GetItemCount(HerBurden.itemIndex) > 0 && HerBurden.itemIndex != VariantOnSurvivor.itemIndex)
		{
			list.Add(HerBurden.itemIndex);
		}
		if (self.GetItemCount(HerRecluse.itemIndex) > 0 && HerRecluse.itemIndex != VariantOnSurvivor.itemIndex)
		{
			list.Add(HerRecluse.itemIndex);
		}
		if (self.GetItemCount(HerFury.itemIndex) > 0 && HerFury.itemIndex != VariantOnSurvivor.itemIndex)
		{
			list.Add(HerFury.itemIndex);
		}
		if (self.GetItemCount(HerTorpor.itemIndex) > 0 && HerTorpor.itemIndex != VariantOnSurvivor.itemIndex)
		{
			list.Add(HerTorpor.itemIndex);
		}
		if (self.GetItemCount(HerRancor.itemIndex) > 0 && HerRancor.itemIndex != VariantOnSurvivor.itemIndex)
		{
			list.Add(HerRancor.itemIndex);
		}
		if (self.GetItemCount(HerPanic.itemIndex) > 0 && HerPanic.itemIndex != VariantOnSurvivor.itemIndex)
		{
			list.Add(HerPanic.itemIndex);
		}
		if (list.Count > 0)
		{
			flag = true;
		}
		orig(self, itemIndex, count);
		if (flag2 && self.GetItemCount(VariantOnSurvivor.itemIndex) == 0)
		{
			Size(3, body, truefalse: true);
		}
		for (int num = list.Count - 1; num >= 0; num--)
		{
			if (self.GetItemCount(list[num]) == 0)
			{
				list.Remove(list[num]);
			}
		}
		if (flag && list.Count == 0)
		{
			Size(4, body, truefalse: true);
		}
	}

	public static void Inventory_GiveItem_ItemIndex_int(Action<Inventory, ItemIndex, int> orig, Inventory self, ItemIndex itemIndex, int count)
	{
		//IL_0003: Unknown result type (might be due to invalid IL or missing references)
		orig(self, itemIndex, count);
		CharacterMaster component = ((Component)self).gameObject.GetComponent<CharacterMaster>();
		if (Object.op_Implicit((Object)(object)component))
		{
			CharacterBody body = component.GetBody();
			Size(1, body, truefalse: false);
			Size(2, body, truefalse: false);
		}
	}

	public static void UpdateBodyBlend(CharacterBody self)
	{
		//IL_0073: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
		ConfigEntry<bool> nsfw = Nsfw;
		if (nsfw == null || !nsfw.Value)
		{
			return;
		}
		object obj;
		if (self == null)
		{
			obj = null;
		}
		else
		{
			ModelLocator modelLocator = self.modelLocator;
			if (modelLocator == null)
			{
				obj = null;
			}
			else
			{
				Transform modelTransform = modelLocator.modelTransform;
				obj = ((modelTransform != null) ? ((Component)modelTransform).gameObject : null);
			}
		}
		if (!((Object)obj == (Object)null) && Object.op_Implicit((Object)(object)self.inventory))
		{
			float num = self.inventory.GetItemCount(HerBurden.itemIndex);
			ConfigEntry<bool> variantsAffectSize = VariantsAffectSize;
			if (variantsAffectSize != null && variantsAffectSize.Value)
			{
				num += (float)(self.inventory.GetItemCount(HerRecluse.itemIndex) + self.inventory.GetItemCount(HerFury.itemIndex) + self.inventory.GetItemCount(HerTorpor.itemIndex) + self.inventory.GetItemCount(HerRancor.itemIndex) + self.inventory.GetItemCount(HerPanic.itemIndex));
			}
			if (num > SizeMultiplier.Value)
			{
				num = SizeMultiplier.Value;
			}
			if (SizeMultiplier.Value > num && num != 0f)
			{
				float value = 1f - (SizeMultiplier.Value - num) / SizeMultiplier.Value;
				self.SetBlendValue("Breasts", value, "Burden");
			}
			else if (num == SizeMultiplier.Value)
			{
				self.SetBlendValue("Breasts", 1f, "Burden");
			}
			else
			{
				self.SetBlendValue("Breasts", 0f, "Burden");
			}
		}
	}

	public static void PickupPickerController_SetOptionsFromPickupForCommandArtifact(Action<PickupPickerController, PickupIndex> orig, PickupPickerController self, PickupIndex pickupIndex)
	{
		//IL_0003: Unknown result type (might be due to invalid IL or missing references)
		//IL_000a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_004d: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_0079: Unknown result type (might be due to invalid IL or missing references)
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_008f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0138: Unknown result type (might be due to invalid IL or missing references)
		//IL_013e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0144: Invalid comparison between Unknown and I4
		//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0202: Unknown result type (might be due to invalid IL or missing references)
		//IL_0213: 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_0229: Unknown result type (might be due to invalid IL or missing references)
		//IL_022e: Unknown result type (might be due to invalid IL or missing references)
		//IL_023f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0244: Unknown result type (might be due to invalid IL or missing references)
		//IL_0255: Unknown result type (might be due to invalid IL or missing references)
		//IL_025a: Unknown result type (might be due to invalid IL or missing references)
		//IL_015e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0163: Unknown result type (might be due to invalid IL or missing references)
		//IL_0280: Unknown result type (might be due to invalid IL or missing references)
		//IL_0285: Unknown result type (might be due to invalid IL or missing references)
		//IL_028d: Unknown result type (might be due to invalid IL or missing references)
		//IL_029d: Unknown result type (might be due to invalid IL or missing references)
		//IL_029f: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0189: Unknown result type (might be due to invalid IL or missing references)
		//IL_018e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0196: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_01af: Unknown result type (might be due to invalid IL or missing references)
		orig(self, pickupIndex);
		if (pickupIndex == PickupCatalog.FindPickupIndex(HBItemPicker.itemIndex))
		{
			List<PickupIndex> list = new List<PickupIndex>
			{
				PickupCatalog.FindPickupIndex(HerBurden.itemIndex),
				PickupCatalog.FindPickupIndex(HerRecluse.itemIndex),
				PickupCatalog.FindPickupIndex(HerFury.itemIndex),
				PickupCatalog.FindPickupIndex(HerTorpor.itemIndex),
				PickupCatalog.FindPickupIndex(HerRancor.itemIndex),
				PickupCatalog.FindPickupIndex(HerPanic.itemIndex)
			};
			Option[] array = (Option[])(object)new Option[list.Count];
			for (int i = 0; i < list.Count; i++)
			{
				PickupIndex pickupIndex2 = list[i];
				array[i] = new Option
				{
					available = true,
					pickupIndex = pickupIndex2
				};
			}
			self.SetOptionsServer(array);
		}
		if (!RunArtifactManager.instance.IsArtifactEnabled(Artifacts.Command) || !RunArtifactManager.instance.IsArtifactEnabled(HerCurse))
		{
			return;
		}
		if ((int)PickupCatalog.GetPickupDef(pickupIndex).equipmentIndex != -1)
		{
			List<PickupIndex> list2 = new List<PickupIndex> { PickupCatalog.FindPickupIndex(HerGamble.equipmentIndex) };
			Option[] array2 = (Option[])(object)new Option[list2.Count];
			for (int j = 0; j < list2.Count; j++)
			{
				PickupIndex pickupIndex3 = list2[j];
				array2[j] = new Option
				{
					available = true,
					pickupIndex = pickupIndex3
				};
			}
			self.SetOptionsServer(array2);
			return;
		}
		List<PickupIndex> list3 = new List<PickupIndex>
		{
			PickupCatalog.FindPickupIndex(HerBurden.itemIndex),
			PickupCatalog.FindPickupIndex(HerRecluse.itemIndex),
			PickupCatalog.FindPickupIndex(HerFury.itemIndex),
			PickupCatalog.FindPickupIndex(HerTorpor.itemIndex),
			PickupCatalog.FindPickupIndex(HerRancor.itemIndex),
			PickupCatalog.FindPickupIndex(HerPanic.itemIndex)
		};
		Option[] array3 = (Option[])(object)new Option[list3.Count];
		for (int k = 0; k < list3.Count; k++)
		{
			PickupIndex pickupIndex4 = list3[k];
			array3[k] = new Option
			{
				available = true,
				pickupIndex = pickupIndex4
			};
		}
		self.SetOptionsServer(array3);
	}

	public void Start()
	{
		ConfigEntry<bool> nsfw = Nsfw;
		if (nsfw == null || !nsfw.Value)
		{
			VariantOnSurvivor = HerBurden;
		}
		else if (VariantShownOnSurvivor.Value == "Burden")
		{
			VariantOnSurvivor = HerBurden;
		}
		else if (VariantShownOnSurvivor.Value == "Recluse")
		{
			VariantOnSurvivor = HerRecluse;
		}
		else if (VariantShownOnSurvivor.Value == "Fury")
		{
			VariantOnSurvivor = HerFury;
		}
		else if (VariantShownOnSurvivor.Value == "Torpor")
		{
			VariantOnSurvivor = HerTorpor;
		}
		else if (VariantShownOnSurvivor.Value == "Rancor")
		{
			VariantOnSurvivor = HerRancor;
		}
		else if (VariantShownOnSurvivor.Value == "Panic")
		{
			VariantOnSurvivor = HerPanic;
		}
	}

	private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider)
	{
		addContentPackProvider.Invoke((IContentPackProvider)(object)new Content());
	}

	public static void CharacterMaster_RespawnExtraLife(Action<CharacterMaster> orig, CharacterMaster self)
	{
		CharacterBody body = self.GetBody();
		Size(3, body, truefalse: true);
		Size(4, body, truefalse: true);
		orig(self);
		if (Object.op_Implicit((Object)(object)self.playerCharacterMasterController))
		{
			Size(5, body, truefalse: false);
			Size(6, body, truefalse: false);
		}
	}

	public static void PickupDropletController_CreatePickupDroplet_CreatePickupInfo_Vector3_Vector3(Action<CreatePickupInfo, Vector3, Vector3> orig, CreatePickupInfo pickupInfo, Vector3 position, Vector3 velocity)
	{
		//IL_0014: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: Invalid comparison between Unknown and I4
		//IL_0028: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		//IL_0073: Unknown result type (might be due to invalid IL or missing references)
		//IL_0079: Invalid comparison between Unknown and I4
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0053: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_0059: Unknown result type (might be due to invalid IL or missing references)
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0087: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00af: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0103: Unknown result type (might be due to invalid IL or missing references)
		//IL_0109: Invalid comparison between Unknown and I4
		//IL_0210: Unknown result type (might be due to invalid IL or missing references)
		//IL_021a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0220: Invalid comparison between Unknown and I4
		//IL_0167: Unknown result type (might be due to invalid IL or missing references)
		//IL_016c: 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_0172: Unknown result type (might be due to invalid IL or missing references)
		//IL_0180: Unknown result type (might be due to invalid IL or missing references)
		//IL_0185: Unknown result type (might be due to invalid IL or missing references)
		//IL_018a: Unknown result type (might be due to invalid IL or missing references)
		//IL_018b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0199: Unknown result type (might be due to invalid IL or missing references)
		//IL_019e: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01cb: 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_01d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ee: 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_025d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0267: Unknown result type (might be due to invalid IL or missing references)
		//IL_026c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0244: Unknown result type (might be due to invalid IL or missing references)
		//IL_0249: Unknown result type (might be due to invalid IL or missing references)
		//IL_024e: Unknown result type (might be due to invalid IL or missing references)
		//IL_024f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0355: Unknown result type (might be due to invalid IL or missing references)
		//IL_0356: Unknown result type (might be due to invalid IL or missing references)
		//IL_0357: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02da: Unknown result type (might be due to invalid IL or missing references)
		//IL_02df: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_030c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0311: Unknown result type (might be due to invalid IL or missing references)
		//IL_0316: Unknown result type (might be due to invalid IL or missing references)
		//IL_0317: Unknown result type (might be due to invalid IL or missing references)
		//IL_0325: Unknown result type (might be due to invalid IL or missing references)
		//IL_032a: Unknown result type (might be due to invalid IL or missing references)
		//IL_032f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0330: Unknown result type (might be due to invalid IL or missing references)
		//IL_033e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0343: Unknown result type (might be due to invalid IL or missing references)
		//IL_0348: Unknown result type (might be due to invalid IL or missing references)
		//IL_0349: Unknown result type (might be due to invalid IL or missing references)
		if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse) && (int)PickupCatalog.GetPickupDef(((CreatePickupInfo)(ref pickupInfo)).pickupIndex).equipmentIndex != -1 && ((CreatePickupInfo)(ref pickupInfo)).pickupIndex != PickupCatalog.FindPickupIndex(HerGamble.equipmentIndex))
		{
			PickupDropletController.CreatePickupDroplet(PickupCatalog.FindPickupIndex(HerGamble.equipmentIndex), position, velocity);
			return;
		}
		bool flag = false;
		if ((int)PickupCatalog.GetPickupDef(((CreatePickupInfo)(ref pickupInfo)).pickupIndex).itemIndex != -1 && ItemCatalog.GetItemDef(PickupCatalog.GetPickupDef(((CreatePickupInfo)(ref pickupInfo)).pickupIndex).itemIndex).ContainsTag((ItemTag)19))
		{
			flag = true;
		}
		bool flag2 = false;
		if (((CreatePickupInfo)(ref pickupInfo)).pickupIndex == PickupCatalog.FindPickupIndex(Items.ArtifactKey.itemIndex) || ((CreatePickupInfo)(ref pickupInfo)).pickupIndex == PickupCatalog.FindPickupIndex(Items.LunarTrinket.itemIndex))
		{
			flag2 = true;
		}
		if (RunArtifactManager.instance.IsArtifactEnabled(HerCurse) && (int)PickupCatalog.GetPickupDef(((CreatePickupInfo)(ref pickupInfo)).pickupIndex).itemIndex != -1 && !flag && VariantDropCount.Value && !flag2)
		{
			switch (Mathf.FloorToInt((float)Random.Range(0, 6)))
			{
			case 0:
				PickupDropletController.CreatePickupDroplet(PickupCatalog.FindPickupIndex(HerBurden.itemIndex), position, velocity);
				break;
			case 1:
				PickupDropletController.CreatePickupDroplet(PickupCatalog.FindPickupIndex(HerRecluse.itemIndex), position, velocity);
				break;
			case 2:
				PickupDropletController.CreatePickupDroplet(PickupCatalog.FindPickupIndex(HerFury.itemIndex), position, velocity);
				break;
			case 3:
				PickupDropletController.CreatePickupDroplet(PickupCatalog.FindPickupIndex(HerTorpor.itemIndex), position, velocity);
				break;
			case 4:
				PickupDropletController.Create