[Home]AlexChurchill/MCGAbilities

ec2-52-204-98-217.compute-1.amazonaws.com | ToothyWiki | AlexChurchill | RecentChanges | Login | Webcomic

By today's standards, completely obsolete. Low resolution, not many colours. Pretty-much completely replaced by VGA and its enhancements.


A module for the /MagicCardGenerator. That page is the interesting one - you probably want to be there.

This module contains all the BNF referring to activated, triggered, and static abilities, as well as keyword abilities, pseudokeyworded abilities like "this can't block", and all the Imprint code.

Abilities



cardabilities ::= cardability | cardability newabilityline resetflags cardability | cardability newabilityline resetflags cardabilities
cardability ::= triggeredability | activatedability | staticability | triggeredability | activatedability | staticability | setofabilities##myType

activatedability ::= <mySpd::=inst> resetcostflags multiplecost ": " maybeToggleMyColour? instanteffect

triggeredability ::= triggercondition space maybeToggleMyColour? effecttext
triggercondition ::= maybeThisZoneChange?##thisStillInPlay? | maybeThisZoneChange?##thisStillInPlay? | <mySpd::=inst> "Whenever " event ", " optionaleffectpaycostclause | <mySpd::=phase> "At the beginning of " permspecifiedplayerspossessive space phaseorstep ", " optionaleffectpaycostclause | typespecifictrigger
maybe[ThisZoneChange no]? ::= triggercondition
maybe[ThisZoneChange yes]? ::= <mySpd::=inst> <verbMood::=indicative> <passiveSubject::=singular> "When ~this~ " zonechangeverb ", " <thisStillInPlay?::=no> optionaleffectpaycostclause

typespecifictrigger ::= _typespecifictrigger##myType
_typespecifictrigger_ctr ::= creaturetrigger
_typespecifictrigger_ench ::= enchantmenttrigger
_typespecifictrigger_art ::= artifacttrigger
_typespecifictrigger_land ::= landtrigger
_typespecifictrigger_unknown ::= triggercondition
_typespecifictrigger_planeswalker ::= triggercondition
creaturetrigger ::= <mySpd::=inst> "Whenever ~this~ " <verbMood::=indicative> <passiveSubject::=singular> <processingThis::=true> creatureverb##thisStillInPlay?{tmp} setStillInPlay?##tmp ", " <processingThis::=false> optionaleffectpaycostclause
artifacttrigger ::= <mySpd::=inst> addequipcostprefixandequipmenttype "Whenever equipped creature " <verbMood::=indicative> <passiveSubject::=singular> pushNoAllowCIP? creatureverb popAllowCIP? ", "
enchantmenttrigger ::= addenchantabilityprefixandauratype <mySpd::=inst> "Whenever enchanted " enchanttypegeneral space <verbMood::=indicative> <passiveSubject::=singular> pushNoAllowCIP? verbtype##enchanttypegeneral popAllowCIP? ", "
landtrigger ::= maybeThisZoneChange?##thisStillInPlay? | <mySpd::=inst> "Whenever ~this~ becomes tapped, " | <mySpd::=inst> "Whenever ~this~ is tapped for mana, "

verbtype_creature ::= creatureverb
verbtype_artifact ::= permanentverb
verbtype_enchantment ::= enchantmentverb
verbtype_land ::= landverb
verbtype_permanent ::= permanentverb

staticability ::= <mySpd::=inst> _staticability
_staticability ::= commonstaticability | commonstaticability | commonstaticability | rarestaticability
commonstaticability ::= keywordability##myType | keywordability##myType | keywordability##myType | "All " qualifiedcreatures space pluralcreaturepropmodifier | "All " qualifiedcreatures space pluralcreaturepropmodifier | "All " qualifiedpermanents space pluralpermanentpropmodifier | "All " qualifiednoncreaturepermanents space pluralnoncreaturepermanentpropmodifier
rarestaticability ::= rarestaticability##myColour
rarestaticability_white ::= <myAbilityMod?::=thatarentmana> qualifiedspellsorabilities <myAbilityMod?::=nothing> " cost " permspecifiedplayergroup space costmodification " to cast" | replacementability | conditiontext space staticability
rarestaticability_blue ::= permspecifiedplayergroup " may cast " qualifiedspells space timeorcostmodifier | <myAbilityMod?::=thatarentmana> qualifiedspellsorabilities <myAbilityMod?::=nothing> " cost " permspecifiedplayergroup space costmodification " to cast" | replacementability | conditiontext space staticability
rarestaticability_black ::= permspecifiedplayergroup " may cast " qualifiedspells space costmodifier | <myAbilityMod?::=thatarentmana> qualifiedspellsorabilities <myAbilityMod?::=nothing> " cost " permspecifiedplayergroup space costmodification " to cast" | replacementability | conditiontext space staticability
rarestaticability_red ::= <myAbilityMod?::=thatarentmana> qualifiedspellsorabilities <myAbilityMod?::=nothing> " cost " permspecifiedplayergroup space costmodification " to cast" | replacementability | conditiontext space staticability
rarestaticability_green ::= permspecifiedplayergroup " may cast " qualifiedspells space timeorcostmodifier | <myAbilityMod?::=thatarentmana> qualifiedspellsorabilities <myAbilityMod?::=nothing> " cost " permspecifiedplayergroup space costmodification " to cast" | replacementability | conditiontext space staticability
rarestaticability_artifact ::= permspecifiedplayergroup " may cast " qualifiedspells space timeorcostmodifier | <myAbilityMod?::=thatarentmana> qualifiedspellsorabilities <myAbilityMod?::=nothing> " cost " permspecifiedplayergroup space costmodification " to cast" | replacementability | conditiontext space staticability


landability ::= landmanaability | landmanaability | landmanaability | landmanaability | landmanaability | landmanaability | landsearchability
maybemorelandabilities ::= nothing | nothing | newline landability | newline landability maybemorelandabilities | newline cardability | newline cardabilities

