[Home]AlexChurchill/MCGTargets

ec2-3-81-28-94.compute-1.amazonaws.com | ToothyWiki | AlexChurchill | RecentChanges | Login | Webcomic

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 qualified targets and similar concepts.

Multiples



somenumberoftargetqualifiedcreatures ::= "target " qualifiedcreature setTargetOneCreature? | multipletarget space qualifiedcreatures setTargetMultiCreatures?
somenumberoftargetqualifiedpermanents ::= "target " qualifiedpermanent setTargetOnePermanent? | multipletarget space qualifiedpermanents setTargetMultiPermanents?
tosomenumberoftargetdamagerecipients ::= "to target " <damageRecipSpecification?::=exclusive> damagerecipient | "to target " <damageRecipSpecification?::=exclusive> damagerecipient | tomultipletargetdamagerecipients
//denotedtarget space pushsuffixes damagerecipients popsuffixes
somenumberofrecurseablecards ::= "a " recurseablecard | nontotalmultiplenontarget space recurseablecards
somenumberofqualifiedpermanentcards ::= "a " optionallyqualifiednotinplaypermanentcard | nontotalmultiplenontarget space optionallyqualifiednotinplaypermanentcards

multipletarget ::= "two target" <damageRecipSpecification?::=exclusive> | "up to " <<N::=dynamicinteger>> word##N " target" <damageRecipSpecification?::=exclusive> | "all" <damageRecipSpecification?::=inclusive> | "two target" <damageRecipSpecification?::=exclusive> | "up to " <<N::=dynamicinteger>> word##N " target" <damageRecipSpecification?::=exclusive> | "all" <damageRecipSpecification?::=inclusive> | "any number of target" <damageRecipSpecification?::=exclusive>
tomultipletargetdamagerecipients ::= "to each of two target " <damageRecipSpecification?::=exclusive> damagerecipients | "to each " <damageRecipSpecification?::=inclusive> damagerecipient | "to each of two target " <damageRecipSpecification?::=exclusive> damagerecipients | "to each " <damageRecipSpecification?::=inclusive> damagerecipient | "divided as you choose among any number of target " <damageRecipSpecification?::=exclusive> damagerecipients
nontotalmultipletarget ::= "two target" | "up to " <<N::=dynamicinteger>> word##N " target" | "two target" | "up to " <<N::=dynamicinteger>> word##N " target" | "any number of target"
multiplenontarget ::= two | "up to " <<N::=dynamicinteger>> word##N | all | two | "up to " <<N::=dynamicinteger>> word##N | all | "any number of"
nontotalmultiplenontarget ::= two | "up to " <<N::=dynamicinteger>> word##N | two | "up to " <<N::=dynamicinteger>> word##N | "any number of"
// more "two", "up to" and "all"s than "any number of"s, as those are the most swingy

recurseablecard ::= recurseable##myColour " card" myPluralSuffix?
recurseable_white ::= artifact | enchantment | auraorequipment
recurseable_blue ::= instant | instantorsorcery
recurseable_black ::= creature
recurseable_red ::= artifact | sorcery
recurseable_green ::= creature | land
recurseable_artifact ::= artifact | "artifact creature"
recurseablecards ::= <myPluralSuffix?::=s> recurseablecard <myPluralSuffix?::=nothing>

tutorablecolourtargetcard ::= tutorabletargetcard##myColour " card"
tutorabletargetcard_white ::= artifact intoplayok | enchantment intoplayok | auraorequipment intoplayok
tutorabletargetcard_blue ::= instant notintoplay | instantorsorcery notintoplay | artifact intoplayok
tutorabletargetcard_black ::= nothing notintoplay | creature intoplayok
tutorabletargetcard_red ::= sorcery notintoplay
tutorabletargetcard_green ::= creature intoplayok | land intoplayok
tutorabletargetcard_artifact ::= nothing notintoplay | artifact intoplayok
// "nothing" in this case means "any card"
notintoplay ::= <tutordest::=hand>
intoplayok ::= <tutordest::=hand> | <tutordest::=play>

Qualified Targets



