X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=main.coffee;h=1700d1085a2955edb51536d045f815e4bcc565a3;hb=af3c698f6904444dad37f7f581b69994396b4f7d;hp=5c1fab773239f5b92e98cc9309253fd627e01a02;hpb=c0823d94d3ddcfd3006b931ebf2e9c1116553b1b;p=hexbog.git diff --git a/main.coffee b/main.coffee index 5c1fab7..1700d10 100644 --- a/main.coffee +++ b/main.coffee @@ -243,12 +243,7 @@ init_board = -> $selection_display = null # initialized by init_html_board $score_display = null # initialized by init_html_board -$definition_word = null # initialized by init_html_board -$definition_link = null # initialized by init_html_board -$definition_type = null # initialized by init_html_board -$definition_language = null # initialized by init_html_board -$definition_text = null # initialized by init_html_board -$definition_credit = null # initialized by init_html_board +$definition_body = null # initialized by init_html_board update_selection_display = -> word = selected_word() $selection_display.html word @@ -344,31 +339,32 @@ blip_selection = -> activate_selection = -> word = selected_word() if word.length < 3 + # FIXME make this a hint log "Too short: \"#{word}\"" return unless is_word word + # FIXME make this automatically part of the selection display log "Not on word list: \"#{word}\"" return - score += Math.round(Math.pow(1.7, word.length)) + word_score = Math.round(Math.pow(1.7, word.length)) + score += word_score $score_display.html score - log "blipped: #{word}" + # FIXME make some kind of animation showing score gain + log "blipped \"#{word}\" for #{word_score} points" blip_selection() look_up_definition word + $('#definition').click() -definition_credited = false show_definition = (word, type, definition, language) -> - if language is 'English' - $definition_language.html '' - else - $definition_language.html " (#{language})" - $definition_type.html type - $definition_link.attr 'href', "http://en.wiktionary.org/wiki/#{word}" - $definition_word.html word.substr(0, 1).toUpperCase() + word.substr(1) - $definition_text.html definition - unless definition_credited - definition_credited = true - $definition_credit.html "Definitions © wiktionary.org CC-BY-SA" + html = "" + html += "#{word.substr(0, 1).toUpperCase() + word.substr(1)}, #{type}" + if language isnt 'English' + html += " (#{language})" + html += ': ' + html += definition + html += '
Definition ©wiktionary.org CC-BY-SA
' + $definition_body.html html select_tile = (num) -> @@ -421,12 +417,7 @@ init_html_board = -> $selection_display = $('#selection') $score_display = $('#score') $score_display.html score - $definition_word = $('#definition_word') - $definition_type = $('#definition_type') - $definition_language = $('#definition_language') - $definition_link = $('#definition_link') - $definition_text = $('#definition_text') - $definition_credit = $('#definition_credit') + $definition_body = $('#definition_body') $board = $('#board') # make html for board tile_number = 0 @@ -533,6 +524,7 @@ extract_wiktionary_definiton = (html) -> look_up_definition = (word) -> + $definition_body.html "Looking up definition for \"#{word}\"." $.ajax({ url: "http://en.wiktionary.org/w/api.php?action=parse&format=json&page=#{word}" jsonpCallback: "lud_#{word}" # always use the same callback for the same word so it's cacheable @@ -544,9 +536,7 @@ look_up_definition = (word) -> if tdl show_definition word, tdl[0], tdl[1], tdl[2] else - log "Sorry, couldn't find a definition for \"#{word}\"" - error: -> - log "wiktionary failed to load: \"#{error_msg}\"" + $definition_body.html "Sorry, couldn't find a definition for \"#{word}\"." }) board_as_txt = -> @@ -576,15 +566,39 @@ init_start_over_link = -> if confirm "Are you sure you want to start over? There is no undo." start_over() +cur_tab = 'instructions' +tabtab_height = 20 +tab_height = 150 +init_tab = (t) -> + $('#' + t).click -> + return if t is cur_tab + $('#' + cur_tab).removeClass('selected-tab').addClass('tab').animate({height: tabtab_height}, 1000) + $('#' + t).removeClass('tab').addClass('selected-tab').animate({height: tab_height}, 1000) + cur_tab = t +init_tabs = -> + for t in ['instructions', 'definition', 'donate', 'restart'] + init_tab t + +init_keybinding = -> + $(window).keydown (e) -> + switch e.keyCode + when 32, 10, 13 + activate_selection() + when 27 + unselect_all() + $log = undefined init_log = -> $log = $('#log') log = (msg) -> - $log.children().last().remove() - $log.prepend $('
').html msg + console.log msg if console.log? init_game = -> init_log() + if $(window).height() >= 440 + $('#centerer').css('margin-top', '25px') + init_keybinding() + init_tabs() init_board() init_html_board() init_start_over_link()