landmanaability ::= justtapcost ": " smallmanaeffect | justtapcost ": " smallmanaeffect | forcetapmulticost ": " manaeffect
// lands which search out other lands should sac when they do so
landsearchability ::= <sacCostUsed?::=used> <thisStillInPlay?::=no> forcetapmulticost ", sacrifice ~this~: " landsearcheffect

Sets of Abilities



setofabilities_ctr ::= <myCounterType?::=creaturecountertypeword> setofcounterabilities | tokenabilities | putcountersonotherthingsabilities | flipabilities
setofabilities_art ::= <myCounterType?::=charge> setofcounterabilities | tokenabilities | imprintabilities | putcountersonotherthingsabilities | flipabilities
setofabilities_ench ::= <myCounterType?::=funword##myColour> setofcounterabilities | tokenabilities | putcountersonotherthingsabilities | flipabilities
setofabilities_land ::= <myCounterType?::=landcountertypeword> setofcounterabilities | <myCounterType?::=landcountertypeword> setofcounterabilities | putcountersonotherthingsabilities | flipabilities
setofabilities_unknown ::= tokenabilities | putcountersonotherthingsabilities

// don't allow flip abilities if we're already in the flipped half of a flip card, or in text being granted to another permanent
flipabilities ::= flipabilities##myAbilityContext?
flipabilities_grantable ::= cardability
flipabilities_general ::= flipabilities##forcelegend
flipabilities_specific ::= flipabilities##forcelegend
flipabilities_yes ::= cardability
flipabilities_no ::= flippingability addflippedformsuffix

// The set of abilities that don't make sense on flip sides appears to be exactly the same as the set that doesn't make sense when granted to things
specificifnotflipped ::= specificifnotflipped##myFlip
specificifnotflipped_no ::= specific
specificifnotflipped_yes ::= grantable

flippingability ::= resetcostflags multiplecost ": " targetobtainingeffect ". " specialtargetevent flipthis | <thisStillInPlay?::=no> triggercondition flipthis | statetriggercondition flipthis | <myCounterType?::=funword##myColour> triggeredcountersource ". " countertriggeredflipthis
statetriggercondition ::= "When " unusualstatecondition ", "
flipthis ::= "flip ~this~."
countertriggeredflipthis ::= "If ~this~ has " <<N::=dynamicinteger>> word##N " or more " myCounterType?  " counter" pluralsuffix##lastDynamicInt? " on it" showsuffixes ", flip it."


tokenabilities ::= <myTokenNumber?::=1> <myTokenDesc?::=tokendescription> setoftokenabilities
tokendescription ::= <myTokenType?::=choosesinglecommoncreaturetype##myColour> <myTokenNature?::=choosenature##myTokenType?##mySrc> choosept##myTokenType? space choosecolour##myTokenType? space myTokenType? myTokenNature? " creature token" delayedtokenpluralsuffix1 chooseabilities##myTokenType?
// 3/4 of token-making cards make tokens of a type other than their own, so choose another creature type from our colour

delayedtokenpluralsuffix1 ::= delayedtokenpluralsuffix2
delayedtokenpluralsuffix2 ::= pluralsuffix##myTokenNumber?
// to be evaluated at use time of myTokenDesc?, while the rest are evaluated at define time
// _nothing, not _nothing2, because myTokenNature? is randomly selected from a list of "spaceartifact" or "nothing"
singorpltokentype_nothing ::= myTokenType?
singorpltokentype_nothing2 ::= myTokenType?
singorpltokentype_s ::= plural##myTokenType?


setofcounterabilities ::= sourceofcountersability newabilityline useofcountersability | sourceofcountersability newabilityline useofcountersability | sourceofcountersability newabilityline useofcountersability | sourceofcountersability newabilityline useofcountersability | sourceofcountersability newabilityline setofcounterabilities | setofcounterabilities newabilityline useofcountersability
sourceofcountersability ::= triggeredcountersource | activatedcountersource | cipcountersource##cipcountersourceused
cipcountersource_yes ::= sourceofcountersability
cipcountersource_no ::= cipcountersource##allowCIP
cipcountersource_false ::= sourceofcountersability
cipcountersource_true ::= <cipcountersourceused::=yes> "~this~ enters the battlefield with " <<N::=dynamicinteger_noXphrase>> ind_word##N space myCounterType? " counter" pluralsuffix##lastDynamicInt? " on it" showsuffixes
triggeredcountersource ::= <thisStillInPlay?::=no> triggercondition "put a " myCounterType? " counter on ~this~"
activatedcountersource ::= resetcostflags <thisStillInPlay?::=no> multiplecost ": put a " myCounterType? " counter on ~this~"
// use <thisStillInPlay?::=no> to prevent sacrifice or bounce costs to put counters on; they're OK when pulling counters off

useofcountersability ::= multiplecost ", remove a " myCounterType? " counter from ~this~: " instanteffect | "Remove a " myCounterType? " counter from ~this~: " instanteffect | multiplecost ", remove " <<N::=smalldynamicinteger_noXphrase>> ind_word##N space myCounterType? " counter" pluralsuffix##lastDynamicInt? " from ~this~" showsuffixes ": " instanteffect | "Remove " <<N::=smalldynamicinteger_noXphrase>> ind_word##N space myCounterType? " counter" pluralsuffix##lastDynamicInt? " from ~this~" showsuffixes ": " instanteffect | multiplecost ", remove any number of " myCounterType? " counters from ~this~: " thatmanynumberedeffect

