diff --git a/Assets/TextureAtlases/bubble.tres b/Assets/TextureAtlases/bubble.tres index 0343478..f2be6b8 100644 --- a/Assets/TextureAtlases/bubble.tres +++ b/Assets/TextureAtlases/bubble.tres @@ -1,6 +1,6 @@ [gd_resource type="AtlasTexture" format=3 uid="uid://d0vafwv4lhjji"] -[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="1_bkvds"] +[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Enemies/Driftling/icon_driftling.png" id="1_bkvds"] [resource] atlas = ExtResource("1_bkvds") diff --git a/Enemies/Driftling/ene_driftling.tres b/Enemies/Driftling/ene_driftling.tres new file mode 100644 index 0000000..3f78284 --- /dev/null +++ b/Enemies/Driftling/ene_driftling.tres @@ -0,0 +1,22 @@ +[gd_resource type="Resource" script_class="Enemy" format=3 uid="uid://dmmdh16m22yqm"] + +[ext_resource type="Texture2D" uid="uid://ta47gpiwloxm" path="res://Assets/Textures/dead_bubble.png" id="1_85py1"] +[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_wa2rs"] +[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Enemies/Driftling/icon_driftling.png" id="2_4yf64"] +[ext_resource type="PackedScene" uid="uid://ctoqd0fe65ofr" path="res://Enemies/Driftling/scn_driftling.tscn" id="3_pyef7"] + +[resource] +script = ExtResource("1_wa2rs") +title = "ENEMY_FLOATING_FRUIT" +description = "ENEMY_DESC_FLOATING_FRUIT" +target_type = 2 +icon = ExtResource("2_4yf64") +scene = ExtResource("3_pyef7") +death_sprite = ExtResource("1_85py1") +spawn_power = 3 +group_size = 8 +health = 25 +penalty = 4 +movement_speed = 1.3 +spawn_cooldown = 0.4 +metadata/_custom_type_script = "uid://cbwxa2a4hfcy4" diff --git a/Assets/Textures/bubble.png b/Enemies/Driftling/icon_driftling.png similarity index 100% rename from Assets/Textures/bubble.png rename to Enemies/Driftling/icon_driftling.png diff --git a/Assets/Textures/bubble.png.import b/Enemies/Driftling/icon_driftling.png.import similarity index 75% rename from Assets/Textures/bubble.png.import rename to Enemies/Driftling/icon_driftling.png.import index c49a34c..7bbffc1 100644 --- a/Assets/Textures/bubble.png.import +++ b/Enemies/Driftling/icon_driftling.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://chhmkmlfrobhu" -path="res://.godot/imported/bubble.png-c2f885e19b7eb3ae809aa20e6bf51aa3.ctex" +path="res://.godot/imported/icon_driftling.png-1789c848cd61e99bbb7fe7f67d3e59d7.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Assets/Textures/bubble.png" -dest_files=["res://.godot/imported/bubble.png-c2f885e19b7eb3ae809aa20e6bf51aa3.ctex"] +source_file="res://Enemies/Driftling/icon_driftling.png" +dest_files=["res://.godot/imported/icon_driftling.png-1789c848cd61e99bbb7fe7f67d3e59d7.ctex"] [params] diff --git a/Enemies/Driftling/mat_driftling.tres b/Enemies/Driftling/mat_driftling.tres new file mode 100644 index 0000000..66a320c --- /dev/null +++ b/Enemies/Driftling/mat_driftling.tres @@ -0,0 +1,12 @@ +[gd_resource type="ShaderMaterial" format=3 uid="uid://bqi3hc3r35bij"] + +[ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://Shaders/mightyduke_ps1.gdshader" id="1_nil66"] +[ext_resource type="Texture2D" uid="uid://cd0o0ltea1gc5" path="res://Enemies/Driftling/tex_driftling.png" id="2_hy4g3"] + +[resource] +render_priority = 0 +shader = ExtResource("1_nil66") +shader_parameter/albedo = ExtResource("2_hy4g3") +shader_parameter/jitter_z_coordinate = true +shader_parameter/jitter_depth_independent = true +shader_parameter/alpha_scissor = 1.0 diff --git a/Enemies/Driftling/mdl_driftling.glb b/Enemies/Driftling/mdl_driftling.glb new file mode 100644 index 0000000..dba4bd6 Binary files /dev/null and b/Enemies/Driftling/mdl_driftling.glb differ diff --git a/Enemies/Driftling/mdl_driftling.glb.import b/Enemies/Driftling/mdl_driftling.glb.import new file mode 100644 index 0000000..b8e7afa --- /dev/null +++ b/Enemies/Driftling/mdl_driftling.glb.import @@ -0,0 +1,50 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cwgv4x1lemw60" +path="res://.godot/imported/mdl_driftling.glb-9c27fb2767d02357a866b2fb92373c0c.scn" + +[deps] + +source_file="res://Enemies/Driftling/mdl_driftling.glb" +dest_files=["res://.godot/imported/mdl_driftling.glb-9c27fb2767d02357a866b2fb92373c0c.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=false +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Material": { +"use_external/enabled": true, +"use_external/fallback_path": "res://Enemies/Driftling/mat_driftling.tres", +"use_external/path": "uid://bqi3hc3r35bij" +} +} +} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/Enemies/Driftling/scn_driftling.tscn b/Enemies/Driftling/scn_driftling.tscn new file mode 100644 index 0000000..64e5b39 --- /dev/null +++ b/Enemies/Driftling/scn_driftling.tscn @@ -0,0 +1,111 @@ +[gd_scene format=3 uid="uid://ctoqd0fe65ofr"] + +[ext_resource type="PackedScene" uid="uid://bjo2q6vca5qlv" path="res://Worlds/GreenPlanet/Enemies/air_enemy.tscn" id="1_8yn7v"] +[ext_resource type="PackedScene" uid="uid://cwgv4x1lemw60" path="res://Enemies/Driftling/mdl_driftling.glb" id="3_8yn7v"] +[ext_resource type="Script" uid="uid://cxu1voan64i5g" path="res://Scripts/driftling_drippler.gd" id="3_j6vnr"] +[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="3_w6hpp"] + +[sub_resource type="ViewportTexture" id="ViewportTexture_jw1s4"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_c5uwa"] +radius = 0.98339844 +height = 1.977041 + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_d7aub"] +radius = 0.133503 +height = 2.1241307 + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_w6hpp"] +animation = &"Deflated" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lgos0"] +animation = &"Bloated" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_s1mj6"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_bw4p2"] +graph_offset = Vector2(-290, 122) +nodes/Blend2/node = SubResource("AnimationNodeBlend2_s1mj6") +nodes/Blend2/position = Vector2(138, 208) +nodes/Animation/node = SubResource("AnimationNodeAnimation_lgos0") +nodes/Animation/position = Vector2(-94, 177) +"nodes/Animation 2/node" = SubResource("AnimationNodeAnimation_w6hpp") +"nodes/Animation 2/position" = Vector2(-66, 358) +node_connections = [&"output", 0, &"Blend2", &"Blend2", 0, &"Animation", &"Blend2", 1, &"Animation 2"] + +[node name="Driftling" unique_id=1355419805 instance=ExtResource("1_8yn7v")] + +[node name="Sprite3D" parent="." index="0" unique_id=2020998819] +texture = SubResource("ViewportTexture_jw1s4") + +[node name="MainHitbox" type="CollisionShape3D" parent="." index="6" unique_id=1521729609] +transform = Transform3D(0.025398083, 0, 0, 0, 0.025398083, 0, 0, 0, 0.025398083, 0, 0.23003143, 0) +visible = false +shape = SubResource("CapsuleShape3D_c5uwa") +script = ExtResource("3_w6hpp") +metadata/_custom_type_script = "uid://cummt2be3r1gq" + +[node name="MiniHitbox" type="CollisionShape3D" parent="." index="7" unique_id=1324997842] +transform = Transform3D(0.025398083, 0, 0, 0, 0.025398083, 0, 0, 0, 0.025398083, 0, 0.23003143, 0) +shape = SubResource("CapsuleShape3D_d7aub") +script = ExtResource("3_w6hpp") +critical_zone = true +metadata/_custom_type_script = "uid://cummt2be3r1gq" + +[node name="AnimationTree" type="AnimationTree" parent="." index="8" unique_id=1384808804] +root_node = NodePath("../Model/mdl_driftling") +tree_root = SubResource("AnimationNodeBlendTree_bw4p2") +anim_player = NodePath("../Model/mdl_driftling/AnimationPlayer") +parameters/Blend2/blend_amount = 1.0 + +[node name="DriftlingDrippler" type="Node" parent="." index="9" unique_id=1556854131 node_paths=PackedStringArray("driftling", "animator", "model", "bloat_hitbox", "croak_hitbox")] +script = ExtResource("3_j6vnr") +driftling = NodePath("..") +animator = NodePath("../AnimationTree") +model = NodePath("../Model") +bloat_hitbox = NodePath("../MainHitbox") +croak_hitbox = NodePath("../MiniHitbox") +metadata/_custom_type_script = "uid://cxu1voan64i5g" + +[node name="Model" type="Node3D" parent="." index="10" unique_id=1556851526] + +[node name="mdl_driftling" parent="Model" index="0" unique_id=2080841843 instance=ExtResource("3_8yn7v")] +transform = Transform3D(0.025398083, 0, 0, 0, 0.025398083, 0, 0, 0, 0.025398083, 0, 0.23003143, 0) + +[node name="Skeleton3D" parent="Model/mdl_driftling/Armature" parent_id_path=PackedInt32Array(2080841843, 1116308214) index="0" unique_id=754562592] +bones/0/position = Vector3(0, -7.9475665, 0) +bones/0/scale = Vector3(1.0113525, 1.0113525, 1.0113525) +bones/1/position = Vector3(0, 67.987755, 0) +bones/1/scale = Vector3(0.6716861, 0.6716861, 0.6716861) +bones/2/position = Vector3(-1.6946578e-06, 44.271133, -2.1119783e-06) +bones/2/scale = Vector3(0.40565705, 0.40565705, 0.40565705) +bones/3/position = Vector3(-3.765092e-07, 44.27113, 1.1673371e-06) +bones/3/scale = Vector3(0.4056571, 0.40565705, 0.40565717) +bones/4/position = Vector3(7.770317e-07, 44.27113, -1.5014622e-07) +bones/4/rotation = Quaternion(0.5317831, 0.7070258, 0.46605453, -0.010696763) +bones/4/scale = Vector3(0.4056571, 0.40565705, 0.40565705) +bones/5/position = Vector3(-1.4425112e-06, 44.271122, -1.8969426e-06) +bones/5/rotation = Quaternion(-0.537099, 0.70709294, 0.45991817, -0.0044176164) +bones/5/scale = Vector3(0.40565705, 0.4056571, 0.40565717) +bones/6/position = Vector3(4.4186196, 2.4544883, 0.70625716) +bones/6/rotation = Quaternion(-0.064180955, -0.75551605, -0.054375976, 0.6497073) +bones/7/rotation = Quaternion(-0.27142996, 0.5448384, 0.14401576, 0.78021556) +bones/8/rotation = Quaternion(0.14881423, -0.7253057, -0.009013298, 0.6720898) +bones/9/position = Vector3(-4.8646164, 3.1215818, -1.4573387) +bones/9/rotation = Quaternion(-0.22782737, 0.6727271, -0.011520631, 0.7038467) +bones/10/rotation = Quaternion(-0.10566461, -0.019764336, 0.2930021, 0.9500496) +bones/11/rotation = Quaternion(0.022023587, -0.23883471, -0.0027645533, 0.97080654) + +[node name="RemoteTransform3D" type="RemoteTransform3D" parent="Model/mdl_driftling" index="2" unique_id=2128131942] +remote_path = NodePath("../../../MainHitbox") + +[node name="RemoteTransform3D2" type="RemoteTransform3D" parent="Model/mdl_driftling" index="3" unique_id=1585476146] +remote_path = NodePath("../../../MiniHitbox") + +[connection signal="recieved_effect" from="MainHitbox" to="StatusEffector" method="add_effect"] +[connection signal="took_damage" from="MainHitbox" to="." method="take_damage"] +[connection signal="recieved_effect" from="MiniHitbox" to="StatusEffector" method="add_effect"] +[connection signal="took_damage" from="MiniHitbox" to="." method="take_damage"] + +[editable path="Model/mdl_driftling"] diff --git a/Enemies/Driftling/tex_driftling.png b/Enemies/Driftling/tex_driftling.png new file mode 100644 index 0000000..6745d85 Binary files /dev/null and b/Enemies/Driftling/tex_driftling.png differ diff --git a/Enemies/Driftling/tex_driftling.png.import b/Enemies/Driftling/tex_driftling.png.import new file mode 100644 index 0000000..d5e1537 --- /dev/null +++ b/Enemies/Driftling/tex_driftling.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cd0o0ltea1gc5" +path.s3tc="res://.godot/imported/tex_driftling.png-db4d273741c34886144ee624ee680b1a.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Enemies/Driftling/tex_driftling.png" +dest_files=["res://.godot/imported/tex_driftling.png-db4d273741c34886144ee624ee680b1a.s3tc.ctex"] + +[params] + +compress/mode=2 +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=true +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=0 diff --git a/Enemies/ElderEyeDog/elder_eye_dog.tres b/Enemies/ElderEyeDog/elder_eye_dog.tres index 881f8a8..3eafd77 100644 --- a/Enemies/ElderEyeDog/elder_eye_dog.tres +++ b/Enemies/ElderEyeDog/elder_eye_dog.tres @@ -4,7 +4,7 @@ [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_q48il"] [ext_resource type="Texture2D" uid="uid://e7lahg40lq8a" path="res://Assets/Textures/dead_eye_dog_heavy.png" id="1_qveaa"] [ext_resource type="Texture2D" uid="uid://c0543ucoalwmi" path="res://Assets/TextureAtlases/dog_fast_heavy.tres" id="2_7nc4x"] -[ext_resource type="PackedScene" uid="uid://dl3rwqwbgrq2m" path="res://Enemies/ElderEyeDog/elder_eye_dog.tscn" id="3_m808b"] +[ext_resource type="PackedScene" uid="uid://dl3rwqwbgrq2m" path="res://Enemies/ElderEyeDog/scn_elder_eye_dog.tscn" id="3_m808b"] [resource] script = ExtResource("1_q48il") diff --git a/Enemies/ElderEyeDog/elder_eyedog.glb b/Enemies/ElderEyeDog/elder_eyedog.glb deleted file mode 100644 index 82971e1..0000000 Binary files a/Enemies/ElderEyeDog/elder_eyedog.glb and /dev/null differ diff --git a/Enemies/ElderEyeDog/elder_eye_dog_mat.tres b/Enemies/ElderEyeDog/mat_elder_eye_dog.tres similarity index 88% rename from Enemies/ElderEyeDog/elder_eye_dog_mat.tres rename to Enemies/ElderEyeDog/mat_elder_eye_dog.tres index 7e74603..2f65545 100644 --- a/Enemies/ElderEyeDog/elder_eye_dog_mat.tres +++ b/Enemies/ElderEyeDog/mat_elder_eye_dog.tres @@ -1,7 +1,7 @@ [gd_resource type="ShaderMaterial" format=3 uid="uid://gyrbycd3icjr"] [ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://Shaders/mightyduke_ps1.gdshader" id="1_x1doh"] -[ext_resource type="Texture2D" uid="uid://bd1hlqvfpaxy0" path="res://Enemies/ElderEyeDog/elder_eyedog_tex.png" id="2_jh2nf"] +[ext_resource type="Texture2D" uid="uid://bd1hlqvfpaxy0" path="res://Enemies/ElderEyeDog/tex_elder_eyedog.png" id="2_jh2nf"] [resource] render_priority = 0 diff --git a/Enemies/ElderEyeDog/mdl_elder_eye_dog.glb b/Enemies/ElderEyeDog/mdl_elder_eye_dog.glb new file mode 100644 index 0000000..e3c5bf3 Binary files /dev/null and b/Enemies/ElderEyeDog/mdl_elder_eye_dog.glb differ diff --git a/Enemies/ElderEyeDog/elder_eyedog.glb.import b/Enemies/ElderEyeDog/mdl_elder_eye_dog.glb.import similarity index 99% rename from Enemies/ElderEyeDog/elder_eyedog.glb.import rename to Enemies/ElderEyeDog/mdl_elder_eye_dog.glb.import index c05d134..80b0251 100644 --- a/Enemies/ElderEyeDog/elder_eyedog.glb.import +++ b/Enemies/ElderEyeDog/mdl_elder_eye_dog.glb.import @@ -4,12 +4,12 @@ importer="scene" importer_version=1 type="PackedScene" uid="uid://r2s4pd42y0ma" -path="res://.godot/imported/elder_eyedog.glb-783079ff3d8c9e21679649baf7fc5dfa.scn" +path="res://.godot/imported/mdl_elder_eye_dog.glb-ec782481e3f4b9764a3965a49b43744c.scn" [deps] -source_file="res://Enemies/ElderEyeDog/elder_eyedog.glb" -dest_files=["res://.godot/imported/elder_eyedog.glb-783079ff3d8c9e21679649baf7fc5dfa.scn"] +source_file="res://Enemies/ElderEyeDog/mdl_elder_eye_dog.glb" +dest_files=["res://.godot/imported/mdl_elder_eye_dog.glb-ec782481e3f4b9764a3965a49b43744c.scn"] [params] @@ -2099,7 +2099,7 @@ _subresources={ "materials": { "Material": { "use_external/enabled": true, -"use_external/fallback_path": "res://Enemies/ElderEyeDog/elder_eye_dog_mat.tres", +"use_external/fallback_path": "res://Enemies/ElderEyeDog/mat_elder_eye_dog.tres", "use_external/path": "uid://gyrbycd3icjr" } } diff --git a/Enemies/ElderEyeDog/elder_eye_dog.tscn b/Enemies/ElderEyeDog/scn_elder_eye_dog.tscn similarity index 57% rename from Enemies/ElderEyeDog/elder_eye_dog.tscn rename to Enemies/ElderEyeDog/scn_elder_eye_dog.tscn index 3ab1019..022b96f 100644 --- a/Enemies/ElderEyeDog/elder_eye_dog.tscn +++ b/Enemies/ElderEyeDog/scn_elder_eye_dog.tscn @@ -1,19 +1,19 @@ [gd_scene format=3 uid="uid://dl3rwqwbgrq2m"] -[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_17xxt"] -[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_lirjc"] -[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="5_bi7k0"] -[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="6_k6khd"] -[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://UI/EnemyHealthBar/health_bar.tscn" id="7_wko6w"] -[ext_resource type="Script" uid="uid://b62xnsbki8axa" path="res://Scripts/EnemyAI/pathing_controller.gd" id="8_2jssq"] -[ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="9_2x8lp"] -[ext_resource type="PackedScene" uid="uid://r2s4pd42y0ma" path="res://Enemies/ElderEyeDog/elder_eyedog.glb" id="10_17xxt"] +[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_7wwbi"] +[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_k8w4y"] +[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="3_bwjh5"] +[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="4_lo02o"] +[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://UI/EnemyHealthBar/health_bar.tscn" id="5_vh4kk"] +[ext_resource type="Script" uid="uid://b62xnsbki8axa" path="res://Scripts/EnemyAI/pathing_controller.gd" id="6_fulai"] +[ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="7_h8ie4"] +[ext_resource type="PackedScene" uid="uid://r2s4pd42y0ma" path="res://Enemies/ElderEyeDog/mdl_elder_eye_dog.glb" id="8_fil5h"] [sub_resource type="SphereShape3D" id="SphereShape3D_cavbv"] radius = 0.499268 [sub_resource type="SphereShape3D" id="SphereShape3D_h25mw"] -radius = 0.269705 +radius = 0.325 [sub_resource type="ViewportTexture" id="ViewportTexture_1kwxq"] viewport_path = NodePath("SubViewport") @@ -21,24 +21,24 @@ viewport_path = NodePath("SubViewport") [node name="ElderEyeDog" type="CharacterBody3D" unique_id=1106613653 node_paths=PackedStringArray("status_manager", "movement_controller", "d_n", "health_bar") groups=["Enemies"]] collision_layer = 4 collision_mask = 0 -script = ExtResource("1_17xxt") +script = ExtResource("1_7wwbi") status_manager = NodePath("StatusEffector") movement_controller = NodePath("PathingController") d_n = NodePath("Node3D") -corpse_scene = ExtResource("2_lirjc") +corpse_scene = ExtResource("2_k8w4y") health_bar = NodePath("SubViewport/HealthBar") metadata/_custom_type_script = "uid://ejqql2660u6h" [node name="Hitbox" type="CollisionShape3D" parent="." unique_id=542685682] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.33811, -0.0104714) shape = SubResource("SphereShape3D_cavbv") -script = ExtResource("5_bi7k0") +script = ExtResource("3_bwjh5") metadata/_custom_type_script = "uid://cummt2be3r1gq" [node name="Hitbox2" type="CollisionShape3D" parent="." unique_id=545828870] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.740182, -0.597066) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.836113, -0.6853672) shape = SubResource("SphereShape3D_h25mw") -script = ExtResource("5_bi7k0") +script = ExtResource("3_bwjh5") critical_zone = true metadata/_custom_type_script = "uid://cummt2be3r1gq" @@ -54,7 +54,7 @@ texture = SubResource("ViewportTexture_1kwxq") transform = Transform3D(2, 0, 0, 0, -8.74228e-08, 2, 0, -2, -8.74228e-08, 0, 1.40824, 0) layers = 4 texture_filter = 0 -texture = ExtResource("6_k6khd") +texture = ExtResource("4_lo02o") [node name="SubViewport" type="SubViewport" parent="." unique_id=1820335802] transparent_bg = true @@ -68,52 +68,27 @@ offset_bottom = 32.0 grow_horizontal = 2 alignment = 1 -[node name="HealthBar" parent="SubViewport" unique_id=1387963011 instance=ExtResource("7_wko6w")] +[node name="HealthBar" parent="SubViewport" unique_id=1387963011 instance=ExtResource("5_vh4kk")] visible = false offset_top = 36.0 offset_bottom = 236.0 [node name="PathingController" type="Node" parent="." unique_id=1624393903 node_paths=PackedStringArray("character")] -script = ExtResource("8_2jssq") +script = ExtResource("6_fulai") character = NodePath("..") [node name="StatusEffector" type="Node" parent="." unique_id=1475993690 node_paths=PackedStringArray("sprite_container")] -script = ExtResource("9_2x8lp") +script = ExtResource("7_h8ie4") sprite_container = NodePath("../SubViewport/HBoxContainer") metadata/_custom_type_script = "uid://cojjgevmbhwal" [node name="Node3D" type="Node3D" parent="." unique_id=1193172733] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.39813, 0) -[node name="elder_eyedog" parent="." unique_id=1274853328 instance=ExtResource("10_17xxt")] +[node name="elder_eyedog" parent="." unique_id=1512230579 instance=ExtResource("8_fil5h")] transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0) -[node name="Skeleton3D" parent="elder_eyedog/Armature" parent_id_path=PackedInt32Array(1274853328, 2060041769) index="0" unique_id=1252984474] -bones/1/rotation = Quaternion(-0.43930408, -1.0709029e-07, 5.2369124e-08, 0.89833844) -bones/3/rotation = Quaternion(0.23378512, 0.32485124, 0.5427555, 0.7383988) -bones/4/rotation = Quaternion(0.2025959, 0.7308365, 0.13344719, 0.637985) -bones/5/rotation = Quaternion(0.08071687, 0.11379393, 0.103388034, 0.98480797) -bones/6/rotation = Quaternion(0.18970048, 0.045550477, -0.014727625, 0.9806743) -bones/7/rotation = Quaternion(0.21259236, -0.040924743, -0.77614677, 0.5922212) -bones/8/rotation = Quaternion(0.14559563, -0.673764, -0.22377312, 0.68903524) -bones/9/rotation = Quaternion(0.21457952, -0.06795216, -0.27383056, 0.9350695) -bones/10/rotation = Quaternion(0.36169595, -0.022981033, -0.07378154, 0.9290878) -bones/11/position = Vector3(-0.18218139, 0.024974564, -0.29701275) -bones/13/rotation = Quaternion(-0.19031386, -0.3437138, 0.6673053, 0.6327283) -bones/14/rotation = Quaternion(-0.31594613, -0.57630664, -0.23705915, 0.71543807) -bones/15/rotation = Quaternion(0.36767012, -0.03635548, 0.34470242, 0.8629468) -bones/16/rotation = Quaternion(0.39200988, 0.014128355, 0.1034986, 0.91401124) -bones/17/rotation = Quaternion(-0.41564333, 0.23491889, -0.8066817, 0.34830806) -bones/18/rotation = Quaternion(-0.15507148, 0.54643595, 0.03793797, 0.8221443) -bones/19/rotation = Quaternion(0.16323948, -0.017942403, -0.15406615, 0.97431755) -bones/20/rotation = Quaternion(0.20094736, -0.03854681, -0.0018878406, 0.9788416) -bones/22/position = Vector3(-0.1285572, 0.015959304, 0.5192608) -bones/22/scale = Vector3(0.89347196, 1, 1) -bones/23/position = Vector3(0.25597548, 0.022818465, 0.20058686) -bones/23/scale = Vector3(0.89347196, 1, 1) -bones/24/position = Vector3(0.08454189, 0.014853473, 0.12984678) - -[node name="AnimationPlayer" parent="elder_eyedog" index="1" unique_id=488088617] +[node name="AnimationPlayer" parent="elder_eyedog" index="1" unique_id=562572224] autoplay = &"Walk" [connection signal="recieved_effect" from="Hitbox" to="StatusEffector" method="add_effect"] diff --git a/Enemies/ElderEyeDog/elder_eyedog_tex.png b/Enemies/ElderEyeDog/tex_elder_eyedog.png similarity index 100% rename from Enemies/ElderEyeDog/elder_eyedog_tex.png rename to Enemies/ElderEyeDog/tex_elder_eyedog.png diff --git a/Enemies/ElderEyeDog/elder_eyedog_tex.png.import b/Enemies/ElderEyeDog/tex_elder_eyedog.png.import similarity index 74% rename from Enemies/ElderEyeDog/elder_eyedog_tex.png.import rename to Enemies/ElderEyeDog/tex_elder_eyedog.png.import index 5d5b033..1d4aab2 100644 --- a/Enemies/ElderEyeDog/elder_eyedog_tex.png.import +++ b/Enemies/ElderEyeDog/tex_elder_eyedog.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bd1hlqvfpaxy0" -path="res://.godot/imported/elder_eyedog_tex.png-e84d9931073744a1cd754d9c856dc8df.ctex" +path="res://.godot/imported/tex_elder_eyedog.png-87da95f97dbc2fc4f37595d0daf5db98.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Enemies/ElderEyeDog/elder_eyedog_tex.png" -dest_files=["res://.godot/imported/elder_eyedog_tex.png-e84d9931073744a1cd754d9c856dc8df.ctex"] +source_file="res://Enemies/ElderEyeDog/tex_elder_eyedog.png" +dest_files=["res://.godot/imported/tex_elder_eyedog.png-87da95f97dbc2fc4f37595d0daf5db98.ctex"] [params] diff --git a/Levels/Level2/wave2.tres b/Levels/Level2/wave2.tres index 327efd5..a644ba9 100644 --- a/Levels/Level2/wave2.tres +++ b/Levels/Level2/wave2.tres @@ -1,32 +1,26 @@ [gd_resource type="Resource" script_class="WaveConfig" format=3 uid="uid://bkujvdsbyiinu"] [ext_resource type="Script" uid="uid://3grc2j4bjrnw" path="res://enemy_group.gd" id="1_elghy"] +[ext_resource type="Resource" uid="uid://dmmdh16m22yqm" path="res://Enemies/Driftling/ene_driftling.tres" id="2_ptdu7"] [ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="2_ua2h7"] [ext_resource type="Script" uid="uid://bp6q371iypd06" path="res://Scripts/wave_config.gd" id="3_ptdu7"] [sub_resource type="Resource" id="Resource_wug4u"] script = ExtResource("1_elghy") -enemy = ExtResource("2_ua2h7") -count = 4 +enemy = ExtResource("2_ptdu7") +count = 10 metadata/_custom_type_script = "uid://3grc2j4bjrnw" -[sub_resource type="Resource" id="Resource_1qdvn"] +[sub_resource type="Resource" id="Resource_4wbbd"] script = ExtResource("1_elghy") enemy = ExtResource("2_ua2h7") -count = 4 -metadata/_custom_type_script = "uid://3grc2j4bjrnw" - -[sub_resource type="Resource" id="Resource_pwamm"] -script = ExtResource("1_elghy") -enemy = ExtResource("2_ua2h7") -count = 2 +count = 5 metadata/_custom_type_script = "uid://3grc2j4bjrnw" [resource] script = ExtResource("3_ptdu7") enemy_groups = Dictionary[ExtResource("1_elghy"), int]({ SubResource("Resource_wug4u"): 0, -SubResource("Resource_1qdvn"): 1, -SubResource("Resource_pwamm"): 4 +SubResource("Resource_4wbbd"): 0 }) metadata/_custom_type_script = "uid://bp6q371iypd06" diff --git a/Levels/Level2/wave4.tres b/Levels/Level2/wave4.tres index bd84eb7..71e412b 100644 --- a/Levels/Level2/wave4.tres +++ b/Levels/Level2/wave4.tres @@ -2,12 +2,13 @@ [ext_resource type="Script" uid="uid://3grc2j4bjrnw" path="res://enemy_group.gd" id="1_v1o46"] [ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="2_45pet"] +[ext_resource type="Resource" uid="uid://dmmdh16m22yqm" path="res://Enemies/Driftling/ene_driftling.tres" id="2_eqgft"] [ext_resource type="Script" uid="uid://bp6q371iypd06" path="res://Scripts/wave_config.gd" id="3_eqgft"] [sub_resource type="Resource" id="Resource_wug4u"] script = ExtResource("1_v1o46") -enemy = ExtResource("2_45pet") -count = 6 +enemy = ExtResource("2_eqgft") +count = 20 metadata/_custom_type_script = "uid://3grc2j4bjrnw" [sub_resource type="Resource" id="Resource_1qdvn"] diff --git a/Levels/Level2/wave8.tres b/Levels/Level2/wave8.tres index 1404602..3f67ec8 100644 --- a/Levels/Level2/wave8.tres +++ b/Levels/Level2/wave8.tres @@ -5,6 +5,8 @@ [ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="3_xts1g"] [ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="4_vvcwx"] [ext_resource type="Script" uid="uid://bp6q371iypd06" path="res://Scripts/wave_config.gd" id="5_nu1jj"] +[ext_resource type="Resource" uid="uid://dmmdh16m22yqm" path="res://Enemies/Driftling/ene_driftling.tres" id="5_xts1g"] +[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="6_vvcwx"] [sub_resource type="Resource" id="Resource_wug4u"] script = ExtResource("1_gehmj") @@ -42,6 +44,18 @@ enemy = ExtResource("2_5fnx2") count = 10 metadata/_custom_type_script = "uid://3grc2j4bjrnw" +[sub_resource type="Resource" id="Resource_nu1jj"] +script = ExtResource("1_gehmj") +enemy = ExtResource("5_xts1g") +count = 30 +metadata/_custom_type_script = "uid://3grc2j4bjrnw" + +[sub_resource type="Resource" id="Resource_hewgx"] +script = ExtResource("1_gehmj") +enemy = ExtResource("6_vvcwx") +count = 10 +metadata/_custom_type_script = "uid://3grc2j4bjrnw" + [resource] script = ExtResource("5_nu1jj") enemy_groups = Dictionary[ExtResource("1_gehmj"), int]({ @@ -50,7 +64,9 @@ SubResource("Resource_1qdvn"): 1, SubResource("Resource_pwamm"): 2, SubResource("Resource_uemaq"): 4, SubResource("Resource_ykvv7"): 1, -SubResource("Resource_d02ik"): 0 +SubResource("Resource_d02ik"): 0, +SubResource("Resource_nu1jj"): 0, +SubResource("Resource_hewgx"): 1 }) rewards_blank_cassette = true metadata/_custom_type_script = "uid://bp6q371iypd06" diff --git a/PCs/hero.gd b/PCs/hero.gd index c8baaed..563eccb 100644 --- a/PCs/hero.gd +++ b/PCs/hero.gd @@ -460,5 +460,5 @@ func unequip_weapon(slot: int = 0) -> void: hud.hot_wheel.update_cassettes(get_wheel_cards()) -func _on_hitbox_took_damage(amount: int, damage_type: int, pos: Vector3) -> void: +func _on_hitbox_took_damage(_amount: int, _damage_type: int, _pos: Vector3) -> void: pass # Replace with function body. diff --git a/PCs/hero.tscn b/PCs/hero.tscn index 1140837..df4442c 100644 --- a/PCs/hero.tscn +++ b/PCs/hero.tscn @@ -22,7 +22,7 @@ [ext_resource type="Environment" uid="uid://cpn2no3e8s361" path="res://cam_environment.tres" id="13_vkt85"] [ext_resource type="Script" uid="uid://dkhl8u8p6gmlu" path="res://PCs/spring.gd" id="15_0ehim"] [ext_resource type="Texture2D" uid="uid://c60fh34ttgcvh" path="res://Assets/Textures/minimap_player.png" id="15_nhlam"] -[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="15_q3yot"] +[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Enemies/Driftling/icon_driftling.png" id="15_q3yot"] [ext_resource type="Texture2D" uid="uid://cqnapc8cscl7i" path="res://Assets/Textures/border.png" id="16_x1xjr"] [ext_resource type="PackedScene" uid="uid://chnj376d3lcjd" path="res://UI/pickup_notification.tscn" id="17_oyeww"] [ext_resource type="Script" uid="uid://b5wle8f6rv3e7" path="res://PCs/player_movement.gd" id="20_cfhw8"] diff --git a/Resources/Enemies/airenemy.tres b/Resources/Enemies/airenemy.tres index daad7f1..91890d6 100644 --- a/Resources/Enemies/airenemy.tres +++ b/Resources/Enemies/airenemy.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="Enemy" format=3 uid="uid://dsgkwh3opyqtx"] -[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="1_57rr1"] +[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Enemies/Driftling/icon_driftling.png" id="1_57rr1"] [ext_resource type="Texture2D" uid="uid://ta47gpiwloxm" path="res://Assets/Textures/dead_bubble.png" id="1_ioqxi"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_wjbfx"] [ext_resource type="PackedScene" uid="uid://bjo2q6vca5qlv" path="res://Worlds/GreenPlanet/Enemies/air_enemy.tscn" id="3_86skx"] diff --git a/Scripts/Resources/save_data.gd b/Scripts/Resources/save_data.gd index 13315ca..2283a12 100644 --- a/Scripts/Resources/save_data.gd +++ b/Scripts/Resources/save_data.gd @@ -28,6 +28,10 @@ var mage_unlocked: bool = 0 func check_high_score(level_title: String, wave_reached: int, endless: bool) -> void: + if !endless_high_scores.has(level_title): + endless_high_scores[level_title] = 0 + if !level_high_scores.has(level_title): + level_high_scores[level_title] = 0 if endless and endless_high_scores[level_title] < wave_reached: endless_high_scores[level_title] = wave_reached elif level_high_scores[level_title] < wave_reached: diff --git a/Scripts/driftling_drippler.gd b/Scripts/driftling_drippler.gd new file mode 100644 index 0000000..ae141f8 --- /dev/null +++ b/Scripts/driftling_drippler.gd @@ -0,0 +1,55 @@ +class_name DriftlingDrippler +extends Node + +enum DriftlingDrippleState { + BLOATING = 0, + FLOATING = 1, + CHOAKING = 2, + CROAKING = 3 +} + +@export var driftling: EnemyController +@export var animator: AnimationTree +@export var model: Node3D +@export var bloat_hitbox: Hitbox +@export var croak_hitbox: Hitbox + +var time_to_bloat: float = 1.5 +var time_to_float: float = 3.0 +var time_to_choak: float = 0.8 +var time_to_croak: float = 0.4 +var state: DriftlingDrippleState = DriftlingDrippleState.BLOATING + + +func _ready() -> void: + time_to_bloat += NoiseRandom.randf_in_range(name.to_int(), 0.0, 0.5) + time_to_float += NoiseRandom.randf_in_range(name.to_int(), 0.0, 2.0) + time_to_choak += NoiseRandom.randf_in_range(name.to_int(), 0.0, 0.4) + time_to_croak += NoiseRandom.randf_in_range(name.to_int(), 0.0, 0.2) + next_state(DriftlingDrippleState.BLOATING) + + +func set_dripple(amount: float) -> void: + animator.set("parameters/Blend2/blend_amount", amount) + + +func next_state(state: DriftlingDrippleState) -> void: + var tween: Tween = create_tween() + + match state: + DriftlingDrippleState.BLOATING: + tween.tween_method(set_dripple, 1.0, 0.0, time_to_bloat) + tween.tween_property(model, "position", Vector3.UP * 3.0, time_to_bloat) + tween.tween_callback(next_state.bind(DriftlingDrippleState.FLOATING)) + DriftlingDrippleState.FLOATING: + bloat_hitbox.disabled = false + tween.tween_interval(time_to_float) + tween.tween_callback(next_state.bind(DriftlingDrippleState.CHOAKING)) + DriftlingDrippleState.CHOAKING: + bloat_hitbox.disabled = true + tween.tween_method(set_dripple, 0.0, 1.0, time_to_croak) + tween.tween_property(model, "position", Vector3.DOWN * 3.0, time_to_croak) + tween.tween_callback(next_state.bind(DriftlingDrippleState.CROAKING)) + DriftlingDrippleState.CROAKING: + tween.tween_interval(time_to_float) + tween.tween_callback(next_state.bind(DriftlingDrippleState.BLOATING)) diff --git a/Scripts/driftling_drippler.gd.uid b/Scripts/driftling_drippler.gd.uid new file mode 100644 index 0000000..a004c48 --- /dev/null +++ b/Scripts/driftling_drippler.gd.uid @@ -0,0 +1 @@ +uid://cxu1voan64i5g diff --git a/Scripts/enemy_goal.gd b/Scripts/enemy_goal.gd index dcbb53a..30725ad 100644 --- a/Scripts/enemy_goal.gd +++ b/Scripts/enemy_goal.gd @@ -24,13 +24,13 @@ func enemy_entered_shield_range(body: Node3D) -> void: body.reached_goal.connect(enemy_reached_goal) -func enemy_died(enemy: Enemy) -> void: +func enemy_died(_enemy: Enemy) -> void: enemies_inside -= 1 if enemies_inside == 0: goal_cleared.emit() -func enemy_reached_goal(enemy: Enemy, penalty: int) -> void: +func enemy_reached_goal(_enemy: Enemy, _penalty: int) -> void: enemies_inside -= 1 if enemies_inside == 0: goal_cleared.emit() diff --git a/Zones/Moat/scn_moat.tscn b/Zones/Moat/scn_moat.tscn index 7aa40a4..a46d963 100644 --- a/Zones/Moat/scn_moat.tscn +++ b/Zones/Moat/scn_moat.tscn @@ -7,6 +7,7 @@ [ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="4_uh5sr"] [ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="5_g08yk"] [ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="6_asmpj"] +[ext_resource type="Resource" uid="uid://dmmdh16m22yqm" path="res://Enemies/Driftling/ene_driftling.tres" id="7_1qlg4"] [ext_resource type="PackedScene" uid="uid://d1gauy86jxpnj" path="res://BrickPile/brick_pile.tscn" id="7_6tcu8"] [ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/CardPrinter/card_printer.tscn" id="9_r25gu"] [ext_resource type="Script" uid="uid://cxwtuxytavfu5" path="res://Scripts/enemy_goal.gd" id="9_s3rd7"] @@ -31,7 +32,7 @@ size = Vector3(260.6662, 2.4995117, 318.20755) [node name="Bridge" type="Node3D" unique_id=1906077552 node_paths=PackedStringArray("tower_path", "player_spawns", "enemy_spawns", "enemy_goals", "corpses", "printer", "shop")] script = ExtResource("1_ws6nn") -enemy_pool = Array[ExtResource("2_ks6qx")]([ExtResource("3_6tcu8"), ExtResource("6_asmpj"), ExtResource("5_g08yk"), ExtResource("4_uh5sr")]) +enemy_pool = Array[ExtResource("2_ks6qx")]([ExtResource("3_6tcu8"), ExtResource("6_asmpj"), ExtResource("5_g08yk"), ExtResource("4_uh5sr"), ExtResource("7_1qlg4")]) tower_path = NodePath("Towers") player_spawns = [NodePath("PlayerSpawnLocations/PlayerSpawn1"), NodePath("PlayerSpawnLocations/PlayerSpawn2"), NodePath("PlayerSpawnLocations/PlayerSpawn3"), NodePath("PlayerSpawnLocations/PlayerSpawn4")] enemy_spawns = [NodePath("GroundSpawn"), NodePath("GroundSpawn2"), NodePath("GroundSpawn3"), NodePath("GroundSpawn4"), NodePath("GroundSpawn5"), NodePath("AirSpawn")] diff --git a/test_level.tscn b/test_level.tscn index 4ad7229..024a5cc 100644 --- a/test_level.tscn +++ b/test_level.tscn @@ -2,7 +2,7 @@ [ext_resource type="PackedScene" uid="uid://bvq6tbkuv2mfp" path="res://Enemies/EyeDog/eye_dog.tscn" id="1_sb12i"] [ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="2_6emce"] -[ext_resource type="PackedScene" uid="uid://dl3rwqwbgrq2m" path="res://Enemies/ElderEyeDog/elder_eye_dog.tscn" id="2_gbhdq"] +[ext_resource type="PackedScene" uid="uid://dl3rwqwbgrq2m" path="res://Enemies/ElderEyeDog/scn_elder_eye_dog.tscn" id="2_gbhdq"] [ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="3_lowby"] [ext_resource type="PackedScene" uid="uid://cveiaa0y66gln" path="res://Enemies/Crystalisk/crystal_enemy.tscn" id="3_y646j"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="4_58smv"]