

This mod contains special abilities that allow you to create a new type of card called a 'spell.' Spells are cards that
a) Do not need a space on board to resolve b) Die immediately when played.
In other words, these are cards you play entirely because they have an immediate effect.
There are also some additional sigils in this pack that might be useful for you when creating spells.
There are two types of spells:
Targeted Spells: These have an effect on one specific space on the board. Use this type if you want to use sigils like 'Direct Damage' (included in this pack) or something like the Beaver's dam creation ability. Global Spells: These have an immediate, global effect when played. If you attach a sigil that expects to be in a specific slot on board, there may be unexpected behavior. For example, the Beaver's dam ability will more than likely give Leshy a free dam.
This mod would not be possible without signifcant contributions from @Kopie in the Inscryption Modding discord channel.
It can, but it doesn't by default. If you want my example cards added to the card pool, go to the config file 'zorro.inscryption.infiniscryption.spells.cfg' and set 'AddCards' to true.
This will add the following cards:
These cards are not meant to be balanced, but rather to demonstrate how the mod works (hence why they are not added by default).
As with most mods, you need BepInEx installed.
You will also need the API installed.
When a spell is played, it will fire either three or four triggers (depending upon the type of spell) in this specific order.
As a card developer, it is up to you to put sigils (either existing or custom) on the card to actually make it have an effect when played.
To add a spell using the API, you need to add both a 'special ability' and a 'stat icon'.
The plugin will take care of adding all of the necessary card appearance behaviors for you.
using APIPlugin;
using Infiniscryption.Spells.Sigils;
NewCard.Add(
"Kettle_of_Avarice",
"Kettle of Avarice",
0, 0,
new List<CardMetaCategory>() { CardMetaCategory.ChoiceNode, CardMetaCategory.TraderOffer },
CardComplexity.Advanced,
CardTemple.Nature,
"It allows you to draw two more cards",
bloodCost: 1,
hideAttackAndHealth: true,
defaultTex: AssetHelper.LoadTexture("kettle_of_avarice"),
specialStatIcon: GlobalSpellAbility.Instance.statIconInfo.iconType,
specialAbilitiesIdsParam: new List<SpecialAbilityIdentifier>() { GlobalSpellAbility.Instance.id },
abilityIdsParam: new List<AbilityIdentifier>() { DrawTwoCards.Identifier }
);
NewCard.Add(
"Lightning",
"Lightning",
0, 0,
new List<CardMetaCategory>() { CardMetaCategory.ChoiceNode, CardMetaCategory.TraderOffer },
CardComplexity.Advanced,
CardTemple.Nature,
"A perfectly serviceable amount of damage",
bloodCost: 1,
hideAttackAndHealth: true,
defaultTex: AssetHelper.LoadTexture("lightning_bolt"),
specialStatIcon: TargetedSpellAbility.Instance.statIconInfo.iconType,
specialAbilitiesIdsParam: new List<SpecialAbilityIdentifier>() { TargetedSpellAbility.Instance.id },
abilityIdsParam: new List<AbilityIdentifier>() { DirectDamage.Identifier, DirectDamage.Identifier }
);
To add a spell using JSON loader, you need to know the GUID and name of the special ability. See below for an example:
{
"name": "Kettle_of_Avarice",
"displayedName": "Kettle of Avarice",
"description": "It allows you to draw two more cards",
"metaCategories": [
"ChoiceNode",
"TraderOffer"
],
"cardComplexity": "Advanced",
"temple": "Nature",
"baseAttack": 0,
"baseHealth": 0,
"bloodCost": 1,
"customAbilities": [
{
"name": "Draw Twice",
"GUID": "zorro.infiniscryption.sigils.drawtwocards"
}
],
"texture": "kettle_of_avarice.png",
"customSpecialAbilities": [
{
"name": "Spell (Global)",
"GUID": "zorro.infiniscryption.sigils.globalspell"
}
]
}
{
"name": "Lightning",
"displayedName": "Lightning",
"description": "A perfectly serviceable amount of damage",
"metaCategories": [
"ChoiceNode",
"TraderOffer"
],
"cardComplexity": "Advanced",
"temple": "Nature",
"baseAttack": 0,
"baseHealth": 0,
"bloodCost": 1,
"customAbilities": [
{
"name": "Direct Damage",
"GUID": "zorro.infiniscryption.sigils.directdamage"
}
],
"texture": "lightning_Bolt.png",
"customSpecialAbilities": [
{
"name": "Spell (Targeted)",
"GUID": "zorro.infiniscryption.sigils.targetedspell"
}
]
}
So far there are two, with some more to come:
1.1
1.0