qualifiedpermanent ::= myqualifiedpermanent | myqualifiedpermanent | newqualifiedpermanent
newqualifiedpermanent ::= "permanent" myPluralSuffix? | "permanent" myPluralSuffix? | permanenttype myPluralSuffix? | creaturetype | colouredpermanent myPluralSuffix? | maybecontrolledpermanent##myControlFlag? | maybequalifiedland##qualifiedLandAllowed? | unusualqualifiedpermanentadjective
// myPluralSuffix? must be cleared by every nonterminal which sets it - so in general it will be blank
maybecontrolledpermanent_used ::= qualifiedpermanent
maybecontrolledpermanent_nothing2 ::= <myControlFlag?::=used> "permanent" myPluralSuffix? space controlphrasefromeffect
unusualqualifiedpermanentadjective ::= <tapstatussrc::=qualifiedpermanent> maybetapstatusperm | <legendarysrc::=qualifiedpermanent> maybelegendaryperm | library##myPluralSuffix?
// ...any others?
maybetapstatusperm ::= _maybetapstatusperm##tapStatus
_maybetapstatusperm_nothing2 ::= <tapStatus::=untapped> "untapped " tapstatussrc | <tapStatus::=tapped> "tapped " tapstatussrc
_maybetapstatusperm_untapped ::= tapstatussrc
_maybetapstatusperm_tapped ::= tapstatussrc
maybelegendaryperm ::= _maybelegendaryperm##legendaryStatus
_maybelegendaryperm_nothing2 ::= <legendaryStatus::=legendary> "legendary " legendarysrc | <legendaryStatus::=nonlegendary> "nonlegendary " legendarysrc
_maybelegendaryperm_legendary ::= legendarysrc
_maybelegendaryperm_nonlegendary::= legendarysrc
maybequalifiedland_true ::= qualifiedland
maybequalifiedland_false ::= qualifiedpermanent

damagerecipient ::= damagerecipient##myColour
damagerecipient_white ::= combatant
damagerecipient_blue ::= normaldamagerecipient
damagerecipient_black ::= normaldamagerecipient
damagerecipient_red ::= normaldamagerecipient
damagerecipient_artifact ::= normaldamagerecipient
damagerecipient_green ::= flyer
flyer ::= creature myPluralSuffix? " with flying"

normaldamagerecipient ::= creature myPluralSuffix? setTargetCreature?##myPluralSuffix? | optionallyqualified_player setTargetPlayer?##myPluralSuffix? | "creature" myPluralSuffix? space andoror##damageRecipSpecification? " player" myPluralSuffix? setTargetCreature?##myPluralSuffix? | qualifiedcreature setTargetCreature?##myPluralSuffix?
combatant ::= "attacking or blocking " optionallyqualified_creature setTargetCreature?##myPluralSuffix?

qualifiedcreature ::= myqualifiedcreature | myqualifiedcreature | newqualifiedcreature
newqualifiedcreature ::= "creature" myPluralSuffix? | "creature" myPluralSuffix? | creaturetype | maybecolourqualifiedcreature | maybeptqualifiedcreature | creaturetype | colourphrase " creature" myPluralSuffix? | "creature" myPluralSuffix? " with " ptexpression space dynamicinteger inequality showsuffixes | slightlyqualifiedcreature | maybeunusualcreatureadjectivecreature | "creature" myPluralSuffix? " with " creaturekeywordabilitygeneral | maybecombatadjectivecreature | <tapstatussrc::=newqualifiedcreature> maybetapstatusperm | "artifact creature" myPluralSuffix?
slightlyqualifiedcreature ::= creaturetype | colourphrase " creature" myPluralSuffix?
maybecontrolledcreature ::= _maybecontrolledcreature##myControlFlag?
_maybecontrolledcreature_used ::= qualifiedcreature
_maybecontrolledcreature_nothing2 ::= <myControlFlag?::=used> "creature" myPluralSuffix? space controlphrasefromeffect
maybecombatadjectivecreature ::= _maybecombatadjectivecreature##mySpd
_maybecombatadjectivecreature_phase ::= qualifiedcreature
_maybecombatadjectivecreature_sorc ::= qualifiedcreature
_maybecombatadjectivecreature_inst ::= _maybecombatadjectivecreature##myCombatAdjective?
_maybecombatadjectivecreature_used ::= qualifiedcreature
_maybecombatadjectivecreature_nothing2 ::= <myCombatAdjective?::=used> combatadjective " creature" myPluralSuffix? | <myCombatAdjective?::=used> combatadjective space qualifiedcreature
maybecolourqualifiedcreature ::= _maybecolourqualifiedcreature##myColourAdjective?
_maybecolourqualifiedcreature_used ::= qualifiedcreature
_maybecolourqualifiedcreature_nothing2 ::= colourphrase " creature" myPluralSuffix?
maybeptqualifiedcreature ::= _maybeptqualifiedcreature##myPTFlag
_maybeptqualifiedcreature_used ::= qualifiedcreature
_maybeptqualifiedcreature_nothing2 ::= <myPTFlag::=used> "creature" myPluralSuffix? " with " ptexpression space dynamicinteger inequality showsuffixes
maybeunusualcreatureadjectivecreature ::= qualifiedcreature | newqualifiedcreature | unusualcreatureadjective " creature" myPluralSuffix? | unusualcreatureadjective space newqualifiedcreature