setoftokenabilities ::= sourceoftokensability newabilityline useoftokensability | sourceoftokensability newabilityline useoftokensability | sourceoftokensability newabilityline useoftokensability | sourceoftokensability newabilityline setoftokenabilities | setoftokenabilities newabilityline useoftokensability
sourceoftokensability ::= resetcostflags largecost ": " maketokens
// | triggercondition maketokens
maketokens ::= "put a " myTokenDesc? " onto the battlefield" | "put a " myTokenDesc? " onto the battlefield" | "put a " myTokenDesc? " onto the battlefield" | "put " <<N::=smalldynamicinteger_noXphrase>> ind_word##N <myTokenNumber?::=lastDynamicInt?> space myTokenDesc? " onto the battlefield" showsuffixes <myTokenNumber?::=1>
useoftokensability ::= multiplecost ", sacrifice a " myTokenType? ": " instanteffect | "Sacrifice a " myTokenType? ": " instanteffect | multiplecost ", sacrifice " <<N::=dynamicinteger_noXphrase>> ind_word##N <tmp::=pluralsuffix##lastDynamicInt?> space singorpltokentype##tmp showsuffixes ": " instanteffect | "Sacrifice " <<N::=dynamicinteger>> ind_word##N <tmp::=pluralsuffix##lastDynamicInt?> space singorpltokentype##tmp showsuffixes ": " instanteffect | multiplecost ", sacrifice any number of " plural##myTokenType? ": " thatmanynumberedeffect

putcountersonotherthingsabilities ::= <myCounter::=funword##myColour> <counterCtr::=no> <counterNonctr::=no> setofputcountersonotherthingsabilities
setofputcountersonotherthingsabilities ::= putcountersonthingsability newabilityline affectcounteredthingsability | putcountersonthingsability newabilityline affectcounteredthingsability | putcountersonthingsability newabilityline affectcounteredthingsability | putcountersonthingsability newabilityline affectcounteredthingsability | putcountersonthingsability newabilityline setofputcountersonotherthingsabilities | setofputcountersonotherthingsabilities newabilityline affectcounteredthingsability
putcountersonthingsability ::= resetcostflags multiplecost ": " putcountersonthingseffect | triggercondition putcountersonthingseffect
putcountersonthingseffect ::= "put a " myCounter " counter on target " permanentorpermtype{thisPerm} notecountertypes##thisPerm
notecountertypes_creature ::= <counterCtr::=yes>
notecountertypes_permanent ::= <counterCtr::=yes> <counterNonctr::=yes>
notecountertypes_artifact ::= <counterNonctr::=yes>
notecountertypes_enchantment ::= <counterNonctr::=yes>
notecountertypes_land ::= <counterNonctr::=yes>

affectcounteredthingsability ::= affectcounteredcreatures##counterCtr | affectcounterednoncreatures##counterNonctr | affectcounteredpermanents
affectcounteredcreatures_no ::= affectcounteredthingsability
affectcounterednoncreatures_no ::= affectcounteredthingsability

affectcounteredcreatures_yes ::= <myTarget::=targetcreaturewithmycounter> <myTargetType?::=ctr> resetcostflags multiplecost ": " specialtargeteffect | "Each creature with a " myCounter " counter on it " creaturepropmodifier
//pluralcreaturepropmodifier
affectcounteredpermanents ::= <myTarget::=targetpermanentwithmycounter> <myTargetType?::=perm> resetcostflags multiplecost ": " specialtargeteffect | "Each permanent with a " myCounter " counter on it " permanentpropmodifier
//pluralpermanentpropmodifier
affectcounterednoncreatures_yes ::= <myTarget::=targetnoncreaturewithmycounter> <myTargetType?::=nonctr> resetcostflags multiplecost ": " specialtargeteffect | "Each " noncreaturepermanenttype " with a " myCounter " counter on it " noncreaturepermanentpropmodifier
//pluralnoncreaturepermanentpropmodifier

targetcreaturewithmycounter ::= "target creature with a " myCounter " counter on it" <myTargetPluralSuffix?::=nothing> | "each creature with a " myCounter " counter on it" <myTargetPluralSuffix?::=nothing>
targetpermanentwithmycounter ::= "target permanent with a " myCounter " counter on it" <myTargetPluralSuffix?::=nothing> | "each permanent with a " myCounter " counter on it" <myTargetPluralSuffix?::=nothing>
targetnoncreaturewithmycounter ::= "target " noncreaturepermanenttype " with a " myCounter " counter on it" <myTargetPluralSuffix?::=nothing> | "each " noncreaturepermanenttype " with a " myCounter " counter on it" <myTargetPluralSuffix?::=nothing>


creatureability ::= pushMyType? <myType::=ctr> cardability popMyType?
noncreatureability ::= pushMyType? <myType::=unknown> cardability popMyType?

Keyword Abilities



keywordability_ench ::= addenchantabilityprefixandauratype "Enchanted " enchanttypegeneral space modifyenchanted##enchanttypegeneral | enchantmentability##myColour
keywordability_art ::= addequipcostprefixandequipmenttype "Equipped creature " creaturepropmodifier | imprintabilities
keywordability_ctr ::= creaturekeywordability | creaturekeywordability | creaturekeywordability | creaturenonkeywordability
keywordability_land ::= commonstaticability
// commonstaticability is the only caller of keywordability##foo. Lands have no keywords. Not using protection/phasing/cum upkeep.
keywordability_unknown ::= permanentkeywordability

enchantability ::= <myCombatAdjective?::=used> <tapStatus::=untapped> "Enchant " enchanttypespecific <myCombatAdjective?::=nothing> <tapStatus::=nothing>

// enchantmentability_*s are always in context "specific"
enchantmentability_white ::= protection_specific | Convoke | forecastability_specific | championability_specific | flashability_specific
enchantmentability_blue ::= addenchantabilityprefixandauratype "You control enchanted " enchanttypegeneral | forecastability_specific | transmuteability_specific | championability_specific | flashability_specific
enchantmentability_black ::= addenchantabilityprefixandauratype "You control enchanted " enchanttypegeneral | transmuteability_specific | hellbentability_specific | championability_specific
enchantmentability_red ::= hellbentability_specific | championability_specific
enchantmentability_green ::= Convoke | championability_specific | flashability_specific





