Decompiled source of Void Bone Pack v5.0.0

plugins/boneSigils.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using DiskCardGame;
using HarmonyLib;
using Infiniscryption.PackManagement;
using InscryptionAPI.Ascension;
using InscryptionAPI.Card;
using InscryptionAPI.Encounters;
using InscryptionAPI.Guid;
using InscryptionAPI.Helpers;
using InscryptionAPI.Regions;
using Microsoft.CodeAnalysis;
using UnityEngine;
using boneSigils.Artwork;
using boneSigils.Encounters;
using boneSigils.Managers;
using boneSigils.cards;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
[assembly: AssemblyCompany("boneSigils")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("a sigil I needed for my bone pack mod")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("boneSigils")]
[assembly: AssemblyTitle("boneSigils")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace boneSigils
{
	public class EncounterHelper
	{
		public static EncounterBlueprintData BuildBlueprint(string name, List<Tribe> tribes, List<Ability> redundant, bool regionLocked, int minDifficulty, int maxDifficulty, List<CardInfo> randomReplacementCards, List<List<CardBlueprint>> blueprintTurns)
		{
			EncounterBlueprintData val = ScriptableObject.CreateInstance<EncounterBlueprintData>();
			((Object)val).name = name;
			val.regionSpecific = regionLocked;
			EncounterExtensions.SetDifficulty<EncounterBlueprintData>(val, minDifficulty, maxDifficulty);
			val.dominantTribes = tribes;
			val.redundantAbilities = redundant;
			val.randomReplacementCards = randomReplacementCards;
			val.turns = blueprintTurns;
			return val;
		}

		public static CardInfo GetCardInfo(string self)
		{
			return CardLoader.GetCardByName(self);
		}

		public static RegionData GetRegionData(string RegionName)
		{
			RegionData result = RegionManager.BaseGameRegions[0];
			for (int i = 0; i < RegionManager.BaseGameRegions.Count; i++)
			{
				if (((Object)RegionManager.BaseGameRegions[i]).name == RegionName)
				{
					result = RegionManager.BaseGameRegions[i];
				}
			}
			return result;
		}

		public static EncounterBlueprintData GetBlueprintData(string EncounterName)
		{
			EncounterBlueprintData result = EncounterManager.BaseGameEncounters[0];
			for (int i = 0; i < EncounterManager.BaseGameEncounters.Count; i++)
			{
				if (((Object)EncounterManager.BaseGameEncounters[i]).name == EncounterName)
				{
					result = EncounterManager.BaseGameEncounters[i];
				}
			}
			return result;
		}

		public static List<CardInfo> AddRandomCards(string turn1 = "none", string turn2 = "none", string turn3 = "none", string turn4 = "none", string turn5 = "none", string turn6 = "none", string turn7 = "none", string turn8 = "none", string turn9 = "none")
		{
			List<CardInfo> list = new List<CardInfo>();
			if (turn1 != "none")
			{
				list.Add(CardLoader.GetCardByName(turn1));
				if (turn2 != "none")
				{
					list.Add(CardLoader.GetCardByName(turn2));
					if (turn3 != "none")
					{
						list.Add(CardLoader.GetCardByName(turn3));
						if (turn4 != "none")
						{
							list.Add(CardLoader.GetCardByName(turn4));
							if (turn5 != "none")
							{
								list.Add(CardLoader.GetCardByName(turn5));
								if (turn6 != "none")
								{
									list.Add(CardLoader.GetCardByName(turn6));
									if (turn7 != "none")
									{
										list.Add(CardLoader.GetCardByName(turn7));
										if (turn8 != "none")
										{
											list.Add(CardLoader.GetCardByName(turn8));
											if (turn9 != "none")
											{
												list.Add(CardLoader.GetCardByName(turn9));
												return list;
											}
											return list;
										}
										return list;
									}
									return list;
								}
								return list;
							}
							return list;
						}
						return list;
					}
					return list;
				}
				return list;
			}
			return list;
		}
	}
	public class SigilUtils
	{
		public static AbilityInfo CreateAbilityWithDefaultSettingsKCM(string rulebookName, string rulebookDescription, Type behavior, Texture2D text_a1, Texture2D text_a2, string LearnDialogue, bool withDialogue = false, int powerLevel = 0, bool leshyUsable = false, bool part1Modular = true, bool stack = false)
		{
			AbilityInfo val = AbilityManager.New("extraVoid.inscryption.void_bone_pack", rulebookName, rulebookDescription, behavior, (Texture)(object)text_a1);
			AbilityExtensions.SetPixelAbilityIcon(val, text_a2, (FilterMode?)null);
			if (withDialogue)
			{
				val.abilityLearnedDialogue = SetAbilityInfoDialogue(LearnDialogue);
			}
			val.powerLevel = powerLevel;
			val.opponentUsable = leshyUsable;
			if (part1Modular)
			{
				val.metaCategories = new List<AbilityMetaCategory>
				{
					(AbilityMetaCategory)1,
					(AbilityMetaCategory)0
				};
			}
			else
			{
				val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 };
			}
			val.canStack = stack;
			return val;
		}

		public static CardInfo CreateCardWithDefaultSettings(string InternalName, string DisplayName, int attack, int health, Texture2D texture_base, Texture2D texture_emission, List<CardMetaCategory> cardMetaCategories, List<Tribe> tribes, List<Trait> traits, List<Ability> abilities, Texture2D texture_pixel = null, int bloodCost = 0, int boneCost = 0, int energyCost = 0)
		{
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Expected I4, but got Unknown
			//IL_00c9: 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)
			CardInfo val = CardManager.New("void", InternalName, DisplayName, attack, health, "A puddle that errods all that touches it.");
			CardExtensions.SetPortrait(val, texture_base, texture_emission, (FilterMode?)null);
			if ((Object)(object)texture_pixel == (Object)null)
			{
				texture_pixel = GetTextureFromPath("Artwork/pixelportrait_blank.png");
				CardExtensions.SetPixelPortrait(val, texture_pixel, (FilterMode?)null);
			}
			else
			{
				CardExtensions.SetPixelPortrait(val, texture_pixel, (FilterMode?)null);
			}
			CardExtensions.SetPixelPortrait(val, texture_pixel, (FilterMode?)null);
			val.metaCategories = cardMetaCategories;
			val.tribes = tribes;
			val.traits = traits;
			for (int i = 0; i < abilities.Count; i++)
			{
				CardExtensions.AddAbilities(val, (Ability[])(object)new Ability[1] { (Ability)(int)abilities[i] });
			}
			val.temple = (CardTemple)0;
			val.cardComplexity = (CardComplexity)2;
			CardExtensions.SetBloodCost(val, (int?)bloodCost);
			CardExtensions.SetBonesCost(val, (int?)boneCost);
			CardExtensions.SetEnergyCost(val, (int?)energyCost);
			return val;
		}

		public static LineSet SetAbilityInfoDialogue(string dialogue)
		{
			//IL_0007: 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_0018: Expected O, but got Unknown
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Expected O, but got Unknown
			return new LineSet(new List<Line>
			{
				new Line
				{
					text = dialogue
				}
			});
		}

		public static Texture2D GetTextureFromPath(string path)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			byte[] array = File.ReadAllBytes(Path.Combine(Plugin.Directory, path));
			Texture2D val = new Texture2D(2, 2);
			ImageConversion.LoadImage(val, array);
			return val;
		}

		public static Texture2D LoadTextureFromResource(byte[] resourceFile)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Expected O, but got Unknown
			Texture2D val = new Texture2D(2, 2);
			ImageConversion.LoadImage(val, resourceFile);
			return val;
		}

		public static string GetFullPathOfFile(string fileToLookFor)
		{
			return Directory.GetFiles(Paths.PluginPath, fileToLookFor, SearchOption.AllDirectories)[0];
		}

		public static byte[] ReadArtworkFileAsBytes(string nameOfCardArt)
		{
			return File.ReadAllBytes(GetFullPathOfFile(nameOfCardArt));
		}

		public static Texture2D LoadImageAndGetTexture(string nameOfCardArt)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Expected O, but got Unknown
			Texture2D val = new Texture2D(2, 2);
			byte[] array = ReadArtworkFileAsBytes(nameOfCardArt);
			bool flag = ImageConversion.LoadImage(val, array);
			return val;
		}

		public static CardSlot GetSlot(PlayableCard cardToGetSlot)
		{
			if ((Object)(object)cardToGetSlot.Slot != (Object)null)
			{
				return cardToGetSlot.Slot;
			}
			CardSlot component = ((Component)((Component)cardToGetSlot).transform.parent).GetComponent<CardSlot>();
			if ((Object)(object)component != (Object)null)
			{
				return component;
			}
			int instanceID = ((Object)((Component)cardToGetSlot).gameObject).GetInstanceID();
			Plugin.Log.LogInfo((object)("[SplashDamageAbility][GetSlot] Getting slot for " + instanceID));
			List<CardSlot> list = new List<CardSlot>();
			list.AddRange(Singleton<BoardManager>.Instance.GetSlots(false));
			list.AddRange(Singleton<BoardManager>.Instance.GetSlots(true));
			for (int i = 0; i < list.Count; i++)
			{
				CardSlot val = list[i];
				if (val.Index != 2)
				{
					continue;
				}
				PlayableCard card = val.Card;
				if (!((Object)(object)card == (Object)null))
				{
					if ((Object)(object)((Component)card).gameObject == (Object)(object)((Component)cardToGetSlot).gameObject)
					{
						return val;
					}
					int instanceID2 = ((Object)((Component)card).gameObject).GetInstanceID();
				}
			}
			Plugin.Log.LogInfo((object)("[SplashDamageAbility][GetSlot] Could not find slot for " + instanceID));
			return null;
		}
	}
	[BepInPlugin("extraVoid.inscryption.void_bone_pack", "Void Bone Pack", "5.0.0")]
	[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.*/)]
	public class Plugin : BaseUnityPlugin
	{
		public const string APIGUID = "cyantist.inscryption.api";

		public const string SigilGUID = "extraVoid.inscryption.voidSigils";

		public const string StarterdeckGUID = "zorro.inscryption.infiniscryption.sidedecks";

		public const string TotemGUID = "Lily.BOT";

		public const string PluginGuid = "extraVoid.inscryption.void_bone_pack";

		private const string PluginName = "Void Bone Pack";

		private const string PluginVersion = "5.0.0";

		public static string Directory;

		internal static ManualLogSource Log;

		internal static ConfigEntry<bool> configVanillaTweaks;

		internal static ConfigEntry<bool> configBullRush;

		internal static ConfigEntry<bool> configCrabRush;

		internal static ConfigEntry<bool> configBeetleRush;

		internal static ConfigEntry<bool> configReptileKing;

		internal static ConfigEntry<bool> configBeaverStall;

		internal static ConfigEntry<bool> configPointCostMode;

		internal static ConfigEntry<bool> configEnergyCosts;

		internal static ConfigEntry<int> configPointCostBonus;

		private void Awake()
		{
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Expected O, but got Unknown
			//IL_0191: 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_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
			configVanillaTweaks = ((BaseUnityPlugin)this).Config.Bind<bool>("Vanilla Tweaks", "Should they exist?", true, "Turn on or off the vanilla tweaks that the bone pack does.");
			configBullRush = ((BaseUnityPlugin)this).Config.Bind<bool>("Encounters", "Bull Rush", true, "Turn on or off the encounter.");
			configCrabRush = ((BaseUnityPlugin)this).Config.Bind<bool>("Encounters", "Crab Stall", true, "Turn on or off the encounter.");
			configBeetleRush = ((BaseUnityPlugin)this).Config.Bind<bool>("Encounters", "Beetle Rush", true, "Turn on or off the encounter.");
			configReptileKing = ((BaseUnityPlugin)this).Config.Bind<bool>("Encounters", "Reptile King", true, "Turn on or off the encounter.");
			configBeaverStall = ((BaseUnityPlugin)this).Config.Bind<bool>("Encounters", "Beaver Stall", true, "Turn on or off the encounter.");
			configPointCostMode = ((BaseUnityPlugin)this).Config.Bind<bool>("Point Cost Mode", "Point Cost Mode", false, "Turn on to change the bone cost of every card to better follow the value the vanilla point system. This mod values blood at 4 points.");
			configPointCostBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Point Cost Mode", "Point Cost Bonus", 0, "Change the value here to make cards more or less expensive in point cost mode");
			configEnergyCosts = ((BaseUnityPlugin)this).Config.Bind<bool>("Cards", "Energy Costs", false, "Convert Enchidna and Torpedo Ray to use Energy and not Bones");
			Log = ((BaseUnityPlugin)this).Logger;
			Directory = ((BaseUnityPlugin)this).Info.Location.Replace("boneSigils.dll", "");
			Harmony val = new Harmony("extraVoid.inscryption.void_bone_pack");
			val.PatchAll();
			AddDrawWasp();
			AddPupate();
			AddMadCowDiseasee();
			AddSigilsToBook();
			MurderOfCrowsSpecialAbility.specialAbility = SpecialTriggeredAbilityManager.Add("extraVoid.inscryption.void_bone_pack", "Crow Murder", typeof(MurderOfCrowsSpecialAbility)).Id;
			DairyCowSpecialAbility.specialAbility = SpecialTriggeredAbilityManager.Add("extraVoid.inscryption.void_bone_pack", "Fresh Steak", typeof(DairyCowSpecialAbility)).Id;
			Angler.AddCard();
			Angler_Lure.AddCard();
			Ant_ArmorCutter.AddCard();
			Axolotl.AddCard();
			Bat.AddCard();
			Bear.AddCard();
			Beetle_Bombardier.AddCard();
			Beetle_Carrion.AddCard();
			Beetle_Larvae.AddCard();
			Beetle_Rhino.AddCard();
			Beetle_Scarab.AddCard();
			Bone_Lord.AddCard();
			Mole.AddCard();
			Cow_Dairy.AddCard();
			Cow_Mad.AddCard();
			Cow_Skul.AddCard();
			Cow_Wild.AddCard();
			Crab_coco.AddCard();
			Crab_fiddler.AddCard();
			Crab_Leg.AddCard();
			Crab_Spider.AddCard();
			Dragon.AddCard();
			Egg.AddCard();
			Enchidna.AddCard();
			Giraffe.AddCard();
			Mouse_Scared.AddCard();
			Mantis_Shrimp.AddCard();
			MurderOfCrows.AddCard();
			Owl_Familiar.AddCard();
			PileOfBones.AddCard();
			Rabbit.AddCard();
			Ray_Manta.AddCard();
			Ray_Torpedo.AddCard();
			Ruby_Creature.AddCard();
			Salmon.AddCard();
			Scrap.AddCard();
			Serpent_Jade.AddCard();
			Steak.AddCard();
			Stinkbug.AddCard();
			Tanuki_Mythical.AddCard();
			Tanuki.AddCard();
			Tanuki_Pup.AddCard();
			Tortoise_Bell.AddCard();
			Tortoise_Bell_Broken.AddCard();
			Tortoise_Long.AddCard();
			Tortoise_Small.AddCard();
			Tortoise_Spiny.AddCard();
			Urchin_Flower.AddCard();
			Urchin_LongSpine.AddCard();
			Urchin_Sea.AddCard();
			Vulture.AddCard();
			WaspSwarm.AddCard();
			Wolf.AddCard();
			Wolverine.AddCard();
			TestCard1.AddCard();
			TestCard2.AddCard();
			TestCard3.AddCard();
		}

		private void Start()
		{
			if (configVanillaTweaks.Value)
			{
				Log.LogMessage((object)"Vanilla config fired 1");
				Vanilla_Tweaks.AddCard();
			}
			KCM_StartingDeck_Bones.AddStartingDeck();
			Vanilla_Tweaks.TryCreatePack();
			if (configBeetleRush.Value)
			{
				BeetleRush.AddEncounter();
			}
			if (configBullRush.Value)
			{
				Bulls.AddEncounter();
			}
			if (configCrabRush.Value)
			{
				Crabs.AddEncounter();
			}
			if (configReptileKing.Value)
			{
				ReptileKing.AddEncounter();
			}
			if (configBeaverStall.Value)
			{
				BeaverStall.AddEncounter();
			}
		}

		private static void AddSigilsToBook()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Invalid comparison between Unknown and I4
			List<AbilityInfo> allData = ScriptableObjectLoader<AbilityInfo>.AllData;
			for (int i = 0; i < allData.Count; i++)
			{
				AbilityInfo val = allData[i];
				if ((int)val.ability == 28)
				{
					val.powerLevel = -2;
				}
			}
		}

		private void AddDrawWasp()
		{
			//IL_0049: 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)
			Texture2D text_a = SigilUtils.LoadTextureFromResource(Resources.ability_drawwasp);
			Texture2D text_a2 = SigilUtils.LoadTextureFromResource(Resources.ability_drawwasp);
			int powerLevel = -3;
			bool leshyUsable = false;
			bool part1Modular = true;
			bool stack = false;
			ability_drawwasp.ability = SigilUtils.CreateAbilityWithDefaultSettingsKCM("Draw Wasp", "[creature] create a wasp swarm in your hand when played", typeof(ability_drawwasp), text_a, text_a2, "Where there is one, there is many.", withDialogue: true, powerLevel, leshyUsable, part1Modular, stack).ability;
		}

		private void AddMadCowDiseasee()
		{
			//IL_0049: 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)
			Texture2D text_a = SigilUtils.LoadTextureFromResource(Resources.ability_MadCow_2);
			Texture2D text_a2 = SigilUtils.LoadTextureFromResource(Resources.ability_pupate_3_a2);
			int powerLevel = -3;
			bool leshyUsable = false;
			bool part1Modular = false;
			bool stack = false;
			ability_MadCow.ability = SigilUtils.CreateAbilityWithDefaultSettingsKCM("Mad Cow", "[creature] will become Bulvine Bones after two turns.", typeof(ability_MadCow), text_a, text_a2, "We all most go sometime. Some sooner than others.", withDialogue: true, powerLevel, leshyUsable, part1Modular, stack).ability;
		}

		private void AddPupate()
		{
			//IL_0049: 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)
			Texture2D text_a = SigilUtils.LoadTextureFromResource(Resources.ability_pupate_3);
			Texture2D text_a2 = SigilUtils.LoadTextureFromResource(Resources.ability_pupate_3_a2);
			int powerLevel = -3;
			bool leshyUsable = false;
			bool part1Modular = false;
			bool stack = false;
			ability_Pupate.ability = SigilUtils.CreateAbilityWithDefaultSettingsKCM("Pupate", "[creature] will become a random beetle after 3 turns.", typeof(ability_Pupate), text_a, text_a2, "What Beetle will it turn into?", withDialogue: true, powerLevel, leshyUsable, part1Modular, stack).ability;
		}
	}
	public class DairyCowSpecialAbility : SpecialCardBehaviour
	{
		public static SpecialTriggeredAbility specialAbility;

		public SpecialTriggeredAbility SpecialAbility => specialAbility;

		public static void addDairySpecial()
		{
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			SpecialTriggeredAbility id = SpecialTriggeredAbilityManager.Add("extraVoid.inscryption.void_bone_pack", "Fresh Steak", typeof(DairyCowSpecialAbility)).Id;
		}

		public override bool RespondsToDie(bool wasSacrifice, PlayableCard killer)
		{
			return ((SpecialCardBehaviour)this).PlayableCard.OnBoard;
		}

		public override IEnumerator OnDie(bool wasSacrifice, PlayableCard killer)
		{
			yield return (object)new WaitForSeconds(0.35f);
			yield return Singleton<CardSpawner>.Instance.SpawnCardToHand(CardLoader.GetCardByName("void_Steak"), (List<CardModificationInfo>)null, 0.25f, (Action<PlayableCard>)null);
			yield return (object)new WaitForSeconds(0.35f);
		}
	}
	public class ability_drawwasp : DrawCreatedCard
	{
		public static Ability ability;

		public override Ability Ability => ability;

		public override CardInfo CardToDraw
		{
			get
			{
				CardInfo cardByName = CardLoader.GetCardByName("void_Wasp_Swarm");
				cardByName.Mods.AddRange(((AbilityBehaviour)this).Card.TemporaryMods);
				return cardByName;
			}
		}

		public override bool RespondsToResolveOnBoard()
		{
			return true;
		}

		public override IEnumerator OnResolveOnBoard()
		{
			yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence();
			yield return ((DrawCreatedCard)this).CreateDrawnCard();
			yield return ((AbilityBehaviour)this).LearnAbility(0.5f);
		}
	}
	public class ability_MadCow : AbilityBehaviour
	{
		public static Ability ability;

		private int numTurnsInPlay;

		public override Ability Ability => ability;

		protected virtual bool EvolveInheritsInfoMods => true;

		protected virtual float PostTransformWait => 0.5f;

		public override bool RespondsToUpkeep(bool playerUpkeep)
		{
			return ((AbilityBehaviour)this).Card.OpponentCard != playerUpkeep;
		}

		public override IEnumerator OnUpkeep(bool playerUpkeep)
		{
			int num = 2;
			numTurnsInPlay++;
			int num2 = Mathf.Max(1, num - numTurnsInPlay);
			((Card)((AbilityBehaviour)this).Card).RenderInfo.OverrideAbilityIcon(((AbilityBehaviour)this).Ability, (Texture)(object)SigilUtils.GetTextureFromPath("Artwork/ability_MadCow_" + num2 + ".png"));
			((Card)((AbilityBehaviour)this).Card).RenderCard();
			if (numTurnsInPlay < num)
			{
				yield break;
			}
			CardInfo evolution = CardLoader.GetCardByName("void_Cow_Skul");
			if (EvolveInheritsInfoMods)
			{
				foreach (CardModificationInfo cardModificationInfo in ((Card)((AbilityBehaviour)this).Card).Info.Mods.FindAll((CardModificationInfo x) => !x.nonCopyable))
				{
					CardModificationInfo cardModificationInfo2 = (CardModificationInfo)cardModificationInfo.Clone();
					if (cardModificationInfo2.HasAbility((Ability)5))
					{
						cardModificationInfo2.abilities.Remove((Ability)5);
					}
					evolution.Mods.Add(cardModificationInfo2);
				}
			}
			yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence();
			yield return ((AbilityBehaviour)this).Card.TransformIntoCard(evolution, (Action)RemoveTemporaryModsWithEvolve, (Action)null);
			yield return (object)new WaitForSeconds(PostTransformWait);
			yield return ((AbilityBehaviour)this).LearnAbility(0.5f);
		}

		private void RemoveTemporaryModsWithEvolve()
		{
			for (CardModificationInfo temporaryEvolveMod = GetTemporaryEvolveMod(); temporaryEvolveMod != null; temporaryEvolveMod = GetTemporaryEvolveMod())
			{
				((AbilityBehaviour)this).Card.RemoveTemporaryMod(temporaryEvolveMod, true);
			}
		}

		private CardModificationInfo GetTemporaryEvolveMod()
		{
			return ((AbilityBehaviour)this).Card.TemporaryMods.Find((CardModificationInfo x) => x.abilities.Contains((Ability)5));
		}

		public IEnumerator TransformIntoCard(CardInfo evolvedInfo, Action onTransformedCallback = null, Action preTransformCallback = null)
		{
			Singleton<ViewManager>.Instance.SwitchToView((View)4, false, false);
			yield return (object)new WaitForSeconds(0.15f);
			((Card)((AbilityBehaviour)this).Card).Anim.PlayTransformAnimation();
			yield return (object)new WaitForSeconds(0.15f);
			preTransformCallback?.Invoke();
			((Card)((AbilityBehaviour)this).Card).SetInfo(evolvedInfo);
			onTransformedCallback?.Invoke();
		}
	}
	public class MurderOfCrowsSpecialAbility : SpecialCardBehaviour
	{
		public static SpecialTriggeredAbility specialAbility;

		public SpecialTriggeredAbility SpecialAbility => specialAbility;

		public override bool RespondsToResolveOnBoard()
		{
			return true;
		}

		public override IEnumerator OnResolveOnBoard()
		{
			Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true);
			PlayableCard crows = (PlayableCard)((SpecialCardBehaviour)this).Card;
			List<CardSlot> OPCards = Singleton<BoardManager>.Instance.GetSlots(false);
			List<CardSlot> PLCards = Singleton<BoardManager>.Instance.GetSlots(true);
			((Card)crows).Anim.StrongNegationEffect();
			((Card)crows).Anim.PlaySacrificeParticles();
			for (int i = 0; i < OPCards.Count; i++)
			{
				if (!((Object)(object)OPCards[i].Card != (Object)null))
				{
					continue;
				}
				PlayableCard target = OPCards[i].Card;
				CardSlot slot = OPCards[i];
				if (!((Card)target).Info.HasTrait((Trait)16) && (Object)(object)slot != (Object)(object)crows.Slot && !((Card)target).Info.HasTrait((Trait)12) && !((Card)target).Info.HasTrait((Trait)13))
				{
					((Card)target).Anim.LightNegationEffect();
					((Card)crows).Anim.PlaySacrificeParticles();
					((Card)target).Anim.PlaySacrificeParticles();
					yield return (object)new WaitForSeconds(0.2f);
					yield return target.Die(false, target, true);
					yield return (object)new WaitForSeconds(0.3f);
					if ((Object)(object)slot.Card == (Object)null)
					{
						PlayableCard murdered = CardSpawner.SpawnPlayableCard(CardLoader.GetCardByName("void_PileOfBones"));
						yield return Singleton<BoardManager>.Instance.ResolveCardOnBoard(murdered, slot, 0.1f, (Action)null, true);
					}
				}
			}
			for (int j = 0; j < PLCards.Count; j++)
			{
				if (!((Object)(object)PLCards[j].Card != (Object)null))
				{
					continue;
				}
				PlayableCard target2 = PLCards[j].Card;
				CardSlot slot2 = PLCards[j];
				if (!((Card)target2).Info.HasTrait((Trait)16) && (Object)(object)slot2 != (Object)(object)crows.Slot && !((Card)target2).Info.HasTrait((Trait)12) && !((Card)target2).Info.HasTrait((Trait)13))
				{
					((Card)target2).Anim.LightNegationEffect();
					((Card)crows).Anim.PlaySacrificeParticles();
					((Card)target2).Anim.PlaySacrificeParticles();
					yield return (object)new WaitForSeconds(0.2f);
					yield return target2.Die(false, target2, true);
					yield return (object)new WaitForSeconds(0.3f);
					if ((Object)(object)slot2.Card == (Object)null)
					{
						PlayableCard murdered2 = CardSpawner.SpawnPlayableCard(CardLoader.GetCardByName("void_PileOfBones"));
						yield return Singleton<BoardManager>.Instance.ResolveCardOnBoard(murdered2, slot2, 0.1f, (Action)null, true);
					}
				}
			}
			yield return (object)new WaitForSeconds(0.2f);
			Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0;
		}
	}
	public class ability_Pupate : AbilityBehaviour
	{
		public static Ability ability;

		private int numTurnsInPlay;

		public override Ability Ability => ability;

		protected virtual bool EvolveInheritsInfoMods => true;

		protected virtual float PostTransformWait => 0.5f;

		public override bool RespondsToUpkeep(bool playerUpkeep)
		{
			return ((AbilityBehaviour)this).Card.OpponentCard != playerUpkeep;
		}

		public override IEnumerator OnUpkeep(bool playerUpkeep)
		{
			List<string> list = new List<string> { "void_Beetle_Carrion", "void_Beetle_Rhino", "void_Beetle_Scarab", "void_Beetle_Bombardier" };
			int num = 3;
			numTurnsInPlay++;
			int num2 = Mathf.Max(1, num - numTurnsInPlay);
			((Card)((AbilityBehaviour)this).Card).RenderInfo.OverrideAbilityIcon(((AbilityBehaviour)this).Ability, (Texture)(object)SigilUtils.GetTextureFromPath("Artwork/ability_pupate_" + num2 + ".png"));
			((Card)((AbilityBehaviour)this).Card).RenderCard();
			if (numTurnsInPlay < num)
			{
				yield break;
			}
			string cardName = list[Random.Range(0, list.Count)];
			CardInfo cardinfo = CardLoader.GetCardByName(cardName);
			if (EvolveInheritsInfoMods)
			{
				foreach (CardModificationInfo cardModificationInfo in ((Card)((AbilityBehaviour)this).Card).Info.Mods.FindAll((CardModificationInfo x) => !x.nonCopyable))
				{
					CardModificationInfo cardModificationInfo2 = (CardModificationInfo)cardModificationInfo.Clone();
					if (cardModificationInfo2.HasAbility((Ability)5))
					{
						cardModificationInfo2.abilities.Remove((Ability)5);
					}
					cardinfo.Mods.Add(cardModificationInfo2);
				}
			}
			yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence();
			yield return ((AbilityBehaviour)this).Card.TransformIntoCard(cardinfo, (Action)RemoveTemporaryModsWithEvolve, (Action)null);
			yield return (object)new WaitForSeconds(PostTransformWait);
			yield return ((AbilityBehaviour)this).LearnAbility(0.5f);
		}

		private void RemoveTemporaryModsWithEvolve()
		{
			for (CardModificationInfo temporaryEvolveMod = GetTemporaryEvolveMod(); temporaryEvolveMod != null; temporaryEvolveMod = GetTemporaryEvolveMod())
			{
				((AbilityBehaviour)this).Card.RemoveTemporaryMod(temporaryEvolveMod, true);
			}
		}

		private CardModificationInfo GetTemporaryEvolveMod()
		{
			return ((AbilityBehaviour)this).Card.TemporaryMods.Find((CardModificationInfo x) => x.abilities.Contains((Ability)5));
		}

		public IEnumerator TransformIntoCard(CardInfo evolvedInfo, Action onTransformedCallback = null, Action preTransformCallback = null)
		{
			Singleton<ViewManager>.Instance.SwitchToView((View)4, false, false);
			yield return (object)new WaitForSeconds(0.15f);
			((Card)((AbilityBehaviour)this).Card).Anim.PlayTransformAnimation();
			yield return (object)new WaitForSeconds(0.15f);
			preTransformCallback?.Invoke();
			((Card)((AbilityBehaviour)this).Card).SetInfo(evolvedInfo);
			onTransformedCallback?.Invoke();
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "boneSigils";

		public const string PLUGIN_NAME = "boneSigils";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}
namespace boneSigils.Managers
{
	public static class CreateCardPack
	{
		public static void CreatePack()
		{
			PackInfo packInfo = PackManager.GetPackInfo("void");
			packInfo.Title = "Bone Booster Pack";
			packInfo.SetTexture(SigilUtils.GetTextureFromPath("Artwork/bone_pack.png"));
			packInfo.Description = "A 40+ card expansion that is designed to make playing pure bone decks viable, by increasing the speed of bones and adding a lot of bone support.";
			packInfo.ValidFor.Add((PackMetacategory)0);
		}
	}
	internal class KCM_StartingDeck_Bones
	{
		public static void AddStartingDeck()
		{
			Texture2D val = SigilUtils.LoadTextureFromResource(Resources.void_KCM_starter_PureBone);
			Texture2D val2 = SigilUtils.LoadTextureFromResource(Resources.void_KCM_starter_TrapperToys);
			Texture2D val3 = SigilUtils.LoadTextureFromResource(Resources.void_KCM_starter_Activate);
			StarterDeckInfo val4 = ScriptableObject.CreateInstance<StarterDeckInfo>();
			val4.title = "Pure Bone";
			val4.iconSprite = TextureHelper.ConvertTexture(val, (SpriteType)9, (FilterMode)0);
			val4.cards = new List<CardInfo>
			{
				CardLoader.GetCardByName("void_Axolotl"),
				CardLoader.GetCardByName("void_Beetle_Larva"),
				CardLoader.GetCardByName("void_Owl_Familiar")
			};
			StarterDeckManager.Add("extraVoid.inscryption.void_bone_pack", val4, 0);
			StarterDeckInfo val5 = ScriptableObject.CreateInstance<StarterDeckInfo>();
			val5.title = "Trapper's Toys";
			val5.iconSprite = TextureHelper.ConvertTexture(val2, (SpriteType)9, (FilterMode)0);
			val5.cards = new List<CardInfo>
			{
				CardLoader.GetCardByName("TrapFrog"),
				CardLoader.GetCardByName("void_Mole"),
				CardLoader.GetCardByName("void_Tortoise_Bell_Broken")
			};
			StarterDeckManager.Add("extraVoid.inscryption.void_bone_pack", val5, 0);
			StarterDeckInfo val6 = ScriptableObject.CreateInstance<StarterDeckInfo>();
			val6.title = "Activate Bones";
			val6.iconSprite = TextureHelper.ConvertTexture(val3, (SpriteType)9, (FilterMode)0);
			val6.cards = new List<CardInfo>
			{
				CardLoader.GetCardByName("void_Camel"),
				CardLoader.GetCardByName("void_Barbet"),
				CardLoader.GetCardByName("void_Crow_Familiar")
			};
			StarterDeckManager.Add("extraVoid.inscryption.void_bone_pack", val6, 0);
		}
	}
	internal class PointCost
	{
		[HarmonyPatch(typeof(LoadingScreenManager), "LoadGameData")]
		public class LoadingScreenManager_LoadGameData
		{
			public static void Postfix()
			{
				if (!Plugin.configPointCostMode.Value)
				{
					return;
				}
				List<CardInfo> allData = ScriptableObjectLoader<CardInfo>.AllData;
				for (int i = 0; i < allData.Count; i++)
				{
					CardInfo val = allData[i];
					switch (((Object)val).name)
					{
					case "void_Angler":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Leaf_Ant":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Bat":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Bear":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Beetle_Bombardier":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Beetle_Carrion":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Beetle_Larva":
					{
						int num = val.PowerLevel - 1 + 3;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Beetle_Rhino":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Beetle_Scarab":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Bone_Lord":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Cow_Dairy":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Cow_Mad":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Cow_Wild":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Crab_Coco":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Crab_Fiddler":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Crab_Spider":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Dragon":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Egg":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Enchidna":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						if (Chainloader.PluginInfos.ContainsKey("extraVoid.inscryption.LifeCost"))
						{
							val2 = num - Plugin.configPointCostBonus.Value * -1 - 8;
						}
						if (Plugin.configEnergyCosts.Value)
						{
							val2 -= 4;
						}
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Giraffe":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Shrimp_Mantis":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Mole":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Scared_Mouse":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Crows_Murder":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Owl_Familiar":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Rabbit":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Ray_Manta":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Ray_Torpedo":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						if (Chainloader.PluginInfos.ContainsKey("extraVoid.inscryption.LifeCost"))
						{
							val2 = num - Plugin.configPointCostBonus.Value * -1 - 8;
						}
						if (Plugin.configEnergyCosts.Value)
						{
							val2 -= 4;
						}
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Ruby_Creature":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Salmon":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Jade_Serpent":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Stinkbug":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Tanuki":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Tanuki_Mythical":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Camel":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Crow_Familiar":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Barbet":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Tortoise_Bell":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Tortoise_Bell_Broken":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Tortoise_Long":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Tortoise_Small":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Tortoise_Spiny":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Urchin_Flower":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Urchin_LongSpine":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Urchin_Sea":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Vulture":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Wasp_Swarm":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Wolf":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					case "void_Wolverine":
					{
						int num = val.PowerLevel - 1;
						int val2 = num - Plugin.configPointCostBonus.Value * -1 - val.BloodCost * 4;
						int value = Math.Max(val2, 0);
						CardExtensions.SetBonesCost(val, (int?)value);
						break;
					}
					}
				}
			}
		}
	}
	public static class Vanilla_Tweaks
	{
		public static readonly Ability CustomAbility1 = GuidManager.GetEnumValue<Ability>("extraVoid.inscryption.voidSigils", "Toxin (Sickening)");

		public static readonly Ability CustomAbility2 = GuidManager.GetEnumValue<Ability>("extraVoid.inscryption.voidSigils", "Electric");

		public static void AddCard()
		{
			//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_0029: Unknown result type (might be due to invalid IL or missing references)
			CardInfo val = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Rattler");
			Ability customAbility = CustomAbility1;
			val.Abilities.Clear();
			val.DefaultAbilities.Add(customAbility);
			val = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "RatKing");
			CardExtensions.SetBonesCost(val, (int?)2);
			CardExtensions.SetBloodCost(val, (int?)1);
			val = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Opossum");
			val.Abilities.Clear();
			val.Abilities.Add((Ability)28);
			val = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Bat");
			CardExtensions.SetBonesCost(val, (int?)2);
			val = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Vulture");
			CardExtensions.SetBonesCost(val, (int?)5);
			CardExtensions.SetBloodCost(val, (int?)1);
			Plugin.Log.LogMessage((object)"Vanilla config fired 2");
		}

		public static void TryCreatePack()
		{
			CardInfo val = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "TrapFrog");
			CardExtensions.SetPixelPortrait(val, TextureHelper.ConvertTexture(SigilUtils.GetTextureFromPath("Artwork/pixelportrait_trap_frog.png"), (SpriteType)1, (FilterMode)0));
			try
			{
				CreateCardPack.CreatePack();
			}
			catch (Exception)
			{
				Plugin.Log.LogInfo((object)"Could not create pack. Pack Manager API is not installed");
			}
		}
	}
}
namespace boneSigils.Encounters
{
	internal class BeaverStall
	{
		public static void AddEncounter()
		{
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0085: 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_009f: Expected O, but got Unknown
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Expected O, but got Unknown
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Expected O, but got Unknown
			//IL_00e3: 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_00fd: Expected O, but got Unknown
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Expected O, but got Unknown
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Expected O, but got Unknown
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Expected O, but got Unknown
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			//IL_019e: Expected O, but got Unknown
			//IL_01a1: 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_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Expected O, but got Unknown
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Expected O, but got Unknown
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: Expected O, but got Unknown
			//IL_021e: 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_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0240: Expected O, but got Unknown
			//IL_024a: 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_025f: Unknown result type (might be due to invalid IL or missing references)
			//IL_026c: Expected O, but got Unknown
			//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_0284: Unknown result type (might be due to invalid IL or missing references)
			//IL_0291: Expected O, but got Unknown
			//IL_029b: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bd: Expected O, but got Unknown
			string name = "BeaverStall";
			string regionName = "Forest";
			List<Tribe> list = new List<Tribe>();
			list.Add((Tribe)3);
			List<Ability> redundant = new List<Ability>();
			bool regionLocked = true;
			List<CardInfo> randomReplacementCards = EncounterHelper.AddRandomCards("Wolf", "WolfCub", "Alpha");
			List<List<CardBlueprint>> list2 = new List<List<CardBlueprint>>();
			List<CardBlueprint> list3 = new List<CardBlueprint>();
			list3.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam")
			});
			list3.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam")
			});
			list3.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam")
			});
			list3.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam")
			});
			List<CardBlueprint> list4 = new List<CardBlueprint>();
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Beaver")
			});
			List<CardBlueprint> list5 = new List<CardBlueprint>();
			list5.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Beaver")
			});
			List<CardBlueprint> list6 = new List<CardBlueprint>();
			list6.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam"),
				randomReplaceChance = 25
			});
			list6.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list7 = new List<CardBlueprint>();
			list7.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Beaver"),
				randomReplaceChance = 25
			});
			list7.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Beaver"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list8 = new List<CardBlueprint>();
			list8.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list9 = new List<CardBlueprint>();
			list9.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam"),
				randomReplaceChance = 25
			});
			list9.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Beaver"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list10 = new List<CardBlueprint>();
			list10.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Beaver"),
				randomReplaceChance = 25
			});
			list10.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Dam"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list11 = new List<CardBlueprint>();
			list11.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Ruby_Creature"),
				randomReplaceChance = 25
			});
			list2.Add(list3);
			list2.Add(list4);
			list2.Add(list5);
			list2.Add(list6);
			list2.Add(list7);
			list2.Add(list8);
			list2.Add(list9);
			list2.Add(list10);
			list2.Add(list11);
			EncounterBlueprintData val = EncounterHelper.BuildBlueprint(name, list, redundant, regionLocked, 0, 30, randomReplacementCards, list2);
			EncounterManager.Add(val);
			RegionExtensions.AddEncounters(EncounterHelper.GetRegionData(regionName), (EncounterBlueprintData[])(object)new EncounterBlueprintData[1] { val });
		}
	}
	internal class BeetleRush
	{
		public static void AddEncounter()
		{
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: 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_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: 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_00a9: Expected O, but got Unknown
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Expected O, but got Unknown
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: 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_0121: 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_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Expected O, but got Unknown
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: 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_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Expected O, but got Unknown
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: 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_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dc: Expected O, but got Unknown
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: 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_020a: 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_0227: Expected O, but got Unknown
			//IL_022a: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Unknown result type (might be due to invalid IL or missing references)
			//IL_023f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0246: 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_025e: Unknown result type (might be due to invalid IL or missing references)
			//IL_026b: Expected O, but got Unknown
			string name = "BeetleRush";
			string regionName = "Wetlands";
			List<Tribe> list = new List<Tribe>();
			list.Add((Tribe)6);
			List<Ability> redundant = new List<Ability>();
			bool regionLocked = true;
			List<CardInfo> randomReplacementCards = EncounterHelper.AddRandomCards("Cockroach", "Mole", "void_Beetle_Carrion");
			List<List<CardBlueprint>> list2 = new List<List<CardBlueprint>>();
			List<CardBlueprint> list3 = new List<CardBlueprint>();
			list3.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Beetle_Larva"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Beetle_Scarab"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> item = new List<CardBlueprint>();
			List<CardBlueprint> list4 = new List<CardBlueprint>();
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Beetle_Larva"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Beetle_Scarab"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> list5 = new List<CardBlueprint>();
			list5.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Beetle_Larva"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Beetle_Bombardier"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> list6 = new List<CardBlueprint>();
			list6.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Beetle_Larva"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Beetle_Rhino"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> list7 = new List<CardBlueprint>();
			list7.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Beetle_Larva"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Beetle_Scarab"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> list8 = new List<CardBlueprint>();
			list8.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Beetle_Larva"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Beetle_Rhino"),
				randomReplaceChance = 10
			});
			list8.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Beetle_Larva"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Beetle_Scarab"),
				randomReplaceChance = 10
			});
			list2.Add(list3);
			list2.Add(item);
			list2.Add(list4);
			list2.Add(list5);
			list2.Add(list6);
			list2.Add(list7);
			list2.Add(list8);
			EncounterBlueprintData val = EncounterHelper.BuildBlueprint(name, list, redundant, regionLocked, 0, 30, randomReplacementCards, list2);
			EncounterManager.Add(val);
			RegionExtensions.AddEncounters(EncounterHelper.GetRegionData(regionName), (EncounterBlueprintData[])(object)new EncounterBlueprintData[1] { val });
		}
	}
	internal class BellTurtle
	{
		public static void AddEncounter()
		{
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: 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_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Expected O, but got Unknown
			//IL_00be: 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_00d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: 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_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Expected O, but got Unknown
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Expected O, but got Unknown
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: 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_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Expected O, but got Unknown
			//IL_01ad: 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_01c2: 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_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Expected O, but got Unknown
			//IL_01f8: 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_020d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_022c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0239: Expected O, but got Unknown
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Unknown result type (might be due to invalid IL or missing references)
			//IL_0251: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_0270: Unknown result type (might be due to invalid IL or missing references)
			//IL_027d: Expected O, but got Unknown
			string name = "BellTurtle";
			string regionName = "Wetlands";
			List<Tribe> list = new List<Tribe>();
			list.Add((Tribe)5);
			List<Ability> list2 = new List<Ability>();
			list2.Add((Ability)54);
			list2.Add((Ability)23);
			bool regionLocked = false;
			List<CardInfo> randomReplacementCards = EncounterHelper.AddRandomCards("void_Mole");
			List<List<CardBlueprint>> list3 = new List<List<CardBlueprint>>();
			List<CardBlueprint> list4 = new List<CardBlueprint>();
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Tortoise_Bell_Broken"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Tortoise_Bell"),
				randomReplaceChance = 10
			});
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Tortoise_Bell_Broken"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("TrapFrog"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> item = new List<CardBlueprint>();
			List<CardBlueprint> list5 = new List<CardBlueprint>();
			list5.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Tortoise_Bell_Broken"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("TrapFrog"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> list6 = new List<CardBlueprint>();
			list6.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Tortoise_Bell_Broken"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Tortoise_Bell"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> item2 = new List<CardBlueprint>();
			List<CardBlueprint> list7 = new List<CardBlueprint>();
			list7.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Tortoise_Bell_Broken"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Tortoise_Bell"),
				randomReplaceChance = 10
			});
			List<CardBlueprint> list8 = new List<CardBlueprint>();
			list8.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Tortoise_Bell_Broken"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("TrapFrog"),
				randomReplaceChance = 10
			});
			list8.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Tortoise_Bell_Broken"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Tortoise_Bell"),
				randomReplaceChance = 10
			});
			list3.Add(list4);
			list3.Add(item);
			list3.Add(list5);
			list3.Add(list6);
			list3.Add(item2);
			list3.Add(list7);
			list3.Add(list8);
			EncounterBlueprintData val = EncounterHelper.BuildBlueprint(name, list, list2, regionLocked, 0, 30, randomReplacementCards, list3);
			EncounterManager.Add(val);
			RegionExtensions.AddEncounters(EncounterHelper.GetRegionData(regionName), (EncounterBlueprintData[])(object)new EncounterBlueprintData[1] { val });
		}
	}
	internal class Bulls
	{
		public static void AddEncounter()
		{
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Expected O, but got Unknown
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: 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_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Expected O, but got Unknown
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: 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_00fa: Expected O, but got Unknown
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Expected O, but got Unknown
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: 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_014c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: 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_0171: Expected O, but got Unknown
			//IL_017b: 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_0190: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: Expected O, but got Unknown
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: 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_01c9: Expected O, but got Unknown
			//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0207: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Expected O, but got Unknown
			string name = "BullRush";
			string regionName = "Alpine";
			List<Tribe> list = new List<Tribe>();
			list.Add((Tribe)4);
			List<Ability> list2 = new List<Ability>();
			list2.Add((Ability)3);
			bool regionLocked = true;
			List<CardInfo> randomReplacementCards = EncounterHelper.AddRandomCards("Elk", "ElkCub", "Mole", "Wolf", "WolfCub");
			List<List<CardBlueprint>> list3 = new List<List<CardBlueprint>>();
			List<CardBlueprint> list4 = new List<CardBlueprint>();
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Cow_Dairy")
			});
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Cow_Mad"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Cow_Wild"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list5 = new List<CardBlueprint>();
			list5.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Cow_Dairy"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list6 = new List<CardBlueprint>();
			list6.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Cow_Dairy"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list7 = new List<CardBlueprint>();
			list7.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Cow_Mad"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Cow_Wild"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list8 = new List<CardBlueprint>();
			list8.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Cow_Dairy"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list9 = new List<CardBlueprint>();
			list9.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Cow_Dairy"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list10 = new List<CardBlueprint>();
			list10.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Cow_Mad"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Cow_Wild"),
				randomReplaceChance = 25
			});
			list3.Add(list4);
			list3.Add(list5);
			list3.Add(list6);
			list3.Add(list7);
			list3.Add(list8);
			list3.Add(list9);
			list3.Add(list10);
			EncounterBlueprintData val = EncounterHelper.BuildBlueprint(name, list, list2, regionLocked, 0, 30, randomReplacementCards, list3);
			EncounterManager.Add(val);
			RegionExtensions.AddEncounters(EncounterHelper.GetRegionData(regionName), (EncounterBlueprintData[])(object)new EncounterBlueprintData[1] { val });
		}
	}
	internal class Crabs
	{
		public static EncounterBlueprintData CarbEncounter;

		public static void AddEncounter()
		{
			//IL_0071: 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_008b: Expected O, but got Unknown
			//IL_008e: 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_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: 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_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Expected O, but got Unknown
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: 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_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: Expected O, but got Unknown
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0132: 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)
			//IL_0141: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Expected O, but got Unknown
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: 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_0193: 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_01b0: Expected O, but got Unknown
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Expected O, but got Unknown
			string name = "CrabStall";
			string regionName = "Wetlands";
			List<Tribe> list = new List<Tribe>();
			list.Add((Tribe)2);
			List<Ability> list2 = new List<Ability>();
			list2.Add((Ability)13);
			bool regionLocked = true;
			List<CardInfo> randomReplacementCards = EncounterHelper.AddRandomCards("void_Urchin_LongSpine", "void_Urchin_Flower", "void_Urchin_Sea", "void_Shrimp_Mantis");
			List<List<CardBlueprint>> list3 = new List<List<CardBlueprint>>();
			List<CardBlueprint> list4 = new List<CardBlueprint>();
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Crab_Spider")
			});
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Kingfisher"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Crab_Coco"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list5 = new List<CardBlueprint>();
			list5.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Crab_Leg"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Crab_Fiddler"),
				randomReplaceChance = 25
			});
			list5.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Crab_Leg"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Crab_Coco"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> item = new List<CardBlueprint>();
			List<CardBlueprint> list6 = new List<CardBlueprint>();
			list6.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Crab_Leg"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("void_Crab_Fiddler"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list7 = new List<CardBlueprint>();
			list7.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Crab_Spider")
			});
			list3.Add(list4);
			list3.Add(list5);
			list3.Add(item);
			list3.Add(list6);
			list3.Add(list7);
			EncounterBlueprintData val = (CarbEncounter = EncounterHelper.BuildBlueprint(name, list, list2, regionLocked, 0, 30, randomReplacementCards, list3));
			EncounterManager.Add(val);
			RegionExtensions.AddEncounters(EncounterHelper.GetRegionData(regionName), (EncounterBlueprintData[])(object)new EncounterBlueprintData[1] { val });
		}
	}
	internal class RegionDataDump
	{
		public static void DumpRegionData()
		{
			//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_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_0168: 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_0207: 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_04ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ef: Unknown result type (might be due to invalid IL or missing references)
			Plugin.Log.LogMessage((object)"Dumping Region Data");
			for (int i = 0; i < RegionManager.BaseGameRegions.Count; i++)
			{
				RegionData val = RegionManager.BaseGameRegions[i];
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i));
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " name is:" + ((Object)val).name));
				for (int j = 0; j < val.bosses.Count; j++)
				{
					ManualLogSource log = Plugin.Log;
					string text = i.ToString();
					Type val2 = val.bosses[j];
					log.LogMessage((object)("Dumping Region Data, region " + text + " boss is:" + ((object)(Type)(ref val2)).ToString()));
				}
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " bossPrepCondition is:" + (object)val.bossPrepCondition));
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " ambientLoopId is:" + val.ambientLoopId));
				ManualLogSource log2 = Plugin.Log;
				string text2 = i.ToString();
				Color val3 = val.boardLightColor;
				log2.LogMessage((object)("Dumping Region Data, region " + text2 + " boardLightColor is:" + ((object)(Color)(ref val3)).ToString()));
				ManualLogSource log3 = Plugin.Log;
				string text3 = i.ToString();
				val3 = val.cardsLightColor;
				log3.LogMessage((object)("Dumping Region Data, region " + text3 + " cardsLightColor is:" + ((object)(Color)(ref val3)).ToString()));
				for (int k = 0; k < val.consumableItems.Count; k++)
				{
					Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " consumableItems is:" + (object)val.consumableItems[k]));
				}
				for (int l = 0; l < val.dominantTribes.Count; l++)
				{
					ManualLogSource log4 = Plugin.Log;
					string text4 = i.ToString();
					Tribe val4 = val.dominantTribes[l];
					log4.LogMessage((object)("Dumping Region Data, region " + text4 + " dominantTribes is:" + ((object)(Tribe)(ref val4)).ToString()));
				}
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " dustParticlesDisabled is:" + val.dustParticlesDisabled));
				for (int m = 0; m < val.encounters.Count; m++)
				{
					Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " encounters is:" + (object)val.encounters[m]));
				}
				for (int n = 0; n < val.fillerScenery.Count; n++)
				{
					Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " fillerScenery is:" + (object)val.fillerScenery[n]));
					if (((Object)((SceneryEntry)val.fillerScenery[n]).data).name != null)
					{
						Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " fillerScenery.data.name is:" + ((Object)((SceneryEntry)val.fillerScenery[n]).data).name));
					}
				}
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " fogAlpha is:" + val.fogAlpha));
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " fogEnabled is:" + val.fogEnabled));
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " fogProfile is:" + (object)val.fogProfile));
				for (int num = 0; num < val.likelyCards.Count; num++)
				{
					Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " likelyCards is:" + (object)val.likelyCards[num]));
				}
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " mapAlbedo is:" + (object)val.mapAlbedo));
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " mapEmission is:" + (object)val.mapEmission));
				ManualLogSource log5 = Plugin.Log;
				string text5 = i.ToString();
				val3 = val.mapEmissionColor;
				log5.LogMessage((object)("Dumping Region Data, region " + text5 + " mapEmissionColor is:" + ((object)(Color)(ref val3)).ToString()));
				for (int num2 = 0; num2 < val.mapParticlesPrefabs.Count; num2++)
				{
					Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " mapParticlesPrefabs is:" + (object)val.mapParticlesPrefabs[num2]));
				}
				Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " predefinedNodes is:" + (object)val.predefinedNodes));
				if ((Object)(object)val.predefinedScenery != (Object)null)
				{
					for (int num3 = 0; num3 < val.predefinedScenery.scenery.Count; num3++)
					{
						Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " predefinedScenery is:" + ((Object)val.predefinedScenery.scenery[num3].data).name));
					}
				}
				for (int num4 = 0; num4 < val.scarceScenery.Count; num4++)
				{
					Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " scarceScenery is:" + (object)val.scarceScenery[num4]));
					if (((Object)((SceneryEntry)val.scarceScenery[num4]).data).name != null)
					{
						Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " scarceScenery.data.name is:" + ((Object)((SceneryEntry)val.scarceScenery[num4]).data).name));
					}
				}
				for (int num5 = 0; num5 < val.terrainCards.Count; num5++)
				{
					Plugin.Log.LogMessage((object)("Dumping Region Data, region " + i + " terrainCards is:" + (object)val.terrainCards[num5]));
				}
			}
		}
	}
	internal class ReptileKing
	{
		public static void AddEncounter()
		{
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Expected O, but got Unknown
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: 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_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Expected O, but got Unknown
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: 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_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Expected O, but got Unknown
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: 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_013f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Expected O, but got Unknown
			//IL_016e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0173: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: 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_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01af: Expected O, but got Unknown
			//IL_01b9: 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_01ce: 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_01dd: 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_01fa: Expected O, but got Unknown
			//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_0212: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_0221: Unknown result type (might be due to invalid IL or missing references)
			//IL_0231: Unknown result type (might be due to invalid IL or missing references)
			//IL_023e: Expected O, but got Unknown
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0262: Expected O, but got Unknown
			//IL_026c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0271: Unknown result type (might be due to invalid IL or missing references)
			//IL_0281: Unknown result type (might be due to invalid IL or missing references)
			//IL_0288: Unknown result type (might be due to invalid IL or missing references)
			//IL_0290: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ad: Expected O, but got Unknown
			//IL_02b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bc: 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_02d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02db: Unknown result type (might be due to invalid IL or missing references)
			//IL_02eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f8: Expected O, but got Unknown
			//IL_02fb: 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_0310: 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_031f: 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_033c: Expected O, but got Unknown
			//IL_0346: Unknown result type (might be due to invalid IL or missing references)
			//IL_034b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0360: Expected O, but got Unknown
			string name = "ReptileKing";
			string regionName = "Wetlands";
			List<Tribe> list = new List<Tribe>();
			list.Add((Tribe)5);
			List<Ability> list2 = new List<Ability>();
			list2.Add((Ability)4);
			bool regionLocked = true;
			List<CardInfo> randomReplacementCards = EncounterHelper.AddRandomCards("Skink", "Snapper", "Bullfrog");
			List<List<CardBlueprint>> list3 = new List<List<CardBlueprint>>();
			List<CardBlueprint> list4 = new List<CardBlueprint>();
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck")
			});
			list4.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("Rattler"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list5 = new List<CardBlueprint>();
			list5.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("Adder"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list6 = new List<CardBlueprint>();
			list6.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Dragon"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list7 = new List<CardBlueprint>();
			list7.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("void_Jade_Serpent"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list8 = new List<CardBlueprint>();
			list8.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 13,
				replacement = CardLoader.GetCardByName("Adder"),
				randomReplaceChance = 25
			});
			list8.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("Rattler"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list9 = new List<CardBlueprint>();
			list9.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Dragon")
			});
			List<CardBlueprint> list10 = new List<CardBlueprint>();
			list10.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("Adder"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list11 = new List<CardBlueprint>();
			list11.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("Rattler"),
				randomReplaceChance = 25
			});
			list11.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("Geck"),
				difficultyReplace = true,
				difficultyReq = 18,
				replacement = CardLoader.GetCardByName("Rattler"),
				randomReplaceChance = 25
			});
			List<CardBlueprint> list12 = new List<CardBlueprint>();
			list12.Add(new CardBlueprint
			{
				card = CardLoader.GetCardByName("void_Dragon")
			});
			list3.Add(list4);
			list3.Add(list5);
			list3.Add(list6);
			list3.Add(list7);
			list3.Add(list8);
			list3.Add(list9);
			list3.Add(list10);
			list3.Add(list11);
			list3.Add(list12);
			EncounterBlueprintData val = EncounterHelper.BuildBlueprint(name, list, list2, regionLocked, 0, 30, randomReplacementCards, list3);
			EncounterManager.Add(val);
			RegionExtensions.AddEncounters(EncounterHelper.GetRegionData(regionName), (EncounterBlueprintData[])(object)new EncounterBlueprintData[1] { val });
		}
	}
}
namespace boneSigils.cards
{
	public static class Angler
	{
		public static readonly Ability CustomAbility = GuidManager.GetEnumValue<Ability>("extraVoid.inscryption.voidSigils", "Lure");

