Decompiled source of P03 Expansion Pack 3 v0.2.0

Infiniscryption.P03ExpansionPack3Plugin.dll

Decompiled 9 hours ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using DiskCardGame;
using HarmonyLib;
using Infiniscryption.P03ExpansionPack3.Sigils;
using Infiniscryption.P03KayceeRun.Cards;
using Infiniscryption.P03KayceeRun.Cards.Stickers;
using Infiniscryption.P03KayceeRun.Encounters;
using Infiniscryption.P03KayceeRun.Helpers;
using Infiniscryption.P03KayceeRun.Items;
using Infiniscryption.P03KayceeRun.Patchers;
using Infiniscryption.P03KayceeRun.Quests;
using Infiniscryption.P03KayceeRun.Sequences;
using Infiniscryption.P03SigilLibrary.Sigils;
using Infiniscryption.PackManagement;
using InscryptionAPI.Card;
using InscryptionAPI.Encounters;
using InscryptionAPI.Guid;
using InscryptionAPI.Helpers;
using InscryptionAPI.Helpers.Extensions;
using Pixelplacement;
using UnityEngine;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("Infiniscryption.P03ExpansionPack3Plugin")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("P03 KCM Expansion Pack 3")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Infiniscryption.P03ExpansionPack3Plugin")]
[assembly: AssemblyTitle("Infiniscryption.P03ExpansionPack3Plugin")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Infiniscryption.P03SigilLibrary.Sigils
{
	public class SummonGunbots : AbilityBehaviour
	{
		public override Ability Ability => AbilityID;

		public static Ability AbilityID { get; private set; }

		static SummonGunbots()
		{
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			AbilityInfo val = ScriptableObject.CreateInstance<AbilityInfo>();
			val.rulebookName = "Gunbot Summoner";
			val.rulebookDescription = "When [creature] is played, play a Gunbot in all empty spaces on the board.";
			val.canStack = false;
			val.powerLevel = 3;
			val.opponentUsable = false;
			val.passive = false;
			val.metaCategories = new List<AbilityMetaCategory>
			{
				(AbilityMetaCategory)2,
				(AbilityMetaCategory)0
			};
			AbilityID = AbilityManager.Add("zorro.inscryption.infiniscryption.p03expansionpack3", val, typeof(SummonGunbots), (Texture)(object)TextureHelper.GetImageAsTexture("ability_spawn_gunbots.png", typeof(SummonGunbots).Assembly, (FilterMode)0)).Id;
		}

		public override bool RespondsToResolveOnBoard()
		{
			return true;
		}

		public override IEnumerator OnResolveOnBoard()
		{
			Singleton<ViewManager>.Instance.SwitchToView((View)4, false, false);
			foreach (CardSlot slot in BoardManagerExtensions.GetSlotsCopy(Singleton<BoardManager>.Instance, CardExtensions.IsPlayerCard(((AbilityBehaviour)this).Card)))
			{
				if (!((Object)(object)slot.Card != (Object)null))
				{
					yield return Singleton<BoardManager>.Instance.CreateCardInSlot(CardLoader.GetCardByName("P03KCMXP3_Gunbot"), slot, 0.1f, true);
					yield return (object)new WaitForSeconds(0.25f);
				}
			}
		}
	}
}
namespace Infiniscryption.P03ExpansionPack3
{
	public static class Cards
	{
		public const string BLAST_CARD = "P03KCMXP3_BLAST";

		public static readonly Trait GunbotSwapTrait;

		static Cards()
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Expected I4, but got Unknown
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Expected I4, but got Unknown
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Expected I4, but got Unknown
			//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f9: Expected I4, but got Unknown
			//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cc: Expected I4, but got Unknown
			//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02df: Expected I4, but got Unknown
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0373: Unknown result type (might be due to invalid IL or missing references)
			//IL_038c: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b4: Expected I4, but got Unknown
			//IL_0438: Unknown result type (might be due to invalid IL or missing references)
			//IL_043e: Expected I4, but got Unknown
			//IL_0457: Unknown result type (might be due to invalid IL or missing references)
			//IL_0470: Unknown result type (might be due to invalid IL or missing references)
			//IL_0489: Unknown result type (might be due to invalid IL or missing references)
			//IL_0518: Unknown result type (might be due to invalid IL or missing references)
			//IL_051e: Expected I4, but got Unknown
			//IL_053c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0555: Unknown result type (might be due to invalid IL or missing references)
			//IL_056e: Unknown result type (might be due to invalid IL or missing references)
			//IL_06bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_0715: Unknown result type (might be due to invalid IL or missing references)
			//IL_071b: Expected I4, but got Unknown
			//IL_082b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0844: Unknown result type (might be due to invalid IL or missing references)
			//IL_085d: Unknown result type (might be due to invalid IL or missing references)
			//IL_087f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0885: Expected I4, but got Unknown
			//IL_0887: Unknown result type (might be due to invalid IL or missing references)
			//IL_088d: Expected I4, but got Unknown
			//IL_090e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0927: Unknown result type (might be due to invalid IL or missing references)
			//IL_0940: Unknown result type (might be due to invalid IL or missing references)
			//IL_0972: Unknown result type (might be due to invalid IL or missing references)
			//IL_0978: Expected I4, but got Unknown
			//IL_09ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f3: Expected I4, but got Unknown
			//IL_0a62: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a68: Expected I4, but got Unknown
			//IL_0add: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae3: Expected I4, but got Unknown
			//IL_0b54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b5a: Expected I4, but got Unknown
			//IL_0bd0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd6: Expected I4, but got Unknown
			//IL_0c54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c5a: Expected I4, but got Unknown
			//IL_0c5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c62: Expected I4, but got Unknown
			//IL_0cd7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cdd: Expected I4, but got Unknown
			//IL_0d56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d5c: Expected I4, but got Unknown
			//IL_0dc8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dce: Expected I4, but got Unknown
			//IL_0e3f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e45: Expected I4, but got Unknown
			//IL_0eb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb6: Expected I4, but got Unknown
			//IL_0f21: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f27: Expected I4, but got Unknown
			//IL_0f97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f9d: Expected I4, but got Unknown
			//IL_1003: Unknown result type (might be due to invalid IL or missing references)
			//IL_1009: Expected I4, but got Unknown
			//IL_1016: Unknown result type (might be due to invalid IL or missing references)
			//IL_101c: Expected I4, but got Unknown
			//IL_1087: Unknown result type (might be due to invalid IL or missing references)
			//IL_108d: Expected I4, but got Unknown
			//IL_109a: Unknown result type (might be due to invalid IL or missing references)
			//IL_10a0: Expected I4, but got Unknown
			//IL_1135: Unknown result type (might be due to invalid IL or missing references)
			//IL_113b: Expected I4, but got Unknown
			//IL_11c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_11c6: Expected I4, but got Unknown
			//IL_1259: Unknown result type (might be due to invalid IL or missing references)
			//IL_125f: Expected I4, but got Unknown
			//IL_1299: Unknown result type (might be due to invalid IL or missing references)
			//IL_129f: Expected I4, but got Unknown
			//IL_1306: Unknown result type (might be due to invalid IL or missing references)
			//IL_1377: Unknown result type (might be due to invalid IL or missing references)
			//IL_137d: Expected I4, but got Unknown
			//IL_13f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_13fc: Expected I4, but got Unknown
			//IL_147f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1485: Expected I4, but got Unknown
			//IL_1510: Unknown result type (might be due to invalid IL or missing references)
			//IL_1516: Expected I4, but got Unknown
			//IL_1586: Unknown result type (might be due to invalid IL or missing references)
			//IL_158c: Expected I4, but got Unknown
			//IL_16f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_16fa: Expected I4, but got Unknown
			//IL_1766: Unknown result type (might be due to invalid IL or missing references)
			//IL_176c: Expected I4, but got Unknown
			//IL_17d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_17de: Expected I4, but got Unknown
			//IL_183c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1842: Expected I4, but got Unknown
			//IL_18b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_18b7: Expected I4, but got Unknown
			//IL_1998: Unknown result type (might be due to invalid IL or missing references)
			//IL_199e: Expected I4, but got Unknown
			//IL_19a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_19a6: Expected I4, but got Unknown
			//IL_1a1b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a21: Expected I4, but got Unknown
			//IL_1a27: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a2d: Expected I4, but got Unknown
			//IL_1a98: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a9e: Expected I4, but got Unknown
			//IL_1b0e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b14: Expected I4, but got Unknown
			//IL_1b7b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b81: Expected I4, but got Unknown
			//IL_1bf6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bfc: Expected I4, but got Unknown
			//IL_1c8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c90: Expected I4, but got Unknown
			//IL_1d0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d15: Expected I4, but got Unknown
			//IL_1d85: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d8b: Expected I4, but got Unknown
			//IL_1dd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ddf: Expected I4, but got Unknown
			//IL_1e81: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e87: Expected I4, but got Unknown
			//IL_1f06: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f0c: Expected I4, but got Unknown
			GunbotSwapTrait = GuidManager.GetEnumValue<Trait>("zorro.inscryption.infiniscryption.p03expansionpack3", "GunbotSwap");
			CardInfo obj = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Unpacker", "Unpacker", 2, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_unpacker.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			int? num = 6;
			CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj, (int?)0, (int?)0, num, (List<GemType>)null))), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedGainItem.AbilityID });
			CardInfo obj2 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Gunbot", "Gunbot", 2, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_gunbot.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 2;
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj2, (int?)0, (int?)0, num, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)(int)TargetRequired.AbilityID });
			CardInfo obj3 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Kraken", "KR4K3N", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_kraken.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 4;
			CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(obj3, (int?)0, (int?)0, num, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1])), (Ability[])(object)new Ability[1] { (Ability)(int)KrakenTransformer.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "BrainCell", "Brain Cell", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_brain_cell.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)1, (int?)0, (int?)0, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1] { (CardTemple)3 }), (Ability[])(object)new Ability[1] { (Ability)(int)CellGemDraw.AbilityID });
			CustomCards.SetNeutralP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "MuscleDroid", "Muscle Droid", 1, 3, (string)null), TextureHelper.GetImageAsTexture("portrait_muscle_droid.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)1, (int?)0, (int?)0, (List<GemType>)null));
			CardInfo obj4 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Danny", "D.A.N.N.Y.", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_danny.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 4;
			CardExtensions.AddSpecialAbilities(CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj4, (int?)0, (int?)0, num, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)(int)SummonGunbots.AbilityID }), (SpecialTriggeredAbility[])(object)new SpecialTriggeredAbility[1] { (SpecialTriggeredAbility)(int)SwapWithGunbot.ID });
			CardInfo obj5 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "ButaneCaster", "Butane Caster", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_butane_caster.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 4;
			CardExtensions.AddAbilities(CustomCards.SetWeaponMesh(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj5, (int?)0, num, (int?)0, (List<GemType>)null)), "p03kcm/prefabs/flamethrower", (Vector3?)new Vector3(0f, 0f, 0f), (Vector3?)new Vector3(0f, 90f, 0f), (Vector3?)new Vector3(0.75f, 0.75f, 0.75f), (bool?)null, (string)null), (Ability[])(object)new Ability[1] { (Ability)(int)ThrowFire.AbilityID });
			CardInfo obj6 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Stimulator", "Automatomaton", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_stimulator.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 3;
			CardInfo val = CustomCards.SetWeaponMesh(CardExtensions.AddAbilities(CardExtensions.SetExtendedProperty(CardExtensions.SetRare(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj6, (int?)0, num, (int?)0, (List<GemType>)null))), "WeaponButtonPusher", (object)true), (Ability[])(object)new Ability[1] { (Ability)(int)ActivateEverything.AbilityID }), "p03kcm/prefabs/FingerGun", (Vector3?)new Vector3(0f, -0.66f, 0f), (Vector3?)new Vector3(0f, 180f, 0f), (Vector3?)new Vector3(0.002f, 0.005f, 0.002f), (bool?)null, (string)null);
			CardInfo obj7 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Stimulator_2", "Automatomatomaton", 1, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_stimulator.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 3;
			CardInfo val2 = CustomCards.SetWeaponMesh(CardExtensions.AddAbilities(CardExtensions.SetExtendedProperty(CardExtensions.SetCost(obj7, (int?)0, num, (int?)0, (List<GemType>)null), "WeaponButtonPusher", (object)true), (Ability[])(object)new Ability[2]
			{
				(Ability)(int)ActivateEverything.AbilityID,
				(Ability)34
			}), "p03kcm/prefabs/FingerGun", (Vector3?)new Vector3(0f, -0.66f, 0f), (Vector3?)new Vector3(0f, 180f, 0f), (Vector3?)new Vector3(0.002f, 0.005f, 0.002f), (bool?)null, (string)null);
			CardExtensions.SetEvolve(val, val2, 1, (IEnumerable<CardModificationInfo>)null);
			CustomEvolveNamingRule.SetCustomEvolutionNameRule(val2, (Func<string, string>)((string c) => c.Substring(0, c.Length - 3) + "tomaton"));
			CustomEvolveNamingRule.SetCustomDevolutionNameRule(val2, (Func<string, string>)((string curName) => curName.Contains("tomatomato") ? curName.Replace("tomatomato", "tomato") : "Demoted Automatomaton"));
			CardInfo obj8 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Robipper", "Robipper", 6, 6, (string)null), TextureHelper.GetImageAsTexture("portrait_roboripper.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 6;
			CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(obj8, (int?)0, (int?)0, num, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1] { (CardTemple)1 })), (Ability[])(object)new Ability[1] { (Ability)35 });
			CardInfo obj9 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Gamer", "GameKid", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_gamer.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 5;
			CardExtensions.AddAbilities(CustomCards.SetWeaponMesh(CardExtensions.SetRare(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj9, (int?)0, (int?)0, num, (List<GemType>)null))), "p03kcm/prefabs/XCom_laserRifle_obj", (Vector3?)new Vector3(0f, -0.66f, 0f), (Vector3?)new Vector3(0f, 0f, 0f), (Vector3?)new Vector3(0.03f, 0.03f, 0.03f), (bool?)null, (string)null), (Ability[])(object)new Ability[2]
			{
				(Ability)74,
				(Ability)(int)ActivatedStrafeSelf.AbilityID
			});
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetGemsCost(CustomCards.AddPart3Decal(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "GreenEnergyBot", "Green Energy Bot", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_battery_mage.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), TextureHelper.GetImageAsTexture("decal_battery_mage.png", typeof(Cards).Assembly, (FilterMode)0)), (GemType[])(object)new GemType[1]), (CardTemple[])(object)new CardTemple[1] { (CardTemple)3 }), (Ability[])(object)new Ability[2]
			{
				(Ability)51,
				(Ability)43
			});
			CardInfo obj10 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "MortarDroid", "Molotov Launcher", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_mortar_droid.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 5;
			CardExtensions.AddAbilities(CustomCards.SetWeaponMesh(FuelExtensions.SetStartingFuel(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj10, (int?)0, num, (int?)0, (List<GemType>)null)), 3), "p03kcm/prefabs/flamethrower", (Vector3?)new Vector3(0f, 0f, 0f), (Vector3?)new Vector3(0f, 90f, 0f), (Vector3?)new Vector3(0.75f, 0.75f, 0.75f), (bool?)null, (string)null), (Ability[])(object)new Ability[2]
			{
				(Ability)(int)MissileStrike.AbilityID,
				(Ability)(int)FireBombWhenFueled.AbilityID
			});
			CardInfo obj11 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "TowTruck", "Tow Truck", 0, 3, (string)null), TextureHelper.GetImageAsTexture("portrait_tow_truck.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 5;
			CardExtensions.AddAbilities(CardExtensions.SetExtendedProperty(CustomCards.SetWeaponMesh(FuelExtensions.SetStartingFuel(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj11, (int?)0, num, (int?)0, (List<GemType>)null)), 2), "p03kcm/prefabs/Item_Hook", (Vector3?)new Vector3(0f, -0.6f, 0.7f), (Vector3?)new Vector3(330f, 0f, 180f), (Vector3?)new Vector3(0.007f, 0.013f, 0.007f), (bool?)true, "metal_object_hit#3"), "WeaponTowHook", (object)true), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedTemporaryControl.AbilityID });
			CardInfo obj12 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "NitrousTanker", "Nitrous Tanker", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_nitrous_dispenser.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 5;
			CardExtensions.AddAbilities(FuelExtensions.SetStartingFuel(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj12, (int?)0, num, (int?)0, (List<GemType>)null)), 2), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedBuffTeam.AbilityID });
			CardInfo obj13 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "BoneMill", "Bone Mill", 0, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_bone_mill.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 2;
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj13, (int?)0, (int?)0, num, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedGainBattery.AbilityID });
			CardInfo obj14 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "BadAss", "B4D A55", 2, 4, (string)null), TextureHelper.GetImageAsTexture("portrait_badass.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 4;
			CardExtensions.AddAbilities(FuelExtensions.SetStartingFuel(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj14, (int?)0, num, (int?)0, (List<GemType>)null)), 3), (Ability[])(object)new Ability[1] { (Ability)(int)FuelRequired.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "MucusLauncher", "Mucus Launcher", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_mucus_launcher.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)1, (int?)0, (int?)0, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1]), (Ability[])(object)new Ability[1] { (Ability)(int)ThrowSlime.AbilityID });
			CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "GeneralGunk", "General Gunk", 2, 4, (string)null), TextureHelper.GetImageAsTexture("portrait_general_gunk.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)2, (int?)0, (int?)0, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1])), (Ability[])(object)new Ability[1] { (Ability)(int)ThrowSlimeAll.AbilityID });
			CardInfo obj15 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Gachabomb", "Gachabomb", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_gachabomb.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 4;
			CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(obj15, (int?)0, (int?)0, num, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1] { (CardTemple)1 })), (Ability[])(object)new Ability[2]
			{
				(Ability)(int)Explodonate.AbilityID,
				(Ability)(int)Lootbox.AbilityID
			});
			CardInfo obj16 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Submariner", "Submariner", 2, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_submariner.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 5;
			CardExtensions.AddAbilities(FuelExtensions.SetStartingFuel(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj16, (int?)0, num, (int?)0, (List<GemType>)null)), 2), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedSubmerge.AbilityID });
			CardInfo obj17 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "RotLatcher", "Rot Latcher", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_rot_latcher.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 2;
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(obj17, (int?)0, num, (int?)0, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1] { (CardTemple)1 }), (Ability[])(object)new Ability[1] { (Ability)(int)LatchStinky.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "TimeLatcher", "Time Latcher", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_time_latcher.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[1] { (GemType)2 }), (CardTemple[])(object)new CardTemple[1] { (CardTemple)1 }), (Ability[])(object)new Ability[1] { (Ability)(int)LatchAnnoying.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Catapult", "Cat-A-Pult", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_catapult.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)1, (int?)0, (int?)0, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1]), (Ability[])(object)new Ability[1] { (Ability)(int)Fling.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Synthesioid", "Synthesioid", 0, 0, (string)null), TextureHelper.GetImageAsTexture("portrait_synthesioid.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)2, (int?)0, (int?)0, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)(int)SacrificeMorsel.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "RemoteDetonator", "Remote Detonator", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_remote_detonator.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)1, (int?)0, (int?)0, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)(int)SacrificeExplode.AbilityID });
			CardInfo val3 = CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Scavenger", "Corpse Looter", 1, 3, (string)null), TextureHelper.GetImageAsTexture("portrait_scavenger.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)3, (int?)0, (int?)0, (List<GemType>)null))), (Ability[])(object)new Ability[1] { (Ability)(int)ScrapSalvage.AbilityID });
			CardInfo val4 = CardExtensions.AddAbilities(CardExtensions.AddAppearances(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Scavenger_2", "Looter Shooter", 1, 4, (string)null), TextureHelper.GetImageAsTexture("portrait_scavenger_2.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)3, (int?)0, (int?)0, (List<GemType>)null), (Appearance[])(object)new Appearance[1] { (Appearance)(int)RareDiscCardAppearance.ID }), (Ability[])(object)new Ability[2]
			{
				(Ability)(int)ScrapSalvage.AbilityID,
				(Ability)24
			});
			CardInfo val5 = CardExtensions.AddAbilities(CardExtensions.AddAppearances(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Scavenger_3", "Super Looter Shooter", 1, 5, (string)null), TextureHelper.GetImageAsTexture("portrait_scavenger_3.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)3, (int?)0, (int?)0, (List<GemType>)null), (Appearance[])(object)new Appearance[1] { (Appearance)(int)RareDiscCardAppearance.ID }), (Ability[])(object)new Ability[3]
			{
				(Ability)(int)ScrapSalvage.AbilityID,
				(Ability)24,
				(Ability)78
			});
			CardExtensions.SetEvolve(val3, val4, 1, (IEnumerable<CardModificationInfo>)null);
			CardExtensions.SetEvolve(val4, val5, 1, (IEnumerable<CardModificationInfo>)null);
			CardExtensions.AddAbilities(CardExtensions.AddSpecialAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "SkinDroid", "Skin Droid", 0, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_skin_droid.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)1, (int?)0, (int?)0, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1] { (CardTemple)1 }), (SpecialTriggeredAbility[])(object)new SpecialTriggeredAbility[1] { (SpecialTriggeredAbility)(int)CopySacrificeIceCube.AbilityID }), (Ability[])(object)new Ability[1] { (Ability)26 });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "EmergenceLatcher", "Emergence Latcher", 2, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_emergence_latcher.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)1, (int?)0, (int?)0, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1] { (CardTemple)1 }), (Ability[])(object)new Ability[1] { (Ability)(int)SacrificeLatch.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetGemsCost(CardExtensions.SetExtendedProperty(CardExtensions.AddAppearances(CardExtensions.AddDecal(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Cottagecog", "Cottagecog", 0, 4, (string)null), TextureHelper.GetImageAsTexture("portrait_cottagecog.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (Texture[])(object)new Texture[2]
			{
				(Texture)TextureHelper.GetImageAsTexture("decal_cottagecog_sapphire.png", typeof(Cards).Assembly, (FilterMode)0),
				(Texture)TextureHelper.GetImageAsTexture("decal_cottagecog_ruby.png", typeof(Cards).Assembly, (FilterMode)0)
			}), (Appearance[])(object)new Appearance[1] { (Appearance)(int)ReplicaAppearanceBehavior.ID }), "ReplicaType", (object)"orange"), (GemType[])(object)new GemType[1] { (GemType)2 }), (CardTemple[])(object)new CardTemple[1] { (CardTemple)3 }), (Ability[])(object)new Ability[1] { (Ability)(int)GemOrangePrinter.AbilityID });
			CardInfo obj18 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "VesselTentacle", "56455353454C", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_vessel_tentacle.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 3;
			CardExtensions.SetStatIcon(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj18, (int?)0, (int?)0, num, (List<GemType>)null)), SideDeckPower.AbilityID);
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Baristabot", "Baristabot", 0, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_baristabot.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[1] { (GemType)1 }), (CardTemple[])(object)new CardTemple[1] { (CardTemple)3 }), (Ability[])(object)new Ability[1] { (Ability)(int)GemBluePurist.AbilityID });
			CardInfo obj19 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "MysteryMachine", "Mystery Machine", 1, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_mystery_machine.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 4;
			CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj19, (int?)0, (int?)0, num, (List<GemType>)null))), (Ability[])(object)new Ability[2]
			{
				(Ability)31,
				(Ability)(int)RandomRareAbility.AbilityID
			});
			CardInfo obj20 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "StickerKing", "Sticker King", 2, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_sticker_king.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 4;
			CardExtensions.AddAbilities(CardExtensions.SetExtendedProperty(CardExtensions.SetRare(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj20, (int?)0, (int?)0, num, (List<GemType>)null))), "Stickers.Forced", (object)"Stickers[StickerPositions:sticker_muscles,0.18,-0.35,0.00|sticker_revolver,0.47,-0.39,0.00|sticker_altcat,-0.09,0.00,0.00|sticker_winged_shoes,-0.18,0.13,0.00|sticker_battery,0.14,0.32,0.00|sticker_companion_cube,0.04,0.01,0.00|sticker_binary_ribbon,0.22,0.04,0.00|sticker_annoy_face,0.39,0.00,0.00|sticker_cowboy_hat,0.48,0.01,0.00][StickerRotations:sticker_muscles,0.00,180.00,100.86|sticker_revolver,0.00,180.00,133.56|sticker_battery,0.00,180.00,0][StickerScales:][StickerAbility:]"), (Ability[])(object)new Ability[1] { (Ability)(int)GiveStickers.AbilityID });
			CardManager.ModifyCardList += delegate(List<CardInfo> cards)
			{
				CardInfo val6 = CardExtensions.CardByName((IEnumerable<CardInfo>)cards, "P03KCMXP3_StickerKing");
				CardStickerData stickerData = Stickers.GetStickerData(val6);
				stickerData.FilterToUnlocked();
				if (stickerData.Positions.Count < 3)
				{
					val6.metaCategories.Clear();
				}
				return cards;
			};
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "BoogerBarrel", "Booger Barrel", 2, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_booger_barrel.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)2, (int?)0, (int?)0, (List<GemType>)null), (CardTemple[])(object)new CardTemple[1] { (CardTemple)2 }), (Ability[])(object)new Ability[1] { (Ability)(int)SacrificeSlime.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Artificer", "Artificer", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_artificer.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[2]
			{
				(GemType)1,
				(GemType)2
			}), (CardTemple[])(object)new CardTemple[1] { (CardTemple)3 }), (Ability[])(object)new Ability[1] { (Ability)(int)DrawThreeCommand.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "GearShifter", "Gear Shifter", 1, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_gear_shifter.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[2]
			{
				(GemType)2,
				default(GemType)
			}), (CardTemple[])(object)new CardTemple[1] { (CardTemple)3 }), (Ability[])(object)new Ability[1] { (Ability)102 });
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetGemsCost(CardExtensions.SetAltPortrait(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Shrinker", "Shrinker", 2, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_shrinker.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), TextureHelper.GetImageAsTexture("portrait_shrinker_swap.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[2]
			{
				default(GemType),
				(GemType)1
			})), (Ability[])(object)new Ability[1] { (Ability)72 });
			CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetNeutralP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "MagnusGod", "Time Machine", 0, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_magnus_god.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[3]
			{
				(GemType)1,
				(GemType)2,
				default(GemType)
			}))), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedFutureSight.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "OpenSorcerer", "Open Sorcerer", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_open_sorcerer.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[2]
			{
				(GemType)2,
				default(GemType)
			}), (CardTemple[])(object)new CardTemple[1] { (CardTemple)3 }), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedCopySigils.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Kiln", "Kiln", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_solar_ignitron.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[1] { (GemType)1 }), (CardTemple[])(object)new CardTemple[1] { (CardTemple)1 }), (Ability[])(object)new Ability[1] { (Ability)(int)FriendlyGemRevignite.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "ShieldProjector", "Shield Projector", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_shield_projector.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[1])), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedDrawDefend.AbilityID });
			CardInfo obj21 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "BloodVessel", "Blood Vessel", 0, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_blood_vessel.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 1;
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj21, (int?)0, (int?)0, num, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)(int)FriendliesFullOfBlood.AbilityID });
			CardInfo obj22 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "DredgerVessel", "Dredger Vessel", 0, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_dredger_vessel.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 1;
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj22, (int?)0, (int?)0, num, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)28 });
			CardInfo obj23 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "FuelAttendant", "Fuel Attendant", 0, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_fuel_attendant.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 2;
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj23, (int?)0, num, (int?)0, (List<GemType>)null)), (Ability[])(object)new Ability[2]
			{
				(Ability)(int)MoveBesideAndFuel.AbilityID,
				(Ability)(int)FriendliesStinkyWhenFueled.AbilityID
			});
			CardInfo obj24 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "HotRod", "Hot Rod", 2, 2, (string)null), TextureHelper.GetImageAsTexture("portrait_hot_rod.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 7;
			CardExtensions.AddAbilities(FuelExtensions.SetStartingFuel(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj24, (int?)0, num, (int?)0, (List<GemType>)null)), 0), (Ability[])(object)new Ability[3]
			{
				(Ability)(int)FuelSiphon.AbilityID,
				(Ability)3,
				(Ability)(int)FuelShield.AbilityID
			});
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "BoneCracker", "Bone Cracker", 2, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_bone_cracker.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)1, (int?)0, (int?)0, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)(int)SacrificeQuadrupleBones.AbilityID });
			CardExtensions.AddAbilities(CardExtensions.SetRare(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "BigEffingThing", "Hivemind", 4, 4, (string)null), TextureHelper.GetImageAsTexture("portrait_big_blood_card.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (int?)5, (int?)0, (int?)0, (List<GemType>)null))), (Ability[])(object)new Ability[1] { (Ability)(int)AllControl.AbilityID });
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetGemsCost(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Ramshackle", "Ramshackle", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_ramshackle.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (GemType[])(object)new GemType[2]
			{
				default(GemType),
				(GemType)1
			})), (Ability[])(object)new Ability[2]
			{
				(Ability)41,
				(Ability)(int)EmeraldShard.AbilityID
			});
			CardInfo obj25 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Engine", "N-GINN", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_engine.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 2;
			CardExtensions.AddAbilities(FuelExtensions.SetStartingFuel(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj25, (int?)0, num, (int?)0, (List<GemType>)null)), 4), (Ability[])(object)new Ability[1] { (Ability)(int)ActivatedStrafe.AbilityID });
			CardInfo obj26 = CustomCards.AddPart3Decal(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Iterator", "Iterator", 1, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_iterator.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), TextureHelper.GetImageAsTexture("decal_iterator.png", typeof(Cards).Assembly, (FilterMode)0));
			num = 3;
			CardExtensions.AddAbilities(CustomCards.SetNeutralP03Card(CardExtensions.SetCost(obj26, (int?)0, (int?)0, num, (List<GemType>)null)), (Ability[])(object)new Ability[1] { (Ability)(int)DrawCopyAltCost.AbilityID });
			CardInfo obj27 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "GasGenerator", "Gas Generator", 0, 3, (string)null), TextureHelper.GetImageAsTexture("portrait_gas_generator.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 2;
			CardExtensions.AddAbilities(CustomCards.SetRegionalP03Card(FuelExtensions.SetStartingFuel(CardExtensions.SetCost(obj27, (int?)0, num, (int?)0, (List<GemType>)null), 3), (CardTemple[])(object)new CardTemple[1] { (CardTemple)2 }), (Ability[])(object)new Ability[1] { (Ability)(int)ConduitNeighborWhenFueled.AbilityID });
			CardInfo obj28 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "GasGenerator_4", "Gas Generator", 0, 3, (string)null), TextureHelper.GetImageAsTexture("portrait_gas_generator.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 2;
			CardExtensions.AddAbilities(FuelExtensions.SetStartingFuel(CardExtensions.SetCost(obj28, (int?)0, num, (int?)0, (List<GemType>)null), 4), (Ability[])(object)new Ability[1] { (Ability)(int)ConduitNeighborWhenFueled.AbilityID });
			CardExtensions.AddAbilities(CardExtensions.AddSpecialAbilities(CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "Technicle", "544543484E49434C45", 0, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_empty_tentacle.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), (SpecialTriggeredAbility[])(object)new SpecialTriggeredAbility[1] { (SpecialTriggeredAbility)(int)TrackKrakenDeaths.ID }), (Ability[])(object)new Ability[1] { (Ability)13 });
			CardInfo obj29 = CardExtensions.SetPortrait(CardManager.New("P03KCMXP3", "UFO_Sniper", "Crypton", 2, 1, (string)null), TextureHelper.GetImageAsTexture("portrait_crypton_fighter.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null);
			num = 4;
			CardExtensions.AddAbilities(CardExtensions.SetCost(obj29, (int?)0, (int?)0, num, (List<GemType>)null), (Ability[])(object)new Ability[1] { (Ability)53 });
			CardInfo obj30 = CardExtensions.SetExtendedProperty(CardExtensions.SetExtendedProperty(CardExtensions.SetExtendedProperty(CardExtensions.SetPortrait(CardExtensions.AddAppearances(CardManager.New("P03KCMXP3", "UFO_Hopper", "UFO", 1, 2, (string)null), (Appearance[])(object)new Appearance[1] { (Appearance)(int)OnboardDynamicHoloPortrait.ID }), TextureHelper.GetImageAsTexture("portrait_ufo.png", typeof(Cards).Assembly, (FilterMode)0), (FilterMode?)null), "HoloPortrait.PrefabKey", (object)"p03kcm/prefabs/UFO"), "HoloPortrait.Transform.LocalScale", (object)".1,.1,.1"), "HoloPortrait.Transform.LocalPosition", (object)"0,-1.5,0");
			num = 4;
			CardExtensions.AddAbilities(CardExtensions.SetCost(obj30, (int?)0, (int?)0, num, (List<GemType>)null), (Ability[])(object)new Ability[1] { (Ability)(int)Hopper.AbilityID });
			AbilityManager.ModifyAbilityList += delegate(List<FullAbility> abilities)
			{
				if (!P03AscensionSaveData.IsP03Run)
				{
					return abilities;
				}
				AbilityExtensions.AddMetaCategories(AbilityExtensions.AbilityByID((IEnumerable<FullAbility>)abilities, (Ability)28).Info, (AbilityMetaCategory[])(object)new AbilityMetaCategory[1] { (AbilityMetaCategory)3 });
				AbilityExtensions.AddMetaCategories(AbilityExtensions.AbilityByID((IEnumerable<FullAbility>)abilities, (Ability)12).Info, (AbilityMetaCategory[])(object)new AbilityMetaCategory[1] { (AbilityMetaCategory)3 });
				AbilityExtensions.AddMetaCategories(AbilityExtensions.AbilityByID((IEnumerable<FullAbility>)abilities, (Ability)101).Info, (AbilityMetaCategory[])(object)new AbilityMetaCategory[1] { (AbilityMetaCategory)3 });
				return abilities;
			};
		}
	}
	public static class Pack3EncounterHelper
	{
		internal static EncounterBlueprintData UFOBattle;

		internal static void BuildEncounters()
		{
			UFOBattle = EncounterManager.New("P03KCMXP3_UFOBattle", false);
			EncounterExtensions.SetDifficulty<EncounterBlueprintData>(UFOBattle, 0, 6);
			UFOBattle.turns = new List<List<CardBlueprint>>();
			EncounterExtensions.AddTurn(UFOBattle.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_UFO_Hopper", (string)null, 0, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(UFOBattle.turns, Array.Empty<IEnumerable<CardBlueprint>>());
			EncounterExtensions.AddTurn(UFOBattle.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_UFO_Hopper", (string)null, 0, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(UFOBattle.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_UFO_Sniper", (string)null, 0, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(UFOBattle.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_UFO_Hopper", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("P03KCMXP3_UFO_Hopper", (string)null, 0, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(UFOBattle.turns, Array.Empty<IEnumerable<CardBlueprint>>());
			EncounterExtensions.AddTurn(UFOBattle.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_UFO_Hopper", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("P03KCMXP3_UFO_Sniper", (string)null, 0, 0, 0, (Ability?)null)
			});
			MultiverseEncounters.ContinueOn(UFOBattle, new string[3] { "P03KCMXP3_UFO_Hopper", "P03KCMXP3_UFO_Sniper", null });
			EncounterBlueprintData val = EncounterManager.New("P03KCMXP3_Synths", true);
			EncounterExtensions.SetP03Encounter(EncounterExtensions.SetDifficulty<EncounterBlueprintData>(val, 0, 6), (CardTemple?)(CardTemple)1);
			val.turns = new List<List<CardBlueprint>>();
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("Automaton", "P03KCMXP1_AmmoBot", 3, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("EmptyVessel_GreenGem", (string)null, 3, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[3]
			{
				EncounterHelper.Enemy((string)null, "EmptyVessel_GreenGem", 3, 0, 3, (Ability?)null),
				EncounterHelper.Enemy("P03KCMXP1_ConveyorLatcher", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP1_ConveyorLatcher", 2, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_Synthesioid", (string)null, 0, 0, 4, (Ability?)null) });
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("EmptyVessel_GreenGem", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP1_CopyPasta", 5, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[3]
			{
				EncounterHelper.Enemy((string)null, "P03KCMXP2_EmeraldGuardian", 3, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("Automaton", "Insectodrone", 1, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("P03KCMXP1_FlyingLatcher", (string)null, 0, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_Synthesioid", (string)null, 0, 0, 4, (Ability?)null) });
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("EmptyVessel_GreenGem", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP1_CopyPasta", 6, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[3]
			{
				EncounterHelper.Enemy("Automaton", "Insectodrone", 2, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("P03KCMXP3_RotLatcher", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP3_RotLatcher", 3, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_Synthesioid", (string)null, 0, 0, 4, (Ability?)null) });
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("EmptyVessel_GreenGem", (string)null, 0, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[3]
			{
				EncounterHelper.Enemy("Automaton", "Insectodrone", 1, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("P03KCMXP3_RotLatcher", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP3_RotLatcher", 2, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_Synthesioid", (string)null, 0, 0, 3, (Ability?)null) });
			EncounterBlueprintData val2 = EncounterManager.New("P03KCMXP3_Gems", true);
			EncounterExtensions.SetP03Encounter(EncounterExtensions.SetDifficulty<EncounterBlueprintData>(val2, 0, 6), (CardTemple?)(CardTemple)3);
			val2.turns = new List<List<CardBlueprint>>();
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_Ramshackle", (string)null, 0, 0, 2, (Ability?)(Ability)40) });
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_TimeLatcher", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "EmptyVessel_OrangeGem", 1, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_GearShifter", (string)null, 0, 0, 4, (Ability?)null),
				EncounterHelper.Enemy((string)null, "EmptyVessel_OrangeGem", 3, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_TimeLatcher", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP3_TimeLatcher", 2, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_Shrinker", "P03KCMXP3_MagnusGod", 6, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_Ramshackle", (string)null, 0, 0, 2, (Ability?)(Ability)40),
				EncounterHelper.Enemy((string)null, "EmptyVessel_OrangeGem", 1, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_Kiln", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "EmptyVessel_OrangeGem", 4, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[3]
			{
				EncounterHelper.Enemy("P03KCMXP3_TimeLatcher", "P03KCMXP3_GearShifter", 4, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP3_MagnusGod", 5, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "EmptyVessel_OrangeGem", 3, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_Ramshackle", (string)null, 0, 0, 2, (Ability?)(Ability)40) });
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_Kiln", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "EmptyVessel_OrangeGem", 4, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_TimeLatcher", "P03KCMXP3_GearShifter", 3, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "EmptyVessel_OrangeGem", 1, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_Ramshackle", (string)null, 0, 0, 2, (Ability?)(Ability)40) });
			EncounterExtensions.AddTurn(val2.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_Kiln", (string)null, 0, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "EmptyVessel_OrangeGem", 4, 0, 0, (Ability?)null)
			});
			EncounterBlueprintData val3 = EncounterManager.New("P03KCMXP3_FuelConduits", true);
			EncounterExtensions.SetP03Encounter(EncounterExtensions.SetDifficulty<EncounterBlueprintData>(val3, 0, 6), (CardTemple?)(CardTemple)2);
			val3.turns = new List<List<CardBlueprint>>();
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03SIG_UrchinCell", "CellTri", 4, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_GasGenerator", "P03KCMXP3_GasGenerator_4", 3, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP3_FuelAttendant", 2, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy((string)null, "P03SIG_UrchinCell", 1, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("P03KCMXP1_FrankenBot", "P03KCMXP1_FrankenBeast", 4, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy((string)null, "P03KCMXP3_FuelAttendant", 2, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03SIG_UrchinCell", "CellGift", 3, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP3_NitrousTanker", 6, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy((string)null, "P03KCMXP3_NitrousTanker", 5, 0, 0, (Ability?)null),
				EncounterHelper.Enemy("CellBuff", (string)null, 0, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy((string)null, "P03KCMXP3_GasGenerator_4", 2, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP1_FrankenBot", "P03KCMXP1_FrankenBeast", 4, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("CellTri", (string)null, 0, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy((string)null, "CellGift", 3, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP1_FrankenBot", "P03KCMXP1_FrankenBeast", 5, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val3.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("CellTri", (string)null, 0, 0, 0, (Ability?)null) });
			EncounterBlueprintData val4 = EncounterManager.New("P03KCMXP3_Slime", true);
			EncounterExtensions.SetP03Encounter(EncounterExtensions.SetDifficulty<EncounterBlueprintData>(val4, 0, 6), (CardTemple?)(CardTemple)0);
			val4.turns = new List<List<CardBlueprint>>();
			EncounterExtensions.AddTurn(val4.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_MucusLauncher", (string)null, 0, 0, 4, (Ability?)(Ability)83) });
			EncounterExtensions.AddTurn(val4.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("LeapBot", "P03KCM_FIREWALL", 3, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val4.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("LeapBot", "Insectodrone", 1, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val4.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy((string)null, "P03KCMXP3_MysteryMachine", 6, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val4.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy((string)null, "P03KCMXP3_MucusLauncher", 3, 0, 4, (Ability?)(Ability)83),
				EncounterHelper.Enemy("LeapBot", "P03KCMXP2_RobotRam", 1, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val4.turns, new IEnumerable<CardBlueprint>[2]
			{
				EncounterHelper.Enemy("P03KCMXP3_MucusLauncher", (string)null, 3, 0, 0, (Ability?)null),
				EncounterHelper.Enemy((string)null, "P03KCMXP3_MysteryMachine", 5, 0, 0, (Ability?)null)
			});
			EncounterExtensions.AddTurn(val4.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy((string)null, "P03KCMXP2_RobotRam", 2, 0, 0, (Ability?)null) });
			EncounterExtensions.AddTurn(val4.turns, Array.Empty<IEnumerable<CardBlueprint>>());
			EncounterExtensions.AddTurn(val4.turns, new IEnumerable<CardBlueprint>[1] { EncounterHelper.Enemy("P03KCMXP3_MucusLauncher", (string)null, 0, 0, 0, (Ability?)null) });
		}
	}
	[BepInPlugin("zorro.inscryption.infiniscryption.p03expansionpack3", "Infiniscryption P03 in Kaycee's Mod - Expansion Pack 3", "1.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class P03Pack3Plugin : BaseUnityPlugin
	{
		public const string PluginGuid = "zorro.inscryption.infiniscryption.p03expansionpack3";

		public const string PluginName = "Infiniscryption P03 in Kaycee's Mod - Expansion Pack 3";

		public const string PluginVersion = "1.0";

		public const string CardPrefix = "P03KCMXP3";

		internal static P03Pack3Plugin Instance;

		internal static ManualLogSource Log;

		internal static bool Initialized;

		private void Awake()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Expected O, but got Unknown
			Instance = this;
			Log = ((BaseUnityPlugin)this).Logger;
			Harmony val = new Harmony("zorro.inscryption.infiniscryption.p03expansionpack3");
			val.PatchAll();
			Type[] types = typeof(P03Pack3Plugin).Assembly.GetTypes();
			foreach (Type type in types)
			{
				try
				{
					RuntimeHelpers.RunClassConstructor(type.TypeHandle);
				}
				catch (TypeLoadException ex)
				{
					Log.LogWarning((object)"Failed to force load static constructor!");
					Log.LogWarning((object)ex);
				}
			}
			DialogueManagement.AddSequenceDialogue(DataHelper.GetResourceString("dialogue_database", "csv", typeof(P03Pack3Plugin).Assembly));
			Pack3EncounterHelper.BuildEncounters();
			Pack3Quests.CreatePack3Quests();
			PackInfo packInfo = PackManager.GetPackInfo("P03KCMXP3");
			((PackInfoBase)packInfo).Title = "Kaycee's P03 Expansion Pack #3";
			((PackInfoBase)packInfo).Description = "They said it would never happen, but it's here! The third official expansion pack breaks all of the rules, with [count] new cards that bring bones, blood, and gems to Botopia!";
			((PackInfoBase)packInfo).ValidFor.Clear();
			((PackInfoBase)packInfo).ValidFor.Add((PackMetacategory)1);
			((PackInfoBase)packInfo).SetTexture(TextureHelper.GetImageAsTexture("pack.png", typeof(P03Pack3Plugin).Assembly, (FilterMode)0));
			EncounterPackInfo packInfo2 = PackManager.GetPackInfo<EncounterPackInfo>("P03KCMXP3");
			((PackInfoBase)packInfo2).Title = "Kaycee's P03 Encounter Expansion #3";
			((PackInfoBase)packInfo2).Description = "[count] additional encounters that feature cards from the third official P03 expansion pack.";
			((PackInfoBase)packInfo2).ValidFor.Clear();
			((PackInfoBase)packInfo2).ValidFor.Add((PackMetacategory)1);
			((PackInfoBase)packInfo2).SetTexture(TextureHelper.GetImageAsTexture("encounters.png", typeof(P03Pack3Plugin).Assembly, (FilterMode)0));
			Initialized = true;
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Infiniscryption P03 in Kaycee's Mod - Expansion Pack 3 is loaded!");
		}

		private void OnDestroy()
		{
		}

		public void OnSceneLoaded(Scene scene, LoadSceneMode mode)
		{
			CardManager.SyncCardList();
			AbilityManager.SyncAbilityList();
			EncounterManager.SyncEncounterList();
		}
	}
	[HarmonyPatch]
	internal static class Pack3Quests
	{
		public class UFOBossOpponent : Part3BossOpponent
		{
			public override string PreIntroDialogueId => string.Empty;

			public override string PostDefeatedDialogueId => string.Empty;

			public override IEnumerator DefeatedPlayerSequence()
			{
				UfoQuest.CurrentState.Status = (QuestStateStatus)3;
				yield break;
			}

			public override IEnumerator PreDefeatedSequence()
			{
				UfoQuest.CurrentState.Status = (QuestStateStatus)2;
				yield break;
			}
		}

		public class UfoBattleSequencer : BossBattleSequencer
		{
			public override Type BossType => BossManagement.DredgerOpponent;

			public override StoryEvent DefeatedStoryEvent => GuidManager.GetEnumValue<StoryEvent>("zorro.inscryption.infiniscryption.p03expansionpack3", "DefeatedUFO");

			public override EncounterData BuildCustomEncounter(CardBattleNodeData nodeData)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0011: Unknown result type (might be due to invalid IL or missing references)
				//IL_0024: Expected O, but got Unknown
				return new EncounterData
				{
					opponentType = UfoOpponent,
					opponentTurnPlan = EncounterBuilder.BuildOpponentTurnPlan(Pack3EncounterHelper.UFOBattle, 1, false)
				};
			}
		}

		internal static QuestDefinition KrakenLord { get; private set; }

		internal static QuestDefinition UfoQuest { get; private set; }

		internal static Type UfoOpponent { get; private set; }

		internal static bool Pack3QuestsActive()
		{
			return PackManager.GetActivePacks<PackInfo>().Any((PackInfo pi) => pi != null && !string.IsNullOrEmpty(((PackInfoBase)pi).ModPrefix) && ((PackInfoBase)pi).ModPrefix.Equals("P03KCMXP3"));
		}

		[HarmonyPatch(/*Could not decode attribute arguments.*/)]
		[HarmonyPrefix]
		private static bool StartingLivesForUFO(Part3BossOpponent __instance, ref int __result)
		{
			if (__instance is UFOBossOpponent)
			{
				__result = 1;
				return false;
			}
			return true;
		}

		internal static void CreatePack3Quests()
		{
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Expected O, but got Unknown
			KrakenLord = QuestExtensions.SetGenerateCondition(QuestManager.Add("zorro.inscryption.infiniscryption.p03expansionpack3", "KrakenQuest"), (Func<bool>)Pack3QuestsActive);
			QuestExtensions.AddGainCardReward(QuestExtensions.AddDialogueState(QuestExtensions.AddDefaultActiveState(QuestExtensions.AddDialogueState(QuestExtensions.AddDialogueState(KrakenLord, "GLUG GLUG GLUG", "KrakenTransformerQuestIntro"), "FIGHT THE TENTACLES", "KrakenTransformerQuestStart", (QuestStateStatus)2, (string)null), "FIGHT THE TENTACLES", "KrakenTransformerQuestInProgress", 3), "DEATH TO THE TENTACLES", "KrakenTransformerQuestComplete", (QuestStateStatus)2, (string)null), "P03KCMXP3_Kraken");
			UfoQuest = QuestManager.Add("zorro.inscryption.infiniscryption.p03expansionpack3", "UfoBattle");
			UfoOpponent = EncounterExtensions.SetNewSequencer(OpponentManager.Add("zorro.inscryption.infiniscryption.p03expansionpack3", "UFOOpponent", string.Empty, typeof(UFOBossOpponent)), "zorro.inscryption.infiniscryption.p03expansionpack3", "UFOSequencer", typeof(UfoBattleSequencer)).Id;
			CardBattleNodeData val = new CardBattleNodeData
			{
				specialBattleId = BossBattleSequencer.GetSequencerIdForBoss(UfoOpponent),
				difficulty = 1,
				blueprint = Pack3EncounterHelper.UFOBattle
			};
			QuestState val2 = QuestExtensions.AddSpecialNodeState(QuestExtensions.AddDialogueState(QuestExtensions.SetGenerateCondition(UfoQuest, (Func<bool>)Pack3QuestsActive), "WARNING!!!", "UfoQuestStart"), "HERE THEY COME!!!", (NodeData)(object)val);
			QuestExtensions.AddGainItemReward(QuestExtensions.AddDialogueState(val2, "CONGRATULATIONS!!!", "UfoQuestBattleVictory", (QuestStateStatus)2, (string)null), ((Object)UfoItem.ItemData).name);
			QuestExtensions.AddDialogueState(val2, "DISASTER!!!", "UfoQuestBattleLoss", (QuestStateStatus)3, (string)null);
		}

		[HarmonyPatch(typeof(BountyHunterGenerator), "TryAddBountyHunterToTurnPlan")]
		[HarmonyPrefix]
		[HarmonyPriority(700)]
		private static bool AddBountyTargetInstead(List<List<CardInfo>> turnPlan, ref List<List<CardInfo>> __result)
		{
			if (!P03AscensionSaveData.IsP03Run)
			{
				return true;
			}
			if (!QuestExtensions.IsDefaultActive(KrakenLord) || (Part3SaveData.Data.battlesSinceBountyHunter >= 3 && Part3SaveData.Data.BountyTier >= 1))
			{
				return true;
			}
			if (turnPlan == null || turnPlan.Count < 2)
			{
				return true;
			}
			Part3SaveData data = Part3SaveData.Data;
			data.battlesSinceBountyHunter++;
			List<CardInfo> list = turnPlan[1];
			if (list.Count > 0)
			{
				int minLevel = list.Min((CardInfo c) => c.PowerLevel);
				list.Remove(list.First((CardInfo c) => c.PowerLevel == minLevel));
			}
			list.Add(CardLoader.GetCardByName("P03KCMXP3_Technicle"));
			__result = turnPlan;
			return false;
		}
	}
}
namespace Infiniscryption.P03ExpansionPack3.Sigils
{
	public class GiveStickers : AbilityBehaviour
	{
		private int RandomSeed = P03AscensionSaveData.RandomSeed;

		private static readonly Dictionary<Ability, bool> KnownValidAbilities;

		public static Ability AbilityID { get; private set; }

		public override Ability Ability => AbilityID;

		static GiveStickers()
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			KnownValidAbilities = new Dictionary<Ability, bool>();
			AbilityInfo val = ScriptableObject.CreateInstance<AbilityInfo>();
			val.rulebookName = "Sticker Lord";
			val.rulebookDescription = "While [creature] is on the board, all friendly cards get a random sticker.";
			val.canStack = false;
			val.powerLevel = 2;
			val.opponentUsable = true;
			val.passive = false;
			val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)2 };
			AbilityID = AbilityManager.Add("zorro.inscryption.infiniscryption.p03expansionpack3", val, typeof(GiveStickers), (Texture)(object)TextureHelper.GetImageAsTexture("ability_all_randomability.png", typeof(GiveStickers).Assembly, (FilterMode)0)).Id;
		}

		private static bool IsValidAbility(Ability a)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: 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_00a5: Unknown result type (might be due to invalid IL or missing references)
			if (KnownValidAbilities.ContainsKey(a))
			{
				return KnownValidAbilities[a];
			}
			FullAbility val = AbilityExtensions.AbilityByID((IEnumerable<FullAbility>)AbilityManager.AllAbilities, a);
			if (val.Info.passive)
			{
				KnownValidAbilities[a] = true;
				return true;
			}
			bool flag = val.AbilityBehavior.GetMethod("OnResolveOnBoard").DeclaringType == typeof(TriggerReceiver) && val.AbilityBehavior.GetMethod("OnPlayFromHand").DeclaringType == typeof(TriggerReceiver);
			KnownValidAbilities[a] = flag;
			return flag;
		}

		private Ability ChooseAbility(PlayableCard card)
		{
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			List<Ability> learnedAbilities = AbilitiesUtil.GetLearnedAbilities(false, 0, 3, (AbilityMetaCategory)3);
			learnedAbilities.RemoveAll((Ability x) => (int)x == 31 || x == TreeStrafe.AbilityID || card.HasAbility(x) || x == RotatingAlarm.AbilityID || (int)x == 54);
			learnedAbilities.RemoveAll((Ability x) => !IsValidAbility(x));
			learnedAbilities.RemoveAll((Ability x) => string.IsNullOrEmpty(AbilityExtensions.GetExtendedProperty(AbilitiesUtil.GetInfo(x), "AbilityManager.Sticker")));
			return (Ability)((learnedAbilities.Count <= 0) ? 15 : ((int)learnedAbilities[SeededRandom.Range(0, learnedAbilities.Count, RandomSeed++)]));
		}

		private IEnumerator StickerUpCard(PlayableCard otherCard)
		{
			if (!otherCard.temporaryMods.Any((CardModificationInfo m) => !string.IsNullOrEmpty(m.singletonId) && m.singletonId.ToLowerInvariant().StartsWith("sticker")))
			{
				CardModificationInfo mod = new CardModificationInfo(ChooseAbility(otherCard));
				string stickerName = AbilityExtensions.GetExtendedProperty(AbilitiesUtil.GetInfo(mod.abilities[0]), "AbilityManager.Sticker");
				CardStickerData stickerData = new CardStickerData();
				stickerData.Rotations[stickerName] = new Vector3(0f, 180f, 110f + SeededRandom.Value(RandomSeed++) * 20f);
				stickerData.Positions[stickerName] = new Vector3(0.2301786f + SeededRandom.Value(RandomSeed++) / 10f, -0.2767847f + SeededRandom.Value(RandomSeed++) / 10f, 0f);
				stickerData.Ability[stickerName] = mod.abilities[0];
				mod.singletonId = ((object)stickerData).ToString();
				otherCard.AddTemporaryMod(mod);
				otherCard.Status.hiddenAbilities.Add(mod.abilities[0]);
				((Card)otherCard).RenderCard();
				yield return (object)new WaitForEndOfFrame();
			}
		}

		public override bool RespondsToResolveOnBoard()
		{
			return true;
		}

		public override IEnumerator OnResolveOnBoard()
		{
			foreach (CardSlot slot in BoardManagerExtensions.GetSlotsCopy(Singleton<BoardManager>.Instance, CardExtensions.IsPlayerCard(((AbilityBehaviour)this).Card)))
			{
				if ((Object)(object)slot.Card != (Object)null)
				{
					yield return StickerUpCard(slot.Card);
				}
			}
		}

		public override bool RespondsToOtherCardAssignedToSlot(PlayableCard otherCard)
		{
			return CardExtensions.IsPlayerCard(otherCard) == CardExtensions.IsPlayerCard(((AbilityBehaviour)this).Card);
		}

		public override IEnumerator OnOtherCardAssignedToSlot(PlayableCard otherCard)
		{
			yield return StickerUpCard(otherCard);
		}
	}
	public class SwapWithGunbot : SpecialCardBehaviour
	{
		public static readonly SpecialTriggeredAbility ID = SpecialTriggeredAbilityManager.Add("zorro.inscryption.infiniscryption.p03expansionpack3", "DannysSpecialAbility", typeof(SwapWithGunbot)).Id;

		public override bool RespondsToCardGettingAttacked(PlayableCard source)
		{
			return (Object)(object)source == (Object)(object)((SpecialCardBehaviour)this).Card;
		}

		public override IEnumerator OnCardGettingAttacked(PlayableCard card)
		{
			List<CardSlot> slots = BoardManagerExtensions.GetSlotsCopy(Singleton<BoardManager>.Instance, CardExtensions.IsPlayerCard(((SpecialCardBehaviour)this).PlayableCard));
			CardSlot gunbotSlot = ((IEnumerable<CardSlot>)slots).FirstOrDefault((Func<CardSlot, bool>)((CardSlot s) => (Object)(object)s.Card != (Object)null && CardExtensions.HasTrait(s.Card, Cards.GunbotSwapTrait)));
			if ((Object)(object)gunbotSlot != (Object)null)
			{
				((SpecialCardBehaviour)this).Card.Anim.StrongNegationEffect();
				float x = (((Component)gunbotSlot).transform.position.x + ((Component)((SpecialCardBehaviour)this).PlayableCard.Slot).transform.position.x) / 2f;
				float y = ((Component)gunbotSlot.Card).transform.position.y + 0.35f;
				float z = ((Component)gunbotSlot.Card).transform.position.z;
				Tween.Position(((Component)gunbotSlot.Card).transform, new Vector3(x, y, z), 0.3f, 0f, Tween.EaseOut, (LoopType)0, (Action)null, (Action)null, true);
				CardSlot oldSlot = ((SpecialCardBehaviour)this).PlayableCard.Slot;
				yield return Singleton<BoardManager>.Instance.AssignCardToSlot(((SpecialCardBehaviour)this).PlayableCard, gunbotSlot, 0.1f, (Action)null, true);
				yield return Singleton<BoardManager>.Instance.AssignCardToSlot(gunbotSlot.Card, oldSlot, 0.1f, (Action)null, true);
			}
		}
	}
	public class TrackKrakenDeaths : SpecialCardBehaviour
	{
		public static readonly SpecialTriggeredAbility ID = SpecialTriggeredAbilityManager.Add("zorro.inscryption.infiniscryption.p03expansionpack3", "TrackKrakenDeaths", typeof(TrackKrakenDeaths)).Id;

		public override bool RespondsToDie(bool wasSacrifice, PlayableCard killer)
		{
			return QuestExtensions.IsDefaultActive(Pack3Quests.KrakenLord);
		}

		public override IEnumerator OnDie(bool wasSacrifice, PlayableCard killer)
		{
			QuestExtensions.IncrementQuestCounter(Pack3Quests.KrakenLord, 1, false);
			yield break;
		}
	}
}