From fff2ed1a0a156da47c7fa1e9760c8546b9af44fe Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Tue, 26 Nov 2013 10:13:00 -0500 Subject: [PATCH] gets harder (way too slowly) as you play --- main.coffee | 116 +++++++++++++++++++++++++++++++---------------------------- 1 file changed, 61 insertions(+), 55 deletions(-) diff --git a/main.coffee b/main.coffee index 14c8cb5..900295d 100644 --- a/main.coffee +++ b/main.coffee @@ -371,107 +371,105 @@ unsink = (tile) -> tile.dom.html tile.text -default_booms = { +# top-level key is word length +# arrays are [difficulty] level, easiest to hardest +booms = { 3: { neighbors: { - flips: 1 - force: 2 + flips: [1,1,1,1,0] + force: [2,2,1,1,1,1,0] } neighbor_neighbors: { - flips: 0 - force: 0 + flips: [0] + force: [0] } board: { - flips: 0 - force: 0 + flips: [0] + force: [0] } } 4: { neighbors: { - flips: 'all' - force: 4 + flips: ['all', 4,4,4,4,4,3,3,2,2,1] + force: [4,3,3,3,3,3,2] } neighbor_neighbors: { - flips: 0 - force: 2 + flips: [0] + force: [2,2,2,1,1,1,0] } board: { - flips: 0 - force: 0 + flips: [0] + force: [0] } } 5: { neighbors: { - flips: 'all' - force: 6 + flips: ['all','all','all','all',5,5,5,4,4,4,3,3,3,2] + force: [6,6,6,6,5,5,5,4,4,4,3] } neighbor_neighbors: { - flips: 2 - force: 4 + flips: [2,2,2,2,2,2,1,1,1,1,0] + force: [4,3,3,3,3,2,2,2,1] } board: { - flips: 0 - force: 0 + flips: [0] + force: [0] } } 6: { neighbors: { - flips: 'all' - force: 10 + flips: ['all','all','all','all','all',9,9,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4] + force: [9,9,9,9,9,8,8,8,7] } neighbor_neighbors: { - flips: 5 - force: 6 + flips: [5,5,5,5,5,5,5,4,4,4,3,3,3,2,2,2,1] + force: [6,6,5,5,4,4,3,3,2] } board: { - flips: 0 - force: 0 + flips: [0] + force: [0] } } 7: { neighbors: { - flips: 'all' - force: 10 + flips: ['all'] + force: [10] } neighbor_neighbors: { - flips: 'all' - force: 10 + flips: ['all','all','all','all',9,8,7,6,5,4,3,2] + force: [10] } board: { - flips: 0 - force: 2 + flips: [0] + force: [5,4,3,2,1] } } lots: { neighbors: { - flips: 0 - force: 0 + flips: [0] + force: [0] } neighbor_neighbors: { - flips: 0 - force: 0 + flips: [0] + force: [0] } board: { - flips: 'all' - force: 10 + flips: ['all'] + force: [10] } } } -booms = null -init_booms = -> - booms = {} - for level, areas of default_booms - new_level = {} - for area, effects of areas - new_area = {} - for effect, amount of effects - new_area[effect] = amount - new_level[area] = new_area - booms[level] = new_level - return +difficulty_level = 0 +next_level_at = 200 +adjust_difficulty_level = -> + while score > next_level_at + difficulty_level += 1 + next_level_at *= 1.4 + # remove the selected tiles from the board, create new tiles, and slide everything into place blip_selection = -> + adjust_difficulty_level() word_length = selected_word().length faders = selected selected = [] @@ -523,12 +521,16 @@ blip_selection = -> boom = booms.lots for area_name, effects of boom area = areas[area_name] - if effects.flips is 'all' or effects.flips >= area.down.length + if difficulty_level < effects.flips.length + flips = effects.flips[difficulty_level] + else + flips = effects.flips.last() + if flips is 'all' or flips >= area.down.length for t in area.down unsink t else down_count = area.down.length - flips_left = effects.flips + flips_left = flips while flips_left > 0 and down_count > 0 flips_left -= 1 flipper = Math.floor(Math.random() * down_count) @@ -536,9 +538,13 @@ blip_selection = -> down_count -= 1 # move the last tile back into range area.down[flipper] = area.down[down_count] - if effects.force > 0 + if difficulty_level < effects.force.length + force = effects.force[difficulty_level] + else + force = effects.force.last() + if force > 0 for tile in area.up - tile.new_hp = tile.hp + effects.force + tile.new_hp = tile.hp + force for s in spaces s.tile.new_hp ?= s.tile.hp - 1 if s.tile.new_hp < 0 @@ -791,11 +797,12 @@ look_up_definition = (word) -> start_over = -> selected = [] score = 0 + difficulty_level = 0 + next_level_at = 200 $score_display.html score for s in spaces selected.push s.tile blip_selection() - init_booms() init_start_over_link = -> $('#start-over').click (event) -> @@ -836,6 +843,5 @@ init_game = -> init_html_board() init_start_over_link() update_selection_display() - init_booms() $(init_game) -- 1.7.10.4