X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=client.coffee;h=99a70a74ce68f48f1297078ee92183b06b317bd4;hb=3be596d7cfcd16a09505b8c68cad974d7b2901ac;hp=82570dd01d950e5c2e2a66b52eb758d4b98ee47f;hpb=480b41bb7b13be95e5e0ed18c2a46692aedc11ad;p=peach-cgt.git
diff --git a/client.coffee b/client.coffee
index 82570dd..99a70a7 100644
--- a/client.coffee
+++ b/client.coffee
@@ -4,6 +4,7 @@ table_height = 0
card_height = 0
state = null
server_url = null
+top_card_z = 0 # css z-index of front-most card
show_message = (txt) -> txt
# FIXME implement chat box or something
@@ -32,9 +33,19 @@ transform_y = (y) ->
return y unless state.agent is 'p2'
return table_height - card_height - y
+next_card_z = -> return top_card_z += 1
+
+bring_card_to_front = (card) ->
+ card.view.css "z-index": next_card_z()
+
instantiate_card = (card) ->
text = card.text
- view = $ $ "
#{text}
"
+ if card.owner is state.agent
+ card_class = 'my_card'
+ else
+ card_class = 'your_card'
+
+ view = $ $ "#{text}
"
button_box = $ $ ''
flip_button = new_button "flip over"
mark_button = new_button "mark"
@@ -50,7 +61,9 @@ instantiate_card = (card) ->
if card.flipped
view.addClass 'flipped'
$table.append view
- view.draggable stack: '.card'
+ view.draggable containment: '#table', grid: [20, 20]
+ view.bind 'dragstart', (event, ui) ->
+ 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)
@@ -122,6 +135,7 @@ init = ->
if agent is me
tell_server ['move', agent, card, x, y]
else
+ bring_card_to_front state.cards[card]
state.cards[card].view.animate { left: "#{transform_x x}px", top: "#{transform_y y}px"}, 800
state.on 'mark', (agent, card, state) ->
@cards[card].view.toggleClass 'marked', state