From 39b825f5720dac5930fe9265bf46891970ee9b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Melvin=20Wei=C3=9F?= Date: Mon, 22 Sep 2025 17:32:54 +0200 Subject: [PATCH] Added ends to leeches --- enemies/leech/giant_leech.tscn | 10 +++++-- enemies/leech/leech.gd | 5 ++-- enemies/leech/leech.tscn | 9 ++++-- enemies/leech/segment_end.png | Bin 0 -> 3117 bytes enemies/leech/segment_end.png.import | 40 +++++++++++++++++++++++++++ enemies/leech/segment_end.tscn | 35 +++++++++++++++++++++++ main.tscn | 6 +++- 7 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 enemies/leech/segment_end.png create mode 100644 enemies/leech/segment_end.png.import create mode 100644 enemies/leech/segment_end.tscn diff --git a/enemies/leech/giant_leech.tscn b/enemies/leech/giant_leech.tscn index e5d0e25..161b69b 100644 --- a/enemies/leech/giant_leech.tscn +++ b/enemies/leech/giant_leech.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=3 uid="uid://5nb7pf8g1ck"] +[gd_scene load_steps=7 format=3 uid="uid://5nb7pf8g1ck"] [ext_resource type="Script" uid="uid://b70f2ylbb3btt" path="res://enemies/leech/leech.gd" id="1_wfsrb"] [ext_resource type="PackedScene" uid="uid://cvoicwo2xnf7e" path="res://enemies/leech/segment.tscn" id="2_7ngsb"] +[ext_resource type="PackedScene" uid="uid://dn8qucrpq6k72" path="res://enemies/leech/segment_end.tscn" id="2_poqop"] [ext_resource type="PackedScene" uid="uid://chs0u61f45nau" path="res://utils/earth_aligner.tscn" id="3_vk62e"] [ext_resource type="AudioStream" uid="uid://co07360hqn6fk" path="res://sounds/686321__cjspellsfish__punch-land-soft.wav" id="4_ps8gx"] @@ -16,8 +17,8 @@ hp = 180 [node name="Segments" type="Node2D" parent="."] -[node name="Segment0" parent="Segments" instance=ExtResource("2_7ngsb")] -scale = Vector2(2, 2) +[node name="SegmentEnd1" parent="Segments" instance=ExtResource("2_poqop")] +scale = Vector2(-2, -2) [node name="Segment2" parent="Segments" instance=ExtResource("2_7ngsb")] scale = Vector2(2, 2) @@ -43,6 +44,9 @@ scale = Vector2(2, 2) [node name="Segment9" parent="Segments" instance=ExtResource("2_7ngsb")] scale = Vector2(2, 2) +[node name="SegmentEnd2" parent="Segments" instance=ExtResource("2_poqop")] +scale = Vector2(2, 2) + [node name="EarthAligner" parent="." instance=ExtResource("3_vk62e")] [node name="RayCast2D" type="Area2D" parent="."] diff --git a/enemies/leech/leech.gd b/enemies/leech/leech.gd index 079d597..7b3def3 100644 --- a/enemies/leech/leech.gd +++ b/enemies/leech/leech.gd @@ -70,8 +70,9 @@ func calculate_segment_location_and_rotation (i) -> Dictionary: angle1 += TAU if radius < 10000000: - return {"position": center + radius * Vector2.from_angle((i * angle1 + (segment_count - 1 - i) * angle2)/(segment_count - 1)) - , "rotation": (i * angle1 + (segment_count - 1 - i) * angle2)/ (segment_count - 1) + PI/2} + return {"position": center + radius * Vector2.from_angle((i * angle1 + (segment_count - 1 - i) * angle2)/(segment_count - 1)), + "rotation": (i * angle1 + (segment_count - 1 - i) * angle2)/ (segment_count - 1) + sign(ux) * PI/2} + else: return {"position" : Vector2.UP * broadth * i / (segment_count - 1), "rotation" : 3 * PI / 2} diff --git a/enemies/leech/leech.tscn b/enemies/leech/leech.tscn index 76c0c69..4866c55 100644 --- a/enemies/leech/leech.tscn +++ b/enemies/leech/leech.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=6 format=3 uid="uid://b62xcg0dd3vct"] +[gd_scene load_steps=7 format=3 uid="uid://b62xcg0dd3vct"] [ext_resource type="Script" uid="uid://b70f2ylbb3btt" path="res://enemies/leech/leech.gd" id="1_6u582"] +[ext_resource type="PackedScene" uid="uid://dn8qucrpq6k72" path="res://enemies/leech/segment_end.tscn" id="2_i1r8c"] [ext_resource type="PackedScene" uid="uid://cvoicwo2xnf7e" path="res://enemies/leech/segment.tscn" id="2_oqch2"] [ext_resource type="PackedScene" uid="uid://chs0u61f45nau" path="res://utils/earth_aligner.tscn" id="3_0r7dp"] [ext_resource type="AudioStream" uid="uid://co07360hqn6fk" path="res://sounds/686321__cjspellsfish__punch-land-soft.wav" id="4_b1m5t"] @@ -16,7 +17,9 @@ hp = 80 [node name="Segments" type="Node2D" parent="."] -[node name="Segment0" parent="Segments" instance=ExtResource("2_oqch2")] +[node name="SegmentEnd1" parent="Segments" instance=ExtResource("2_i1r8c")] +rotation = 3.1415927 +scale = Vector2(-1, -1) [node name="Segment2" parent="Segments" instance=ExtResource("2_oqch2")] @@ -32,7 +35,7 @@ hp = 80 [node name="Segment8" parent="Segments" instance=ExtResource("2_oqch2")] -[node name="Segment9" parent="Segments" instance=ExtResource("2_oqch2")] +[node name="SegmentEnd2" parent="Segments" instance=ExtResource("2_i1r8c")] [node name="EarthAligner" parent="." instance=ExtResource("3_0r7dp")] diff --git a/enemies/leech/segment_end.png b/enemies/leech/segment_end.png new file mode 100644 index 0000000000000000000000000000000000000000..afe2dbe5835ed8d489a37758a919c00f14d8b414 GIT binary patch literal 3117 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 literal 0 HcmV?d00001 diff --git a/enemies/leech/segment_end.png.import b/enemies/leech/segment_end.png.import new file mode 100644 index 0000000..718c953 --- /dev/null +++ b/enemies/leech/segment_end.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://03pv5447noi8" +path="res://.godot/imported/segment_end.png-3737d47c0764ba7974a4bc464eccda0b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://enemies/leech/segment_end.png" +dest_files=["res://.godot/imported/segment_end.png-3737d47c0764ba7974a4bc464eccda0b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/enemies/leech/segment_end.tscn b/enemies/leech/segment_end.tscn new file mode 100644 index 0000000..63ae911 --- /dev/null +++ b/enemies/leech/segment_end.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=5 format=3 uid="uid://dn8qucrpq6k72"] + +[ext_resource type="Script" uid="uid://b3q5khoqnnicx" path="res://enemies/leech/segment.gd" id="1_tokuw"] +[ext_resource type="Texture2D" uid="uid://03pv5447noi8" path="res://enemies/leech/segment_end.png" id="2_tokuw"] +[ext_resource type="PackedScene" uid="uid://mtfsdd4cdf3a" path="res://utils/enemy_hurtbox.tscn" id="3_ws4kp"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_fgt1l"] + +[node name="Segment" type="Area2D"] +z_index = 4 +collision_layer = 0 +collision_mask = 4 +script = ExtResource("1_tokuw") + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(-1.9073486e-06, 0) +rotation = 1.5707964 +scale = Vector2(0.6233792, 0.6257627) +texture = ExtResource("2_tokuw") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +scale = Vector2(2, 1) +shape = SubResource("RectangleShape2D_fgt1l") + +[node name="EnemyHurtbox" parent="." node_paths=PackedStringArray("canvasItem") instance=ExtResource("3_ws4kp")] +collision_layer = 16 +canvasItem = NodePath("..") +flashColor = Color(2.00392, 2.00392, 2.00392, 1) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyHurtbox"] +visible = false +scale = Vector2(2, 1) +shape = SubResource("RectangleShape2D_fgt1l") + +[connection signal="damage_taken" from="EnemyHurtbox" to="." method="_on_hurtbox_damaged"] diff --git a/main.tscn b/main.tscn index c26f383..7d7c798 100644 --- a/main.tscn +++ b/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://cxo6bq26huau7"] +[gd_scene load_steps=15 format=3 uid="uid://cxo6bq26huau7"] [ext_resource type="PackedScene" uid="uid://cmaovvr15b3qk" path="res://player/player.tscn" id="2_1bvp3"] [ext_resource type="Texture2D" uid="uid://d3fpq76anm4t7" path="res://world/Background Prototype/Background prototype.png" id="3_kek77"] @@ -13,6 +13,7 @@ [ext_resource type="PackedScene" uid="uid://ca5ndobertnp4" path="res://water/water.tscn" id="10_4c57u"] [ext_resource type="Script" uid="uid://cpaskpj67pnaj" path="res://enemies/boss/boss_spawner.gd" id="10_efxa6"] [ext_resource type="PackedScene" uid="uid://cpe4s6vsn0ujd" path="res://enemies/boss/boss.tscn" id="11_efxa6"] +[ext_resource type="PackedScene" uid="uid://5nb7pf8g1ck" path="res://enemies/leech/giant_leech.tscn" id="14_w48qg"] [node name="main" type="Node2D"] @@ -88,6 +89,9 @@ texture = ExtResource("3_kek77") script = ExtResource("10_efxa6") boss = ExtResource("11_efxa6") +[node name="Giant_Leech" parent="." instance=ExtResource("14_w48qg")] +position = Vector2(-49, -3162) + [connection signal="active_item_changed" from="Player" to="UIOverlay/ItemUI" method="_on_player_active_item_changed"] [connection signal="health_changed" from="Player" to="UIOverlay/Healthbar" method="_on_player_health_changed"] [connection signal="max_hp_changed" from="Player" to="UIOverlay/Healthbar" method="_on_player_max_hp_changed"]