modifyenchanted_creature ::= creaturepropmodifier
modifyenchanted_artifact ::= noncreaturepermanentpropmodifier
modifyenchanted_enchantment ::= noncreaturepermanentpropmodifier
modifyenchanted_land ::= noncreaturepermanentpropmodifier
modifyenchanted_permanent ::= permanentpropmodifier

// Creature keyword abilities

creaturekeywordabilitygeneral ::= <myAbilityContext?::=general> creaturekeywordability <myAbilityContext?::=specificifnotflipped>
grantablecreaturekeywordability ::= <myAbilityContext?::=grantable> creaturekeywordability <myAbilityContext?::=specificifnotflipped>
creaturekeywordability ::= commoncreaturekeywordability | commoncreaturekeywordability | rarecreaturekeywordability
commoncreaturekeywordability ::= commoncreaturekeywordability##myColour
commoncreaturekeywordability_white ::= flying | "first strike" | vigilance | lifelink
commoncreaturekeywordability_blue ::= flying | shroud
commoncreaturekeywordability_black ::= fear | deathtouch
commoncreaturekeywordability_red ::= "first strike" | haste
commoncreaturekeywordability_green ::= trample | reach | shroud
commoncreaturekeywordability_artifact ::= flying
rarecreaturekeywordability ::= rarecreaturekeywordability##myColour
rarecreaturekeywordability_white ::= banding | flanking | "double strike" | provoke | defender | bushidoability##myAbilityContext? | soulshiftability##myAbilityContext? | protection##myAbilityContext? | morphability##myAbilityContext? | echoability##myAbilityContext? | cumulativeupkeepability##myAbilityContext? | hauntability##myAbilityContext? | forecastability##myAbilityContext? | recoverability##myAbilityContext? | suspendability##myAbilityContext? | splitsecondability##myAbilityContext? | vanishingability##myAbilityContext? | flashability##myAbilityContext? | championability##myAbilityContext? | evokeability##myAbilityContext? | reinforceability##myAbilityContext? | persist | absorbability##myAbilityContext? | kickerability##myAbilityContext? | exaltedability##myAbilityContext?
rarecreaturekeywordability_blue ::= defender | soulshiftability##myAbilityContext? | morphability##myAbilityContext? | echoability##myAbilityContext? | cumulativeupkeepability##myAbilityContext? | phasingability##myAbilityContext? | ninjutsuability##myAbilityContext? | transmuteability##myAbilityContext? | graftability##myAbilityContext? | forecastability##myAbilityContext? | recoverability##myAbilityContext? | suspendability##myAbilityContext? | splitsecondability##myAbilityContext? | vanishingability##myAbilityContext? | protection##myAbilityContext? | flashability##myAbilityContext? | championability##myAbilityContext? | evokeability##myAbilityContext? | persist | absorbability##myAbilityContext? | kickerability##myAbilityContext? | exaltedability##myAbilityContext? | unearthability##myAbilityContext?
rarecreaturekeywordability_black ::= flying | "first strike" | trample | defender | bushidoability##myAbilityContext? | soulshiftability##myAbilityContext? | protection##myAbilityContext? | morphability##myAbilityContext? | echoability##myAbilityContext? | cumulativeupkeepability##myAbilityContext? | ninjutsuability##myAbilityContext? | transmuteability##myAbilityContext? | hauntability##myAbilityContext? | hellbentability##myAbilityContext? | recoverability##myAbilityContext? | suspendability##myAbilityContext? | splitsecondability##myAbilityContext? | poisonousability##myAbilityContext? | vanishingability##myAbilityContext? | transfigureability##myAbilityContext? | haste | lifelink | championability##myAbilityContext? | evokeability##myAbilityContext? | wither | persist | kickerability##myAbilityContext? | devourability##myAbilityContext? | unearthability##myAbilityContext?
rarecreaturekeywordability_red ::= flying | flanking | "double strike" | provoke | defender | bushidoability##myAbilityContext? | soulshiftability##myAbilityContext? | rampageability##myAbilityContext? | protection##myAbilityContext? | morphability##myAbilityContext? | echoability##myAbilityContext? | cumulativeupkeepability##myAbilityContext? | bloodthirstability##myAbilityContext? | hellbentability##myAbilityContext? | recoverability##myAbilityContext? | suspendability##myAbilityContext? | splitsecondability##myAbilityContext? | vanishingability##myAbilityContext? | trample | championability##myAbilityContext? | evokeability##myAbilityContext? | wither | persist | kickerability##myAbilityContext? | devourability##myAbilityContext? | unearthability##myAbilityContext?
rarecreaturekeywordability_green ::= provoke | defender | soulshiftability##myAbilityContext? | rampageability##myAbilityContext? | morphability##myAbilityContext? | echoability##myAbilityContext? | cumulativeupkeepability##myAbilityContext? | bloodthirstability##myAbilityContext? | graftability##myAbilityContext? | recoverability##myAbilityContext? | suspendability##myAbilityContext? | splitsecondability##myAbilityContext? | vanishingability##myAbilityContext? | flashability##myAbilityContext? | deathtouch | poisonousability##myAbilityContext? | vigilance | championability##myAbilityContext? | evokeability##myAbilityContext? | reinforceability##myAbilityContext? | wither | persist | kickerability##myAbilityContext? | devourability##myAbilityContext?
rarecreaturekeywordability_artifact ::= banding | defender | "first strike" | rampageability##myAbilityContext? | morphability##myAbilityContext? | echoability##myAbilityContext? | cumulativeupkeepability##myAbilityContext? | modularability##myAbilityContext? | recoverability##myAbilityContext? | suspendability##myAbilityContext? | vanishingability##myAbilityContext? | championability##myAbilityContext? | persist | kickerability##myAbilityContext? | exaltedability##myAbilityContext?

