class_name WaveDamper
extends GameElement
## Демпфер/усилитель волны.
## Модифицирует амплитуду проходящей через него волны.

## Коэффициент модификации амплитуды:
## < 1.0 — ослабление (демпфер)
## > 1.0 — усиление (усилитель)
## = 0.0 — полное поглощение
@export var multiplier: float = 0.5

## Радиус действия
@export var effect_radius: float = 80.0


func _ready() -> void:
	if multiplier < 1.0:
		element_name = "Демпфер (x%.1f)" % multiplier
	else:
		element_name = "Усилитель (x%.1f)" % multiplier

	# Визуальное отличие: демпфер — синий, усилитель — красный
	if multiplier < 1.0:
		modulate = Color(0.5, 0.5, 1.0)
	else:
		modulate = Color(1.0, 0.5, 0.5)


## Получить модифицированный коэффициент для волны, проходящей через эту точку
func get_multiplier_at(point: Vector2) -> float:
	var distance := global_position.distance_to(point)
	if distance <= effect_radius:
		return multiplier
	return 1.0  # Вне радиуса — не влияет