qualifiedland ::= "land" myPluralSuffix? | "land" myPluralSuffix? | maybenon "basic land" myPluralSuffix? | singorpl_basiclandtype | <tapstatussrc::=qualifiedland> maybetapstatusperm

qualifiedenchantment ::= colourphrase space enchantment myPluralSuffix? | colourphrase space enchantment myPluralSuffix? | enchantment myPluralSuffix? space controlphrasefromeffect | enchantment myPluralSuffix? space controlphrasefromeffect | unusualqualifiedenchantmentadjective
qualifiedartifact ::= artifact myPluralSuffix? space controlphrasefromeffect | unusualqualifiedartifactadjective
unusualqualifiedenchantmentadjective ::= <legendarysrc::=qualifiedenchantment> maybelegendaryperm
unusualqualifiedartifactadjective ::= <tapstatussrc::=qualifiedartifact> maybetapstatusperm | <legendarysrc::=qualifiedartifact> maybelegendaryperm

qualifiedspell ::= spelltype mySpellPluralSuffix? | "spell" mySpellPluralSuffix? | slightlyqualifiedcreature " spell" mySpellPluralSuffix? | colourphrase " spell" mySpellPluralSuffix? | nonlandpermanenttype " spell" mySpellPluralSuffix? | instantorsorcery " spell" mySpellPluralSuffix? | maybemanaqualifiedspell | spellsubtype " spell" mySpellPluralSuffix?
qualifiedoneoffspell ::= colourphrase space oneoffspell | maybemanaqualifiedoneoffspell | spellsubtype " spell" mySpellPluralSuffix?
maybemanaqualifiedspell ::= _maybemanaqualifiedspell##myManaQual?
_maybemanaqualifiedspell_used ::= qualifiedspell
_maybemanaqualifiedspell_nothing2 ::= <myManaQual?::=used> qualifiedspell space manacostphrase <myManaQual?::=nothing>
maybemanaqualifiedoneoffspell ::= _maybemanaqualifiedoneoffspell##myManaQual?
_maybemanaqualifiedoneoffspell_used ::= qualifiedoneoffspell
_maybemanaqualifiedoneoffspell_nothing2 ::= <myManaQual?::=used> qualifiedoneoffspell space manacostphrase <myManaQual?::=nothing>

qualifiedspellorpermanent ::= "spell or permanent" | spellandpermanentadjective " spell or permanent" | qualifiedspell | qualifiedpermanent setTargetOnePermanent?

qualifiednoncreaturepermanent ::= noncreaturepermanenttype myPluralSuffix? | noncreaturepermanenttype myPluralSuffix? | noncreaturepermanenttype myPluralSuffix? | "untapped " noncreaturepermanenttype myPluralSuffix? | maybenon "legendary " noncreaturepermanenttype myPluralSuffix? | colourphrase " enchantment" myPluralSuffix?
qualifiedspellorability ::= "spell" mySpellPluralSuffix? | qualifiedspell | activatedability##mySpellPluralSuffix? optionalabilitysource | spellorability##mySpellPluralSuffix?
qualifiedoneoffspellorability ::= oneoffspell | qualifiedoneoffspell | activatedability##mySpellPluralSuffix? optionalabilitysource | spellorability##mySpellPluralSuffix?
optionalabilitysource ::= nothing | nothing | nothing | nothing | " from a " qualifiedpermanent " source"

qualifiedplayer ::= "player" myPluralSuffix? " with " dynamicinteger " life" inequality showsuffixes | "player" myPluralSuffix? " with " dynamicinteger " life" inequality showsuffixes | "player" myPluralSuffix? " with " dynamicinteger " life" inequality showsuffixes | "player" myPluralSuffix? " with " dynamicinteger inequality " poison counters" showsuffixes

// Plurals

qualifiedpermanents ::= <myPluralSuffix?::=s> qualifiedpermanent <myPluralSuffix?::=nothing>
qualifiedcreatures ::= <myPluralSuffix?::=s> qualifiedcreature <myPluralSuffix?::=nothing>
damagerecipients ::= <myPluralSuffix?::=s> damagerecipient <myPluralSuffix?::=nothing>
qualifiedspells ::= <mySpellPluralSuffix?::=s> qualifiedspell <mySpellPluralSuffix?::=nothing>
qualifiednoncreaturepermanents ::= <myPluralSuffix?::=s> qualifiednoncreaturepermanent <myPluralSuffix?::=nothing>
qualifiedspellsorabilities ::= <mySpellPluralSuffix?::=s> qualifiedspellorability <mySpellPluralSuffix?::=nothing>

