ec2-34-231-180-210.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.
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
// 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
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
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>
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"
// 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
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
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
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"
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