rlm@0
|
1 Components of a MTG game
|
rlm@0
|
2
|
rlm@0
|
3 - Relationships between players -- enemies, allies, transitivity
|
rlm@0
|
4 - Card zones
|
rlm@0
|
5 - which players can see what's in them
|
rlm@0
|
6 - shuffling, peeking, zone-transfer
|
rlm@0
|
7 - Cost-paying engine
|
rlm@0
|
8 - validate sufficient payment
|
rlm@0
|
9 - Player choice interface
|
rlm@0
|
10 - yes/no dialogues
|
rlm@0
|
11 - choose an in-game item from a list (creatures, players)
|
rlm@0
|
12 - choose an abstract item from a list (creature types, mana colors)
|
rlm@0
|
13 - branch conditions -- choose two
|
rlm@0
|
14 - GIVE OPTION TO REMEMBER DEFAULT CHOICE IN A CERTAIN CONTEXT
|
rlm@0
|
15 - Card status
|
rlm@0
|
16 - name, visibility, face-up (independent from visibility)
|
rlm@0
|
17 - other attributes (type, color)
|
rlm@0
|
18 - modifiers: tokens, abilities
|
rlm@0
|
19 - QUERY FOR CERTAIN ATTRIBUTES (number of tokens of a certain type, Haste)
|
rlm@0
|
20 - CREATE LISTS OF CARDS POSSESSING CERTAIN PROPERTIES. DETERMINE PROPERTIES LAZILY.
|
rlm@0
|
21 - Superstructure and metaphysics
|
rlm@0
|
22 - Create and destroy particular instances of cards (e.g. some cards are destroyed in one zone and recreated in another as opposed to moved. distinguish creature spells from creatures)
|
rlm@0
|
23 - Trace the origin of effects to these instances
|
rlm@0
|
24
|
rlm@0
|
25 - Players and turns
|
rlm@0
|
26 - Determine player priority (APNAP)
|
rlm@0
|
27 - Keep track of whose turn it is
|
rlm@0
|
28 - Handle combat
|
rlm@0
|
29 - Possibility of adding or losing turns, taking control of turns
|
rlm@0
|
30 - Win and lose conditions
|
rlm@0
|
31
|
rlm@0
|
32 - Parsed Rules
|
rlm@0
|
33 - Determine which rules apply.
|
rlm@0
|
34 - Make rules happen. Chain them appropriately.
|
rlm@0
|
35 - Ask players to make choices
|
rlm@0
|
36 - Unparsed rules
|
rlm@0
|
37 - Parse english text into MTG rules
|