creaturenonkeywordability ::= creaturenonkeywordability##myColour conceivablestatecondition
creaturenonkeywordability_white ::= "~this~ can block an additional creature" | "~this~ can block any number of creatures"
creaturenonkeywordability_blue ::= "~this~ is unblockable" | "~this~ can't be the target of " qualifiedspellsorabilities
creaturenonkeywordability_black ::= "~this~ can't block" | "T: Assemble a Contraption"
creaturenonkeywordability_red ::= "~this~ can't block" | "~this~ can't block" | "~this~ attacks each turn if able" | "T: Assemble a Contraption"
creaturenonkeywordability_green ::= "~this~ can't be blocked except by creatures with flying" | "~this~ can't be the target of " qualifiedspellsorabilities | "All creatures able to block ~this~ do so" | "Whenever ~this~ deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step." | landmanaability
creaturenonkeywordability_artifact ::= "~this~ can block an additional creature" | "~this~ doesn't untap during your untap step." newabilityline "At the beginning of your upkeep, you may pay " manaorlifecost ". If you do, untap ~this~." | "~this~ is indestructible"


// Grantable numbered abilities
bushidoability_specific ::= "bushido " dynamicinteger showsuffixes
bushidoability_grantable ::= "bushido " dynamicinteger showsuffixes
bushidoability_general ::= bushido
soulshiftability_specific ::= "soulshift " dynamicinteger showsuffixes
soulshiftability_grantable ::= "soulshift " dynamicinteger showsuffixes
soulshiftability_general ::= soulshift
rampageability_specific ::= "rampage " dynamicinteger showsuffixes
rampageability_grantable ::= "rampage " dynamicinteger showsuffixes
rampageability_general ::= rampage
poisonousability_specific ::= "poisonous " dynamicinteger showsuffixes
poisonousability_grantable ::= "poisonous " dynamicinteger showsuffixes
poisonousability_general ::= poisonous
absorbability_specific ::= "absorb " dynamicinteger showsuffixes
absorbability_grantable ::= "absorb " dynamicinteger showsuffixes
absorbability_general ::= absorb

// Ability words are unusual - they can be granted, but not referred to
hellbentability_specific ::= "Hellbent - If you have no cards in hand, " cardability
hellbentability_grantable ::= "Hellbent - If you have no cards in hand, " cardability
hellbentability_general ::= rarecreaturekeywordability
thresholdability_specific ::= "Threshold -If you have seven or more cards in your graveyard, " cardability
thresholdability_grantable ::= "Threshold - If you have seven or more cards in your graveyard, " cardability
thresholdability_general ::= rarecreaturekeywordability

// Non-grantable abilities
unearthability_specific ::= "Unearth " nocardprobablymanacost
unearthability_grantable ::= rarecreaturekeywordability
unearthability_general ::= unearth
devourability_specific ::= "Devour " dynamicinteger showsuffixes
devourability_grantable ::= rarecreaturekeywordability
devourability_general ::= devour
morphability_specific ::= "Morph " nocardprobablymanacost
morphability_grantable ::= rarecreaturekeywordability
morphability_general ::= morph
echoability_specific ::= "Echo " nocardprobablymanacost
echoability_grantable ::= rarecreaturekeywordability
echoability_general ::= echo
cumulativeupkeepability_specific ::= "Cumulative upkeep " nocardprobablymanacost
cumulativeupkeepability_grantable ::= rarecreaturekeywordability
cumulativeupkeepability_general ::= "cumulative upkeep"
phasingability_specific ::= phasing
phasingability_grantable ::= rarecreaturekeywordability
phasingability_general ::= phasing
ninjutsuability_specific ::= "Ninjutsu " nocardprobablymanacost
ninjutsuability_grantable ::= rarecreaturekeywordability
ninjutsuability_general ::= ninjutsu
modularability_specific ::= "Modular " dynamicinteger showsuffixes
modularability_grantable ::= rarecreaturekeywordability
modularability_general ::= modular
transmuteability_specific ::= "Transmute " nocardprobablymanacost
transmuteability_grantable ::= rarecreaturekeywordability
transmuteability_general ::= transmute
transfigureability_specific ::= "Transfigure " nocardprobablymanacost
transfigureability_grantable ::= rarecreaturekeywordability
transfigureability_general ::= transfigure
bloodthirstability_specific ::= "Bloodthirst " dynamicinteger showsuffixes maybebloodthirstrelatedability
bloodthirstability_grantable ::= rarecreaturekeywordability
bloodthirstability_general ::= bloodthirst
hauntability_specific ::= "Haunt" newline "When ~this~ enters the battlefield or the creature this haunts is put into a graveyard from the battlefield, " <thisStillInPlay?::=no> effecttext
hauntability_grantable ::= rarecreaturekeywordability
hauntability_general ::= haunt
// Graft template makes use of the affectcounteredcreatures template
graftability_specific ::= "Graft " dynamicinteger showsuffixes newline <myCounter::=plus1plus1> affectcounteredcreatures_yes
graftability_grantable ::= rarecreaturekeywordability
graftability_general ::= graft
// Forecast template is based on activatedability above
forecastability_specific ::= "Forecast - " pushAllFlags? <mySpd::=phase> resetcostflags nocardmultiplecost ", Reveal ~this~ from your hand: " maybeToggleMyColour? <thisStillInPlay?::=no> effecttext popAllFlags?
forecastability_grantable ::= rarecreaturekeywordability
forecastability_general ::= forecast
recoverability_specific ::= "Recover " nocardprobablymanacost
recoverability_grantable ::= rarecreaturekeywordability
recoverability_general ::= recover
suspendability_specific ::= "Suspend " integeronethroughseven " - " nocardprobablymanacost
suspendability_grantable ::= rarecreaturekeywordability
suspendability_general ::= suspend
splitsecondability_specific ::= "Split second"
splitsecondability_grantable ::= rarecreaturekeywordability
splitsecondability_general ::= "split second"
vanishingability_specific ::= "Vanishing " dynamicinteger showsuffixes
vanishingability_grantable ::= rarecreaturekeywordability
vanishingability_general ::= vanishing
flashability_specific ::= <mySpd::=inst> Flash
flashability_grantable ::= rarecreaturekeywordability
flashability_general ::= flash
championability_specific ::= "Champion a " creaturetype forcetribalandcreaturetype | "Champion a " creaturetype forcetribalandcreaturetype | "Champion a " creaturetype forcetribalandcreaturetype | "Champion a " qualifiedcreature
championability_grantable ::= rarecreaturekeywordability
championability_general ::= champion
evokeability_specific ::= "When ~this~ enters the battlefield, " <thisStillInPlay?::=no> effecttext newline "Evoke " nocardprobablymanacost | "When ~this~ leaves the battlefield, " <thisStillInPlay?::=no> effecttext newline "Evoke " nocardprobablymanacost
evokeability_grantable ::= rarecreaturekeywordability
evokeability_general ::= evoke
reinforceability_specific ::= "Reinforce " dynamicinteger showsuffixes " - " nocardprobablymanacost
reinforceability_grantable ::= rarecreaturekeywordability
reinforceability_general ::= reinforce
kickerability_specific ::= "Kicker " nocardprobablymanacost newabilityline choosekickerclass
kickerability_grantable ::= rarecreaturekeywordability
kickerability_general ::= kicker

