using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using DiskCardGame; using InscryptionAPI.Card; using InscryptionAPI.Helpers; using OLD_SA.SmallSigils; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("OldSa_Immolate_sigil")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("OldSa_Immolate_sigil")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("41436ad8-9195-43e8-ba27-c14a8582321d")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace OLD_SA.Immolate; public static class ImmolateAPI { public static FullAbility ability; public unsafe static void Init() { //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = ScriptableObject.CreateInstance(); ((Object)val).name = "Immolate"; val.rulebookName = "Immolate"; val.metaCategories = new List { (AbilityMetaCategory)0, (AbilityMetaCategory)1 }; val.powerLevel = 3; val.opponentUsable = true; Texture imageAsTexture = (Texture)(object)TextureHelper.GetImageAsTexture("OldSa_Immolate.png", (FilterMode)0); FieldInfo field = typeof(AbilityInfo).GetField("rulebookDescription", BindingFlags.Instance | BindingFlags.NonPublic); if (field != null) { field.SetValue(val, "At the start of the end, [creature] gives the opposing creature 3 Blaze."); } ability = AbilityManager.Add("OLD_SA", val, typeof(ImmolateBehaviour), imageAsTexture); Ability id = ability.Id; Debug.Log((object)("[OLD SA] Immolate registered. ID=" + ((object)(*(Ability*)(&id))/*cast due to .constrained prefix*/).ToString())); } } public class ImmolateBehaviour : AbilityBehaviour { public static Ability AbilityID => ImmolateAPI.ability.Id; public override Ability Ability => AbilityID; public override bool RespondsToTurnEnd(bool playerTurnEnd) { if ((Object)(object)((AbilityBehaviour)this).Card == (Object)null || ((AbilityBehaviour)this).Card.Dead) { return false; } return ((AbilityBehaviour)this).Card.OpponentCard != playerTurnEnd; } public override IEnumerator OnTurnEnd(bool playerTurnEnd) { if ((Object)(object)((AbilityBehaviour)this).Card == (Object)null || ((AbilityBehaviour)this).Card.Dead) { yield break; } CardSlot opposingSlot = ((AbilityBehaviour)this).Card.Slot.opposingSlot; if (!((Object)(object)opposingSlot == (Object)null) && !((Object)(object)opposingSlot.Card == (Object)null)) { PlayableCard target = opposingSlot.Card; if (!((Object)(object)target == (Object)null) && !target.Dead) { yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); SmallSigilManager.AddStacks(target, (SmallSigilType)0, 3); yield return ((AbilityBehaviour)this).LearnAbility(0.25f); } } } } [BepInPlugin("OLD_SA.Immolate", "OLD SA Immolate Sigil", "1.0.0")] public class Plugin : BaseUnityPlugin { private void Awake() { Debug.Log((object)"[OLD SA Immolate] Loading..."); ImmolateAPI.Init(); Debug.Log((object)"[OLD SA Immolate] Loaded."); } }