|
@@ -25,9 +25,29 @@ func generate_and_move():
|
|
|
move()
|
|
|
current_state = State.DONE
|
|
|
|
|
|
+
|
|
|
func generate_row():
|
|
|
- for k in range(10):
|
|
|
- set_cell(k, -current_row, Tile.BRICK)
|
|
|
+ for x in range(10):
|
|
|
+ generate_cell(x, -current_row)
|
|
|
+
|
|
|
+
|
|
|
+func generate_cell(x, y):
|
|
|
+ set_cell(x, y, Tile.BRICK)
|
|
|
+ living_cells[Vector2(x, y)] = current_row
|
|
|
+
|
|
|
+
|
|
|
+func damage_cell(tile_pos : Vector2):
|
|
|
+ var cell_id = get_cellv(tile_pos)
|
|
|
+ if cell_id != TileMap.INVALID_CELL and cell_id == Tile.BRICK:
|
|
|
+ living_cells[tile_pos] -= 1
|
|
|
+ if living_cells[tile_pos] <= 0:
|
|
|
+ break_cell(tile_pos)
|
|
|
+
|
|
|
+
|
|
|
+func break_cell(tile_pos):
|
|
|
+ living_cells.erase(tile_pos)
|
|
|
+ set_cellv(tile_pos, -1)
|
|
|
+ emit_signal("kace_broken")
|
|
|
|
|
|
|
|
|
func move():
|
|
@@ -42,10 +62,7 @@ func _ready():
|
|
|
func _on_Ball_kace_contact(contact_pos:Vector2):
|
|
|
var local_position = to_local(contact_pos)
|
|
|
var tile_pos = world_to_map(local_position)
|
|
|
- var cell = get_cellv(tile_pos)
|
|
|
- if cell != TileMap.INVALID_CELL and cell == Tile.BRICK:
|
|
|
- set_cellv(tile_pos, -1)
|
|
|
- emit_signal("kace_broken")
|
|
|
+ damage_cell(tile_pos)
|
|
|
|
|
|
|
|
|
func _on_Launcher_is_full():
|