choosekickerclass ::= "If the kicker cost was paid, ~this~ enters the battlefield with " <N::=dynamicinteger_noXphrase> ind_word##N " +1/+1 counter" pluralsuffix##lastDynamicInt? " on it" andmaybehasability | "If the kicker cost was paid, ~this~ enters the battlefield with " <N::=dynamicinteger_noXphrase> ind_word##N " +1/+1 counter" pluralsuffix##lastDynamicInt? " on it" andmaybehasability | "If the kicker cost was paid, ~this~ has " grantablecreaturekeywordability | "When ~this~ enters the battlefield, if the kicker cost was paid, " <mySrc::=ctr> <mySpd::=sorc> effecttext
andmaybehasability ::= nothing | nothing | " and has " grantablecreaturekeywordability

numberedcreaturekeywordability ::= numberedcreaturekeywordability##myColour
numberedcreaturekeywordability_white ::= "bushido " param_discrete | "bushido " param_discrete | "soulshift " param_discrete
numberedcreaturekeywordability_blue ::= "soulshift " param_discrete
numberedcreaturekeywordability_black ::= "bushido " param_discrete | "soulshift " param_discrete | "rampage " param_discrete | "poisonous " param_discrete
numberedcreaturekeywordability_red ::= "bushido " param_discrete | "bushido " param_discrete | "soulshift " param_discrete | "rampage " param_discrete
numberedcreaturekeywordability_green ::= "soulshift " param_discrete | "rampage " param_discrete | "rampage " param_discrete | "poisonous " param_discrete
numberedcreaturekeywordability_artifact ::= "rampage " param_discrete

grantablepermanentkeywordability ::= <myAbilityContext?::=grantable> permanentkeywordability <myAbilityContext?::=specificifnotflipped>
permanentkeywordability ::= protection##myAbilityContext?
protection_specific ::= "protection from " protectiontarget
protection_grantable ::= "protection from " protectiontarget
protection_general ::= protection
protectiontarget ::= protectiontarget##myColour
protectiontarget_white ::= black | red | justcolourword | justcolourword | generalprotectiontarget
protectiontarget_blue ::= qualifiedcreatures | qualifiedpermanents | instantorsorcery " spells" | generalprotectiontarget
protectiontarget_black ::= white | generalprotectiontarget
protectiontarget_red ::= white | generalprotectiontarget
protectiontarget_green ::= instantorsorcery " spells" | black | generalprotectiontarget
protectiontarget_artifact ::= generalprotectiontarget
generalprotectiontarget ::= justcolourword | qualifiedcreatures | qualifiedpermanents | instantorsorcery " spells"
exaltedability_specific ::= "Exalted" | "Exalted" | "Exalted" newabilityline "Whenever a creature you control attacks alone, " <mySrc::=ctr> <mySpd::=inst> effecttext
exaltedability_grantable ::= exaltedability_specific
exaltedability_general ::= exalted


// Spell keyword abilities

maybespellkeywordabilityprefix ::= nothing | nothing | nothing | nothing | nothing | spellkeywordabilityprefix##myColour newline maybespellkeywordabilityprefix
spellkeywordabilityprefix_white ::= "Buyback " nocardprobablymanacost | "Flashback " nocardprobablymanacost | "Affinity for " noncontrolqualifiedpermanents | Convoke | kickercost notekickercost newline "If you paid the " nextkickercost " kicker cost, " effecttext
spellkeywordabilityprefix_blue ::= "Buyback " nocardprobablymanacost | "Flashback " nocardprobablymanacost | "Affinity for " noncontrolqualifiedpermanents | kickercost notekickercost newline "If you paid the " nextkickercost " kicker cost, " effecttext
spellkeywordabilityprefix_black ::= "Buyback " nocardprobablymanacost | "Flashback " nocardprobablymanacost | "Affinity for " noncontrolqualifiedpermanents | kickercost notekickercost newline "If you paid the " nextkickercost " kicker cost, " effecttext
spellkeywordabilityprefix_red ::= "Buyback " nocardprobablymanacost | "Flashback " nocardprobablymanacost | "Affinity for " noncontrolqualifiedpermanents | kickercost notekickercost newline "If you paid the " nextkickercost " kicker cost, " effecttext
spellkeywordabilityprefix_green ::= "Buyback " nocardprobablymanacost | "Flashback " nocardprobablymanacost | "Affinity for " noncontrolqualifiedpermanents | Convoke | kickercost notekickercost newline "If you paid the " nextkickercost " kicker cost, " effecttext

