enemies, multi levels

This commit is contained in:
OddlyTimbot 2026-05-25 21:03:43 -04:00
parent b40dad2de0
commit fd6ad5e001
12 changed files with 1119 additions and 12 deletions

View File

@ -1,12 +1,12 @@
[gd_scene format=4 uid="uid://b06dlp8n6upld"] [gd_scene format=4 uid="uid://b06dlp8n6upld"]
[ext_resource type="Script" uid="uid://bc25u4w35ibeu" path="res://Scripts/gameController.gd" id="1_qxrlw"]
[ext_resource type="PackedScene" uid="uid://d16epxgmccvkp" path="res://Scenes/crate.tscn" id="2_3dryh"] [ext_resource type="PackedScene" uid="uid://d16epxgmccvkp" path="res://Scenes/crate.tscn" id="2_3dryh"]
[ext_resource type="Script" uid="uid://cnm7tj6umtwtm" path="res://Scripts/scene_manager.gd" id="2_wowpa"] [ext_resource type="Script" uid="uid://cnm7tj6umtwtm" path="res://Scripts/scene_manager.gd" id="2_wowpa"]
[ext_resource type="Texture2D" uid="uid://q2ktev3ckkmp" path="res://assets/graphics/environments/Terrain (32x32).png" id="3_1l0tm"] [ext_resource type="Texture2D" uid="uid://q2ktev3ckkmp" path="res://assets/graphics/environments/Terrain (32x32).png" id="3_1l0tm"]
[ext_resource type="PackedScene" uid="uid://caa73phf3ng5m" path="res://Scenes/player.tscn" id="3_wowpa"] [ext_resource type="PackedScene" uid="uid://caa73phf3ng5m" path="res://Scenes/player.tscn" id="3_wowpa"]
[ext_resource type="Script" uid="uid://4hekg0d8n04f" path="res://Scripts/trigger.gd" id="3_wrm1d"] [ext_resource type="Script" uid="uid://4hekg0d8n04f" path="res://Scripts/trigger.gd" id="3_wrm1d"]
[ext_resource type="PackedScene" uid="uid://dotmw0uwnqv6w" path="res://Scenes/grenade.tscn" id="6_i6g32"] [ext_resource type="PackedScene" uid="uid://dotmw0uwnqv6w" path="res://Scenes/grenade.tscn" id="6_i6g32"]
[ext_resource type="PackedScene" uid="uid://rn1d2w3p88sr" path="res://Scenes/slime.tscn" id="7_1l0tm"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_v158k"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_v158k"]
texture = ExtResource("3_1l0tm") texture = ExtResource("3_1l0tm")
@ -14,12 +14,14 @@ texture_region_size = Vector2i(32, 32)
0:0/0 = 0 0:0/0 = 0
0:0/0/terrain_set = 0 0:0/0/terrain_set = 0
0:0/0/terrain = 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/right_side = 0
0:0/0/terrains_peering_bit/bottom_right_corner = 0 0:0/0/terrains_peering_bit/bottom_right_corner = 0
0:0/0/terrains_peering_bit/bottom_side = 0 0:0/0/terrains_peering_bit/bottom_side = 0
1:0/0 = 0 1:0/0 = 0
1:0/0/terrain_set = 0 1:0/0/terrain_set = 0
1:0/0/terrain = 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/right_side = 0
1:0/0/terrains_peering_bit/bottom_right_corner = 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_side = 0
@ -28,12 +30,14 @@ texture_region_size = Vector2i(32, 32)
2:0/0 = 0 2:0/0 = 0
2:0/0/terrain_set = 0 2:0/0/terrain_set = 0
2:0/0/terrain = 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_side = 0
2:0/0/terrains_peering_bit/bottom_left_corner = 0 2:0/0/terrains_peering_bit/bottom_left_corner = 0
2:0/0/terrains_peering_bit/left_side = 0 2:0/0/terrains_peering_bit/left_side = 0
4:0/0 = 0 4:0/0 = 0
4:0/0/terrain_set = 0 4:0/0/terrain_set = 0
4:0/0/terrain = 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 4:0/0/terrains_peering_bit/bottom_side = 0
6:0/0 = 0 6:0/0 = 0
6:0/0/terrain_set = 0 6:0/0/terrain_set = 0
@ -99,6 +103,7 @@ texture_region_size = Vector2i(32, 32)
0:1/0 = 0 0:1/0 = 0
0:1/0/terrain_set = 0 0:1/0/terrain_set = 0
0:1/0/terrain = 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/right_side = 0
0:1/0/terrains_peering_bit/bottom_right_corner = 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/bottom_side = 0
@ -108,6 +113,7 @@ texture_region_size = Vector2i(32, 32)
2:1/0 = 0 2:1/0 = 0
2:1/0/terrain_set = 0 2:1/0/terrain_set = 0
2:1/0/terrain = 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_side = 0
2:1/0/terrains_peering_bit/bottom_left_corner = 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/left_side = 0
@ -116,6 +122,7 @@ texture_region_size = Vector2i(32, 32)
4:1/0 = 0 4:1/0 = 0
4:1/0/terrain_set = 0 4:1/0/terrain_set = 0
4:1/0/terrain = 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/bottom_side = 0
4:1/0/terrains_peering_bit/top_side = 0 4:1/0/terrains_peering_bit/top_side = 0
6:1/0 = 0 6:1/0 = 0
@ -193,12 +200,14 @@ texture_region_size = Vector2i(32, 32)
0:2/0 = 0 0:2/0 = 0
0:2/0/terrain_set = 0 0:2/0/terrain_set = 0
0:2/0/terrain = 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/right_side = 0
0:2/0/terrains_peering_bit/top_side = 0 0:2/0/terrains_peering_bit/top_side = 0
0:2/0/terrains_peering_bit/top_right_corner = 0 0:2/0/terrains_peering_bit/top_right_corner = 0
1:2/0 = 0 1:2/0 = 0
1:2/0/terrain_set = 0 1:2/0/terrain_set = 0
1:2/0/terrain = 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/right_side = 0
1:2/0/terrains_peering_bit/left_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_left_corner = 0
@ -207,12 +216,14 @@ texture_region_size = Vector2i(32, 32)
2:2/0 = 0 2:2/0 = 0
2:2/0/terrain_set = 0 2:2/0/terrain_set = 0
2:2/0/terrain = 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/left_side = 0
2:2/0/terrains_peering_bit/top_left_corner = 0 2:2/0/terrains_peering_bit/top_left_corner = 0
2:2/0/terrains_peering_bit/top_side = 0 2:2/0/terrains_peering_bit/top_side = 0
4:2/0 = 0 4:2/0 = 0
4:2/0/terrain_set = 0 4:2/0/terrain_set = 0
4:2/0/terrain = 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 4:2/0/terrains_peering_bit/top_side = 0
6:3/0 = 0 6:3/0 = 0
6:3/0/terrain_set = 0 6:3/0/terrain_set = 0
@ -233,6 +244,7 @@ texture_region_size = Vector2i(32, 32)
9:3/0 = 0 9:3/0 = 0
9:3/0/terrain_set = 0 9:3/0/terrain_set = 0
9:3/0/terrain = 0 9:3/0/terrain = 0
9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 1.2745247, -16, 2.2304153)
9:3/0/terrains_peering_bit/right_side = 0 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_side = 0
9:3/0/terrains_peering_bit/bottom_left_corner = 0 9:3/0/terrains_peering_bit/bottom_left_corner = 0
@ -240,6 +252,7 @@ texture_region_size = Vector2i(32, 32)
10:3/0 = 0 10:3/0 = 0
10:3/0/terrain_set = 0 10:3/0/terrain_set = 0
10:3/0/terrain = 0 10:3/0/terrain = 0
10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 1.2745247, -16, 2.2304153)
10:3/0/terrains_peering_bit/right_side = 0 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_right_corner = 0
10:3/0/terrains_peering_bit/bottom_side = 0 10:3/0/terrains_peering_bit/bottom_side = 0
@ -247,37 +260,44 @@ texture_region_size = Vector2i(32, 32)
12:3/0 = 0 12:3/0 = 0
12:3/0/terrain_set = 0 12:3/0/terrain_set = 0
12:3/0/terrain = 0 12:3/0/terrain = 0
12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0, -16, -0.63726044, 16, -16, 16)
12:3/0/terrains_peering_bit/right_side = 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/bottom_side = 0
12:3/0/terrains_peering_bit/top_side = 0 12:3/0/terrains_peering_bit/top_side = 0
13:3/0 = 0 13:3/0 = 0
13:3/0/terrain_set = 0 13:3/0/terrain_set = 0
13:3/0/terrain = 0 13:3/0/terrain = 0
13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 0, -16, 0)
13:3/0/terrains_peering_bit/right_side = 0 13:3/0/terrains_peering_bit/right_side = 0
13:3/0/terrains_peering_bit/bottom_side = 0 13:3/0/terrains_peering_bit/bottom_side = 0
13:3/0/terrains_peering_bit/left_side = 0 13:3/0/terrains_peering_bit/left_side = 0
15:3/0 = 0 15:3/0 = 0
15:3/0/terrain_set = 0 15:3/0/terrain_set = 0
15:3/0/terrain = 0 15:3/0/terrain = 0
15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:3/0/terrains_peering_bit/right_side = 0 15:3/0/terrains_peering_bit/right_side = 0
15:3/0/terrains_peering_bit/bottom_side = 0 15:3/0/terrains_peering_bit/bottom_side = 0
16:3/0 = 0 16:3/0 = 0
16:3/0/terrain_set = 0 16:3/0/terrain_set = 0
16:3/0/terrain = 0 16:3/0/terrain = 0
16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
16:3/0/terrains_peering_bit/bottom_side = 0 16:3/0/terrains_peering_bit/bottom_side = 0
16:3/0/terrains_peering_bit/left_side = 0 16:3/0/terrains_peering_bit/left_side = 0
0:4/0 = 0 0:4/0 = 0
0:4/0/terrain_set = 0 0:4/0/terrain_set = 0
0:4/0/terrain = 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 0:4/0/terrains_peering_bit/right_side = 0
1:4/0 = 0 1:4/0 = 0
1:4/0/terrain_set = 0 1:4/0/terrain_set = 0
1:4/0/terrain = 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/right_side = 0
1:4/0/terrains_peering_bit/left_side = 0 1:4/0/terrains_peering_bit/left_side = 0
2:4/0 = 0 2:4/0 = 0
2:4/0/terrain_set = 0 2:4/0/terrain_set = 0
2:4/0/terrain = 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 2:4/0/terrains_peering_bit/left_side = 0
4:4/0 = 0 4:4/0 = 0
4:4/0/terrain_set = 0 4:4/0/terrain_set = 0
@ -302,6 +322,7 @@ texture_region_size = Vector2i(32, 32)
9:4/0 = 0 9:4/0 = 0
9:4/0/terrain_set = 0 9:4/0/terrain_set = 0
9:4/0/terrain = 0 9:4/0/terrain = 0
9:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 2.8676758, 16, 2.8676758, 16, 16, -16, 16)
9:4/0/terrains_peering_bit/right_side = 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/left_side = 0
9:4/0/terrains_peering_bit/top_left_corner = 0 9:4/0/terrains_peering_bit/top_left_corner = 0
@ -309,6 +330,7 @@ texture_region_size = Vector2i(32, 32)
10:4/0 = 0 10:4/0 = 0
10:4/0/terrain_set = 0 10:4/0/terrain_set = 0
10:4/0/terrain = 0 10:4/0/terrain = 0
10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 2.8676758, 16, 2.8676758, 16, 16, -16, 16)
10:4/0/terrains_peering_bit/right_side = 0 10:4/0/terrains_peering_bit/right_side = 0
10:4/0/terrains_peering_bit/left_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_side = 0
@ -316,23 +338,27 @@ texture_region_size = Vector2i(32, 32)
12:4/0 = 0 12:4/0 = 0
12:4/0/terrain_set = 0 12:4/0/terrain_set = 0
12:4/0/terrain = 0 12:4/0/terrain = 0
12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 1.9117851, 16, 1.9117851, 16, 16, -16, 16)
12:4/0/terrains_peering_bit/right_side = 0 12:4/0/terrains_peering_bit/right_side = 0
12:4/0/terrains_peering_bit/left_side = 0 12:4/0/terrains_peering_bit/left_side = 0
12:4/0/terrains_peering_bit/top_side = 0 12:4/0/terrains_peering_bit/top_side = 0
13:4/0 = 0 13:4/0 = 0
13:4/0/terrain_set = 0 13:4/0/terrain_set = 0
13:4/0/terrain = 0 13:4/0/terrain = 0
13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(1.9117851, -16, 16, -16, 16, 16, 1.9117851, 16)
13:4/0/terrains_peering_bit/bottom_side = 0 13:4/0/terrains_peering_bit/bottom_side = 0
13:4/0/terrains_peering_bit/left_side = 0 13:4/0/terrains_peering_bit/left_side = 0
13:4/0/terrains_peering_bit/top_side = 0 13:4/0/terrains_peering_bit/top_side = 0
15:4/0 = 0 15:4/0 = 0
15:4/0/terrain_set = 0 15:4/0/terrain_set = 0
15:4/0/terrain = 0 15:4/0/terrain = 0
15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:4/0/terrains_peering_bit/right_side = 0 15:4/0/terrains_peering_bit/right_side = 0
15:4/0/terrains_peering_bit/top_side = 0 15:4/0/terrains_peering_bit/top_side = 0
16:4/0 = 0 16:4/0 = 0
16:4/0/terrain_set = 0 16:4/0/terrain_set = 0
16:4/0/terrain = 0 16:4/0/terrain = 0
16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
16:4/0/terrains_peering_bit/left_side = 0 16:4/0/terrains_peering_bit/left_side = 0
16:4/0/terrains_peering_bit/top_side = 0 16:4/0/terrains_peering_bit/top_side = 0
@ -353,14 +379,14 @@ size = Vector2(84, 20)
radius = 32.01562 radius = 32.01562
[node name="Game" type="Node2D" unique_id=1698001017] [node name="Game" type="Node2D" unique_id=1698001017]
script = ExtResource("1_qxrlw")
[node name="SceneManager" type="Node2D" parent="." unique_id=1394046756] [node name="SceneManager" type="Node2D" parent="." unique_id=1394046756]
unique_name_in_owner = true unique_name_in_owner = true
script = ExtResource("2_wowpa") script = ExtResource("2_wowpa")
[node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=430528866] [node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=430528866]
tile_map_data = PackedByteArray("AAAKAA4AAAABAAQAAAAIAA4AAAAPAAQAAAAJAA4AAAABAAQAAAALAA4AAAABAAQAAAAMAA4AAAABAAQAAAANAA4AAAABAAQAAAAOAA4AAAABAAQAAAAPAA4AAAABAAQAAAAQAA4AAAAQAAMAAAAMAAkAAAAAAAQAAAANAAkAAAABAAQAAAAOAAkAAAACAAQAAAASAAwAAAACAAQAAAARAAwAAAAAAAQAAAAIAA0AAAAHAAMAAAAHAA0AAAABAAIAAAAGAA0AAAAAAAIAAAAGAAwAAAAAAAEAAAAHAAwAAAAGAAAAAAAHAAsAAAABAAAAAAAIAAwAAAACAAEAAAAIAAsAAAAJAAMAAAAGAAsAAAAAAAAAAAAJAAsAAAACAAQAAAAJAAkAAAACAAQAAAAIAAkAAAABAAQAAAAHAAkAAAAAAAQAAAAQAA8AAAAPAAQAAAARAA8AAAABAAQAAAASAA8AAAAQAAQAAAASAA4AAAAPAAMAAAATAA4AAAABAAQAAAAUAA4AAAAJAAEAAAAUAA0AAAAAAAAAAAAVAA0AAAAHAAEAAAAVAAwAAAAAAAAAAAAWAA0AAAACAAEAAAAWAA4AAAAHAAMAAAAVAA4AAAAGAAAAAAAUAA8AAAAAAAIAAAAVAA8AAAABAAIAAAAWAA8AAAACAAIAAAAWAAwAAAAHAAQAAAAWAAsAAAAEAAAAAAALAAwAAAAEAAQAAAA=") texture_filter = 1
tile_map_data = PackedByteArray("AAALAAwAAAAEAAQAAAAPAA4AAAABAAQAAAAOAA4AAAABAAQAAAANAA4AAAABAAQAAAAMAA4AAAABAAQAAAALAA4AAAABAAQAAAAKAA4AAAABAAQAAAAJAA4AAAABAAQAAAAIAA4AAAAPAAQAAAAIAA0AAAAHAAMAAAAHAA0AAAABAAIAAAAGAA0AAAAAAAIAAAAGAAwAAAAAAAAAAAAHAAwAAAAJAAAAAAAHAAsAAAAEAAAAAAAIAAwAAAACAAAAAAARAAoAAAAEAAIAAAARAAkAAAAPAAMAAAASAAkAAAACAAQAAAAQAA4AAAAKAAQAAAAQAA0AAAAAAAAAAAARAA0AAAABAAAAAAARAA4AAAABAAIAAAASAA4AAAAJAAQAAAASAA0AAAAHAAQAAAASAAwAAAAPAAMAAAATAAwAAAABAAQAAAAUAAwAAAABAAQAAAAVAAwAAAACAAQAAAAVAA4AAAABAAQAAAAWAA4AAAABAAQAAAAUAA4AAAABAAQAAAATAA4AAAABAAQAAAAXAA4AAAAQAAQAAAAXAA0AAAAEAAEAAAAXAAwAAAAEAAEAAAAXAAsAAAAEAAEAAAAXAAoAAAAQAAMAAAAWAAoAAAAAAAQAAAAMAAkAAAAAAAQAAAANAAkAAAABAAQAAAAOAAkAAAACAAQAAAA=")
tile_set = SubResource("TileSet_h4fw4") tile_set = SubResource("TileSet_h4fw4")
[node name="platform" type="StaticBody2D" parent="." unique_id=601020872] [node name="platform" type="StaticBody2D" parent="." unique_id=601020872]
@ -379,7 +405,7 @@ metadata/_edit_group_ = true
shape = SubResource("WorldBoundaryShape2D_2poj3") shape = SubResource("WorldBoundaryShape2D_2poj3")
[node name="Player" parent="." unique_id=1717313761 instance=ExtResource("3_wowpa")] [node name="Player" parent="." unique_id=1717313761 instance=ExtResource("3_wowpa")]
position = Vector2(368, 370) position = Vector2(603, 373)
[node name="Area2D" type="Area2D" parent="." unique_id=1184709580] [node name="Area2D" type="Area2D" parent="." unique_id=1184709580]
position = Vector2(495, 356) position = Vector2(495, 356)
@ -393,7 +419,7 @@ debug_color = Color(0.7716697, 0.28327075, 0.8513461, 0.41960785)
[node name="Crates" type="Node2D" parent="." unique_id=1980240897] [node name="Crates" type="Node2D" parent="." unique_id=1980240897]
[node name="Crate" parent="Crates" unique_id=1338541987 instance=ExtResource("2_3dryh")] [node name="Crate" parent="Crates" unique_id=1338541987 instance=ExtResource("2_3dryh")]
position = Vector2(385, 428) position = Vector2(663, 372)
[node name="Crate2" parent="Crates" unique_id=1931037062 instance=ExtResource("2_3dryh")] [node name="Crate2" parent="Crates" unique_id=1931037062 instance=ExtResource("2_3dryh")]
position = Vector2(436, 433) position = Vector2(436, 433)
@ -404,5 +430,13 @@ position = Vector2(481, 433)
[node name="Grenade" parent="." unique_id=638454305 instance=ExtResource("6_i6g32")] [node name="Grenade" parent="." unique_id=638454305 instance=ExtResource("6_i6g32")]
position = Vector2(400, 375) position = Vector2(400, 375)
[node name="Enemies" type="Node2D" parent="." unique_id=1313944989]
[node name="Slime" parent="Enemies" unique_id=1168851317 instance=ExtResource("7_1l0tm")]
position = Vector2(636, 375)
[node name="Slime2" parent="Enemies" unique_id=689767526 instance=ExtResource("7_1l0tm")]
position = Vector2(546, 406)
[connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"] [connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"]
[connection signal="triggerActiveSignal" from="Area2D" to="." method="_on_triggerSignal"] [connection signal="triggerActiveSignal" from="Area2D" to="." method="_on_triggerSignal"]

