-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTODO
115 lines (75 loc) · 4.21 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# TODO
There are many, many things we can add. Here are a few ideas:
GENERAL:
- add configuration options and command line options
- add a way to set options at the prompt
- right now '?' shows the oracle type/rules; there should also be an easy
way to show the originals.
CARD METHODS/ATTRIBUTES:
- once we have keyword data: attribute('flying') etc.
[in progress]
- some/all of the keywords could be properties, e.g. we could support
"flying" instead of "has('flying')"
[2010.10.31] Probably not, there are too many of them, and some of them
clash with a more useful use of the name (see protection below)
- some keywords have additional info, e.g. we should be able to do
"protection('white')" etc. (although this clashes with a potential
property called 'protection'... but we can use has('protection')
instead.) ditto for mana, etc. mana is especially interesting, since I
want to be able to say, show all cards that produce (at least) G, show
all cards that produce colorless mana, etc.
- we should still be able to "pick apart" hybrid mana (e.g. show cards
that have R/W hybrid mana; this is NOT the same as "has_hybrid_mana and
white and red"). Also 2/X hybrids.
- in general, we need to be able to select more precisely on mana cost,
anyway. "card has X in its mana cost", etc.
- do we need to do anything special for X spells?
- some keywords have TWO arguments, e.g. reinforce (as seen in MOR). we
currently have no way to query both arguments.
- there should be a way to test if a card _only_ appears in a given set
(or maybe a list of sets). (among other things, this is useful for
finding cards in decks and special sets and such for which we don't have
keywords stored yet, without having to make a separate list of all the
cards in that set/deck.)
- Phyrexian mana counts as a CMC of 1, is this correct?
OUTPUT:
- can be redirected or written directly to file, if desired
- can be in other formats (XML, HTML, whatevs)
- users should be able to specify custom print functions for both output
on screen, and to file
COMMAND LINE:
- there should be options that can be set from the command line, e.g. set
the default output format, only list the same card once in a result set,
etc.
- it should be possible to enter simple "group by" queries from the
command line. not sure how yet. :-) I want to be able to group by color,
for example, and the program shows how many cards there are of each
color. [maybe we should give it a predicate, and a list with values to
try. in this case, we would give it has_color, then a list of colors. we
could do the same with types, etc.]
- add a query as a command line option
- command line switch to get N random cards? (can be used in combination
with queries, so we can get e.g. N random red creatures, etc)
- in addition to the random stuff, we could do a "booster simulator",
which gives you 15 cards (with the correct rarity distributions), like
you would get them in a booster pack
KEYWORDS:
- keep a list of cards that we already added keywords for. filter out
those cards somehow before we apply the keywords of a next set.
[may not apply for some cards, trickier than it seems]
SETS:
- I want to be able to say 'set.online' if a set is available in MTGO, and
'set.online_only' if it's _ONLY_ in MTGO (like Masters Edition etc).
To do the former, we'd need a list of sets that are available in MTGO as
well. Or maybe add a tag to magicripper's sets.py that indicates this.
PROGRAMMABLE:
- since everything is in Python, programmers could hack up quick scripts
to access or manipulate the card database in ways that are difficult or
impossible using the command line and the query language. let's make
sure all the relevant code is accessible and obvious to use.
(IOW, have a reasonable API)
FARFETCHED:
- add rules and search them
- add banned/restricted lists and use them as search criteria
DOCUMENTATION:
- start writing a tutorial and/or manual... with lots of examples...