// Non-something qualified objects

nonptqualifiedcreature ::= <myPTFlag::=used> qualifiedcreature <myPTFlag::=nothing>
noncontrolqualifiedcreature ::= <myControlFlag?::=used> qualifiedcreature <myControlFlag?::=nothing>
noncontrolqualifiedpermanent ::= <myControlFlag?::=used> qualifiedpermanent <myControlFlag?::=nothing>
noncontrolqualifiedland ::= <myControlFlag?::=used> qualifiedland <myControlFlag?::=nothing>
nonuntapnoncontrolqualifiedpermanent ::= <tapStatus::=untapped> noncontrolqualifiedpermanent <tapStatus::=nothing>
noncontrolqualifiedpermanents ::= <myPluralSuffix?::=s> noncontrolqualifiedpermanent <myPluralSuffix?::=nothing>
noncombatqualifiedcreatures ::= <myCombatAdjective?::=used> qualifiedcreatures <myCombatAdjective?::=nothing>
noncolourqualifiedcreature ::= <myColourAdjective?::=used> qualifiedcreature <myColourAdjective?::=nothing>
nontapqualifiedland ::= <tapStatus::=untapped> qualifiedland <tapStatus::=nothing>

// Optionally qualified cards

optionallyqualifiednotinplaycard ::= "card" myPluralSuffix? | "card" myPluralSuffix? | notinplaycard
notinplaycard ::= cardtype " card" myPluralSuffix? | cardtype " card" myPluralSuffix? | colourphrase " card" myPluralSuffix? | creaturetype " card" myPluralSuffix? | colourphrase space colouredcardtype " card" myPluralSuffix? | "card" myPluralSuffix? " with converted mana cost " dynamicinteger inequality showsuffixes
optionallyqualifiednotinplaycards ::= <myPluralSuffix?::=s> optionallyqualifiednotinplaycard <myPluralSuffix?::=nothing>

optionallyqualifiednotinplaypermanentcard ::= "card" myPluralSuffix? | "card" myPluralSuffix? | notinplaypermanentcard
notinplaypermanentcard ::= permanenttype " card" myPluralSuffix? | permanenttype " card" myPluralSuffix? | colouredpermanentcard myPluralSuffix? | <myManaQualSrc?::=notinplaypermanentcard> maybemanaqualnippcard
maybemanaqualnippcard ::= _maybemanaqualnippcard##myManaQual?
_maybemanaqualnippcard_used ::= myManaQualSrc?
_maybemanaqualnippcard_nothing2 ::= <myManaQual?::=used> myManaQualSrc? " with converted mana cost " dynamicinteger inequality showsuffixes <myManaQual?::=nothing>

optionallyqualified_creature ::= creature myPluralSuffix? | creature myPluralSuffix? | creature myPluralSuffix? | qualifiedcreature
optionallyslightlyqualifiedcreature ::= creature myPluralSuffix? | creature myPluralSuffix? | creature myPluralSuffix? | slightlyqualifiedcreature
optionallyqualified_enchantment ::= enchantment myPluralSuffix? | enchantment myPluralSuffix? | enchantment myPluralSuffix? | qualifiedenchantment
optionallyqualified_artifact ::= artifact myPluralSuffix? | artifact myPluralSuffix? | artifact myPluralSuffix? | qualifiedartifact
optionallyqualified_artifactorenchantment ::= artifactorenchantment | artifactorenchantment | artifactorenchantment | artifactorenchantment | artifactorenchantment | artifactorenchantment | qualifiedartifact | qualifiedenchantment
optionallyqualified_land ::= land myPluralSuffix? | land myPluralSuffix? | land myPluralSuffix? | qualifiedland
optionallyqualified_permanent ::= permanent myPluralSuffix? | permanent myPluralSuffix? | permanent myPluralSuffix? | qualifiedpermanent
optionallyqualified_player ::= player myPluralSuffix? | player myPluralSuffix? | player myPluralSuffix? | qualifiedplayer
optionallyqualified_spell ::= spell myPluralSuffix? | spell myPluralSuffix? | spell myPluralSuffix? | qualifiedspell
optionallyqualifiedspellorability ::= spellorability##mySpellPluralSuffix? | spellorability##mySpellPluralSuffix? | spellorability##mySpellPluralSuffix? | qualifiedspellorability

