@tool
class_name Brique
extends StaticBody2D


const EclatementScene: PackedScene = preload("res://effets/eclatement_brique/eclatement_effet.tscn")
const nombre_de_vies_max: int = 4

## Le nombre de coups necessaires pour detruire la brique.
@export_range(1, nombre_de_vies_max) var nombre_de_vies: int = 1:
	set = set_nombre_de_vies


func _ready() -> void:
	_montrer_nombre_vies()


func frapper(nb_degats: int) -> void:
	nombre_de_vies -= nb_degats
	if nombre_de_vies <= 0:
		_mourir()


func _montrer_nombre_vies() -> void:
	var nouvelle_couleur: Color = Color.WHITE * (nombre_de_vies_max - nombre_de_vies) / (nombre_de_vies_max - 1)
	nouvelle_couleur.a = 1.0 # rendre opaque
	set_modulate(nouvelle_couleur)


func _mourir() -> void:
	queue_free()
	var effet_eclatement: Node2D = EclatementScene.instantiate()
	effet_eclatement.position = self.position
	add_sibling(effet_eclatement)


func set_nombre_de_vies(nb: int) -> void:
	nombre_de_vies = nb
	_montrer_nombre_vies()
