diff --git a/_typos.toml b/_typos.toml index 58344ce..685f028 100644 --- a/_typos.toml +++ b/_typos.toml @@ -1,3 +1,3 @@ [files] -extend-exclude = ["addons"] \ No newline at end of file +extend-exclude = ["addons"] diff --git a/scenes/weapons/seedler.tscn b/scenes/weapons/seedler.tscn index 193ba03..45aee19 100644 --- a/scenes/weapons/seedler.tscn +++ b/scenes/weapons/seedler.tscn @@ -1,8 +1,27 @@ -[gd_scene load_steps=2 format=3 uid="uid://c7unyob7tl6gs"] +[gd_scene load_steps=4 format=3 uid="uid://c7unyob7tl6gs"] [ext_resource type="Texture2D" uid="uid://bqwx5dm7jefu6" path="res://resources/images/weapons/Seedler.png" id="1_3obt5"] +[ext_resource type="Script" path="res://scripts/weapons/seedler.gd" id="2_6mejc"] -[node name="Seedler" type="Sprite2D"] -position = Vector2(561, 324) +[sub_resource type="Curve2D" id="Curve2D_elleu"] +_data = { +"points": PackedVector2Array(-47.0096, -0.651695, 47.0096, 0.651695, -80.5, -136.5, -42.668, -1.96383, 42.668, 1.96383, 125.696, 126.007, 1.12246, 50.4974, -1.12246, -50.4974, 164.043, 13.6843, 37.1347, 0.841369, -37.1347, -0.841369, 128, -131, 22.7463, -1.90143, -22.7463, 1.90143, -74.6522, 124.324, -1.12246, 64.7276, 1.12246, -64.7276, -123.957, -4.40512, -41.4783, -0.841369, 41.4783, 0.841369, -80.5, -136.5) +} +point_count = 7 + +[node name="Seedler" type="Node"] + +[node name="Path2D" type="Path2D" parent="."] +position = Vector2(524.778, 326.471) +scale = Vector2(2.55556, 2.37708) +curve = SubResource("Curve2D_elleu") + +[node name="PathFollow2D" type="PathFollow2D" parent="Path2D"] +position = Vector2(-80.5, -136.5) +rotation = 0.013862 + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(572, 321) scale = Vector2(2, 2) texture = ExtResource("1_3obt5") +script = ExtResource("2_6mejc") diff --git a/scripts/weapons/seedler.gd b/scripts/weapons/seedler.gd new file mode 100644 index 0000000..26acc28 --- /dev/null +++ b/scripts/weapons/seedler.gd @@ -0,0 +1,24 @@ +extends Sprite2D + +@onready var path = $"../Path2D" +@onready var follow = $"../Path2D/PathFollow2D" + +func move(length : float) -> void: + follow.progress = length + position = follow.global_position + +const times = 5 + +func _ready() -> void: + rotation = 0 + follow.loop = 1 + var start = 0 + var end = path.curve.get_baked_length() + var mid = end / 2 + var movement = create_tween().set_loops(times).set_ease(Tween.EASE_IN).set_trans(Tween.TRANS_SINE) + movement.tween_method(move, start, mid, 1) + movement.tween_method(move, mid, end, 1) + var rotate = create_tween().set_loops(times) + rotate.tween_property(self, "rotation", TAU * 5, 2) + rotate.tween_callback(func():rotation = 0) +