optionallyqualifiedcreatures ::= <myPluralSuffix?::=s> optionallyqualified_creature <myPluralSuffix?::=nothing>
optionallyqualifiedlands ::= <myPluralSuffix?::=s> optionallyqualified_land <myPluralSuffix?::=nothing>


optionallyqualifiednotinplaypermanentcards ::= <myPluralSuffix?::=s> optionallyqualifiednotinplaypermanentcard <myPluralSuffix?::=nothing>
optionallyqualifiedspellsorabilities ::= <mySpellPluralSuffix?::=s> optionallyqualifiedspellorability <mySpellPluralSuffix?::=nothing>

optionallyqualifiednotinplaynonlandcard ::= "nonland card" myPluralSuffix? | "nonland card" myPluralSuffix? | "nonland card" myPluralSuffix? | notinplaynonlandcard
optionallyqualifiednotinplaycreaturecard ::= optionallyslightlyqualifiedcreature " card" myPluralSuffix?
optionallyqualifiednotinplaycolouredcard ::= colouredpermanenttype " card" | colouredpermanenttype " card" | colouredpermanenttype " card" | creaturetype " card" myPluralSuffix?
optionallyqualifiednotinplaylandcard ::= "land card" | "land card" | "land card" | maybenon "basic land card"
// not many other qualifications one can apply
optionallyqualifiedspellcard ::= instantorsorcery " card" | instantorsorcery " card" | instantorsorcery " card" | qualifiedoneoffspell " card"
optionallyqualifiednontokennonland ::= "nontoken nonland permanent" | "nontoken nonland permanent" | "nontoken nonland permanent" | "nontoken nonland " <myTokenQual?::=used> <qualifiedLandAllowed?::=false> qualifiedpermanent <myTokenQual?::=nothing> <qualifiedLandAllowed?::=true>
optionallyqualifiednontokencreature ::= "nontoken creature" | "nontoken creature" | "nontoken creature" | "nontoken " <myTokenQual?::=used> qualifiedcreature <myTokenQual?::=nothing>
optionallyqualifiednontokencoloured ::= optionallyqualifiednontokencreature

optionallynoncolourqualifiedcreature ::= <myColourAdjective?::=used> optionallyqualified_creature <myColourAdjective?::=nothing>

notinplaynonlandcard ::= nonlandpermanenttype " card" myPluralSuffix? | nonlandpermanenttype " card" myPluralSuffix? | colouredpermanentcard myPluralSuffix? | <myManaQualSrc?::=notinplaynonlandcard> maybemanaqualnippcard

optionallyqualifieddestroyablepermanent ::= optionallyqualifieddestroyablepermanent##myColour
optionallyqualifieddestroyablepermanents ::= <myPluralSuffix?::=s> optionallyqualifieddestroyablepermanent <myPluralSuffix?::=nothing>
somenumberofoptionallyqualifieddestroyablepermanents ::= "target " optionallyqualifieddestroyablepermanent setTargetOnePermanent? | multipletarget space optionallyqualifieddestroyablepermanents setTargetMultiPermanents?
optionallyqualifieddestroyablepermanent_white ::= optionallyqualified_artifactorenchantment | optionallyqualified_artifactorenchantment | optionallyqualified_enchantment | "black creature" myPluralSuffix?
// can't check for "all" to get Wrath or Armageddon, vexingly
optionallyqualifieddestroyablepermanent_black ::= optionallyqualified_creature | optionallyqualified_creature | "nonblack creature" myPluralSuffix? | "nonblack " optionallyqualified_creature | unusualblackdestroyable
optionallyqualifieddestroyablepermanent_red ::= optionallyqualified_land | optionallyqualified_artifact
optionallyqualifieddestroyablepermanent_green ::= optionallyqualified_artifactorenchantment | optionallyqualified_artifactorenchantment | optionallyqualified_land | "creature" myPluralSuffix? " with flying"

unusualblackdestroyable ::= optionallyqualified_land | non choosesinglecommoncreaturetype_black " creature" myPluralSuffix? | whiteorgreencreaturetype##myPluralSuffix?
whiteorgreencreaturetype_nothing2 ::= <tmp::=whiteorgreen> choosesinglecommoncreaturetype##tmp
whiteorgreencreaturetype_s ::= <tmp::=whiteorgreen> <tmp::=choosesinglecommoncreaturetype##tmp> plural##tmp
whiteorgreen ::= white | green


ec2-3-81-28-94.compute-1.amazonaws.com | ToothyWiki | AlexChurchill | RecentChanges | Login | Webcomic
Edit this page | View other revisions | Recently used referrers
Last edited September 2, 2008 9:35 am (viewing revision 10, which is the newest) (diff)
Search: