diff --git a/assets/contraption/3xFloatingPlatform.png b/assets/contraption/3xFloatingPlatform.png new file mode 100644 index 0000000..17bad9b Binary files /dev/null and b/assets/contraption/3xFloatingPlatform.png differ diff --git a/assets/contraption/3xFloatingPlatform.png.import b/assets/contraption/3xFloatingPlatform.png.import new file mode 100644 index 0000000..b94133a --- /dev/null +++ b/assets/contraption/3xFloatingPlatform.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/3xFloatingPlatform.png-a13f2c7c76bd3adae7076cf38d621b7d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/contraption/3xFloatingPlatform.png" +dest_files=[ "res://.import/3xFloatingPlatform.png-a13f2c7c76bd3adae7076cf38d621b7d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/contraption/5xFloatingPlatform.png b/assets/contraption/5xFloatingPlatform.png new file mode 100644 index 0000000..afb9e1a Binary files /dev/null and b/assets/contraption/5xFloatingPlatform.png differ diff --git a/assets/contraption/5xFloatingPlatform.png.import b/assets/contraption/5xFloatingPlatform.png.import new file mode 100644 index 0000000..0b7de2d --- /dev/null +++ b/assets/contraption/5xFloatingPlatform.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/5xFloatingPlatform.png-c8154094c5709787badb6bf61c4f7ac3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/contraption/5xFloatingPlatform.png" +dest_files=[ "res://.import/5xFloatingPlatform.png-c8154094c5709787badb6bf61c4f7ac3.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/environment/blocks/BasicTileSet.aseprite b/assets/environment/blocks/BasicTileSet.aseprite index a7ddb95..34ef8ef 100644 Binary files a/assets/environment/blocks/BasicTileSet.aseprite and b/assets/environment/blocks/BasicTileSet.aseprite differ diff --git a/assets/environment/blocks/BasicTileSet.png b/assets/environment/blocks/BasicTileSet.png index a7f36db..c28caf4 100644 Binary files a/assets/environment/blocks/BasicTileSet.png and b/assets/environment/blocks/BasicTileSet.png differ diff --git a/assets/obstacle object/SpikyMinePlant.png b/assets/obstacle object/SpikyMinePlant.png new file mode 100644 index 0000000..bae3c49 Binary files /dev/null and b/assets/obstacle object/SpikyMinePlant.png differ diff --git a/assets/obstacle object/SpikyMinePlant.png.import b/assets/obstacle object/SpikyMinePlant.png.import new file mode 100644 index 0000000..3c6c6a3 --- /dev/null +++ b/assets/obstacle object/SpikyMinePlant.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/SpikyMinePlant.png-5b8b25c9dea7efa9b28164c9e2cb1560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/obstacle object/SpikyMinePlant.png" +dest_files=[ "res://.import/SpikyMinePlant.png-5b8b25c9dea7efa9b28164c9e2cb1560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Actors/Enemies/Beings/Enemy.gd b/src/Actors/Enemies/Beings/Enemy.gd index 523992c..97d8ab9 100644 --- a/src/Actors/Enemies/Beings/Enemy.gd +++ b/src/Actors/Enemies/Beings/Enemy.gd @@ -9,7 +9,7 @@ func _on_StompDetector_body_entered(body: Node) -> void: player_entered_stomp = true var incoming_vel_vector: Vector2 = body.velocity.normalized() print(rad2deg(abs(incoming_vel_vector.angle_to(Vector2.DOWN.rotated(rotation))))) - if abs(incoming_vel_vector.angle_to(Vector2.DOWN.rotated(rotation))) > deg2rad(90): + if abs(incoming_vel_vector.angle_to(Vector2.DOWN.rotated(rotation))) > deg2rad(95): print("too shallow entry") body.die() player_entered_stomp = false diff --git a/src/Actors/Enemies/Beings/Flyer.tscn b/src/Actors/Enemies/Beings/Flyer.tscn index 3865386..f08dd4f 100644 --- a/src/Actors/Enemies/Beings/Flyer.tscn +++ b/src/Actors/Enemies/Beings/Flyer.tscn @@ -290,8 +290,9 @@ shape = SubResource( 2 ) scale = Vector2( 0.7, 0.7 ) [node name="Area2D" type="Area2D" parent="DangerousBlockArea" groups=["harmful"]] -collision_layer = 8 -collision_mask = 3 +collision_layer = 2 +collision_mask = 0 +monitoring = false [node name="CollisionShape2D" type="CollisionShape2D" parent="DangerousBlockArea/Area2D"] position = Vector2( 5.10897e-07, -0.714285 ) diff --git a/src/Actors/Enemies/Beings/ChasingFlyer.tscn b/src/Actors/legacy/ChasingFlyer.tscn similarity index 100% rename from src/Actors/Enemies/Beings/ChasingFlyer.tscn rename to src/Actors/legacy/ChasingFlyer.tscn diff --git a/src/Levels/1 Tutorial Level.tscn b/src/Levels/1 Tutorial Level.tscn index 182dbbe..8b088c5 100644 --- a/src/Levels/1 Tutorial Level.tscn +++ b/src/Levels/1 Tutorial Level.tscn @@ -42,10 +42,10 @@ unique_name_in_owner = true process_mode = 1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 11 +frame = 6 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 10 +frame = 5 [node name="Blobby" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true diff --git a/src/Levels/2 Tutorial Level.tscn b/src/Levels/2 Tutorial Level.tscn index ef48bec..0bc1ee1 100644 --- a/src/Levels/2 Tutorial Level.tscn +++ b/src/Levels/2 Tutorial Level.tscn @@ -14,7 +14,7 @@ [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=12] [ext_resource path="res://src/ObstacleObjects/PitArea.tscn" type="PackedScene" id=13] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=14] -[ext_resource path="res://src/Actors/Enemies/Beings/Caterpillar.tscn" type="PackedScene" id=15] +[ext_resource path="res://src/ObstacleObjects/Mine.tscn" type="PackedScene" id=15] [sub_resource type="AnimationNodeStateMachinePlayback" id=4] @@ -65,10 +65,10 @@ drag_margin_top = 0.1 drag_margin_bottom = 0.1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 11 +frame = 4 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 10 +frame = 3 [node name="Blobby" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true @@ -154,8 +154,9 @@ position = Vector2( 788, 100 ) [node name="Coin" parent="." instance=ExtResource( 14 )] position = Vector2( 6, 0 ) -[node name="Caterpillar" parent="." instance=ExtResource( 15 )] -position = Vector2( -96, 105 ) +[node name="Mine" parent="." instance=ExtResource( 15 )] +position = Vector2( -96, 96 ) +z_index = -1 [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] diff --git a/src/Levels/3 Tutorial Level.tscn b/src/Levels/3 Tutorial Level.tscn index 12771d2..8356208 100644 --- a/src/Levels/3 Tutorial Level.tscn +++ b/src/Levels/3 Tutorial Level.tscn @@ -16,6 +16,7 @@ [ext_resource path="res://src/Platforms/FlyingPlatform.tscn" type="PackedScene" id=14] [ext_resource path="res://src/Actors/Enemies/Beings/Caterpillar.tscn" type="PackedScene" id=15] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=16] +[ext_resource path="res://src/Platforms/FlyingPlatformSmol.tscn" type="PackedScene" id=17] [sub_resource type="AnimationNodeStateMachinePlayback" id=4] @@ -42,23 +43,6 @@ 0/shapes = [ ] 0/z_index = 0 -[sub_resource type="Animation" id=6] -resource_name = "Path" -length = 6.0 -loop = true -tracks/0/type = "value" -tracks/0/path = NodePath("KinematicBody2D:position") -tracks/0/interp = 2 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 3 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ Vector2( 0, 0 ), Vector2( 0, -64 ) ] -} - [node name="LevelTemplate" type="Node2D"] script = ExtResource( 11 ) __meta__ = { @@ -80,11 +64,8 @@ wait_time = 20.0 [node name="BlobbyCam" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true -[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 3 - [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 2 +frame = 12 [node name="Blobby" parent="." instance=ExtResource( 10 )] unique_name_in_owner = true @@ -168,17 +149,9 @@ position = Vector2( 692, 100 ) [node name="FlyingPlatform2" parent="." instance=ExtResource( 14 )] position = Vector2( -40, -128 ) - -[node name="anim" parent="FlyingPlatform2" index="0"] -autoplay = "Path" - -[node name="FlyingPlatform3" parent="." instance=ExtResource( 14 )] -position = Vector2( 688, -32 ) -scale = Vector2( 0.75, 1 ) - -[node name="anim" parent="FlyingPlatform3" index="0"] -autoplay = "Path" -anims/Path = SubResource( 6 ) +x_target = -32 +y_target = -48 +speed = 16 [node name="Coin" parent="." instance=ExtResource( 16 )] position = Vector2( 383, -31 ) @@ -186,6 +159,10 @@ position = Vector2( 383, -31 ) [node name="Coin2" parent="." instance=ExtResource( 16 )] position = Vector2( 496, -337 ) +[node name="FlyingPlatformSmol" parent="." instance=ExtResource( 17 )] +position = Vector2( 680, -128 ) +y_target = 112 + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] @@ -195,4 +172,3 @@ position = Vector2( 496, -337 ) [editable path="BlobbyCam"] [editable path="Blobby"] [editable path="FlyingPlatform2"] -[editable path="FlyingPlatform3"] diff --git a/src/Levels/4 Tutorial Level.tscn b/src/Levels/4 Tutorial Level.tscn index 351dbfa..f0df66c 100644 --- a/src/Levels/4 Tutorial Level.tscn +++ b/src/Levels/4 Tutorial Level.tscn @@ -68,10 +68,10 @@ unique_name_in_owner = true drag_margin_bottom = 0.3 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 0 +frame = 9 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 13 +frame = 8 [node name="Blobby" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true diff --git a/src/Levels/5 Tutorial Level.tscn b/src/Levels/5 Tutorial Level.tscn index afba8ab..b0e6c34 100644 --- a/src/Levels/5 Tutorial Level.tscn +++ b/src/Levels/5 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=42 format=2] +[gd_scene load_steps=19 format=2] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1] [ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=2] @@ -11,204 +11,13 @@ [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=9] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=10] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=11] -[ext_resource path="res://src/Platforms/FlyingPlatform.gd" type="Script" id=12] -[ext_resource path="res://assets/contraption/floating_platform_test.png" type="Texture" id=13] +[ext_resource path="res://src/Platforms/FlyingPlatformSmol.tscn" type="PackedScene" id=12] +[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=13] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=14] -[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.gd" type="Script" id=15] -[ext_resource path="res://src/StateMachines/FlyerStateMachine.gd" type="Script" id=16] -[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=17] -[ext_resource path="res://assets/enemy/flyer-sheet.png" type="Texture" id=18] [ext_resource path="res://src/Contraptions/VendingMachine.tscn" type="PackedScene" id=19] [sub_resource type="AnimationNodeStateMachinePlayback" id=4] -[sub_resource type="Animation" id=33] -length = 0.001 -tracks/0/type = "value" -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ 0 ] -} - -[sub_resource type="Animation" id=36] -resource_name = "hunting" -length = 1.62 -loop = true -step = 0.01 -tracks/0/type = "value" -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 0 ] -} -tracks/1/type = "value" -tracks/1/path = NodePath(".:scale") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ Vector2( -1, 1 ) ] -} - -[sub_resource type="Animation" id=38] -resource_name = "huntingLeft" -length = 0.042 -loop = true -tracks/0/type = "value" -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 0 ] -} -tracks/1/type = "value" -tracks/1/path = NodePath(".:scale") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ Vector2( 1, 1 ) ] -} - -[sub_resource type="Animation" id=35] -resource_name = "searching" -length = 1.62 -loop = true -step = 0.01 -tracks/0/type = "value" -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0.02 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 1 ] -} -tracks/1/type = "value" -tracks/1/path = NodePath(".:scale") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ Vector2( -1, 1 ) ] -} - -[sub_resource type="Animation" id=34] -resource_name = "searchingLeft" -length = 1.62 -loop = true -step = 0.01 -tracks/0/type = "value" -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 1 ] -} -tracks/1/type = "value" -tracks/1/path = NodePath(".:scale") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ Vector2( 1, 1 ) ] -} - -[sub_resource type="AnimationNodeAnimation" id=52] -animation = "huntingLeft" - -[sub_resource type="AnimationNodeAnimation" id=39] -animation = "hunting" - -[sub_resource type="AnimationNodeBlendSpace1D" id=23] -blend_point_0/node = SubResource( 52 ) -blend_point_0/pos = -1.0 -blend_point_1/node = SubResource( 39 ) -blend_point_1/pos = 1.0 -min_space = -1.18 -max_space = 1.15 - -[sub_resource type="AnimationNodeAnimation" id=40] -animation = "searchingLeft" - -[sub_resource type="AnimationNodeAnimation" id=41] -animation = "searching" - -[sub_resource type="AnimationNodeBlendSpace1D" id=9] -blend_point_0/node = SubResource( 40 ) -blend_point_0/pos = -1.0 -blend_point_1/node = SubResource( 41 ) -blend_point_1/pos = 1.0 -min_space = -2.0 -max_space = 2.0 -snap = 1.0 - -[sub_resource type="AnimationNodeStateMachineTransition" id=27] - -[sub_resource type="AnimationNodeStateMachineTransition" id=32] - -[sub_resource type="AnimationNodeStateMachine" id=50] -states/hunting/node = SubResource( 23 ) -states/hunting/position = Vector2( 184.952, -12 ) -states/searching/node = SubResource( 9 ) -states/searching/position = Vector2( -52.0952, 102.762 ) -transitions = [ "searching", "hunting", SubResource( 27 ), "hunting", "searching", SubResource( 32 ) ] -start_node = "searching" -graph_offset = Vector2( -333, -104 ) - -[sub_resource type="AnimationNodeStateMachinePlayback" id=51] - -[sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 10, 7.5 ) - -[sub_resource type="RectangleShape2D" id=2] -extents = Vector2( 15, 5.12039 ) - -[sub_resource type="RectangleShape2D" id=3] -extents = Vector2( 18.2143, 14.3338 ) - [sub_resource type="TileSet" id=5] 0/name = "platform-plants.png 0" 0/texture = ExtResource( 3 ) @@ -232,37 +41,7 @@ extents = Vector2( 18.2143, 14.3338 ) 0/shapes = [ ] 0/z_index = 0 -[sub_resource type="Animation" id=6] -resource_name = "Path" -length = 8.0 -loop = true -tracks/0/type = "value" -tracks/0/path = NodePath("KinematicBody2D:position") -tracks/0/interp = 2 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 4 ), -"transitions": PoolRealArray( 1, 0.965936 ), -"update": 0, -"values": [ Vector2( 0, 0 ), Vector2( 0, 72 ) ] -} - -[sub_resource type="Animation" id=7] -length = 0.001 -tracks/0/type = "value" -tracks/0/path = NodePath("KinematicBody2D:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, 0 ) ] -} +[sub_resource type="AnimationNodeStateMachinePlayback" id=6] [node name="LevelTemplate" type="Node2D"] script = ExtResource( 4 ) @@ -287,10 +66,10 @@ unique_name_in_owner = true drag_margin_bottom = 0.3 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 6 +frame = 4 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 5 +frame = 3 [node name="Blobby" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true @@ -300,130 +79,6 @@ scale = Vector2( 0.878906, 0.936025 ) [node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 4 ) -[node name="Flyer" type="KinematicBody2D" parent="." groups=["frogfood", "harmful"]] -position = Vector2( 144, 27 ) -collision_layer = 258 -collision_mask = 25 -script = ExtResource( 15 ) -vision_distance = 10.0 -loose_target_seconds = 5.0 -patrolling = true -acceleration = 70 -max_speed = 80 -weight = 0.3 - -[node name="Statemachine" type="Node2D" parent="Flyer"] -script = ExtResource( 16 ) - -[node name="StateLabel" type="Label" parent="Flyer"] -visible = false -show_behind_parent = true -margin_left = -36.0 -margin_top = -30.0 -margin_right = 37.0 -margin_bottom = -16.0 -custom_colors/font_color = Color( 1, 1, 1, 1 ) -custom_colors/font_outline_modulate = Color( 0, 0, 0, 1 ) -custom_fonts/font = ExtResource( 17 ) -text = "Ihre Werbung" -align = 1 -valign = 1 - -[node name="FlyerSprite" type="Sprite" parent="Flyer"] -scale = Vector2( -1, 1 ) -texture = ExtResource( 18 ) -hframes = 2 - -[node name="AnimationPlayer" type="AnimationPlayer" parent="Flyer/FlyerSprite"] -anims/RESET = SubResource( 33 ) -anims/hunting = SubResource( 36 ) -anims/huntingLeft = SubResource( 38 ) -anims/searching = SubResource( 35 ) -anims/searchingLeft = SubResource( 34 ) - -[node name="AnimationTree" type="AnimationTree" parent="Flyer/FlyerSprite"] -tree_root = SubResource( 50 ) -anim_player = NodePath("../AnimationPlayer") -active = true -root_motion_track = NodePath(".") -parameters/playback = SubResource( 51 ) -parameters/hunting/blend_position = -1.04288 -parameters/searching/blend_position = 1.2903 - -[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="Flyer"] -visible = false -position = Vector2( 954, 0 ) -scale = Vector2( 10.84, 0.899 ) -rect = Rect2( -89, -10, 2, 20 ) -process_parent = true -physics_process_parent = true - -[node name="FeelerRayCast" type="RayCast2D" parent="Flyer"] -visible = false -enabled = true -cast_to = Vector2( 0, -1 ) -collision_mask = 56 -collide_with_areas = true - -[node name="EnemyBody" type="CollisionShape2D" parent="Flyer" groups=["harmful"]] -position = Vector2( 0, -0.5 ) -shape = SubResource( 1 ) - -[node name="NavigationAgent2D" type="NavigationAgent2D" parent="Flyer"] -path_desired_distance = 8.0 -target_desired_distance = 8.0 - -[node name="cshape" type="Node2D" parent="Flyer"] -visible = false -position = Vector2( 0, -3.8147e-06 ) -scale = Vector2( 0.1, 0.1 ) - -[node name="pjoint" type="PinJoint2D" parent="Flyer/cshape"] -scale = Vector2( 0.3, 0.3 ) -bias = 0.108 -softness = 0.1 - -[node name="StompDetector" type="Area2D" parent="Flyer" groups=["weakpoint"]] -visible = false -modulate = Color( 0, 0.0392157, 1, 1 ) -position = Vector2( 0, -1.90735e-06 ) -scale = Vector2( 0.7, 0.7 ) -collision_layer = 2 -input_pickable = false - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Flyer/StompDetector"] -position = Vector2( -4.76837e-07, 1.56134 ) -shape = SubResource( 2 ) - -[node name="EnemySkin" type="Area2D" parent="Flyer"] -process_priority = -1 -visible = false -scale = Vector2( 0.7, 0.7 ) -collision_layer = 2 -collision_mask = 126 - -[node name="CollisionPolygon2D" type="CollisionShape2D" parent="Flyer/EnemySkin"] -shape = SubResource( 3 ) - -[node name="PatrolPath" type="Node2D" parent="Flyer"] - -[node name="Position2D2" type="Position2D" parent="Flyer/PatrolPath"] -position = Vector2( 0, -36 ) - -[node name="Position2D3" type="Position2D" parent="Flyer/PatrolPath"] -position = Vector2( 0, 8 ) - -[node name="Orientation" type="RayCast2D" parent="Flyer"] -cast_to = Vector2( -1, 0 ) -collision_mask = 0 -collide_with_bodies = false - -[node name="VisionRayCast" type="RayCast2D" parent="Flyer"] -enabled = true -cast_to = Vector2( 0, -1 ) -collision_mask = 9 -collide_with_areas = true - [node name="VendingMachine" parent="." instance=ExtResource( 19 )] position = Vector2( 48, 100 ) @@ -458,37 +113,31 @@ position = Vector2( 0, 56 ) scale = Vector2( 0.5, 0.5 ) next_scene = "res://src/Levels/6 Tutorial Level.tscn" -[node name="FlyingPlatform4" type="Node2D" parent="."] -position = Vector2( 248, 0 ) -script = ExtResource( 12 ) - -[node name="anim" type="AnimationPlayer" parent="FlyingPlatform4"] -autoplay = "Path" -playback_process_mode = 0 -anims/Path = SubResource( 6 ) -anims/RESET = SubResource( 7 ) - -[node name="KinematicBody2D" type="KinematicBody2D" parent="FlyingPlatform4"] -collision_layer = 8 -collision_mask = 0 - -[node name="Sprite" type="Sprite" parent="FlyingPlatform4/KinematicBody2D"] -position = Vector2( 0, 8 ) -texture = ExtResource( 13 ) -vframes = 8 -frame = 1 - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="FlyingPlatform4/KinematicBody2D"] -position = Vector2( 0, 4 ) -scale = Vector2( 4, 0.4 ) -polygon = PoolVector2Array( -10, -10, 10, -10, 9.5, 0, 9.25, 5, -9.25, 5, -9.5, 0 ) +[node name="FlyingPlatformSmol" parent="." instance=ExtResource( 12 )] +position = Vector2( 256, 0 ) +y_target = 80 +speed = 24 [node name="Coin3" parent="." instance=ExtResource( 14 )] position = Vector2( 144, 30 ) z_index = -1 +[node name="Flyer" parent="." instance=ExtResource( 13 )] +position = Vector2( 144, 9 ) +acceleration = 100 +patrolling_slowdown = 0.2 +max_speed = 100 + +[node name="AnimationTree" parent="Flyer/FlyerSprite" index="1"] +parameters/playback = SubResource( 6 ) + +[node name="Position2D2" parent="Flyer/PatrolPath" index="0"] +position = Vector2( 0, 23 ) + +[node name="Position2D3" parent="Flyer/PatrolPath" index="1"] +position = Vector2( 0, -25 ) + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] -[connection signal="body_entered" from="Flyer/StompDetector" to="Flyer" method="_on_StompDetector_body_entered"] [editable path="SignalManager"] [editable path="LevelState"] @@ -496,3 +145,4 @@ z_index = -1 [editable path="UserInterface/HUD"] [editable path="BlobbyCam"] [editable path="Blobby"] +[editable path="Flyer"] diff --git a/src/Levels/Actual Level 1.tscn b/src/Levels/Actual Level 1.tscn index 46f2bba..13cccc6 100644 --- a/src/Levels/Actual Level 1.tscn +++ b/src/Levels/Actual Level 1.tscn @@ -6,12 +6,12 @@ [ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=4] [ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=5] [ext_resource path="res://src/Contraptions/GateBlock.tscn" type="PackedScene" id=6] -[ext_resource path="res://src/Platforms/DropThroughPlatform.tscn" type="PackedScene" id=7] +[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=7] [ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=8] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9] [ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=10] [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=11] -[ext_resource path="res://src/Platforms/Spring.tscn" type="PackedScene" id=12] +[ext_resource path="res://src/Platforms/Spring/Spring.tscn" type="PackedScene" id=12] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=13] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=14] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=15] @@ -44,10 +44,10 @@ wait_time = 20.0 unique_name_in_owner = true [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 6 +frame = 4 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 10 +frame = 8 [node name="Blobby" parent="." instance=ExtResource( 15 )] unique_name_in_owner = true diff --git a/src/Levels/Actual Level 2.tscn b/src/Levels/Actual Level 2.tscn index 97ec6c0..587836e 100644 --- a/src/Levels/Actual Level 2.tscn +++ b/src/Levels/Actual Level 2.tscn @@ -15,7 +15,7 @@ [ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=14] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=15] [ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=16] -[ext_resource path="res://src/Platforms/FlyingPlatformClean.tscn" type="PackedScene" id=17] +[ext_resource path="res://src/Platforms/legacy/FlyingPlatformClean.tscn" type="PackedScene" id=17] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=18] [ext_resource path="res://src/Environment/Grass/ShaderGrass.tscn" type="PackedScene" id=19] [ext_resource path="res://src/Environment/Legacy/Greenhouse.tscn" type="PackedScene" id=20] diff --git a/src/Levels/Actual Level 3.tscn b/src/Levels/Actual Level 3.tscn index bb74977..60df3ba 100644 --- a/src/Levels/Actual Level 3.tscn +++ b/src/Levels/Actual Level 3.tscn @@ -8,10 +8,10 @@ [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=6] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=7] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=8] -[ext_resource path="res://src/Platforms/FlyingPlatformClean.tscn" type="PackedScene" id=10] +[ext_resource path="res://src/Platforms/legacy/FlyingPlatformClean.tscn" type="PackedScene" id=10] [ext_resource path="res://src/ObstacleObjects/Mine.tscn" type="PackedScene" id=11] [ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=12] -[ext_resource path="res://src/Platforms/DropThroughPlatform.tscn" type="PackedScene" id=13] +[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=13] [ext_resource path="res://src/Contraptions/GateBlock.tscn" type="PackedScene" id=14] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=15] [ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=16] diff --git a/src/Levels/Legacy/2 Tut Level.tscn b/src/Levels/Legacy/2 Tut Level.tscn index 22659c6..a26d9a6 100644 --- a/src/Levels/Legacy/2 Tut Level.tscn +++ b/src/Levels/Legacy/2 Tut Level.tscn @@ -13,7 +13,7 @@ [ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.tscn" type="PackedScene" id=11] [ext_resource path="res://src/BenefitialObjects/SavePoint.tscn" type="PackedScene" id=12] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=13] -[ext_resource path="res://src/Platforms/DropThroughPlatform.tscn" type="PackedScene" id=14] +[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=14] [ext_resource path="res://src/Environment/Legacy/AlienShipTileSet.tres" type="TileSet" id=15] [ext_resource path="res://src/Levels/Level 2.gd" type="Script" id=16] diff --git a/src/Levels/Legacy/3 Tut Level.tscn b/src/Levels/Legacy/3 Tut Level.tscn index eebcf45..b24992d 100644 --- a/src/Levels/Legacy/3 Tut Level.tscn +++ b/src/Levels/Legacy/3 Tut Level.tscn @@ -6,9 +6,9 @@ [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=36] [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=37] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=38] -[ext_resource path="res://src/Platforms/FlyingPlatformClean.tscn" type="PackedScene" id=40] +[ext_resource path="res://src/Platforms/legacy/FlyingPlatformClean.tscn" type="PackedScene" id=40] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=41] -[ext_resource path="res://src/Platforms/DropThroughPlatform.tscn" type="PackedScene" id=42] +[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=42] [ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=45] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=46] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=47] diff --git a/src/Levels/Level 4.tscn b/src/Levels/Level 4.tscn index c469b32..9c3540d 100644 --- a/src/Levels/Level 4.tscn +++ b/src/Levels/Level 4.tscn @@ -12,8 +12,8 @@ [ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=10] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=11] [ext_resource path="res://src/Levels/Level 4.gd" type="Script" id=12] -[ext_resource path="res://src/Platforms/SpringPlatform.tscn" type="PackedScene" id=13] -[ext_resource path="res://src/Platforms/DropThroughPlatform.tscn" type="PackedScene" id=14] +[ext_resource path="res://src/Platforms/Spring/SpringPlatform.tscn" type="PackedScene" id=13] +[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=14] [ext_resource path="res://src/Contraptions/GateBlock.tscn" type="PackedScene" id=15] [ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=16] diff --git a/src/Levels/x03 Level.tscn b/src/Levels/x03 Level.tscn index 298d1c4..8a6e614 100644 --- a/src/Levels/x03 Level.tscn +++ b/src/Levels/x03 Level.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=54 format=2] -[ext_resource path="res://src/Platforms/SpringPhysics.gd" type="Script" id=1] +[ext_resource path="res://src/Platforms/Spring/SpringPhysics.gd" type="Script" id=1] [ext_resource path="res://src/Environment/Legacy/AlienShipTileSet.tres" type="TileSet" id=2] [ext_resource path="res://assets/contraption/SpringHolder/SpringHolder10.png" type="Texture" id=3] [ext_resource path="res://assets/contraption/SpringHolder/SpringHolder25.png" type="Texture" id=4] @@ -39,9 +39,9 @@ [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=37] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=38] [ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=39] -[ext_resource path="res://src/Platforms/FlyingPlatformClean.tscn" type="PackedScene" id=40] +[ext_resource path="res://src/Platforms/legacy/FlyingPlatformClean.tscn" type="PackedScene" id=40] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=41] -[ext_resource path="res://src/Platforms/DropThroughPlatform.tscn" type="PackedScene" id=42] +[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=42] [ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=43] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=44] [ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=45] diff --git a/src/Levels/xFroggy Test Level.tscn b/src/Levels/xFroggy Test Level.tscn index f28f7a0..0a7cc48 100644 --- a/src/Levels/xFroggy Test Level.tscn +++ b/src/Levels/xFroggy Test Level.tscn @@ -13,7 +13,7 @@ [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=12] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=13] [ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=14] -[ext_resource path="res://src/Platforms/SpringPlatform.tscn" type="PackedScene" id=15] +[ext_resource path="res://src/Platforms/Spring/SpringPlatform.tscn" type="PackedScene" id=15] [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=16] [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=17] diff --git a/src/ObstacleObjects/Mine.gd b/src/ObstacleObjects/Mine.gd index b42731d..386da3d 100644 --- a/src/ObstacleObjects/Mine.gd +++ b/src/ObstacleObjects/Mine.gd @@ -9,7 +9,7 @@ export var is_locked = true func _ready() -> void: $Area2D.remove_from_group("harmful") - $Sprite/AnimationPlayer.play("locked") + $Sprite/AnimationPlayer.play("unarmed") func _on_Area2D_area_exited(area: Area2D) -> void: @@ -19,4 +19,9 @@ func _on_Area2D_area_exited(area: Area2D) -> void: func _on_Timer_timeout() -> void: is_locked = true $Area2D.add_to_group("harmful") - $Sprite/AnimationPlayer.play("unlocked") + $Sprite/AnimationPlayer.play("arming") + + +func _on_AnimationPlayer_animation_finished(anim_name: String) -> void: + if(anim_name == "arming"): + $Sprite/AnimationPlayer.play("armed") diff --git a/src/ObstacleObjects/Mine.tscn b/src/ObstacleObjects/Mine.tscn index 7ca451d..29b356f 100644 --- a/src/ObstacleObjects/Mine.tscn +++ b/src/ObstacleObjects/Mine.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=8 format=2] -[ext_resource path="res://assets/obstacle object/mine.png" type="Texture" id=1] +[ext_resource path="res://assets/obstacle object/SpikyMinePlant.png" type="Texture" id=1] [ext_resource path="res://src/ObstacleObjects/Mine.gd" type="Script" id=2] [sub_resource type="Animation" id=2] @@ -30,9 +30,10 @@ tracks/1/keys = { "values": [ 4.0 ] } -[sub_resource type="Animation" id=3] -resource_name = "locked" -length = 0.1 +[sub_resource type="Animation" id=8] +resource_name = "armed" +length = 1.6 +loop = true tracks/0/type = "value" tracks/0/path = NodePath(".:frame") tracks/0/interp = 1 @@ -40,10 +41,67 @@ tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { +"times": PoolRealArray( 0, 0.2, 0.4, 0.6, 0.8, 1, 1.2, 1.4 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 22, 23, 24, 25, 26, 27, 28, 29 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("../Area2D/CollisionShape2D:shape:radius") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 0 ] +"values": [ 7.0 ] +} + +[sub_resource type="Animation" id=6] +resource_name = "arming" +length = 1.4 +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.802038, 0.902195, 1.00219, 1.10219, 1.20219, 1.3 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("../Area2D/CollisionShape2D:shape:radius") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.00519588, 0.698901 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ 4.0, 7.0 ] +} + +[sub_resource type="Animation" id=3] +resource_name = "unarmed" +length = 0.9 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ] } tracks/1/type = "value" tracks/1/path = NodePath("../Area2D/CollisionShape2D:shape:radius") @@ -58,34 +116,6 @@ tracks/1/keys = { "values": [ 4.0 ] } -[sub_resource type="Animation" id=6] -resource_name = "unlocked" -length = 0.1 -tracks/0/type = "value" -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 1 ] -} -tracks/1/type = "value" -tracks/1/path = NodePath("../Area2D/CollisionShape2D:shape:radius") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ 7.0 ] -} - [sub_resource type="CircleShape2D" id=7] resource_local_to_scene = true radius = 4.0 @@ -94,14 +124,16 @@ radius = 4.0 script = ExtResource( 2 ) [node name="Sprite" type="Sprite" parent="."] -position = Vector2( 0, -0.5 ) +position = Vector2( -0.5, 0 ) texture = ExtResource( 1 ) -hframes = 2 +hframes = 30 [node name="AnimationPlayer" type="AnimationPlayer" parent="Sprite"] +autoplay = "unarmed" anims/RESET = SubResource( 2 ) -anims/locked = SubResource( 3 ) -anims/unlocked = SubResource( 6 ) +anims/armed = SubResource( 8 ) +anims/arming = SubResource( 6 ) +anims/unarmed = SubResource( 3 ) [node name="Area2D" type="Area2D" parent="."] collision_layer = 64 @@ -113,5 +145,6 @@ shape = SubResource( 7 ) wait_time = 0.1 one_shot = true +[connection signal="animation_finished" from="Sprite/AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"] [connection signal="area_exited" from="Area2D" to="." method="_on_Area2D_area_exited"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/src/Platforms/FlyingPlatform.tscn b/src/Platforms/FlyingPlatform.tscn index 2506d54..f930fb4 100644 --- a/src/Platforms/FlyingPlatform.tscn +++ b/src/Platforms/FlyingPlatform.tscn @@ -1,7 +1,56 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://src/Platforms/FlyingPlatform.gd" type="Script" id=1] -[ext_resource path="res://assets/contraption/floating_platform_test.png" type="Texture" id=2] +[ext_resource path="res://assets/contraption/5xFloatingPlatform.png" type="Texture" id=2] + +[sub_resource type="Animation" id=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0 ] +} + +[sub_resource type="Animation" id=2] +resource_name = "v1" +length = 1.1 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13 ] +} + +[sub_resource type="Animation" id=3] +resource_name = "v2" +length = 0.6 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 14, 15, 16, 17, 18, 19 ] +} [node name="FlyingPlatform" type="Node2D"] script = ExtResource( 1 ) @@ -14,8 +63,13 @@ motion/sync_to_physics = true [node name="Sprite" type="Sprite" parent="PlatformBody"] position = Vector2( 0, 8 ) texture = ExtResource( 2 ) -vframes = 8 -frame = 1 +hframes = 20 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="PlatformBody/Sprite"] +autoplay = "v2" +anims/RESET = SubResource( 1 ) +anims/v1 = SubResource( 2 ) +anims/v2 = SubResource( 3 ) [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="PlatformBody"] position = Vector2( 0, 4 ) diff --git a/src/Platforms/FlyingPlatformSmol.tscn b/src/Platforms/FlyingPlatformSmol.tscn new file mode 100644 index 0000000..6b77eec --- /dev/null +++ b/src/Platforms/FlyingPlatformSmol.tscn @@ -0,0 +1,93 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://src/Platforms/FlyingPlatform.gd" type="Script" id=1] +[ext_resource path="res://assets/contraption/3xFloatingPlatform.png" type="Texture" id=2] + +[sub_resource type="Animation" id=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:frame_coords") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "v1" +length = 1.1 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] +} + +[sub_resource type="Animation" id=3] +resource_name = "v2" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 11, 12, 13, 14, 15 ] +} + +[node name="FlyingPlatformSmol" type="Node2D"] +script = ExtResource( 1 ) + +[node name="PlatformBody" type="KinematicBody2D" parent="."] +collision_layer = 16 +collision_mask = 0 +motion/sync_to_physics = true + +[node name="Sprite" type="Sprite" parent="PlatformBody"] +position = Vector2( 0, 8 ) +texture = ExtResource( 2 ) +hframes = 17 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="PlatformBody/Sprite"] +autoplay = "v2" +anims/RESET = SubResource( 1 ) +anims/v1 = SubResource( 2 ) +anims/v2 = SubResource( 3 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="PlatformBody"] +position = Vector2( 0, 4 ) +scale = Vector2( 4, 0.4 ) +polygon = PoolVector2Array( -6, -10, 6, -10, 5.5, 0, 5.25, 5, -5.25, 5, -5.5, 0 ) + +[node name="FlyTween" type="Tween" parent="."] + +[connection signal="tween_completed" from="FlyTween" to="." method="_on_FlyTween_tween_completed"] diff --git a/src/Platforms/Spring.tscn b/src/Platforms/Spring/Spring.tscn similarity index 97% rename from src/Platforms/Spring.tscn rename to src/Platforms/Spring/Spring.tscn index 5483154..8cd59be 100644 --- a/src/Platforms/Spring.tscn +++ b/src/Platforms/Spring/Spring.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=35 format=2] -[ext_resource path="res://src/Platforms/SpringPlatform.tscn" type="PackedScene" id=1] +[ext_resource path="res://src/Platforms/Spring/SpringPlatform.tscn" type="PackedScene" id=1] [ext_resource path="res://assets/contraption/SpringHolder/SpringHolder24.png" type="Texture" id=2] [ext_resource path="res://assets/contraption/SpringHolder/SpringHolder2.png" type="Texture" id=3] [ext_resource path="res://assets/contraption/SpringHolder/SpringHolder17.png" type="Texture" id=4] @@ -51,5 +51,5 @@ scale = Vector2( 1.5, 1 ) position = Vector2( 0, 1.5 ) z_index = -1 frames = SubResource( 1 ) -frame = 24 +frame = 19 playing = true diff --git a/src/Platforms/SpringPhysics.gd b/src/Platforms/Spring/SpringPhysics.gd similarity index 100% rename from src/Platforms/SpringPhysics.gd rename to src/Platforms/Spring/SpringPhysics.gd diff --git a/src/Platforms/SpringPlatform.tscn b/src/Platforms/Spring/SpringPlatform.tscn similarity index 90% rename from src/Platforms/SpringPlatform.tscn rename to src/Platforms/Spring/SpringPlatform.tscn index 1672012..2c6dad8 100644 --- a/src/Platforms/SpringPlatform.tscn +++ b/src/Platforms/Spring/SpringPlatform.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=6 format=2] -[ext_resource path="res://assets/contraption/SpringPlatform.png" type="Texture" id=1] -[ext_resource path="res://src/Platforms/SpringPhysics.gd" type="Script" id=2] +[ext_resource path="res://src/Platforms/Spring/SpringPhysics.gd" type="Script" id=1] +[ext_resource path="res://assets/contraption/SpringPlatform.png" type="Texture" id=2] [sub_resource type="RectangleShape2D" id=2] extents = Vector2( 11.4863, 2.10568 ) @@ -13,10 +13,10 @@ extents = Vector2( 11.925, 0.0109166 ) extents = Vector2( 11.9158, 2.06284 ) [node name="SpringPlatform" type="Node2D"] -script = ExtResource( 2 ) +script = ExtResource( 1 ) [node name="Platform" type="Sprite" parent="."] -texture = ExtResource( 1 ) +texture = ExtResource( 2 ) [node name="SpringSkin" type="Area2D" parent="."] collision_layer = 32 diff --git a/src/Platforms/DropThroughPlatform.tscn b/src/Platforms/legacy/DropThroughPlatform.tscn similarity index 92% rename from src/Platforms/DropThroughPlatform.tscn rename to src/Platforms/legacy/DropThroughPlatform.tscn index 8552576..8e152af 100644 --- a/src/Platforms/DropThroughPlatform.tscn +++ b/src/Platforms/legacy/DropThroughPlatform.tscn @@ -1,8 +1,8 @@ [gd_scene load_steps=8 format=2] -[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-Block.png" type="Texture" id=1] -[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-BlockEnd1.png" type="Texture" id=2] -[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-BlockEnd2.png" type="Texture" id=3] +[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-BlockEnd1.png" type="Texture" id=1] +[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-BlockEnd2.png" type="Texture" id=2] +[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-Block.png" type="Texture" id=3] [sub_resource type="ConvexPolygonShape2D" id=3] points = PoolVector2Array( 24, 0, 0, 0, 0, 0, 24, 0 ) @@ -15,7 +15,7 @@ points = PoolVector2Array( 0, 0, 5, 0, 0, 0, 0, 0 ) [sub_resource type="TileSet" id=2] 0/name = "DropThrough-Vine-Block.png 0" -0/texture = ExtResource( 1 ) +0/texture = ExtResource( 3 ) 0/tex_offset = Vector2( 0, 0 ) 0/modulate = Color( 1, 1, 1, 1 ) 0/region = Rect2( 0, 0, 24, 12 ) @@ -36,7 +36,7 @@ points = PoolVector2Array( 0, 0, 5, 0, 0, 0, 0, 0 ) } ] 0/z_index = 0 1/name = "DropThrough-Vine-BlockEnd1.png 1" -1/texture = ExtResource( 2 ) +1/texture = ExtResource( 1 ) 1/tex_offset = Vector2( 0, 0 ) 1/modulate = Color( 1, 1, 1, 1 ) 1/region = Rect2( 0, 0, 12, 12 ) @@ -57,7 +57,7 @@ points = PoolVector2Array( 0, 0, 5, 0, 0, 0, 0, 0 ) } ] 1/z_index = 0 2/name = "DropThrough-Vine-BlockEnd2.png 2" -2/texture = ExtResource( 3 ) +2/texture = ExtResource( 2 ) 2/tex_offset = Vector2( 0, 0 ) 2/modulate = Color( 1, 1, 1, 1 ) 2/region = Rect2( 0, 0, 12, 12 ) diff --git a/src/Platforms/FlyingPlatformClean.tscn b/src/Platforms/legacy/FlyingPlatformClean.tscn similarity index 92% rename from src/Platforms/FlyingPlatformClean.tscn rename to src/Platforms/legacy/FlyingPlatformClean.tscn index 71b8cb3..a63efb0 100644 --- a/src/Platforms/FlyingPlatformClean.tscn +++ b/src/Platforms/legacy/FlyingPlatformClean.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=5 format=2] -[ext_resource path="res://assets/contraption/FlyingPlatformClean.png" type="Texture" id=1] -[ext_resource path="res://src/Platforms/FlyingPlatform.gd" type="Script" id=2] +[ext_resource path="res://src/Platforms/FlyingPlatform.gd" type="Script" id=1] +[ext_resource path="res://assets/contraption/FlyingPlatformClean.png" type="Texture" id=2] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 24, 6 ) @@ -24,7 +24,7 @@ tracks/0/keys = { } [node name="FlyingPlatformClean" type="Node2D"] -script = ExtResource( 2 ) +script = ExtResource( 1 ) [node name="KinematicBody2D" type="KinematicBody2D" parent="."] collision_layer = 16 @@ -32,7 +32,7 @@ collision_mask = 0 motion/sync_to_physics = true [node name="Sprite" type="Sprite" parent="KinematicBody2D"] -texture = ExtResource( 1 ) +texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="KinematicBody2D"] shape = SubResource( 1 )