@tool extends Composer class_name Weapon @export var sprite: Texture2D: set(val): sprite = val _check_compose() @export var radius := 500.0 @export var damage := 1.0 @export var reload_time := 1.0 var __target: Unit var __reload := 0.0 func _compose(): $sprite.texture = sprite func _process(delta: float): __reload -= delta if __target != null and __reload < 0.0: if __target.global_position.distance_to(global_position) <= radius: fire(__target) func set_target(target: Unit): __target = target func fire(target: Unit): target.damage(damage) __reload = reload_time * randf_range(0.9, 1.1)