Brick.gd 552 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. class_name Brick
  2. extends StaticBody2D
  3. signal kace_broken
  4. signal kace_damaged
  5. signal life_changed
  6. const MAX_LIFE := 1999
  7. var life: int
  8. func setup(x: int, y: int, max_life: int):
  9. position.x = x * 40
  10. position.y = y * 20
  11. life = randi() % max_life + 1
  12. life = min(life, MAX_LIFE)
  13. emit_signal("life_changed", life)
  14. func damage():
  15. life = life - 1
  16. emit_signal("kace_damaged")
  17. if life < 1:
  18. blow_up()
  19. else:
  20. emit_signal("life_changed", life)
  21. func blow_up():
  22. emit_signal("kace_broken")
  23. queue_free()
  24. func impact(pos: Vector2):
  25. damage()