From 711b95481e8373c56ce14f9d8b200f4204d13a36 Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Mon, 31 Oct 2011 23:18:18 -0400 Subject: [PATCH] track z-axis (layer) on server, use for view init --- client.coffee | 16 ++++++++++++---- common.coffee | 5 +++-- server.coffee | 4 ++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/client.coffee b/client.coffee index 99a70a7..21587dd 100644 --- a/client.coffee +++ b/client.coffee @@ -45,7 +45,15 @@ instantiate_card = (card) -> else card_class = 'your_card' - view = $ $ "
#{text}
" + # initial card state from server has z so that stacks come out with the right layers + if card.z? + if card.z > top_card_z + top_card_z = card.z + else + unless card.pile + card.z = next_card_z() + + view = $ $ "
#{text}
" button_box = $ $ '
' flip_button = new_button "flip over" mark_button = new_button "mark" @@ -66,7 +74,7 @@ instantiate_card = (card) -> view.css 'z-index': card.z = next_card_z() view.bind 'dragstop', (event, ui) -> p = view.position() - state.move state.agent, card.number, transform_x(p.left), transform_y(p.top) + state.move state.agent, card.number, transform_x(p.left), transform_y(p.top), card.z card.view = view error_lag = 3 @@ -130,10 +138,10 @@ init = -> server_url = window.location state = window.game_model.new me - state.on 'move', (agent, card, x, y) -> + state.on 'move', (agent, card, x, y, z) -> # FIXME add/handle pile argument if agent is me - tell_server ['move', agent, card, x, y] + tell_server ['move', agent, card, x, y, z] else bring_card_to_front state.cards[card] state.cards[card].view.animate { left: "#{transform_x x}px", top: "#{transform_y y}px"}, 800 diff --git a/common.coffee b/common.coffee index cec2bc5..3cf6867 100644 --- a/common.coffee +++ b/common.coffee @@ -21,7 +21,7 @@ class GameState 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 @@ -29,8 +29,9 @@ class GameState @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? diff --git a/server.coffee b/server.coffee index 46d48c5..80ad9c3 100644 --- a/server.coffee +++ b/server.coffee @@ -161,8 +161,8 @@ new_game = (id) -> game.p1_queue = [] game.p2_queue = [] - game.on 'move', (agent, card, x, y) -> - forward_events.call this, 'move', agent, card, x, y + game.on 'move', (agent, card, x, y, z) -> + forward_events.call this, 'move', agent, card, x, y, z game.on 'mark', (agent, card, state) -> forward_events.call this, 'mark', agent, card, state game.on 'flip', (agent, card, state) -> -- 1.7.10.4