diff --git a/assets/graphics/enemies/slime_purple.png b/assets/graphics/enemies/slime_purple.png new file mode 100644 index 0000000..76f564e Binary files /dev/null and b/assets/graphics/enemies/slime_purple.png differ diff --git a/assets/graphics/enemies/slime_purple.png.import b/assets/graphics/enemies/slime_purple.png.import new file mode 100644 index 0000000..2679619 --- /dev/null +++ b/assets/graphics/enemies/slime_purple.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djv2eq1plqe0l" +path="res://.godot/imported/slime_purple.png-7c7bd1452ab1f0d8805110e20459acf6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/enemies/slime_purple.png" +dest_files=["res://.godot/imported/slime_purple.png-7c7bd1452ab1f0d8805110e20459acf6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/project.godot b/project.godot index 80f47a1..83914df 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,10 @@ run/main_scene="uid://d7n4nyeox11q" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="res://icon.svg" +[autoload] + +GameController="*uid://c6cnqclwk4lcb" + [display] window/size/viewport_width=480 diff --git a/scenes/game_node.tscn b/scenes/level1.tscn similarity index 92% rename from scenes/game_node.tscn rename to scenes/level1.tscn index 1a8e14b..a38066b 100644 --- a/scenes/game_node.tscn +++ b/scenes/level1.tscn @@ -1,12 +1,11 @@ [gd_scene format=4 uid="uid://d7n4nyeox11q"] -[ext_resource type="Script" uid="uid://c6cnqclwk4lcb" path="res://scripts/game_controller.gd" id="1_bj22s"] [ext_resource type="PackedScene" uid="uid://wt8o0uyqblsv" path="res://scenes/brown_box.tscn" id="2_ca7g5"] [ext_resource type="Script" uid="uid://sj5x7sv6o6yb" path="res://scripts/scene_manager.gd" id="2_k3dxm"] [ext_resource type="Texture2D" uid="uid://c1ux8583i2n61" path="res://assets/graphics/environments/Terrain (32x32).png" id="3_eh8dd"] [ext_resource type="PackedScene" uid="uid://bhsvqyhsemekq" path="res://scenes/player.tscn" id="3_k3dxm"] [ext_resource type="Script" uid="uid://gkpbb5sf4gu7" path="res://scripts/area_2d.gd" id="3_v0i7m"] -[ext_resource type="PackedScene" uid="uid://cncmlpntwxxx5" path="res://scenes/grenade.tscn" id="6_1aljj"] +[ext_resource type="PackedScene" uid="uid://dvdwk2je7ryqr" path="res://scenes/slime.tscn" id="6_6sh32"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8ifkp"] texture = ExtResource("3_eh8dd") @@ -103,6 +102,7 @@ texture_region_size = Vector2i(32, 32) 0:1/0 = 0 0:1/0/terrain_set = 0 0:1/0/terrain = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:1/0/terrains_peering_bit/right_side = 0 0:1/0/terrains_peering_bit/bottom_right_corner = 0 0:1/0/terrains_peering_bit/bottom_side = 0 @@ -113,6 +113,7 @@ texture_region_size = Vector2i(32, 32) 2:1/0 = 0 2:1/0/terrain_set = 0 2:1/0/terrain = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:1/0/terrains_peering_bit/bottom_side = 0 2:1/0/terrains_peering_bit/bottom_left_corner = 0 2:1/0/terrains_peering_bit/left_side = 0 @@ -201,12 +202,14 @@ texture_region_size = Vector2i(32, 32) 0:2/0 = 0 0:2/0/terrain_set = 0 0:2/0/terrain = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:2/0/terrains_peering_bit/right_side = 0 0:2/0/terrains_peering_bit/top_side = 0 0:2/0/terrains_peering_bit/top_right_corner = 0 1:2/0 = 0 1:2/0/terrain_set = 0 1:2/0/terrain = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 1:2/0/terrains_peering_bit/right_side = 0 1:2/0/terrains_peering_bit/left_side = 0 1:2/0/terrains_peering_bit/top_left_corner = 0 @@ -215,6 +218,7 @@ texture_region_size = Vector2i(32, 32) 2:2/0 = 0 2:2/0/terrain_set = 0 2:2/0/terrain = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:2/0/terrains_peering_bit/left_side = 0 2:2/0/terrains_peering_bit/top_left_corner = 0 2:2/0/terrains_peering_bit/top_side = 0 @@ -373,14 +377,13 @@ radius = 20.880613 [node name="GameNode" type="Node2D" unique_id=2127085168] position = Vector2(0, -1) -script = ExtResource("1_bj22s") [node name="SceneManager" type="Node2D" parent="." unique_id=1765894074] unique_name_in_owner = true script = ExtResource("2_k3dxm") [node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=319520244] -tile_map_data = PackedByteArray("AAADAAwAAAAAAAQAAAAEAAwAAAABAAQAAAAFAAwAAAABAAQAAAAGAAwAAAABAAQAAAAHAAwAAAABAAQAAAAIAAwAAAABAAQAAAAJAAwAAAABAAQAAAAKAAwAAAACAAQAAAAMAAoAAAAAAAQAAAANAAoAAAABAAQAAAAOAAoAAAABAAQAAAAPAAoAAAABAAQAAAAQAAoAAAABAAQAAAARAAoAAAACAAQAAAAVAAgAAAAAAAQAAAAWAAgAAAABAAQAAAAXAAgAAAABAAQAAAAYAAgAAAABAAQAAAAZAAgAAAABAAQAAAAaAAgAAAACAAQAAAAcAAYAAAAAAAQAAAAdAAYAAAABAAQAAAAeAAYAAAABAAQAAAAfAAYAAAABAAQAAAAgAAYAAAABAAQAAAAhAAYAAAABAAQAAAAiAAYAAAACAAQAAAAnABAAAAAEAAIAAAAnAA8AAAAEAAEAAAAnAA4AAAANAAQAAAAnAA0AAAAEAAEAAAAnAAwAAAAEAAEAAAAnAAsAAAAEAAEAAAAnAAoAAAAEAAAAAAD//xAAAAAEAAIAAAD//w8AAAAEAAEAAAD//w4AAAAMAAMAAAD//w0AAAAEAAEAAAD//wwAAAAEAAEAAAD//wsAAAAEAAEAAAD//woAAAAEAAEAAAD//wkAAAAEAAEAAAD//wgAAAAEAAEAAAD//wcAAAAEAAEAAAD//wYAAAAEAAAAAAAiAA4AAAABAAQAAAAjAA4AAAABAAQAAAAkAA4AAAABAAQAAAAlAA4AAAABAAQAAAAgAA4AAAABAAQAAAAhAA4AAAABAAQAAAAAAA4AAAABAAQAAAABAA4AAAABAAQAAAACAA4AAAABAAQAAAADAA4AAAABAAQAAAAEAA4AAAABAAQAAAAFAA4AAAABAAQAAAAGAA4AAAABAAQAAAAHAA4AAAABAAQAAAAIAA4AAAABAAQAAAAJAA4AAAABAAQAAAAKAA4AAAABAAQAAAALAA4AAAABAAQAAAAMAA4AAAABAAQAAAANAA4AAAABAAQAAAAOAA4AAAABAAQAAAAPAA4AAAABAAQAAAAQAA4AAAABAAQAAAARAA4AAAABAAQAAAASAA4AAAABAAQAAAATAA4AAAABAAQAAAAUAA4AAAABAAQAAAAVAA4AAAABAAQAAAAWAA4AAAABAAQAAAAXAA4AAAABAAQAAAAYAA4AAAABAAQAAAAZAA4AAAABAAQAAAAaAA4AAAABAAQAAAAbAA4AAAABAAQAAAAcAA4AAAABAAQAAAAdAA4AAAABAAQAAAAeAA4AAAABAAQAAAAfAA4AAAABAAQAAAAmAA4AAAABAAQAAAAZAAwAAAAEAAQAAAA=") +tile_map_data = PackedByteArray("AAADAAwAAAAAAAQAAAAEAAwAAAABAAQAAAAFAAwAAAABAAQAAAAGAAwAAAABAAQAAAAHAAwAAAABAAQAAAAIAAwAAAABAAQAAAAJAAwAAAABAAQAAAAKAAwAAAACAAQAAAAMAAoAAAAAAAQAAAANAAoAAAABAAQAAAAOAAoAAAABAAQAAAAPAAoAAAABAAQAAAAQAAoAAAABAAQAAAARAAoAAAACAAQAAAAVAAgAAAAAAAQAAAAWAAgAAAABAAQAAAAXAAgAAAABAAQAAAAYAAgAAAABAAQAAAAZAAgAAAABAAQAAAAaAAgAAAACAAQAAAAcAAYAAAAAAAQAAAAdAAYAAAABAAQAAAAeAAYAAAABAAQAAAAfAAYAAAABAAQAAAAgAAYAAAABAAQAAAAhAAYAAAABAAQAAAAiAAYAAAACAAQAAAAnABAAAAAEAAIAAAAnAA8AAAAEAAEAAAAnAA4AAAANAAQAAAAnAA0AAAAEAAEAAAAnAAwAAAAEAAEAAAAnAAsAAAAEAAEAAAAnAAoAAAAEAAAAAAD//xAAAAAEAAIAAAD//w8AAAAEAAEAAAD//w4AAAAMAAMAAAD//w0AAAAEAAEAAAD//wwAAAAEAAEAAAD//wsAAAAEAAEAAAD//woAAAAEAAEAAAD//wkAAAAEAAEAAAD//wgAAAAEAAEAAAD//wcAAAAEAAEAAAD//wYAAAAEAAAAAAAiAA4AAAABAAQAAAAjAA4AAAABAAQAAAAkAA4AAAABAAQAAAAlAA4AAAABAAQAAAAgAA4AAAABAAQAAAAhAA4AAAABAAQAAAAAAA4AAAABAAQAAAABAA4AAAABAAQAAAACAA4AAAABAAQAAAADAA4AAAABAAQAAAAEAA4AAAABAAQAAAAFAA4AAAABAAQAAAAGAA4AAAABAAQAAAAHAA4AAAABAAQAAAAIAA4AAAABAAQAAAAJAA4AAAABAAQAAAAKAA4AAAABAAQAAAALAA4AAAABAAQAAAAMAA4AAAABAAQAAAANAA4AAAABAAQAAAAOAA4AAAABAAQAAAAPAA4AAAABAAQAAAAQAA4AAAABAAQAAAARAA4AAAABAAQAAAASAA4AAAABAAQAAAATAA4AAAABAAQAAAAUAA4AAAABAAQAAAAVAA4AAAABAAQAAAAWAA4AAAABAAQAAAAXAA4AAAABAAQAAAAYAA4AAAABAAQAAAAZAA4AAAABAAQAAAAaAA4AAAABAAQAAAAbAA4AAAABAAQAAAAcAA4AAAABAAQAAAAdAA4AAAABAAQAAAAeAA4AAAABAAQAAAAfAA4AAAABAAQAAAAmAA4AAAABAAQAAAAZAAwAAAAEAAQAAAADAAoAAAACAAIAAAACAAoAAAAAAAIAAAACAAkAAAAAAAAAAAADAAkAAAACAAAAAAASAAMAAAAQAAEAAAASAAQAAAAAAAIAAAATAAQAAAABAAIAAAAUAAQAAAACAAIAAAAUAAMAAAACAAAAAAATAAMAAAABAAAAAAARAAMAAAAKAAQAAAASAAIAAAACAAAAAAARAAIAAAAQAAEAAAARAAEAAAACAAAAAAAQAAEAAAABAAAAAAAPAAEAAAAAAAAAAAAPAAIAAAAAAAEAAAAPAAMAAAAAAAIAAAAQAAMAAAAJAAQAAAAQAAIAAAAGAAAAAAAYAAQAAAAAAAQAAAAZAAQAAAACAAQAAAA=") tile_set = SubResource("TileSet_02mmc") [node name="worldFloor" type="StaticBody2D" parent="." unique_id=376228153] @@ -406,10 +409,10 @@ debug_color = Color(0.37550476, 0.5048963, 0.9171919, 0.41960785) [node name="crates" type="Node2D" parent="." unique_id=1870478446] [node name="brownBox" parent="crates" unique_id=143097810 instance=ExtResource("2_ca7g5")] -position = Vector2(409, 222) +position = Vector2(340, 435) [node name="brownBox2" parent="crates" unique_id=1038663129 instance=ExtResource("2_ca7g5")] -position = Vector2(436, 166) +position = Vector2(501, 436) [node name="brownBox4" parent="crates" unique_id=1193856484 instance=ExtResource("2_ca7g5")] position = Vector2(472, 211) @@ -420,8 +423,13 @@ position = Vector2(460, 104) [node name="brownBox3" parent="crates" unique_id=170891935 instance=ExtResource("2_ca7g5")] position = Vector2(498, 155) -[node name="grenade" parent="." unique_id=781159040 instance=ExtResource("6_1aljj")] -position = Vector2(385, 240) +[node name="Enemies" type="Node2D" parent="." unique_id=190960427] + +[node name="Slime" parent="Enemies" unique_id=135907236 instance=ExtResource("6_6sh32")] +position = Vector2(204, 371) + +[node name="Slime2" parent="Enemies" unique_id=2077610743 instance=ExtResource("6_6sh32")] +position = Vector2(705, 243) [connection signal="body_entered" from="area" to="area" method="_on_body_entered"] [connection signal="triggerActiveSignal" from="area" to="." method="_on_area_2d_trigger_active_signal"] diff --git a/scenes/level2.tscn b/scenes/level2.tscn new file mode 100644 index 0000000..edabf28 --- /dev/null +++ b/scenes/level2.tscn @@ -0,0 +1,426 @@ +[gd_scene format=4 uid="uid://dld6rtetnkbj6"] + +[ext_resource type="Script" uid="uid://sj5x7sv6o6yb" path="res://scripts/scene_manager.gd" id="1_yqkch"] +[ext_resource type="Texture2D" uid="uid://c1ux8583i2n61" path="res://assets/graphics/environments/Terrain (32x32).png" id="2_6ep0u"] +[ext_resource type="PackedScene" uid="uid://bhsvqyhsemekq" path="res://scenes/player.tscn" id="3_hrcei"] +[ext_resource type="Script" uid="uid://gkpbb5sf4gu7" path="res://scripts/area_2d.gd" id="4_xa7n4"] +[ext_resource type="PackedScene" uid="uid://wt8o0uyqblsv" path="res://scenes/brown_box.tscn" id="5_bo4dx"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8ifkp"] +texture = ExtResource("2_6ep0u") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:0/0/terrains_peering_bit/right_side = 0 +0:0/0/terrains_peering_bit/bottom_right_corner = 0 +0:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/terrain = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:0/0/terrains_peering_bit/right_side = 0 +1:0/0/terrains_peering_bit/bottom_right_corner = 0 +1:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0/terrains_peering_bit/bottom_left_corner = 0 +1:0/0/terrains_peering_bit/left_side = 0 +2:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/terrain = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:0/0/terrains_peering_bit/bottom_side = 0 +2:0/0/terrains_peering_bit/bottom_left_corner = 0 +2:0/0/terrains_peering_bit/left_side = 0 +4:0/0 = 0 +4:0/0/terrain_set = 0 +4:0/0/terrain = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0 = 0 +6:0/0/terrain_set = 0 +6:0/0/terrain = 0 +6:0/0/terrains_peering_bit/right_side = 0 +6:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0/terrains_peering_bit/bottom_left_corner = 0 +6:0/0/terrains_peering_bit/left_side = 0 +6:0/0/terrains_peering_bit/top_left_corner = 0 +6:0/0/terrains_peering_bit/top_side = 0 +6:0/0/terrains_peering_bit/top_right_corner = 0 +7:0/0 = 0 +7:0/0/terrain_set = 0 +7:0/0/terrain = 0 +7:0/0/terrains_peering_bit/right_side = 0 +7:0/0/terrains_peering_bit/bottom_right_corner = 0 +7:0/0/terrains_peering_bit/bottom_side = 0 +7:0/0/terrains_peering_bit/left_side = 0 +7:0/0/terrains_peering_bit/top_left_corner = 0 +7:0/0/terrains_peering_bit/top_side = 0 +7:0/0/terrains_peering_bit/top_right_corner = 0 +9:0/0 = 0 +9:0/0/terrain_set = 0 +9:0/0/terrain = 0 +9:0/0/terrains_peering_bit/right_side = 0 +9:0/0/terrains_peering_bit/bottom_right_corner = 0 +9:0/0/terrains_peering_bit/bottom_side = 0 +9:0/0/terrains_peering_bit/bottom_left_corner = 0 +9:0/0/terrains_peering_bit/left_side = 0 +9:0/0/terrains_peering_bit/top_side = 0 +10:0/0 = 0 +10:0/0/terrain_set = 0 +10:0/0/terrain = 0 +10:0/0/terrains_peering_bit/right_side = 0 +10:0/0/terrains_peering_bit/bottom_side = 0 +10:0/0/terrains_peering_bit/bottom_left_corner = 0 +10:0/0/terrains_peering_bit/left_side = 0 +10:0/0/terrains_peering_bit/top_left_corner = 0 +10:0/0/terrains_peering_bit/top_side = 0 +12:0/0 = 0 +12:0/0/terrain_set = 0 +12:0/0/terrain = 0 +12:0/0/terrains_peering_bit/right_side = 0 +12:0/0/terrains_peering_bit/bottom_right_corner = 0 +12:0/0/terrains_peering_bit/bottom_side = 0 +12:0/0/terrains_peering_bit/left_side = 0 +12:0/0/terrains_peering_bit/top_side = 0 +13:0/0 = 0 +13:0/0/terrain_set = 0 +13:0/0/terrain = 0 +13:0/0/terrains_peering_bit/right_side = 0 +13:0/0/terrains_peering_bit/bottom_side = 0 +13:0/0/terrains_peering_bit/bottom_left_corner = 0 +13:0/0/terrains_peering_bit/left_side = 0 +13:0/0/terrains_peering_bit/top_side = 0 +15:0/0 = 0 +15:0/0/terrain_set = 0 +15:0/0/terrain = 0 +15:0/0/terrains_peering_bit/right_side = 0 +15:0/0/terrains_peering_bit/bottom_side = 0 +15:0/0/terrains_peering_bit/left_side = 0 +15:0/0/terrains_peering_bit/top_side = 0 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:1/0/terrains_peering_bit/right_side = 0 +0:1/0/terrains_peering_bit/bottom_right_corner = 0 +0:1/0/terrains_peering_bit/bottom_side = 0 +0:1/0/terrains_peering_bit/top_side = 0 +0:1/0/terrains_peering_bit/top_right_corner = 0 +1:1/0 = 0 +1:1/0/terrain_set = 0 +2:1/0 = 0 +2:1/0/terrain_set = 0 +2:1/0/terrain = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:1/0/terrains_peering_bit/bottom_side = 0 +2:1/0/terrains_peering_bit/bottom_left_corner = 0 +2:1/0/terrains_peering_bit/left_side = 0 +2:1/0/terrains_peering_bit/top_left_corner = 0 +2:1/0/terrains_peering_bit/top_side = 0 +4:1/0 = 0 +4:1/0/terrain_set = 0 +4:1/0/terrain = 0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:1/0/terrains_peering_bit/bottom_side = 0 +4:1/0/terrains_peering_bit/top_side = 0 +6:1/0 = 0 +6:1/0/terrain_set = 0 +6:1/0/terrain = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(6.691246, -16, 16, -16, 16, -7.0098763, 5.7353516, -8.284399) +6:1/0/terrains_peering_bit/right_side = 0 +6:1/0/terrains_peering_bit/bottom_right_corner = 0 +6:1/0/terrains_peering_bit/bottom_side = 0 +6:1/0/terrains_peering_bit/bottom_left_corner = 0 +6:1/0/terrains_peering_bit/left_side = 0 +6:1/0/terrains_peering_bit/top_left_corner = 0 +6:1/0/terrains_peering_bit/top_side = 0 +7:1/0 = 0 +7:1/0/terrain_set = 0 +7:1/0/terrain = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -3.186308, -16, -4.4608307, -6.372616, -16, -6.0539837) +7:1/0/terrains_peering_bit/right_side = 0 +7:1/0/terrains_peering_bit/bottom_right_corner = 0 +7:1/0/terrains_peering_bit/bottom_side = 0 +7:1/0/terrains_peering_bit/bottom_left_corner = 0 +7:1/0/terrains_peering_bit/left_side = 0 +7:1/0/terrains_peering_bit/top_side = 0 +7:1/0/terrains_peering_bit/top_right_corner = 0 +9:1/0 = 0 +9:1/0/terrain_set = 0 +9:1/0/terrain = 0 +9:1/0/terrains_peering_bit/right_side = 0 +9:1/0/terrains_peering_bit/bottom_right_corner = 0 +9:1/0/terrains_peering_bit/bottom_side = 0 +9:1/0/terrains_peering_bit/left_side = 0 +9:1/0/terrains_peering_bit/top_side = 0 +9:1/0/terrains_peering_bit/top_right_corner = 0 +10:1/0 = 0 +10:1/0/terrain_set = 0 +10:1/0/terrain = 0 +10:1/0/terrains_peering_bit/right_side = 0 +10:1/0/terrains_peering_bit/bottom_side = 0 +10:1/0/terrains_peering_bit/left_side = 0 +10:1/0/terrains_peering_bit/top_left_corner = 0 +10:1/0/terrains_peering_bit/top_side = 0 +10:1/0/terrains_peering_bit/top_right_corner = 0 +12:1/0 = 0 +12:1/0/terrain_set = 0 +12:1/0/terrain = 0 +12:1/0/terrains_peering_bit/right_side = 0 +12:1/0/terrains_peering_bit/bottom_side = 0 +12:1/0/terrains_peering_bit/left_side = 0 +12:1/0/terrains_peering_bit/top_side = 0 +12:1/0/terrains_peering_bit/top_right_corner = 0 +13:1/0 = 0 +13:1/0/terrain_set = 0 +13:1/0/terrain = 0 +13:1/0/terrains_peering_bit/right_side = 0 +13:1/0/terrains_peering_bit/bottom_side = 0 +13:1/0/terrains_peering_bit/left_side = 0 +13:1/0/terrains_peering_bit/top_left_corner = 0 +13:1/0/terrains_peering_bit/top_side = 0 +15:1/0 = 0 +15:1/0/terrain_set = 0 +15:1/0/terrain = 0 +15:1/0/terrains_peering_bit/right_side = 0 +15:1/0/terrains_peering_bit/bottom_side = 0 +15:1/0/terrains_peering_bit/bottom_left_corner = 0 +15:1/0/terrains_peering_bit/left_side = 0 +15:1/0/terrains_peering_bit/top_side = 0 +15:1/0/terrains_peering_bit/top_right_corner = 0 +16:1/0 = 0 +16:1/0/terrain_set = 0 +16:1/0/terrain = 0 +16:1/0/terrains_peering_bit/right_side = 0 +16:1/0/terrains_peering_bit/bottom_right_corner = 0 +16:1/0/terrains_peering_bit/bottom_side = 0 +16:1/0/terrains_peering_bit/left_side = 0 +16:1/0/terrains_peering_bit/top_left_corner = 0 +16:1/0/terrains_peering_bit/top_side = 0 +0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/terrain = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:2/0/terrains_peering_bit/right_side = 0 +0:2/0/terrains_peering_bit/top_side = 0 +0:2/0/terrains_peering_bit/top_right_corner = 0 +1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/terrain = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:2/0/terrains_peering_bit/right_side = 0 +1:2/0/terrains_peering_bit/left_side = 0 +1:2/0/terrains_peering_bit/top_left_corner = 0 +1:2/0/terrains_peering_bit/top_side = 0 +1:2/0/terrains_peering_bit/top_right_corner = 0 +2:2/0 = 0 +2:2/0/terrain_set = 0 +2:2/0/terrain = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:2/0/terrains_peering_bit/left_side = 0 +2:2/0/terrains_peering_bit/top_left_corner = 0 +2:2/0/terrains_peering_bit/top_side = 0 +4:2/0 = 0 +4:2/0/terrain_set = 0 +4:2/0/terrain = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:2/0/terrains_peering_bit/top_side = 0 +6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/terrain = 0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0.31863022, -16, 0.95589066, 16, -16, 16) +6:3/0/terrains_peering_bit/right_side = 0 +6:3/0/terrains_peering_bit/bottom_side = 0 +6:3/0/terrains_peering_bit/top_side = 0 +6:3/0/terrains_peering_bit/top_right_corner = 0 +7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/terrain = 0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(1.5931549, -16, 16, -16, 16, 16, 1.2745209, 16) +7:3/0/terrains_peering_bit/bottom_side = 0 +7:3/0/terrains_peering_bit/left_side = 0 +7:3/0/terrains_peering_bit/top_left_corner = 0 +7:3/0/terrains_peering_bit/top_side = 0 +9:3/0 = 0 +9:3/0/terrain_set = 0 +9:3/0/terrain = 0 +9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +9:3/0/terrains_peering_bit/right_side = 0 +9:3/0/terrains_peering_bit/bottom_side = 0 +9:3/0/terrains_peering_bit/bottom_left_corner = 0 +9:3/0/terrains_peering_bit/left_side = 0 +10:3/0 = 0 +10:3/0/terrain_set = 0 +10:3/0/terrain = 0 +10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +10:3/0/terrains_peering_bit/right_side = 0 +10:3/0/terrains_peering_bit/bottom_right_corner = 0 +10:3/0/terrains_peering_bit/bottom_side = 0 +10:3/0/terrains_peering_bit/left_side = 0 +12:3/0 = 0 +12:3/0/terrain_set = 0 +12:3/0/terrain = 0 +12:3/0/terrains_peering_bit/right_side = 0 +12:3/0/terrains_peering_bit/bottom_side = 0 +12:3/0/terrains_peering_bit/top_side = 0 +13:3/0 = 0 +13:3/0/terrain_set = 0 +13:3/0/terrain = 0 +13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +13:3/0/terrains_peering_bit/right_side = 0 +13:3/0/terrains_peering_bit/bottom_side = 0 +13:3/0/terrains_peering_bit/left_side = 0 +15:3/0 = 0 +15:3/0/terrain_set = 0 +15:3/0/terrain = 0 +15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +15:3/0/terrains_peering_bit/right_side = 0 +15:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0 = 0 +16:3/0/terrain_set = 0 +16:3/0/terrain = 0 +16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +16:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0/terrains_peering_bit/left_side = 0 +0:4/0 = 0 +0:4/0/terrain_set = 0 +0:4/0/terrain = 0 +0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:4/0/terrains_peering_bit/right_side = 0 +1:4/0 = 0 +1:4/0/terrain_set = 0 +1:4/0/terrain = 0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:4/0/terrains_peering_bit/right_side = 0 +1:4/0/terrains_peering_bit/left_side = 0 +2:4/0 = 0 +2:4/0/terrain_set = 0 +2:4/0/terrain = 0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:4/0/terrains_peering_bit/left_side = 0 +4:4/0 = 0 +4:4/0/terrain_set = 0 +4:4/0/terrain = 0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:4/0 = 0 +6:4/0/terrain_set = 0 +6:4/0/terrain = 0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0.31863022, -16, 0.95589066, 16, -16, 16) +6:4/0/terrains_peering_bit/right_side = 0 +6:4/0/terrains_peering_bit/bottom_right_corner = 0 +6:4/0/terrains_peering_bit/bottom_side = 0 +6:4/0/terrains_peering_bit/top_side = 0 +7:4/0 = 0 +7:4/0/terrain_set = 0 +7:4/0/terrain = 0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(1.5931549, -16, 16, -16, 16, 16, 1.2745209, 16) +7:4/0/terrains_peering_bit/bottom_side = 0 +7:4/0/terrains_peering_bit/bottom_left_corner = 0 +7:4/0/terrains_peering_bit/left_side = 0 +7:4/0/terrains_peering_bit/top_side = 0 +9:4/0 = 0 +9:4/0/terrain_set = 0 +9:4/0/terrain = 0 +9:4/0/terrains_peering_bit/right_side = 0 +9:4/0/terrains_peering_bit/left_side = 0 +9:4/0/terrains_peering_bit/top_left_corner = 0 +9:4/0/terrains_peering_bit/top_side = 0 +10:4/0 = 0 +10:4/0/terrain_set = 0 +10:4/0/terrain = 0 +10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 2.2304153, -16, 1.5931549, -2.2304153, -16, -1.2745228) +10:4/0/terrains_peering_bit/right_side = 0 +10:4/0/terrains_peering_bit/left_side = 0 +10:4/0/terrains_peering_bit/top_side = 0 +10:4/0/terrains_peering_bit/top_right_corner = 0 +12:4/0 = 0 +12:4/0/terrain_set = 0 +12:4/0/terrain = 0 +12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(6.691246, -16, 16, -16, 16, -7.0098763, 5.7353516, -8.284399) +12:4/0/terrains_peering_bit/right_side = 0 +12:4/0/terrains_peering_bit/left_side = 0 +12:4/0/terrains_peering_bit/top_side = 0 +13:4/0 = 0 +13:4/0/terrain_set = 0 +13:4/0/terrain = 0 +13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -3.186308, -16, -4.4608307, -6.372616, -16, -6.0539837) +13:4/0/terrains_peering_bit/bottom_side = 0 +13:4/0/terrains_peering_bit/left_side = 0 +13:4/0/terrains_peering_bit/top_side = 0 +15:4/0 = 0 +15:4/0/terrain_set = 0 +15:4/0/terrain = 0 +15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(6.691246, -16, 16, -16, 16, -7.0098763, 5.7353516, -8.284399) +15:4/0/terrains_peering_bit/right_side = 0 +15:4/0/terrains_peering_bit/top_side = 0 +16:4/0 = 0 +16:4/0/terrain_set = 0 +16:4/0/terrain = 0 +16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -3.186308, -16, -4.4608307, -6.372616, -16, -6.0539837) +16:4/0/terrains_peering_bit/left_side = 0 +16:4/0/terrains_peering_bit/top_side = 0 + +[sub_resource type="TileSet" id="TileSet_02mmc"] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "LeafyDirt" +terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) +sources/0 = SubResource("TileSetAtlasSource_8ifkp") + +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_elsnr"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_bj22s"] +radius = 20.880613 + +[node name="GameNode" type="Node2D" unique_id=2127085168] +position = Vector2(137, 24) + +[node name="SceneManager" type="Node2D" parent="." unique_id=1765894074] +unique_name_in_owner = true +script = ExtResource("1_yqkch") + +[node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=319520244] +tile_map_data = PackedByteArray("AAAQAAoAAAAAAAQAAAARAAoAAAACAAQAAAD//w4AAAAPAAQAAAD//w0AAAAEAAEAAAD//wwAAAAEAAEAAAD//wsAAAAEAAEAAAD//woAAAAEAAEAAAD//wkAAAAEAAEAAAD//wgAAAAEAAEAAAD//wcAAAAEAAEAAAD//wYAAAAEAAEAAAAiAA4AAAABAAQAAAAjAA4AAAABAAQAAAAkAA4AAAABAAQAAAAlAA4AAAABAAQAAAAgAA4AAAABAAQAAAAhAA4AAAABAAQAAAAAAA4AAAABAAQAAAABAA4AAAABAAQAAAACAA4AAAABAAQAAAADAA4AAAABAAQAAAAEAA4AAAABAAQAAAAFAA4AAAABAAQAAAAGAA4AAAABAAQAAAAHAA4AAAABAAQAAAAIAA4AAAABAAQAAAAJAA4AAAABAAQAAAAKAA4AAAABAAQAAAALAA4AAAABAAQAAAAMAA4AAAABAAQAAAANAA4AAAABAAQAAAAOAA4AAAABAAQAAAAPAA4AAAABAAQAAAAQAA4AAAABAAQAAAARAA4AAAABAAQAAAASAA4AAAABAAQAAAATAA4AAAABAAQAAAAUAA4AAAABAAQAAAAVAA4AAAABAAQAAAAWAA4AAAABAAQAAAAXAA4AAAABAAQAAAAYAA4AAAABAAQAAAAZAA4AAAABAAQAAAAaAA4AAAABAAQAAAAbAA4AAAABAAQAAAAcAA4AAAABAAQAAAAdAA4AAAABAAQAAAAeAA4AAAABAAQAAAAfAA4AAAABAAQAAAAmAA4AAAABAAQAAAAZAAwAAAAEAAQAAAAVAAoAAAAAAAQAAAAWAAoAAAACAAQAAAAYAAoAAAAAAAQAAAAZAAoAAAABAAQAAAAaAAoAAAACAAQAAAAcAAoAAAAAAAQAAAAdAAoAAAABAAQAAAAeAAoAAAACAAQAAAAgAAoAAAAAAAQAAAAhAAoAAAACAAQAAAAlAAoAAAAEAAQAAAAnAA4AAAABAAQAAAAoAA4AAAABAAQAAAApAA4AAAABAAQAAAAqAA4AAAABAAQAAAArAA4AAAABAAQAAAAsAA4AAAABAAQAAAAtAA4AAAABAAQAAAAuAA4AAAABAAQAAAAvAA4AAAABAAQAAAAwAA4AAAABAAQAAAAxAA4AAAABAAQAAAAyAA4AAAABAAQAAAAzAA4AAAABAAQAAAA0AA4AAAABAAQAAAA1AA4AAAABAAQAAAA2AA4AAAABAAQAAAA3AA4AAAABAAQAAAA4AA4AAAABAAQAAAAnAAoAAAAEAAQAAAArAAoAAAAEAAQAAAApAAoAAAAEAAQAAAAtAAoAAAAEAAQAAAAvAAoAAAAEAAQAAAAzAAoAAAAAAAQAAAA0AAoAAAABAAQAAAA1AAoAAAACAAQAAAA5AA4AAAAQAAQAAAA5AA0AAAAEAAEAAAA5AAwAAAAEAAEAAAA5AAsAAAAEAAEAAAA5AAoAAAAEAAEAAAA5AAkAAAAEAAEAAAA5AAgAAAAEAAEAAAA5AAcAAAAEAAEAAAA5AAYAAAAEAAEAAAA5AAUAAAAEAAEAAAA5AAQAAAAEAAEAAAA5AAMAAAAEAAEAAAA5AAIAAAAEAAAAAAD//wUAAAAEAAEAAAD//wQAAAAEAAEAAAD//wMAAAAEAAAAAAA=") +tile_set = SubResource("TileSet_02mmc") + +[node name="worldFloor" type="StaticBody2D" parent="." unique_id=376228153] +position = Vector2(446, 437) +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="worldFloor" unique_id=1759461926] +position = Vector2(5, 12) +shape = SubResource("WorldBoundaryShape2D_elsnr") + +[node name="player" parent="." unique_id=395957349 instance=ExtResource("3_hrcei")] +position = Vector2(555, 272) + +[node name="area" type="Area2D" parent="." unique_id=2033836703] +position = Vector2(638, 351) +script = ExtResource("4_xa7n4") +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="area" unique_id=39441311] +shape = SubResource("CircleShape2D_bj22s") +debug_color = Color(0.37550476, 0.5048963, 0.9171919, 0.41960785) + +[node name="crates" type="Node2D" parent="." unique_id=1870478446] + +[node name="brownBox" parent="crates" unique_id=143097810 instance=ExtResource("5_bo4dx")] +position = Vector2(1388, 195) + +[node name="brownBox2" parent="crates" unique_id=1038663129 instance=ExtResource("5_bo4dx")] +position = Vector2(1679, 282) + +[node name="brownBox4" parent="crates" unique_id=1193856484 instance=ExtResource("5_bo4dx")] +position = Vector2(699, 226) + +[node name="brownBox5" parent="crates" unique_id=2032058715 instance=ExtResource("5_bo4dx")] +position = Vector2(811, 209) + +[node name="brownBox3" parent="crates" unique_id=170891935 instance=ExtResource("5_bo4dx")] +position = Vector2(1056, 270) + +[connection signal="body_entered" from="area" to="area" method="_on_body_entered"] +[connection signal="triggerActiveSignal" from="area" to="." method="_on_area_2d_trigger_active_signal"] diff --git a/scenes/level3.tscn b/scenes/level3.tscn new file mode 100644 index 0000000..0064bca --- /dev/null +++ b/scenes/level3.tscn @@ -0,0 +1,426 @@ +[gd_scene format=4 uid="uid://cp1s6m2hu1brf"] + +[ext_resource type="Script" uid="uid://sj5x7sv6o6yb" path="res://scripts/scene_manager.gd" id="1_6lxtr"] +[ext_resource type="Texture2D" uid="uid://c1ux8583i2n61" path="res://assets/graphics/environments/Terrain (32x32).png" id="2_b72m1"] +[ext_resource type="PackedScene" uid="uid://bhsvqyhsemekq" path="res://scenes/player.tscn" id="3_5mhml"] +[ext_resource type="Script" uid="uid://gkpbb5sf4gu7" path="res://scripts/area_2d.gd" id="4_rupth"] +[ext_resource type="PackedScene" uid="uid://wt8o0uyqblsv" path="res://scenes/brown_box.tscn" id="5_6qt4k"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8ifkp"] +texture = ExtResource("2_b72m1") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:0/0/terrains_peering_bit/right_side = 0 +0:0/0/terrains_peering_bit/bottom_right_corner = 0 +0:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/terrain = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:0/0/terrains_peering_bit/right_side = 0 +1:0/0/terrains_peering_bit/bottom_right_corner = 0 +1:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0/terrains_peering_bit/bottom_left_corner = 0 +1:0/0/terrains_peering_bit/left_side = 0 +2:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/terrain = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:0/0/terrains_peering_bit/bottom_side = 0 +2:0/0/terrains_peering_bit/bottom_left_corner = 0 +2:0/0/terrains_peering_bit/left_side = 0 +4:0/0 = 0 +4:0/0/terrain_set = 0 +4:0/0/terrain = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0 = 0 +6:0/0/terrain_set = 0 +6:0/0/terrain = 0 +6:0/0/terrains_peering_bit/right_side = 0 +6:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0/terrains_peering_bit/bottom_left_corner = 0 +6:0/0/terrains_peering_bit/left_side = 0 +6:0/0/terrains_peering_bit/top_left_corner = 0 +6:0/0/terrains_peering_bit/top_side = 0 +6:0/0/terrains_peering_bit/top_right_corner = 0 +7:0/0 = 0 +7:0/0/terrain_set = 0 +7:0/0/terrain = 0 +7:0/0/terrains_peering_bit/right_side = 0 +7:0/0/terrains_peering_bit/bottom_right_corner = 0 +7:0/0/terrains_peering_bit/bottom_side = 0 +7:0/0/terrains_peering_bit/left_side = 0 +7:0/0/terrains_peering_bit/top_left_corner = 0 +7:0/0/terrains_peering_bit/top_side = 0 +7:0/0/terrains_peering_bit/top_right_corner = 0 +9:0/0 = 0 +9:0/0/terrain_set = 0 +9:0/0/terrain = 0 +9:0/0/terrains_peering_bit/right_side = 0 +9:0/0/terrains_peering_bit/bottom_right_corner = 0 +9:0/0/terrains_peering_bit/bottom_side = 0 +9:0/0/terrains_peering_bit/bottom_left_corner = 0 +9:0/0/terrains_peering_bit/left_side = 0 +9:0/0/terrains_peering_bit/top_side = 0 +10:0/0 = 0 +10:0/0/terrain_set = 0 +10:0/0/terrain = 0 +10:0/0/terrains_peering_bit/right_side = 0 +10:0/0/terrains_peering_bit/bottom_side = 0 +10:0/0/terrains_peering_bit/bottom_left_corner = 0 +10:0/0/terrains_peering_bit/left_side = 0 +10:0/0/terrains_peering_bit/top_left_corner = 0 +10:0/0/terrains_peering_bit/top_side = 0 +12:0/0 = 0 +12:0/0/terrain_set = 0 +12:0/0/terrain = 0 +12:0/0/terrains_peering_bit/right_side = 0 +12:0/0/terrains_peering_bit/bottom_right_corner = 0 +12:0/0/terrains_peering_bit/bottom_side = 0 +12:0/0/terrains_peering_bit/left_side = 0 +12:0/0/terrains_peering_bit/top_side = 0 +13:0/0 = 0 +13:0/0/terrain_set = 0 +13:0/0/terrain = 0 +13:0/0/terrains_peering_bit/right_side = 0 +13:0/0/terrains_peering_bit/bottom_side = 0 +13:0/0/terrains_peering_bit/bottom_left_corner = 0 +13:0/0/terrains_peering_bit/left_side = 0 +13:0/0/terrains_peering_bit/top_side = 0 +15:0/0 = 0 +15:0/0/terrain_set = 0 +15:0/0/terrain = 0 +15:0/0/terrains_peering_bit/right_side = 0 +15:0/0/terrains_peering_bit/bottom_side = 0 +15:0/0/terrains_peering_bit/left_side = 0 +15:0/0/terrains_peering_bit/top_side = 0 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:1/0/terrains_peering_bit/right_side = 0 +0:1/0/terrains_peering_bit/bottom_right_corner = 0 +0:1/0/terrains_peering_bit/bottom_side = 0 +0:1/0/terrains_peering_bit/top_side = 0 +0:1/0/terrains_peering_bit/top_right_corner = 0 +1:1/0 = 0 +1:1/0/terrain_set = 0 +2:1/0 = 0 +2:1/0/terrain_set = 0 +2:1/0/terrain = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:1/0/terrains_peering_bit/bottom_side = 0 +2:1/0/terrains_peering_bit/bottom_left_corner = 0 +2:1/0/terrains_peering_bit/left_side = 0 +2:1/0/terrains_peering_bit/top_left_corner = 0 +2:1/0/terrains_peering_bit/top_side = 0 +4:1/0 = 0 +4:1/0/terrain_set = 0 +4:1/0/terrain = 0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:1/0/terrains_peering_bit/bottom_side = 0 +4:1/0/terrains_peering_bit/top_side = 0 +6:1/0 = 0 +6:1/0/terrain_set = 0 +6:1/0/terrain = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(6.691246, -16, 16, -16, 16, -7.0098763, 5.7353516, -8.284399) +6:1/0/terrains_peering_bit/right_side = 0 +6:1/0/terrains_peering_bit/bottom_right_corner = 0 +6:1/0/terrains_peering_bit/bottom_side = 0 +6:1/0/terrains_peering_bit/bottom_left_corner = 0 +6:1/0/terrains_peering_bit/left_side = 0 +6:1/0/terrains_peering_bit/top_left_corner = 0 +6:1/0/terrains_peering_bit/top_side = 0 +7:1/0 = 0 +7:1/0/terrain_set = 0 +7:1/0/terrain = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -3.186308, -16, -4.4608307, -6.372616, -16, -6.0539837) +7:1/0/terrains_peering_bit/right_side = 0 +7:1/0/terrains_peering_bit/bottom_right_corner = 0 +7:1/0/terrains_peering_bit/bottom_side = 0 +7:1/0/terrains_peering_bit/bottom_left_corner = 0 +7:1/0/terrains_peering_bit/left_side = 0 +7:1/0/terrains_peering_bit/top_side = 0 +7:1/0/terrains_peering_bit/top_right_corner = 0 +9:1/0 = 0 +9:1/0/terrain_set = 0 +9:1/0/terrain = 0 +9:1/0/terrains_peering_bit/right_side = 0 +9:1/0/terrains_peering_bit/bottom_right_corner = 0 +9:1/0/terrains_peering_bit/bottom_side = 0 +9:1/0/terrains_peering_bit/left_side = 0 +9:1/0/terrains_peering_bit/top_side = 0 +9:1/0/terrains_peering_bit/top_right_corner = 0 +10:1/0 = 0 +10:1/0/terrain_set = 0 +10:1/0/terrain = 0 +10:1/0/terrains_peering_bit/right_side = 0 +10:1/0/terrains_peering_bit/bottom_side = 0 +10:1/0/terrains_peering_bit/left_side = 0 +10:1/0/terrains_peering_bit/top_left_corner = 0 +10:1/0/terrains_peering_bit/top_side = 0 +10:1/0/terrains_peering_bit/top_right_corner = 0 +12:1/0 = 0 +12:1/0/terrain_set = 0 +12:1/0/terrain = 0 +12:1/0/terrains_peering_bit/right_side = 0 +12:1/0/terrains_peering_bit/bottom_side = 0 +12:1/0/terrains_peering_bit/left_side = 0 +12:1/0/terrains_peering_bit/top_side = 0 +12:1/0/terrains_peering_bit/top_right_corner = 0 +13:1/0 = 0 +13:1/0/terrain_set = 0 +13:1/0/terrain = 0 +13:1/0/terrains_peering_bit/right_side = 0 +13:1/0/terrains_peering_bit/bottom_side = 0 +13:1/0/terrains_peering_bit/left_side = 0 +13:1/0/terrains_peering_bit/top_left_corner = 0 +13:1/0/terrains_peering_bit/top_side = 0 +15:1/0 = 0 +15:1/0/terrain_set = 0 +15:1/0/terrain = 0 +15:1/0/terrains_peering_bit/right_side = 0 +15:1/0/terrains_peering_bit/bottom_side = 0 +15:1/0/terrains_peering_bit/bottom_left_corner = 0 +15:1/0/terrains_peering_bit/left_side = 0 +15:1/0/terrains_peering_bit/top_side = 0 +15:1/0/terrains_peering_bit/top_right_corner = 0 +16:1/0 = 0 +16:1/0/terrain_set = 0 +16:1/0/terrain = 0 +16:1/0/terrains_peering_bit/right_side = 0 +16:1/0/terrains_peering_bit/bottom_right_corner = 0 +16:1/0/terrains_peering_bit/bottom_side = 0 +16:1/0/terrains_peering_bit/left_side = 0 +16:1/0/terrains_peering_bit/top_left_corner = 0 +16:1/0/terrains_peering_bit/top_side = 0 +0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/terrain = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:2/0/terrains_peering_bit/right_side = 0 +0:2/0/terrains_peering_bit/top_side = 0 +0:2/0/terrains_peering_bit/top_right_corner = 0 +1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/terrain = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:2/0/terrains_peering_bit/right_side = 0 +1:2/0/terrains_peering_bit/left_side = 0 +1:2/0/terrains_peering_bit/top_left_corner = 0 +1:2/0/terrains_peering_bit/top_side = 0 +1:2/0/terrains_peering_bit/top_right_corner = 0 +2:2/0 = 0 +2:2/0/terrain_set = 0 +2:2/0/terrain = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:2/0/terrains_peering_bit/left_side = 0 +2:2/0/terrains_peering_bit/top_left_corner = 0 +2:2/0/terrains_peering_bit/top_side = 0 +4:2/0 = 0 +4:2/0/terrain_set = 0 +4:2/0/terrain = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:2/0/terrains_peering_bit/top_side = 0 +6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/terrain = 0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0.31863022, -16, 0.95589066, 16, -16, 16) +6:3/0/terrains_peering_bit/right_side = 0 +6:3/0/terrains_peering_bit/bottom_side = 0 +6:3/0/terrains_peering_bit/top_side = 0 +6:3/0/terrains_peering_bit/top_right_corner = 0 +7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/terrain = 0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(1.5931549, -16, 16, -16, 16, 16, 1.2745209, 16) +7:3/0/terrains_peering_bit/bottom_side = 0 +7:3/0/terrains_peering_bit/left_side = 0 +7:3/0/terrains_peering_bit/top_left_corner = 0 +7:3/0/terrains_peering_bit/top_side = 0 +9:3/0 = 0 +9:3/0/terrain_set = 0 +9:3/0/terrain = 0 +9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +9:3/0/terrains_peering_bit/right_side = 0 +9:3/0/terrains_peering_bit/bottom_side = 0 +9:3/0/terrains_peering_bit/bottom_left_corner = 0 +9:3/0/terrains_peering_bit/left_side = 0 +10:3/0 = 0 +10:3/0/terrain_set = 0 +10:3/0/terrain = 0 +10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +10:3/0/terrains_peering_bit/right_side = 0 +10:3/0/terrains_peering_bit/bottom_right_corner = 0 +10:3/0/terrains_peering_bit/bottom_side = 0 +10:3/0/terrains_peering_bit/left_side = 0 +12:3/0 = 0 +12:3/0/terrain_set = 0 +12:3/0/terrain = 0 +12:3/0/terrains_peering_bit/right_side = 0 +12:3/0/terrains_peering_bit/bottom_side = 0 +12:3/0/terrains_peering_bit/top_side = 0 +13:3/0 = 0 +13:3/0/terrain_set = 0 +13:3/0/terrain = 0 +13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +13:3/0/terrains_peering_bit/right_side = 0 +13:3/0/terrains_peering_bit/bottom_side = 0 +13:3/0/terrains_peering_bit/left_side = 0 +15:3/0 = 0 +15:3/0/terrain_set = 0 +15:3/0/terrain = 0 +15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +15:3/0/terrains_peering_bit/right_side = 0 +15:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0 = 0 +16:3/0/terrain_set = 0 +16:3/0/terrain = 0 +16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.63726044, -16, -1.2745228) +16:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0/terrains_peering_bit/left_side = 0 +0:4/0 = 0 +0:4/0/terrain_set = 0 +0:4/0/terrain = 0 +0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:4/0/terrains_peering_bit/right_side = 0 +1:4/0 = 0 +1:4/0/terrain_set = 0 +1:4/0/terrain = 0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:4/0/terrains_peering_bit/right_side = 0 +1:4/0/terrains_peering_bit/left_side = 0 +2:4/0 = 0 +2:4/0/terrain_set = 0 +2:4/0/terrain = 0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:4/0/terrains_peering_bit/left_side = 0 +4:4/0 = 0 +4:4/0/terrain_set = 0 +4:4/0/terrain = 0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:4/0 = 0 +6:4/0/terrain_set = 0 +6:4/0/terrain = 0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0.31863022, -16, 0.95589066, 16, -16, 16) +6:4/0/terrains_peering_bit/right_side = 0 +6:4/0/terrains_peering_bit/bottom_right_corner = 0 +6:4/0/terrains_peering_bit/bottom_side = 0 +6:4/0/terrains_peering_bit/top_side = 0 +7:4/0 = 0 +7:4/0/terrain_set = 0 +7:4/0/terrain = 0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(1.5931549, -16, 16, -16, 16, 16, 1.2745209, 16) +7:4/0/terrains_peering_bit/bottom_side = 0 +7:4/0/terrains_peering_bit/bottom_left_corner = 0 +7:4/0/terrains_peering_bit/left_side = 0 +7:4/0/terrains_peering_bit/top_side = 0 +9:4/0 = 0 +9:4/0/terrain_set = 0 +9:4/0/terrain = 0 +9:4/0/terrains_peering_bit/right_side = 0 +9:4/0/terrains_peering_bit/left_side = 0 +9:4/0/terrains_peering_bit/top_left_corner = 0 +9:4/0/terrains_peering_bit/top_side = 0 +10:4/0 = 0 +10:4/0/terrain_set = 0 +10:4/0/terrain = 0 +10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 2.2304153, -16, 1.5931549, -2.2304153, -16, -1.2745228) +10:4/0/terrains_peering_bit/right_side = 0 +10:4/0/terrains_peering_bit/left_side = 0 +10:4/0/terrains_peering_bit/top_side = 0 +10:4/0/terrains_peering_bit/top_right_corner = 0 +12:4/0 = 0 +12:4/0/terrain_set = 0 +12:4/0/terrain = 0 +12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(6.691246, -16, 16, -16, 16, -7.0098763, 5.7353516, -8.284399) +12:4/0/terrains_peering_bit/right_side = 0 +12:4/0/terrains_peering_bit/left_side = 0 +12:4/0/terrains_peering_bit/top_side = 0 +13:4/0 = 0 +13:4/0/terrain_set = 0 +13:4/0/terrain = 0 +13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -3.186308, -16, -4.4608307, -6.372616, -16, -6.0539837) +13:4/0/terrains_peering_bit/bottom_side = 0 +13:4/0/terrains_peering_bit/left_side = 0 +13:4/0/terrains_peering_bit/top_side = 0 +15:4/0 = 0 +15:4/0/terrain_set = 0 +15:4/0/terrain = 0 +15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(6.691246, -16, 16, -16, 16, -7.0098763, 5.7353516, -8.284399) +15:4/0/terrains_peering_bit/right_side = 0 +15:4/0/terrains_peering_bit/top_side = 0 +16:4/0 = 0 +16:4/0/terrain_set = 0 +16:4/0/terrain = 0 +16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -3.186308, -16, -4.4608307, -6.372616, -16, -6.0539837) +16:4/0/terrains_peering_bit/left_side = 0 +16:4/0/terrains_peering_bit/top_side = 0 + +[sub_resource type="TileSet" id="TileSet_02mmc"] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "LeafyDirt" +terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) +sources/0 = SubResource("TileSetAtlasSource_8ifkp") + +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_elsnr"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_bj22s"] +radius = 20.880613 + +[node name="GameNode" type="Node2D" unique_id=2127085168] +position = Vector2(0, -1) + +[node name="SceneManager" type="Node2D" parent="." unique_id=1765894074] +unique_name_in_owner = true +script = ExtResource("1_6lxtr") + +[node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=319520244] +tile_map_data = PackedByteArray("AAADAAwAAAAAAAQAAAAEAAwAAAABAAQAAAAFAAwAAAABAAQAAAAGAAwAAAABAAQAAAAHAAwAAAABAAQAAAAIAAwAAAABAAQAAAAJAAwAAAABAAQAAAAKAAwAAAACAAQAAAAnAA4AAAAQAAQAAAAnAA0AAAAEAAEAAAAnAAwAAAAEAAEAAAAnAAsAAAAEAAEAAAAnAAoAAAAEAAAAAAD//w0AAAAEAAEAAAD//wwAAAAEAAEAAAD//wsAAAAEAAEAAAD//woAAAAEAAEAAAD//wkAAAAEAAEAAAD//wgAAAAEAAEAAAD//wcAAAAEAAEAAAD//wYAAAAEAAAAAAAiAA4AAAABAAQAAAAjAA4AAAABAAQAAAAkAA4AAAABAAQAAAAlAA4AAAABAAQAAAAgAA4AAAABAAQAAAAhAA4AAAABAAQAAAAAAA4AAAABAAQAAAABAA4AAAABAAQAAAACAA4AAAABAAQAAAADAA4AAAABAAQAAAAEAA4AAAABAAQAAAAFAA4AAAABAAQAAAAGAA4AAAABAAQAAAAHAA4AAAABAAQAAAAIAA4AAAABAAQAAAAJAA4AAAABAAQAAAAKAA4AAAABAAQAAAALAA4AAAABAAQAAAAMAA4AAAABAAQAAAANAA4AAAABAAQAAAAOAA4AAAABAAQAAAAPAA4AAAABAAQAAAAQAA4AAAABAAQAAAARAA4AAAABAAQAAAASAA4AAAABAAQAAAATAA4AAAABAAQAAAAUAA4AAAABAAQAAAAVAA4AAAABAAQAAAAWAA4AAAABAAQAAAAXAA4AAAABAAQAAAAYAA4AAAABAAQAAAAZAA4AAAABAAQAAAAaAA4AAAABAAQAAAAbAA4AAAABAAQAAAAcAA4AAAABAAQAAAAdAA4AAAABAAQAAAAeAA4AAAABAAQAAAAfAA4AAAABAAQAAAAmAA4AAAABAAQAAAAZAAwAAAAEAAQAAAADAAoAAAACAAQAAAACAAoAAAAPAAQAAAACAAkAAAAEAAAAAAD//w4AAAAPAAQAAAAEAAcAAAAEAAQAAAAHAAUAAAAAAAQAAAAIAAUAAAACAAQAAAAMAAUAAAAAAAQAAAANAAUAAAABAAQAAAAOAAUAAAACAAQAAAASAAUAAAAAAAQAAAATAAUAAAABAAQAAAAUAAUAAAABAAQAAAAVAAUAAAACAAQAAAAZAAUAAAAAAAQAAAAaAAUAAAABAAQAAAAbAAUAAAACAAQAAAAeAAUAAAAAAAQAAAAfAAUAAAABAAQAAAAgAAUAAAACAAQAAAA=") +tile_set = SubResource("TileSet_02mmc") + +[node name="worldFloor" type="StaticBody2D" parent="." unique_id=376228153] +position = Vector2(446, 437) +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="worldFloor" unique_id=1759461926] +position = Vector2(5, 12) +shape = SubResource("WorldBoundaryShape2D_elsnr") + +[node name="player" parent="." unique_id=395957349 instance=ExtResource("3_5mhml")] +position = Vector2(555, 272) + +[node name="area" type="Area2D" parent="." unique_id=2033836703] +position = Vector2(638, 351) +script = ExtResource("4_rupth") +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="area" unique_id=39441311] +shape = SubResource("CircleShape2D_bj22s") +debug_color = Color(0.37550476, 0.5048963, 0.9171919, 0.41960785) + +[node name="crates" type="Node2D" parent="." unique_id=1870478446] + +[node name="brownBox" parent="crates" unique_id=143097810 instance=ExtResource("5_6qt4k")] +position = Vector2(193, 319) + +[node name="brownBox2" parent="crates" unique_id=1038663129 instance=ExtResource("5_6qt4k")] +position = Vector2(443, 122) + +[node name="brownBox4" parent="crates" unique_id=1193856484 instance=ExtResource("5_6qt4k")] +position = Vector2(648, 104) + +[node name="brownBox5" parent="crates" unique_id=2032058715 instance=ExtResource("5_6qt4k")] +position = Vector2(1022, 105) + +[node name="brownBox3" parent="crates" unique_id=170891935 instance=ExtResource("5_6qt4k")] +position = Vector2(860, 102) + +[connection signal="body_entered" from="area" to="area" method="_on_body_entered"] +[connection signal="triggerActiveSignal" from="area" to="." method="_on_area_2d_trigger_active_signal"] diff --git a/scenes/slime.tscn b/scenes/slime.tscn new file mode 100644 index 0000000..37e98e6 --- /dev/null +++ b/scenes/slime.tscn @@ -0,0 +1,72 @@ +[gd_scene format=3 uid="uid://dvdwk2je7ryqr"] + +[ext_resource type="Texture2D" uid="uid://djv2eq1plqe0l" path="res://assets/graphics/enemies/slime_purple.png" id="1_2d52u"] +[ext_resource type="Script" uid="uid://bl1mwmhvr6pcx" path="res://scripts/slime.gd" id="1_5jc4t"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_5jc4t"] +atlas = ExtResource("1_2d52u") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4l1t8"] +atlas = ExtResource("1_2d52u") +region = Rect2(24, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ppcr1"] +atlas = ExtResource("1_2d52u") +region = Rect2(48, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jayke"] +atlas = ExtResource("1_2d52u") +region = Rect2(72, 24, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_2002g"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5jc4t") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4l1t8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ppcr1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jayke") +}], +"loop": true, +"name": &"idle", +"speed": 12.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_2d52u"] +size = Vector2(14, 17) + +[node name="Slime" type="Area2D" unique_id=135907236] +script = ExtResource("1_5jc4t") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=2029633077] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_2002g") +animation = &"idle" +autoplay = "idle" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=268815028] +position = Vector2(0, 3.5) +shape = SubResource("RectangleShape2D_2d52u") + +[node name="LeftCast" type="RayCast2D" parent="." unique_id=2013394798] +target_position = Vector2(-12, -1) + +[node name="RightCast" type="RayCast2D" parent="." unique_id=1349591507] +target_position = Vector2(12, 0) + +[node name="LeftDownCast" type="RayCast2D" parent="." unique_id=1338357928] +position = Vector2(-7, 0) +target_position = Vector2(0, 16) + +[node name="RightDownCast" type="RayCast2D" parent="." unique_id=89217587] +position = Vector2(7, 0) +target_position = Vector2(0, 16) + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scripts/game_controller.gd b/scripts/game_controller.gd index 8f6f1d8..6b6eab7 100644 --- a/scripts/game_controller.gd +++ b/scripts/game_controller.gd @@ -1,10 +1,41 @@ -class_name GameController extends Node2D +extends Node2D signal destroy(body) +signal level_change_signal(level) + +var levels = ["res://scenes/level1.tscn","res://scenes/level2.tscn","res://scenes/level3.tscn"] +var current_level_index = 0 +var level_times = [15,20,25] +var time_available = 0 + +var timer = Timer.new() +var player:Player; +var enemies = {} func _ready(): get_window().grab_focus() # Replace with function body. + reset() + add_child(timer) + timer.wait_time = 1 + timer.one_shot = false + timer.connect("timeout", timer_tick) + timer.start() + +func timer_tick(): + time_available -= 1 + if time_available <= 0: + print("you lose") + level_change_signal.emit(levels[current_level_index]) + reset() +func reset(): + time_available = level_times[current_level_index] + if player: + player.health = 5 + +func stop(): + timer.stop() + func _process(delta): pass @@ -16,6 +47,29 @@ func _on_area_2d_trigger_active_signal(body, intentMessage): var crate_num : int = 0 func set_crate_num(count: int): crate_num = count - print("number of crates: " + str(crate_num)) + # print("number of crates: " + str(crate_num)) if crate_num <= 0: - print("You Win!") + current_level_index += 1 + if current_level_index == levels.size(): + print("You Win!") + stop() + else: + level_change_signal.emit(levels[current_level_index]) + reset() + +func _on_slime_damage(body, slime): + print("game controller sees slime damage") + player.health -= enemies[slime]["damage"] + if player.health <= 0: + print("dead") + level_change_signal.emit(levels[current_level_index]) + +func add_enemy(slime): + var enemy_stat = { + "health": 5, + "damage": 3 + } + enemies[slime] = enemy_stat + +func _on_slime_struck(body, slime): + print("game controller sees slime struck") diff --git a/scripts/player.gd b/scripts/player.gd index d4e4f8a..09032d5 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -6,6 +6,8 @@ class_name Player extends CharacterBody2D @onready var right_marker: Marker2D = $right_marker @onready var graphic: AnimatedSprite2D = $graphic +signal new_player(player) + const SPEED = 300.0 const JUMP_VELOCITY = -400.0 var direction : float = 0 @@ -15,6 +17,10 @@ var shove_target: RigidBody2D enum State { IDLE, RUN, JUMP, APEX, FALL } var state: State = State.IDLE var up_jump:bool = false +var health:int = 4 + +func _ready(): + new_player.emit(self) func _physics_process(delta: float): handle_input() diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index b7b04bd..47d070b 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -1,12 +1,14 @@ class_name SceneManager extends Node2D -@onready var game_node: Node2D = $".." @onready var crates: Node2D = $"../crates" var grenade = preload("res://scenes/grenade.tscn") +@onready var enemies = $"../Enemies" +@onready var player = $"../player" func _ready() -> void: print("scene manager is ready") - game_node.destroy.connect(destroy) + GameController.destroy.connect(destroy) + GameController.level_change_signal.connect(change_scene) build_level() func _process(delta: float) -> void: @@ -14,6 +16,21 @@ func _process(delta: float) -> void: func build_level() -> void: update_crates() + if enemies: + update_enemies() + if player: + GameController.player = player + +func update_enemies(): + for enemy in enemies.get_children(): + if not enemy.slime_damage.is_connected(GameController._on_slime_damage): + enemy.slime_damage.connect(GameController._on_slime_damage) + enemy.slime_struck.connect(GameController._on_slime_struck) + GameController.add_enemy(enemy) + +func change_scene(level): + print("changing scene to ", level) + get_tree().call_deferred("change_scene_to_file", level) func make_grenade(grenade_pos: Transform2D, grenade_dir: int) -> void: print("scene manager making grenade") @@ -30,7 +47,7 @@ func update_crates() -> void: if not obj.tree_exited.is_connected(update_crates): obj.tree_exited.connect(update_crates) crate_total += 1 - game_node.set_crate_num(crate_total) + GameController.set_crate_num(crate_total) func destroy(body): if body is BrownBox: diff --git a/scripts/slime.gd b/scripts/slime.gd new file mode 100644 index 0000000..1ff937d --- /dev/null +++ b/scripts/slime.gd @@ -0,0 +1,41 @@ +class_name Slime extends Area2D + +@onready var animated_sprite_2d = $AnimatedSprite2D +@onready var left_cast = $LeftCast +@onready var right_cast = $RightCast +@onready var left_down_cast = $LeftDownCast +@onready var right_down_cast = $RightDownCast + +signal slime_damage(body, slime) +signal slime_struck(body, slime) + +var speed:int = 100 +var direction = 1 + +func _ready(): + pass + +func turn_right(): + direction = 1 + animated_sprite_2d.flip_h = false + +func turn_left(): + direction = -1 + animated_sprite_2d.flip_h = true + +func _process(delta: float): + if right_cast.is_colliding() and not right_cast.get_collider() is Player: + turn_left() + elif left_cast.is_colliding() and not left_cast.get_collider() is Player: + turn_right() + if not right_down_cast.is_colliding(): + turn_left() + elif not left_down_cast.is_colliding(): + turn_right() + position.x += direction*speed*delta + +func _on_body_entered(body): + if body is Player: + slime_damage.emit(body, self) + if body is Grenade: + slime_struck.emit(body, self) diff --git a/scripts/slime.gd.uid b/scripts/slime.gd.uid new file mode 100644 index 0000000..c5b7c9d --- /dev/null +++ b/scripts/slime.gd.uid @@ -0,0 +1 @@ +uid://bl1mwmhvr6pcx