annotate src/rlm/mtg-notes.txt @ 0:78a630e650d2

initial import
author Robert McIntyre <rlm@mit.edu>
date Tue, 18 Oct 2011 00:57:08 -0700
parents
children
rev   line source
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