maybespellkeywordabilitysuffix ::= nothing | nothing | nothing | nothing | nothing | newline spellkeywordabilitysuffix##myColour maybespellkeywordabilitysuffix
spellkeywordabilitysuffix_white ::= Storm | "Cycling " nocardprobablymanacost | "Scry " dynamicinteger showsuffixes | "Splice onto " spelltypeorsubtype ": " nocardprobablymanacost | "Madness " nocardprobablymanacost | "Draw a card." | "Haunt" newline "When the creature this haunts is put into a graveyard from the battlefield, " lastspelleffecttext | forecastability_specific
spellkeywordabilitysuffix_blue ::= Storm | "Cycling " nocardprobablymanacost | "Scry " dynamicinteger showsuffixes | "Splice onto " spelltypeorsubtype ": " nocardprobablymanacost | "Madness " nocardprobablymanacost | transmuteability_specific | "Replicate " nocardprobablymanacost | "Draw a card." | forecastability_specific
spellkeywordabilitysuffix_black ::= Storm | "Cycling " nocardprobablymanacost | "Scry " dynamicinteger showsuffixes | "Splice onto " spelltypeorsubtype ": " nocardprobablymanacost | "Madness " nocardprobablymanacost | transmuteability_specific | "Draw a card." | "Haunt" newline "When the creature this haunts is put into a graveyard from the battlefield, " lastspelleffecttext | "Hellbent - If you have no cards in hand, " maybeinstead lasttypeofeffect
spellkeywordabilitysuffix_red ::= Storm | "Cycling " nocardprobablymanacost | "Scry " dynamicinteger showsuffixes | "Splice onto " spelltypeorsubtype ": " nocardprobablymanacost | "Madness " nocardprobablymanacost | "Replicate " nocardprobablymanacost | "Draw a card." | "Hellbent - If you have no cards in hand, " maybeinstead lasttypeofeffect
spellkeywordabilitysuffix_green ::= Storm | "Cycling " nocardprobablymanacost | "Scry " dynamicinteger showsuffixes | "Splice onto " spelltypeorsubtype ": " nocardprobablymanacost | "Madness " nocardprobablymanacost | "Draw a card."
maybeentwine ::= nothing | nothing | nothing | nothing | nothing | nothing | nothing | nothing | newline "Entwine " nocardprobablymanacost

unlikelytokenability ::= nothing | nothing | nothing | nothing | nothing | nothing | nothing | nothing | nothing | nothing | nothing | " with " myAbility | " with " tokenkeywordability
tokenkeywordability ::= flying | "first strike" | haste | fear | trample
maybebloodthirstrelatedability ::= nothing | newline <param_discrete::=bloodthirstparam> <param_continuous::=param_discrete> numberedability
bloodthirstparam ::= thisspt | thisspt | numplus1plus1countersonthis
thisspt ::= "~this~'s " numericalptexpression
numplus1plus1countersonthis ::= "the number of +1/+1 counters on ~this~"

numberedability ::= numberedtriggeredability | numberedactivatedability | numberedstaticability
numberedactivatedability ::= <mySpd::=inst> resetcostflags multiplecost ": " maybeToggleMyColour? numberedeffect
numberedtriggeredability ::= triggercondition space maybeToggleMyColour? numberedeffect
numberedstaticability ::= "All " qualifiedcreatures space pluralnumberedcreaturepropmodifier | "~this~ " numberedcreaturepropmodifier

Imprint



imprintabilities ::= imprintingability newabilityline useimprintedability

imprintingability ::= cipimprintingability | cipimprintingability | cipimprintingability | cipimprintingability | triggeredimprintingability | activatedimprintingability
cipimprintingability ::= cipimprintingability##myAbilityContext?
cipimprintingability_grantable ::= triggeredimprintingability | activatedimprintingability
cipimprintingability_general ::= triggeredimprintingability | activatedimprintingability
cipimprintingability_specific ::= cipimprintingability##allowCIP
cipimprintingability_false ::= triggeredimprintingability | activatedimprintingability
cipimprintingability_true ::= "Imprint When ~this~ enters the battlefield, " imprintacard
triggeredimprintingability ::= "Imprint " triggercondition imprintacard
activatedimprintingability ::= "Imprint " <mySpd::=inst> resetcostflags multiplecost ": " imprintacard
imprintacard ::= maybeyoumay " exile " imprinttargetcard##imprintcategory assignparameters##imprintcategory ". (The exiled card is imprinted on this artifact.)"

chooseimprintcategory ::= nonlandcard | creaturecard | instantsorcerycard | colouredcard | landcard
assignparameters_nonlandcard ::= <param_discrete::=imprintedcost> <param_continuous::=param_discrete> <myTargetType?::=perm> <myTarget::=targetrelatedtoimprintednonland>
assignparameters_creaturecard ::= <param_colour::=imprintedcolour> <param_discrete::=imprintedcost> <param_continuous::=param_discrete> <param_creature::=imprintedcreaturecard> <myTargetType?::=ctr> <myTarget::=targetrelatedtoimprintedcreature>
assignparameters_instantsorcerycard ::= <param_colour::=imprintedcolour> <param_discrete::=imprintedcost> <param_continuous::=param_discrete> <param_spell::=imprintedspellcard> <myTargetType?::=perm> <myTarget::=targetrelatedtoimprintedspell>
assignparameters_colouredcard ::= <param_colour::=imprintedcolour> <param_discrete::=imprintedcost> <param_continuous::=param_discrete> <myTargetType?::=perm> <myTarget::=targetofparamcolour>
assignparameters_landcard ::= <param_colour::=imprintedlandsmanacolour> <myTargetType?::=perm> <myTarget::=targetofparamcolour>

