class_name Brick extends StaticBody2D signal kace_broken signal kace_damaged signal life_changed signal impact const MAX_LIFE := 1999 var life: int func setup(x: int, y: int, max_life: int) -> void: position.x = x * 40 position.y = y * 20 life = randi() % max_life + 1 life = min(life, MAX_LIFE) emit_signal("life_changed", life) func damage() -> void: life = life - 1 emit_signal("kace_damaged") if life < 1: blow_up() else: emit_signal("life_changed", life) func blow_up() -> void: emit_signal("kace_broken") queue_free() func impact(pos: Vector2) -> void: damage() var local_pos = to_local(pos) emit_signal("impact", local_pos)