diff options
author | Olivier Gayot <duskcoder@gmail.com> | 2015-06-14 23:21:04 +0100 |
---|---|---|
committer | Olivier Gayot <duskcoder@gmail.com> | 2015-06-14 23:24:30 +0100 |
commit | 71cd5aa94b2706a75f47d5d4c3ab2a5296cc6023 (patch) | |
tree | 224ccc2488326a0e630b066df6d59260919c0d16 /cao-common.js | |
parent | 7af8f5b25f140deff430bf42a6a7950952b26fc1 (diff) |
moved the webapp pages in the webapp/ dir
the procedure to install the webapp is described in the README file.
Signed-off-by: Olivier Gayot <duskcoder@gmail.com>
Diffstat (limited to 'cao-common.js')
-rw-r--r-- | cao-common.js | 337 |
1 files changed, 0 insertions, 337 deletions
diff --git a/cao-common.js b/cao-common.js deleted file mode 100644 index 2742606..0000000 --- a/cao-common.js +++ /dev/null @@ -1,337 +0,0 @@ -var CAO = function() { - this.on_socket_open = function() { /* to override */ }; - this.on_socket_close = function() { /* to override */ }; - this.on_socket_error = function(evt) { /* to override */}; - - this.on_join_game_ok = function(state) { /* to override */ }; - this.on_show_white_card = function(idx, desc) { /* to override */ }; - this.on_pick_black_card_ok = function() { /* to override */ }; - this.on_show_black_card = function(desc) { /* to override */ }; - this.on_play_white_card_ok = function(idx) { /* to override */ }; - this.on_collect_cards_ok = function() { /* to override */ }; - this.on_show_played_card = function(idx, desc) { /* to override */ }; - this.on_designate_card_ok = function(idx) { /* to override */ }; - - this.on_judge_needed = function() { /* to override */ }; - this.on_judge_designed = function() { /* to override */ }; - this.on_player_joined_game = function() { /* to override */ }; - this.on_card_played = function() { /* to override */ }; - this.on_cards_collected = function() { /* to override */ }; - this.on_updated_score = function(new_score) { /* to override */ }; - this.on_change_state = function(state) { /* to override */ }; - this.on_change_nbr_played_cards = function(nbr) { /* to override */ }; - - var request_queue = []; - - var judge = false; - - var self = this; - var ws; - - var nbr_played_cards = 0; - - var played_cards = []; - var white_cards = {}; - var black_card; - - var score = 0; - - var map_handle_response_ok = {}; - var map_handle_notif = {}; - - this.is_judge = function() { - return judge; - }; - - this.reset_nbr_played_cards = function() { - nbr_played_cards = 0; - - self.on_change_nbr_played_cards(nbr_played_cards); - }; - - this.incr_nbr_played_cards = function() { - ++nbr_played_cards; - - self.on_change_nbr_played_cards(nbr_played_cards); - }; - - this.get_white_card_event = function(idx) { - return white_cards[idx]['event']; - }; - - this.get_played_card_event = function(idx) { - return played_cards[idx]['event']; - }; - - this.change_state = function(state) { - game_state = state; - - switch (state) { - case 'waiting_judge': - played_cards = []; - self.reset_nbr_played_cards(); - judge = false; - - self.on_judge_needed(); - - break; - case 'waiting_collection': - break; - case 'waiting_designation': - break; - } - - this.on_change_state(state); - }; - - /* map_handle_response_ok {{{ */ - - map_handle_response_ok['join_game'] = function(result) { - self.on_join_game_ok(); - - self.change_state(result['game_state']); - - map_handle_response_ok['view_player_cards'](result); - }; - - map_handle_response_ok['view_player_cards'] = function(result) { - for (var i in result['cards']) { - var idx = result['cards'][i][0]; - var desc = result['cards'][i][1]; - - white_cards[idx] = { - 'desc': desc, - 'event': self.gen_callback_white_card(idx) - }; - - self.on_show_white_card(idx, desc) - } - }; - - map_handle_response_ok['pick_black_card'] = function(result) { - judge = true; - self.change_state('waiting_collection'); - - self.on_pick_black_card_ok(); - map_handle_response_ok['view_black_card'](result); - }; - - map_handle_response_ok['view_black_card'] = function(result) { - black_card = result; - self.on_show_black_card(black_card); - }; - - map_handle_response_ok['play_white_card'] = function(result) { - idx = result['card_id']; - - self.on_play_white_card_ok(idx); - - delete white_cards[idx]; - }; - - map_handle_response_ok['collect_cards'] = function(result) { - self.change_state('waiting_designation'); - - self.on_collect_cards_ok(); - map_handle_response_ok['view_played_cards'](result); - }; - - map_handle_response_ok['view_played_cards'] = function(result) { - for (var i in result) { - var desc = result[i]; - - played_cards.push({ - 'desc': desc, - 'event': self.gen_callback_played_card(i), - }); - self.on_show_played_card(i, desc); - } - }; - - map_handle_response_ok['designate_card'] = function(result) { - self.change_state('waiting_judge'); - - self.on_designate_card_ok(); - }; - - /* }}} */ - /* handle_notif {{{ */ - - map_handle_notif['judge_designed'] = function(result) { - self.change_state('waiting_collection'); - - self.on_judge_designed(); - }; - - map_handle_notif['received_card'] = function(result) { - var idx = result['card']['id']; - var desc = result['card']['desc']; - - white_cards[idx] = { - 'desc': desc, - 'event': self.gen_callback_white_card(idx) - }; - - self.on_show_white_card(idx, desc); - }; - - map_handle_notif['judge_needed'] = function(result) { - self.change_state('waiting_judge'); - }; - - map_handle_notif['player_joined_game'] = function(result) { - self.on_player_joined_game(); - }; - - map_handle_notif['card_played'] = function(result) { - self.incr_nbr_played_cards(); - - self.on_card_played(); - }; - - map_handle_notif['cards_collected'] = function(result) { - self.change_state('waiting_designation'); - - self.on_cards_collected(); - }; - - map_handle_notif['updated_score'] = function(result) { - self.score = result; - - self.on_updated_score(self.score); - }; - - /* }}} */ - - this.run = function() { - ws = new WebSocket('ws://' + document.location.hostname + ':1236'); - - ws.onopen = function() { - console.log('connection established'); - self.on_socket_open(); - }; - - ws.onclose = function() { - self.on_socket_close(); - }; - - ws.onmessage = function(evt) { - var message = JSON.parse(evt.data); - - if (message['type'] == 'notification') { - handle_notif(message['content']); - } else { - handle_response(message['content']); - } - }; - - ws.onerror = function(evt) { - console.log(evt); - self.on_socket_error(evt); - }; - - }; - - var handle_notif = function(notif) { - if (map_handle_notif[notif['op']]) { - map_handle_notif[notif['op']](notif['content']); - } else { - console.log('unhandled notif ' + notif); - } - }; - - var handle_response = function(response) { - var rq = request_queue.shift(); - - if (response['status'] != 0) { - alert(response['info']); - return; - } - - if (map_handle_response_ok[rq]) { - map_handle_response_ok[rq](response['result']) - } else { - console.log(evt); - } - }; - - this.gen_callback_white_card = function(index) { - return function() { - var request = { - 'op': 'play_white_card', - 'card_id': index, - }; - - request_queue.push('play_white_card'); - ws.send(JSON.stringify(request)); - }; - }; - - this.gen_callback_played_card = function(index) { - return function() { - var request = { - 'op': 'designate_card', - 'card_id': index, - }; - - request_queue.push('designate_card'); - ws.send(JSON.stringify(request)); - }; - }; - - this.join_game = function(game_name) { - var request = { - 'op': 'join_game', - 'game_name': game_name, - }; - request_queue.push('join_game'); - ws.send(JSON.stringify(request)); - }; - - this.pick_black_card = function() { - var request = { - 'op': 'pick_black_card', - }; - request_queue.push('pick_black_card'); - ws.send(JSON.stringify(request)); - }; - - this.collect_cards = function() { - var request = { - 'op': 'collect_cards', - }; - request_queue.push('collect_cards'); - ws.send(JSON.stringify(request)); - }; - - this.request_show_cards = function() { - var request = { - 'op': 'view_player_cards', - }; - - request_queue.push('view_player_cards'); - ws.send(JSON.stringify(request)); - }; - this.request_show_black_card = function() { - var request = { - 'op': 'view_black_card', - }; - - request_queue.push('view_black_card'); - ws.send(JSON.stringify(request)); - }; - this.request_show_played_cards = function() { - var request = { - 'op': 'view_played_cards', - }; - - request_queue.push('view_played_cards'); - ws.send(JSON.stringify(request)); - }; -}; - -var cao; - -$(document).ready(function() { - cao = new CAO(); -}); |