From d5c87727b942b44a4a4700a9da17aee1e99257ce Mon Sep 17 00:00:00 2001 From: OddlyTimbot Date: Mon, 3 Nov 2025 20:56:50 -0500 Subject: [PATCH] multi levels, closed loop for coins, custom resources for character stats, enemy attacks, player attacks, started enemy movement --- project.godot | 4 + scenes/bullet.tscn | 2 + scenes/game.tscn | 24 +- scenes/level2.tscn | 537 +++++++++++++++++++++++++++++ scenes/level3.tscn | 537 +++++++++++++++++++++++++++++ scenes/player.tscn | 4 +- scenes/slime.tscn | 14 + scripts/bullet.gd | 8 +- scripts/coin.gd | 5 + scripts/gamecontroller.gd | 96 +++++- scripts/grenade.gd | 1 + scripts/rscs/characterstats.gd | 11 + scripts/rscs/characterstats.gd.uid | 1 + scripts/rscs/playerStats.tres | 8 + scripts/rscs/slimeStats.tres | 11 + scripts/scene_manager.gd | 64 +++- scripts/slime.gd | 9 +- 17 files changed, 1290 insertions(+), 46 deletions(-) create mode 100644 scenes/level2.tscn create mode 100644 scenes/level3.tscn create mode 100644 scripts/rscs/characterstats.gd create mode 100644 scripts/rscs/characterstats.gd.uid create mode 100644 scripts/rscs/playerStats.tres create mode 100644 scripts/rscs/slimeStats.tres diff --git a/project.godot b/project.godot index f0d2789..34b20d1 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,10 @@ run/main_scene="uid://cy1i6ucex6m0d" config/features=PackedStringArray("4.5", "Forward Plus") config/icon="res://icon.svg" +[autoload] + +Gamecontroller="*res://scripts/gamecontroller.gd" + [display] window/size/viewport_width=320 diff --git a/scenes/bullet.tscn b/scenes/bullet.tscn index 06f6384..a6483f3 100644 --- a/scenes/bullet.tscn +++ b/scenes/bullet.tscn @@ -19,3 +19,5 @@ position = Vector2(-2, -2) rotation = 3.1415927 scale = Vector2(0.07614212, 0.1079566) texture = ExtResource("2_y25gk") + +[connection signal="area_entered" from="." to="." method="_on_area_entered"] diff --git a/scenes/game.tscn b/scenes/game.tscn index 99a18c8..74aa2fa 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,6 +1,5 @@ -[gd_scene load_steps=23 format=4 uid="uid://cy1i6ucex6m0d"] +[gd_scene load_steps=22 format=4 uid="uid://cy1i6ucex6m0d"] -[ext_resource type="Script" uid="uid://crhflh7kooolf" path="res://scripts/gamecontroller.gd" id="1_lbhrr"] [ext_resource type="PackedScene" uid="uid://qv8blu8wkqvq" path="res://scenes/crate.tscn" id="1_uwrxv"] [ext_resource type="Texture2D" uid="uid://drigbyu4w5ppu" path="res://assets/graphics/environment/terrain/airplane.png" id="2_0tnpc"] [ext_resource type="Texture2D" uid="uid://bsaouyyno4ua" path="res://assets/graphics/environment/terrain/Terrain (32x32).png" id="2_gee14"] @@ -414,7 +413,6 @@ size = Vector2(68, 35) [node name="Game" type="Node2D"] scale = Vector2(0.9976793, 0.99848104) -script = ExtResource("1_lbhrr") [node name="sky" type="Parallax2D" parent="."] scale = Vector2(1, 1.0000001) @@ -514,25 +512,29 @@ BUMP_POWER = 50 [node name="Coins" type="Node2D" parent="."] [node name="Coin" parent="Coins" instance=ExtResource("13_kvuet")] -position = Vector2(320.74435, 408.62067) +position = Vector2(192.44662, 340.51724) scale = Vector2(1, 1.0000001) [node name="Coin2" parent="Coins" instance=ExtResource("13_kvuet")] -position = Vector2(339.78854, 407.6192) -scale = Vector2(1, 1.0000001) - -[node name="Coin3" parent="Coins" instance=ExtResource("13_kvuet")] -position = Vector2(181.42102, 345.52484) +position = Vector2(435.00952, 343.5218) scale = Vector2(1, 1.0000001) [node name="Enemies" type="Node2D" parent="."] [node name="Slime" parent="Enemies" instance=ExtResource("14_trtic")] -position = Vector2(366.85135, 339.51578) +position = Vector2(76.17678, 339.51575) scale = Vector2(1, 1.0000001) [node name="Slime2" parent="Enemies" instance=ExtResource("14_trtic")] -position = Vector2(439.01883, 340.51724) +position = Vector2(122.28377, 339.51572) +scale = Vector2(1, 1.0000001) + +[node name="Slime3" parent="Enemies" instance=ExtResource("14_trtic")] +position = Vector2(174.40474, 340.51724) +scale = Vector2(1, 1.0000001) + +[node name="Slime4" parent="Enemies" instance=ExtResource("14_trtic")] +position = Vector2(374.86996, 339.51575) scale = Vector2(1, 1.0000001) [connection signal="triggerFiredSignal" from="Trigger" to="." method="_on_trigger_fired"] diff --git a/scenes/level2.tscn b/scenes/level2.tscn new file mode 100644 index 0000000..5e6eaaa --- /dev/null +++ b/scenes/level2.tscn @@ -0,0 +1,537 @@ +[gd_scene load_steps=22 format=4 uid="uid://2fncglq8po8r"] + +[ext_resource type="Texture2D" uid="uid://do2gp0jp762js" path="res://assets/graphics/environment/sky.png" id="1_56gwk"] +[ext_resource type="Texture2D" uid="uid://dhsr2i5kesaxt" path="res://assets/graphics/environment/background.png" id="2_ve5ok"] +[ext_resource type="Texture2D" uid="uid://dmpvsw77pc6w1" path="res://assets/graphics/environment/midground.png" id="3_cleqw"] +[ext_resource type="Texture2D" uid="uid://drigbyu4w5ppu" path="res://assets/graphics/environment/terrain/airplane.png" id="4_wvb8j"] +[ext_resource type="Texture2D" uid="uid://bsaouyyno4ua" path="res://assets/graphics/environment/terrain/Terrain (32x32).png" id="5_g8vcy"] +[ext_resource type="Texture2D" uid="uid://bgiw80mpxbcgh" path="res://assets/graphics/environment/terrain/veg_32x32.png" id="6_cqal4"] +[ext_resource type="Texture2D" uid="uid://bqj8chrd5i5iw" path="res://assets/graphics/environment/terrain/mushroom_32x64.png" id="7_o3sye"] +[ext_resource type="Script" uid="uid://co43e72devw6g" path="res://scripts/scene_manager.gd" id="8_24ks5"] +[ext_resource type="PackedScene" uid="uid://qv8blu8wkqvq" path="res://scenes/crate.tscn" id="9_s4es8"] +[ext_resource type="PackedScene" uid="uid://dmrrbiwqptrho" path="res://scenes/trigger.tscn" id="10_63e4f"] +[ext_resource type="PackedScene" uid="uid://b1yy0sybg66hh" path="res://scenes/player.tscn" id="11_y6lc1"] +[ext_resource type="PackedScene" uid="uid://dxocmoeuu32ex" path="res://scenes/coin.tscn" id="12_ekhvm"] +[ext_resource type="PackedScene" uid="uid://ccx1uakpj5143" path="res://scenes/slime.tscn" id="13_nflru"] + +[sub_resource type="TileMapPattern" id="TileMapPattern_p57ef"] +tile_data = PackedInt32Array(0, 0, 0, 65536, 0, 1, 131072, 0, 2, 1, 65536, 0, 65537, 393216, 0, 131073, 65536, 2, 2, 65536, 0, 65538, 393216, 0, 131074, 65536, 2, 3, 65536, 0, 65539, 393216, 0, 131075, 65536, 2, 4, 131072, 0, 65540, 131072, 1, 131076, 131072, 2) + +[sub_resource type="TileMapPattern" id="TileMapPattern_u5sy4"] +tile_data = PackedInt32Array(0, 983040, 3, 65536, 262144, 2, 1, 131072, 4) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_0tnpc"] +texture = ExtResource("5_g8vcy") +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(0.63726425, -16, 16, -16, 16, 16, 0.31863022, 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, -2.8676758, -16, -1.9117851) +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.9117851, -16, -1.9117851) +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.63726044, -16, -1.2745209, 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, -2.8676758, -16, -3.186308) +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, 5.098091, 12.426601, 12.426601, 5.7353554, 16, -4.460829, 16, -11.789337, 11.789337, -16, 3.186306) +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(0.63726425, -16, 16, -16, 16, 16, 0.31863022, 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, 3.50494, 16, 2.5490456, 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(2.5490456, -16, 16, -16, 16, 16, 1.5931549, 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="TileSetAtlasSource" id="TileSetAtlasSource_dinhu"] +texture = ExtResource("6_cqal4") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kvuet"] +texture = ExtResource("7_o3sye") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrains_peering_bit/bottom_side = 1 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 1 +0:1/0/terrains_peering_bit/top_side = 1 + +[sub_resource type="TileSet" id="TileSet_vtaks"] +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) +terrain_set_0/terrain_1/name = "Veg" +terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1) +sources/0 = SubResource("TileSetAtlasSource_0tnpc") +sources/1 = SubResource("TileSetAtlasSource_dinhu") +sources/2 = SubResource("TileSetAtlasSource_kvuet") +pattern_0 = SubResource("TileMapPattern_p57ef") +pattern_1 = SubResource("TileMapPattern_u5sy4") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_8cj0n"] +size = Vector2(68, 35) + +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_8cj0n"] + +[node name="Game" type="Node2D"] +scale = Vector2(0.9976793, 0.99848104) + +[node name="sky" type="Parallax2D" parent="."] +scale = Vector2(1, 1.0000001) +repeat_size = Vector2(320, 180) + +[node name="Sprite2D" type="Sprite2D" parent="sky"] +texture_filter = 1 +position = Vector2(160, 90) +texture = ExtResource("1_56gwk") + +[node name="farbackground" type="Parallax2D" parent="."] +scale = Vector2(1, 1.0000001) +scroll_scale = Vector2(0.8, 0.8) +repeat_size = Vector2(320, 0) + +[node name="Sprite2D" type="Sprite2D" parent="farbackground"] +position = Vector2(160, 400) +texture = ExtResource("2_ve5ok") + +[node name="Parallax2D" type="Parallax2D" parent="."] +scroll_scale = Vector2(0.5, 0.5) +repeat_size = Vector2(320, 0) + +[node name="Sprite2D" type="Sprite2D" parent="Parallax2D"] +position = Vector2(160, 300) +texture = ExtResource("3_cleqw") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(776.80273, 525.79877) +scale = Vector2(1, 1.0000001) +texture = ExtResource("4_wvb8j") + +[node name="TileMapLayer" type="TileMapLayer" parent="."] +texture_filter = 1 +tile_map_data = PackedByteArray("AAAWAA4AAAAEAAIAAAAWAA0AAAAPAAMAAAAXAA0AAAAQAAQAAAAXAAwAAAAEAAAAAAAZAAwAAAAAAAQAAAAZAAoAAAAAAAQAAAAcAAoAAAACAAQAAAAbAAoAAAABAAQAAAAaAAwAAAAKAAMAAAAbAAwAAAAJAAMAAAAcAAwAAAACAAQAAAAbAA0AAAACAAIAAAAaAA0AAAAAAAIAAAD//wcAAAAAAAAAAAD//wgAAAAAAAIAAAAAAAcAAAABAAAAAAACAAsAAAAAAAAAAAADAAsAAAABAAAAAAAEAAsAAAABAAAAAAAFAAsAAAABAAAAAAAGAAsAAAACAAAAAAAGAAwAAAACAAIAAAAFAAwAAAABAAIAAAAEAAwAAAABAAIAAAADAAwAAAABAAIAAAACAAwAAAAAAAIAAAANAAsAAAACAAQAAAAMAAsAAAABAAQAAAALAAsAAAAAAAQAAAAKAA0AAAACAAQAAAAJAA0AAAAAAAQAAAASAA4AAAACAAQAAAARAA4AAAAPAAMAAAARAA8AAAAEAAIAAAAaAAoAAAABAAQAAAAEABEAAAAAAAAAAAAFABEAAAABAAAAAAAGABEAAAABAAAAAAAHABEAAAABAAAAAAAIABEAAAABAAAAAAAJABEAAAABAAAAAAAKABEAAAABAAAAAAALABEAAAABAAAAAAAMABEAAAABAAAAAAANABEAAAABAAAAAAAOABEAAAABAAAAAAAPABEAAAABAAAAAAAQABEAAAABAAAAAAARABEAAAABAAAAAAASABEAAAABAAAAAAATABEAAAABAAAAAAAUABEAAAABAAAAAAAVABEAAAABAAAAAAAWABEAAAABAAAAAAAXABEAAAABAAAAAAAYABEAAAABAAAAAAAZABEAAAAHAAEAAAAaABEAAAAGAAAAAAAbABEAAAABAAIAAAAcABEAAAABAAIAAAAdABEAAAACAAIAAAAZABAAAAAAAAAAAAAaABAAAAABAAAAAAAbABAAAAABAAAAAAAcABAAAAABAAAAAAAdABAAAAAHAAQAAAAdAA8AAAAEAAAAAAABAAcAAAABAAAAAAACAAcAAAACAAAAAAABAAgAAAABAAIAAAAAAAgAAAABAAIAAAACAAgAAAACAAIAAAAJAAwAAQAAAAAAAAADAAoAAQAAAAAAAAAXAAsAAQAAAAAAAAARAA0AAgAAAAEAAAARAAwAAgAAAAAAAAAZAAkAAgAAAAEAAAAZAAgAAgAAAAAAAAAaAAkAAQAAAAAAAAAaAA8AAQAAAAAAAAAZAA8AAQAAAAAAAAAMABAAAQAAAAAAAAALABAAAgAAAAEAAAALAA8AAgAAAAAAAAAFABAAAgAAAAEAAAAFAA8AAgAAAAAAAAACAAYAAgAAAAEAAAACAAUAAgAAAAAAAAAbAAkAAgAAAAEAAAAbAAgAAgAAAAAAAAAEABIAAAAAAAIAAAAFABIAAAABAAIAAAAGABIAAAABAAIAAAAHABIAAAABAAIAAAAIABIAAAABAAIAAAAJABIAAAABAAIAAAAKABIAAAABAAIAAAALABIAAAABAAIAAAAMABIAAAABAAIAAAANABIAAAABAAIAAAAOABIAAAABAAIAAAAPABIAAAABAAIAAAAQABIAAAABAAIAAAARABIAAAABAAIAAAASABIAAAABAAIAAAATABIAAAABAAIAAAAUABIAAAABAAIAAAAVABIAAAABAAIAAAAWABIAAAABAAIAAAAaABIAAAACAAIAAAAZABIAAAABAAIAAAAYABIAAAABAAIAAAAXABIAAAABAAIAAAA=") +tile_set = SubResource("TileSet_vtaks") + +[node name="SceneManager" type="Node2D" parent="."] +unique_name_in_owner = true +script = ExtResource("8_24ks5") + +[node name="StaticBody2D" type="StaticBody2D" parent="."] +position = Vector2(742.72363, 195.29665) +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] +position = Vector2(0, 7.5) +shape = SubResource("RectangleShape2D_8cj0n") + +[node name="StaticBody2D2" type="StaticBody2D" parent="."] +position = Vector2(898.0842, 193.2936) +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"] +position = Vector2(0, 7.5) +shape = SubResource("RectangleShape2D_8cj0n") + +[node name="StaticBody2D3" type="StaticBody2D" parent="."] +position = Vector2(648.50507, 164.24951) +rotation = -0.79570585 +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"] +position = Vector2(0, 7.5) +shape = SubResource("RectangleShape2D_8cj0n") + +[node name="Crate" parent="." groups=["pushable", "splodable"] instance=ExtResource("9_s4es8")] +position = Vector2(369.85834, 339.51572) + +[node name="Crate2" parent="." groups=["pushable", "splodable"] instance=ExtResource("9_s4es8")] +position = Vector2(445.03278, 293.44574) +rotation = -0.7766715 + +[node name="Crate3" parent="." groups=["pushable", "splodable"] instance=ExtResource("9_s4es8")] +position = Vector2(254.5908, 285.43356) +rotation = 0.51836276 + +[node name="Boundary" type="StaticBody2D" parent="."] +position = Vector2(400.93042, 633.96295) +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Boundary"] +shape = SubResource("WorldBoundaryShape2D_8cj0n") + +[node name="Trigger" parent="." instance=ExtResource("10_63e4f")] +position = Vector2(575.3352, 798.21246) + +[node name="Trigger2" parent="." instance=ExtResource("10_63e4f")] +position = Vector2(93.216324, 715.08624) +intent = "powerup" + +[node name="CharacterBody2D" parent="." instance=ExtResource("11_y6lc1")] +position = Vector2(397.92346, 341.51877) +BUMP_POWER = 50 + +[node name="Coins" type="Node2D" parent="."] + +[node name="Coin" parent="Coins" instance=ExtResource("12_ekhvm")] +position = Vector2(320.74435, 408.62067) +scale = Vector2(1, 1.0000001) + +[node name="Coin2" parent="Coins" instance=ExtResource("12_ekhvm")] +position = Vector2(339.78854, 407.6192) +scale = Vector2(1, 1.0000001) + +[node name="Coin3" parent="Coins" instance=ExtResource("12_ekhvm")] +position = Vector2(181.42102, 345.52484) +scale = Vector2(1, 1.0000001) + +[node name="Enemies" type="Node2D" parent="."] + +[node name="Slime" parent="Enemies" instance=ExtResource("13_nflru")] +position = Vector2(200.46521, 338.5142) +scale = Vector2(1, 1.0000001) + +[node name="Slime2" parent="Enemies" instance=ExtResource("13_nflru")] +position = Vector2(439.01883, 340.51724) +scale = Vector2(1, 1.0000001) + +[connection signal="triggerFiredSignal" from="Trigger" to="." method="_on_trigger_fired"] +[connection signal="triggerFiredSignal" from="Trigger2" to="." method="_on_trigger_fired"] diff --git a/scenes/level3.tscn b/scenes/level3.tscn new file mode 100644 index 0000000..fa9f51f --- /dev/null +++ b/scenes/level3.tscn @@ -0,0 +1,537 @@ +[gd_scene load_steps=22 format=4 uid="uid://l46wf6kriyea"] + +[ext_resource type="Texture2D" uid="uid://do2gp0jp762js" path="res://assets/graphics/environment/sky.png" id="1_bradm"] +[ext_resource type="Texture2D" uid="uid://dhsr2i5kesaxt" path="res://assets/graphics/environment/background.png" id="2_got4s"] +[ext_resource type="Texture2D" uid="uid://dmpvsw77pc6w1" path="res://assets/graphics/environment/midground.png" id="3_e40mx"] +[ext_resource type="Texture2D" uid="uid://drigbyu4w5ppu" path="res://assets/graphics/environment/terrain/airplane.png" id="4_a114e"] +[ext_resource type="Texture2D" uid="uid://bsaouyyno4ua" path="res://assets/graphics/environment/terrain/Terrain (32x32).png" id="5_y1e0c"] +[ext_resource type="Texture2D" uid="uid://bgiw80mpxbcgh" path="res://assets/graphics/environment/terrain/veg_32x32.png" id="6_s4dsi"] +[ext_resource type="Texture2D" uid="uid://bqj8chrd5i5iw" path="res://assets/graphics/environment/terrain/mushroom_32x64.png" id="7_07lh1"] +[ext_resource type="Script" uid="uid://co43e72devw6g" path="res://scripts/scene_manager.gd" id="8_6uuvf"] +[ext_resource type="PackedScene" uid="uid://qv8blu8wkqvq" path="res://scenes/crate.tscn" id="9_x008a"] +[ext_resource type="PackedScene" uid="uid://dmrrbiwqptrho" path="res://scenes/trigger.tscn" id="10_atr84"] +[ext_resource type="PackedScene" uid="uid://b1yy0sybg66hh" path="res://scenes/player.tscn" id="11_qyu38"] +[ext_resource type="PackedScene" uid="uid://dxocmoeuu32ex" path="res://scenes/coin.tscn" id="12_8vbrh"] +[ext_resource type="PackedScene" uid="uid://ccx1uakpj5143" path="res://scenes/slime.tscn" id="13_d5gix"] + +[sub_resource type="TileMapPattern" id="TileMapPattern_p57ef"] +tile_data = PackedInt32Array(0, 0, 0, 65536, 0, 1, 131072, 0, 2, 1, 65536, 0, 65537, 393216, 0, 131073, 65536, 2, 2, 65536, 0, 65538, 393216, 0, 131074, 65536, 2, 3, 65536, 0, 65539, 393216, 0, 131075, 65536, 2, 4, 131072, 0, 65540, 131072, 1, 131076, 131072, 2) + +[sub_resource type="TileMapPattern" id="TileMapPattern_u5sy4"] +tile_data = PackedInt32Array(0, 983040, 3, 65536, 262144, 2, 1, 131072, 4) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_0tnpc"] +texture = ExtResource("5_y1e0c") +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(0.63726425, -16, 16, -16, 16, 16, 0.31863022, 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, -2.8676758, -16, -1.9117851) +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.9117851, -16, -1.9117851) +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.63726044, -16, -1.2745209, 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, -2.8676758, -16, -3.186308) +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, 5.098091, 12.426601, 12.426601, 5.7353554, 16, -4.460829, 16, -11.789337, 11.789337, -16, 3.186306) +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(0.63726425, -16, 16, -16, 16, 16, 0.31863022, 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, 3.50494, 16, 2.5490456, 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(2.5490456, -16, 16, -16, 16, 16, 1.5931549, 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="TileSetAtlasSource" id="TileSetAtlasSource_dinhu"] +texture = ExtResource("6_s4dsi") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kvuet"] +texture = ExtResource("7_07lh1") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrains_peering_bit/bottom_side = 1 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 1 +0:1/0/terrains_peering_bit/top_side = 1 + +[sub_resource type="TileSet" id="TileSet_vtaks"] +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) +terrain_set_0/terrain_1/name = "Veg" +terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1) +sources/0 = SubResource("TileSetAtlasSource_0tnpc") +sources/1 = SubResource("TileSetAtlasSource_dinhu") +sources/2 = SubResource("TileSetAtlasSource_kvuet") +pattern_0 = SubResource("TileMapPattern_p57ef") +pattern_1 = SubResource("TileMapPattern_u5sy4") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_8cj0n"] +size = Vector2(68, 35) + +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_8cj0n"] + +[node name="Game" type="Node2D"] +scale = Vector2(0.9976793, 0.99848104) + +[node name="sky" type="Parallax2D" parent="."] +scale = Vector2(1, 1.0000001) +repeat_size = Vector2(320, 180) + +[node name="Sprite2D" type="Sprite2D" parent="sky"] +texture_filter = 1 +position = Vector2(160, 90) +texture = ExtResource("1_bradm") + +[node name="farbackground" type="Parallax2D" parent="."] +scale = Vector2(1, 1.0000001) +scroll_scale = Vector2(0.8, 0.8) +repeat_size = Vector2(320, 0) + +[node name="Sprite2D" type="Sprite2D" parent="farbackground"] +position = Vector2(160, 400) +texture = ExtResource("2_got4s") + +[node name="Parallax2D" type="Parallax2D" parent="."] +scroll_scale = Vector2(0.5, 0.5) +repeat_size = Vector2(320, 0) + +[node name="Sprite2D" type="Sprite2D" parent="Parallax2D"] +position = Vector2(160, 300) +texture = ExtResource("3_e40mx") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(776.80273, 525.79877) +scale = Vector2(1, 1.0000001) +texture = ExtResource("4_a114e") + +[node name="TileMapLayer" type="TileMapLayer" parent="."] +texture_filter = 1 +tile_map_data = PackedByteArray("AAAWAA4AAAAEAAIAAAAWAA0AAAAPAAMAAAAXAA0AAAAQAAQAAAAXAAwAAAAEAAAAAAAZAAwAAAAAAAQAAAAZAAoAAAAAAAQAAAAcAAoAAAACAAQAAAAbAAoAAAABAAQAAAAaAAwAAAAKAAMAAAAbAAwAAAAJAAMAAAAcAAwAAAACAAQAAAAbAA0AAAACAAIAAAAaAA0AAAAAAAIAAAD//wcAAAAAAAAAAAD//wgAAAAAAAIAAAAAAAcAAAABAAAAAAACAAsAAAAAAAAAAAADAAsAAAABAAAAAAAEAAsAAAABAAAAAAAFAAsAAAABAAAAAAAGAAsAAAACAAAAAAAGAAwAAAACAAIAAAAFAAwAAAABAAIAAAAEAAwAAAABAAIAAAADAAwAAAABAAIAAAACAAwAAAAAAAIAAAANAAsAAAACAAQAAAAMAAsAAAABAAQAAAALAAsAAAAAAAQAAAAKAA0AAAACAAQAAAAJAA0AAAAAAAQAAAASAA4AAAACAAQAAAARAA4AAAAPAAMAAAARAA8AAAAEAAIAAAAaAAoAAAABAAQAAAAEABEAAAAAAAAAAAAFABEAAAABAAAAAAAGABEAAAABAAAAAAAHABEAAAABAAAAAAAIABEAAAABAAAAAAAJABEAAAABAAAAAAAKABEAAAABAAAAAAALABEAAAABAAAAAAAMABEAAAABAAAAAAANABEAAAABAAAAAAAOABEAAAABAAAAAAAPABEAAAABAAAAAAAQABEAAAABAAAAAAARABEAAAABAAAAAAASABEAAAABAAAAAAATABEAAAABAAAAAAAUABEAAAABAAAAAAAVABEAAAABAAAAAAAWABEAAAABAAAAAAAXABEAAAABAAAAAAAYABEAAAABAAAAAAAZABEAAAAHAAEAAAAaABEAAAAGAAAAAAAbABEAAAABAAIAAAAcABEAAAABAAIAAAAdABEAAAACAAIAAAAZABAAAAAAAAAAAAAaABAAAAABAAAAAAAbABAAAAABAAAAAAAcABAAAAABAAAAAAAdABAAAAAHAAQAAAAdAA8AAAAEAAAAAAABAAcAAAABAAAAAAACAAcAAAACAAAAAAABAAgAAAABAAIAAAAAAAgAAAABAAIAAAACAAgAAAACAAIAAAAJAAwAAQAAAAAAAAADAAoAAQAAAAAAAAAXAAsAAQAAAAAAAAARAA0AAgAAAAEAAAARAAwAAgAAAAAAAAAZAAkAAgAAAAEAAAAZAAgAAgAAAAAAAAAaAAkAAQAAAAAAAAAaAA8AAQAAAAAAAAAZAA8AAQAAAAAAAAAMABAAAQAAAAAAAAALABAAAgAAAAEAAAALAA8AAgAAAAAAAAAFABAAAgAAAAEAAAAFAA8AAgAAAAAAAAACAAYAAgAAAAEAAAACAAUAAgAAAAAAAAAbAAkAAgAAAAEAAAAbAAgAAgAAAAAAAAAEABIAAAAAAAIAAAAFABIAAAABAAIAAAAGABIAAAABAAIAAAAHABIAAAABAAIAAAAIABIAAAABAAIAAAAJABIAAAABAAIAAAAKABIAAAABAAIAAAALABIAAAABAAIAAAAMABIAAAABAAIAAAANABIAAAABAAIAAAAOABIAAAABAAIAAAAPABIAAAABAAIAAAAQABIAAAABAAIAAAARABIAAAABAAIAAAASABIAAAABAAIAAAATABIAAAABAAIAAAAUABIAAAABAAIAAAAVABIAAAABAAIAAAAWABIAAAABAAIAAAAaABIAAAACAAIAAAAZABIAAAABAAIAAAAYABIAAAABAAIAAAAXABIAAAABAAIAAAA=") +tile_set = SubResource("TileSet_vtaks") + +[node name="SceneManager" type="Node2D" parent="."] +unique_name_in_owner = true +script = ExtResource("8_6uuvf") + +[node name="StaticBody2D" type="StaticBody2D" parent="."] +position = Vector2(742.72363, 195.29665) +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] +position = Vector2(0, 7.5) +shape = SubResource("RectangleShape2D_8cj0n") + +[node name="StaticBody2D2" type="StaticBody2D" parent="."] +position = Vector2(898.0842, 193.2936) +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"] +position = Vector2(0, 7.5) +shape = SubResource("RectangleShape2D_8cj0n") + +[node name="StaticBody2D3" type="StaticBody2D" parent="."] +position = Vector2(648.50507, 164.24951) +rotation = -0.79570585 +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"] +position = Vector2(0, 7.5) +shape = SubResource("RectangleShape2D_8cj0n") + +[node name="Crate" parent="." groups=["pushable", "splodable"] instance=ExtResource("9_x008a")] +position = Vector2(353.8211, 281.4275) + +[node name="Crate2" parent="." groups=["pushable", "splodable"] instance=ExtResource("9_x008a")] +position = Vector2(445.03278, 293.44574) +rotation = -0.7766715 + +[node name="Crate3" parent="." groups=["pushable", "splodable"] instance=ExtResource("9_x008a")] +position = Vector2(254.5908, 285.43356) +rotation = 0.51836276 + +[node name="Boundary" type="StaticBody2D" parent="."] +position = Vector2(400.93042, 633.96295) +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Boundary"] +shape = SubResource("WorldBoundaryShape2D_8cj0n") + +[node name="Trigger" parent="." instance=ExtResource("10_atr84")] +position = Vector2(575.3352, 798.21246) + +[node name="Trigger2" parent="." instance=ExtResource("10_atr84")] +position = Vector2(93.216324, 715.08624) +intent = "powerup" + +[node name="CharacterBody2D" parent="." instance=ExtResource("11_qyu38")] +position = Vector2(397.92346, 341.51877) +BUMP_POWER = 50 + +[node name="Coins" type="Node2D" parent="."] + +[node name="Coin" parent="Coins" instance=ExtResource("12_8vbrh")] +position = Vector2(320.74435, 408.62067) +scale = Vector2(1, 1.0000001) + +[node name="Coin2" parent="Coins" instance=ExtResource("12_8vbrh")] +position = Vector2(364.8467, 346.52637) +scale = Vector2(1, 1.0000001) + +[node name="Coin3" parent="Coins" instance=ExtResource("12_8vbrh")] +position = Vector2(181.42102, 345.52484) +scale = Vector2(1, 1.0000001) + +[node name="Enemies" type="Node2D" parent="."] + +[node name="Slime" parent="Enemies" instance=ExtResource("13_d5gix")] +position = Vector2(156.36285, 336.51114) +scale = Vector2(1, 1.0000001) + +[node name="Slime2" parent="Enemies" instance=ExtResource("13_d5gix")] +position = Vector2(307.7141, 402.6116) +scale = Vector2(1, 1.0000001) + +[connection signal="triggerFiredSignal" from="Trigger" to="." method="_on_trigger_fired"] +[connection signal="triggerFiredSignal" from="Trigger2" to="." method="_on_trigger_fired"] diff --git a/scenes/player.tscn b/scenes/player.tscn index 8770a70..435d6df 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -218,10 +218,10 @@ target_position = Vector2(16, 0) target_position = Vector2(-16, 0) [node name="RightSpawn" type="Marker2D" parent="."] -position = Vector2(14, -8) +position = Vector2(14, -6) [node name="LeftSpawn" type="Marker2D" parent="."] -position = Vector2(-13, -8) +position = Vector2(-13, -5) [node name="JumpBufferTimer" type="Timer" parent="."] one_shot = true diff --git a/scenes/slime.tscn b/scenes/slime.tscn index 59ed981..91adee4 100644 --- a/scenes/slime.tscn +++ b/scenes/slime.tscn @@ -56,4 +56,18 @@ frame_progress = 0.8940961 position = Vector2(0, 4.5) shape = SubResource("RectangleShape2D_gstla") +[node name="RightCast" type="RayCast2D" parent="."] +target_position = Vector2(13, 0) + +[node name="LeftCast" type="RayCast2D" parent="."] +target_position = Vector2(-13, 0) + +[node name="RightDownCast" type="RayCast2D" parent="."] +position = Vector2(7, 0) +target_position = Vector2(0, 14) + +[node name="LeftDownCast" type="RayCast2D" parent="."] +position = Vector2(-7, 1) +target_position = Vector2(0, 14) + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scripts/bullet.gd b/scripts/bullet.gd index c530adc..b2dcb93 100644 --- a/scripts/bullet.gd +++ b/scripts/bullet.gd @@ -2,7 +2,7 @@ class_name Bullet extends Area2D var speed:float = 700 @onready var bullet_graphic = $BulletGraphic - +signal bulletDamageSignal(area, bullet) # Called when the node enters the scene tree for the first time. func _ready(): pass # Replace with function body. @@ -12,9 +12,13 @@ func _ready(): func _process(delta): position += transform.x * speed * delta -func xz(value)->void: +func setSpeed(value)->void: speed = value if speed<0: bullet_graphic.flip_h = true else: bullet_graphic.flip_h = false + + +func _on_area_entered(area): + bulletDamageSignal.emit(area, self) diff --git a/scripts/coin.gd b/scripts/coin.gd index 2f62003..20b09d1 100644 --- a/scripts/coin.gd +++ b/scripts/coin.gd @@ -16,3 +16,8 @@ func _on_body_entered(body): print("body connected with coin") if body is Player: coinCollectedSignal.emit(body, self) + if body is Grenade: + body.queue_free() + self.queue_free() + + diff --git a/scripts/gamecontroller.gd b/scripts/gamecontroller.gd index 466f6b4..d88cfcf 100644 --- a/scripts/gamecontroller.gd +++ b/scripts/gamecontroller.gd @@ -3,10 +3,48 @@ extends Node2D var coinsCollectedTotal:int = 0 var totalCoinsAvailable:int = 0 +var levels=["res://scenes/game.tscn","res://scenes/level2.tscn","res://scenes/level3.tscn"] +var timers=[16,10,15] +var timeAvailable:int =0 +var currentLevel = 0 +var timer = Timer.new() + +#signals +signal levelChangeSignal(level) +signal destroySignal(body) +signal playerDamagedSignal(health, maxHealth) +signal playerDeathSignal + +var enemy:CharacterStats +var player:CharacterStats +var enemiesDict = {} +var playerCurrentHealth:int =0 + + # Called when the node enters the scene tree for the first time. func _ready(): - pass # Replace with function body. + #load in characters + enemy = load("res://scripts/rscs/slimeStats.tres") + player = load("res://scripts/rscs/playerStats.tres") + playerCurrentHealth = player.starting_health + + add_child(timer) + timer.wait_time = 1 + timer.one_shot = false + timer.connect("timeout", secondCounter) + timer.start() + +func secondCounter()->void: + timeAvailable -=1 + if timeAvailable <=0: + print("YOu LOOSAE Baby!") + print(levels[currentLevel]) + levelChangeSignal.emit(levels[currentLevel]) +func reset()->void: + timeAvailable = timers[currentLevel] + enemiesDict.clear() + playerCurrentHealth = player.starting_health # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): @@ -18,21 +56,57 @@ func _on_trigger_fired(intent, body): match intent: "destroy": print("destroy this thing") - body.queue_free() + destroySignal.emit(body) "powerup": print("power up this thing") func _on_coin_collected(body, coin): - print("GC knows coin collected") - coinsCollectedTotal +=1 - coin.queue_free() - if coinsCollectedTotal >= totalCoinsAvailable: - print("You won the level!") - -func totalCoins(value): - totalCoinsAvailable = value + destroySignal.emit(coin) -func _on_slime_damage(body, slime): +func totalCoins(value): + if value == 0: + #you won + currentLevel +=1 + if currentLevel >= levels.size(): + currentLevel = 0 + levelChangeSignal.emit(levels[currentLevel]) + +func _on_slime_damage(_body, slime): print("GC knows slime damage") + print("Damage "+str(enemiesDict[slime]["damage"])) + print("Player Health "+str(playerCurrentHealth)+" of "+str(player.starting_health)) + playerCurrentHealth -= enemiesDict[slime]["damage"] + if playerCurrentHealth <=0: + print("YOU DED") + playerDeathSignal.emit() + else: + print("Taking damage") + playerDamagedSignal.emit(playerCurrentHealth, player.starting_health) + func totalEnemies(value): print("GC knows total enemies "+str(value)) + +func addEnemyToLevel(slime)->void: + print("GC adding enemy") + var randDamage:int = randi() % 10 + + var enemyStat = { + "health": enemy.health, + "damage": enemy.meleeDamage+randDamage + } + enemiesDict[slime]= enemyStat + +func bulletDamage(area,bullet)->void: + print("Bullet hitting area") + if area is Slime: + print("Hitting a slime") + print("Slime health "+str(enemiesDict[area]["health"])) + enemiesDict[area]["health"]-=player.rangeDamage + if enemiesDict[area]["health"] <=0: + print("enemy killed") + removeEnemyFromLevel(area) + destroySignal.emit(area) + else: + print("enemy damaged") +func removeEnemyFromLevel(slime)->void: + enemiesDict.erase(slime) diff --git a/scripts/grenade.gd b/scripts/grenade.gd index 10e538a..65c3774 100644 --- a/scripts/grenade.gd +++ b/scripts/grenade.gd @@ -25,3 +25,4 @@ func _on_body_entered(body): if body.is_in_group("splodable"): body.queue_free() explode() + diff --git a/scripts/rscs/characterstats.gd b/scripts/rscs/characterstats.gd new file mode 100644 index 0000000..8b59d78 --- /dev/null +++ b/scripts/rscs/characterstats.gd @@ -0,0 +1,11 @@ +class_name CharacterStats extends Resource + +@export_category("health") +@export var health:int = 100 +@export var max_health: int = 100 +@export var starting_health:int = 100 + +#dealing damage +@export_category("damage") +@export var meleeDamage:int = 10 +@export var rangeDamage:int = 0 diff --git a/scripts/rscs/characterstats.gd.uid b/scripts/rscs/characterstats.gd.uid new file mode 100644 index 0000000..8d5c797 --- /dev/null +++ b/scripts/rscs/characterstats.gd.uid @@ -0,0 +1 @@ +uid://oewo8kn4jbkl diff --git a/scripts/rscs/playerStats.tres b/scripts/rscs/playerStats.tres new file mode 100644 index 0000000..8e627da --- /dev/null +++ b/scripts/rscs/playerStats.tres @@ -0,0 +1,8 @@ +[gd_resource type="Resource" script_class="CharacterStats" load_steps=2 format=3 uid="uid://4yftkv4qq0bd"] + +[ext_resource type="Script" uid="uid://oewo8kn4jbkl" path="res://scripts/rscs/characterstats.gd" id="1_sqkfu"] + +[resource] +script = ExtResource("1_sqkfu") +rangeDamage = 10 +metadata/_custom_type_script = "uid://oewo8kn4jbkl" diff --git a/scripts/rscs/slimeStats.tres b/scripts/rscs/slimeStats.tres new file mode 100644 index 0000000..4dddcbe --- /dev/null +++ b/scripts/rscs/slimeStats.tres @@ -0,0 +1,11 @@ +[gd_resource type="Resource" script_class="CharacterStats" load_steps=2 format=3 uid="uid://8cwcd0phesw4"] + +[ext_resource type="Script" uid="uid://oewo8kn4jbkl" path="res://scripts/rscs/characterstats.gd" id="1_ppipo"] + +[resource] +script = ExtResource("1_ppipo") +health = 50 +max_health = 50 +starting_health = 50 +meleeDamage = 5 +metadata/_custom_type_script = "uid://oewo8kn4jbkl" diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index 69cc41b..9116c6d 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -5,36 +5,54 @@ var grenade = preload("res://scenes/grenade.tscn") @onready var coins = $"../Coins" @onready var enemies = $"../Enemies" -@onready var game = $".." + var bulletArray = [] var totalAllowedBullets = 7 # Called when the node enters the scene tree for the first time. func _ready(): + Gamecontroller.reset() buildLevel() func buildLevel()->void: # hook up coins - var totalCoins = 0 if coins: - for obj in coins.get_children(): - if obj is Coin: - totalCoins +=1 - #hook up a listener at the game controller - obj.coinCollectedSignal.connect(game._on_coin_collected) - #tell GC how many coins total - game.totalCoins(totalCoins) + updateCoins() - var totalEnemies = 0 + if enemies: - for obj in enemies.get_children(): - if obj is Slime: - totalEnemies +=1 - #hook up a listener at game controller - obj.slimeDamageSignal.connect(game._on_slime_damage) - pass - game.totalEnemies(totalEnemies) + updateEnemies() + + #Wire up signals from Gamecontroller + Gamecontroller.levelChangeSignal.connect(changeScene) + Gamecontroller.destroySignal.connect(destroy) + +func updateEnemies()->void: + var totalEnemies = 0 + for obj in enemies.get_children(): + if obj is Slime: + totalEnemies +=1 + #hook up a listener at game controller + if not obj.slimeDamageSignal.is_connected(Gamecontroller._on_slime_damage): + obj.slimeDamageSignal.connect(Gamecontroller._on_slime_damage) + Gamecontroller.addEnemyToLevel(obj) + + Gamecontroller.totalEnemies(totalEnemies) + +func updateCoins()->void: + var totalCoins = 0 + + for obj in coins.get_children(): + if obj is Coin: + if not obj.coinCollectedSignal.is_connected(Gamecontroller._on_coin_collected): + #hook up a listener at the game controller + obj.coinCollectedSignal.connect(Gamecontroller._on_coin_collected) + if not obj.tree_exited.is_connected(updateCoins): + obj.tree_exited.connect(updateCoins) + totalCoins +=1 + #tell GC how many coins total + Gamecontroller.totalCoins(totalCoins) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): pass @@ -43,7 +61,8 @@ func bulletFactory()->Bullet: if bulletArray.size() < totalAllowedBullets: #make a new bullet myBullet = bullet.instantiate() - game.add_child(myBullet) + myBullet.bulletDamageSignal.connect(Gamecontroller.bulletDamage) + owner.add_child(myBullet) else: myBullet = bulletArray.pop_back() @@ -59,6 +78,13 @@ func makeBullet(_bulletPosition, _bulletSpeed)->void: func makeGrenade(_grenadePosition, _grenadeDirection)->void: print("SM make a grenade") var myGrenade:Grenade = grenade.instantiate() - game.add_child(myGrenade) + owner.add_child(myGrenade) myGrenade.apply_central_impulse(Vector2(_grenadeDirection, -1)*200) myGrenade.transform = _grenadePosition + +func changeScene(level)->void: + print("Change to level "+level) + get_tree().call_deferred("change_scene_to_file", level) + +func destroy(body)->void: + body.queue_free() diff --git a/scripts/slime.gd b/scripts/slime.gd index cb05922..0350297 100644 --- a/scripts/slime.gd +++ b/scripts/slime.gd @@ -1,4 +1,11 @@ class_name Slime extends Area2D +@onready var right_cast = $RightCast +@onready var left_cast = $LeftCast +@onready var right_down_cast = $RightDownCast +@onready var left_down_cast = $LeftDownCast + +var speed:int = 100 +var direction = 1 signal slimeDamageSignal(body, slime) # Called when the node enters the scene tree for the first time. @@ -8,7 +15,7 @@ func _ready(): # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): - pass + position.x += direction * speed * delta func _on_body_entered(body):