From fd6ad5e0018021058841720b87da9d211d9f0aa5 Mon Sep 17 00:00:00 2001 From: OddlyTimbot Date: Mon, 25 May 2026 21:03:43 -0400 Subject: [PATCH] enemies, multi levels --- Scenes/game.tscn | 44 +- Scenes/level2.tscn | 422 +++++++++++++++++ Scenes/level3.tscn | 433 ++++++++++++++++++ Scenes/slime.tscn | 74 +++ Scripts/gameController.gd | 52 ++- Scripts/player.gd | 4 +- Scripts/scene_manager.gd | 24 +- Scripts/slime.gd | 33 ++ Scripts/slime.gd.uid | 1 + assets/graphics/enemies/slime_green.png | Bin 0 -> 908 bytes .../graphics/enemies/slime_green.png.import | 40 ++ project.godot | 4 + 12 files changed, 1119 insertions(+), 12 deletions(-) create mode 100644 Scenes/level2.tscn create mode 100644 Scenes/level3.tscn create mode 100644 Scenes/slime.tscn create mode 100644 Scripts/slime.gd create mode 100644 Scripts/slime.gd.uid create mode 100644 assets/graphics/enemies/slime_green.png create mode 100644 assets/graphics/enemies/slime_green.png.import diff --git a/Scenes/game.tscn b/Scenes/game.tscn index 95d3299..bd46077 100644 --- a/Scenes/game.tscn +++ b/Scenes/game.tscn @@ -1,12 +1,12 @@ [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="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="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="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"] texture = ExtResource("3_1l0tm") @@ -14,12 +14,14 @@ 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 @@ -28,12 +30,14 @@ texture_region_size = Vector2i(32, 32) 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 @@ -99,6 +103,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 @@ -108,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 @@ -116,6 +122,7 @@ texture_region_size = Vector2i(32, 32) 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 @@ -193,12 +200,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 @@ -207,12 +216,14 @@ 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 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 @@ -233,6 +244,7 @@ texture_region_size = Vector2i(32, 32) 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 @@ -240,6 +252,7 @@ texture_region_size = Vector2i(32, 32) 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 @@ -247,37 +260,44 @@ texture_region_size = Vector2i(32, 32) 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 @@ -302,6 +322,7 @@ texture_region_size = Vector2i(32, 32) 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 @@ -309,6 +330,7 @@ texture_region_size = Vector2i(32, 32) 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 @@ -316,23 +338,27 @@ texture_region_size = Vector2i(32, 32) 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 @@ -353,14 +379,14 @@ size = Vector2(84, 20) radius = 32.01562 [node name="Game" type="Node2D" unique_id=1698001017] -script = ExtResource("1_qxrlw") [node name="SceneManager" type="Node2D" parent="." unique_id=1394046756] unique_name_in_owner = true script = ExtResource("2_wowpa") [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") [node name="platform" type="StaticBody2D" parent="." unique_id=601020872] @@ -379,7 +405,7 @@ metadata/_edit_group_ = true shape = SubResource("WorldBoundaryShape2D_2poj3") [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] 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="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")] position = Vector2(436, 433) @@ -404,5 +430,13 @@ position = Vector2(481, 433) [node name="Grenade" parent="." unique_id=638454305 instance=ExtResource("6_i6g32")] 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="triggerActiveSignal" from="Area2D" to="." method="_on_triggerSignal"] diff --git a/Scenes/level2.tscn b/Scenes/level2.tscn new file mode 100644 index 0000000..387acb4 --- /dev/null +++ b/Scenes/level2.tscn @@ -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"] diff --git a/Scenes/level3.tscn b/Scenes/level3.tscn new file mode 100644 index 0000000..67c5cd0 --- /dev/null +++ b/Scenes/level3.tscn @@ -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"] diff --git a/Scenes/slime.tscn b/Scenes/slime.tscn new file mode 100644 index 0000000..50f31a9 --- /dev/null +++ b/Scenes/slime.tscn @@ -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"] diff --git a/Scripts/gameController.gd b/Scripts/gameController.gd index 4d73ae8..3d4564a 100644 --- a/Scripts/gameController.gd +++ b/Scripts/gameController.gd @@ -1,11 +1,40 @@ -class_name GameController extends Node2D +extends Node2D 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. func _ready() -> void: 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. func _process(delta: float) -> void: @@ -21,3 +50,24 @@ func totalCrates(numberOfCrates:int)->void: print("GC knows total crates: "+str(numberOfCrates)) if numberOfCrates <=0: 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 diff --git a/Scripts/player.gd b/Scripts/player.gd index d069c80..ec23a8c 100644 --- a/Scripts/player.gd +++ b/Scripts/player.gd @@ -70,13 +70,13 @@ func handle_movement(delta)->void: velocity.x = move_toward(velocity.x, 0, SPEED) 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!!") pushEnabled = true var collider = right_cast.get_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!!") pushEnabled = true var collider = left_cast.get_collider() diff --git a/Scripts/scene_manager.gd b/Scripts/scene_manager.gd index 402796f..b7373c5 100644 --- a/Scripts/scene_manager.gd +++ b/Scripts/scene_manager.gd @@ -1,11 +1,13 @@ class_name SceneManager extends Node2D -@onready var game: Node2D = $".." @onready var crates: Node2D = $"../Crates" var grenade = preload("res://Scenes/grenade.tscn") +@onready var enemies: Node2D = $"../Enemies" func _ready() -> void: + GameController.reset() print("Scene manager is ready!") - game.destroySignal.connect(destroy) + GameController.destroySignal.connect(destroy) + GameController.levelChangeSignal.connect(changeScene) buildLevel() func destroy(body)->void: @@ -14,7 +16,18 @@ func destroy(body)->void: func buildLevel()->void: 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: #is there a crate holder? var _crateTotal:int = 0 @@ -25,7 +38,7 @@ func updateCrates()->void: obj.tree_exited.connect(updateCrates) _crateTotal +=1 print("Number of crates: "+str(_crateTotal)) - game.totalCrates(_crateTotal) + GameController.totalCrates(_crateTotal) func makeGrenade(_grenadePosition, _grenadeDirection)->void: print("SM wants to make a grenade") @@ -34,3 +47,6 @@ func makeGrenade(_grenadePosition, _grenadeDirection)->void: myGrenade.transform = _grenadePosition 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) diff --git a/Scripts/slime.gd b/Scripts/slime.gd new file mode 100644 index 0000000..2051f46 --- /dev/null +++ b/Scripts/slime.gd @@ -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) diff --git a/Scripts/slime.gd.uid b/Scripts/slime.gd.uid new file mode 100644 index 0000000..636e157 --- /dev/null +++ b/Scripts/slime.gd.uid @@ -0,0 +1 @@ +uid://q6eb2oqg3vvo diff --git a/assets/graphics/enemies/slime_green.png b/assets/graphics/enemies/slime_green.png new file mode 100644 index 0000000000000000000000000000000000000000..a21cb6fa253a2142be9bdad248238299dce6e695 GIT binary patch literal 908 zcmeAS@N?(olHy`uVBq!ia0vp^2|(<@!3HEb(?2AGr~;43Vg?3oVGw3ym^DX&fq~i1 z)5S5QV$Rz+)_J!b1lrmiqe6M+oJ(NX&NN4Phv|b`z4{NYP5+>JWrs--17qeTsRD5g z!(g=zZP^CRNrf+-+NH@KR$Td0s&mngVw3+xu0?EXcCBM}?K8i`C}Wk?V1NhZ=gNnL znwH6IezGFZ!~9a6?RHUyhPV4>Uu{?_FnfW>zS{qPKK*<4uVTZ$ce_63>1Q2~5psEW zx_|#J@#X97|9=sRdr@7gG^K>%S{q!=tk;zc{umA757CW^gF~?Y* zzL@Q4_FeSScBuyG05^_0b=8H-_E|RV`0{(oCG+JLF?=tr`x)+BFt>laYl`#E_4#US z^)8yV;ydQc)Lt=IzWv`O|NWa{=kBflzObA3)w^Aa^ZVqko^^cn|Ic5O3*}M*OaJxH zkT2-?mBRcbPJn+~%B^6jY(87p9(Mo#>Q7(h~rm&XFcnS2%Pu(#j4I<=R1EbeZ((y;O5o?wIy5Q|G$2J-k$H; z`tsE}e}z7FZ&xe&&T>;Ie$t&EuHB#RoL~6BudegQ(e6(xj^8Zaa&Il$W#4ySE~~5m zTfmt7%O>)U?6I5hEH)mc^Zy7i2AYE5_cS8+Pd zEL*XBwVBru|99M6hFkZ|y>aAN9DmO}@fM%8>yNRi-8VbG`yY1_&*gmzOfw=rUyaF+ zc6a>UWOJqT@=>+Yz0nhwE57CCn(*tmRI)?YzOxPXujg|0Ui|Qj8JN8oJYD@<);T3K F0RY5^vzq__ literal 0 HcmV?d00001 diff --git a/assets/graphics/enemies/slime_green.png.import b/assets/graphics/enemies/slime_green.png.import new file mode 100644 index 0000000..7ea33e4 --- /dev/null +++ b/assets/graphics/enemies/slime_green.png.import @@ -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 diff --git a/project.godot b/project.godot index af64bd3..49b5af4 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,10 @@ run/main_scene="uid://b06dlp8n6upld" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="res://icon.svg" +[autoload] + +GameController="*uid://bc25u4w35ibeu" + [display] window/size/viewport_width=480