422
Scenes/level2.tscn Normal file
View File

@ -0,0 +1,422 @@
[gd_scene format=4 uid="uid://b6ws30gaj0all"]
[ext_resource type="Script" uid="uid://cnm7tj6umtwtm" path="res://Scripts/scene_manager.gd" id="1_styii"]
[ext_resource type="Texture2D" uid="uid://q2ktev3ckkmp" path="res://assets/graphics/environments/Terrain (32x32).png" id="2_lgosu"]
[ext_resource type="PackedScene" uid="uid://caa73phf3ng5m" path="res://Scenes/player.tscn" id="3_mhlpv"]
[ext_resource type="Script" uid="uid://4hekg0d8n04f" path="res://Scripts/trigger.gd" id="4_ng020"]
[ext_resource type="PackedScene" uid="uid://d16epxgmccvkp" path="res://Scenes/crate.tscn" id="5_vn2uo"]
[ext_resource type="PackedScene" uid="uid://dotmw0uwnqv6w" path="res://Scenes/grenade.tscn" id="6_mtqcm"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_v158k"]
texture = ExtResource("2_lgosu")
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
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/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/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.63726044, -16, -0.63726044, 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, 1.2745247, -16, 2.2304153)
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, 1.2745247, -16, 2.2304153)
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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0, -16, -0.63726044, 16, -16, 16)
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, -16, 0)
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, 16, -16, 16)
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, 16, -16, 16)
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.63726044, -16, -0.63726044, 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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 2.8676758, 16, 2.8676758, 16, 16, -16, 16)
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, 2.8676758, 16, 2.8676758, 16, 16, -16, 16)
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(-16, 1.9117851, 16, 1.9117851, 16, 16, -16, 16)
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(1.9117851, -16, 16, -16, 16, 16, 1.9117851, 16)
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(-16, -16, 16, -16, 16, 16, -16, 16)
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, 16, -16, 16, 16, -16, 16)
16:4/0/terrains_peering_bit/left_side = 0
16:4/0/terrains_peering_bit/top_side = 0
[sub_resource type="TileSet" id="TileSet_h4fw4"]
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_v158k")
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_2poj3"]
[sub_resource type="CircleShape2D" id="CircleShape2D_3dryh"]
radius = 32.01562
[node name="Game" type="Node2D" unique_id=1698001017]
[node name="SceneManager" type="Node2D" parent="." unique_id=1394046756]
unique_name_in_owner = true
script = ExtResource("1_styii")
[node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=430528866]
texture_filter = 1
tile_map_data = PackedByteArray("AAALAAwAAAAEAAQAAAAPAA4AAAAKAAQAAAAOAA4AAAABAAQAAAANAA4AAAABAAQAAAAMAA4AAAABAAQAAAALAA4AAAABAAQAAAAKAA4AAAABAAQAAAAJAA4AAAABAAQAAAAIAA4AAAAPAAQAAAAQAA4AAAABAAIAAAASAA4AAAABAAQAAAAVAA4AAAABAAQAAAAWAA4AAAABAAQAAAAUAA4AAAABAAQAAAATAA4AAAABAAQAAAAXAA4AAAACAAQAAAAMAAkAAAAAAAQAAAANAAkAAAABAAQAAAAOAAkAAAACAAQAAAARAA4AAAAJAAQAAAARAA0AAAACAAEAAAAQAA0AAAAHAAEAAAAPAA0AAAAAAAAAAAAQAAwAAAAAAAAAAAARAAwAAAAHAAQAAAARAAsAAAAEAAEAAAARAAoAAAAEAAAAAAAIAA0AAAAHAAMAAAAHAA0AAAABAAIAAAAGAA0AAAAAAAIAAAAGAAwAAAAAAAEAAAAHAAwAAAAGAAAAAAAIAAwAAAACAAEAAAAIAAsAAAACAAAAAAAHAAsAAAABAAAAAAAGAAsAAAAGAAQAAAAGAAoAAAAQAAMAAAAFAAoAAAAAAAQAAAA=")
tile_set = SubResource("TileSet_h4fw4")
[node name="StaticBody2D" type="StaticBody2D" parent="." unique_id=1600506296]
position = Vector2(448, 452)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" unique_id=1926005878]
shape = SubResource("WorldBoundaryShape2D_2poj3")
[node name="Player" parent="." unique_id=1717313761 instance=ExtResource("3_mhlpv")]
position = Vector2(423, 264)
[node name="Area2D" type="Area2D" parent="." unique_id=1184709580]
position = Vector2(73, 308)
script = ExtResource("4_ng020")
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=1623965811]
shape = SubResource("CircleShape2D_3dryh")
debug_color = Color(0.7716697, 0.28327075, 0.8513461, 0.41960785)
[node name="Crates" type="Node2D" parent="." unique_id=1980240897]
[node name="Crate" parent="Crates" unique_id=1338541987 instance=ExtResource("5_vn2uo")]
position = Vector2(385, 428)
[node name="Crate2" parent="Crates" unique_id=1931037062 instance=ExtResource("5_vn2uo")]
position = Vector2(436, 433)
[node name="Crate4" parent="Crates" unique_id=585069069 instance=ExtResource("5_vn2uo")]
position = Vector2(481, 433)
[node name="Grenade" parent="." unique_id=638454305 instance=ExtResource("6_mtqcm")]
position = Vector2(400, 375)
[connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"]
[connection signal="triggerActiveSignal" from="Area2D" to="." method="_on_triggerSignal"]

433
Scenes/level3.tscn Normal file
View File

@ -0,0 +1,433 @@
[gd_scene format=4 uid="uid://bot1a3wn6s4xr"]
[ext_resource type="Script" uid="uid://cnm7tj6umtwtm" path="res://Scripts/scene_manager.gd" id="1_mrxql"]
[ext_resource type="Texture2D" uid="uid://q2ktev3ckkmp" path="res://assets/graphics/environments/Terrain (32x32).png" id="2_qrg6c"]
[ext_resource type="PackedScene" uid="uid://caa73phf3ng5m" path="res://Scenes/player.tscn" id="3_1x0xh"]
[ext_resource type="Script" uid="uid://4hekg0d8n04f" path="res://Scripts/trigger.gd" id="4_h3ll2"]
[ext_resource type="PackedScene" uid="uid://d16epxgmccvkp" path="res://Scenes/crate.tscn" id="5_csbjj"]
[ext_resource type="PackedScene" uid="uid://dotmw0uwnqv6w" path="res://Scenes/grenade.tscn" id="6_h6p24"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_v158k"]
texture = ExtResource("2_qrg6c")
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
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/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/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.63726044, -16, -0.63726044, 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, 1.2745247, -16, 2.2304153)
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, 1.2745247, -16, 2.2304153)
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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0, -16, -0.63726044, 16, -16, 16)
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, -16, 0)
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, 16, -16, 16)
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, 16, -16, 16)
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.63726044, -16, -0.63726044, 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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 2.8676758, 16, 2.8676758, 16, 16, -16, 16)
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, 2.8676758, 16, 2.8676758, 16, 16, -16, 16)
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(-16, 1.9117851, 16, 1.9117851, 16, 16, -16, 16)
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(1.9117851, -16, 16, -16, 16, 16, 1.9117851, 16)
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(-16, -16, 16, -16, 16, 16, -16, 16)
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, 16, -16, 16, 16, -16, 16)
16:4/0/terrains_peering_bit/left_side = 0
16:4/0/terrains_peering_bit/top_side = 0
[sub_resource type="TileSet" id="TileSet_h4fw4"]
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_v158k")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2poj3"]
size = Vector2(84, 20)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_2poj3"]
[sub_resource type="CircleShape2D" id="CircleShape2D_3dryh"]
radius = 32.01562
[node name="Game" type="Node2D" unique_id=1698001017]
[node name="SceneManager" type="Node2D" parent="." unique_id=1394046756]
unique_name_in_owner = true
script = ExtResource("1_mrxql")
[node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=430528866]
texture_filter = 1
tile_map_data = PackedByteArray("AAALAAwAAAAEAAQAAAAPAA4AAAABAAQAAAAOAA4AAAABAAQAAAANAA4AAAABAAQAAAAMAA4AAAABAAQAAAALAA4AAAABAAQAAAAKAA4AAAABAAQAAAAJAA4AAAABAAQAAAAIAA4AAAAPAAQAAAAIAA0AAAAHAAMAAAAHAA0AAAABAAIAAAAGAA0AAAAAAAIAAAAGAAwAAAAAAAAAAAAHAAwAAAAJAAAAAAAHAAsAAAAEAAAAAAAIAAwAAAACAAAAAAARAAoAAAAEAAIAAAARAAkAAAAPAAMAAAASAAkAAAACAAQAAAAQAA4AAAAKAAQAAAAQAA0AAAAAAAAAAAARAA0AAAABAAAAAAARAA4AAAABAAIAAAASAA4AAAAJAAQAAAASAA0AAAAHAAQAAAASAAwAAAAPAAMAAAATAAwAAAABAAQAAAAUAAwAAAABAAQAAAAVAAwAAAACAAQAAAAVAA4AAAABAAQAAAAWAA4AAAABAAQAAAAUAA4AAAABAAQAAAATAA4AAAABAAQAAAAXAA4AAAAQAAQAAAAXAA0AAAAEAAEAAAAXAAwAAAAEAAEAAAAXAAsAAAAEAAEAAAAXAAoAAAAQAAMAAAAWAAoAAAAAAAQAAAAMAAkAAAAAAAQAAAANAAkAAAABAAQAAAAOAAkAAAACAAQAAAA=")
tile_set = SubResource("TileSet_h4fw4")
[node name="platform" type="StaticBody2D" parent="." unique_id=601020872]
position = Vector2(436, 297)
constant_linear_velocity = Vector2(10, 0)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="platform" unique_id=1836025932]
shape = SubResource("RectangleShape2D_2poj3")
[node name="StaticBody2D" type="StaticBody2D" parent="." unique_id=1600506296]
position = Vector2(448, 452)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" unique_id=1926005878]
shape = SubResource("WorldBoundaryShape2D_2poj3")
[node name="Player" parent="." unique_id=1717313761 instance=ExtResource("3_1x0xh")]
position = Vector2(368, 370)
[node name="Area2D" type="Area2D" parent="." unique_id=1184709580]
position = Vector2(495, 356)
script = ExtResource("4_h3ll2")
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=1623965811]
shape = SubResource("CircleShape2D_3dryh")
debug_color = Color(0.7716697, 0.28327075, 0.8513461, 0.41960785)
[node name="Crates" type="Node2D" parent="." unique_id=1980240897]
[node name="Crate" parent="Crates" unique_id=1338541987 instance=ExtResource("5_csbjj")]
position = Vector2(385, 428)
[node name="Crate2" parent="Crates" unique_id=1931037062 instance=ExtResource("5_csbjj")]
position = Vector2(436, 433)
[node name="Crate4" parent="Crates" unique_id=585069069 instance=ExtResource("5_csbjj")]
position = Vector2(481, 433)
[node name="Grenade" parent="." unique_id=638454305 instance=ExtResource("6_h6p24")]
position = Vector2(400, 375)
[connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"]
[connection signal="triggerActiveSignal" from="Area2D" to="." method="_on_triggerSignal"]

74
Scenes/slime.tscn Normal file
View File

@ -0,0 +1,74 @@
[gd_scene format=3 uid="uid://rn1d2w3p88sr"]
[ext_resource type="Texture2D" uid="uid://ca0n01j1v46nw" path="res://assets/graphics/enemies/slime_green.png" id="1_jokqx"]
[ext_resource type="Script" uid="uid://q6eb2oqg3vvo" path="res://Scripts/slime.gd" id="1_swwnm"]
[sub_resource type="AtlasTexture" id="AtlasTexture_swwnm"]
atlas = ExtResource("1_jokqx")
region = Rect2(0, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_aiwxb"]
atlas = ExtResource("1_jokqx")
region = Rect2(24, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_paq7w"]
atlas = ExtResource("1_jokqx")
region = Rect2(48, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_f4si1"]
atlas = ExtResource("1_jokqx")
region = Rect2(72, 24, 24, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_5gljc"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_swwnm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_aiwxb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_paq7w")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f4si1")
}],
"loop": true,
"name": &"idle",
"speed": 12.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vblni"]
size = Vector2(16, 20)
[node name="Slime" type="Area2D" unique_id=1168851317]
script = ExtResource("1_swwnm")
[node name="SlimeGraphic" type="AnimatedSprite2D" parent="." unique_id=1769938307]
texture_filter = 1
position = Vector2(0, -2)
sprite_frames = SubResource("SpriteFrames_5gljc")
animation = &"idle"
autoplay = "idle"
frame = 3
frame_progress = 0.7114095
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=2009862667]
shape = SubResource("RectangleShape2D_vblni")
[node name="RightCast" type="RayCast2D" parent="." unique_id=868987711]
target_position = Vector2(12, 0)
[node name="LeftCast" type="RayCast2D" parent="." unique_id=621078355]
target_position = Vector2(-13, 0)
[node name="LeftDownCast" type="RayCast2D" parent="." unique_id=151977458]
position = Vector2(-7, 0)
target_position = Vector2(0, 13)
[node name="RightDownCast" type="RayCast2D" parent="." unique_id=1343241753]
position = Vector2(7, 0)
target_position = Vector2(0, 13)
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -1,11 +1,40 @@
class_name GameController extends Node2D extends Node2D
signal destroySignal(body) signal destroySignal(body)
signal levelChangeSignal(level)
var levels=["res://Scenes/game.tscn","res://Scenes/level2.tscn","res://Scenes/level3.tscn"]
var currentLevel = 0
var timers=[5,10,15]
var timeAvailable=0
var timer = Timer.new()
#player variables
var playerCurrentHealth:int = 100
#enemies
var enemiesDict = {}
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
get_window().grab_focus() get_window().grab_focus()
reset()
add_child(timer)
timer.wait_time = 1
timer.one_shot = false
timer.connect("timeout", secondCounter)
timer.start()
func secondCounter()->void:
print("tick")
timeAvailable -=1
if timeAvailable <=0:
print("You lose baby!")
levelChangeSignal.emit(levels[currentLevel])
func reset()->void:
timeAvailable = timers[currentLevel]
playerCurrentHealth = 100
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
@ -21,3 +50,24 @@ func totalCrates(numberOfCrates:int)->void:
print("GC knows total crates: "+str(numberOfCrates)) print("GC knows total crates: "+str(numberOfCrates))
if numberOfCrates <=0: if numberOfCrates <=0:
print("You WON!!!!") print("You WON!!!!")
currentLevel +=1
if currentLevel >= levels.size():
currentLevel = 0
levelChangeSignal.emit(levels[currentLevel])
func _on_slime_damage(_body,slime)->void:
print("GC knows slime doing damage")
print("Doing damage: "+str(enemiesDict[slime]["damage"]))
playerCurrentHealth -= enemiesDict[slime]["damage"]
if playerCurrentHealth <=0:
print("U ded")
levelChangeSignal.emit(levels[currentLevel])
func addEnemyToLevel(slime)->void:
#give each enemy some health and damage
var randamage = randi_range(1,20)
var enemyStat = {
"health": 50,
"damage": 30+randamage
}
enemiesDict[slime]=enemyStat

View File

@ -70,13 +70,13 @@ func handle_movement(delta)->void:
velocity.x = move_toward(velocity.x, 0, SPEED) velocity.x = move_toward(velocity.x, 0, SPEED)
func handle_collisions()->void: func handle_collisions()->void:
if right_cast.is_colliding() and facing==FaceDirection.RIGHT: if right_cast.is_colliding() and facing==FaceDirection.RIGHT and right_cast.get_collider() is RigidBody2D:
print("Right raycast contact!!") print("Right raycast contact!!")
pushEnabled = true pushEnabled = true
var collider = right_cast.get_collider() var collider = right_cast.get_collider()
pushTarget = collider pushTarget = collider
if left_cast.is_colliding() and facing==FaceDirection.LEFT: if left_cast.is_colliding() and facing==FaceDirection.LEFT and left_cast.get_collider() is RigidBody2D:
print("Left raycast contact!!") print("Left raycast contact!!")
pushEnabled = true pushEnabled = true
var collider = left_cast.get_collider() var collider = left_cast.get_collider()

View File

@ -1,11 +1,13 @@
class_name SceneManager extends Node2D class_name SceneManager extends Node2D
@onready var game: Node2D = $".."
@onready var crates: Node2D = $"../Crates" @onready var crates: Node2D = $"../Crates"
var grenade = preload("res://Scenes/grenade.tscn") var grenade = preload("res://Scenes/grenade.tscn")
@onready var enemies: Node2D = $"../Enemies"
func _ready() -> void: func _ready() -> void:
GameController.reset()
print("Scene manager is ready!") print("Scene manager is ready!")
game.destroySignal.connect(destroy) GameController.destroySignal.connect(destroy)
GameController.levelChangeSignal.connect(changeScene)
buildLevel() buildLevel()
func destroy(body)->void: func destroy(body)->void:
@ -14,7 +16,18 @@ func destroy(body)->void:
func buildLevel()->void: func buildLevel()->void:
updateCrates() updateCrates()
if enemies:
updateEnemies()
func updateEnemies()->void:
var totalEnemies = 0
for obj in enemies.get_children():
if obj is Slime:
totalEnemies +=1
#hook up signals
if not obj.slimeDamageSignal.is_connected(GameController._on_slime_damage):
obj.slimeDamageSignal.connect(GameController._on_slime_damage)
GameController.addEnemyToLevel(obj)
func updateCrates()->void: func updateCrates()->void:
#is there a crate holder? #is there a crate holder?
var _crateTotal:int = 0 var _crateTotal:int = 0
@ -25,7 +38,7 @@ func updateCrates()->void:
obj.tree_exited.connect(updateCrates) obj.tree_exited.connect(updateCrates)
_crateTotal +=1 _crateTotal +=1
print("Number of crates: "+str(_crateTotal)) print("Number of crates: "+str(_crateTotal))
game.totalCrates(_crateTotal) GameController.totalCrates(_crateTotal)
func makeGrenade(_grenadePosition, _grenadeDirection)->void: func makeGrenade(_grenadePosition, _grenadeDirection)->void:
print("SM wants to make a grenade") print("SM wants to make a grenade")
@ -34,3 +47,6 @@ func makeGrenade(_grenadePosition, _grenadeDirection)->void:
myGrenade.transform = _grenadePosition myGrenade.transform = _grenadePosition
myGrenade.apply_central_impulse(Vector2(_grenadeDirection,-1)*200) myGrenade.apply_central_impulse(Vector2(_grenadeDirection,-1)*200)
func changeScene(level)->void:
print("SM wants to change scene "+level)
get_tree().call_deferred("change_scene_to_file",level)

33
Scripts/slime.gd Normal file
View File

@ -0,0 +1,33 @@
class_name Slime extends Area2D
@onready var slime_graphic: AnimatedSprite2D = $SlimeGraphic
@onready var right_cast: RayCast2D = $RightCast
@onready var left_cast: RayCast2D = $LeftCast
@onready var left_down_cast: RayCast2D = $LeftDownCast
@onready var right_down_cast: RayCast2D = $RightDownCast
signal slimeDamageSignal(body, slime)
var speed:int = 100
var direction = 1
func _process(delta: float) -> void:
#raycast detection
if right_cast.is_colliding() and not right_cast.get_collider() is Player:
direction = -1
slime_graphic.flip_h = true
if left_cast.is_colliding() and not left_cast.get_collider() is Player:
direction = 1
slime_graphic.flip_h = false
if not right_down_cast.is_colliding():
direction = -1
slime_graphic.flip_h = true
if not left_down_cast.is_colliding():
direction = 1
slime_graphic.flip_h = false
position.x += direction*speed*delta
func _on_body_entered(body: Node2D) -> void:
if body is Player:
slimeDamageSignal.emit(body, self)

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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ca0n01j1v46nw"
path="res://.godot/imported/slime_green.png-5261ffd1254c816fe62b35227a9aa11d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/enemies/slime_green.png"
dest_files=["res://.godot/imported/slime_green.png-5261ffd1254c816fe62b35227a9aa11d.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://b06dlp8n6upld"
config/features=PackedStringArray("4.6", "Forward Plus") config/features=PackedStringArray("4.6", "Forward Plus")
config/icon="res://icon.svg" config/icon="res://icon.svg"
[autoload]
GameController="*uid://bc25u4w35ibeu"
[display] [display]
window/size/viewport_width=480 window/size/viewport_width=480