X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=main.coffee;h=d33d36a7041be52d689144c1d507495819307383;hb=82b65a7f06c06d1561a14a9dfb184dbc4ae08627;hp=860469d96d57adc11425ea6c7081e218a5012f98;hpb=5675554a92605fe4e63f46733ce04423080d7403;p=hexbog.git diff --git a/main.coffee b/main.coffee index 860469d..d33d36a 100644 --- a/main.coffee +++ b/main.coffee @@ -293,11 +293,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 @@ -335,15 +330,17 @@ blip_selection = -> # convert to arrays so we can sort, etc nneighbors = (v for k, v of nneighbors) neighbors = (v for k, v of neighbors) - # TODO randsort neighbors and nneighbors + # TODO make this apply eavenly to neighbors + # TODO different range for different word lengths for nei in [neighbors, nneighbors] if unsink > 0 for i in nei - if i.hp is 0 and unsink >= 15 + if i.hp is 0 and unsink >= 10 i.new_hp = 10 - unsink -= 15 + unsink -= 10 i.text = new_letter() i.dom.html i.text + for nei in [neighbors, nneighbors] if unsink > 0 for i in nei if i.hp > 0 and unsink > 0 @@ -445,7 +442,7 @@ select_tile = (num) -> new_tile = (num, x, y) -> letter = new_letter() - hp = Math.floor(Math.random() * HP_MAX) + hp = 4 + Math.floor(Math.random() * (HP_MAX - 4)) html_tile = $("
#{letter}
") $board.append(html_tile) @@ -458,26 +455,18 @@ new_tile = (num, x, y) -> num = me.data 'tile_number' return if tiles[num].hp < 1 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 + else unselect_all() - select_tile num + 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