-- | Attributes with special meaning to Dovin. Use these rather than strings to
-- avoid typos. They should generally match Magic keywords.
module Dovin.Attributes where

import Data.Monoid ((<>))

import Dovin.Types

-- | Return a card name suffixed by the given number.
numbered :: Int -> CardName -> CardName
numbered :: Int -> CardName -> CardName
numbered Int
n CardName
name = CardName
name CardName -> CardName -> CardName
forall a. Semigroup a => a -> a -> a
<> CardName
" " CardName -> CardName -> CardName
forall a. Semigroup a => a -> a -> a
<> Int -> CardName
forall a. Show a => a -> CardName
show Int
n

activated :: CardAttribute
activated :: CardName
activated = CardName
"activated"
arcane :: CardAttribute
arcane :: CardName
arcane = CardName
"arcane"
attacking :: CardAttribute
attacking :: CardName
attacking = CardName
"attacking"
aura :: CardAttribute
aura :: CardName
aura = CardName
"aura"
artifact :: CardAttribute
artifact :: CardName
artifact = CardName
"artifact"
copy :: CardAttribute
copy :: CardName
copy = CardName
"copy"
creature :: CardAttribute
creature :: CardName
creature = CardName
"creature"
deathtouch :: CardAttribute
deathtouch :: CardName
deathtouch = CardName
"deathtouch"
deathtouched :: CardAttribute
deathtouched :: CardName
deathtouched = CardName
"deathtouched"
defender :: CardAttribute
defender :: CardName
defender = CardName
"defender"
doublestrike :: CardAttribute
doublestrike :: CardName
doublestrike = CardName
"doublestrike"
enchantment :: CardAttribute
enchantment :: CardName
enchantment = CardName
"enchantment"
exerted :: CardAttribute
exerted :: CardName
exerted = CardName
"exerted"
exileWhenLeaveStack :: CardAttribute
exileWhenLeaveStack :: CardName
exileWhenLeaveStack = CardName
"exile-when-leave-stack"
firststrike :: CardAttribute
firststrike :: CardName
firststrike = CardName
"firststrike"
flash :: CardAttribute
flash :: CardName
flash = CardName
"flash"
flying :: CardAttribute
flying :: CardName
flying = CardName
"flying"
haste :: CardAttribute
haste :: CardName
haste = CardName
"haste"
indestructible :: CardAttribute
indestructible :: CardName
indestructible = CardName
"indestructible"
instant :: CardAttribute
instant :: CardName
instant = CardName
"instant"
hexproof :: CardAttribute
hexproof :: CardName
hexproof = CardName
"hexproof"
land :: CardAttribute
land :: CardName
land = CardName
"land"
legendary :: CardAttribute
legendary :: CardName
legendary = CardName
"legendary"
lifelink :: CardAttribute
lifelink :: CardName
lifelink = CardName
"lifelink"
mentor :: CardAttribute
mentor :: CardName
mentor = CardName
"mentor"
planeswalker :: CardAttribute
planeswalker :: CardName
planeswalker = CardName
"planeswalker"
sorcery :: CardAttribute
sorcery :: CardName
sorcery = CardName
"sorcery"
storm :: CardAttribute
storm :: CardName
storm = CardName
"storm"
summoned :: CardAttribute
summoned :: CardName
summoned = CardName
"summoned"
undying :: CardAttribute
undying :: CardName
undying = CardName
"undying"
tapped :: CardAttribute
tapped :: CardName
tapped = CardName
"tapped"
token :: CardAttribute
token :: CardName
token = CardName
"token"
trample :: CardAttribute
trample :: CardName
trample = CardName
"trample"
triggered :: CardAttribute
triggered :: CardName
triggered = CardName
"triggered"
vigilance :: CardAttribute
vigilance :: CardName
vigilance = CardName
"vigilance"