Browse Source

Cells get more life

DricomDragon 3 years ago
parent
commit
7bdff05436
2 changed files with 26 additions and 8 deletions
  1. 23 6
      godot/scripts/Grid.gd
  2. 3 2
      godot/scripts/Launcher.gd

+ 23 - 6
godot/scripts/Grid.gd

@@ -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():

+ 3 - 2
godot/scripts/Launcher.gd

@@ -50,7 +50,7 @@ func shoot():
 		bullet.connect("kace_contact", grid, "_on_Ball_kace_contact")
 
 
-func loadBullet(n:int):
+func load_bullet(n:int):
 	nbStorage += n
 
 
@@ -75,6 +75,7 @@ func _on_Launcher_get_firing():
 
 
 func _on_Ball_tree_exited():
+	load_bullet(1)
 	if (get_tree().get_nodes_in_group("ball").size() == 0):
 		emit_signal("is_full")
 
@@ -84,4 +85,4 @@ func _on_Grid_has_moved():
 
 
 func _on_Grid_kace_broken():
-	loadBullet(1)
+	load_bullet(1)