added multiple levels, added slime and player damage and death

This commit is contained in:
edgul 2026-05-25 21:03:17 -04:00
parent 293f106379
commit 3a76ac8145
12 changed files with 1109 additions and 14 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -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

View File

@ -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

View File

@ -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"]

426
scenes/level2.tscn Normal file
View File

@ -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"]

426
scenes/level3.tscn Normal file
View File

@ -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"]

72
scenes/slime.tscn Normal file
View File

@ -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"]

View File

@ -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")

View File

@ -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()

View File

@ -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:

41
scripts/slime.gd Normal file
View File

@ -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)

1
scripts/slime.gd.uid Normal file
View File

@ -0,0 +1 @@
uid://bl1mwmhvr6pcx