brique.gd 977 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. @tool
  2. class_name Brique
  3. extends StaticBody2D
  4. const EclatementScene: PackedScene = preload("res://effets/eclatement_brique/eclatement_effet.tscn")
  5. const nombre_de_vies_max: int = 4
  6. ## Le nombre de coups necessaires pour detruire la brique.
  7. @export_range(1, nombre_de_vies_max) var nombre_de_vies: int = 1:
  8. set = set_nombre_de_vies
  9. func _ready() -> void:
  10. _montrer_nombre_vies()
  11. func frapper(nb_degats: int) -> void:
  12. nombre_de_vies -= nb_degats
  13. if nombre_de_vies <= 0:
  14. _mourir()
  15. func _montrer_nombre_vies() -> void:
  16. var nouvelle_couleur: Color = Color.WHITE * (nombre_de_vies_max - nombre_de_vies) / (nombre_de_vies_max - 1)
  17. nouvelle_couleur.a = 1.0 # rendre opaque
  18. set_modulate(nouvelle_couleur)
  19. func _mourir() -> void:
  20. queue_free()
  21. var effet_eclatement: Node2D = EclatementScene.instantiate()
  22. effet_eclatement.position = self.position
  23. add_sibling(effet_eclatement)
  24. func set_nombre_de_vies(nb: int) -> void:
  25. nombre_de_vies = nb
  26. _montrer_nombre_vies()