return unless @hooks[event]?
for callback in @hooks[event]
callback.apply this, args
- move: (agent, card, x, y) -> # FIXME add pile argument
+ move: (agent, card, x, y, z) -> # FIXME add pile argument
# FIXME what to do on error?
return unless @cards[card]? #?.pile?
#cur_pile = cards[card].pile
@cards[card].x = x
@cards[card].y = y
+ @cards[card].z = z
- @trigger 'move', agent, card, x, y # FIXME add pile argument
+ @trigger 'move', agent, card, x, y, z # FIXME add pile argument
mark: (agent, card, state) ->
# FIXME what to do on error?
# FIXME implement set_pile(pile, card_order_array)
- set_cards: (cards) ->
+ set_cards: (agent, cards) ->
@cards = []
@piles = {}
for card in cards
unless @piles[card.pile]?
@piles[card.pile] = []
@piles[card.pile].push card
- @trigger 'set_cards', @cards
+ @trigger 'set_cards', agent, @cards
+
+ send_state: (agent) ->
+ @trigger 'send_state', agent
process_messages: (messages) ->
unless typeof messages is 'array' or typeof messages is 'object'
return typeof messages
for message in messages
- unless message instanceof Array and message[0]? and message[0] in ['move', 'mark', 'flip', 'set_cards']
+ unless message instanceof Array and message[0]? and message[0] in ['move', 'mark', 'flip', 'set_cards', 'send_state']
# FIXME what to do on error?
return 2
method = message.shift()