extends Tool
# the wimpy toothbrush

const PAINT_COLOR := Color(1, 0, 0, 0.3)
const BRUSH_SCALE := 0.2

@export var damage := 0.0063  # ~8 seconds to destroy standard nodule

@onready var raycast: RayCast3D = %Raycast

@onready var texture_idle: TextureRect = %TextureIdle
@onready var texture_used: TextureRect = %TextureUsed
@onready var brush_animation: AnimationPlayer = %BrushAnimation


func _fire() -> void:
	if raycast.is_colliding() and not Game.manager.is_tank_full():
		brush_animation.play("brush")
		var collider := raycast.get_collider()
		if collider is GunkBody:
			(collider as GunkBody).paint_dot(
				raycast.get_collision_point(),
				raycast.get_collision_normal(),
				BRUSH_SCALE,
				PAINT_COLOR
			)
		if collider is GunkNode:
			(collider as GunkNode).hit(damage)
	else:
		brush_animation.stop()

	texture_idle.visible = false
	texture_used.visible = true


func _idle() -> void:
	texture_idle.visible = true
	texture_used.visible = false
