X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=server.coffee;h=29b3e50c2a9ab9675f493e9ed8ca2d8cd80c0036;hb=f12edd687531576f662976ccb4d24a9f5cd42fd9;hp=43e0bc670aff156a9560b8a704835b9b33f71e10;hpb=5e5f70bb208fb1f8a7e774ed5a172e78660be639;p=peach-cgt.git diff --git a/server.coffee b/server.coffee index 43e0bc6..29b3e50 100644 --- a/server.coffee +++ b/server.coffee @@ -23,11 +23,17 @@ css_handler = (args, out, request, url_parts) -> out.end css js_handler = (args, out, request, url_parts) -> + convert = false basename = url_parts.pathname.substr 1, (url_parts.pathname.length - 4) if basename is 'client' filename = 'client.coffee' + convert = true else if basename is 'common' filename = 'common.coffee' + convert = true + else if basename is 'cs_cards' + filename = 'cs_cards.js' + convert = false else error = "Unknown js basename: #{basename}" console.log error @@ -37,7 +43,10 @@ js_handler = (args, out, request, url_parts) -> fs.readFile filename, 'utf8', (err, data) -> if err return out.end "Server failed to read #{filename}" - out.end coffee.compile data + if convert + out.end coffee.compile data + else + out.end data html_handler = (args, out, request, url_parts) -> fs.readFile 'index.html', 'utf8', (err, data) -> @@ -161,12 +170,16 @@ new_game = (id) -> game.p1_queue = [] game.p2_queue = [] - game.on 'move', (agent, card, x, y, z) -> - forward_events.call this, 'move', agent, card, x, y, z + game.on 'move', (agent, card, x, y, z, pile) -> + forward_events.call this, 'move', agent, card, x, y, z, pile game.on 'mark', (agent, card, state) -> forward_events.call this, 'mark', agent, card, state game.on 'flip', (agent, card, state) -> forward_events.call this, 'flip', agent, card, state + game.on 'new_cards', (agent, cards) -> + # server assigns card numbers, and tells both clients + # (unlike all other api calls, sending agent expects to get this one back) + forward_events.call this, 'new_cards', 'server', cards game.on 'set_cards', (agent, cards) -> forward_events.call this, 'set_cards', agent, cards game.on 'send_state', (agent) -> @@ -182,20 +195,6 @@ new_game = (id) -> test_init = -> test_game = new_game 'test' - timeout 4000, -> - test_game.set_cards 'server', [ - { text: "Wildabeast 2/2", x: 220, y: 200, owner: 'p2'} - { text: "Boar 2/2", x: 360, y: 200, owner: 'p2', pile: 'p2_discard'} - { text: "Angora bunny 1/1", x: 500, y: 200, owner: 'p2'} - { text: "Ambulatory Cactus 2/1", x: 660, y: 200, owner: 'p2'} - { text: "Ent 0/5", x: 800, y: 200, owner: 'p2'} - { text: "Carnivore 2/1", x: 220, y: 420, owner: 'p1'} - { text: "Herbivore 1/2", x: 360, y: 420, owner: 'p1'} - { text: "Stone Wall 0/10", x: 500, y: 420, owner: 'p1'} - { text: "Log 0/1", x: 660, y: 420, owner: 'p1', pile: 'p1_draw'} - { text: "Ent 0/5", x: 800, y: 420, owner: 'p1'} - ] - test_init() @@ -224,6 +223,7 @@ http_server = http.createServer (req, res) -> for key, parg of post_args query[key] = parg return set_handler query, res, req, url_parts + return else if rel_path.substr(rel_path.length - 4) is '/get' return get_handler url_parts.query, res, req, url_parts else if rel_path.substr(rel_path.length - 4) is '.ico'