_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
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
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)
new_tile = (num, x, y) ->
letter = new_letter()
- html_tile = $("<div class=\"tile\" style=\"left: #{x}px; top: #{y}px\" unselectable=\"on\">#{letter}</div>")
+ html_tile = $("<div class=\"tile hp10\" style=\"left: #{x}px; top: #{y}px\" unselectable=\"on\">#{letter}</div>")
$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