Basics
Turn Order
- Event Card Phase (skipped first turn.)
- Reveal each event card type one at a time and resolve its text
- Increment wildlings counter
- Planning Phase
- All Players Assign Orders (simultaneously)
- Orders are issued one per occupied land
- Orders are issused face down
- All Players Reveal Orders (simultaneously)
- Raven-controlling player may change one of their orders.
- All Players Assign Orders (simultaneously)
- Action Phase
- Resolve raids (in Iron Throne order)
- Resolve marches
- One march per player per turn
- Resolved in round round, based on Iron Throne order
- Establish control when leaving area.
- Resolve Battle
- Battle
- Call for support
- Announce combat strength
- Select House card (simultaneously, hidden)
- Reveal House card (simultaneously)
- Resolve combat
- Compare overall combat strength
- Allow player to use Valyrian Steel (only one combat per turn)
- Ties are broken by Fiefdom rank
- Combat swords (winner swords - loser castles)
- Allow loser to choose casulties.
- Loser routs surviving units to an adjacent vacant or allied land.
- Note: all surviving units must go to the same land.
- Note: rout paths include boats.
- Discard used house cards.
- Pick up all cards if no cards are left in your hand
- Resolve Consolidate Power orders
Game Objects
A game session is...
GameSessionObject
Name:String (name of a game, e.g. "Matt's AGOT")
Players:List<PlayerObject> (a list of all playing players)
WildingsTrack:Int (min 0, max 6)
SupplyTrack:Map<Int,PlayerObject> (key matters, key == rank)
ThroneTrack:List<PlayerObject> (order matters)
FiefdomsTrack:List<PlayerObject> (order matters)
CourtTrack:List<PlayerObject> (order matters)
CurrentTurn:Int (min: 1, max 10)
end GameSessionObject
Game type objects represent the high level variants
GameTypeObject
Name:String
PlayerMin:Int
PlayerMax:Int
AvailableHouses:List<HouseObject>
end GameTypeObject
A player object represents an instance of a player in a game session.
PlayerObject
Name:String
PlayingHouse:Ref<HouseObject>
PowerAmount:Int
HasRaven:Function (checks GameSessionObject for position on CourtTrack)
end PlayerObject
A house object defines the the various houses in AGOT
HouseObject
Name:String
StartingRules:Ref<StartSettings> (linked by HouseObject.Name)
end HouseObject
Army cards objects are a representation of each army card for each house.
ArmyCardsObject
Name:String
House:Ref<HouseObject>
CombatStr:Int
NumCastles:Int
NumSwords:Int
SpecialRules:Ref<SpecialRulesObject> (to be determined.)
end ArmyCardsObject
ddd
MapObject
Name:String
NumBarrels:Int
NumCrowns:Int
LocationType:Enum(Land,Sea,Stronghold,City)
HouseCapital:Ref<HouseObject> (or null)
HasPort:Boolean
end MapObject
ddd
MapDAG end MapDAG
ddd
MapInstanceObject
OccupiedBy:Ref<PlayerObject>
ControlledBy:Ref<PlayerObject>
LocalArmies:List<ArmyObjectInstance>
HasFort:Boolean
end MapInstanceObject
ddd
ArmyObjectInstance
NumKnights:Int
NumFootmen:Int
NumSiege:Int
NumBoats:Int
IsLand:Boolean
end ArmyObjectInstance
ddd
EventCardsObject
Name:String
EventType:Int (1, 2 or 3)
EventText:String
EventRule:Ref<EventRuleObject>
end EventCardsObject
ddd
Project Information
SVN URL: svn checkout http://agotbgonline.googlecode.com/svn/trunk/ agotbgonline
Supporting Libraries
AppFuse - Maven Archetype
Jersey - Facilitating REST
OpenLaszlo - For presentation
JGraphT - for DAG collection
Spring - core object management
Hibernate - ORM wrapper for data