+###
+Peach CGT -- Card Game Table simulator
+Copyright (C) 2011 Jason Woofenden
+Lincensed under AGPLv3. Source here: https://gitorious.org/peach-cgt
+###
+
# this file is used by the client and server.
# work around lack of module system in the browser:
my_exports = window.game_model
class GameState
- constructor: (agent) ->
+ constructor: (slug, agent) ->
+ @slug = slug
@agent = agent
@hooks = {}
@cards = []
@cards.push card
@trigger 'set_cards', agent, @cards
+ new_cards: (agent, cards) ->
+ for card in cards
+ card.number = @cards.length unless card.number
+ card.z = @cards.length unless card.z
+ @cards.push card
+ @trigger 'new_cards', agent, cards
+
send_state: (agent) ->
@trigger 'send_state', agent
return typeof messages
for message in messages
- unless message instanceof Array and message[0]? and message[0] in ['move', 'mark', 'flip', 'set_cards', 'send_state']
+ unless message instanceof Array and message[0]? and message[0] in ['move', 'mark', 'flip', 'set_cards', 'send_state', 'new_cards']
+ if console?.log?
+ console.log "Got unrecognized message: #{JSON.stringify message}"
# FIXME what to do on error?
return 2
method = message.shift()
return
-my_exports.new = (agent) -> new GameState agent
+my_exports.new = (slug, agent) -> new GameState slug, agent