X-Git-Url: https://jasonwoof.com/gitweb/?p=peach-cgt.git;a=blobdiff_plain;f=client.coffee;h=95e130671bbeecd4bf3b664f996f05638e8572b1;hp=3022adbd6311c3dcd98a55686feab938d32dccef;hb=46e1ca575f0a419dffac2dc652a7cae08410bff3;hpb=30e517112298f4b68f6f2f5e1e634af4848e1d6c diff --git a/client.coffee b/client.coffee index 3022adb..95e1306 100644 --- a/client.coffee +++ b/client.coffee @@ -54,6 +54,13 @@ new_blank_card = (x, y, css_class) -> $table.append view return view +find_pile = (x, y) -> + fudge = 40 + for pile in piles + if -fudge < pile.x - x < fudge and -fudge < pile.y - y < fudge + return pile + return null + uninstantiate_card = (card) -> show_message "uninstantiate card #{card.number}" card.view.remove() @@ -98,8 +105,15 @@ instantiate_card = (card) -> update_pile_views() view.bind 'dragstop', (event, ui) -> p = view.position() - pile = null # FIXME figure out what pile we moved to - state.move state.agent, card.number, transform_x(p.left), transform_y(p.top), card.z, pile + x = transform_x(p.left) + y = transform_y(p.top) + pile = find_pile x, y + if pile? + x = pile.x + y = pile.y + pile = pile.key + view.css {left: transform_x(x), top: transform_y(y)} + state.move state.agent, card.number, x, y, card.z, pile error_lag = 3 @@ -193,6 +207,8 @@ update_pile_views = -> uninstantiate_card ps[card.pile].top_card ps[card.pile].top_card = card ps[card.pile].top_z = card.z + else if card.view + uninstantiate_card card else ps[card.pile] = { total: 1, top_card: card, top_z: card.z } @@ -232,7 +248,7 @@ init = -> if agent is me tell_server ['move', agent, card, x, y, z, pile] else - # FIXME should we use the z from the server? Should p1 use odd numbers and p2 even? + # FIXME use the z from the server 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) ->