diff --git a/src/Contraptions/GateBlock.gd b/src/Contraptions/GateBlock.gd index b7c74d6..b076ebb 100644 --- a/src/Contraptions/GateBlock.gd +++ b/src/Contraptions/GateBlock.gd @@ -15,7 +15,8 @@ func _ready() -> void: func unlock(key: String) -> void: if key.to_lower() == "gateblock": - $CollisionShape2D.disabled = true + $BlockShape.disabled = true + collision_layer = 0 visible = false diff --git a/src/Contraptions/GateBlock.tscn b/src/Contraptions/GateBlock.tscn index b114db2..57f9608 100644 --- a/src/Contraptions/GateBlock.tscn +++ b/src/Contraptions/GateBlock.tscn @@ -11,7 +11,7 @@ collision_layer = 8 collision_mask = 0 script = ExtResource( 2 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +[node name="BlockShape" type="CollisionShape2D" parent="."] shape = SubResource( 1 ) [node name="Sprite" type="Sprite" parent="."] diff --git a/src/Contraptions/Triggers/GateButton.gd b/src/Contraptions/Triggers/GateButton.gd index d5f4d79..d7aa3a0 100644 --- a/src/Contraptions/Triggers/GateButton.gd +++ b/src/Contraptions/Triggers/GateButton.gd @@ -10,18 +10,22 @@ var activatable = false func _process(delta): if activatable && Input.is_action_just_released("interact"): selfActivate() - signalManager.emit_signal("unlocked", "gateblock") - + func selfActivate(): indicatorPlayer.play("onning") #TODO dis importante activatorArea.set_deferred("monitoring", false) + #TODO Close gate again? + signalManager.emit_signal("unlocked", "gateblock") + activatable = false func _on_ActivatorArea_area_entered(area:Area2D) -> void: $Label.visible = true activatable = true + if(area.get_parent().name == "WhatAreFrog"): + selfActivate() func _on_ActivatorArea_area_exited(area:Area2D) -> void: unactivatable_timer.start() diff --git a/src/Levels/1 Tutorial Level.tscn b/src/Levels/1 Tutorial Level.tscn index 7ab71c2..d4c3ba5 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 = 0 +frame = 2 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 13 +frame = 1 [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 0cda5dc..f121226 100644 --- a/src/Levels/2 Tutorial Level.tscn +++ b/src/Levels/2 Tutorial Level.tscn @@ -63,10 +63,10 @@ drag_margin_top = 0.1 drag_margin_bottom = 0.1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 7 +frame = 9 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 6 +frame = 8 [node name="Blobby" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true @@ -107,7 +107,7 @@ position = Vector2( 1440, -64 ) [node name="Portal" parent="ElevatorButton" instance=ExtResource( 6 )] position = Vector2( 112, -8 ) scale = Vector2( 0.5, 0.5 ) -next_scene = "res://src/Levels/Actual Level 1.tscn" +next_scene = "res://src/Levels/3 Tutorial Level.tscn" [node name="Obstacles" type="Node2D" parent="."] visible = false diff --git a/src/Levels/3 Tutorial Level.tscn b/src/Levels/3 Tutorial Level.tscn index 9b884ef..02d659f 100644 --- a/src/Levels/3 Tutorial Level.tscn +++ b/src/Levels/3 Tutorial Level.tscn @@ -80,10 +80,10 @@ wait_time = 20.0 unique_name_in_owner = true [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 3 +frame = 9 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 2 +frame = 8 [node name="Blobby" parent="." instance=ExtResource( 10 )] unique_name_in_owner = true @@ -136,7 +136,7 @@ elevator_time = 10 [node name="Portal" parent="ElevatorButton" instance=ExtResource( 4 )] position = Vector2( 175, 168 ) scale = Vector2( 0.5, 0.5 ) -next_scene = "res://src/Levels/Actual Level 1.tscn" +next_scene = "res://src/Levels/4 Tutorial Level.tscn" [node name="Obstacles" type="Node2D" parent="."] position = Vector2( -56, 274 ) @@ -166,7 +166,7 @@ position = Vector2( 668, 100 ) position = Vector2( 692, 100 ) [node name="FlyingPlatform2" parent="." instance=ExtResource( 14 )] -position = Vector2( -32, -127 ) +position = Vector2( -40, -128 ) [node name="anim" parent="FlyingPlatform2" index="0"] autoplay = "Path" diff --git a/src/Levels/4 Tutorial Level.tscn b/src/Levels/4 Tutorial Level.tscn new file mode 100644 index 0000000..3911f49 --- /dev/null +++ b/src/Levels/4 Tutorial Level.tscn @@ -0,0 +1,345 @@ +[gd_scene load_steps=28 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] +[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=3] +[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=4] +[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=5] +[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=7] +[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=8] +[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9] +[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=10] +[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=11] +[ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=12] +[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=13] +[ext_resource path="res://src/Contraptions/GateBlock.tscn" type="PackedScene" id=14] +[ext_resource path="res://src/Actors/Enemies/Beings/Caterpillar.tscn" type="PackedScene" id=15] +[ext_resource path="res://src/Platforms/FlyingPlatform.gd" type="Script" id=16] +[ext_resource path="res://assets/contraption/floating_platform_test.png" type="Texture" id=17] +[ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=18] +[ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=19] + +[sub_resource type="AnimationNodeStateMachinePlayback" id=4] + +[sub_resource type="TileSet" id=5] +0/name = "platform-plants.png 0" +0/texture = ExtResource( 3 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 16, 0, 256, 16 ) +0/tile_mode = 2 +0/autotile/icon_coordinate = Vector2( 5, 0 ) +0/autotile/tile_size = Vector2( 16, 16 ) +0/autotile/spacing = 0 +0/autotile/occluder_map = [ ] +0/autotile/navpoly_map = [ ] +0/autotile/priority_map = [ ] +0/autotile/z_index_map = [ ] +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +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, 0.965936 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 48, 0 ) ] +} + +[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="Animation" id=8] +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, 0.965936 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( -48, 0 ) ] +} + +[sub_resource type="Animation" id=9] +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="Animation" id=10] +resource_name = "Path" +length = 12.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, 6 ), +"transitions": PoolRealArray( 1, 0.965936 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 192 ) ] +} + +[sub_resource type="Animation" id=11] +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 ) ] +} + +[node name="LevelTemplate" type="Node2D"] +script = ExtResource( 4 ) +__meta__ = { +"_edit_horizontal_guides_": [ 464.0 ], +"_edit_vertical_guides_": [ 2880.0 ] +} + +[node name="SignalManager" parent="." instance=ExtResource( 5 )] + +[node name="LevelState" parent="." instance=ExtResource( 6 )] +unique_name_in_owner = true + +[node name="UserInterface" parent="." instance=ExtResource( 7 )] +unique_name_in_owner = true + +[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] +wait_time = 20.0 + +[node name="BlobbyCam" parent="." instance=ExtResource( 9 )] +unique_name_in_owner = true +drag_margin_bottom = 0.3 + +[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] +frame = 2 + +[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] +frame = 1 + +[node name="Blobby" parent="." instance=ExtResource( 8 )] +unique_name_in_owner = true +position = Vector2( -70, -1.90735e-06 ) +scale = Vector2( 0.878906, 0.936025 ) + +[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 4 ) + +[node name="TileMap" type="TileMap" parent="."] +unique_name_in_owner = true +tile_set = ExtResource( 1 ) +cell_size = Vector2( 16, 16 ) +cell_quadrant_size = 3 +cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 ) +collision_layer = 8 +collision_mask = 8 +bake_navigation = true +format = 1 +tile_data = PoolIntArray( -458758, 5, 10, -458757, 5, 10, -458756, 5, 10, -458755, 5, 10, -458754, 5, 10, -458753, 5, 10, -524288, 5, 10, -524287, 5, 10, -524286, 5, 10, -524285, 5, 10, -524284, 5, 10, -524283, 5, 10, -524282, 5, 65541, -524278, 5, 65540, -524277, 5, 10, -524276, 5, 10, -524275, 5, 10, -524274, 5, 10, -524273, 5, 10, -524272, 5, 10, -524271, 5, 10, -524270, 5, 10, -524269, 5, 10, -524268, 5, 10, -524267, 5, 10, -524266, 5, 10, -524265, 5, 10, -524264, 5, 10, -524263, 5, 10, -524262, 5, 10, -524261, 5, 10, -524260, 5, 10, -524259, 5, 10, -524258, 5, 10, -524257, 5, 10, -524256, 5, 10, -524255, 5, 10, -524254, 5, 10, -524253, 5, 10, -524252, 5, 10, -524251, 5, 10, -524250, 5, 10, -524249, 5, 10, -524248, 5, 10, -524247, 5, 10, -524246, 5, 10, -524245, 5, 10, -524244, 5, 10, -524243, 5, 10, -524242, 5, 10, -524241, 5, 10, -524240, 5, 10, -524239, 5, 10, -524238, 5, 10, -524237, 5, 10, -524236, 5, 10, -524235, 5, 10, -393223, 5, 8, -458746, 5, 9, -458745, 5, 10, -458744, 5, 10, -458743, 5, 10, -458742, 5, 65536, -458698, 5, 6, -327687, 5, 8, -393162, 5, 6, -262151, 5, 8, -327626, 5, 6, -196615, 5, 8, -262090, 5, 6, -131079, 5, 8, -196554, 5, 6, -65543, 5, 8, -131018, 5, 6, -7, 5, 8, -65524, 5, 2, -65523, 5, 2, -65522, 5, 2, -65521, 5, 2, -65514, 5, 2, -65513, 5, 2, -65512, 5, 2, -65482, 5, 6, 65530, 5, 3, 65531, 5, 3, 65532, 5, 3, 65533, 5, 3, 65534, 5, 3, 65535, 5, 3, 0, 5, 3, 1, 5, 3, 2, 5, 3, 3, 5, 3, 4, 5, 3, 12, 5, 10, 13, 5, 10, 14, 5, 10, 15, 5, 10, 22, 5, 10, 23, 5, 10, 24, 5, 10, 54, 5, 6, 131066, 5, 8, 65590, 5, 6, 196602, 5, 8, 131123, 5, 2, 131124, 5, 2, 131125, 5, 2, 262138, 5, 8, 196659, 5, 6, 196662, 5, 6, 327674, 5, 8, 262195, 5, 6, 262198, 5, 6, 393210, 5, 8, 327686, 5, 2, 327687, 5, 2, 327688, 5, 2, 327689, 5, 2, 327690, 5, 2, 327691, 5, 2, 327692, 5, 2, 327693, 5, 2, 327694, 5, 2, 327695, 5, 2, 327696, 5, 2, 327697, 5, 2, 327698, 5, 2, 327699, 5, 2, 327700, 5, 2, 327701, 5, 2, 327702, 5, 2, 327703, 5, 2, 327704, 5, 2, 327705, 5, 2, 327706, 5, 2, 327707, 5, 2, 327708, 5, 2, 327709, 5, 2, 327710, 5, 2, 327711, 5, 2, 327712, 5, 2, 327713, 5, 2, 327714, 5, 2, 327715, 5, 2, 327716, 5, 2, 327717, 5, 2, 327718, 5, 2, 327719, 5, 2, 327720, 5, 2, 327721, 5, 2, 327722, 5, 2, 327723, 5, 2, 327724, 5, 2, 327725, 5, 2, 327726, 5, 2, 327727, 5, 2, 327728, 5, 2, 327729, 5, 2, 327730, 5, 2, 327734, 5, 6, 458746, 5, 8, 393270, 5, 6, 524282, 5, 8, 458806, 5, 6, 589818, 5, 8, 524342, 5, 6, 655354, 5, 8, 589878, 5, 6, 720890, 5, 8, 655414, 5, 6, 786426, 5, 8, 720950, 5, 6, 851962, 5, 8, 786486, 5, 6, 917498, 5, 8, 852022, 5, 6, 983034, 5, 8, 917558, 5, 6, 1048570, 5, 8, 983052, 5, 2, 983053, 5, 2, 983054, 5, 2, 983061, 5, 2, 983062, 5, 2, 983063, 5, 2, 983064, 5, 2, 983071, 5, 2, 983072, 5, 2, 983073, 5, 2, 983074, 5, 2, 983075, 5, 2, 983094, 5, 6, 1114106, 5, 8, 1048588, 5, 10, 1048589, 5, 10, 1048590, 5, 10, 1048597, 5, 10, 1048598, 5, 10, 1048599, 5, 10, 1048600, 5, 10, 1048607, 5, 10, 1048608, 5, 10, 1048609, 5, 10, 1048610, 5, 10, 1048611, 5, 10, 1048630, 5, 6, 1179642, 5, 8, 1114166, 5, 6, 1245178, 5, 8, 1179702, 5, 6, 1310714, 5, 8, 1245238, 5, 6, 1376250, 5, 8, 1310768, 5, 2, 1310769, 5, 2, 1310770, 5, 2, 1310771, 5, 2, 1310772, 5, 2, 1310773, 5, 2, 1441786, 5, 8, 1376310, 5, 6, 1507322, 5, 8, 1441846, 5, 6, 1572858, 5, 8, 1507382, 5, 6, 1638395, 5, 3, 1638396, 5, 3, 1638397, 5, 3, 1638398, 5, 3, 1638399, 5, 3, 1572864, 5, 3, 1572865, 5, 3, 1572866, 5, 3, 1572867, 5, 3, 1572868, 5, 3, 1572869, 5, 3, 1572870, 5, 3, 1572871, 5, 3, 1572872, 5, 3, 1572873, 5, 3, 1572874, 5, 3, 1572875, 5, 3, 1572876, 5, 3, 1572877, 5, 3, 1572878, 5, 2, 1572879, 5, 2, 1572880, 5, 2, 1572881, 5, 2, 1572882, 5, 2, 1572883, 5, 2, 1572884, 5, 2, 1572885, 5, 2, 1572886, 5, 2, 1572887, 5, 2, 1572888, 5, 2, 1572889, 5, 2, 1572890, 5, 2, 1572891, 5, 2, 1572892, 5, 2, 1572893, 5, 2, 1572894, 5, 2, 1572895, 5, 2, 1572896, 5, 2, 1572897, 5, 2, 1572898, 5, 2, 1572899, 5, 2, 1572900, 5, 2, 1572901, 5, 2, 1572902, 5, 2, 1572903, 5, 2, 1572904, 5, 2, 1572905, 5, 2, 1572906, 5, 2, 1572907, 5, 2, 1572908, 5, 2, 1572909, 5, 2, 1572910, 5, 2, 1572911, 5, 2, 1572912, 5, 2, 1572913, 5, 2, 1572914, 5, 2, 1572915, 5, 2, 1572916, 5, 2, 1572917, 5, 2 ) + +[node name="DropThroughPlatforms" type="TileMap" parent="."] +tile_set = ExtResource( 2 ) +cell_size = Vector2( 16, 16 ) +format = 1 + +[node name="PlatformPlants" type="TileMap" parent="."] +tile_set = SubResource( 5 ) +cell_size = Vector2( 16, 16 ) +format = 1 + +[node name="ElevatorButton" parent="." instance=ExtResource( 11 )] +position = Vector2( 832, 320 ) +elevator_time = 5 + +[node name="Portal" parent="ElevatorButton" instance=ExtResource( 10 )] +position = Vector2( 0, 24 ) +scale = Vector2( 0.5, 0.5 ) +next_scene = "res://src/Levels/5 Tutorial Level.tscn" + +[node name="Obstacles" type="Node2D" parent="."] +position = Vector2( -412, -173 ) + +[node name="Spikes" parent="Obstacles" instance=ExtResource( 12 )] +position = Vector2( 524, 89 ) + +[node name="Spikes2" parent="Obstacles" instance=ExtResource( 12 )] +position = Vector2( 548, 89 ) + +[node name="Spikes3" parent="Obstacles" instance=ExtResource( 12 )] +position = Vector2( 572, 89 ) + +[node name="Spikes5" parent="Obstacles" instance=ExtResource( 12 )] +position = Vector2( 860, 401 ) + +[node name="Spikes6" parent="Obstacles" instance=ExtResource( 12 )] +position = Vector2( 860, 377 ) + +[node name="Spikes7" parent="Obstacles" instance=ExtResource( 12 )] +position = Vector2( 860, 425 ) + +[node name="Coins" type="Node2D" parent="."] + +[node name="Coin" parent="Coins" instance=ExtResource( 13 )] +position = Vector2( 208, -31 ) + +[node name="Coin2" parent="Coins" instance=ExtResource( 13 )] +position = Vector2( 448, 167 ) + +[node name="Caterpillar" parent="." instance=ExtResource( 15 )] +position = Vector2( 377, -23 ) + +[node name="Caterpillar2" parent="." instance=ExtResource( 15 )] +position = Vector2( 368, 233 ) + +[node name="FlyingPlatform2" type="Node2D" parent="."] +position = Vector2( 520, -16 ) +script = ExtResource( 16 ) + +[node name="anim" type="AnimationPlayer" parent="FlyingPlatform2"] +autoplay = "Path" +playback_process_mode = 0 +anims/Path = SubResource( 6 ) +anims/RESET = SubResource( 7 ) + +[node name="KinematicBody2D" type="KinematicBody2D" parent="FlyingPlatform2"] +collision_layer = 8 +collision_mask = 0 + +[node name="Sprite" type="Sprite" parent="FlyingPlatform2/KinematicBody2D"] +position = Vector2( 0, 8 ) +texture = ExtResource( 17 ) +vframes = 8 +frame = 1 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="FlyingPlatform2/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="FlyingPlatform3" type="Node2D" parent="."] +position = Vector2( 728, -16 ) +script = ExtResource( 16 ) + +[node name="anim" type="AnimationPlayer" parent="FlyingPlatform3"] +autoplay = "Path" +playback_process_mode = 0 +anims/Path = SubResource( 8 ) +anims/RESET = SubResource( 9 ) + +[node name="KinematicBody2D" type="KinematicBody2D" parent="FlyingPlatform3"] +collision_layer = 8 +collision_mask = 0 + +[node name="Sprite" type="Sprite" parent="FlyingPlatform3/KinematicBody2D"] +position = Vector2( 0, 8 ) +texture = ExtResource( 17 ) +vframes = 8 +frame = 1 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="FlyingPlatform3/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="FlyingPlatform4" type="Node2D" parent="."] +position = Vector2( 7, 110 ) +script = ExtResource( 16 ) + +[node name="anim" type="AnimationPlayer" parent="FlyingPlatform4"] +autoplay = "Path" +playback_process_mode = 0 +anims/Path = SubResource( 10 ) +anims/RESET = SubResource( 11 ) + +[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( 17 ) +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="GateButton" parent="." instance=ExtResource( 18 )] +position = Vector2( 216, 223 ) + +[node name="GateBlock" parent="." instance=ExtResource( 14 )] +position = Vector2( 780, 372 ) + +[node name="GateBlock2" parent="." instance=ExtResource( 14 )] +position = Vector2( 780, 348 ) + +[node name="FlyingLaserCutter" parent="." instance=ExtResource( 19 )] +position = Vector2( 663, 256 ) +rotation = 1.5708 + +[node name="FlyingLaserCutter2" parent="." instance=ExtResource( 19 )] +position = Vector2( 288, 256 ) +rotation = -1.5708 + +[connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] + +[editable path="SignalManager"] +[editable path="LevelState"] +[editable path="UserInterface"] +[editable path="UserInterface/HUD"] +[editable path="BlobbyCam"] +[editable path="Blobby"] diff --git a/src/Levels/5 Tutorial Level.tscn b/src/Levels/5 Tutorial Level.tscn new file mode 100644 index 0000000..b472cbc --- /dev/null +++ b/src/Levels/5 Tutorial Level.tscn @@ -0,0 +1,494 @@ +[gd_scene load_steps=41 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] +[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=3] +[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=4] +[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=5] +[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=7] +[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=8] +[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/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] + +[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 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 16, 0, 256, 16 ) +0/tile_mode = 2 +0/autotile/icon_coordinate = Vector2( 5, 0 ) +0/autotile/tile_size = Vector2( 16, 16 ) +0/autotile/spacing = 0 +0/autotile/occluder_map = [ ] +0/autotile/navpoly_map = [ ] +0/autotile/priority_map = [ ] +0/autotile/z_index_map = [ ] +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +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 ) ] +} + +[node name="LevelTemplate" type="Node2D"] +script = ExtResource( 4 ) +__meta__ = { +"_edit_horizontal_guides_": [ 464.0 ], +"_edit_vertical_guides_": [ 2880.0 ] +} + +[node name="SignalManager" parent="." instance=ExtResource( 5 )] + +[node name="LevelState" parent="." instance=ExtResource( 7 )] +unique_name_in_owner = true + +[node name="UserInterface" parent="." instance=ExtResource( 8 )] +unique_name_in_owner = true + +[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] +wait_time = 20.0 + +[node name="BlobbyCam" parent="." instance=ExtResource( 10 )] +unique_name_in_owner = true +drag_margin_bottom = 0.3 + +[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] +frame = 10 + +[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] +frame = 9 + +[node name="Blobby" parent="." instance=ExtResource( 9 )] +unique_name_in_owner = true +position = Vector2( -186, 110 ) +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="TileMap" type="TileMap" parent="."] +unique_name_in_owner = true +tile_set = ExtResource( 1 ) +cell_size = Vector2( 16, 16 ) +cell_quadrant_size = 3 +cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 ) +collision_layer = 8 +collision_mask = 8 +bake_navigation = true +format = 1 +tile_data = PoolIntArray( -393230, 1610612741, 65539, -393229, 5, 10, -393228, 5, 10, -393227, 5, 10, -393226, 5, 10, -393225, 5, 10, -393224, 5, 10, -393223, 5, 10, -393222, 5, 10, -393221, 5, 10, -393220, 5, 10, -393219, 5, 10, -393218, 5, 10, -393217, 5, 10, -458752, 5, 10, -458751, 5, 10, -458750, 5, 10, -458749, 5, 10, -458748, 5, 10, -458747, 5, 10, -458746, 5, 10, -458745, 5, 10, -458744, 5, 10, -458743, 5, 10, -458742, 5, 10, -458741, 5, 10, -458740, 5, 10, -458739, 5, 10, -458738, 5, 10, -458737, 5, 10, -458736, 5, 10, -458735, 5, 10, -458734, 5, 10, -458733, 5, 10, -458732, 5, 10, -458731, 5, 10, -458730, 5, 10, -458729, 5, 10, -458728, 5, 10, -458727, 5, 10, -458726, 5, 10, -458725, 5, 10, -458724, 5, 10, -458723, 5, 10, -458722, 5, 10, -458721, 5, 10, -458720, 5, 10, -327694, 5, 7, -327693, 7, 0, -327692, 7, 0, -327691, 7, 0, -327690, 7, 0, -327689, 7, 0, -327688, 7, 0, -327687, 7, 0, -327686, 7, 0, -327685, 7, 0, -327684, 7, 0, -327683, 7, 0, -327682, 7, 0, -327681, 7, 0, -393216, 7, 0, -393215, 7, 0, -393214, 7, 0, -393213, 7, 0, -393212, 7, 0, -393211, 7, 0, -393210, 5, 8, -393209, 7, 0, -393208, 7, 0, -393207, 7, 0, -393206, 7, 0, -393205, 7, 0, -393204, 7, 0, -393203, 7, 0, -393202, 7, 0, -393201, 7, 0, -393200, 7, 0, -393199, 7, 0, -393198, 7, 0, -393197, 7, 0, -393196, 7, 0, -393195, 7, 0, -393194, 7, 0, -393193, 7, 0, -393192, 7, 0, -393191, 7, 0, -393190, 7, 0, -393189, 7, 0, -393188, 7, 0, -393187, 7, 0, -393186, 7, 0, -393185, 7, 0, -393184, 7, 0, -393183, 5, 6, -262158, 5, 7, -262157, 7, 0, -262156, 7, 0, -262155, 7, 0, -262154, 7, 0, -262153, 7, 0, -262152, 7, 0, -262151, 7, 0, -262150, 7, 0, -262149, 7, 0, -262148, 7, 0, -262147, 7, 0, -262146, 7, 0, -262145, 7, 0, -327680, 7, 0, -327679, 7, 0, -327678, 7, 0, -327677, 7, 0, -327676, 7, 0, -327675, 7, 0, -327674, 5, 8, -327673, 7, 0, -327672, 7, 0, -327671, 7, 0, -327670, 7, 0, -327669, 7, 0, -327668, 7, 0, -327667, 7, 0, -327666, 7, 0, -327665, 7, 0, -327664, 7, 0, -327663, 7, 0, -327662, 7, 0, -327661, 7, 0, -327660, 7, 0, -327659, 7, 0, -327658, 7, 0, -327657, 7, 0, -327656, 7, 0, -327655, 7, 0, -327654, 7, 0, -327653, 7, 0, -327652, 7, 0, -327651, 7, 0, -327650, 7, 0, -327649, 7, 0, -327648, 7, 0, -327647, 5, 6, -196622, 5, 7, -196621, 7, 0, -196620, 7, 0, -196619, 7, 0, -196618, 7, 0, -196617, 7, 0, -196616, 7, 0, -196615, 7, 0, -196614, 7, 0, -196613, 7, 0, -196612, 7, 0, -196611, 7, 0, -196610, 7, 0, -196609, 7, 0, -262144, 7, 0, -262143, 7, 0, -262142, 7, 0, -262141, 7, 0, -262140, 7, 0, -262139, 7, 0, -262138, 5, 8, -262137, 7, 0, -262136, 7, 0, -262135, 7, 0, -262134, 7, 0, -262133, 7, 0, -262132, 7, 0, -262131, 7, 0, -262130, 7, 0, -262129, 7, 0, -262128, 7, 0, -262127, 7, 0, -262126, 7, 0, -262125, 7, 0, -262124, 7, 0, -262123, 7, 0, -262122, 7, 0, -262121, 7, 0, -262120, 7, 0, -262119, 7, 0, -262118, 7, 0, -262117, 7, 0, -262116, 7, 0, -262115, 7, 0, -262114, 7, 0, -262113, 7, 0, -262112, 7, 0, -262111, 5, 6, -131086, 5, 7, -131085, 7, 0, -131084, 7, 0, -131083, 7, 0, -131082, 7, 0, -131081, 7, 0, -131080, 7, 0, -131079, 7, 0, -131078, 7, 0, -131077, 7, 0, -131076, 7, 0, -131075, 7, 0, -131074, 7, 0, -131073, 7, 0, -196608, 7, 0, -196607, 7, 0, -196606, 7, 0, -196605, 7, 0, -196604, 7, 0, -196603, 7, 0, -196602, 5, 8, -196601, 7, 0, -196600, 7, 0, -196599, 7, 0, -196598, 7, 0, -196597, 7, 0, -196596, 7, 0, -196595, 7, 0, -196594, 7, 0, -196593, 7, 0, -196592, 7, 0, -196591, 7, 0, -196590, 7, 0, -196589, 7, 0, -196588, 7, 0, -196587, 7, 0, -196586, 7, 0, -196585, 7, 0, -196584, 7, 0, -196583, 7, 0, -196582, 7, 0, -196581, 7, 0, -196580, 7, 0, -196579, 7, 0, -196578, 7, 0, -196577, 7, 0, -196576, 7, 0, -196575, 5, 6, -65550, 5, 7, -65549, 7, 0, -65548, 7, 0, -65547, 7, 0, -65546, 7, 0, -65545, 7, 0, -65544, 7, 0, -65543, 7, 0, -65542, 7, 0, -65541, 7, 0, -65540, 7, 0, -65539, 7, 0, -65538, 7, 0, -65537, 7, 0, -131072, 7, 0, -131071, 7, 0, -131070, 7, 0, -131069, 7, 0, -131068, 7, 0, -131067, 7, 0, -131066, 5, 8, -131065, 7, 0, -131064, 7, 0, -131063, 7, 0, -131062, 7, 0, -131061, 7, 0, -131060, 7, 0, -131059, 7, 0, -131058, 7, 0, -131057, 7, 0, -131056, 7, 0, -131055, 7, 0, -131054, 7, 0, -131053, 7, 0, -131052, 7, 0, -131051, 7, 0, -131050, 7, 0, -131049, 7, 0, -131048, 7, 0, -131047, 7, 0, -131046, 7, 0, -131045, 7, 0, -131044, 7, 0, -131043, 7, 0, -131042, 7, 0, -131041, 7, 0, -131040, 7, 0, -131039, 5, 6, -14, 5, 7, -13, 7, 0, -12, 7, 0, -11, 7, 0, -10, 7, 0, -9, 7, 0, -8, 7, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 7, 0, -65533, 7, 0, -65532, 7, 0, -65531, 7, 0, -65530, 5, 8, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 7, 0, -65521, 7, 0, -65520, 7, 0, -65519, 7, 0, -65518, 7, 0, -65517, 7, 0, -65516, 7, 0, -65515, 5, 1, -65514, 5, 3, -65513, 5, 3, -65512, 5, 3, -65511, 5, 3, -65510, 5, 3, -65509, 5, 3, -65508, 5, 3, -65507, 5, 3, -65506, 5, 3, -65505, 5, 3, -65504, 5, 3, -65503, 5, 6, 65522, 5, 7, 65523, 7, 0, 65524, 7, 0, 65525, 7, 0, 65526, 7, 0, 65527, 7, 0, 65528, 7, 0, 65529, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 0, 7, 0, 1, 7, 0, 2, 7, 0, 3, 7, 0, 4, 7, 0, 5, 7, 0, 6, 5, 8, 7, 7, 0, 8, 7, 0, 9, 7, 0, 10, 7, 0, 11, 7, 0, 12, 7, 0, 13, 7, 0, 14, 7, 0, 15, 7, 0, 16, 7, 0, 17, 7, 0, 18, 7, 0, 19, 7, 0, 20, 7, 0, 21, 5, 6, 33, 5, 6, 131058, 5, 7, 131059, 7, 0, 131060, 7, 0, 131061, 7, 0, 131062, 7, 0, 131063, 7, 0, 131064, 7, 0, 131065, 7, 0, 131066, 7, 0, 131067, 7, 0, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 7, 0, 65536, 7, 0, 65537, 7, 0, 65538, 7, 0, 65539, 7, 0, 65540, 7, 0, 65541, 7, 0, 65542, 5, 8, 65543, 7, 0, 65544, 7, 0, 65545, 7, 0, 65546, 7, 0, 65547, 7, 0, 65548, 7, 0, 65549, 7, 0, 65550, 7, 0, 65551, 7, 0, 65552, 7, 0, 65553, 7, 0, 65554, 7, 0, 65555, 7, 0, 65556, 7, 0, 65557, 5, 9, 65558, 5, 10, 65559, 5, 10, 65560, 5, 10, 65561, 5, 10, 65562, 5, 10, 65563, 5, 10, 65564, 5, 10, 65565, 5, 10, 65566, 5, 10, 65567, 5, 10, 65568, 5, 10, 65569, 5, 6, 196594, 5, 7, 196595, 7, 0, 196596, 7, 0, 196597, 7, 0, 196598, 7, 0, 196599, 7, 0, 196600, 7, 0, 196601, 7, 0, 196602, 7, 0, 196603, 7, 0, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 7, 0, 131072, 7, 0, 131073, 7, 0, 131074, 7, 0, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 5, 8, 131079, 7, 0, 131080, 7, 0, 131081, 7, 0, 131082, 7, 0, 131083, 7, 0, 131084, 7, 0, 131085, 7, 0, 131086, 7, 0, 131087, 7, 0, 131088, 7, 0, 131089, 7, 0, 131090, 7, 0, 131091, 7, 0, 131092, 7, 0, 131093, 7, 0, 131094, 7, 0, 131095, 7, 0, 131096, 7, 0, 131097, 7, 0, 131098, 7, 0, 131099, 7, 0, 131100, 7, 0, 131101, 7, 0, 131102, 7, 0, 131103, 7, 0, 131104, 7, 0, 131105, 5, 6, 262130, 5, 7, 262131, 7, 0, 262132, 7, 0, 262133, 7, 0, 262134, 7, 0, 262135, 7, 0, 262136, 7, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 7, 0, 196615, 5, 2, 196616, 5, 2, 196617, 5, 2, 196618, 5, 2, 196619, 7, 0, 196620, 7, 0, 196621, 7, 0, 196622, 7, 0, 196623, 7, 0, 196624, 7, 0, 196625, 7, 0, 196626, 7, 0, 196627, 7, 0, 196628, 7, 0, 196629, 7, 0, 196630, 7, 0, 196631, 7, 0, 196632, 7, 0, 196633, 7, 0, 196634, 7, 0, 196635, 7, 0, 196636, 7, 0, 196637, 7, 0, 196638, 7, 0, 196639, 7, 0, 196640, 7, 0, 196641, 5, 6, 327666, 5, 7, 327667, 7, 0, 327668, 7, 0, 327669, 7, 0, 327670, 7, 0, 327671, 7, 0, 327672, 7, 0, 327673, 7, 0, 327674, 7, 0, 327675, 7, 0, 327676, 7, 0, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 7, 0, 262151, 5, 10, 262152, 5, 10, 262153, 5, 10, 262154, 5, 10, 262155, 7, 0, 262156, 7, 0, 262157, 7, 0, 262158, 7, 0, 262159, 7, 0, 262160, 7, 0, 262161, 7, 0, 262162, 7, 0, 262163, 7, 0, 262164, 7, 0, 262165, 7, 0, 262166, 7, 0, 262167, 7, 0, 262168, 7, 0, 262169, 7, 0, 262170, 7, 0, 262171, 7, 0, 262172, 7, 0, 262173, 7, 0, 262174, 7, 0, 262175, 7, 0, 262176, 7, 0, 262177, 5, 6, 393202, 5, 7, 393203, 7, 0, 393204, 7, 0, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 7, 0, 327687, 7, 0, 327688, 7, 0, 327689, 7, 0, 327690, 7, 0, 327691, 7, 0, 327692, 7, 0, 327693, 7, 0, 327694, 7, 0, 327695, 7, 0, 327696, 7, 0, 327697, 7, 0, 327698, 7, 0, 327699, 7, 0, 327700, 7, 0, 327701, 7, 0, 327702, 7, 0, 327703, 7, 0, 327704, 7, 0, 327705, 7, 0, 327706, 7, 0, 327707, 7, 0, 327708, 7, 0, 327709, 7, 0, 327710, 7, 0, 327711, 7, 0, 327712, 7, 0, 327713, 5, 6, 458738, 5, 7, 458739, 7, 0, 458740, 7, 0, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 7, 0, 393223, 7, 0, 393224, 7, 0, 393225, 7, 0, 393226, 7, 0, 393227, 7, 0, 393228, 7, 0, 393229, 7, 0, 393230, 7, 0, 393231, 7, 0, 393232, 7, 0, 393233, 7, 0, 393234, 7, 0, 393235, 7, 0, 393236, 7, 0, 393237, 7, 0, 393238, 7, 0, 393239, 7, 0, 393240, 7, 0, 393241, 7, 0, 393242, 7, 0, 393243, 7, 0, 393244, 7, 0, 393245, 7, 0, 393246, 7, 0, 393247, 7, 0, 393248, 7, 0, 393249, 5, 6, 524274, 5, 65538, 524275, 5, 2, 524276, 5, 2, 524277, 5, 2, 524278, 5, 2, 524279, 5, 2, 524280, 5, 2, 524281, 5, 2, 524282, 5, 2, 524283, 5, 2, 524284, 5, 2, 524285, 5, 2, 524286, 5, 2, 524287, 5, 3, 458752, 5, 3, 458753, 5, 3, 458754, 5, 3, 458755, 5, 3, 458756, 5, 3, 458757, 5, 3, 458758, 5, 3, 458759, 5, 3, 458760, 5, 3, 458761, 5, 3, 458762, 5, 3, 458763, 5, 3, 458764, 5, 3, 458765, 5, 3, 458766, 5, 3, 458767, 5, 3, 458768, 5, 3, 458769, 5, 3, 458770, 5, 3, 458771, 5, 3, 458772, 5, 3, 458773, 5, 3, 458774, 5, 3, 458775, 5, 3, 458776, 5, 3, 458777, 5, 3, 458778, 5, 3, 458779, 5, 3, 458780, 5, 3, 458781, 5, 3, 458782, 5, 3, 458783, 5, 3, 458784, 5, 3 ) + +[node name="DropThroughPlatforms" type="TileMap" parent="."] +tile_set = ExtResource( 2 ) +cell_size = Vector2( 16, 16 ) +format = 1 + +[node name="PlatformPlants" type="TileMap" parent="."] +tile_set = SubResource( 5 ) +cell_size = Vector2( 16, 16 ) +format = 1 + +[node name="ElevatorButton" parent="." instance=ExtResource( 6 )] +position = Vector2( 464, -16 ) +elevator_time = 10 + +[node name="Portal" parent="ElevatorButton" instance=ExtResource( 11 )] +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="Coin3" parent="." instance=ExtResource( 14 )] +position = Vector2( 144, 30 ) +z_index = -1 + +[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"] +[editable path="UserInterface"] +[editable path="UserInterface/HUD"] +[editable path="BlobbyCam"] +[editable path="Blobby"] diff --git a/src/Levels/6 Tutorial Level.tscn b/src/Levels/6 Tutorial Level.tscn new file mode 100644 index 0000000..0ed04e7 --- /dev/null +++ b/src/Levels/6 Tutorial Level.tscn @@ -0,0 +1,468 @@ +[gd_scene load_steps=43 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] +[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=3] +[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=4] +[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=5] +[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=7] +[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=8] +[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/Contraptions/GateBlock.tscn" type="PackedScene" id=12] +[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.gd" type="Script" id=13] +[ext_resource path="res://src/StateMachines/FlyerStateMachine.gd" type="Script" id=14] +[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=15] +[ext_resource path="res://assets/enemy/flyer-sheet.png" type="Texture" id=16] +[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.gd" type="Script" id=17] +[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.tscn" type="PackedScene" id=18] +[ext_resource path="res://src/Contraptions/Rope/RopeAnchor.tscn" type="PackedScene" id=19] +[ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=20] +[ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=21] +[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=22] + +[sub_resource type="AnimationNodeStateMachinePlayback" id=4] + +[sub_resource type="TileSet" id=5] +0/name = "platform-plants.png 0" +0/texture = ExtResource( 3 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 16, 0, 256, 16 ) +0/tile_mode = 2 +0/autotile/icon_coordinate = Vector2( 5, 0 ) +0/autotile/tile_size = Vector2( 16, 16 ) +0/autotile/spacing = 0 +0/autotile/occluder_map = [ ] +0/autotile/navpoly_map = [ ] +0/autotile/priority_map = [ ] +0/autotile/z_index_map = [ ] +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 + +[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=34] +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=35] +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=36] +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=37] +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=42] +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=43] + +[sub_resource type="RectangleShape2D" id=44] +extents = Vector2( 10, 7.5 ) + +[sub_resource type="RectangleShape2D" id=45] +extents = Vector2( 15, 5.12039 ) + +[sub_resource type="RectangleShape2D" id=46] +extents = Vector2( 18.2143, 14.3338 ) + +[node name="LevelTemplate" type="Node2D"] +script = ExtResource( 4 ) +__meta__ = { +"_edit_horizontal_guides_": [ 464.0 ], +"_edit_vertical_guides_": [ 2880.0 ] +} + +[node name="SignalManager" parent="." instance=ExtResource( 5 )] + +[node name="LevelState" parent="." instance=ExtResource( 7 )] +unique_name_in_owner = true + +[node name="UserInterface" parent="." instance=ExtResource( 8 )] +unique_name_in_owner = true + +[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] +wait_time = 20.0 + +[node name="BlobbyCam" parent="." instance=ExtResource( 10 )] +unique_name_in_owner = true +visible = false +drag_margin_bottom = 0.3 + +[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] +frame = 7 + +[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] +frame = 6 + +[node name="Blobby" parent="." instance=ExtResource( 9 )] +unique_name_in_owner = true +position = Vector2( -128, 16 ) +scale = Vector2( 0.878906, 0.936025 ) + +[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 4 ) + +[node name="TileMap" type="TileMap" parent="."] +unique_name_in_owner = true +tile_set = ExtResource( 1 ) +cell_size = Vector2( 16, 16 ) +cell_quadrant_size = 3 +cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 ) +collision_layer = 8 +collision_mask = 8 +bake_navigation = true +format = 1 +tile_data = PoolIntArray( -393228, 5, 10, -393227, 5, 10, -393226, 5, 10, -393225, 5, 10, -393224, 5, 10, -393223, 5, 10, -393222, 5, 10, -393221, 5, 10, -393220, 5, 10, -393219, 5, 10, -393218, 5, 10, -393217, 5, 10, -458752, 5, 10, -458751, 5, 10, -458750, 5, 10, -458749, 5, 10, -458748, 5, 10, -458747, 5, 10, -458746, 5, 10, -458745, 5, 10, -458744, 5, 10, -458743, 5, 10, -458742, 5, 10, -458741, 5, 10, -458740, 5, 10, -458739, 5, 10, -458738, 5, 10, -327692, 5, 7, -327691, 7, 0, -327690, 7, 0, -327689, 7, 0, -327688, 7, 0, -327687, 7, 0, -327686, 7, 0, -327685, 7, 0, -327684, 7, 0, -327683, 7, 0, -327682, 7, 0, -327681, 7, 0, -393216, 7, 0, -393215, 7, 0, -393214, 5, 6, -393213, 5, 7, -393212, 7, 0, -393211, 7, 0, -393210, 7, 0, -393209, 7, 0, -393208, 7, 0, -393207, 7, 0, -393206, 7, 0, -393205, 7, 0, -393204, 7, 0, -393203, 7, 0, -393202, 5, 6, -262156, 5, 7, -262155, 7, 0, -262154, 7, 0, -262153, 7, 0, -262152, 7, 0, -262151, 7, 0, -262150, 7, 0, -262149, 7, 0, -262148, 7, 0, -262147, 7, 0, -262146, 7, 0, -262145, 7, 0, -327680, 7, 0, -327679, 7, 0, -327678, 5, 6, -327677, 5, 7, -327676, 7, 0, -327675, 7, 0, -327674, 7, 0, -327673, 7, 0, -327672, 7, 0, -327671, 7, 0, -327670, 7, 0, -327669, 7, 0, -327668, 7, 0, -327667, 7, 0, -327666, 5, 6, -196620, 5, 7, -196619, 7, 0, -196618, 7, 0, -196617, 7, 0, -196616, 7, 0, -196615, 7, 0, -196614, 7, 0, -196613, 7, 0, -196612, 7, 0, -196611, 7, 0, -196610, 7, 0, -196609, 7, 0, -262144, 7, 0, -262143, 7, 0, -262142, 5, 6, -262141, 5, 7, -262140, 7, 0, -262139, 7, 0, -262138, 7, 0, -262137, 7, 0, -262136, 7, 0, -262135, 7, 0, -262134, 7, 0, -262133, 7, 0, -262132, 7, 0, -262131, 7, 0, -262130, 5, 6, -131084, 5, 7, -131083, 7, 0, -131082, 7, 0, -131081, 7, 0, -131080, 7, 0, -131079, 7, 0, -131078, 7, 0, -131077, 7, 0, -131076, 7, 0, -131075, 7, 0, -131074, 7, 0, -131073, 7, 0, -196608, 7, 0, -196607, 7, 0, -196606, 5, 6, -196605, 5, 7, -196604, 7, 0, -196603, 7, 0, -196602, 7, 0, -196601, 7, 0, -196600, 7, 0, -196599, 7, 0, -196598, 7, 0, -196597, 7, 0, -196596, 7, 0, -196595, 7, 0, -196594, 5, 6, -65548, 5, 7, -65547, 7, 0, -65546, 7, 0, -65545, 7, 0, -65544, 7, 0, -65543, 7, 0, -65542, 7, 0, -65541, 7, 0, -65540, 7, 0, -65539, 7, 0, -65538, 7, 0, -65537, 7, 0, -131072, 7, 0, -131071, 7, 0, -131070, 5, 6, -131069, 5, 7, -131068, 7, 0, -131067, 7, 0, -131066, 7, 0, -131065, 7, 0, -131064, 7, 0, -131063, 7, 0, -131062, 7, 0, -131061, 7, 0, -131060, 7, 0, -131059, 7, 0, -131058, 5, 6, -12, 5, 7, -11, 7, 0, -10, 7, 0, -9, 7, 0, -8, 7, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 5, 6, -65533, 5, 7, -65532, 7, 0, -65531, 7, 0, -65530, 7, 0, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 5, 6, 65524, 5, 7, 65525, 7, 0, 65526, 7, 0, 65527, 7, 0, 65528, 7, 0, 65529, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 0, 7, 0, 1, 7, 0, 2, 5, 6, 3, 5, 7, 4, 7, 0, 5, 7, 0, 6, 7, 0, 7, 7, 0, 8, 7, 0, 9, 7, 0, 10, 7, 0, 11, 7, 0, 12, 7, 0, 13, 7, 0, 14, 5, 6, 131060, 5, 7, 131061, 5, 2, 131062, 5, 2, 131063, 5, 2, 131064, 5, 2, 131065, 5, 2, 131066, 5, 2, 131067, 5, 2, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 5, 2, 65536, 5, 2, 65537, 5, 2, 65538, 5, 65539, 65539, 7, 0, 65540, 7, 0, 65541, 7, 0, 65542, 7, 0, 65543, 7, 0, 65544, 5, 2, 65545, 5, 2, 65546, 5, 2, 65547, 5, 2, 65548, 5, 2, 65549, 5, 3, 65550, 5, 3, 196596, 5, 7, 196597, 7, 0, 196598, 7, 0, 196599, 7, 0, 196600, 7, 0, 196601, 7, 0, 196602, 7, 0, 196603, 7, 0, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 7, 0, 131072, 7, 0, 131073, 7, 0, 131074, 7, 0, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 7, 0, 131079, 7, 0, 131080, 5, 6, 131086, 5, 6, 262132, 5, 7, 262133, 7, 0, 262134, 7, 0, 262135, 7, 0, 262136, 7, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 7, 0, 196615, 7, 0, 196616, 5, 6, 196622, 5, 6, 327668, 5, 7, 327669, 7, 0, 327670, 7, 0, 327671, 7, 0, 327672, 7, 0, 327673, 7, 0, 327674, 7, 0, 327675, 7, 0, 327676, 7, 0, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 5, 1, 262151, 5, 2, 262152, 5, 6, 262158, 5, 6, 393204, 5, 7, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 5, 6, 327688, 5, 6, 327694, 5, 6, 458740, 5, 7, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 5, 6, 393224, 5, 6, 393230, 5, 6, 524276, 5, 2, 524277, 5, 2, 524278, 5, 2, 524279, 5, 2, 524280, 5, 2, 524281, 5, 2, 524282, 5, 2, 524283, 5, 2, 524284, 5, 2, 524285, 5, 2, 524286, 5, 2, 524287, 5, 2, 458752, 5, 2, 458753, 5, 2, 458754, 5, 2, 458755, 5, 2, 458756, 5, 2, 458757, 5, 2, 458758, 5, 2, 458759, 5, 2, 458760, 5, 2, 458761, 5, 2, 458762, 5, 2, 458763, 5, 2, 458764, 5, 2, 458765, 5, 2, 458766, 5, 2 ) + +[node name="DropThroughPlatforms" type="TileMap" parent="."] +tile_set = ExtResource( 2 ) +cell_size = Vector2( 16, 16 ) +format = 1 + +[node name="PlatformPlants" type="TileMap" parent="."] +tile_set = SubResource( 5 ) +cell_size = Vector2( 16, 16 ) +format = 1 + +[node name="ElevatorButton" parent="." instance=ExtResource( 6 )] +position = Vector2( -80, 16 ) +elevator_time = 10 + +[node name="Portal" parent="ElevatorButton" instance=ExtResource( 11 )] +position = Vector2( 64, 40.5 ) +scale = Vector2( 0.5, 0.5 ) +next_scene = "res://src/Levels/Actual Level 1.tscn" + +[node name="GateBlock" parent="." instance=ExtResource( 12 )] +position = Vector2( -28, 28 ) + +[node name="GateBlock2" parent="." instance=ExtResource( 12 )] +position = Vector2( -52, 28 ) + +[node name="BoundFrog" type="Node2D" parent="."] +position = Vector2( 136, 6 ) +script = ExtResource( 17 ) +movement_radius = 4 + +[node name="WhatAreFrog" parent="BoundFrog" instance=ExtResource( 18 )] +position = Vector2( 0, 1 ) + +[node name="RopeAnchor" parent="BoundFrog" instance=ExtResource( 19 )] +position = Vector2( 68, 7 ) + +[node name="Flyer" type="KinematicBody2D" parent="." groups=["frogfood", "harmful"]] +position = Vector2( -40, 86 ) +collision_layer = 258 +collision_mask = 25 +script = ExtResource( 13 ) +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( 14 ) + +[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( 15 ) +text = "Ihre Werbung" +align = 1 +valign = 1 + +[node name="FlyerSprite" type="Sprite" parent="Flyer"] +scale = Vector2( -1, 1 ) +texture = ExtResource( 16 ) +hframes = 2 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Flyer/FlyerSprite"] +anims/RESET = SubResource( 33 ) +anims/hunting = SubResource( 34 ) +anims/huntingLeft = SubResource( 35 ) +anims/searching = SubResource( 36 ) +anims/searchingLeft = SubResource( 37 ) + +[node name="AnimationTree" type="AnimationTree" parent="Flyer/FlyerSprite"] +tree_root = SubResource( 42 ) +anim_player = NodePath("../AnimationPlayer") +active = true +root_motion_track = NodePath(".") +parameters/playback = SubResource( 43 ) +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( 44 ) + +[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( 45 ) + +[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( 46 ) + +[node name="PatrolPath" type="Node2D" parent="Flyer"] + +[node name="Position2D2" type="Position2D" parent="Flyer/PatrolPath"] +position = Vector2( -24, -6 ) + +[node name="Position2D3" type="Position2D" parent="Flyer/PatrolPath"] +position = Vector2( 24, -6 ) + +[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="FrogFreeButton" parent="." instance=ExtResource( 21 )] +position = Vector2( 6, 0 ) + +[node name="GateButton" parent="." instance=ExtResource( 20 )] +position = Vector2( -128, 97 ) + +[node name="Coin3" parent="." instance=ExtResource( 22 )] +position = Vector2( 207, -4 ) +z_index = -1 + +[connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] +[connection signal="child_exiting_tree" from="BoundFrog/WhatAreFrog" to="BoundFrog" method="_on_WhatAreFrog_child_exiting_tree"] +[connection signal="body_entered" from="Flyer/StompDetector" to="Flyer" method="_on_StompDetector_body_entered"] +[connection signal="button_pushed" from="FrogFreeButton" to="BoundFrog" method="_on_FrogFreeButton_pushed"] + +[editable path="SignalManager"] +[editable path="LevelState"] +[editable path="UserInterface"] +[editable path="UserInterface/HUD"] +[editable path="BlobbyCam"] +[editable path="Blobby"] +[editable path="BoundFrog/RopeAnchor"] diff --git a/src/Levels/Templates/Template.tscn b/src/Levels/Templates/Template.tscn index f25d06e..8e4932e 100644 --- a/src/Levels/Templates/Template.tscn +++ b/src/Levels/Templates/Template.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=14 format=2] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1] [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2] @@ -10,6 +10,7 @@ [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=8] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=9] [ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=10] +[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=11] [sub_resource type="AnimationNodeStateMachinePlayback" id=4] @@ -94,8 +95,13 @@ tile_set = SubResource( 5 ) cell_size = Vector2( 16, 16 ) format = 1 -[node name="Portal" parent="." instance=ExtResource( 5 )] -position = Vector2( 288, 96 ) +[node name="ElevatorButton" parent="." instance=ExtResource( 11 )] +position = Vector2( 216, 112 ) +elevator_time = 10 + +[node name="Portal" parent="ElevatorButton" instance=ExtResource( 5 )] +position = Vector2( 36, -8 ) +scale = Vector2( 0.5, 0.5 ) next_scene = "res://src/Levels/Actual Level 1.tscn" [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"]