imprinttargetcard_nonlandcard ::= "a " optionallyqualifiednotinplaynonlandcard " in your hand" | "target " optionallyqualifiednotinplaynonlandcard " in " permspecifiedplayerpossessive " graveyard" | "target " optionallyqualifiednontokennonland
imprinttargetcard_creaturecard ::= "a " optionallyqualifiednotinplaycreaturecard " in your hand" | "target " optionallyqualifiednotinplaycreaturecard " in " permspecifiedplayerpossessive " graveyard" | "target nontoken " optionallyqualified_creature
imprinttargetcard_instantsorcerycard ::= "a " optionallyqualifiedspellcard " in your hand" | "target " optionallyqualifiedspellcard " in " permspecifiedplayerpossessive " graveyard"
imprinttargetcard_colouredcard ::= "a " optionallyqualifiednotinplaycolouredcard " in your hand" | "target " optionallyqualifiednotinplaycolouredcard " in " permspecifiedplayerpossessive " graveyard" | "target " optionallyqualifiednontokencoloured
imprinttargetcard_landcard ::= "a " optionallyqualifiednotinplaylandcard " in your hand" | "target " optionallyqualifiednotinplaylandcard " in " permspecifiedplayerpossessive " graveyard" | "target " optionallyqualified_land

imprintedcolour ::= "any of the imprinted card's colours"
imprintedcost ::= "the imprinted card's converted mana cost"
imprintedlandsmanacolour ::= "any colour of mana the imprinted card could produce"
imprintedcreaturecard ::= "the imprinted creature card"
imprintedspellcard ::= "the imprinted spell card"

targetrelatedtoimprintednonland ::= targetifsingular##myTargetPluralSuffix? "permanent" myTargetPluralSuffix? " that share" verbsuffix##myTargetPluralSuffix? " a type with the imprinted card"
targetrelatedtoimprintedcreature ::= targetifsingular##myTargetPluralSuffix? "creature" myTargetPluralSuffix? " that share" verbsuffix##myTargetPluralSuffix? " a creature type with the imprinted card"
targetrelatedtoimprintedspell ::= targetofparamcolour
targetofparamcolour ::= targetifsingular##myTargetPluralSuffix? "creature" myTargetPluralSuffix? " of " param_colour | targetifsingular##myTargetPluralSuffix? "creature" myTargetPluralSuffix? " of " param_colour | targetifsingular##myTargetPluralSuffix? "permanent" myTargetPluralSuffix? " of " param_colour

useimprintedability ::= activatedimprintability | activatedimprintability | triggeredimprintability | staticimprintability

activatedimprintability ::= pushparams <mySpd::=inst> resetcostflags multiplecost ": " popparams imprinteffect
triggeredimprintability ::= pushparams pushNoAllowCIP? triggercondition popAllowCIP? space popparams imprinteffect
staticimprintability ::= <myTargetPluralSuffix?::=s> myTarget space pluralpropmodifier##myTargetType?
// setting myTargetPluralSuffix? magically switches "myTarget" from "target creature which shares a blood type with imprinted card" to "creatures which share a blood type with imprinted card"

imprinteffect ::= specialtargeteffect | specialtargeteffect | maybeuseimprintednumber | maybeuseimprintednumber | maybeuseimprintedcolour | maybeuseimprintedcreature | maybeuseimprintedspell

maybeuseimprintednumber ::= <numberedeffect_no::=imprinteffect> maybenumberedeffect
maybeuseimprintedcolour ::= <dt_valuetotest::=param_colour> <dt_defined::=specifiedcoloureffect> <dt_undefined::=imprinteffect> definitiontest
maybeuseimprintedcreature ::= <dt_valuetotest::=param_creature> <dt_defined::=specifiedcreatureeffect> <dt_undefined::=imprinteffect> definitiontest
maybeuseimprintedspell ::= <dt_valuetotest::=param_spell> <dt_defined::=specifiedspelleffect> <dt_undefined::=imprinteffect> definitiontest

specifiedcoloureffect ::= addspecifiedmanaeffect | modifycreaturesspecifiedcoloureffect
specifiedcreatureeffect ::= "put " <<N::=smalldynamicinteger_noXphrase>> ind_word##N " token" pluralsuffix##lastDynamicInt?{myPS} " onto the battlefield that " beverb##myPS " a copy of " param_creature showsuffixes
specifiedspelleffect ::= "you may copy " param_spell " and cast the copy without paying its mana cost" | "you may copy " param_spell " and cast the copy without paying its mana cost" | "you may copy " param_spell " and cast the copy by paying " quote nocardcosttext quote " instead of its mana cost" | "whenever a card with the same name as " param_spell " is cast, " effecttext

addspecifiedmanaeffect ::= "add " <<N::=dynamicinteger_noXphrase>> word##N " mana of " param_colour " to your mana pool" showsuffixes optionalspendrestriction
modifycreaturesspecifiedcoloureffect ::= pushparams somenumberoftargetqualifiedcreatures " gain" verbsuffix##myTargetPluralSuffix? " protection from " popparams param_colour showsuffixes | pushparams somenumberoftargetqualifiedcreatures " become" verbsuffix##myTargetPluralSuffix? space popparams param_colour space duration showsuffixes



CategoryNotWhatItWasSupposedToBeAbout

ec2-52-204-98-217.compute-1.amazonaws.com | ToothyWiki | AlexChurchill | RecentChanges | Login | Webcomic
Edit this page | View other revisions | Recently used referrers
Last edited January 20, 2013 10:09 am (viewing revision 34, which is the newest) (diff)
Search: