123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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)
|