		public static void AddCard()
		{
			//IL_0092: 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)
			string internalName = "void_Angler";
			string displayName = "Black Seadevil";
			string description = "A light in the dark ocean, it isn't friendly.";
			int attack = 2;
			int health = 1;
			int bloodCost = 0;
			int boneCost = 4;
			int energyCost = 0;
			List<CardMetaCategory> list = new List<CardMetaCategory>();
			list.Add((CardMetaCategory)1);
			list.Add((CardMetaCategory)0);
			List<Tribe> list2 = new List<Tribe>();
			if (Chainloader.PluginInfos.ContainsKey("Lily.BOT"))
			{
				Plugin.Log.LogMessage((object)"Lily Totems found, Black Seadevil is now aquatic");
				list2.Add(GuidManager.GetEnumValue<Tribe>("Lily.BOT", "aquatic"));
			}
			List<Ability> list3 = new List<Ability>();
			list3.Add((Ability)13);
			list3.Add(CustomAbility);
			List<Trait> traits = new List<Trait>();
			List<SpecialTriggeredAbility> list4 = new List<SpecialTriggeredAbility>();
			List<Appearance> list5 = new List<Appearance>();
			Texture2D textureFromPath = SigilUtils.GetTextureFromPath("Artwork/Void_Angler.png");
			Texture2D textureFromPath2 = SigilUtils.GetTextureFromPath("Artwork/Void_Angler_e.png");
			Texture2D textureFromPath3 = SigilUtils.GetTextureFromPath("Artwork/pixelportrait_blank.png");
			Texture2D texture_pixel = textureFromPath3;
			CardInfo val = SigilUtils.CreateCardWithDefaultSettings(internalName, displayName, attack, health, textureFromPath, textureFromPath2, list, list2, traits, list3, texture_pixel, bloodCost, boneCost, energyCost);
			val.description = description;
			CardExtensions.SetTail(val, "void_Angler_Lure", SigilUtils.GetTextureFromPath("Artwork/void_angler_alt.png"), (FilterMode?)null, (IEnumerable<CardModificationInfo>)null);
			CardManager.Add("void", val);
		}
	}
	public static class Angler_Lure
	{
		public static void AddCard()
		{
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			string internalName = "void_Angler_Lure";
			string displayName = "Broken Lure";
			string description = "A Lure pulled from an angler.";
			int attack = 0;
			int health = 2;
			int bloodCost = 0;
			int boneCost = 0;
			int energyCost = 0;
			List<CardMetaCategory> cardMetaCategories = new List<CardMetaCategory>();
			List<Tribe> list = new List<Tribe>();
			if (Chainloader.PluginInfos.ContainsKey("Lily.BOT"))
			{
				Plugin.Log.LogMessage((object)"Lily Totems found, Angeler's Lure is now aquatic");
				list.Add(GuidManager.GetEnumValue<Tribe>("Lily.BOT", "aquatic"));
			}
			List<Ability> abilities = new List<Ability>();
			List<Trait> traits = new List<Trait>();
			List<SpecialTriggeredAbility> list2 = new List<SpecialTriggeredAbility>();
			List<Appearance> list3 = new List<Appearance>();
			Texture2D textureFromPath = SigilUtils.GetTextureFromPath("Artwork/void_angler_light.png");
			Texture2D textureFromPath2 = SigilUtils.GetTextureFromPath("Artwork/void_angler_light_e.png");
			Texture2D textureFromPath3 = SigilUtils.GetTextureFromPath("Artwork/pixelportrait_blank.png");
			Texture2D texture_pixel = textureFromPath3;
			CardInfo val = SigilUtils.CreateCardWithDefaultSettings(internalName, displayName, attack, health, textureFromPath, textureFromPath2, cardMetaCategories, list, traits, abilities, texture_pixel, bloodCost, boneCost, energyCost);
			val.description = description;
			CardManager.Add("void", val);
		}
	}
	public static class Ant_ArmorCutter
	{
		public static readonly Ability CustomAbility = GuidManager.GetEnumValue<Ability>("extraVoid.inscryption.voidSigils", "Thick Shell");

