Decompiled source of TVFsStarterDecks v1.0.0

TVFsStarterDecks.dll

Decompiled a day ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using DiskCardGame;
using GBC;
using HarmonyLib;
using InscryptionAPI.Ascension;
using InscryptionAPI.Card;
using InscryptionAPI.Helpers;
using Microsoft.CodeAnalysis;
using UnityEngine;

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

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace TVFsStarterDecks
{
	[BepInPlugin("tvflabs.inscryption.TVFsStarterDecks", "TVFsStarterDecks", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		[HarmonyPatch(typeof(TalkingCardChooser), "Awake")]
		private class TalkingCardChooser_Awake_Patch
		{
			private static bool Prefix(TalkingCardChooser __instance)
			{
				if (SaveFile.IsAscension)
				{
					if ((Object)(object)((SpecialCardBehaviour)__instance).Card != (Object)null && AscensionSaveData.Data != null)
					{
						GameObject val = null;
						if (((Object)((SpecialCardBehaviour)__instance).Card.Info).name.Contains("Stoat"))
						{
							val = (AscensionSaveData.Data.currentStarterDeck.Contains("Run1") ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stoat_P1") : (AscensionSaveData.Data.currentStarterDeck.Contains("Run2") ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stoat_P1") : (AscensionSaveData.Data.currentStarterDeck.Contains("Stinkbug") ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stoat_P2") : (AscensionSaveData.Data.currentStarterDeck.Contains("CagedWolf") ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stoat_P3") : ((!AscensionSaveData.Data.currentStarterDeck.Contains("StuntedWolf")) ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stoat_P1") : Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stoat_P4"))))));
							((SpecialCardBehaviour)__instance).Card.AddPermanentBehaviour<StoatTalkingCard>();
							CardExtensions.SetAnimatedPortrait(((SpecialCardBehaviour)__instance).Card.Info, val);
						}
						else if (((Object)((SpecialCardBehaviour)__instance).Card.Info).name.Contains("Stinkbug"))
						{
							val = (AscensionSaveData.Data.currentStarterDeck.Contains("Stinkbug") ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stinkbug_P1") : (AscensionSaveData.Data.currentStarterDeck.Contains("CagedWolf") ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stinkbug_P2") : ((!AscensionSaveData.Data.currentStarterDeck.Contains("StuntedWolf")) ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stinkbug_P1") : Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Stinkbug_P3"))));
							((SpecialCardBehaviour)__instance).Card.AddPermanentBehaviour<StinkbugTalkingCard>();
							CardExtensions.SetAnimatedPortrait(((SpecialCardBehaviour)__instance).Card.Info, val);
						}
						else if (((Object)((SpecialCardBehaviour)__instance).Card.Info).name.Contains("Wolf"))
						{
							val = ((!AscensionSaveData.Data.currentStarterDeck.Contains("StuntedWolf")) ? Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Wolf_P1") : Resources.Load<GameObject>("prefabs/cards/animatedportraits/TalkingCardPortrait_Wolf_P2"));
							((SpecialCardBehaviour)__instance).Card.AddPermanentBehaviour<WolfTalkingCard>();
							CardExtensions.SetAnimatedPortrait(((SpecialCardBehaviour)__instance).Card.Info, val);
						}
					}
					return false;
				}
				return true;
			}
		}

		[HarmonyPatch(/*Could not decode attribute arguments.*/)]
		private class CardInfo_AnimatedPortrait_Patch
		{
			private static bool Prefix(CardInfo __instance, ref GameObject __result)
			{
				if (SaveFile.IsAscension && (((Object)__instance).name.Contains("Stoat") || ((Object)__instance).name.Contains("Stinkbug") || ((Object)__instance).name.Contains("Wolf")))
				{
					__result = __instance.animatedPortrait;
					return false;
				}
				return true;
			}
		}

		[HarmonyPatch(/*Could not decode attribute arguments.*/)]
		private class StoatTalkingCard_OnDrawnDialogueId_Patch
		{
			private static bool Prefix(StoatTalkingCard __instance, ref string __result)
			{
				if (SaveFile.IsAscension)
				{
					__result = ((TalkingCard)__instance).OnDrawnFallbackDialogueId;
					return false;
				}
				return true;
			}
		}

		[HarmonyPatch(/*Could not decode attribute arguments.*/)]
		private class StinkbugTalkingCard_OnDrawnDialogueId_Patch
		{
			private static bool Prefix(StinkbugTalkingCard __instance, ref string __result)
			{
				if (SaveFile.IsAscension)
				{
					__result = ((TalkingCard)__instance).OnDrawnFallbackDialogueId;
					return false;
				}
				return true;
			}
		}

		[HarmonyPatch(/*Could not decode attribute arguments.*/)]
		private class WolfTalkingCard_OnDrawnDialogueId_Patch
		{
			private static bool Prefix(WolfTalkingCard __instance, ref string __result)
			{
				if (SaveFile.IsAscension)
				{
					__result = ((TalkingCard)__instance).OnDrawnFallbackDialogueId;
					return false;
				}
				return true;
			}
		}

		[HarmonyPatch(typeof(TalkingCard), "Start")]
		private class TalkingCard_Start_Patch
		{
			private static bool Prefix(TalkingCard __instance)
			{
				if (((SpecialCardBehaviour)__instance).Card is PixelPlayableCard || ((SpecialCardBehaviour)__instance).Card is PixelSelectableCard)
				{
					((SpecialCardBehaviour)__instance).Card.RenderCard();
					return false;
				}
				return true;
			}
		}

		[HarmonyPatch(typeof(CagedWolf), "BreakCage")]
		private class CagedWolf_BreakCage_Patch
		{
			private static IEnumerator Postfix(IEnumerator values, CagedWolf __instance, bool fromBattle)
			{
				if (SaveFile.IsAscension)
				{
					yield return (object)new WaitForSeconds(0.5f);
					AudioController.Instance.PlaySound3D("wolf_cage_break", (MixerGroup)4, ((Component)Singleton<BoardManager>.Instance).transform.position + new Vector3(-1f, 0.5f, 1f), 1f, 0f, (Pitch)null, (Repetition)null, (Randomization)null, (Distortion)null, false);
					Singleton<TableVisualEffectsManager>.Instance.ThumpTable(0.3f);
					yield return (object)new WaitForSeconds(0.5f);
					Singleton<TableVisualEffectsManager>.Instance.ThumpTable(0.1f);
					yield return (object)new WaitForSeconds(0.25f);
					Singleton<TableVisualEffectsManager>.Instance.ThumpTable(0.05f);
					if (fromBattle)
					{
						((CardCollectionInfo)RunState.Run.playerDeck).RemoveCard(((Card)((SpecialCardBehaviour)__instance).PlayableCard).Info);
						((CardCollectionInfo)RunState.Run.playerDeck).AddCard(CardLoader.GetCardByName("Wolf"));
						yield return (object)new WaitForSeconds(1f);
						yield return Singleton<BoardManager>.Instance.CreateCardInSlot(CardLoader.GetCardByName("Wolf"), ((SpecialCardBehaviour)__instance).PlayableCard.Slot, 0.15f, true);
					}
					yield return (object)new WaitForSeconds(1f);
				}
				else
				{
					yield return values;
				}
			}
		}

		private Harmony harmony = new Harmony("tvflabs.inscryption.TVFsStarterDecks");

		private const string PluginGuid = "tvflabs.inscryption.TVFsStarterDecks";

		private const string PluginName = "TVFsStarterDecks";

		private const string PluginVersion = "1.0.0";

		private const string PluginPrefix = "TVFsStarterDecks";

		private void Awake()
		{
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Loaded TVFsStarterDecks!");
			harmony.PatchAll();
			CardManager.ModifyCardList += delegate(List<CardInfo> list)
			{
				List<CardInfo> list2 = new List<CardInfo>(list);
				for (int i = 0; i < list2.Count; i++)
				{
					if (((Object)list2[i]).name == "Stoat_Talking")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_stoat_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "Stinkbug_Talking")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_stinkbug_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "Wolf_Talking")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_stuntedwolf_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "CagedWolf")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_cagedwolf_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "Cockroach")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_cockroach_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "Vulture")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_turkeyvulture_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "Skink")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_skink_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "Bee")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_bee_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "AquaSquirrel")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_aquasquirrel_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "PeltHare")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_rabbitpelt_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "PeltWolf")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_wolfpelt_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
					else if (((Object)list2[i]).name == "PeltGolden")
					{
						CardExtensions.SetPixelPortrait(list2[i], TextureHelper.GetImageAsSprite("tvf_goldenpelt_pixelportrait.png", (SpriteType)1, (FilterMode)0));
					}
				}
				return list2;
			};
			CardInfo val = CardManager.New("TVFsStarterDecks", "ReginaldDeathcard", "Reginald", 1, 3, (string)null);
			CardExtensions.AddAbilities(val, (Ability[])(object)new Ability[1] { (Ability)4 });
			CardExtensions.SetSpecialAbilities(val, Array.Empty<SpecialTriggeredAbility>());
			CardExtensions.SetBonesCost(val, (int?)3);
			CardExtensions.SetPixelPortrait(val, "tvf_reginald_pixelportrait.png");
			CardExtensions.SetPortraitAndEmission(val, "tvf_reginald_portrait.png", "tvf_reginald_portrait_e.png");
			CardExtensions.SetCardTemple(val, (CardTemple)0);
			CardExtensions.AddTraits(val, (Trait[])(object)new Trait[1] { (Trait)21 });
			CardExtensions.SetOnePerDeck(val, true);
			CardManager.Add("TVFsStarterDecks", val);
			CardInfo val2 = CardManager.New("TVFsStarterDecks", "LouisDeathcard", "Louis", 1, 1, (string)null);
			CardExtensions.AddAbilities(val2, (Ability[])(object)new Ability[2]
			{
				(Ability)3,
				(Ability)13
			});
			CardExtensions.SetBloodCost(val2, (int?)1);
			CardExtensions.SetPixelPortrait(val2, "tvf_louis_pixelportrait.png");
			CardExtensions.SetPortraitAndEmission(val2, "tvf_louis_portrait.png", "tvf_louis_portrait_e.png");
			CardExtensions.SetCardTemple(val2, (CardTemple)0);
			CardExtensions.AddTraits(val2, (Trait[])(object)new Trait[1] { (Trait)21 });
			CardExtensions.SetOnePerDeck(val2, true);
			CardManager.Add("TVFsStarterDecks", val2);
			CardInfo val3 = CardManager.New("TVFsStarterDecks", "KaminskiDeathcard", "Kaminski", 0, 1, (string)null);
			CardExtensions.AddAbilities(val3, (Ability[])(object)new Ability[2]
			{
				(Ability)18,
				(Ability)15
			});
			CardExtensions.SetBonesCost(val3, (int?)1);
			CardExtensions.SetPixelPortrait(val3, "tvf_kaminski_pixelportrait.png");
			CardExtensions.SetPortraitAndEmission(val3, "tvf_kaminski_portrait.png", "tvf_kaminski_portrait_e.png");
			CardExtensions.SetCardTemple(val3, (CardTemple)0);
			CardExtensions.AddTraits(val3, (Trait[])(object)new Trait[1] { (Trait)21 });
			CardExtensions.SetOnePerDeck(val3, true);
			CardManager.Add("TVFsStarterDecks", val3);
			StarterDeckManager.New("tvflabs.inscryption.TVFsStarterDecks", "TrueAnts", "tvf_trueants_deck.png", new string[3] { "Ant", "AntQueen", "AntFlying" }, 0);
			StarterDeckManager.New("tvflabs.inscryption.TVFsStarterDecks", "TrueBones", "tvf_truebones_deck.png", new string[3] { "Cockroach", "Alpha", "Vulture" }, 0);
			StarterDeckManager.New("tvflabs.inscryption.TVFsStarterDecks", "Tentacles", "tvf_tentacles_deck.png", new string[3] { "SquidMirror", "SquidCards", "SquidBell" }, 0);
			StarterDeckManager.New("tvflabs.inscryption.TVFsStarterDecks", "SliderPuzzles", "tvf_sliderpuzzles_deck.png", new string[3] { "Skink", "Ant", "CagedWolf" }, 0);
			StarterDeckManager.New("tvflabs.inscryption.TVFsStarterDecks", "SideDecks", "tvf_sidedecks_deck.png", new string[3] { "Squirrel", "Bee", "AquaSquirrel" }, 0);
			StarterDeckManager.New("tvflabs.inscryption.TVFsStarterDecks", "Deathcards", "tvf_deathcards_deck.png", new string[3] { "TVFsStarterDecks_ReginaldDeathcard", "TVFsStarterDecks_LouisDeathcard", "TVFsStarterDecks_KaminskiDeathcard" }, 0);
			StarterDeckManager.New("tvflabs.inscryption.TVFsStarterDecks", "TalkingCards", "tvf_talkingcards_deck.png", new string[3] { "Stoat_Talking", "Stinkbug_Talking", "Wolf_Talking" }, 0);
			StarterDeckManager.New("tvflabs.inscryption.TVFsStarterDecks", "Pelts", "tvf_pelts_deck.png", new string[3] { "PeltGolden", "PeltWolf", "PeltHare" }, 0);
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "TVFsStarterDecks";

		public const string PLUGIN_NAME = "TVFsStarterDecks";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}