X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=main.coffee;h=e19481f5a3f450feb6b8ccff9ef67b37625c6e07;hb=3003890232b44be7ceaedd00963092a27b6f9535;hp=15266900a5e027346998cf00b7e27ab6d5a7bc4b;hpb=25679b665fdcdaccf3081694986f1e5312f3c09a;p=hexbog.git diff --git a/main.coffee b/main.coffee index 1526690..e19481f 100644 --- a/main.coffee +++ b/main.coffee @@ -291,11 +291,6 @@ unselect_all = -> _unselect_tile() update_selection_display() -shrink_selection = (leave_count) -> - while selected.length > leave_count - _unselect_tile() - update_selection_display() - selected_word = -> word = '' word += tiles[i].text for i in selected @@ -304,7 +299,7 @@ selected_word = -> save_game = -> encoded = '' for t in tiles - encoded += t.letter.substr 0, 1 + encoded += t.text.substr 0, 1 encoded += score set_cookie 'hexbog', encoded, 365 window.location.hash = encoded @@ -316,6 +311,12 @@ blip_selection = -> update_selection_display() for i in faders tiles[i].dom.unbind('click').fadeOut fade_ms + for i in tiles + unless i in faders + unless i.hp < 1 + i.dom.removeClass "hp#{i.hp}" + i.hp -= 1 + i.dom.addClass "hp#{i.hp}" timeout fade_ms + 1, -> # which tiles need to be slid down sliders = (false for i in tiles) @@ -401,36 +402,28 @@ select_tile = (num) -> new_tile = (num, x, y) -> letter = new_letter() - html_tile = $("
#{letter}
") + html_tile = $("
#{letter}
") $board.append(html_tile) html_tile.data 'tile_number', num - tiles[num] = text: letter, dom: html_tile, id: num + tiles[num] = text: letter, dom: html_tile, hp: 10, id: num html_tile.click -> me = $(this) num = me.data 'tile_number' if num in selected - nth_of_word = selected.indexOf(num) - first = nth_of_word is 0 - last = nth_of_word is selected.length - 1 - - if first and last - unselect_all() # Clicking only selected letter unselects it - else if first and !last - shrink_selection 1 # Clicking start of word goes back to just that letter - # should this unselect all? - else if last + if selected.length > 2 and num is selected.last() activate_selection() else - shrink_selection nth_of_word + 1 - else # (not clicking on selected tile) - if selected.length is 0 - select_tile num - else - unless num in board_neighbors[selected.last()] + if selected.length > 1 unselect_all() - select_tile num + select_tile num + else + unselect_all() + else # (not clicking on selected tile) + if selected.length > 0 and not (num in board_neighbors[selected.last()]) + unselect_all() + select_tile num $board = null