class_name Capsule
extends Node2D
## Contient un pouvoir qui se declenche au contact de la raquette


const VITESSE_DESCENTE: float = 100.0 # px / sec

var pouvoir: PouvoirBase = null:
	set=set_pouvoir


func _physics_process(delta: float) -> void:
	_descendre(delta)


func set_pouvoir(nouveau_pouvoir: PouvoirBase) -> void:
	modulate = nouveau_pouvoir.couleur_principale()
	pouvoir = nouveau_pouvoir


func _descendre(delta: float) -> void:
	position.y += VITESSE_DESCENTE * delta


func _declencher_pouvoir() -> void:
	print("Le pouvoir ", pouvoir, " se declenche !")
	pouvoir.declencher_pouvoir(get_tree())


func _auto_detruire() -> void:
	queue_free()


func _quand_verificateur_visibilite_detecte_sortie_ecran():
	_auto_detruire()


func _quand_zone_activation_detecte_un_corps(corps: Node2D) -> void:
	if corps is Raquette: # toujours le cas si calque collision bien configure
		_declencher_pouvoir()
		_auto_detruire()
