Decompiled source of All The Sigils v3.0.6
plugins/AllTheSigils.dll
Decompiled 9 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using AllTheSigils.Artwork; using AllTheSigils.Voids_work.Cards; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using DigitalRuby.LightningBolt; using DiskCardGame; using GBC; using HarmonyLib; using InscryptionAPI.Card; using InscryptionAPI.CardCosts; using InscryptionAPI.Guid; using InscryptionAPI.Saves; using InscryptionAPI.Triggers; using Pixelplacement; 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 = "")] [assembly: AssemblyCompany("AllTheSigils")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("A giant custom sigil library.")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("AllTheSigils")] [assembly: AssemblyTitle("AllTheSigils")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace AllTheSigils { [BepInPlugin("ATS", "AllTheSigils", "3.0.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public class TurnIntoChickenOpp : AbilityBehaviour { public static Ability ability; private int lastShotTurn = -1; private PlayableCard lastShotCard; public override Ability Ability => ((AbilityBehaviour)this).Ability; public override int Priority => -1; public override bool RespondsToOtherCardResolve(PlayableCard otherCard) { return RespondsToTrigger(otherCard); } public override IEnumerator OnOtherCardResolve(PlayableCard otherCard) { yield return FireAtOpposingSlot(otherCard); } public override bool RespondsToOtherCardAssignedToSlot(PlayableCard otherCard) { return RespondsToTrigger(otherCard); } public override IEnumerator OnOtherCardAssignedToSlot(PlayableCard otherCard) { yield return FireAtOpposingSlot(otherCard); } private bool RespondsToTrigger(PlayableCard otherCard) { return !((AbilityBehaviour)this).Card.Dead && !otherCard.Dead && (Object)(object)otherCard.Slot == (Object)(object)((AbilityBehaviour)this).Card.Slot.opposingSlot; } private IEnumerator FireAtOpposingSlot(PlayableCard otherCard) { if ((Object)(object)otherCard != (Object)(object)lastShotCard || Singleton<TurnManager>.Instance.TurnNumber != lastShotTurn) { lastShotCard = otherCard; lastShotTurn = Singleton<TurnManager>.Instance.TurnNumber; Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); yield return (object)new WaitForSeconds(0.25f); if ((Object)(object)otherCard != (Object)null && !otherCard.Dead) { CardInfo cardByName = CardLoader.GetCardByName("AP_Chicken"); yield return otherCard.TransformIntoCard(cardByName, (Action)null, (Action)null); } yield return ((AbilityBehaviour)this).LearnAbility(0.5f); Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0; } } } public class TurnIntoChickenLooseCannon : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToTurnEnd(bool playerTurnEnd) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return ((AbilityBehaviour)this).Card.HasAbility(ability); } public override IEnumerator OnTurnEnd(bool playerTurnEnd) { PlayableCard card = ((AbilityBehaviour)this).Card; List<CardSlot> allSlots = Singleton<BoardManager>.Instance.AllSlots; List<PlayableCard> list = new List<PlayableCard>(); for (int i = 0; i < allSlots.Count; i++) { if ((Object)(object)allSlots[i].Card != (Object)null) { list.Add(allSlots[i].Card); } } PlayableCard target = list[Random.Range(0, list.Count)]; Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); ((Card)card).Anim.LightNegationEffect(); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); CardInfo cardByName = CardLoader.GetCardByName("AP_Chicken"); yield return target.TransformIntoCard(cardByName, (Action)null, (Action)null); yield return ((AbilityBehaviour)this).LearnAbility(0.25f); Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0; } } public class TurnIntoChickenEnemyOnly : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToTurnEnd(bool playerTurnEnd) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return ((AbilityBehaviour)this).Card.HasAbility(ability); } public override IEnumerator OnTurnEnd(bool playerTurnEnd) { PlayableCard card = ((AbilityBehaviour)this).Card; List<CardSlot> opponentSlots = Singleton<BoardManager>.Instance.opponentSlots; List<PlayableCard> list = new List<PlayableCard>(); for (int i = 0; i < opponentSlots.Count; i++) { if ((Object)(object)opponentSlots[i].Card != (Object)null) { list.Add(opponentSlots[i].Card); } } PlayableCard target = list[Random.Range(0, list.Count)]; if ((Object)(object)target != (Object)null) { Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); ((Card)card).Anim.LightNegationEffect(); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); CardInfo cardByName = CardLoader.GetCardByName("AP_Chicken"); yield return target.TransformIntoCard(cardByName, (Action)null, (Action)null); yield return ((AbilityBehaviour)this).LearnAbility(0.25f); Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0; } } } public class EatChickens : AbilityBehaviour { public static Ability ability; private CardModificationInfo mod; public override Ability Ability => ability; private void Start() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown mod = new CardModificationInfo(); mod.nonCopyable = true; mod.singletonId = "increaseATKincreaseHealth"; mod.attackAdjustment = 0; mod.healthAdjustment = 0; ((AbilityBehaviour)this).Card.AddTemporaryMod(mod); } public override bool RespondsToTurnEnd(bool playerTurnEnd) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return ((AbilityBehaviour)this).Card.HasAbility(ability); } public override IEnumerator OnTurnEnd(bool playerTurnEnd) { PlayableCard card = ((AbilityBehaviour)this).Card; List<CardSlot> allSlots = Singleton<BoardManager>.Instance.AllSlots; List<PlayableCard> list = new List<PlayableCard>(); for (int i = 0; i < allSlots.Count; i++) { if ((Object)(object)allSlots[i].Card != (Object)null && allSlots[i].Card.HasAbility(JustChicken.ability)) { list.Add(allSlots[i].Card); } } PlayableCard target = list[Random.Range(0, list.Count)]; if ((Object)(object)target != (Object)null) { Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); ((Card)card).Anim.LightNegationEffect(); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); CardModificationInfo obj = mod; obj.attackAdjustment += ((Card)target).Info.Health; CardModificationInfo obj2 = mod; obj2.healthAdjustment += ((Card)target).Info.Attack; ((AbilityBehaviour)this).Card.OnStatsChanged(); target.TakeDamage(1024, card); target.Die(false, card, false); yield return ((AbilityBehaviour)this).LearnAbility(0.25f); Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0; } } } public class JustChicken : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; } public abstract class ActivatedLatch : ActivatedAbilityBehaviour { public static Ability ability; public override Ability Ability => ability; protected abstract Ability LatchAbility { get; } public override IEnumerator Activate() { if (SceneLoader.ActiveSceneName == "Part1_Cabin") { List<CardSlot> validTargets2 = Singleton<BoardManager>.Instance.AllSlotsCopy; validTargets2.RemoveAll((CardSlot x) => (Object)(object)x.Card == (Object)null || x.Card.Dead || CardHasLatchMod(x.Card) || (Object)(object)x.Card == (Object)(object)((AbilityBehaviour)this).Card); if (validTargets2.Count <= 0) { yield break; } Singleton<ViewManager>.Instance.SwitchToView((View)4, false, false); ((Card)((AbilityBehaviour)this).Card).Anim.PlayHitAnimation(); yield return (object)new WaitForSeconds(0.1f); CardAnimationController cardAnim2 = ((Card)((AbilityBehaviour)this).Card).Anim; GameObject LatchPreParent = new GameObject(); ((Object)LatchPreParent).name = "LatchParent"; LatchPreParent.transform.position = ((Component)cardAnim2).transform.position; LatchPreParent.gameObject.transform.parent = ((Component)cardAnim2).transform; Transform Latchparent = LatchPreParent.transform; GameObject claw2 = Object.Instantiate<GameObject>(anthonyClawPrefab, Latchparent); CardSlot selectedSlot2 = null; if (((AbilityBehaviour)this).Card.OpponentCard) { yield return (object)new WaitForSeconds(0.3f); yield return AISelectTarget(validTargets2, delegate(CardSlot s) { selectedSlot2 = s; }); if ((Object)(object)selectedSlot2 != (Object)null && (Object)(object)selectedSlot2.Card != (Object)null) { AimWeaponAnim(((Component)Latchparent).gameObject, ((Component)selectedSlot2).transform.position); yield return (object)new WaitForSeconds(0.3f); } } else { List<CardSlot> allSlotsCopy2 = Singleton<BoardManager>.Instance.AllSlotsCopy; allSlotsCopy2.Remove(((AbilityBehaviour)this).Card.Slot); yield return Singleton<BoardManager>.Instance.ChooseTarget(allSlotsCopy2, validTargets2, (Action<CardSlot>)delegate(CardSlot s) { selectedSlot2 = s; }, (Action<CardSlot>)OnInvalidTarget, (Action<CardSlot>)delegate(CardSlot s) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)s.Card != (Object)null) { AimWeaponAnim(((Component)Latchparent).gameObject, ((Component)s).transform.position); } }, (Func<bool>)null, (CursorType)16); } claw2.SetActive(true); CustomCoroutine.FlickerSequence((Action)delegate { claw2.SetActive(true); }, (Action)delegate { claw2.SetActive(false); }, true, false, 0.05f, 2, (Action)null); if ((Object)(object)selectedSlot2 != (Object)null && (Object)(object)selectedSlot2.Card != (Object)null) { CardModificationInfo cardModificationInfo2 = new CardModificationInfo(LatchAbility); cardModificationInfo2.fromCardMerge = true; cardModificationInfo2.fromLatch = true; if (((Object)((Card)selectedSlot2.Card).Info).name == "!DEATHCARD_BASE") { selectedSlot2.Card.AddTemporaryMod(cardModificationInfo2); } else { object obj = ((Card)selectedSlot2.Card).Info.Clone(); CardInfo targetCardInfo = (CardInfo)((obj is CardInfo) ? obj : null); targetCardInfo.Mods.Add(cardModificationInfo2); ((Card)selectedSlot2.Card).SetInfo(targetCardInfo); } ((Card)selectedSlot2.Card).Anim.PlayTransformAnimation(); OnSuccessfullyLatched(selectedSlot2.Card); yield return (object)new WaitForSeconds(0.75f); yield return ((AbilityBehaviour)this).LearnAbility(0f); } yield break; } List<CardSlot> validTargets = Singleton<BoardManager>.Instance.AllSlotsCopy; validTargets.RemoveAll((CardSlot x) => (Object)(object)x.Card == (Object)null || x.Card.Dead || CardHasLatchMod(x.Card) || (Object)(object)x.Card == (Object)(object)((AbilityBehaviour)this).Card); if (validTargets.Count <= 0) { yield break; } Singleton<ViewManager>.Instance.SwitchToView((View)4, false, false); ((Card)((AbilityBehaviour)this).Card).Anim.PlayHitAnimation(); yield return (object)new WaitForSeconds(0.1f); DiskCardAnimationController cardAnim = default(DiskCardAnimationController); ref DiskCardAnimationController reference = ref cardAnim; CardAnimationController anim = ((Card)((AbilityBehaviour)this).Card).Anim; reference = (DiskCardAnimationController)(object)((anim is DiskCardAnimationController) ? anim : null); GameObject claw = Object.Instantiate<GameObject>(anthonyClawPrefab, ((Component)cardAnim.WeaponParent).transform); CardSlot selectedSlot = null; if (((AbilityBehaviour)this).Card.OpponentCard) { yield return (object)new WaitForSeconds(0.3f); yield return AISelectTarget(validTargets, delegate(CardSlot s) { selectedSlot = s; }); if ((Object)(object)selectedSlot != (Object)null && (Object)(object)selectedSlot.Card != (Object)null) { cardAnim.AimWeaponAnim(((Component)selectedSlot).transform.position); yield return (object)new WaitForSeconds(0.3f); } } else { List<CardSlot> allSlotsCopy = Singleton<BoardManager>.Instance.AllSlotsCopy; allSlotsCopy.Remove(((AbilityBehaviour)this).Card.Slot); yield return Singleton<BoardManager>.Instance.ChooseTarget(allSlotsCopy, validTargets, (Action<CardSlot>)delegate(CardSlot s) { selectedSlot = s; }, (Action<CardSlot>)OnInvalidTarget, (Action<CardSlot>)delegate(CardSlot s) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)s.Card != (Object)null) { cardAnim.AimWeaponAnim(((Component)s).transform.position); } }, (Func<bool>)null, (CursorType)16); } CustomCoroutine.FlickerSequence((Action)delegate { claw.SetActive(true); }, (Action)delegate { claw.SetActive(false); }, true, false, 0.05f, 2, (Action)null); if ((Object)(object)selectedSlot != (Object)null && (Object)(object)selectedSlot.Card != (Object)null) { CardModificationInfo cardModificationInfo = new CardModificationInfo(LatchAbility); cardModificationInfo.fromLatch = true; ((Card)selectedSlot.Card).Anim.ShowLatchAbility(); selectedSlot.Card.AddTemporaryMod(cardModificationInfo); OnSuccessfullyLatched(selectedSlot.Card); yield return (object)new WaitForSeconds(0.75f); yield return ((AbilityBehaviour)this).LearnAbility(0f); } } protected virtual void OnSuccessfullyLatched(PlayableCard target) { } private IEnumerator AISelectTarget(List<CardSlot> validTargets, Action<CardSlot> chosenCallback) { if (validTargets.Count > 0) { bool positiveAbility = AbilitiesUtil.GetInfo(LatchAbility).PositiveEffect; validTargets.Sort((CardSlot a, CardSlot b) => AIEvaluateTarget(b.Card, positiveAbility) - AIEvaluateTarget(a.Card, positiveAbility)); chosenCallback(validTargets[0]); yield return (object)new WaitForSeconds(0.1f); } else { ((Card)((AbilityBehaviour)this).Card).Anim.LightNegationEffect(); yield return (object)new WaitForSeconds(0.2f); } } private int AIEvaluateTarget(PlayableCard card, bool positiveEffect) { int num = card.PowerLevel; if (((Card)card).Info.HasTrait((Trait)12)) { num = 10 * ((!positiveEffect) ? 1 : (-1)); } if (card.OpponentCard == positiveEffect) { num += 1000; } return num; } private void OnInvalidTarget(CardSlot slot) { if ((Object)(object)slot.Card != (Object)null && CardHasLatchMod(slot.Card) && !Singleton<TextDisplayer>.Instance.Displaying) { ((MonoBehaviour)this).StartCoroutine(Singleton<TextDisplayer>.Instance.ShowThenClear("It's already latched...", 2.5f, 0f, (Emotion)2, (LetterAnimation)0, (Speaker)0, (string[])null)); } } private bool CardHasLatchMod(PlayableCard card) { return card.TemporaryMods.Exists((CardModificationInfo m) => m.fromLatch); } } public class ActivatedLatchNanoShield : ActivatedLatch { public new static Ability ability; public override Ability Ability => ability; public override int EnergyCost => 1; public override int BonesCost => 2; protected override Ability LatchAbility => (Ability)54; protected override void OnSuccessfullyLatched(PlayableCard target) { target.ResetShield(); ((Card)((AbilityBehaviour)this).Card).SetCardbackSubmerged(); ((Card)((AbilityBehaviour)this).Card).SetFaceDown(true, false); } public override bool RespondsToUpkeep(bool playerUpkeep) { return ((AbilityBehaviour)this).Card.OpponentCard != playerUpkeep; } public override IEnumerator OnUpkeep(bool playerUpkeep) { Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); yield return (object)new WaitForSeconds(0.15f); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); ((Card)((AbilityBehaviour)this).Card).SetFaceDown(false, false); ((AbilityBehaviour)this).Card.UpdateFaceUpOnBoardEffects(); yield return (object)new WaitForSeconds(0.3f); } } public class ActivatedLatchReach : ActivatedLatch { public new static Ability ability; public override Ability Ability => ability; public override int EnergyCost => 2; protected override Ability LatchAbility => (Ability)23; protected override void OnSuccessfullyLatched(PlayableCard target) { ((Card)((AbilityBehaviour)this).Card).SetCardbackSubmerged(); ((Card)((AbilityBehaviour)this).Card).SetFaceDown(true, false); } public override bool RespondsToUpkeep(bool playerUpkeep) { return ((AbilityBehaviour)this).Card.OpponentCard != playerUpkeep; } public override IEnumerator OnUpkeep(bool playerUpkeep) { Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); yield return (object)new WaitForSeconds(0.15f); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); ((Card)((AbilityBehaviour)this).Card).SetFaceDown(false, false); ((AbilityBehaviour)this).Card.UpdateFaceUpOnBoardEffects(); yield return (object)new WaitForSeconds(0.3f); } } public class ActivatedLatchBrittle : ActivatedLatch { public new static Ability ability; public override Ability Ability => ability; public override int EnergyCost => 1; protected override Ability LatchAbility => (Ability)35; protected override void OnSuccessfullyLatched(PlayableCard target) { ((Card)((AbilityBehaviour)this).Card).SetCardbackSubmerged(); ((Card)((AbilityBehaviour)this).Card).SetFaceDown(true, false); } public override bool RespondsToUpkeep(bool playerUpkeep) { return ((AbilityBehaviour)this).Card.OpponentCard != playerUpkeep; } public override IEnumerator OnUpkeep(bool playerUpkeep) { Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); yield return (object)new WaitForSeconds(0.15f); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); ((Card)((AbilityBehaviour)this).Card).SetFaceDown(false, false); ((AbilityBehaviour)this).Card.UpdateFaceUpOnBoardEffects(); yield return (object)new WaitForSeconds(0.3f); } } public class ActivatedLatchExplodeOnDeath : ActivatedLatch { public new static Ability ability; public override Ability Ability => ability; public override int EnergyCost => 2; protected override Ability LatchAbility => (Ability)52; protected override void OnSuccessfullyLatched(PlayableCard target) { ((Card)((AbilityBehaviour)this).Card).SetCardbackSubmerged(); ((Card)((AbilityBehaviour)this).Card).SetFaceDown(true, false); } public override bool RespondsToUpkeep(bool playerUpkeep) { return ((AbilityBehaviour)this).Card.OpponentCard != playerUpkeep; } public override IEnumerator OnUpkeep(bool playerUpkeep) { Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); yield return (object)new WaitForSeconds(0.15f); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); ((Card)((AbilityBehaviour)this).Card).SetFaceDown(false, false); ((AbilityBehaviour)this).Card.UpdateFaceUpOnBoardEffects(); yield return (object)new WaitForSeconds(0.3f); } } public class IncreasePowerDecreaseHealth : AbilityBehaviour { public static Ability ability; private CardModificationInfo mod; public override Ability Ability => ability; public override bool RespondsToUpkeep(bool playerUpkeep) { return ((AbilityBehaviour)this).Card.OpponentCard != playerUpkeep; } private void Start() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown int health = ((Card)((AbilityBehaviour)this).Card).Info.Health; mod = new CardModificationInfo(); mod.nonCopyable = true; mod.singletonId = "increaseATKtakeDamage"; mod.attackAdjustment = 0; ((AbilityBehaviour)this).Card.AddTemporaryMod(mod); } public override IEnumerator OnUpkeep(bool playerUpkeep) { Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); yield return (object)new WaitForSeconds(0.15f); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); ((AbilityBehaviour)this).Card.TakeDamage(1, (PlayableCard)null); ((Card)((AbilityBehaviour)this).Card).Anim.StrongNegationEffect(); CardModificationInfo obj = mod; obj.attackAdjustment++; ((AbilityBehaviour)this).Card.OnStatsChanged(); yield return (object)new WaitForSeconds(0.25f); yield return ((AbilityBehaviour)this).LearnAbility(0.25f); } } public class DecreasePowerIncreaseHealth : AbilityBehaviour { public static Ability ability; private CardModificationInfo mod; public override Ability Ability => ability; public override bool RespondsToUpkeep(bool playerUpkeep) { return ((AbilityBehaviour)this).Card.OpponentCard != playerUpkeep; } private void Start() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown int health = ((Card)((AbilityBehaviour)this).Card).Info.Health; mod = new CardModificationInfo(); mod.nonCopyable = true; mod.singletonId = "increaseHPdecreaseATK"; mod.healthAdjustment = 0; mod.attackAdjustment = 0; ((AbilityBehaviour)this).Card.AddTemporaryMod(mod); } public override IEnumerator OnUpkeep(bool playerUpkeep) { Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); yield return (object)new WaitForSeconds(0.15f); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); ((Card)((AbilityBehaviour)this).Card).Anim.StrongNegationEffect(); CardModificationInfo obj = mod; obj.healthAdjustment++; CardModificationInfo obj2 = mod; obj2.attackAdjustment--; ((AbilityBehaviour)this).Card.OnStatsChanged(); yield return (object)new WaitForSeconds(0.25f); yield return ((AbilityBehaviour)this).LearnAbility(0.25f); } } public class ChangePortraitWhenMerged : SpecialCardBehaviour { public static SpecialTriggeredAbility ability; public void Update() { if (((SpecialCardBehaviour)this).Card.Info.HasModFromCardMerge() && (Object)(object)((SpecialCardBehaviour)this).Card.RenderInfo.portraitOverride != (Object)(object)((SpecialCardBehaviour)this).Card.Info.alternatePortrait) { ((SpecialCardBehaviour)this).Card.RenderInfo.portraitOverride = ((SpecialCardBehaviour)this).Card.Info.alternatePortrait; ((SpecialCardBehaviour)this).Card.RenderCard(); } } } internal static ConfigEntry<bool> configAcidTrail; internal static ConfigEntry<bool> configAgile; internal static ConfigEntry<bool> configAppetizing; internal static ConfigEntry<bool> configBloodGuzzler; internal static ConfigEntry<bool> configBombardier; internal static ConfigEntry<bool> configBurning; internal static ConfigEntry<bool> configConsumer; internal static ConfigEntry<bool> configCowardly; internal static ConfigEntry<bool> configDeathburst; internal static ConfigEntry<bool> configMultiStrike; internal static ConfigEntry<bool> configDying; internal static ConfigEntry<bool> configRecoil; internal static ConfigEntry<bool> configParalysis; internal static ConfigEntry<bool> configElectric; internal static ConfigEntry<bool> configFamiliar; internal static ConfigEntry<bool> configLeech; internal static ConfigEntry<bool> configPossessor; internal static ConfigEntry<bool> configPrideful; internal static ConfigEntry<bool> configRegen; internal static ConfigEntry<bool> configResistant; internal static ConfigEntry<bool> configSickness; internal static ConfigEntry<bool> configThickShell; internal static ConfigEntry<bool> configThief; internal static ConfigEntry<bool> configToxin; internal static ConfigEntry<bool> configTrample; internal static ConfigEntry<bool> configVicious; internal static ConfigEntry<bool> configHammerBlock; public const string PluginGuid = "ATS"; public const string OldLilyPluginGuid = "org.memez4life.inscryption.customsigils"; public const string OldVoidPluginGuid = "extraVoid.inscryption.voidSigils"; public const string OldAnthonyPluginGuid = "AnthonyPython.inscryption.AnthonysSigils"; public static List<string> OldPluginGuids = new List<string> { "org.memez4life.inscryption.customsigils", "extraVoid.inscryption.voidSigils", "AnthonyPython.inscryption.AnthonysSigils" }; private const string PluginName = "AllTheSigils"; private const string PluginVersion = "3.0.1"; public static string Directory; internal static ManualLogSource Log; public static Dictionary<Ability, Tuple<string, string>> SigilWikiInfos = new Dictionary<Ability, Tuple<string, string>>(); public static Dictionary<Ability, string> NewSigilVersions = new Dictionary<Ability, string>(); public const bool GenerateWiki = false; public static GameObject anthonyClawPrefab; public void AddConfigs() { configAcidTrail = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Acid Trail", true, "Should Leshy have this?"); configAgile = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Agile", true, "Should Leshy have this?"); configBloodGuzzler = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "BloodGuzzler", true, "Should Leshy have this?"); configConsumer = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Consumer", true, "Should Leshy have this?"); configDeathburst = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Deathburst", true, "Should Leshy have this?"); configElectric = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Electric", true, "Should Leshy have this?"); configMultiStrike = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "MultiStrike", true, "Should Leshy have this?"); configFamiliar = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Familiar", true, "Should Leshy have this?"); configLeech = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Leech", true, "Should Leshy have this?"); configPossessor = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Possessor", true, "Should Leshy have this?"); configRegen = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Regen 1", true, "Should Leshy have this?"); configResistant = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Resistant", true, "Should Leshy have this?"); configThickShell = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Thick Shell", true, "Should Leshy have this?"); configThief = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Thief", true, "Should Leshy have this?"); configToxin = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Toxins (all of them)", true, "Should Leshy have this?"); configTrample = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Trample", true, "Should Leshy have this?"); configVicious = ((BaseUnityPlugin)this).Config.Bind<bool>("Good Sigil", "Vicious", true, "Should Leshy have this?"); configAppetizing = ((BaseUnityPlugin)this).Config.Bind<bool>("Bad Sigil", "Appetizing", true, "Should Leshy have this?"); configBurning = ((BaseUnityPlugin)this).Config.Bind<bool>("Bad Sigil", "Burning", true, "Should Leshy have this?"); configCowardly = ((BaseUnityPlugin)this).Config.Bind<bool>("Bad Sigil", "Cowardly", true, "Should Leshy have this?"); configDying = ((BaseUnityPlugin)this).Config.Bind<bool>("Bad Sigil", "Dying", true, "Should Leshy have this?"); configParalysis = ((BaseUnityPlugin)this).Config.Bind<bool>("Bad Sigil", "Paralysis", true, "Should Leshy have this?"); configRecoil = ((BaseUnityPlugin)this).Config.Bind<bool>("Bad Sigil", "Recoil", true, "Should Leshy have this?"); configPrideful = ((BaseUnityPlugin)this).Config.Bind<bool>("Bad Sigil", "Prideful", true, "Should Leshy have this?"); configSickness = ((BaseUnityPlugin)this).Config.Bind<bool>("Bad Sigil", "Sickness", true, "Should Leshy have this?"); configBombardier = ((BaseUnityPlugin)this).Config.Bind<bool>("Chaos Sigil", "Bombardier", true, "Should Leshy have this?"); configHammerBlock = ((BaseUnityPlugin)this).Config.Bind<bool>("Hammer Block", "Pathetic Sacrifice", true, "Should the sigil pathetic sacrifice be invalid for hammering? Due to the intent being it is stuck on your board. default is true."); } private void Awake() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loaded AllTheSigils!"); Log = ((BaseUnityPlugin)this).Logger; AddConfigs(); Harmony val = new Harmony("ATS"); val.PatchAll(); Directory = ((BaseUnityPlugin)this).Info.Location; AddBond(); AddShort(); AddTribe_Attack(); AddTribe_Health(); AddBi_Blood(); AddQuadra_Blood(); AddImbuing(); AddHydra(); AddFight_Activated(); AddPicky(); AddFearful(); AddTwoDeathBones(); AddThreeDeathBones(); AddFiveDeathBones(); AddSixDeathBones(); AddOneSummonBones(); AddTwoSummonBones(); AddThreeSummonBones(); AddHost(); AddSpawner(); AddLauncher(); AddShape_Shifter(); AddDraw_Side_Deck_OnSummon(); AddBait(); AddLinguist(); AddAll_Seeing(); AddBlood_Shifter(); AddAsleep(); AddSong_Of_Sleep(); AddWarper(); AddRushing_March(); AddWild_Hunger(); AddRight_Slash(); AddLeft_Slash(); AddDouble_Slash(); AddPuppets_Gift(); AddInstakill(); Acid_Puddle.AddCard(); Jackalope.AddCard(); AddAbundance(); AddAcidTrail(); AddAntler(); AddAgile(); AddAmbush(); AddBlight(); AddBlindingStrike(); AddBloodGrowth(); AddBloodGuzzler(); AddBodyguard(); AddBombardier(); AddBonePicker(); AddBoneless(); AddBoneShard(); AddBox(); AddBroken(); AddBurning(); AddCaustic(); addCoinFinder(); AddConsumer(); AddCoward(); AddDeadlyWaters(); AddDeathburst(); AddDesperation(); AddDiseaseAbsorbtion(); AddDiveBones(); AddDiveEnergy(); AddDrawBlood(); AddDrawBone(); AddDrawIce(); AddDrawJack(); AddDrawStrafe(); AddDwarf(); AddDying(); AddEletric(); AddEnforcer(); AddEnrage(); AddEntomophage(); AddFamiliar(); AddFireStarter(); AddFishHook(); AddFrightful(); AddGiant(); AddGrazing(); AddGripper(); AddHaste(); AddHasteful(); AddHerd(); AddHighTide(); AddInjured(); AddHourglass(); AddLeech(); AddLeadBones(); AddLeadEnergy(); AddLifeStatsUp(); AddLowTide(); AddFisher(); AddManeuver(); AddMedic(); AddMidas(); AddDoubleAttack(); AddNutritious(); AddOpportunist(); AddParalise(); AddPathetic(); AddPierce(); AddPoisonous(); AddPossessor(); AddPossessorPowerful(); AddMovingPowerUp(); AddPredator(); AddPrideful(); AddProtector(); AddRam(); AddRandomStrafe(); AddBlind(); AddRecoil(); AddRegenFull(); AddRegen1(); AddRegen2(); AddRegen3(); AddRepellant(); AddResistant(); AddRetaliate(); AddSchooling(); AddScissors(); AddSickness(); AddSluggish(); AddStampede(); AddStrongWind(); AddSubmergedAmbush(); AddSwallower(); AddTakeOffBones(); AddTakeOffEnergy(); AddThickShell(); AddThief(); AddToothBargain(); AddToothPuller(); AddToothShard(); AddToxin(); AddToxinStrength(); AddToxinVigor(); AddToxinDeadly(); AddToxinSickly(); AddTrample(); AddTransient(); AddTribalAlly(); AddTribalTutor(); addTurbulentWaters(); AddStrafePowerUp(); AddVicious(); AddWithering(); AddZapper(); AddSticky(); anthonyClawPrefab = ResourceBank.Get<GameObject>("Prefabs/Cards/SpecificCardModels/LatchClaw"); AddActivactedNanoShield(); AddActivactedBrittle(); AddActivactedExplodeOnDeath(); AddActivactedReach(); AddDecreasePowerIncreaseHealth(); AddTransformChickenLooseCannon(); AddTransformChickenEnemyOnly(); AddEatChicken(); AddChicken(); AddChickenCard(); AddMount(); AddParasite(); AddHermit(); AddDraw_Energy(); AddDraw_Mox(); AddDraw_Cost(); AddHyped(); AddResourceful(); AddHoodini(); AddInaccurate(); AddDrunk(); AddUnderdog(); AddHoming(); AddLullaby(); AddNurse(); AddMedical_Aid(); AddSympathetic(); AddArmoured(); AddFrightened(); AddTerrified(); AddAlternating_Scratch(); AddChoreography(); AddChangePortraitWhenMerged(); bool flag = false; AddTemporarySigils(); } public void Start() { ReplaceNewSigilsOnCards(); } public void WriteSigilPartOfTheWikiToFileInPluginDirectory() { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) string text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "Wiki/"); if (!System.IO.Directory.Exists(text)) { System.IO.Directory.CreateDirectory(text); } string text2 = "## Sigils\n\n<details>\n<summary>List of Sigils (Click to Expand)</summary>\n\n|Icon|Sigil Name|Power Level|Description|Notes|\n|-|:-:|:-:|:-:|:-:|"; string text3 = "\n</details>"; string text4 = ""; string text5 = "https://raw.githubusercontent.com/Memez4Life7/AllTheSigils/master/Artwork"; foreach (AbilityInfo allAbilityInfo in AbilityManager.AllAbilityInfos) { string sigilGuid = GetSigilGuid(allAbilityInfo.ability); if (OldPluginGuids.Contains(sigilGuid) || sigilGuid == "ATS") { string text6 = ""; switch (sigilGuid) { case "org.memez4life.inscryption.customsigils": text6 = "Lily/Act1"; break; case "extraVoid.inscryption.voidSigils": text6 = "Void_Merged"; break; case "AnthonyPython.inscryption.AnthonysSigils": text6 = "Anthony"; break; case "ATS": text6 = "ATS/Act1"; break; } string text7 = ""; text7 = ((!SigilWikiInfos.TryGetValue(allAbilityInfo.ability, out var value)) ? (text5 + "/Lily/Act1/placeholder.png") : (text5 + "/" + text6 + "/" + value.Item1 + ".png")); string rulebookName = allAbilityInfo.rulebookName; string text8 = allAbilityInfo.powerLevel.ToString(); string rulebookDescription = allAbilityInfo.rulebookDescription; text4 = text4 + "\n|<img align=\"center\" src=\"" + text7 + "\">|**" + rulebookName + "**|" + text8 + "|" + rulebookDescription + "|" + value.Item2 + "|"; } } string contents = text2 + text4 + "\n" + text3; File.WriteAllText(Path.Combine(text, "wiki.txt"), contents); Log.LogWarning((object)("FINISHED WRITING WIKI TEXT TO:\n" + text + "wiki.txt")); } public void AddTemporarySigils() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) foreach (AbilityInfo allAbilityInfo in AbilityManager.AllAbilityInfos) { string sigilGuid = GetSigilGuid(allAbilityInfo.ability); if (OldPluginGuids.Contains(sigilGuid)) { AbilityInfo val = AbilityManager.New("ATS", allAbilityInfo.rulebookName, allAbilityInfo.rulebookDescription, typeof(EmptySigil), (Texture)(object)GetTextureLily("placeholder")); NewSigilVersions.Add(val.ability, sigilGuid); } } } public void ReplaceNewSigilsOnCards() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) List<CardInfo> allData = ScriptableObjectLoader<CardInfo>.AllData; for (int i = 0; i < allData.Count; i++) { CardInfo val = allData[i]; for (int j = 0; j < val.Abilities.Count; j++) { Ability val2 = val.Abilities[j]; if (NewSigilVersions.ContainsKey(val2)) { allData[i].abilities[j] = GetCustomAbility(NewSigilVersions[val2], AbilitiesUtil.GetInfo(val2).rulebookName); } } } NewSigilVersions.Keys.ToList().ForEach(delegate(Ability x) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) AbilityManager.Remove(x); }); } public string GetSigilGuid(Ability ability) { Dictionary<string, Dictionary<string, object>> dictionary = (Dictionary<string, Dictionary<string, object>>)AccessTools.Field(typeof(ModdedSaveData), "SaveData").GetValue(ModdedSaveManager.SaveData); foreach (KeyValuePair<string, object> item in dictionary["cyantist.inscryption.api"]) { List<string> list = item.Key.Split(new char[1] { '_' }).ToList(); if (list[0] == "Ability" && int.TryParse(((object)(Ability)(ref ability)).ToString(), out var result)) { int num = int.Parse((string)item.Value); if (num == result) { return list[1]; } } } return null; } private void AddDevStuff() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AddDev_Activated(); CardInfo val = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Squirrel"); val.abilities = new List<Ability> { Draw_Cost.ability }; val.baseAttack = 1; CardInfo val2 = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Wolf"); val2.abilities = new List<Ability> { Draw_Mox.ability }; CardInfo val3 = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Mole"); val3.abilities = new List<Ability> { Draw_Energy.ability }; val3.baseAttack = 1; CardInfo val4 = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Wolf_Talking"); val4.abilities = new List<Ability>(); CardInfo val5 = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Grizzly"); val5.abilities = new List<Ability>(); val5.baseAttack = 1; CardInfo val6 = CardExtensions.CardByName((IEnumerable<CardInfo>)CardManager.BaseGameCards, "Stoat"); val6.abilities = new List<Ability>(); } public static Texture2D GetTexture(string path, bool Act2 = false) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown string text = (Act2 ? "Act2" : "Act1"); byte[] array = File.ReadAllBytes(Path.Combine(Path.GetDirectoryName(Directory), "Artwork/", "ATS", text + "/", path + ".png")); Texture2D val = new Texture2D(2, 2); ImageConversion.LoadImage(val, array); ((Texture)val).filterMode = (FilterMode)0; return val; } public static Texture2D GetTextureLily(string path, bool Act2 = false) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown string text = (Act2 ? "Act2" : "Act1"); byte[] array = File.ReadAllBytes(Path.Combine(Path.GetDirectoryName(Directory), "Artwork/", "Lily", text + "/", path + ".png")); Texture2D val = new Texture2D(2, 2); ImageConversion.LoadImage(val, array); ((Texture)val).filterMode = (FilterMode)0; return val; } public static Texture2D GetTextureAnthony(string path) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown byte[] array = File.ReadAllBytes(Path.Combine(Path.GetDirectoryName(Directory), "Artwork/", "Anthony", path + ".png")); Texture2D val = new Texture2D(2, 2); ImageConversion.LoadImage(val, array); ((Texture)val).filterMode = (FilterMode)0; return val; } public static Ability GetCustomAbility(string GUID, string rulebookname) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) return GuidManager.GetEnumValue<Ability>(GUID, rulebookname); } public static void AimWeaponAnim(GameObject TweenObj, Vector3 target) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) Tween.LookAt(TweenObj.transform, target, Vector3.up, 0.075f, 0f, Tween.EaseInOut, (LoopType)0, (Action)null, (Action)null, true); } private void AddActivactedNanoShield() { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Activated Latch Nano Shield", "When activated for a cost of 1 energy / 2 bones will allow the owner to give a creature Nano Shield.", typeof(Bi_Blood), (Texture)(object)GetTextureAnthony("activatedlatch-deathshield")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.activated = true; val.opponentUsable = false; ActivatedLatchNanoShield.ability = val.ability; bool flag = false; } private void AddActivactedBrittle() { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Activated Latch Brittle", "When activated for a cost of 1 energy will allow the owner to give a creature Brittle.", typeof(ActivatedLatchBrittle), (Texture)(object)GetTextureAnthony("activatedlatch-brittle")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.activated = true; val.opponentUsable = false; ActivatedLatchBrittle.ability = val.ability; bool flag = false; } private void AddActivactedExplodeOnDeath() { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Activated Latch Explode On Death", "When activated for a cost of 1 energy will allow the owner to give a creature Explode On Death.", typeof(ActivatedLatchExplodeOnDeath), (Texture)(object)GetTextureAnthony("activatedlatch-explodeondeath")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.activated = true; val.opponentUsable = false; ActivatedLatchExplodeOnDeath.ability = val.ability; bool flag = false; } private void AddActivactedReach() { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Activated Latch Reach", "When activated for a cost of 2 energy will allow the owner to give a creature Reach.", typeof(ActivatedLatchReach), (Texture)(object)GetTextureAnthony("acticatedlatch-Reach")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.activated = true; val.opponentUsable = false; ActivatedLatchReach.ability = val.ability; bool flag = false; } private void AddIncreasePowerDecreaseHealth() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Old Timer", "At the Start of its owner's turn [creature] will gain +1 attack and will take 1 damage.", typeof(IncreasePowerDecreaseHealth), (Texture)(object)GetTextureAnthony("old-timer")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.opponentUsable = true; IncreasePowerDecreaseHealth.ability = val.ability; bool flag = false; } private void AddDecreasePowerIncreaseHealth() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Docile", "At the Start of its owner's turn [creature] will lose -1 attack and will gain +1 health.", typeof(DecreasePowerIncreaseHealth), (Texture)(object)GetTextureAnthony("docile")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.opponentUsable = true; DecreasePowerIncreaseHealth.ability = val.ability; bool flag = false; } private void AddEatChicken() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "To The Slaughter", "At the end of each turn [creature] will eat a random Chicken gaining the same amount of attack as the eaten chicken's health, and gaining the same amount of health as the eaten chicken's attack.", typeof(EatChickens), (Texture)(object)GetTextureAnthony("eatchicken")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.opponentUsable = true; EatChickens.ability = val.ability; bool flag = false; } private void AddChickenCard() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) List<CardMetaCategory> metaCategories = new List<CardMetaCategory>(); List<Appearance> list = new List<Appearance>(); list.Add((Appearance)6); List<Ability> abilities = new List<Ability> { JustChicken.ability }; CardInfo val = ScriptableObject.CreateInstance<CardInfo>(); ((Object)val).name = "Chicken"; val.displayedName = "Chicken"; val.baseAttack = 1; val.baseHealth = 1; val.cost = 0; CardExtensions.SetPortrait(val, GetTextureAnthony("YisusChickenPortrait"), (FilterMode?)null); val.metaCategories = metaCategories; val.appearanceBehaviour = list; val.cardComplexity = (CardComplexity)1; val.abilities = abilities; val.temple = (CardTemple)0; CardManager.Add("AP", val); } private void AddChicken() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Chicken", "[creature] counts as a Chicken.", typeof(JustChicken), (Texture)(object)GetTextureAnthony("chicken")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.opponentUsable = true; JustChicken.ability = val.ability; bool flag = false; } private void AddTransformChickenOpp() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Transform Chicken (Opposing)", "When a creature is played opposing [creature] it will turn into a Chicken. A Chicken is defined as 1 Attack, 1 Health.", typeof(TurnIntoChickenOpp), (Texture)(object)GetTextureAnthony("TransformChick_Sigil")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.opponentUsable = true; TurnIntoChickenOpp.ability = val.ability; bool flag = false; } private void AddTransformChickenLooseCannon() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Transform Chicken (Loose Cannon)", "[creature] will transform a random creature on the board into a Chicken. A Chicken is defined as 1 Attack, 1 Health.", typeof(TurnIntoChickenLooseCannon), (Texture)(object)GetTextureAnthony("TransformChick_Sigil")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.opponentUsable = true; TurnIntoChickenLooseCannon.ability = val.ability; bool flag = false; } private void AddTransformChickenEnemyOnly() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("AnthonyPython.inscryption.AnthonysSigils", "Transform Chicken (Enemy Only)", "[creature] will transform a random creature on the board on the opponent's side into a Chicken. A Chicken is defined as 1 Attack, 1 Health.", typeof(TurnIntoChickenEnemyOnly), (Texture)(object)GetTextureAnthony("TransformChick_Sigil")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureAnthony("placeholder_act2"), (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.canStack = false; val.opponentUsable = true; TurnIntoChickenEnemyOnly.ability = val.ability; bool flag = false; } public void AddAlternating_Scratch() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Alternating Scratch", "When [creature] attacks it will also attack a space adjacent to the attacked slot, the adjacent slot that it will attack will change between left or right at the end of each opponent's turn.", typeof(Alternating_Scratch), (Texture)(object)GetTexture("alternating_scratch")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("alternating_scratch", Act2: true), (FilterMode?)null); val.powerLevel = 4; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Alternating_Scratch.ability = val.ability; bool flag = false; } public void AddArmoured() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Shielded", "When [creature] is dealt damage, the damage dealt is halved, rounded down.", typeof(Armoured), (Texture)(object)GetTexture("shielded")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("shielded", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = true; Armoured.ability = val.ability; bool flag = false; } public void AddChoreography() { //IL_007e: 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) AbilityInfo val = AbilityManager.New("ATS", "Choreography", "On activation [creature] will cycle through: don't move, move left and move right. At the end of the owner's turn [creature] will move in the chosen way.", typeof(Choreography), (Texture)(object)GetTexture("choreo_right")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("choreo_right", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; val.activated = true; Choreography.ability = val.ability; bool flag = false; } public void AddDraw_Cost() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Draw Cost", "When [creature] is played, a random card that has the same cost type as [creature] is created in your hand.", typeof(Draw_Cost), (Texture)(object)GetTexture("draw_cost")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("draw_cost", Act2: true), (FilterMode?)null); val.powerLevel = 4; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Draw_Cost.ability = val.ability; bool flag = false; } public void AddDraw_Energy() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Draw Energy", "When [creature] is played, a random card costing energy is created in your hand.", typeof(Draw_Energy), (Texture)(object)GetTexture("draw_energy")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("draw_energy", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Draw_Energy.ability = val.ability; bool flag = false; } public void AddDraw_Mox() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Draw Mox", "When [creature] is played, a random card costing mox is created in your hand.", typeof(Draw_Mox), (Texture)(object)GetTexture("draw_mox")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("draw_mox", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Draw_Mox.ability = val.ability; bool flag = false; } public void AddDrunk() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Drunk", "[creature] will strike a random one of the opposing spaces to the left and right of the space across from it.", typeof(Drunk), (Texture)(object)GetTexture("drunk")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("drunk", Act2: true), (FilterMode?)null); val.powerLevel = 0; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Drunk.ability = val.ability; bool flag = false; } public void AddFrightened() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Frightened", "When a creature moves into the space opposing [creature], [creature] will move away from that card to a random free adjacent spot, while prioritizing slots without any opposing creatures.", typeof(Frightened), (Texture)(object)GetTexture("frightened")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("frightened", Act2: true), (FilterMode?)null); val.powerLevel = -1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = true; Frightened.ability = val.ability; bool flag = false; } public void AddHermit() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Hermit", "[creature] may be placed on any terrain card. If it is their sigils and stats will be combined, and a name combination will be created.", typeof(Hermit), (Texture)(object)GetTexture("hermit")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("hermit", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Hermit.ability = val.ability; bool flag = false; } public void AddHoming() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Homing", "If the opposing slot is empty, and there is a creature in a neighbouring lane, [creature] will attack that creature instead of attacking the opposing slot.", typeof(Homing), (Texture)(object)GetTexture("homing")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("homing", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Homing.ability = val.ability; bool flag = false; } public void AddHoodini() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Hoodini", "When [creature] is played, it will swap places with the opposing creature.", typeof(Hoodini), (Texture)(object)GetTexture("hoodini")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("hoodini", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = true; Hoodini.ability = val.ability; bool flag = false; } public void AddHyped() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Hyped", "[creature] will attack at the start of the owner's turn in addition to during normal combat.", typeof(Hyped), (Texture)(object)GetTexture("hyped")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("hyped", Act2: true), (FilterMode?)null); val.powerLevel = 0; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = true; Hyped.ability = val.ability; bool flag = false; } public void AddInaccurate() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Inaccurate", "[creature] will strike a random one of the opposing spaces to the left and right of the spaces across from it as well as the space in front of it.", typeof(Inaccurate), (Texture)(object)GetTexture("inaccurate")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("inaccurate", Act2: true), (FilterMode?)null); val.powerLevel = 0; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Inaccurate.ability = val.ability; bool flag = false; } public void AddLullaby() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Lullaby", "When [creature] dies, all opposing creatures gain the asleep sigil.", typeof(Lullaby), (Texture)(object)GetTexture("lullaby")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("lullaby", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Lullaby.ability = val.ability; bool flag = false; } public void AddMedical_Aid() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Medical Aid", "At the end of the opponent's turn, choose a hurt creature on the owner's side to heal for 1.", typeof(Medical_Aid), (Texture)(object)GetTexture("medical_aid")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("medical_aid", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Medical_Aid.ability = val.ability; bool flag = false; } public void AddMount() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Mount", "Cards may be played on top of [creature]. If they are their sigils and stats will be combined, and a name combination will be created.", typeof(Mount), (Texture)(object)GetTexture("mount")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("mount", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Mount.ability = val.ability; bool flag = false; } public void AddNurse() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Nurse", "At the end of the opponent's turn, [creature] will heal any adjacent friendly cards.", typeof(Nurse), (Texture)(object)GetTexture("nurse")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("nurse", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Nurse.ability = val.ability; bool flag = false; } public void AddParasite() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Parasite", "[creature] may be placed on top of any card. If it is their sigils and stats will be combined, and a name combination will be created.", typeof(Parasite), (Texture)(object)GetTexture("parasite")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("parasite", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Parasite.ability = val.ability; bool flag = false; } public void AddResourceful() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Resourceful", "When [creature] is sacrificed, instead of dying, it loses a random sigil. Resourceful will only remove itself when there are no other sigils on the card.", typeof(Resourceful), (Texture)(object)GetTexture("resourceful")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("resourceful", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Resourceful.ability = val.ability; bool flag = false; } public void AddChangePortraitWhenMerged() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) FullSpecialTriggeredAbility val = SpecialTriggeredAbilityManager.Add("ATS", "ChangePortraitWhenMerged", typeof(ChangePortraitWhenMerged)); ChangePortraitWhenMerged.ability = val.Id; } public void AddSympathetic() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Sympathetic", "[creature] will only attack if the opposing creature has more or equal health to it.", typeof(Sympathetic), (Texture)(object)GetTexture("sympathetic")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("sympathetic", Act2: true), (FilterMode?)null); val.powerLevel = -2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = true; Sympathetic.ability = val.ability; bool flag = false; } public void AddTerrified() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Terrified", "When a creature moves into the space opposing [creature], [creature] will move away from that card to a random free adjacent spot while pushing any creatures in it's way, while prioritizing slots without any opposing creatures.", typeof(Terrified), (Texture)(object)GetTexture("terrified")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("terrified", Act2: true), (FilterMode?)null); val.powerLevel = 0; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = true; Terrified.ability = val.ability; bool flag = false; } public void AddUnderdog() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("ATS", "Underdog", "[creature] can only be played when you are losing.", typeof(Underdog), (Texture)(object)GetTexture("underdog")); AbilityExtensions.SetPixelAbilityIcon(val, GetTexture("underdog", Act2: true), (FilterMode?)null); val.powerLevel = -1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Underdog.ability = val.ability; bool flag = false; } public void AddFight_Activated() { //IL_007e: 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) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Charge", "Pay 3 bones to choose an enemy creature that [creature] will strike.", typeof(Fight_Activated), (Texture)(object)GetTextureLily("charge")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("placeholder", Act2: true), (FilterMode?)null); val.powerLevel = 5; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; val.activated = true; Fight_Activated.ability = val.ability; bool flag = false; } public void AddAsleep() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Asleep", "[creature] has 0 attack for as long as it has this sigil, at the start of the player's turn this sigil will be removed from [creature].", typeof(Asleep), (Texture)(object)GetTextureLily("asleep")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("asleep", Act2: true), (FilterMode?)null); val.powerLevel = -1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Asleep.ability = val.ability; bool flag = false; bool flag2 = false; } public void AddDouble_Slash() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Double scratch", "When [creature] attacks it attacks twice and the space right and left of the attacked slot.", typeof(Double_Slash), (Texture)(object)GetTextureLily("double_scratch")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("double_scratch", Act2: true), (FilterMode?)null); val.powerLevel = 6; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Double_Slash.ability = val.ability; bool flag = false; } public void AddLeft_Slash() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Left scratch", "When [creature] attacks it will also attack the space on the left of the attacked slot.", typeof(Left_Slash), (Texture)(object)GetTextureLily("left_scratch")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("left_scratch", Act2: true), (FilterMode?)null); val.powerLevel = 4; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Left_Slash.ability = val.ability; bool flag = false; } public void AddRight_Slash() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Right scratch", "When [creature] attacks it will also attack the space on the right of the attacked slot.", typeof(Right_Slash), (Texture)(object)GetTextureLily("right_scratch")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("right_scratch", Act2: true), (FilterMode?)null); val.powerLevel = 4; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Right_Slash.ability = val.ability; bool flag = false; } public void AddBait() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bait", "When an opposing creature is played and there is no card opposite of [creature], the opposing creature will move to that spot.", typeof(Bait), (Texture)(object)GetTextureLily("bait")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("bait", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = true; Bait.ability = val.ability; bool flag = false; } public void AddBi_Blood() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Noble Sacrifice", "[creature] is counted as 2 blood rather than 1 blood when sacrificed.", typeof(Bi_Blood), (Texture)(object)GetTextureLily("bi_blood")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("bi_blood", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Bi_Blood.ability = val.ability; bool flag = false; } public void AddQuadra_Blood() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Superior Sacrifice", "[creature] is counted as 4 blood rather than 1 blood when sacrificed.", typeof(Quadra_Blood), (Texture)(object)GetTextureLily("quadra_blood")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("quadra_blood", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Quadra_Blood.ability = val.ability; bool flag = false; } public void AddBlood_Shifter() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Blood shifter", "When [creature] kills another card, it will turn into that card.", typeof(Blood_Shifter), (Texture)(object)GetTextureLily("blood_shifter")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("blood_shifter", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = true; Blood_Shifter.ability = val.ability; bool flag = false; } public void AddFiveDeathBones() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bone lord 5", "When [creature] dies, 5 bones are rewarded instead of 1.", typeof(FiveDeathBones), (Texture)(object)GetTextureLily("fivedeathbones")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("fivedeathbones", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; FiveDeathBones.ability = val.ability; bool flag = false; } public void AddOneSummonBones() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bone hoarder 1", "When [creature] is played, 1 bone is rewarded.", typeof(OneSummonBones), (Texture)(object)GetTextureLily("onesummonbone")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("onesummonbone", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; OneSummonBones.ability = val.ability; bool flag = false; } public void AddSixDeathBones() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bone lord 6", "When [creature] dies, 6 bones are rewarded instead of 1.", typeof(SixDeathBones), (Texture)(object)GetTextureLily("sixdeathbones")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("sixdeathbones", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; SixDeathBones.ability = val.ability; bool flag = false; } public void AddThreeDeathBones() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bone prince 3", "When [creature] dies, 3 bones are rewarded instead of 1.", typeof(ThreeDeathBones), (Texture)(object)GetTextureLily("threedeathbones")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("threedeathbones", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; ThreeDeathBones.ability = val.ability; bool flag = false; } public void AddThreeSummonBones() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bone hoarder 3", "When [creature] is played, 3 bones are rewarded.", typeof(ThreeSummonBones), (Texture)(object)GetTextureLily("threesummonbones")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("threesummonbones", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; ThreeSummonBones.ability = val.ability; bool flag = false; } public void AddTwoDeathBones() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bone prince 2", "When [creature] dies, 2 bones are rewarded instead of 1.", typeof(TwoDeathBones), (Texture)(object)GetTextureLily("twodeathbones")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("twodeathbones", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; TwoDeathBones.ability = val.ability; bool flag = false; } public void AddTwoSummonBones() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bone hoarder 2", "When [creature] is played, 2 bones are rewarded.", typeof(TwoSummonBones), (Texture)(object)GetTextureLily("twosummonbones")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("twosummonbones", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; TwoSummonBones.ability = val.ability; bool flag = false; } public void AddHost() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Host", "[creature] is the host of other creatures. It will give you such creature when struck.", typeof(Host), (Texture)(object)GetTextureLily("host")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("host", Act2: true), (FilterMode?)null); val.powerLevel = 5; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Host.ability = val.ability; bool flag = false; } public void AddLauncher() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Launcher", "At the end of its owner's turn, [creature] will create another creature on a random empty space on the owner's side of the table.", typeof(Launcher), (Texture)(object)GetTextureLily("launcher")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("launcher", Act2: true), (FilterMode?)null); val.powerLevel = 5; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Launcher.ability = val.ability; bool flag = false; } public void AddShape_Shifter() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Shapeshifter", "[creature] is ever changing. It will change its form once it's struck.", typeof(Shape_Shifter), (Texture)(object)GetTextureLily("shape_shifter")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("shape_shifter", Act2: true), (FilterMode?)null); val.powerLevel = 5; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Shape_Shifter.ability = val.ability; bool flag = false; } public void AddSpawner() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Spawner", "At the end of its owner's turn, [creature] will move in the direction inscribed on the sigil and will create another creature in its old space.", typeof(Spawner), (Texture)(object)GetTextureLily("spawner")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("spawner", Act2: true), (FilterMode?)null); val.powerLevel = 5; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Spawner.ability = val.ability; bool flag = false; } public void AddDev_Activated() { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Wharrgarbl", "Wharrgarbl.", typeof(Dev_Activated), (Texture)(object)GetTextureLily("placeholder")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("placeholder", Act2: true), (FilterMode?)null); val.powerLevel = 69420; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; val.activated = true; Dev_Activated.ability = val.ability; } public void AddDraw_Side_Deck_OnSummon() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Support call", "When [creature] is played, a card from your sidedeck is created in your hand.", typeof(Draw_Side_Deck_OnSummon), (Texture)(object)GetTextureLily("support_call")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("placeholder", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; Draw_Side_Deck_OnSummon.ability = val.ability; bool flag = false; } public void AddFearful() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Fearful", "When [creature] is struck without it resulting in death, it will be returned to its owner's hand.", typeof(Fearful), (Texture)(object)GetTextureLily("fearful")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("fearful", Act2: true), (FilterMode?)null); val.powerLevel = -2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Fearful.ability = val.ability; bool flag = false; } public void AddHydra() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Exhaustion", "The attack of [creature] will be decreased by the same amount as its lost health.", typeof(Hydra), (Texture)(object)GetTextureLily("exhaustion")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("exhaustion", Act2: true), (FilterMode?)null); val.powerLevel = -2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Hydra.ability = val.ability; bool flag = false; } public void AddImbuing() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Imbuing", "[creature] will get specific buffs depending on which tribe is most promenent in the sacrifices that were used to summon it.", typeof(Imbuing), (Texture)(object)GetTextureLily("imbuing")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("placeholder", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Imbuing.ability = val.ability; bool flag = false; } public void AddInstakill() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Instant", "[creature] will perish immediately after its played.", typeof(Instakill), (Texture)(object)GetTextureLily("instant")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("instant", Act2: true), (FilterMode?)null); val.powerLevel = -3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Instakill.ability = val.ability; bool flag = false; } public void AddRushing_March() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Rushing march", "At the end of its owner's turn, [creature] will move in the direction inscribed on the sigil, however if it hits a card whilst moving, [creature] will stop and the card it hit will perish.", typeof(Rushing_March), (Texture)(object)GetTextureLily("rushing_march")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("rushing_march", Act2: true), (FilterMode?)null); val.powerLevel = -2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Rushing_March.ability = val.ability; bool flag = false; } public void AddWarper() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Warper", "At the end of its owner's turn, [creature] will move to the right, jumping over any creatures in its path, if it encounters the edge of the board, it will loop over to the other side.", typeof(Warper), (Texture)(object)GetTextureLily("warper")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("warper", Act2: true), (FilterMode?)null); val.powerLevel = 1; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Warper.ability = val.ability; bool flag = false; } public void AddWild_Hunger() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Wild hunger", "At the end of its owner's turn, [creature] will move in the direction inscribed on the sigil, however if it hits a card whilst moving, [creature] will stop, the card it hit will perish and [creature] will gain 1+/1+.", typeof(Wild_Hunger), (Texture)(object)GetTextureLily("wild_hunger")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("wild_hunger", Act2: true), (FilterMode?)null); val.powerLevel = 4; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Wild_Hunger.ability = val.ability; bool flag = false; } public void AddAll_Seeing() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "All seeing", "While [creature] is on the board, all talking cards on your side of the board get +2 health.", typeof(All_Seeing), (Texture)(object)GetTextureLily("all_seeing")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("placeholder", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = false; All_Seeing.ability = val.ability; bool flag = false; } public void AddBond() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Bond", "Any creatures adjacent to [creature] will gain either +1 attack or +1 health, depending on which stat it is closest to.", typeof(Bond), (Texture)(object)GetTextureLily("Bond")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("bond", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Bond.ability = val.ability; bool flag = false; } public void AddLinguist() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Linguist", "While [creature] is on the board, all talking cards on your side of the board get +1 attack.", typeof(Linguist), (Texture)(object)GetTextureLily("linguist")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("placeholder", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Linguist.ability = val.ability; bool flag = false; } public void AddPuppets_Gift() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Puppets gift", "As long as [creature] is on the board any cards with brittle won't die because of brittle.", typeof(Puppets_Gift), (Texture)(object)GetTextureLily("puppets_gift")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("puppets_gift", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Puppets_Gift.ability = val.ability; bool flag = false; } public void AddTribe_Attack() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Tribe Attack", "While [creature] is on the board, all other cards on your side of the board of the same tribe will gain +1 attack.", typeof(Tribe_Attack), (Texture)(object)GetTextureLily("tribe_attack")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("placeholder", Act2: true), (FilterMode?)null); val.powerLevel = 3; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Tribe_Attack.ability = val.ability; bool flag = false; } public void AddTribe_Health() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Tribe Health", "While [creature] is on the board, all other cards on your side of the board of the same tribe will gain +1 health.", typeof(Tribe_Health), (Texture)(object)GetTextureLily("tribe_health")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("placeholder", Act2: true), (FilterMode?)null); val.powerLevel = 2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = true; val.opponentUsable = true; Tribe_Health.ability = val.ability; bool flag = false; } public void AddPicky() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Picky", "[creature] cannnot be summoned by using any free cards as sacrifice.", typeof(Picky), (Texture)(object)GetTextureLily("picky")); AbilityExtensions.SetPixelAbilityIcon(val, GetTextureLily("picky", Act2: true), (FilterMode?)null); val.powerLevel = -2; val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.canStack = false; val.opponentUsable = false; Picky.ability = val.ability; bool flag = false; } public void AddShort() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityManager.New("org.memez4life.inscryption.customsigils", "Short", "[creature] will not be blocked by an opposing creature bearing the airborn sigil.", typeof(Short), (Texture)(object)GetTextureLily("short")); AbilityExtensions.SetPixelAbilityIcon(val, G