--- /dev/null
+[gd_scene load_steps=3 format=3 uid="uid://b0a3gg120yg5y"]
+
+[ext_resource type="Script" path="res://components/base_weapon/base_weapon.gd" id="1_4h33d"]
+
+[sub_resource type="CircleShape2D" id="CircleShape2D_e6hu6"]
+radius = 4.96679
+
+[node name="BaseWeapon" type="Area2D"]
+script = ExtResource("1_4h33d")
+
+[node name="Polygon2D" type="Polygon2D" parent="."]
+scale = Vector2(1.79425, 1.69033)
+color = Color(0.685315, 0.874597, 0, 1)
+polygon = PackedVector2Array(2.53263, -1.21713, 2.07215, -1.94741, 1.15119, -2.67769, 0, -2.92112, -1.15119, -2.67769, -2, -2, -2.53263, -1.21713, -2.76287, 0, -2.53263, 1.21713, -2.07215, 1.94741, -1.15119, 2.67769, 0, 2.92112, 1.15119, 2.67769, 2, 2, 2.53263, 1.21713, 2.76287, 0)
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+light_mask = 2
+scale = Vector2(1.00669, 1.00809)
+shape = SubResource("CircleShape2D_e6hu6")
+
+[node name="FireTimer" type="Timer" parent="."]
+one_shot = true
+
+[connection signal="timeout" from="FireTimer" to="." method="_on_fire_timer_timeout"]
--- /dev/null
+extends Area2D
+
+enum weapon_type_enum {long_line, circle, boomerang, spiral}
+
+const LONG_LINE_SPEED = 100
+const CIRCLE_SPEED = 100
+const BOOMERANG_SPEED = 100
+const SPIRAL_SPEED = 100
+
+## the player or a big ass enemy I supose
+@export var origin: Node2D
+@export var weapon_type: weapon_type_enum = 0
+## time between weapon attacks
+@export_range(0, 10, 0.1, "or_greater") var fire_time: float = 1.0
+@onready var fire_timer = $FireTimer
+
+func _ready():
+ fire_timer.wait_time = fire_time
+ fire_timer.start()
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta):
+ pass
+
+
+# when the timer ends launch the attack
+func _on_fire_timer_timeout():
+ print("done")