Decompiled source of GrimoraMod v7.6.2

GrimoraMod.dll

Decompiled 3 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Text;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using DiskCardGame;
using GBC;
using GrimoraMod.Consumables;
using GrimoraMod.Core.Consumables.Secret;
using GrimoraMod.Extensions;
using GrimoraMod.Saving;
using HarmonyLib;
using Infiniscryption.Achievements;
using InscryptionAPI.Ascension;
using InscryptionAPI.Card;
using InscryptionAPI.Encounters;
using InscryptionAPI.Guid;
using InscryptionAPI.Helpers;
using InscryptionAPI.Helpers.Extensions;
using InscryptionAPI.Items;
using InscryptionAPI.Items.Extensions;
using InscryptionAPI.Saves;
using InscryptionAPI.Triggers;
using InscryptionCommunityPatch.Card;
using InscryptionCommunityPatch.ResourceManagers;
using Pixelplacement;
using Pixelplacement.TweenSystem;
using Sirenix.Serialization.Utilities;
using Sirenix.Utilities;
using TMPro;
using Unity.Cloud.UserReporting.Plugin.SimpleJson;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyCompany("GrimoraMod")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("GrimoraMod")]
[assembly: AssemblyTitle("GrimoraMod")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace GrimoraMod
{
	public class AbilityBuilder<T> where T : AbilityBehaviour
	{
		private readonly AbilityInfo _abilityInfo = ScriptableObject.CreateInstance<AbilityInfo>();

		private readonly Type _type;

		private Texture _rulebookIcon;

		public static AbilityBuilder<T> Builder => new AbilityBuilder<T>(typeof(T));

		private AbilityBuilder(Type type)
		{
			_type = type;
			_abilityInfo.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)5 };
			if (_type.Name.Contains("Activated"))
			{
				_abilityInfo.activated = true;
			}
		}

		public FullAbility Build()
		{
			HandleRulebookName();
			return SetupAbility();
		}

		private FullAbility SetupAbility()
		{
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			Texture val = (Object.op_Implicit((Object)(object)_rulebookIcon) ? _rulebookIcon : AssetUtils.GetPrefab<Texture>("ability_" + _type.Name));
			FullAbility val2 = AbilityManager.Add("arackulele.inscryption.grimoramod", _abilityInfo, _type, val);
			FieldInfo field = _type.GetField("ability", BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public);
			field.SetValue(null, val2.Id);
			return val2;
		}

		public AbilityBuilder<T> SetRulebookName(string rulebookName)
		{
			_abilityInfo.rulebookName = rulebookName;
			return this;
		}

		public AbilityBuilder<T> SetPixelIcon(Sprite PixelIcon)
		{
			_abilityInfo.pixelIcon = PixelIcon;
			return this;
		}

		private void HandleRulebookName()
		{
			string text = _abilityInfo.rulebookName;
			if (StringExtensions.IsNullOrWhitespace(text))
			{
				text = _type.Name;
			}
			_abilityInfo.rulebookName = (text.Contains(" ") ? text : StringExtensions.SplitPascalCase(text));
		}

		public AbilityBuilder<T> SetRulebookDescription(string rulebookDescription)
		{
			_abilityInfo.rulebookDescription = rulebookDescription;
			return this;
		}

		public AbilityBuilder<T> FlipIconIfOnOpponentSide()
		{
			_abilityInfo.flipYIfOpponent = true;
			return this;
		}

		public AbilityBuilder<T> SetCanStack()
		{
			_abilityInfo.canStack = true;
			return this;
		}

		public AbilityBuilder<T> SetIcon(Texture iconToSet)
		{
			_rulebookIcon = iconToSet;
			return this;
		}

		public AbilityBuilder<T> SetPowerLevel(int powerLevel)
		{
			_abilityInfo.powerLevel = powerLevel;
			return this;
		}
	}
	public class ActivatedBartending : ActivatedAbilityBehaviour
	{
		private const int ENERGY_COST = 3;

		public const string RulebookName = "Comin' right up!";

		public const string ModSingletonId = "GrimoraMod_BartendHealth";

		public static Ability ability;

		public override Ability Ability => ability;

		public override int EnergyCost => 3;

		public override bool CanActivate()
		{
			List<CardSlot> allSlotsCopy = Singleton<BoardManager>.Instance.AllSlotsCopy;
			List<CardSlot> allSlotsCopy2 = Singleton<BoardManager>.Instance.AllSlotsCopy;
			foreach (CardSlot item in allSlotsCopy)
			{
				if ((Object)(object)item.Card == (Object)null)
				{
					allSlotsCopy2.Remove(item);
				}
				else if ((Object)(object)item.Card == (Object)(object)((AbilityBehaviour)this).Card)
				{
					allSlotsCopy2.Remove(item);
				}
			}
			if (allSlotsCopy2.Count > 0)
			{
				return true;
			}
			return false;
		}

		public override IEnumerator Activate()
		{
			List<CardSlot> opponentSlotsCopy = Singleton<BoardManager>.Instance.AllSlotsCopy;
			List<CardSlot> validtargets = Singleton<BoardManager>.Instance.AllSlotsCopy;
			validtargets.RemoveAll((CardSlot x) => (Object)(object)x.Card == (Object)null);
			validtargets.RemoveAll((CardSlot x) => (Object)(object)x.Card == (Object)(object)((AbilityBehaviour)this).Card);
			CardSlot opposingSlot = ((AbilityBehaviour)this).Card.Slot.opposingSlot;
			if (validtargets.Count != 0 && (Object)(object)opposingSlot.Card == (Object)null)
			{
				_ = ((AbilityBehaviour)this).Card.slot;
				new List<CardSlot>();
				Singleton<ViewManager>.Instance.SwitchToView(Singleton<BoardManager>.Instance.CombatView, false, false);
				Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)1;
				Singleton<ViewManager>.Instance.Controller.SwitchToControlMode(Singleton<BoardManager>.Instance.ChoosingSlotViewMode, false);
				Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0;
				_ = Singleton<InteractionCursor>.Instance.CurrentInteractable is CardSlot;
				BoardManager instance = Singleton<BoardManager>.Instance;
				CardSlot target = null;
				yield return instance.ChooseTarget(opponentSlotsCopy, validtargets, (Action<CardSlot>)delegate(CardSlot slot)
				{
					target = slot;
				}, (Action<CardSlot>)null, (Action<CardSlot>)null, (Func<bool>)(() => false), (CursorType)16);
				Singleton<ViewManager>.Instance.Controller.SwitchToControlMode(Singleton<BoardManager>.Instance.DefaultViewMode, false);
				Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)1;
				Singleton<ViewManager>.Instance.SwitchToView(Singleton<BoardManager>.Instance.CombatView, false, false);
				if (CardSlotExtensions.IsOpponentSlot(target))
				{
					yield return target.Card.TakeDamage(1, ((AbilityBehaviour)this).Card);
				}
				else
				{
					CardModificationInfo _modInfo = new CardModificationInfo
					{
						nonCopyable = true,
						singletonId = "GrimoraMod_BartendHealth" + Random.Range(10000, 99999)
					};
					_modInfo.healthAdjustment++;
					target.Card.AddTemporaryMod(_modInfo);
				}
				yield return (object)new WaitForSeconds(0.2f);
				Singleton<ViewManager>.Instance.SwitchToView(Singleton<BoardManager>.Instance.DefaultView, false, false);
				Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0;
			}
		}
	}
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("arackulele.inscryption.grimoramod", "GrimoraMod", "3.5.0")]
	public class GrimoraPlugin : BaseUnityPlugin
	{
		public const string NameAnimator = "arackulele.inscryption.grimoramod_Animator";

		public const string NameApparition = "arackulele.inscryption.grimoramod_Apparition";

		public const string NameAshes = "arackulele.inscryption.grimoramod_Ashes";

		public const string NameBalBal = "arackulele.inscryption.grimoramod_BalBal";

		public const string NameBanshee = "arackulele.inscryption.grimoramod_Banshee";

		public const string NameBartender = "arackulele.inscryption.grimoramod_Bartender";

		public const string NameBigbones = "arackulele.inscryption.grimoramod_Bigbones";

		public const string NameBloodySack = "arackulele.inscryption.grimoramod_BloodySack";

		public const string NameBoneCollective = "arackulele.inscryption.grimoramod_BoneCollective";

		public const string NameBonehound = "arackulele.inscryption.grimoramod_Bonehound";

		public const string NameBonelord = "arackulele.inscryption.grimoramod_Bonelord";

		public const string NameBoneLordsHorn = "arackulele.inscryption.grimoramod_BonelordsHorn";

		public const string NameBonepile = "arackulele.inscryption.grimoramod_Bonepile";

		public const string NameBonePrince = "arackulele.inscryption.grimoramod_BonePrince";

		public const string NameBooHag = "arackulele.inscryption.grimoramod_BooHag";

		public const string NameCalaveraCatrina = "arackulele.inscryption.grimoramod_CalaveraCatrina";

		public const string NameCatacomb = "arackulele.inscryption.grimoramod_Catacomb";

		public const string NameCenturion = "arackulele.inscryption.grimoramod_Centurion";

		public const string NameCompoundFracture = "arackulele.inscryption.grimoramod_CompoundFracture";

		public const string NameDalgyal = "arackulele.inscryption.grimoramod_Dalgyal";

		public const string NameDanseMacabre = "arackulele.inscryption.grimoramod_DanseMacabre";

		public const string NameDeadeye = "arackulele.inscryption.grimoramod_Deadeye";

		public const string NameDeadHand = "arackulele.inscryption.grimoramod_DeadHand";

		public const string NameDeadManWalking = "arackulele.inscryption.grimoramod_DeadManWalking";

		public const string NameDeadPets = "arackulele.inscryption.grimoramod_DeadPets";

		public const string NameDeathKnell = "arackulele.inscryption.grimoramod_DeathKnell";

		public const string NameDeathKnellBell = "arackulele.inscryption.grimoramod_DeathKnell_Bell";

		public const string NameDoll = "arackulele.inscryption.grimoramod_Doll";

		public const string NameDraugr = "arackulele.inscryption.grimoramod_Draugr";

		public const string NameDrownedSoul = "arackulele.inscryption.grimoramod_DrownedSoul";

		public const string NameDybbuk = "arackulele.inscryption.grimoramod_Dybbuk";

		public const string NameEctoplasm = "arackulele.inscryption.grimoramod_Ectoplasm";

		public const string NameBoneclaw = "arackulele.inscryption.grimoramod_Boneclaw";

		public const string NameBoneless = "arackulele.inscryption.grimoramod_Boneless";

		public const string NameEgyptMummy = "arackulele.inscryption.grimoramod_EgyptMummy";

		public const string NameEidolon = "arackulele.inscryption.grimoramod_Eidolon";

		public const string NameEmberSpirit = "arackulele.inscryption.grimoramod_Ember_Spirit";

		public const string NameFamily = "arackulele.inscryption.grimoramod_Family";

		public const string NameFesteringWretch = "arackulele.inscryption.grimoramod_FesteringWretch";

		public const string NameFlames = "arackulele.inscryption.grimoramod_Flames";

		public const string NameFlameskull = "arackulele.inscryption.grimoramod_Flameskull";

		public const string NameForgottenMan = "arackulele.inscryption.grimoramod_ForgottenMan";

		public const string NameFranknstein = "arackulele.inscryption.grimoramod_Franknstein";

		public const string NameFylgja = "arackulele.inscryption.grimoramod_Fylgja";

		public const string NameWardingPresence = "arackulele.inscryption.grimoramod_WardingPresence";

		public const string NameMassGrave = "arackulele.inscryption.grimoramod_MassGrave";

		public const string NameRisingHunger = "arackulele.inscryption.grimoramod_RisingHunger";

		public const string NameGashadokuro = "arackulele.inscryption.grimoramod_Gashadokuro";

		public const string NameGhostShip = "arackulele.inscryption.grimoramod_GhostShip";

		public const string NameGhostShipRoyal = "arackulele.inscryption.grimoramod_GhostShipRoyal";

		public const string NameGiant = "arackulele.inscryption.grimoramod_Giant";

		public const string NameGratefulDead = "arackulele.inscryption.grimoramod_GratefulDead";

		public const string NameGravebard = "arackulele.inscryption.grimoramod_Gravebard";

		public const string NameGraveCarver = "arackulele.inscryption.grimoramod_GraveCarver";

		public const string NameGravedigger = "arackulele.inscryption.grimoramod_Gravedigger";

		public const string NameSporedigger = "arackulele.inscryption.grimoramod_Sporedigger";

		public const string NameHaltia = "arackulele.inscryption.grimoramod_Haltia";

		public const string NameHauntedMirror = "arackulele.inscryption.grimoramod_HauntedMirror";

		public const string NameHeadlessHorseman = "arackulele.inscryption.grimoramod_HeadlessHorseman";

		public const string NameHellhand = "arackulele.inscryption.grimoramod_Hellhand";

		public const string NameHellHound = "arackulele.inscryption.grimoramod_HellHound";

		public const string NameHydra = "arackulele.inscryption.grimoramod_Hydra";

		public const string NameJikininki = "arackulele.inscryption.grimoramod_Jikininki";

		public const string NameAvalanche = "arackulele.inscryption.grimoramod_Avalanche";

		public const string NameGlacier = "arackulele.inscryption.grimoramod_Glacier";

		public const string NameFrostGiant = "arackulele.inscryption.grimoramod_FrostGiant";

		public const string NameIceCube = "arackulele.inscryption.grimoramod_IceCube";

		public const string NameLaLlorona = "arackulele.inscryption.grimoramod_LaLlorona";

		public const string NameManananggal = "arackulele.inscryption.grimoramod_Manananggal";

		public const string NameMoroi = "arackulele.inscryption.grimoramod_Moroi";

		public const string NameMummy = "arackulele.inscryption.grimoramod_Mummy";

		public const string NameNecromancer = "arackulele.inscryption.grimoramod_Necromancer";

		private Sprite pixelSprite = "Necromancer".GetCardInfo().pixelPortrait;

		public const string NameNixie = "arackulele.inscryption.grimoramod_Nixie";

		public const string NameNosferat = "arackulele.inscryption.grimoramod_Nosferat";

		public const string NameObol = "arackulele.inscryption.grimoramod_Obol";

		public const string NameOneArmedBandit = "arackulele.inscryption.grimoramod_OneArmedBandit";

		public const string NameOurobones = "arackulele.inscryption.grimoramod_Ourobones";

		public const string NamePlagueDoctor = "arackulele.inscryption.grimoramod_PlagueDoctor";

		public const string NamePoltergeist = "arackulele.inscryption.grimoramod_Poltergeist";

		public const string NamePossessedArmour = "arackulele.inscryption.grimoramod_PossessedArmour";

		public const string NameProject = "arackulele.inscryption.grimoramod_Project";

		public const string NameRandomCard = "arackulele.inscryption.grimoramod_Random";

		public const string NameRevenant = "arackulele.inscryption.grimoramod_Revenant";

		public const string NameRipper = "arackulele.inscryption.grimoramod_Ripper";

		public const string NameRot = "arackulele.inscryption.grimoramod_Rot";

		public const string NameRotTail = "arackulele.inscryption.grimoramod_Rot_tail";

		public const string NameDavyJonesLocker = "arackulele.inscryption.grimoramod_DavyJonesLocker";

		public const string NamePirateCaptainYellowbeard = "arackulele.inscryption.grimoramod_PirateCaptainYellowbeard";

		public const string NameCrossBones = "arackulele.inscryption.grimoramod_Crossbones";

		public const string NameDavyJones = "arackulele.inscryption.grimoramod_PirateDavyJones";

		public const string NamePirateExploding = "arackulele.inscryption.grimoramod_ExplodingPirate";

		public const string NamePirateFirstMateSnag = "arackulele.inscryption.grimoramod_PirateFirstMateSnag";

		public const string NamePiratePolly = "arackulele.inscryption.grimoramod_PiratePolly";

		public const string NamePiratePrivateer = "arackulele.inscryption.grimoramod_PiratePrivateer";

		public const string NamePirateSwashbuckler = "arackulele.inscryption.grimoramod_PirateSwashbuckler";

		public const string NameSarcophagus = "arackulele.inscryption.grimoramod_Sarcophagus";

		public const string NameScreamingSkull = "arackulele.inscryption.grimoramod_ScreamingSkull";

		public const string NameSilbon = "arackulele.inscryption.grimoramod_Silbon";

		public const string NameSkelemagus = "arackulele.inscryption.grimoramod_Skelemagus";

		public const string NameSkeleton = "Skeleton";

		public const string NameSkeletonArmy = "arackulele.inscryption.grimoramod_SkeletonArmy";

		public const string NameSlingersSoul = "arackulele.inscryption.grimoramod_SlingersSoul";

		public const string NameSluagh = "arackulele.inscryption.grimoramod_Sluagh";

		public const string NameCandyBucket = "arackulele.inscryption.grimoramod_CandyBucket";

		public const string NameCandyMonster = "arackulele.inscryption.grimoramod_CandyMonster";

		public const string NameSpectrabbit = "arackulele.inscryption.grimoramod_Spectrabbit";

		public const string NameSpectre = "arackulele.inscryption.grimoramod_Spectre";

		public const string NameStarvedMan = "arackulele.inscryption.grimoramod_StarvedMan";

		public const string NameSummoner = "arackulele.inscryption.grimoramod_Summoner";

		public const string NameTamperedCoffin = "arackulele.inscryption.grimoramod_TamperedCoffin";

		public const string NameDeadTree = "arackulele.inscryption.grimoramod_DeadTree";

		public const string NameDisturbedGrave = "arackulele.inscryption.grimoramod_DisturbedGrave";

		public const string NameDisturbedGraveNonTerrain = "arackulele.inscryption.grimoramod_DisturbedGraveNonTerrain";

		public const string NameKennel = "arackulele.inscryption.grimoramod_Kennel";

		public const string NameObelisk = "arackulele.inscryption.grimoramod_Obelisk";

		public const string NameShipwreck = "arackulele.inscryption.grimoramod_Shipwreck";

		public const string NameShipwreckDams = "arackulele.inscryption.grimoramod_Shipwreck_Dams";

		public const string NameUrn = "arackulele.inscryption.grimoramod_Urn";

		public const string NameVoodooDoll = "arackulele.inscryption.grimoramod_Voodoo_Doll";

		public const string NameTombRobber = "arackulele.inscryption.grimoramod_TombRobber";

		public const string NameGiantEphialtes = "arackulele.inscryption.grimoramod_GiantEphialtes";

		public const string NameGiantOtis = "arackulele.inscryption.grimoramod_GiantOtis";

		public const string NameUndertaker = "arackulele.inscryption.grimoramod_Undertaker";

		public const string NameUnknown_CoffinLad = "arackulele.inscryption.grimoramod_Unknown_CoffinLad";

		public const string NameVampire = "arackulele.inscryption.grimoramod_Vampire";

		public const string NameVellum = "arackulele.inscryption.grimoramod_Vellum";

		public const string NameVengefulSpirit = "arackulele.inscryption.grimoramod_VengefulSpirit";

		public const string NameWarthr = "arackulele.inscryption.grimoramod_Warthr";

		public const string NameWechuge = "arackulele.inscryption.grimoramod_Wechuge";

		public const string NameWight = "arackulele.inscryption.grimoramod_Wight";

		public const string NameWillOTheWisp = "arackulele.inscryption.grimoramod_WillOTheWisp";

		public const string NameWrither = "arackulele.inscryption.grimoramod_Writher";

		public const string NameWritherTail = "arackulele.inscryption.grimoramod_Writher_tail";

		public const string NameZombie = "arackulele.inscryption.grimoramod_Zombie";

		public const string GUID = "arackulele.inscryption.grimoramod";

		public const string Name = "GrimoraMod";

		private const string Version = "3.5.0";

		internal static ManualLogSource Log;

		private static Harmony _harmony;

		public static List<GameObject> AllPrefabs = new List<GameObject>();

		public static List<Material> AllMats;

		public static List<RuntimeAnimatorController> AllControllers;

		public static List<Sprite> AllSprites;

		public static List<AudioClip> AllSounds;

		public static List<Texture> AllAbilitiesTextures;

		public static List<Mesh> AllMesh;

		public static List<Font> AllFonts;

		public static List<CardInfo> AllGrimoraModCards = new List<CardInfo>();

		public static List<string> AllGrimoraModCardsNoGuid = new List<string>();

		public static List<CardInfo> AllPlayableGrimoraModCards = new List<CardInfo>();

		public static List<ConsumableItemData> ObtainableGrimoraItems = new List<ConsumableItemData>();

		public static List<ConsumableItemData> GrimoraItemsSecret = new List<ConsumableItemData>();

		public static readonly CardMetaCategory GrimoraChoiceNode = GuidManager.GetEnumValue<CardMetaCategory>("arackulele.inscryption.grimoramod", "GrimoraModChoiceNode");

		public static readonly AbilityMetaCategory ElectricChairLevel1 = GuidManager.GetEnumValue<AbilityMetaCategory>("arackulele.inscryption.grimoramod", "ElectricChairLevel1");

		public static readonly AbilityMetaCategory ElectricChairLevel2 = GuidManager.GetEnumValue<AbilityMetaCategory>("arackulele.inscryption.grimoramod", "ElectricChairLevel2");

		public static readonly AbilityMetaCategory ElectricChairLevel3 = GuidManager.GetEnumValue<AbilityMetaCategory>("arackulele.inscryption.grimoramod", "ElectricChairLevel3");

		internal static List<GameObject> NewObjects = new List<GameObject>();

		public static bool gamblingexpansion = false;

		public static GameObject HandModel;

		public static GameObject FemurModel;

		private static bool addedvoices = false;

		private static Sprite triangle;

		private static Font kayceefont;

		private static Font sawyerfont;

		private static Font royalfont;

		private static Font gamblingfont;

		private static Font bonelordfont;

		private static Font mycofont;

		internal static Achievement GrimReminder { get; private set; }

		internal static Achievement CowardsEnd { get; private set; }

		internal static Achievement SeasonOfStorms { get; private set; }

		internal static Achievement TheBlackBirdTheDarkSlope { get; private set; }

		internal static Achievement BoneSaw { get; private set; }

		internal static Achievement PileOfSkulls { get; private set; }

		internal static Achievement DanceOfDoom { get; private set; }

		internal static Achievement TheSpiritsWay { get; private set; }

		internal static Achievement WailOfTheDamned { get; private set; }

		internal static Achievement SomethingEnds { get; private set; }

		internal static Achievement CullTheWeak { get; private set; }

		internal static Achievement GatewayToDis { get; private set; }

		public static bool Initialized { get; set; }

		public static void Add_Ability_ActivatedBartending()
		{
			AbilityBuilder<ActivatedBartending>.Builder.SetRulebookDescription("Pay 3 Souls to select any card on the board, [creature] will deal 1 damage to the selected card if it is an opponent card, if it isn't, [creature] will heal it for 1 health.").SetRulebookName("Comin' right up!").Build();
		}

		public void Add_Ability_ActivatedDealDamageGrimora()
		{
			AbilityBuilder<ActivatedDealDamageGrimora>.Builder.SetRulebookDescription("Pay 1 Soul to deal 1 damage to the creature across from [creature].").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("pixelability_activated_dealsouldamage")).SetRulebookName("Soul Shot")
				.Build();
		}

		public void Add_Ability_ActivatedDrawSkeletonGrimora()
		{
			AbilityBuilder<ActivatedDrawSkeletonGrimora>.Builder.SetRulebookDescription("Pay 1 Bone to create a Skeleton in your hand.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("pixelability_activated_drawskeletons")).SetRulebookName("Disinter")
				.Build();
		}

		public static void Add_Ability_ActivatedEnergyDrawWyvern()
		{
			AbilityBuilder<ActivatedEnergyDrawWyvern>.Builder.SetRulebookDescription("Pay 2 Souls for [creature] to summon a copy in your hand.").SetRulebookName("Materialize").Build();
		}

		public static void Add_Ability_ActivatedFuneral()
		{
			AbilityBuilder<ActivatedFuneral>.Builder.SetRulebookDescription("Pay 2 Souls, [creature] will trap a random opponent card in a coffin, which will release the original card again upon perishing.").SetRulebookName("Funeral Rites").Build();
		}

		public void Add_Ability_SoulSucker()
		{
			AbilityBuilder<ActivatedGainEnergySoulSucker>.Builder.SetRulebookDescription("When an opponent creature perishes, [creature] will store a charge of soul energy, up to 4. Activating this sigil will add 3 soul energy to your current energy counter, and one max energy.").SetRulebookName("Soul Sucker").SetIcon(AllAbilitiesTextures.Single((Texture spr) => ((Object)spr).name.Equals("ability_ActivatedGainEnergySoulSucker_0")))
				.Build();
		}

		public static void Add_Ability_ActivatedRandomPowerWeight()
		{
			AbilityBuilder<ActivatedRandomPowerWeight>.Builder.SetRulebookDescription("Pay 2 Bones for the power of [creature] to be randomized between 0 and 5.").SetRulebookName("Weighted Die").Build();
		}

		public void Add_Ability_AlternatingStrike()
		{
			AbilityBuilder<AlternatingStrike>.Builder.FlipIconIfOnOpponentSide().SetRulebookDescription("[creature] alternates between striking the opposing space to the left and right from it.").SetPowerLevel(0)
				.Build();
		}

		public void Add_Ability_Anchored()
		{
			AbilityBuilder<Anchored>.Builder.SetRulebookDescription("[creature] is unaffected by the motion of the ship.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("anchor_pixel")).Build();
		}

		public void Add_Ability_AreaOfEffectStrike()
		{
			AbilityBuilder<AreaOfEffectStrike>.Builder.FlipIconIfOnOpponentSide().SetRulebookDescription("[creature] will strike its adjacent slots, and each opposing space to the left, right, and center of it.").Build();
		}

		public void Add_Ability_BloodGuzzler()
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			AbilityInfo info = AbilitiesUtil.GetInfo((Ability)90);
			AbilityBuilder<BloodGuzzler> builder = AbilityBuilder<BloodGuzzler>.Builder;
			Ability val = (Ability)90;
			builder.SetIcon(AbilitiesUtil.LoadAbilityIcon(((object)(Ability)(ref val)).ToString(), false, false)).SetRulebookDescription(info.rulebookDescription).Build();
		}

		public void Add_Ability_Boneless()
		{
			AbilityBuilder<Boneless>.Builder.SetRulebookDescription("[creature] yields no bones upon death.").Build();
		}

		public void Add_Ability_BoneThief()
		{
			AbilityBuilder<BoneThief>.Builder.SetRulebookDescription("When [creature] kills another creature, gain 2 bones.").Build();
		}

		public void Add_Ability_Bounty()
		{
			AbilityBuilder<Bounty>.Builder.SetPixelIcon(AssetUtils.GetPrefab<Sprite>("bounty_pixel")).SetRulebookDescription("[creature] takes 1 Soul from you at the end of every turn and stores it as 2 Bones, up to a maximum of 8. When [creature] dies, you gain all bones contained in it.").Build();
		}

		public void Add_Ability_BuffCrewMates()
		{
			AbilityBuilder<BuffSkeletonsSeaShanty>.Builder.SetRulebookDescription("[creature] empowers each Skeleton on the owner's side of the board, providing a +1 buff to their power.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("shanty_pixel")).SetRulebookName("Sea Shanty")
				.Build();
		}

		public void Add_Ability_Burning()
		{
			AbilityBuilder<Burning>.Builder.SetRulebookDescription("[creature] takes 1 Damage at the end of your turn, when it gets attacked by another Card, that card gets set on fire.").Build();
		}

		public void Add_Ability_ChaosStrike()
		{
			AbilityBuilder<ChaosStrike>.Builder.FlipIconIfOnOpponentSide().SetRulebookDescription("[creature] will strike the opposing slots to the left, right, and center of it randomly, up to 3 times.").Build();
		}

		public void Add_Ability_ColdFront()
		{
			AbilityBuilder<ColdFront>.Builder.SetRulebookDescription("When [creature] perishes, the card opposing it is Frozen Away if not already frozen.").Build();
		}

		public void Add_Ability_Collector()
		{
			AbilityBuilder<Collector>.Builder.SetPixelIcon(AssetUtils.GetPrefab<Sprite>("relichoarder2")).SetRulebookDescription("When [creature] dies, gain a consumable item, if you have a free slot.").Build();
		}

		public void Add_Ability_CreateArmyOfSkeletons()
		{
			AbilityBuilder<CreateArmyOfSkeletons>.Builder.SetRulebookDescription("When [creature] is played, a Skeleton is created in each empty space on the owner's side. [define:Skeleton]").SetRulebookName("Skeleton Horde").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("skeletonhorde2"))
				.Build();
		}

		public void Add_Ability_CreateShipwrecks()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			AbilityBuilder<CreateShipwrecks> builder = AbilityBuilder<CreateShipwrecks>.Builder;
			Ability val = (Ability)6;
			builder.SetIcon(AbilitiesUtil.LoadAbilityIcon(((object)(Ability)(ref val)).ToString(), false, false)).SetRulebookDescription("When [creature] is played, a Shipwreck is created on each empty adjacent space. [define:arackulele.inscryption.grimoramod_Shipwreck_Dams]").SetRulebookName("Shipwreck Finder")
				.Build();
		}

		public void Add_Ability_DrawSkeletonOnHit()
		{
			AbilityBuilder<DrawSkeletonOnHit>.Builder.SetRulebookDescription("Once [creature] is struck, draw a card from your Skeleton pile.").SetRulebookName("Skeletons Within").Build();
		}

		public void Add_Ability_DropCandy()
		{
			AbilityBuilder<DropCandy>.Builder.SetRulebookDescription("[creature] will yield candy upon death, maybe this will be useful for later.").SetRulebookName("Full o' candy").Build();
		}

		public void Add_Ability_Erratic()
		{
			AbilityBuilder<Erratic>.Builder.SetRulebookDescription("At the end of the owner's turn, [creature] will move in a random direction.").Build();
		}

		public void Add_Ability_FlameStrafe()
		{
			AbilityBuilder<FlameStrafe>.Builder.SetRulebookDescription("Whenever [creature] moves, it leaves a trail of Embers. [define:arackulele.inscryption.grimoramod_Flames]").Build();
		}

		public void Add_Ability_Fylgja_GuardDog()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			AbilityBuilder<Fylgja_GuardDog> builder = AbilityBuilder<Fylgja_GuardDog>.Builder;
			Ability val = (Ability)18;
			builder.SetIcon(AbilitiesUtil.LoadAbilityIcon(((object)(Ability)(ref val)).ToString(), false, false)).SetRulebookDescription("When an opposing creature is placed opposite to an empty space, [creature] will move to that empty space.").SetRulebookName("Guarding Presence")
				.Build();
		}

		public void Add_Ability_GainAttackNoBones()
		{
			AbilityBuilder<GainAttackNoBones>.Builder.SetRulebookDescription("If you have no Bones, at the start of your turn [creature] deals 2 more damage.").SetRulebookName("Bone Starved").Build();
		}

		public void Add_Ability_GiantStrike()
		{
			AbilityBuilder<GiantStrike>.Builder.FlipIconIfOnOpponentSide().SetRulebookDescription("[creature] will strike each opposing space. If only one creature is in the opposing spaces, this card will strike that creature twice. ").Build();
		}

		public void Add_Ability_GiantStrikeEnraged()
		{
			AbilityBuilder<GiantStrikeEnraged>.Builder.FlipIconIfOnOpponentSide().SetRulebookDescription("[creature] will strike each opposing space.").SetRulebookName("Enraged Giant")
				.Build();
		}

		public void Add_Ability_GrimoraEvolve()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			AbilityBuilder<GrimoraEvolve> builder = AbilityBuilder<GrimoraEvolve>.Builder;
			Ability val = (Ability)5;
			builder.SetIcon(AbilitiesUtil.LoadAbilityIcon(((object)(Ability)(ref val)).ToString(), false, false)).SetRulebookDescription("After one turn on the board, [creature] will evolve into a greater form.").SetRulebookName("Fledgling")
				.Build();
		}

		public void Add_Ability_GrimoraRandomAbility()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			AbilityBuilder<GrimoraRandomAbility> builder = AbilityBuilder<GrimoraRandomAbility>.Builder;
			Ability val = (Ability)31;
			builder.SetIcon(AbilitiesUtil.LoadAbilityIcon(((object)(Ability)(ref val)).ToString(), false, false)).SetRulebookDescription("When [creature] is drawn, this sigil is replaced with another sigil at random.").SetRulebookName("Random Ability")
				.SetPixelIcon(AssetUtils.GetPrefab<Sprite>("random_pixel"))
				.Build();
		}

		public void Add_Ability_Haunter()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			AbilityBuilder<Haunter> builder = AbilityBuilder<Haunter>.Builder;
			Ability val = (Ability)91;
			builder.SetIcon(AbilitiesUtil.LoadAbilityIcon(((object)(Ability)(ref val)).ToString(), false, false)).SetPixelIcon(AssetUtils.GetPrefab<Sprite>("haunter_pixel")).SetRulebookDescription("When [creature] perishes, it haunts the space it died in. The first creature played on this space gain its old sigils.")
				.Build();
		}

		public void Add_Ability_HauntingCall()
		{
			AbilityBuilder<HauntingCall>.Builder.SetRulebookDescription("Every turn [creature] is on the Board, it will take a Bone from you, if you have no Bones, it perishes.").SetRulebookName("Haunting Call").Build();
		}

		public void Add_Ability_HookLineAndSinker()
		{
			AbilityBuilder<HookLineAndSinker>.Builder.SetRulebookDescription("When [creature] perishes, the creature in the opposing slot is dragged onto the owner's side of the board.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("hook_pixel")).Build();
		}

		public void Add_Ability_Imbued()
		{
			AbilityBuilder<Imbued>.Builder.SetRulebookDescription("When a non-brittle ally card perishes, [creature] gains 1 power.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("imbued_pixel")).Build();
		}

		public void Add_Ability_InvertedStrike()
		{
			AbilityBuilder<InvertedStrike>.Builder.SetRulebookDescription("[creature] will strike the opposing slot as if the board was flipped. A card in the far left slot will attack the opposing far right slot.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("invertedstrike2")).FlipIconIfOnOpponentSide()
				.Build();
		}

		public void Add_Ability_LatchBoneDigger()
		{
			AbilityBuilder<LatchBoneDigger>.Builder.SetPixelIcon(AssetUtils.GetPrefab<Sprite>("diggerlatcher2")).SetRulebookDescription("When [creature] perishes, its owner chooses a creature to gain the Bonedigger sigil.").Build();
		}

		public void Add_Ability_LatchSubmerge()
		{
			AbilityBuilder<LatchSubmerge>.Builder.SetRulebookDescription("When [creature] perishes, its owner chooses a creature to gain the Waterborne sigil.").Build();
		}

		public void Add_Ability_LitFuse()
		{
			AbilityBuilder<LitFuse>.Builder.SetRulebookDescription("[creature] loses 1 health per turn. When [creature] dies, the creature opposing it, as well as adjacent friendly creatures, are dealt 10 damage.").Build();
		}

		public void Add_Ability_LooseLimb()
		{
			AbilityBuilder<LooseLimb>.Builder.SetRulebookDescription("When [creature] would be struck, a severed limb is created in its place and this card moves into an adjacent open slot.").Build();
		}

		public void Add_Ability_Malnourishment()
		{
			AbilityBuilder<Malnourishment>.Builder.SetRulebookDescription("Each time [creature] deals damage directly, it loses 1 power and health.").Build();
		}

		public void Add_Ability_MarchingDead()
		{
			AbilityBuilder<MarchingDead>.Builder.SetRulebookDescription("When [creature] is played, also play the cards in your hand that were adjacent to this card for free.").Build();
		}

		public void Add_Ability_NegateFire()
		{
			AbilityBuilder<NegateFire>.Builder.SetRulebookName("Douse").SetRulebookDescription("When played,[creature] will extinguish all cards on the Board.").Build();
		}

		public void Add_Ability_Possessive()
		{
			AbilityBuilder<Possessive>.Builder.SetRulebookDescription("[creature] cannot be attacked from the opposing slot. The opposing slot, if possible, instead attacks one of its adjacent friendly cards.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("posessive_pixel")).Build();
		}

		public void Add_Ability_Puppeteer()
		{
			AbilityBuilder<Puppeteer>.Builder.SetRulebookDescription("Cards on the owner's side of the field are unaffected by Brittle.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("puppet_pixel")).Build();
		}

		public void Add_Ability_Raider()
		{
			AbilityBuilder<Raider>.Builder.SetRulebookDescription("[creature] will strike its adjacent slots, except other Raiders.").Build();
		}

		public void Add_Ability_Sculptor()
		{
			AbilityBuilder<Sculptor>.Builder.SetRulebookDescription("When [creature] is played, it carves its Sigils into adjacent Cards.").SetRulebookName("Sculptor").Build();
		}

		public void Add_Ability_SkinCrawler()
		{
			AbilityBuilder<SkinCrawler>.Builder.SetRulebookDescription("[creature] will attempt to find a host in an adjacent friendly slot, hiding under it providing a +1/+1 buff. Cards on the left take priority.").Build();
		}

		public void Add_Ability_Slasher()
		{
			AbilityBuilder<Slasher>.Builder.SetRulebookDescription("When [creature] hits an opposing card, one of the targets adjacent allies will take damage as well ").Build();
		}

		public void Add_Ability_SpiritBearer()
		{
			AbilityBuilder<SpiritBearer>.Builder.SetRulebookDescription("When [creature] is played, it provides an energy soul to its owner.").SetPixelIcon(AssetUtils.GetPrefab<Sprite>("spiritbearer_pixel")).Build();
		}

		public static void Add_Ability_CreateRoyalsCrewMate()
		{
			ApiUtils.CreateSpecialAbility<CreateRoyalsCrewMate>("!GRIMORA_ROYALS_SHIP");
		}

		public static void Add_Ability_FuneralFacade()
		{
			ApiUtils.CreateSpecialAbility<FuneralFacade>();
		}

		public static void Add_Ability_GainAttackBones()
		{
			StatIconBuilder<GainAttackBones>.Builder.SetAppliesToHealth(appliesToHealth: false).SetIconGraphic(AssetUtils.GetPrefab<Texture>("ability_GainAttackBones")).SetRulebookName("HellHound's Thirst")
				.SetRulebookDescription("A card bearing this sigil gains 1 attack for each bone the player currently has.")
				.Build();
		}

		public static void Add_Ability_GainAttackCandy()
		{
			StatIconBuilder<GainAttackCandy>.Builder.SetAppliesToHealth(appliesToHealth: false).SetIconGraphic(AssetUtils.GetPrefab<Texture>("ability_GainAttackCandy")).SetRulebookName("Wrath Of Halloween")
				.SetRulebookDescription("A card bearing this sigil has 10 attack, 1 for each Candy Bucket Sawyer has left.")
				.Build();
		}

		public static void Add_Ability_GainAttackPirates()
		{
			StatIconBuilder<GainAttackPirates>.Builder.SetAppliesToHealth(appliesToHealth: false).SetIconGraphic(AssetUtils.GetPrefab<Texture>("ability_GainAttackPirates")).SetPixelIconGraphic(AssetUtils.GetPrefab<Sprite>("ability_GainAttackPirates_pixel"))
				.SetRulebookName("Trusty ol' Crew")
				.SetRulebookDescription("A card bearing this sigil gains 1 attack for every pirate on the board.")
				.Build();
		}

		public static void Add_Ability_GainAttackTerrain()
		{
			StatIconBuilder<GainAttackTerrain>.Builder.SetAppliesToHealth(appliesToHealth: false).SetIconGraphic(AssetUtils.GetPrefab<Texture>("ability_GainAttackTerrain")).SetRulebookName("Inanimate Attack")
				.SetRulebookDescription("A card bearing this sigil gains 1 attack for every card that has 0 attack on the board.")
				.Build();
		}

		public static void Add_Ability_GrimoraGiant()
		{
			ApiUtils.CreateSpecialAbility<GrimoraGiant>("!GRIMORA_GIANT");
		}

		public static void Add_Ability_LammergeierAttack()
		{
			StatIconInfo iconInfo = StatIconInfo.GetIconInfo((SpecialStatIcon)2);
			StatIconBuilder<LammergeierAttack>.Builder.SetAppliesToHealth(appliesToHealth: false).SetIconGraphic(iconInfo.iconGraphic).SetRulebookName("One Half Bones")
				.SetRulebookDescription(iconInfo.rulebookDescription)
				.Build();
		}

		public static void Add_Ability_OurobonesCore()
		{
			ApiUtils.CreateSpecialAbility<OurobonesCore>();
		}

		private void Add_Card_Animator()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)Puppeteer.ability).SetBaseAttackAndHealth(1, 1)
				.SetEnergyCost(5)
				.SetDescription("The puppet becomes the puppeteer, yet still forever cursed by their dangling restraints.")
				.SetNames("arackulele.inscryption.grimoramod_Animator", "Animator")
				.Build()
				.pixelPortrait = AllSprites.Find((Sprite o) => ((Object)o).name == "pixel_animator");
		}

		private void Add_Card_Apparition()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)GrimoraRandomAbility.ability, (Ability)(int)Haunter.ability).SetBaseAttackAndHealth(1, 1)
				.SetEnergyCost(4)
				.SetDescription("A formless Creature, that yet lingers. Truly a horrific sight.")
				.SetNames("arackulele.inscryption.grimoramod_Apparition", "Apparition")
				.Build()
				.pixelPortrait = AssetUtils.GetPrefab<Sprite>("apparition_pixel");
		}

		private void Add_Card_Ashes()
		{
			CardBuilder.Builder.SetBoneCost(1).SetBaseAttackAndHealth(0, 0).SetDescription("Only a fool would need such assistance.")
				.SetNames("arackulele.inscryption.grimoramod_Ashes", "Graven Ashes")
				.Build();
		}

		private void Add_Card_BalBal()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)BoneThief.ability, (Ability)18).SetSpecialAbilities((SpecialTriggeredAbility)(int)FuneralFacade.FullSpecial.Id)
				.SetBaseAttackAndHealth(1, 2)
				.SetBoneCost(5)
				.SetDescription("It's foul breath doesn't concern me, it's the Tampered Coffins it leaves behind!")
				.SetNames("arackulele.inscryption.grimoramod_BalBal", "Bal-Bal")
				.Build();
		}

		private void Add_Card_Banshee()
		{
			CardInfo cardInfo = "Banshee".GetCardInfo();
			CardBuilder.Builder.SetAsNormalCard().SetAbilities(cardInfo.Abilities.ToArray()).SetBaseAttackAndHealth(cardInfo.Attack, cardInfo.Health)
				.SetBoneCost(cardInfo.BonesCost)
				.SetDescription("THE SCREAMING TERROR. THEY GO STRAIGHT THROUGH TO ATTACK THEIR PREY.")
				.SetNames("arackulele.inscryption.grimoramod_Banshee", "Banshee", cardInfo.portraitTex)
				.Build();
		}

		private void Add_Card_Bartender()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)ActivatedBartending.ability).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(4)
				.SetNames("arackulele.inscryption.grimoramod_Bartender", "The Bartender")
				.SetDescription("spent his days serving harmful cocktails for those deserving of his poisonous wrath. Doesn't regret it at all.")
				.Build();
		}

		private void Add_Card_Bigbones()
		{
			string displayedName = "Big Bones";
			List<string> self = new List<string> { "Burly Bones", "Beefy Bones", "Cal C. Um", "Sizeable Bones", "Considerable Bones", "Vigorous Bones", "Vigorous Bones", "Hefty Bones" };
			if (Random.Range(1, 100) < 6)
			{
				displayedName = self.GetRandomItem();
			}
			CardBuilder.Builder.SetAsNormalCard().SetBaseAttackAndHealth(2, 3).SetAbilities((Ability)16)
				.SetBoneCost(6)
				.SetDescription("A RATHER BURLY SKELETON, IT IS VERY RICH IN CALCIUM.")
				.SetNames("arackulele.inscryption.grimoramod_Bigbones", displayedName)
				.Build();
		}

		private void Add_Card_BloodySack()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)78).SetBaseAttackAndHealth(0, 2)
				.SetBoneCost(2)
				.SetDescription("This sack is full of body parts. Maybe you'll find something useful in there.")
				.SetNames("arackulele.inscryption.grimoramod_BloodySack", "Bloody Sack")
				.Build();
		}

		private void Add_Card_BoneCollective()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)71, (Ability)13).SetBaseAttackAndHealth(0, 1)
				.SetBoneCost(2)
				.SetNames("arackulele.inscryption.grimoramod_BoneCollective", "Bone Collective")
				.SetDescription("THOUSANDS OF TINY BONES COALESCE INTO A HUMANOID FORM ONLY TO DISPERSE IN A CLATTERING SWARM THE NEXT MOMENT.")
				.Build();
		}

		private void Add_Card_Bonehound()
		{
			Sprite pixelPortrait = "Bonehound".GetCardInfo().pixelPortrait;
			CardInfo cardInfo = "Bonehound".GetCardInfo();
			CardBuilder.Builder.SetAsNormalCard().SetAbilities(cardInfo.Abilities.ToArray()).SetBaseAttackAndHealth(cardInfo.Attack, cardInfo.Health)
				.SetBoneCost(cardInfo.BonesCost)
				.SetDescription("USED TO BE A VERY LOYAL DOG BACK IN THE DAY. WELL, ONE DAY HIS OWNER DIED.")
				.SetNames("arackulele.inscryption.grimoramod_Bonehound", "Bonehound", cardInfo.portraitTex)
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_Bonelord()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected I4, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Expected I4, but got Unknown
			CardBuilder.Builder.SetAbilities((Ability)(int)GiantStrike.ability, (Ability)23, (Ability)105).SetSpecialAbilities((SpecialTriggeredAbility)(int)GrimoraGiant.FullSpecial.Id).SetBaseAttackAndHealth(1, 20)
				.SetBoneCost(666)
				.SetDescription("SO YOU HAVE MADE IT HERE, YOU CANNOT END WHAT I HAVE STARTED, IT HAS GONE TOO FAR.")
				.SetTraits((Trait)16, (Trait)14)
				.SetNames("arackulele.inscryption.grimoramod_Bonelord", "The Bonelord")
				.Build();
		}

		private void Add_Card_BonelordsHorn()
		{
			Sprite pixelPortrait = "BonelordHorn".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)26, (Ability)12).SetBaseAttackAndHealth(0, 1)
				.SetBoneCost(3)
				.SetDescription("THE BONELORD SHEDS ITS OLD HORNS, THEY TAKE ON A LIFE OF THEIR OWN, TO ONE DAY USURP THEIR MASTER.")
				.SetEnergyCost(3)
				.SetIceCube("arackulele.inscryption.grimoramod_BonePrince")
				.SetNames("arackulele.inscryption.grimoramod_BonelordsHorn", "Bonelord's Horn")
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_Bonepile()
		{
			Sprite pixelPortrait = "Bonepile".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)12).SetBaseAttackAndHealth(0, 1)
				.SetEvolve("arackulele.inscryption.grimoramod_MassGrave", 1)
				.SetBoneCost(1)
				.SetDescription("NOT PARTICULARLY INSPIRING. YOU CAN HAVE IT.")
				.SetNames("arackulele.inscryption.grimoramod_Bonepile", "Bone Heap")
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_BonePrince()
		{
			CardBuilder.Builder.SetBaseAttackAndHealth(2, 1).SetBoneCost(1).SetDescription("IF I AM TRAPPED, SO WILL YOU. YOU CANNOT END THIS.")
				.SetEvolve("arackulele.inscryption.grimoramod_Bonelord", 1)
				.SetNames("arackulele.inscryption.grimoramod_BonePrince", "Bone Prince")
				.Build();
		}

		private void Add_Card_BooHag()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)SkinCrawler.ability).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(5)
				.SetDescription("SHE FEEDS ON PEOPLES BREATH, MAYBE ONE IS STANDING RIGHT BEHIND YOU RIGHT NOW.")
				.SetNames("arackulele.inscryption.grimoramod_BooHag", "Boo Hag")
				.Build();
		}

		private void Add_Card_CalaveraCatrina()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)MarchingDead.ability).SetBaseAttackAndHealth(2, 2)
				.SetBoneCost(8)
				.SetDescription("SHE COMMANDS OTHERS WITH STRENGTH AND GLAMOUR. THEY WILL FOLLOW HER EVERYWHERE.")
				.SetNames("arackulele.inscryption.grimoramod_CalaveraCatrina", "Calavera Catrina")
				.Build();
		}

		private void Add_Card_Catacomb()
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Expected I4, but got Unknown
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			CardBuilder.Builder.SetAsNormalCard().SetSpecialAbilities((SpecialTriggeredAbility)(int)GainAttackBones.FullSpecial.Id).SetBaseAttackAndHealth(0, 10)
				.SetBoneCost(10)
				.SetIceCube("arackulele.inscryption.grimoramod_Bonepile")
				.SetDescription("A GROUP OF SKELETONS IS CALLED A CATACOMB. THIS IS A RATHER LARGE GATHERING.")
				.SetNames("arackulele.inscryption.grimoramod_Catacomb", "Catacomb")
				.SetSpecialStatIcon(GainAttackBones.FullStatIcon.Id)
				.Build();
		}

		private void Add_Card_Centurion()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)54).SetBaseAttackAndHealth(1, 4)
				.SetBoneCost(6)
				.SetNames("arackulele.inscryption.grimoramod_Centurion", "Centurion")
				.SetDescription("A heavily armoured warrior. Last of his century, leader to none.")
				.Build();
		}

		private void Add_Card_CompoundFracture()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)15).SetBaseAttackAndHealth(1, 2)
				.SetBoneCost(4)
				.SetNames("arackulele.inscryption.grimoramod_CompoundFracture", "Compound Fracture")
				.SetDescription("CRUSHED BY THE ROOF OF HIS OWN HOUSE. LIVING ON AS A PILE OF GOO.")
				.Build();
		}

		private void Add_Card_Dalgyal()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)62).SetBaseAttackAndHealth(0, 2)
				.SetEnergyCost(2)
				.SetDescription("A SPIRIT THAT TAKES THE FORM OF AN EGG. ITS PRESENCE HARMS THOSE THAT GAZE UPON IT.")
				.SetNames("arackulele.inscryption.grimoramod_Dalgyal", "Dalgyal")
				.Build();
		}

		private void Add_Card_DanseMacabre()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)AlternatingStrike.ability, (Ability)(int)Erratic.ability).SetBaseAttackAndHealth(3, 3)
				.SetBoneCost(7)
				.SetDescription("FOREVER BOUND TOGETHER BY A TERRIBLE CURSE, THIS GROUP DANCES ONWARD INTO DOOM.")
				.SetNames("arackulele.inscryption.grimoramod_DanseMacabre", "Danse Macabre")
				.Build();
		}

		private void Add_Card_Deadeye()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)7).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(4)
				.SetDescription("SOME SAY THIS EYE ONCE BELONGED TO AN ANCIENT GOD. IT GAZES UPON YOUR ARMY, PICKING ITS FAVORITE TO AID IT ON THE BATTLEFIELD.")
				.SetNames("arackulele.inscryption.grimoramod_Deadeye", "Deadeye")
				.Build();
		}

		private void Add_Card_DeadHand()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)45).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(4)
				.SetDescription("SOME SAY THIS HAND ONCE BELONGED TO AN ANCIENT GOD. ANYTHING IT TOUCHES ROTS. AS WITH ANYTHING THAT ENDS, IT IS ALSO A NEW BEGINNING.")
				.SetNames("arackulele.inscryption.grimoramod_DeadHand", "Dead Hand")
				.Build();
		}

		private void Add_Card_DeadManWalking()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)Collector.ability, (Ability)3).SetBaseAttackAndHealth(2, 2)
				.SetBoneCost(6)
				.SetDescription("A DOOMED FATE SHOULD DISCOURAGE ONE FROM GOING ON, AT LEAST THATS WHAT A STILL LIVING MAN WOULD TELL YOU.")
				.SetNames("arackulele.inscryption.grimoramod_DeadManWalking", "Dead Man Walking")
				.Build();
		}

		private void Add_Card_DeadPets()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)35, (Ability)14).SetBaseAttackAndHealth(3, 1)
				.SetBoneCost(3)
				.SetDescription("FAMED AMONG THE FOLLOWERS OF THE PHARAOH. THEY WERE BLESSED WITH ETERNAL LIFE LONG AGO.")
				.SetNames("arackulele.inscryption.grimoramod_DeadPets", "Pharaoh's Pets")
				.Build();
		}

		private void Add_Card_DeathKnell()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)75).SetSpecialAbilities((SpecialTriggeredAbility)12, (SpecialTriggeredAbility)19)
				.SetBaseAttackAndHealth(0, 2)
				.SetBoneCost(8)
				.SetDescription("FOR WHOM THE BELL TOLLS? FOR WHOM THE TAP DRIPS DRY AND THE BATHWATER RUNS COLD.")
				.SetNames("arackulele.inscryption.grimoramod_DeathKnell", "Death Knell")
				.SetSpecialStatIcon((SpecialStatIcon)4)
				.Build()
				.pixelPortrait = AllSprites.Find((Sprite o) => ((Object)o).name == "deathknell_pixel");
		}

		private void Add_Card_DeathKnellBell()
		{
			CardBuilder.Builder.SetBaseAttackAndHealth(0, 1).SetNames("arackulele.inscryption.grimoramod_DeathKnell_Bell", "Chime").Build();
		}

		private void Add_Card_Doll()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)Imbued.ability).SetBaseAttackAndHealth(0, 2)
				.SetBoneCost(3)
				.SetDescription("This lonesome doll was returned from seas of slate and silent shores... it stares lifelessly.")
				.SetNames("arackulele.inscryption.grimoramod_Doll", "Doll")
				.Build()
				.pixelPortrait = AssetUtils.GetPrefab<Sprite>("dollpixel");
		}

		private void Add_Card_Draugr()
		{
			Sprite pixelPortrait = "Draugr".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)26).SetEvolve("arackulele.inscryption.grimoramod_Glacier", 1)
				.SetBaseAttackAndHealth(0, 1)
				.SetBoneCost(1)
				.SetDescription("HIDING IN A SUIT OF ARMOR, OR ICE, WHAT DOES IT MATTER. THIS SKELETON WON'T LAST FOREVER.")
				.SetIceCube("Skeleton")
				.SetTraits((Trait)21)
				.SetNames("arackulele.inscryption.grimoramod_Draugr", "Draugr")
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_DrownedSoul()
		{
			Sprite pixelPortrait = "DrownedSoul".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)4, (Ability)13).SetBaseAttackAndHealth(1, 1)
				.SetDescription("WHAT A SAD SIGHT, NO ONE SHALL KNOW WHAT LIES AT THE BOTTOM OF THAT WELL.")
				.SetEnergyCost(5)
				.SetNames("arackulele.inscryption.grimoramod_DrownedSoul", "Drowned Soul")
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_Dybbuk()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)Possessive.ability).SetBaseAttackAndHealth(0, 1)
				.SetBoneCost(3)
				.SetDescription("NO ONE KNOWS WHAT EXACTLY THE DYBBUK IS, SOME SAY IT IS BETTER LEFT UNKNOWN.")
				.SetNames("arackulele.inscryption.grimoramod_Dybbuk", "Dybbuk")
				.Build()
				.pixelPortrait = AllSprites.Find((Sprite o) => ((Object)o).name == "dybbuk_pixel");
		}

		private void Add_Card_Extoplasm()
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetPortraits(AssetUtils.GetPrefab<Sprite>("ectoplasm"), AssetUtils.GetPrefab<Sprite>("ectoplasm_emission")).SetAbilities((Ability)(int)ActivatedEnergyDrawWyvern.ability)
				.SetBaseAttackAndHealth(1, 2)
				.SetEnergyCost(4)
				.SetDescription("THE ESSENCE OF A SPIRIT, HIDDEN IN EVERY CORNER AND EVERY SHADOW. ONCE YOU SEE ONE, YOU WILL FIND THE REST SOON ENOUGH.")
				.SetNames("arackulele.inscryption.grimoramod_Ectoplasm", "Ectoplasm")
				.Build();
		}

		private void Add_Card_Boneclaw()
		{
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Expected I4, but got Unknown
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected I4, but got Unknown
			if (Chainloader.PluginInfos.ContainsKey("arackulele.inscryption._grimoramodextracards"))
			{
				CardBuilder.Builder.SetAsNormalCard().SetPortraits(AssetUtils.GetPrefab<Sprite>("boneclaw"), AssetUtils.GetPrefab<Sprite>("boneclaw_emission")).SetAbilities((Ability)(int)Slasher.ability)
					.SetBaseAttackAndHealth(2, 2)
					.SetDescription("A LIVING FAILURE, ITS KNOWLEDGE ONLY BROUGHT IT DEATH, OR AT LEAST AN APPROXIMATION OF IT.")
					.SetNames("arackulele.inscryption.grimoramod_Boneclaw", "Boneclaw")
					.SetBoneCost(7)
					.Build();
			}
			else
			{
				CardBuilder.Builder.SetAbilities((Ability)(int)Slasher.ability).SetPortraits(AssetUtils.GetPrefab<Sprite>("boneclaw"), AssetUtils.GetPrefab<Sprite>("boneclaw_emission")).SetBaseAttackAndHealth(2, 2)
					.SetDescription("A LIVING FAILURE, ITS KNOWLEDGE ONLY BROUGHT IT DEATH, OR AT LEAST AN APPROXIMATION OF IT.")
					.SetNames("arackulele.inscryption.grimoramod_Boneclaw", "Boneclaw")
					.SetBoneCost(7)
					.Build();
			}
		}

		private void Add_Card_Boneless()
		{
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Expected I4, but got Unknown
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Expected I4, but got Unknown
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected I4, but got Unknown
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Expected I4, but got Unknown
			if (Chainloader.PluginInfos.ContainsKey("arackulele.inscryption._grimoramodextracards"))
			{
				CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)Boneless.ability, (Ability)(int)GainAttackNoBones.ability).SetBaseAttackAndHealth(1, 3)
					.SetNames("arackulele.inscryption.grimoramod_Boneless", "Boneless")
					.SetDescription("It's Skeleton seems to have left this lifeless husk in order to achieve greater things.")
					.SetBoneCost(4)
					.Build();
			}
			else
			{
				CardBuilder.Builder.SetAbilities((Ability)(int)Boneless.ability, (Ability)(int)GainAttackNoBones.ability).SetBaseAttackAndHealth(1, 3).SetNames("arackulele.inscryption.grimoramod_Boneless", "Boneless")
					.SetDescription("It's Skeleton seems to have left this lifeless husk in order to achieve greater things.")
					.SetBoneCost(4)
					.Build();
			}
		}

		private void Add_Card_EgyptMummy()
		{
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Expected I4, but got Unknown
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected I4, but got Unknown
			if (Chainloader.PluginInfos.ContainsKey("arackulele.inscryption._grimoramodextracards"))
			{
				CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)Boneless.ability).SetBaseAttackAndHealth(1, 1)
					.SetNames("arackulele.inscryption.grimoramod_EgyptMummy", "Lesser Mummy")
					.SetDescription("A loyal servant to the Pharao, buried with him to serve eternally in death.")
					.SetBoneCost(1)
					.Build();
			}
			else
			{
				CardBuilder.Builder.SetAbilities((Ability)(int)Boneless.ability).SetBaseAttackAndHealth(1, 1).SetNames("arackulele.inscryption.grimoramod_EgyptMummy", "Lesser Mummy")
					.SetDescription("A loyal servant to the Pharao, buried with him to serve eternally in death.")
					.SetBoneCost(1)
					.Build();
			}
		}

		private void Add_Card_Eidolon()
		{
			if (Chainloader.PluginInfos.ContainsKey("arackulele.inscryption._grimoramodextracards"))
			{
				CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)62, (Ability)105).SetBaseAttackAndHealth(1, 3)
					.SetNames("arackulele.inscryption.grimoramod_Eidolon", "Eidolon")
					.SetDescription("A GOLEM ENCHANTED LONG AGO, BOUND TO PROTECT THE AGE OF SUN.")
					.SetBoneCost(5)
					.Build();
			}
			else
			{
				CardBuilder.Builder.SetAbilities((Ability)62, (Ability)105).SetBaseAttackAndHealth(1, 3).SetNames("arackulele.inscryption.grimoramod_Eidolon", "Eidolon")
					.SetDescription("A GOLEM ENCHANTED LONG AGO, BOUND TO PROTECT THE AGE OF SUN.")
					.SetBoneCost(5)
					.Build();
			}
		}

		private void Add_Card_EmberSpirit()
		{
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Expected I4, but got Unknown
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected I4, but got Unknown
			if (Chainloader.PluginInfos.ContainsKey("arackulele.inscryption._grimoramodextracards"))
			{
				CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)FlameStrafe.ability, (Ability)105).SetBaseAttackAndHealth(1, 3)
					.SetDescription("QUITE A MISCHIEVOUS SPIRIT, IT SPREADS ITS FLAMES TO CAUSE DISMAY.")
					.SetEnergyCost(6)
					.SetNames("arackulele.inscryption.grimoramod_Ember_Spirit", "Ember Spirit")
					.Build();
			}
			else
			{
				CardBuilder.Builder.SetAbilities((Ability)(int)FlameStrafe.ability, (Ability)105).SetBaseAttackAndHealth(1, 3).SetDescription("QUITE A MISCHIEVOUS SPIRIT, IT SPREADS ITS FLAMES TO CAUSE DISMAY.")
					.SetEnergyCost(6)
					.SetNames("arackulele.inscryption.grimoramod_Ember_Spirit", "Ember Spirit")
					.Build();
			}
		}

		private void Add_Card_Family()
		{
			Sprite pixelPortrait = "Family".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)12).SetBaseAttackAndHealth(1, 2)
				.SetBoneCost(4)
				.SetDescription("THE FAMILY WISHES TO REST IN PEACE, ONLY TO BE SUMMONED AGAIN AND AGAIN IN AN ETERNAL BATTLE.")
				.SetNames("arackulele.inscryption.grimoramod_Family", "The Walkers")
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_FesteringWretch()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)83).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(3)
				.SetDescription("It is said their odor is so strong and repugnant, even the undead can feel it!")
				.SetNames("arackulele.inscryption.grimoramod_FesteringWretch", "Festering Wretch")
				.Build();
		}

		private void Add_Card_Flames()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAbilities((Ability)34, (Ability)(int)Burning.ability).SetBaseAttackAndHealth(0, 2).SetBoneCost(2)
				.SetNames("arackulele.inscryption.grimoramod_Flames", "Flames")
				.SetTraits((Trait)12, (Trait)9)
				.Build();
		}

		private void Add_Card_Flameskull()
		{
			if (Chainloader.PluginInfos.ContainsKey("arackulele.inscryption._grimoramodextracards"))
			{
				CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)34, (Ability)19).SetBaseAttackAndHealth(2, 1)
					.SetBoneCost(6)
					.SetNames("arackulele.inscryption.grimoramod_Flameskull", "Flameskull")
					.SetDescription("Always flying, always angry, always annoying nearby allies in the process.")
					.Build();
			}
			else
			{
				CardBuilder.Builder.SetAbilities((Ability)34, (Ability)19).SetBaseAttackAndHealth(2, 1).SetBoneCost(6)
					.SetNames("arackulele.inscryption.grimoramod_Flameskull", "Flameskull")
					.SetDescription("Always flying, always angry, always annoying nearby allies in the process.")
					.Build();
			}
		}

		private void Add_Card_ForgottenMan()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)CreateShipwrecks.ability, (Ability)13).SetBaseAttackAndHealth(1, 2)
				.SetBoneCost(5)
				.SetDescription("A waterlogged sailor who carries his tragic past beside him. I don't remember the details.")
				.SetNames("arackulele.inscryption.grimoramod_ForgottenMan", "Forgotten Man")
				.Build();
		}

		private void Add_Card_Franknstein()
		{
			Sprite portraitTex = "FrankNStein".GetCardInfo().portraitTex;
			Sprite pixelPortrait = "FrankNStein".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAsNormalCard().SetBaseAttackAndHealth(2, 2).SetBoneCost(5)
				.SetDescription("BEST FRIENDS, BROTHERS, AND FIGHTERS.")
				.SetIceCube("arackulele.inscryption.grimoramod_Zombie")
				.SetNames("arackulele.inscryption.grimoramod_Franknstein", "Frank & Stein", portraitTex)
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_Fylgja()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)Fylgja_GuardDog.ability).SetBaseAttackAndHealth(2, 3)
				.SetBoneCost(6)
				.SetDescription("A ghastly guardian spirit. It's presence lingers behind as it sprints through the dark.")
				.SetNames("arackulele.inscryption.grimoramod_Fylgja", "Fylgja")
				.Build();
		}

		private void Add_Card_WardingPresence()
		{
			CardBuilder.Builder.SetBaseAttackAndHealth(0, 1).SetNames("arackulele.inscryption.grimoramod_WardingPresence", "Warding Presence").Build();
		}

		private void Add_Card_Gashadokuro_Stage1_MassGrave()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)5, (Ability)12).SetBaseAttackAndHealth(0, 2)
				.SetBoneCost(4)
				.SetDescription("WHAT CREATED THESE BONES, WAR, FAMINE OR ANOTHER TRAGEDY? It may be insignificant now, but I fear what it might become...")
				.SetEvolve("arackulele.inscryption.grimoramod_RisingHunger", 1)
				.SetNames("arackulele.inscryption.grimoramod_MassGrave", "Mass Grave")
				.Build();
		}

		private void Add_Card_Gashadokuro_Stage2_RisingHunger()
		{
			CardBuilder.Builder.SetAbilities((Ability)5, (Ability)12).SetBaseAttackAndHealth(0, 2).SetEvolve("arackulele.inscryption.grimoramod_Gashadokuro", 1)
				.SetNames("arackulele.inscryption.grimoramod_RisingHunger", "Rising Hunger")
				.Build();
		}

		private void Add_Card_Gashadokuro_Stage3()
		{
			CardBuilder.Builder.SetAbilities((Ability)25).SetBaseAttackAndHealth(2, 3).SetNames("arackulele.inscryption.grimoramod_Gashadokuro", "Gashadokuro")
				.Build();
		}

		private void Add_Card_GhostShip()
		{
			Sprite pixelPortrait = "GhostShip".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)36, (Ability)13).SetBaseAttackAndHealth(0, 1)
				.SetBoneCost(4)
				.SetEvolve("arackulele.inscryption.grimoramod_GhostShipRoyal", 1)
				.SetDescription("THE PIRATES CALL THIS SHIP THEIR HOME, EVEN IN DEATH. A SLAIN GIANTS SKULL SERVES AS THEIR FIGUREHEAD.")
				.FlipPortraitForStrafe()
				.SetNames("arackulele.inscryption.grimoramod_GhostShip", "Ghost Ship")
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_GhostShipRoyal()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected I4, but got Unknown
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Expected I4, but got Unknown
			CardBuilder.Builder.SetAbilities((Ability)(int)Anchored.ability).SetSpecialAbilities((SpecialTriggeredAbility)(int)CreateRoyalsCrewMate.FullSpecial.Id).SetAppearance((Appearance)7)
				.SetBoneCost(7)
				.SetBaseAttackAndHealth(0, 11)
				.SetNames("arackulele.inscryption.grimoramod_GhostShipRoyal", string.Empty)
				.Build();
		}

		private void Add_Card_Giant()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)12, (Ability)24).SetBaseAttackAndHealth(3, 8)
				.SetBoneCost(15)
				.SetDescription("THE FAMED RACE OF GIANTS IS SAID TO HAVE DIED OUT LONG AGO, THIS IS PROOF. TRULY A SIGHT TO BEHOLD.")
				.SetNames("arackulele.inscryption.grimoramod_Giant", "Giant")
				.SetTraits((Trait)16)
				.Build()
				.pixelPortrait = AssetUtils.GetPrefab<Sprite>("giant_pixel");
		}

		private void Add_Card_GratefulDead()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)LatchBoneDigger.ability).SetBaseAttackAndHealth(0, 1)
				.SetDescription("BOUND TO EARTH, THEY CLING ON SO THEY MAY ONE DAY GET PROPER BURIAL.")
				.SetNames("arackulele.inscryption.grimoramod_GratefulDead", "Grateful Dead")
				.Build();
		}

		private void Add_Card_Gravebard()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)34).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(4)
				.SetDescription("THE LOWLY GRAVEBARD, MUSIC ALWAYS BROUGHT HIM COMFORT IN THE WORST OF TIMES. NOW, EVEN AT THE END OF THE WORLD HE SHARES HIS SONG.")
				.SetNames("arackulele.inscryption.grimoramod_Gravebard", "Gravebard")
				.Build();
		}

		private void Add_Card_GraveCarver()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)Sculptor.ability).SetBaseAttackAndHealth(2, 2)
				.SetBoneCost(5)
				.SetDescription("HE HAS SPENT HIS LIFE CARVING THESE CREATURES, THIS CARD CONTAINS A PART OF HIS SOUL.")
				.SetNames("arackulele.inscryption.grimoramod_GraveCarver", "Grave Carver")
				.Build();
		}

		private void Add_Card_Gravedigger()
		{
			Sprite portraitTex = "Gravedigger".GetCardInfo().portraitTex;
			Sprite pixelPortrait = "Gravedigger".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)28).SetBaseAttackAndHealth(0, 3)
				.SetBoneCost(1)
				.SetDescription("HE SPENDS HIS TIME ALONE DIGGING FOR BONES IN HOPES OF FINDING A TREASURE. JUST LIKE HIS GRANDMA BEFORE HIM.")
				.SetEvolve("arackulele.inscryption.grimoramod_Sporedigger", 1)
				.SetNames("arackulele.inscryption.grimoramod_Gravedigger", "Gravedigger", portraitTex)
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_Sporedigger()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)28, (Ability)28).SetBaseAttackAndHealth(0, 3)
				.SetBoneCost(1)
				.SetDescription("A POOR, BRUTALIZED SOUL. THEIR MYCELIA PROBES FAR INTO THE SOIL, GUIDING THEIR SPADE.")
				.SetNames("arackulele.inscryption.grimoramod_Sporedigger", "Sporedigger")
				.SetTraits((Trait)18)
				.Build();
		}

		private void Add_Card_Haltia()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)58, (Ability)19).SetBaseAttackAndHealth(1, 2)
				.SetEnergyCost(5)
				.SetDescription("A devoted guardian spirit. Even when dispelled, it grants a protective blessing.")
				.SetNames("arackulele.inscryption.grimoramod_Haltia", "Haltia")
				.Build();
		}

		private void Add_Card_HauntedMirror()
		{
			CardBuilder.Builder.SetAsNormalCard().SetSpecialAbilities((SpecialTriggeredAbility)11).SetBaseAttackAndHealth(0, 2)
				.SetDescription("I advise against staring into it, you won't like what stares back.")
				.SetEnergyCost(4)
				.SetNames("arackulele.inscryption.grimoramod_HauntedMirror", "Haunted Mirror")
				.SetSpecialStatIcon((SpecialStatIcon)3)
				.Build();
		}

		private void Add_Card_HeadlessHorseman()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)19, (Ability)3).SetBaseAttackAndHealth(5, 5)
				.SetBoneCost(13)
				.SetDescription("THEY CALL HER THE RIDER OF THE APOCALYPSE. HER FLAMING BLADE CUTS THROUGH THE LIVING AND DEAD ALIKE.")
				.SetNames("arackulele.inscryption.grimoramod_HeadlessHorseman", "Headless Horseman")
				.SetIceCube("arackulele.inscryption.grimoramod_Flameskull")
				.Build();
		}

		private void Add_Card_Hellhand()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)57).SetBaseAttackAndHealth(2, 1)
				.SetBoneCost(6)
				.SetDescription("I WOULDN'T GET TOO CLOSE DEAR. YOU CAN'T BREAK THE HOLD FROM THE DEEPEST PITS OF HELL, ONCE IT LATCHES ON.")
				.SetNames("arackulele.inscryption.grimoramod_Hellhand", "Hellhand")
				.Build();
		}

		private void Add_Card_HellHound()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected I4, but got Unknown
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			CardBuilder.Builder.SetAbilities((Ability)8, (Ability)105).SetSpecialAbilities((SpecialTriggeredAbility)(int)GainAttackBones.FullSpecial.Id).SetBaseAttackAndHealth(1, 9)
				.SetBoneCost(5)
				.SetDescription("A RABID DOG. IT KILLED ONE OF MY GHOULS.")
				.SetNames("arackulele.inscryption.grimoramod_HellHound", "Hell Hound")
				.SetTraits((Trait)14)
				.SetSpecialStatIcon(GainAttackBones.FullStatIcon.Id)
				.Build();
		}

		private void Add_Card_Hydra()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)14, (Ability)25).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(5)
				.SetDescription("LEGENDS HAVE BEEN TOLD ABOUT THE LEGENDARY HYDRA, THE BEAST THAT SWALLOWS ALL AND THE BANE OF ALL THAT SAIL THE SEAS.")
				.SetNames("arackulele.inscryption.grimoramod_Hydra", "Hydra")
				.SetPortraits(AssetUtils.GetPrefab<Sprite>("hydra_new"), AssetUtils.GetPrefab<Sprite>("hydra_emission_new"))
				.Build();
		}

		private void Add_Card_Jikininki()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)101).SetBaseAttackAndHealth(1, 2)
				.SetEnergyCost(5)
				.SetDescription("Overtaken by it's gluttony in life, doomed to it's gluttony in death. Oddly inspires a greed for bones.")
				.SetNames("arackulele.inscryption.grimoramod_Jikininki", "Jikininki")
				.Build();
		}

		private void Add_Card_Avalanche()
		{
			CardBuilder cardBuilder = CardBuilder.Builder.SetAbilities((Ability)23, (Ability)26).SetBaseAttackAndHealth(0, 10).SetBoneCost(6)
				.SetNames("arackulele.inscryption.grimoramod_Avalanche", "Avalanche");
			Trait[] array = new Trait[3];
			RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			cardBuilder.SetTraits((Trait[])(object)array).Build();
		}

		private void Add_Card_Glacier_Stage1()
		{
			CardBuilder cardBuilder = CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)26).SetBaseAttackAndHealth(0, 4)
				.SetBoneCost(10)
				.SetIceCube("arackulele.inscryption.grimoramod_FrostGiant")
				.SetNames("arackulele.inscryption.grimoramod_Glacier", "Glacier");
			Trait[] array = new Trait[3];
			RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			cardBuilder.SetTraits((Trait[])(object)array).SetDescription("I WONDER WHAT HAS BEEN FROZEN AWAY FOR SO LONG.").Build()
				.pixelPortrait = AssetUtils.GetPrefab<Sprite>("glacier_pixel");
		}

		private void Add_Card_Glacier_Stage2_FrostGiant()
		{
			CardBuilder.Builder.SetAbilities((Ability)24).SetBaseAttackAndHealth(2, 4).SetBoneCost(10)
				.SetNames("arackulele.inscryption.grimoramod_FrostGiant", "Frost Giant")
				.SetTraits((Trait)16, (Trait)14)
				.Build();
		}

		private void Add_Card_IceCube()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)ColdFront.ability).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(4)
				.SetDescription("A CORPSE WHO DIED WITH HIS HEAD IN A GLACIAL STREAM. AFTER HIS REANIMATION, HE COULDN'T BEAR TO PART WITH THE ICE THAT HAD FORMED.")
				.SetTraits((Trait)21)
				.SetNames("arackulele.inscryption.grimoramod_IceCube", "Ice Cube")
				.Build();
		}

		private void Add_Card_LaLlorona()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)13).SetEvolve("arackulele.inscryption.grimoramod_Nixie", 1)
				.SetBaseAttackAndHealth(1, 1)
				.SetDescription("After drowning her children and then herself, she continues to drown others.")
				.SetEnergyCost(3)
				.SetNames("arackulele.inscryption.grimoramod_LaLlorona", "La Llorona")
				.Build();
		}

		private void Add_Card_Manananggal()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)19).SetBaseAttackAndHealth(3, 3)
				.SetBoneCost(8)
				.SetDescription("NO BRUTALITY SATIATES THE MANANANGGAL. WHEN YOU SEE HER SEVER FROM HER TORSO, YOU TOO WILL BE A VICTIM OF THE HUNT.")
				.SetNames("arackulele.inscryption.grimoramod_Manananggal", "Manananggal")
				.Build();
		}

		private void Add_Card_Moroi()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)ActivatedGainEnergySoulSucker.ability).SetBaseAttackAndHealth(1, 1)
				.SetEnergyCost(4)
				.SetDescription("Moroi, also known as the hairy ghost. It leeches the souls from those struck down near it.")
				.SetNames("arackulele.inscryption.grimoramod_Moroi", "Moroi")
				.Build();
		}

		private void Add_Card_Mummy()
		{
			CardBuilder.Builder.SetAsNormalCard().SetBaseAttackAndHealth(3, 3).SetBoneCost(8)
				.SetDescription("HIS AGE OF GLORY IS LONG GONE, YET IT IS WHAT KEEPS HIM GOING.")
				.SetNames("arackulele.inscryption.grimoramod_Mummy", "Mummy Lord")
				.Build();
		}

		private void Add_Card_Necromancer()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)68).SetBaseAttackAndHealth(1, 2)
				.SetBoneCost(3)
				.SetDescription("ALL EFFORTS TO PRESERVE LIFE AFTER DEATH HAVE BEEN FUTILE, YET THE NECROMANCER GOES ON. HE HAS TO.")
				.SetNames("arackulele.inscryption.grimoramod_Necromancer", "Necromancer")
				.Build()
				.pixelPortrait = pixelSprite;
		}

		private void Add_Card_Nixie()
		{
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Expected I4, but got Unknown
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected I4, but got Unknown
			if (Chainloader.PluginInfos.ContainsKey("arackulele.inscryption._grimoramodextracards"))
			{
				CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)LatchSubmerge.ability).SetBaseAttackAndHealth(2, 1)
					.SetBoneCost(5)
					.SetDescription("A troublesome lake spirit that enjoys dragging others down to a watery grave.")
					.SetNames("arackulele.inscryption.grimoramod_Nixie", "Nixie")
					.Build();
			}
			else
			{
				CardBuilder.Builder.SetAbilities((Ability)(int)LatchSubmerge.ability).SetBaseAttackAndHealth(2, 1).SetBoneCost(5)
					.SetDescription("A troublesome lake spirit that enjoys dragging others down to a watery grave.")
					.SetNames("arackulele.inscryption.grimoramod_Nixie", "Nixie")
					.Build();
			}
		}

		private void Add_Card_Nosferat()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)57, (Ability)57).SetBaseAttackAndHealth(3, 1)
				.SetBoneCost(7)
				.SetDescription("The shambling corpse of a pale, sickly noble. it spreads it's filth as it sheds it's flesh.")
				.SetNames("arackulele.inscryption.grimoramod_Nosferat", "Nosferat")
				.Build();
		}

		private void Add_Card_Obol()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)23, (Ability)15).SetBaseAttackAndHealth(0, 3)
				.SetBoneCost(3)
				.SetDescription("IT WILL ALL MAKE SENSE SOON. THE OBOL IS OLDER THAN TIME ITSELF, AND THUS IT WILL REVEAL ITSELF IN DUE TIME.")
				.SetNames("arackulele.inscryption.grimoramod_Obol", "Ancient Obol")
				.Build()
				.pixelPortrait = AllSprites.Find((Sprite o) => ((Object)o).name == "obol_pixel");
		}

		private void Add_Card_OneArmedBandit()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)ActivatedRandomPowerWeight.ability).SetBaseAttackAndHealth(0, 1)
				.SetEnergyCost(4)
				.SetNames("arackulele.inscryption.grimoramod_OneArmedBandit", "One Armed Bandit")
				.SetDescription("Took the ten paces, that ordeal cost him an arm, and his life.")
				.Build();
		}

		private void Add_Card_Ourobones()
		{
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)35).SetSpecialAbilities((SpecialTriggeredAbility)(int)OurobonesCore.FullSpecial.Id)
				.SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(2)
				.SetDescription("IT IS SAID ALL IS WELL THAT ENDS. IT IS SAID TIME IS LIKE AN OUROBOROS, IT DOES NOT END, IT ONLY REPEATS ITSELF.")
				.SetNames("arackulele.inscryption.grimoramod_Ourobones", "Ourobones")
				.Build();
		}

		private void Add_Card_PlagueDoctor()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)4).SetBaseAttackAndHealth(1, 3)
				.SetBoneCost(6)
				.SetNames("arackulele.inscryption.grimoramod_PlagueDoctor", "Plague Doctor")
				.SetDescription("HE HAS DETERMINED THE UNDEAD ARE SICK WITH A TERRIBLE ILLNESS. THE ONLY CURE IS DEATH.")
				.Build();
		}

		private void Add_Card_Poltergeist()
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetSpecialStatIcon(GainAttackTerrain.FullStatIcon.Id).SetAbilities((Ability)13)
				.SetBaseAttackAndHealth(0, 1)
				.SetEnergyCost(4)
				.SetSpecialAbilities((SpecialTriggeredAbility)(int)GainAttackTerrain.FullSpecial.Id)
				.SetDescription("AN EVIL TRICKSTER, THE POLTERGEIST HAS ENJOYED THEIR DEATH VERY MUCH.")
				.SetNames("arackulele.inscryption.grimoramod_Poltergeist", "Poltergeist")
				.Build();
		}

		private void Add_Card_PossessedArmour()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)79).SetBaseAttackAndHealth(1, 2)
				.SetEnergyCost(5)
				.SetDescription("A suit of ancient armour in which an occult spirit has taken up residence. Her iron fist drags more creatures to the fight.")
				.SetNames("arackulele.inscryption.grimoramod_PossessedArmour", "Possessed Armour")
				.Build();
		}

		private void Add_Card_Project()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)ChaosStrike.ability).SetBaseAttackAndHealth(1, 3)
				.SetBoneCost(7)
				.SetDescription("AN EXPERIMENT GONE WRONG, IN A FUTILE ATTEMPT TO CREATE A DANSE MACCABRE. THEY DO NOT FUNCTION TOGETHER.")
				.SetNames("arackulele.inscryption.grimoramod_Project", "Project")
				.Build();
		}

		private void Add_Card_RandomCard()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected I4, but got Unknown
			CardBuilder.Builder.SetAbilities((Ability)(int)GrimoraRandomAbility.ability).SetBaseAttackAndHealth(0, 0).SetDescription("You shouldnt be seeing this right now")
				.SetNames("arackulele.inscryption.grimoramod_Random", "Random Cards")
				.Build()
				.pixelPortrait = AssetUtils.GetPrefab<Sprite>("randompixelportrait");
		}

		private void Add_Card_Revenant()
		{
			Sprite pixelPortrait = "Revenant".GetCardInfo().pixelPortrait;
			Sprite portraitTex = "Revenant".GetCardInfo().portraitTex;
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)35).SetBaseAttackAndHealth(3, 1)
				.SetBoneCost(3)
				.SetDescription("BRINGING THE SCYTHE OF DEATH, THE REVENANT SEEKS ONLY REVENGE.")
				.SetNames("arackulele.inscryption.grimoramod_Revenant", "Revenant", portraitTex)
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_Ripper()
		{
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)35).SetBaseAttackAndHealth(6, 6)
				.SetBoneCost(6)
				.SetNames("arackulele.inscryption.grimoramod_Ripper", "Ripper")
				.SetDescription("THE RIPPER SOLVES EVERYTHING THROUGH SHEER STRENGTH. IT WILL PUNCH ANY ISSUE STRAIGHT IN THE FACE AND SOLVE IT, TOO.")
				.Build();
		}

		private void Add_Card_Rot()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)LooseLimb.ability).SetBaseAttackAndHealth(1, 2)
				.SetBoneCost(4)
				.SetDescription("It's a wonder this one has stayed together! Though it may lose that arm if it tries to flee.")
				.SetNames("arackulele.inscryption.grimoramod_Rot", "Rotten")
				.SetTail("arackulele.inscryption.grimoramod_Rot_tail")
				.Build();
		}

		private void Add_Card_RotTail()
		{
			CardBuilder.Builder.SetBaseAttackAndHealth(0, 1).SetNames("arackulele.inscryption.grimoramod_Rot_tail", "Twitching Arm").Build();
		}

		private void Add_Card_DavyJonesLocker()
		{
			CardBuilder.Builder.SetAbilities((Ability)78).SetTraits((Trait)12).SetBaseAttackAndHealth(0, 3)
				.SetBoneCost(2)
				.SetDescription("The elusive Locker.")
				.SetNames("arackulele.inscryption.grimoramod_DavyJonesLocker", "Davy Jones Locker")
				.Build();
		}

		private void Add_Card_PirateCaptainYellowbeard()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)BuffSkeletonsSeaShanty.ability, (Ability)(int)Anchored.ability).SetBaseAttackAndHealth(2, 2)
				.SetBoneCost(7)
				.SetDescription("His songs raise the morale of only Skeletons, as no one else seems to like it.")
				.SetNames("arackulele.inscryption.grimoramod_PirateCaptainYellowbeard", "Yellowbeard")
				.Build()
				.pixelPortrait = AssetUtils.GetPrefab<Sprite>("yellowbeard_pixel");
		}

		private void Add_Card_Crossbones()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)Bounty.ability, (Ability)(int)Anchored.ability).SetBaseAttackAndHealth(0, 2)
				.SetBoneCost(1)
				.SetDescription("A DISTANT RELATIVE OF THE SCREAMING SKULL, HE IS NOW THE SYMBOL OF PIRACY ALL AROUND THE WORLD")
				.SetNames("arackulele.inscryption.grimoramod_Crossbones", "Crossbones")
				.Build();
		}

		private void Add_Card_PirateDavyJones()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Expected I4, but got Unknown
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)Anchored.ability).SetSpecialAbilities((SpecialTriggeredAbility)(int)GainAttackPirates.FullSpecial.Id)
				.SetBaseAttackAndHealth(0, 3)
				.SetBoneCost(5)
				.SetDescription("The true captain of the crew, respected by all yet still elusive. YELLOWBEARD ALWAYS GETS MORE BOOTY THAN HE DOES.")
				.SetNames("arackulele.inscryption.grimoramod_PirateDavyJones", "Davy Jones")
				.SetSpecialStatIcon(GainAttackPirates.FullStatIcon.Id)
				.Build();
		}

		private void Add_Card_PirateExploding()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)Anchored.ability, (Ability)(int)LitFuse.ability).SetBaseAttackAndHealth(0, 2)
				.SetBoneCost(1)
				.SetDescription("MAYBE IT WASN'T THE BEST IDEA TO HOLD A BARREL FULL OF GUNPOWDER. I'M NOT SURE WETHER HE NOTICED.")
				.SetNames("arackulele.inscryption.grimoramod_ExplodingPirate", "Exploding Pirate")
				.Build();
		}

		private void Add_Card_PirateFirstMateSnag()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)HookLineAndSinker.ability, (Ability)(int)Anchored.ability).SetBaseAttackAndHealth(2, 2)
				.SetBoneCost(7)
				.SetDescription("He betrayed his captain for that large hook, now he is sure to make anyone a double-crosser!")
				.SetNames("arackulele.inscryption.grimoramod_PirateFirstMateSnag", "First Mate Snag")
				.Build()
				.pixelPortrait = AssetUtils.GetPrefab<Sprite>("snag_pixel");
		}

		private void Add_Card_PiratePolly()
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)35, (Ability)19, (Ability)(int)Anchored.ability).SetBaseAttackAndHealth(3, 1)
				.SetBoneCost(3)
				.SetDescription("Parrots usually make great sea-side companions, this one just ate a poisoned cracker.")
				.SetNames("arackulele.inscryption.grimoramod_PiratePolly", "Polly")
				.Build();
		}

		private void Add_Card_PiratePrivateer()
		{
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Expected I4, but got Unknown
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected I4, but got Unknown
			if (Chainloader.PluginInfos.ContainsKey("arackulele.inscryption._grimoramodextracards"))
			{
				CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)Anchored.ability, (Ability)53).SetBaseAttackAndHealth(1, 1)
					.SetBoneCost(3)
					.SetDescription("A keen eye socket allows him to attack anywhere, his musket helps too. marvelous indeed!")
					.SetNames("arackulele.inscryption.grimoramod_PiratePrivateer", "Privateer")
					.Build();
			}
			else
			{
				CardBuilder.Builder.SetAbilities((Ability)(int)Anchored.ability, (Ability)53).SetBaseAttackAndHealth(1, 1).SetBoneCost(3)
					.SetDescription("A keen eye socket allows him to attack anywhere, his musket helps too. marvelous indeed!")
					.SetNames("arackulele.inscryption.grimoramod_PiratePrivateer", "Privateer")
					.Build();
			}
		}

		private void Add_Card_PirateSwashbuckler()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected I4, but got Unknown
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Expected I4, but got Unknown
			CardBuilder.Builder.SetAbilities((Ability)(int)Raider.ability, (Ability)(int)Anchored.ability).SetBaseAttackAndHealth(1, 2).SetNames("arackulele.inscryption.grimoramod_PirateSwashbuckler", "Swashbuckler")
				.Build();
		}

		private void Add_Card_Sarcophagus()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)5).SetBaseAttackAndHealth(0, 2)
				.SetBoneCost(4)
				.SetEvolve("arackulele.inscryption.grimoramod_Mummy", 1)
				.SetDescription("EMERGING FROM AN OLD EGYPTIAN TOMB, MADE TO HOUSE THE LORDS OF OLD.")
				.SetNames("arackulele.inscryption.grimoramod_Sarcophagus", "Sarcophagus")
				.Build();
		}

		private void Add_Card_ScreamingSkull()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)AreaOfEffectStrike.ability).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(2)
				.SetDescription("ONLY PAIN AND SUFFERING, NOTHING ELSE IS FELT BY THIS SKELETAL HEAD. WHAT A PITY.")
				.SetNames("arackulele.inscryption.grimoramod_ScreamingSkull", "Screaming Skull")
				.Build()
				.pixelPortrait = AllSprites.Find((Sprite o) => ((Object)o).name == "pixel_skull");
		}

		private void Add_Card_Silbon()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)InvertedStrike.ability, (Ability)3).SetBaseAttackAndHealth(3, 2)
				.SetBoneCost(6)
				.SetDescription("A SKILLED HUNTER. DON'T TRUST YOUR EARS WHEN YOU HEAR ITS HAUNTING WHISTLE.")
				.SetNames("arackulele.inscryption.grimoramod_Silbon", "Silbon")
				.Build()
				.pixelPortrait = AllSprites.Find((Sprite o) => ((Object)o).name == "pixel_silbon");
		}

		private void Add_Card_Skelemagus()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)35).SetBaseAttackAndHealth(4, 1)
				.SetEnergyCost(6)
				.SetDescription("THEY HAVE LEARNED THE ANCIENT SPELL OF DEATH. YET IT IS TOO MUCH POWER TO BE WIELDED.")
				.SetNames("arackulele.inscryption.grimoramod_Skelemagus", "Skelemagus")
				.SetPortraits(AssetUtils.GetPrefab<Sprite>("Skelemagus_new"), AssetUtils.GetPrefab<Sprite>("Skelemagus_emission_new"))
				.Build();
		}

		private void Add_Card_SkeletonArmy()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)CreateArmyOfSkeletons.ability).SetBaseAttackAndHealth(1, 2)
				.SetBoneCost(5)
				.SetDescription("RISE MY ARMY, RIIIIIISE".BrightRed())
				.SetNames("arackulele.inscryption.grimoramod_SkeletonArmy", "Skeleton Army")
				.Build();
		}

		private void Add_Card_SlingersSoul()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)ActivatedDealDamageGrimora.ability).SetBaseAttackAndHealth(2, 3)
				.SetBoneCost(4)
				.SetEnergyCost(4)
				.SetDescription("One of the faster draws in the west, but not fast enough.")
				.SetNames("arackulele.inscryption.grimoramod_SlingersSoul", "Slinger's Soul")
				.Build();
		}

		private void Add_Card_Sluagh()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)19).SetBaseAttackAndHealth(1, 1)
				.SetEnergyCost(2)
				.SetDescription("THEY SHOW UP OUT OF NOWHERE AND RELOCATE PEOPLE AS THEY PLEASE.")
				.SetNames("arackulele.inscryption.grimoramod_Sluagh", "Sluagh")
				.Build();
		}

		private void Add_Card_CandyBucket()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected I4, but got Unknown
			CardBuilder.Builder.SetAbilities((Ability)(int)DropCandy.ability).SetBaseAttackAndHealth(0, 1).SetBoneCost(1)
				.SetDescription("Trick or treat!")
				.SetNames("arackulele.inscryption.grimoramod_CandyBucket", "Candy Bucket")
				.Build();
		}

		private void Add_Card_CandyMonster()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Expected I4, but got Unknown
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Expected I4, but got Unknown
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			CardBuilder.Builder.SetAbilities((Ability)8, (Ability)52, (Ability)(int)Collector.ability).SetSpecialAbilities((SpecialTriggeredAbility)(int)GainAttackBones.FullSpecial.Id).SetBaseAttackAndHealth(0, 10)
				.SetBoneCost(5)
				.SetDescription("HAPPY HALLOWEEN!")
				.SetNames("arackulele.inscryption.grimoramod_CandyMonster", "Candy Monster")
				.SetTraits((Trait)14, (Trait)16)
				.SetSpecialStatIcon(GainAttackCandy.FullStatIcon.Id)
				.Build();
		}

		private void Add_Card_Spectrabbit()
		{
			CardBuilder.Builder.SetBaseAttackAndHealth(0, 1).SetNames("arackulele.inscryption.grimoramod_Spectrabbit", "Spectrabbit").Build();
		}

		private void Add_Card_Spectre()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)(int)HauntingCall.ability).SetBaseAttackAndHealth(3, 3)
				.SetEnergyCost(6)
				.SetDescription("THE SPECTRE EMITS A FLUTE LIKE CALL, AN OMEN OF BOTH DEATH AND DESCTRUCTION")
				.SetNames("arackulele.inscryption.grimoramod_Spectre", "Spectre")
				.Build();
		}

		private void Add_Card_StarvedMan()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAsRareCard().SetAbilities((Ability)(int)Malnourishment.ability).SetBaseAttackAndHealth(3, 3)
				.SetBoneCost(4)
				.SetDescription("DEATH IS A CRUEL FATE. STARVATION AN EVEN CRUELER ONE. WHY DO YOU FIGHT, OH HUNGRY CHILD.")
				.SetNames("arackulele.inscryption.grimoramod_StarvedMan", "Starved Man")
				.Build();
		}

		private void Add_Card_Summoner()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)24).SetBaseAttackAndHealth(1, 1)
				.SetBoneCost(4)
				.SetDescription("HE HAS SPENT YEARS IN HIS STUDY, IN A TIRELESS ATTEMPT TO CHANGE HIS FATE. YET FATE IS A CRUEL MISTRESS.")
				.SetNames("arackulele.inscryption.grimoramod_Summoner", "Summoner")
				.SetPortraits(AssetUtils.GetPrefab<Sprite>("summoner_new"), AssetUtils.GetPrefab<Sprite>("summoner_new_emission"))
				.Build()
				.pixelPortrait = AssetUtils.GetPrefab<Sprite>("summoner_pixel");
		}

		private void Add_Card_TamperedCoffin()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected I4, but got Unknown
			CardBuilder.Builder.SetAbilities((Ability)(int)Boneless.ability).SetBaseAttackAndHealth(0, 1).SetNames("arackulele.inscryption.grimoramod_TamperedCoffin", "Tampered Coffin")
				.Build();
		}

		private void Add_Card_DeadTree()
		{
			CardBuilder.Builder.SetAbilities((Ability)23).SetBaseAttackAndHealth(0, 1).SetNames("arackulele.inscryption.grimoramod_DeadTree", "Dead Tree")
				.SetTraits((Trait)9, (Trait)12)
				.Build();
		}

		private void Add_Card_DisturbedGrave()
		{
			CardBuilder.Builder.SetAbilities((Ability)5).SetBaseAttackAndHealth(0, 1).SetDescription("Its low cost is justified only by its low stats.")
				.SetEvolve("arackulele.inscryption.grimoramod_Zombie", 2)
				.SetNames("arackulele.inscryption.grimoramod_DisturbedGrave", "Disturbed Grave")
				.SetTraits((Trait)9, (Trait)12)
				.Build();
		}

		private void Add_Card_DisturbedGraveNonTerrain()
		{
			CardBuilder.Builder.SetAsNormalCard().SetAbilities((Ability)5).SetBaseAttackAndHealth(0, 1)
				.SetDescription("A LOWLY GRAVE. WHOEVER IS LAID TO REST HERE, I DO NOT KNOW.")
				.SetEvolve("arackulele.inscryption.grimoramod_Zombie", 1)
				.SetNames("arackulele.inscryption.grimoramod_DisturbedGraveNonTerrain", "Disturbed Grave")
				.Build();
		}

		private void Add_Card_Kennel()
		{
			CardBuilder.Builder.SetAbilities((Ability)26).SetBaseAttackAndHealth(0, 3).SetIceCube("arackulele.inscryption.grimoramod_Bonehound")
				.SetNames("arackulele.inscryption.grimoramod_Kennel", "Kennel")
				.SetTraits((Trait)9, (Trait)12)
				.Build();
		}

		private void Add_Card_Obelisk()
		{
			CardBuilder.Builder.SetAbilities((Ability)105).SetBaseAttackAndHealth(0, 3).SetNames("arackulele.inscryption.grimoramod_Obelisk", "Obelisk")
				.SetTraits((Trait)9, (Trait)12)
				.Build();
		}

		private void Add_Card_Shipwreck()
		{
			CardBuilder.Builder.SetAbilities((Ability)15).SetBaseAttackAndHealth(0, 3).SetNames("arackulele.inscryption.grimoramod_Shipwreck", "Shipwreck")
				.SetTraits((Trait)9, (Trait)12)
				.Build();
		}

		private void Add_Card_Shipwreck_Dams()
		{
			CardBuilder.Builder.SetBaseAttackAndHealth(1, 1).SetNames("arackulele.inscryption.grimoramod_Shipwreck_Dams", "Flotsam").SetTraits((Trait)9, (Trait)12)
				.Build();
		}

		private void Add_Card_Urn()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected I4, but got Unknown
			CardBuilder.Builder.SetAbilities((Ability)105, (Ability)(int)NegateFire.ability).SetBaseAttackAndHealth(0, 1).SetNames("arackulele.inscryption.grimoramod_Urn", "Water Urn")
				.SetTraits((Trait)9, (Trait)12)
				.Build();
		}

		private void Add_Card_Voodoo_Doll()
		{
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Expected I4, but got Unknown
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Expected I4, but got Unknown
			CardBuilder.Builder.SetBaseAttackAndHealth(0, 2).SetNames("arackulele.inscryption.grimoramod_Voodoo_Doll", "Voodoo Doll").SetTraits((Trait)9, (Trait)12)
				.SetAbilities((Ability)(int)Haunter.ability, (Ability)(int)InvertedStrike.ability)
				.Build();
		}

		private void Add_Card_TombRobber()
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected I4, but got Unknown
			Sprite pixelPortrait = "TombRobber".GetCardInfo().pixelPortrait;
			CardBuilder.Builder.SetAppearance((Appearance)7).SetAbilities((Ability)(int)ActivatedDrawSkeletonGrimora.ability).SetBaseAttackAndHealth(0, 2)
				.SetDescription("NOTHING... NOTHING AGAIN... NO TREASURE IS LEFT ANYMORE.")
				.SetNames("arackulele.inscryption.grimoramod_TombRobber", "Tomb Robber")
				.SetPortraits(AssetUtils.GetPrefab<Sprite>("tomb_robber_new"), AssetUtils.GetPrefab<Sprite>("tomb_robber_emission_new"))
				.Build()
				.pixelPortrait = pixelPortrait;
		}

		private void Add_Card_TwinGiant_Ep