		public static void AddCard()
		{
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			string internalName = "void_Leaf_Ant";
			string displayName = "Armored Ant";
			string description = "A leaf cutter ant that has a mineral shell and lives in the trees.";
			int attack = 0;
			int health = 4;
			int bloodCost = 1;
			int boneCost = 3;
			int energyCost = 0;
			List<CardMetaCategory> list = new List<CardMetaCategory>();
			list.Add((CardMetaCategory)1);
			list.Add((CardMetaCategory)0);
			List<Tribe> list2 = new List<Tribe>();
			list2.Add((Tribe)6);
			List<Ability> list3 = new List<Ability>();
			list3.Add((Ability)23);
			list3.Add(CustomAbility);
			List<Trait> list4 = new List<Trait>();
			list4.Add((Trait)11);
			List<SpecialTriggeredAbility> list5 = new List<SpecialTriggeredAbility>();
			list5.Add((SpecialTriggeredAbility)6);
			List<Appearance> list6 = new List<Appearance>();
			Texture2D textureFromPath = SigilUtils.GetTextureFromPath("Artwork/Void_Leaf_Ant.png");
			Texture2D textureFromPath2 = SigilUtils.GetTextureFromPath("Artwork/Void_Leaf_Ant_e.png");
			CardInfo val = SigilUtils.CreateCardWithDefaultSettings(internalName, displayName, attack, health, textureFromPath, textureFromPath2, list, list2, list4, list3, null, bloodCost, boneCost, energyCost);
			CardExtensions.SetStatIcon(val, (SpecialStatIcon)1);
			CardExtensions.SetSpecialAbilities(val, (SpecialTriggeredAbility[])(object)new SpecialTriggeredAbility[1] { (SpecialTriggeredAbility)6 });
			val.description = description;
			CardManager.Add("void", val);
		}
	}
	public static class Axolotl
	{
		public static readonly Ability CustomAbility = GuidManager.GetEnumValue<Ability>("extraVoid