diff --git a/game/characters/abstract_enemy.gd b/game/characters/abstract_enemy.gd index 86eef5f..9ca55f3 100644 --- a/game/characters/abstract_enemy.gd +++ b/game/characters/abstract_enemy.gd @@ -115,6 +115,7 @@ func _physics_process(delta: float) -> void: _update_x_velocity(DIRECTION_RIGHT, MAX_WALK_SPEED, delta) _check_wall_collision_and_switch_state(DIRECTION_RIGHT) State.LookAround: + _update_x_velocity(0, MAX_WALK_SPEED * 2, delta) if not _target_found: var close_rays : Array[RayCast2D] = [left_player_close_ray, right_player_close_ray] _target_found = _process_player_rays(close_rays) @@ -144,6 +145,7 @@ func _set_state(value: State) -> void: func _process_player_ray(ray: RayCast2D) -> bool: if ray.is_colliding(): + ray.force_raycast_update() var collider := ray.get_collider() if collider is Player: _target_x = collider.position.x diff --git a/game/characters/abstract_enemy.tscn b/game/characters/abstract_enemy.tscn index 336f1c4..64c56f2 100644 --- a/game/characters/abstract_enemy.tscn +++ b/game/characters/abstract_enemy.tscn @@ -441,6 +441,7 @@ shape = SubResource("CapsuleShape2D_mocsw") [node name="PlayerKiller" parent="." instance=ExtResource("4_vecdo")] [node name="WallCheck" type="Node2D" parent="."] +position = Vector2(0, 9) [node name="LeftWallRay" type="RayCast2D" parent="WallCheck"] unique_name_in_owner = true @@ -451,6 +452,7 @@ unique_name_in_owner = true target_position = Vector2(16, 0) [node name="PlayerCloseCheck" type="Node2D" parent="."] +position = Vector2(0, 9) [node name="LeftPlayerCloseRay" type="RayCast2D" parent="PlayerCloseCheck"] unique_name_in_owner = true @@ -463,6 +465,7 @@ target_position = Vector2(48, 0) collision_mask = 0 [node name="PlayerDistantCheck" type="Node2D" parent="."] +position = Vector2(0, 9) [node name="LeftPlayerDistantRay" type="RayCast2D" parent="PlayerDistantCheck"] unique_name_in_owner = true diff --git a/game/doors/locked_door.gd b/game/doors/locked_door.gd index b8475a4..2772b0f 100644 --- a/game/doors/locked_door.gd +++ b/game/doors/locked_door.gd @@ -16,6 +16,7 @@ func _can_open(body: Node2D) -> bool: for pickup in body.get_node("Pickups").get_children(): if _is_key(pickup): + SoundManager.play_sfx_stream(SoundManager.sfx_stream_door_unlocking, global_position) body.remove_pickup(pickup) _unlocked = true return true diff --git a/game/levels/abstract_level.gd b/game/levels/abstract_level.gd index be4d180..10999c4 100644 --- a/game/levels/abstract_level.gd +++ b/game/levels/abstract_level.gd @@ -2,7 +2,7 @@ class_name AbstractLevel extends Node2D -@export var player_falling_at_start: bool = false +@export var player_falling_at_start: bool = true @onready var player : Player = $Player diff --git a/game/levels/level_1.tscn b/game/levels/level_1.tscn index eed3515..b2c26c3 100644 --- a/game/levels/level_1.tscn +++ b/game/levels/level_1.tscn @@ -57,6 +57,7 @@ physics_layer_0/collision_mask = 0 sources/0 = SubResource("TileSetAtlasSource_4ocoy") [node name="Level1" instance=ExtResource("1_15okj")] +player_falling_at_start = false [node name="OutdoorDoor" parent="Doors" index="0" instance=ExtResource("2_4ocoy")] position = Vector2(-363, -8) diff --git a/game/levels/level_2.tscn b/game/levels/level_2.tscn index 81eb7ca..c7f7e51 100644 --- a/game/levels/level_2.tscn +++ b/game/levels/level_2.tscn @@ -21,7 +21,6 @@ [ext_resource type="PackedScene" uid="uid://bmx60xftq8f2v" path="res://game/objects/mirror_s.tscn" id="17_ddwrs"] [node name="Level2" instance=ExtResource("1_t037v")] -player_falling_at_start = true [node name="LockedDoor" parent="Doors" index="0" instance=ExtResource("2_iakit")] position = Vector2(-48, 296) diff --git a/game/levels/level_3.tscn b/game/levels/level_3.tscn index 5ba69fc..f0fd58a 100644 --- a/game/levels/level_3.tscn +++ b/game/levels/level_3.tscn @@ -23,7 +23,6 @@ [ext_resource type="PackedScene" uid="uid://c6qy8uybkn4x" path="res://game/objects/plate.tscn" id="20_b1jnq"] [node name="Level3" instance=ExtResource("1_4awbs")] -player_falling_at_start = true [node name="Room1Door" parent="Doors" index="0" instance=ExtResource("2_rvmgs")] position = Vector2(336, 440) diff --git a/game/levels/level_4.tscn b/game/levels/level_4.tscn new file mode 100644 index 0000000..2d4ff89 --- /dev/null +++ b/game/levels/level_4.tscn @@ -0,0 +1,278 @@ +[gd_scene load_steps=24 format=4 uid="uid://cmp1cog2cbfh5"] + +[ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_v1h2f"] +[ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="2_h35x0"] +[ext_resource type="PackedScene" uid="uid://bv2gahb4wxgb1" path="res://game/characters/white_enemy.tscn" id="3_2vfi4"] +[ext_resource type="PackedScene" uid="uid://b7imlh4sl036i" path="res://game/doors/square_door.tscn" id="3_qpxtm"] +[ext_resource type="PackedScene" uid="uid://cvhovmnl050os" path="res://game/objects/wardrobe.tscn" id="4_mpb5r"] +[ext_resource type="PackedScene" uid="uid://ciubf1ttwc133" path="res://game/pickups/square_key_pickup.tscn" id="4_p0pgv"] +[ext_resource type="PackedScene" uid="uid://b8pvlnpdnfmd0" path="res://game/objects/chair_f.tscn" id="5_i374g"] +[ext_resource type="PackedScene" uid="uid://cb0w6mt8g4mer" path="res://game/characters/gray_enemy.tscn" id="5_p0pgv"] +[ext_resource type="PackedScene" uid="uid://c6qy8uybkn4x" path="res://game/objects/plate.tscn" id="6_gwfl1"] +[ext_resource type="PackedScene" uid="uid://cutjutvd8dqqc" path="res://game/characters/black_enemy.tscn" id="7_12tya"] +[ext_resource type="PackedScene" uid="uid://bdwbdnbenueu1" path="res://game/objects/table_m.tscn" id="7_fxyr3"] +[ext_resource type="PackedScene" uid="uid://d3m8kf7lqmyb8" path="res://game/objects/flask_l.tscn" id="8_pp088"] +[ext_resource type="PackedScene" uid="uid://bt4smb361amjj" path="res://game/objects/flask_s.tscn" id="9_gtr04"] +[ext_resource type="PackedScene" uid="uid://c0bk5sk661hi1" path="res://game/objects/painting_h_s.tscn" id="10_c6guj"] +[ext_resource type="PackedScene" uid="uid://dwnalr4rphui0" path="res://game/objects/candle.tscn" id="11_gtkf3"] +[ext_resource type="PackedScene" uid="uid://b3kyqvuxmfn8f" path="res://game/objects/fireplace.tscn" id="12_s735u"] +[ext_resource type="PackedScene" uid="uid://dopjsft0y8mw5" path="res://game/objects/cabinet.tscn" id="13_rnrg1"] +[ext_resource type="PackedScene" uid="uid://bo7756lp68bl1" path="res://game/objects/painting_v_s.tscn" id="14_4ncxq"] +[ext_resource type="PackedScene" uid="uid://crccdk7wmuqig" path="res://game/objects/painting_h_l.tscn" id="15_sqm4v"] +[ext_resource type="PackedScene" uid="uid://x82wjrsqdfd" path="res://game/objects/chair_l.tscn" id="16_had2m"] +[ext_resource type="PackedScene" uid="uid://b6wgujelmka5p" path="res://game/objects/chair_r.tscn" id="17_fovvg"] +[ext_resource type="PackedScene" uid="uid://baqawh1drerhk" path="res://game/objects/table_s.tscn" id="18_0iuyy"] +[ext_resource type="PackedScene" uid="uid://d330w1ygg6uxy" path="res://game/objects/painting_v_l.tscn" id="19_s735u"] + +[node name="Level4" instance=ExtResource("1_v1h2f")] + +[node name="Room1Door" parent="Doors" index="0" instance=ExtResource("2_h35x0")] +position = Vector2(176, 280) + +[node name="Room2Door" parent="Doors" index="1" instance=ExtResource("2_h35x0")] +position = Vector2(352, 280) + +[node name="Room4Door" parent="Doors" index="2" instance=ExtResource("2_h35x0")] +position = Vector2(640, 568) + +[node name="Room5Door" parent="Doors" index="3" instance=ExtResource("2_h35x0")] +position = Vector2(992, 568) + +[node name="Room6Door" parent="Doors" index="4" instance=ExtResource("2_h35x0")] +position = Vector2(1283, 568) + +[node name="SquareDoor" parent="Doors" index="5" instance=ExtResource("3_qpxtm")] +position = Vector2(531, 568) + +[node name="Room1" type="Node2D" parent="Objects" index="0"] +position = Vector2(74, 257) + +[node name="Wardrobe" parent="Objects/Room1" index="0" instance=ExtResource("4_mpb5r")] +position = Vector2(-74, 25) + +[node name="ChairF" parent="Objects/Room1" index="1" instance=ExtResource("5_i374g")] +position = Vector2(-14, 33) + +[node name="Plate" parent="Objects/Room1" index="2" instance=ExtResource("6_gwfl1")] +position = Vector2(5, 28) + +[node name="TableM" parent="Objects/Room1" index="3" instance=ExtResource("7_fxyr3")] +position = Vector2(-9, 38) + +[node name="FlaskL_1" parent="Objects/Room1" index="4" instance=ExtResource("8_pp088")] +position = Vector2(-19, 23) + +[node name="FlaskS_1" parent="Objects/Room1" index="5" instance=ExtResource("9_gtr04")] +position = Vector2(-3, 24) + +[node name="FlaskL_2" parent="Objects/Room1" index="6" instance=ExtResource("8_pp088")] +position = Vector2(-7, 23) + +[node name="FlaskS_2" parent="Objects/Room1" index="7" instance=ExtResource("9_gtr04")] +position = Vector2(-13, 24) + +[node name="PaintingHS" parent="Objects/Room1" index="8" instance=ExtResource("10_c6guj")] +position = Vector2(32, -3) + +[node name="Room2" type="Node2D" parent="Objects" index="1"] +position = Vector2(257, 256) + +[node name="Candle1" parent="Objects/Room2" index="0" instance=ExtResource("11_gtkf3")] +position = Vector2(-35, 23) + +[node name="Candle2" parent="Objects/Room2" index="1" instance=ExtResource("11_gtkf3")] +position = Vector2(-14, 21) + +[node name="FlaskS" parent="Objects/Room2" index="2" instance=ExtResource("9_gtr04")] +position = Vector2(-26, 20) + +[node name="Fireplace" parent="Objects/Room2" index="3" instance=ExtResource("12_s735u")] +position = Vector2(-24, 32) + +[node name="Room3" type="Node2D" parent="Objects" index="2"] +position = Vector2(461, 244) + +[node name="Cabinet" parent="Objects/Room3" index="0" instance=ExtResource("13_rnrg1")] +position = Vector2(-65, 49) + +[node name="PaintingVS" parent="Objects/Room3" index="1" instance=ExtResource("14_4ncxq")] +position = Vector2(-48, -10) + +[node name="PaintingHL" parent="Objects/Room3" index="2" instance=ExtResource("15_sqm4v")] +position = Vector2(37, -7) + +[node name="Room4" type="Node2D" parent="Objects" index="3"] +position = Vector2(572, 544) + +[node name="FlaskL" parent="Objects/Room4" index="0" instance=ExtResource("8_pp088")] +position = Vector2(13, -1) + +[node name="Wardrobe" parent="Objects/Room4" index="1" instance=ExtResource("4_mpb5r")] +position = Vector2(7, 25) + +[node name="Room5" type="Node2D" parent="Objects" index="4"] +position = Vector2(808, 533) + +[node name="PaintingHL_1" parent="Objects/Room5" index="0" instance=ExtResource("15_sqm4v")] +position = Vector2(-64, -30) + +[node name="PaintingHL_2" parent="Objects/Room5" index="1" instance=ExtResource("15_sqm4v")] +position = Vector2(64, -30) + +[node name="Table_1" type="Node2D" parent="Objects/Room5" index="2"] +position = Vector2(-78, 66) + +[node name="ChairL" parent="Objects/Room5/Table_1" index="0" instance=ExtResource("16_had2m")] +position = Vector2(9, -5) + +[node name="ChairL2" parent="Objects/Room5/Table_1" index="1" instance=ExtResource("16_had2m")] +position = Vector2(11, -5) + +[node name="ChairL3" parent="Objects/Room5/Table_1" index="2" instance=ExtResource("16_had2m")] +position = Vector2(14, -5) + +[node name="ChairR" parent="Objects/Room5/Table_1" index="3" instance=ExtResource("17_fovvg")] +position = Vector2(-9, -5) + +[node name="ChairR2" parent="Objects/Room5/Table_1" index="4" instance=ExtResource("17_fovvg")] +position = Vector2(-12, -5) + +[node name="TableS" parent="Objects/Room5/Table_1" index="5" instance=ExtResource("18_0iuyy")] + +[node name="Plate" parent="Objects/Room5/Table_1" index="6" instance=ExtResource("6_gwfl1")] +position = Vector2(0, -9) + +[node name="Plate2" parent="Objects/Room5/Table_1" index="7" instance=ExtResource("6_gwfl1")] +position = Vector2(6, -9) + +[node name="Plate3" parent="Objects/Room5/Table_1" index="8" instance=ExtResource("6_gwfl1")] +position = Vector2(-5, -9) + +[node name="Table_2" type="Node2D" parent="Objects/Room5" index="3"] +position = Vector2(-22, 66) + +[node name="ChairL" parent="Objects/Room5/Table_2" index="0" instance=ExtResource("16_had2m")] +position = Vector2(10, -5) + +[node name="ChairL2" parent="Objects/Room5/Table_2" index="1" instance=ExtResource("16_had2m")] +position = Vector2(13, -5) + +[node name="ChairR" parent="Objects/Room5/Table_2" index="2" instance=ExtResource("17_fovvg")] +position = Vector2(-10, -5) + +[node name="ChairR2" parent="Objects/Room5/Table_2" index="3" instance=ExtResource("17_fovvg")] +position = Vector2(-13, -5) + +[node name="TableS" parent="Objects/Room5/Table_2" index="4" instance=ExtResource("18_0iuyy")] + +[node name="Plate" parent="Objects/Room5/Table_2" index="5" instance=ExtResource("6_gwfl1")] +position = Vector2(-5, -9) + +[node name="Plate2" parent="Objects/Room5/Table_2" index="6" instance=ExtResource("6_gwfl1")] +position = Vector2(7, -9) + +[node name="Plate3" parent="Objects/Room5/Table_2" index="7" instance=ExtResource("6_gwfl1")] +position = Vector2(0, -9) + +[node name="Table_3" type="Node2D" parent="Objects/Room5" index="4"] +position = Vector2(29, 66) + +[node name="ChairL" parent="Objects/Room5/Table_3" index="0" instance=ExtResource("16_had2m")] +position = Vector2(9, -5) + +[node name="ChairL2" parent="Objects/Room5/Table_3" index="1" instance=ExtResource("16_had2m")] +position = Vector2(11, -5) + +[node name="ChairR" parent="Objects/Room5/Table_3" index="2" instance=ExtResource("17_fovvg")] +position = Vector2(-13, -5) + +[node name="ChairR2" parent="Objects/Room5/Table_3" index="3" instance=ExtResource("17_fovvg")] +position = Vector2(-10, -5) + +[node name="TableS" parent="Objects/Room5/Table_3" index="4" instance=ExtResource("18_0iuyy")] + +[node name="Plate" parent="Objects/Room5/Table_3" index="5" instance=ExtResource("6_gwfl1")] +position = Vector2(0, -9) + +[node name="Plate2" parent="Objects/Room5/Table_3" index="6" instance=ExtResource("6_gwfl1")] +position = Vector2(6, -9) + +[node name="Plate3" parent="Objects/Room5/Table_3" index="7" instance=ExtResource("6_gwfl1")] +position = Vector2(-6, -9) + +[node name="Table_4" type="Node2D" parent="Objects/Room5" index="5"] +position = Vector2(85, 66) + +[node name="ChairL" parent="Objects/Room5/Table_4" index="0" instance=ExtResource("16_had2m")] +position = Vector2(10, -5) + +[node name="ChairL2" parent="Objects/Room5/Table_4" index="1" instance=ExtResource("16_had2m")] +position = Vector2(13, -5) + +[node name="ChairL3" parent="Objects/Room5/Table_4" index="2" instance=ExtResource("16_had2m")] +position = Vector2(16, -5) + +[node name="ChairR" parent="Objects/Room5/Table_4" index="3" instance=ExtResource("17_fovvg")] +position = Vector2(-14, -5) + +[node name="ChairR2" parent="Objects/Room5/Table_4" index="4" instance=ExtResource("17_fovvg")] +position = Vector2(-11, -5) + +[node name="ChairR3" parent="Objects/Room5/Table_4" index="5" instance=ExtResource("17_fovvg")] +position = Vector2(-20, -5) + +[node name="TableS" parent="Objects/Room5/Table_4" index="6" instance=ExtResource("18_0iuyy")] + +[node name="Plate" parent="Objects/Room5/Table_4" index="7" instance=ExtResource("6_gwfl1")] +position = Vector2(-6, -9) + +[node name="Plate2" parent="Objects/Room5/Table_4" index="8" instance=ExtResource("6_gwfl1")] +position = Vector2(1, -9) + +[node name="Plate3" parent="Objects/Room5/Table_4" index="9" instance=ExtResource("6_gwfl1")] +position = Vector2(6, -9) + +[node name="Room6" type="Node2D" parent="Objects" index="5"] +position = Vector2(1124, 533) + +[node name="PaintingVL" parent="Objects/Room6" index="0" instance=ExtResource("19_s735u")] +position = Vector2(-69, 23) + +[node name="PaintingHS" parent="Objects/Room6" index="1" instance=ExtResource("10_c6guj")] +position = Vector2(-11, 29) + +[node name="PaintingVS" parent="Objects/Room6" index="2" instance=ExtResource("14_4ncxq")] +position = Vector2(46, 25) + +[node name="SquareKeyPickup" parent="Pickups" index="0" instance=ExtResource("4_p0pgv")] +position = Vector2(1312, 560) + +[node name="WhiteEnemy" parent="Enemies" index="0" instance=ExtResource("3_2vfi4")] +position = Vector2(258, 289) +type = 1 +initial_state = 1 + +[node name="GrayEnemy" parent="Enemies" index="1" instance=ExtResource("5_p0pgv")] +position = Vector2(796, 592) +type = 1 +initial_state = 1 + +[node name="BlackEnemy" parent="Enemies" index="2" instance=ExtResource("7_12tya")] +position = Vector2(1162, 592) +type = 1 +initial_state = 1 + +[node name="GrayWalls" parent="Tiles" index="0"] +tile_map_data = PackedByteArray("AAD+////AAACAAEAAAD+//7/AAACAAEAAAD+//3/AAACAAEAAAD+//z/AAACAAEAAAD+//v/AAACAAEAAAD+//r/AAACAAEAAAD+//n/AAACAAEAAAD+//j/AAACAAEAAAD+//f/AAACAAEAAAD+//b/AAACAAEAAAD+//X/AAACAAEAAAD+//T/AAACAAEAAAD+/wAAAAACAAEAAAD+/wEAAAACAAEAAAD+/wIAAAACAAEAAAD+/wMAAAACAAEAAAD+/wQAAAACAAEAAAD+/wUAAAACAAEAAAD+/wYAAAACAAEAAAD+/wcAAAACAAEAAAD+/wgAAAACAAEAAAD+/wkAAAACAAEAAAD+/woAAAACAAEAAAD+/wsAAAACAAEAAAABAAoAAAAAAAEAAAABAAkAAAAAAAEAAAABAAgAAAAAAAEAAAABAAcAAAAAAAEAAAABAAYAAAAAAAEAAAABAAUAAAAAAAEAAAABAAQAAAAAAAEAAAABAAMAAAAAAAEAAAABAAIAAAAAAAEAAAABAAEAAAAAAAEAAAABAAAAAAAAAAEAAAABAP//AAAAAAEAAAABAP7/AAAAAAEAAAABAP3/AAAAAAEAAAABAPz/AAAAAAEAAAABAPv/AAAAAAEAAAABAPr/AAAAAAEAAAABAPn/AAAAAAEAAAABAPj/AAAAAAEAAAABAPf/AAAAAAEAAAABAPb/AAAAAAEAAAABAPX/AAAAAAEAAAABAPT/AAAAAAEAAAD+/wwAAAACAAEAAAD+/w0AAAACAAEAAAD+/w4AAAACAAEAAAD+/w8AAAACAAEAAAD+/xAAAAACAAEAAAD+/xEAAAACAAEAAAD+/xIAAAACAAEAAAD//xMAAAABAAAAAAAAABMAAAABAAAAAAABABMAAAABAAAAAAACABMAAAABAAAAAAADABMAAAABAAAAAAAEABMAAAABAAAAAAAFABMAAAABAAAAAAAGABMAAAABAAAAAAAHABMAAAABAAAAAAAIABMAAAABAAAAAAAJABMAAAABAAAAAAD+/xMAAAADAAEAAAAKABMAAAABAAAAAAALABMAAAABAAAAAAAMABMAAAABAAAAAAANABMAAAABAAAAAAAOABMAAAABAAAAAAAPABMAAAABAAAAAAAQABMAAAABAAAAAAARABMAAAABAAAAAAAKAA4AAAAGAAEAAAAKAA8AAAAGAAIAAAAVAA4AAAAGAAEAAAAVAA8AAAAGAAIAAAASABMAAAABAAAAAAATABMAAAABAAAAAAAUABMAAAABAAAAAAAVABMAAAABAAAAAAAWABMAAAABAAAAAAAXABMAAAABAAAAAAAYABMAAAABAAAAAAAZABMAAAABAAAAAAAaABMAAAAEAAEAAAAaABIAAAAAAAEAAAAaABEAAAAAAAAAAAAgABEAAAACAAQAAAAgABIAAAACAAEAAAAgABMAAAACAAEAAAAgABQAAAACAAEAAAAgABUAAAACAAEAAAAgABYAAAACAAEAAAAgABcAAAACAAEAAAAgABgAAAACAAEAAAAgABkAAAACAAEAAAAgABoAAAACAAEAAAAgABsAAAACAAEAAAAgABwAAAACAAEAAAAjAAwAAAAAAAEAAAAjAA0AAAAAAAEAAAAjAA4AAAAAAAEAAAAjAA8AAAAAAAEAAAAjABAAAAAAAAEAAAAjABEAAAAAAAEAAAAjABIAAAAAAAEAAAAjABMAAAAAAAEAAAAjABQAAAAAAAEAAAAjABUAAAAAAAEAAAAjABYAAAAAAAEAAAAjABcAAAAAAAEAAAAjABgAAAAAAAEAAAAjABkAAAAAAAEAAAAjABoAAAAAAAEAAAAjABsAAAAAAAEAAAAjABwAAAAAAAEAAAAbABEAAAABAAAAAAAcABEAAAABAAAAAAAdABEAAAABAAAAAAAeABEAAAABAAAAAAAfABEAAAABAAAAAAAgAB0AAAACAAEAAAAgAB4AAAACAAEAAAAgAB8AAAACAAEAAAAgACAAAAACAAEAAAAgACEAAAACAAIAAAAhACUAAAABAAAAAAAiACUAAAABAAAAAAAjACUAAAABAAAAAAAkACUAAAABAAAAAAAlACUAAAABAAAAAAAmACUAAAABAAAAAAAnACUAAAABAAAAAAAoACUAAAABAAAAAAApACUAAAABAAAAAAAqACUAAAACAAAAAAAnACAAAAAGAAEAAAAnACEAAAAGAAIAAAAnAB0AAAACAAEAAAAnAB4AAAACAAEAAAAnAB8AAAACAAEAAAAgACUAAAABAAAAAAAfACUAAAABAAAAAAAfACEAAAABAAIAAAAeACEAAAABAAIAAAAdACEAAAABAAIAAAAcACEAAAABAAIAAAAbACEAAAABAAIAAAAaACEAAAABAAIAAAAeACUAAAABAAAAAAAdACUAAAABAAAAAAAcACUAAAABAAAAAAAbACUAAAABAAAAAAAaACUAAAABAAAAAAAZACUAAAAAAAAAAAAZACEAAAABAAIAAAAYACEAAAABAAIAAAAXACEAAAABAAIAAAAWACEAAAADAAAAAAAZACYAAAAAAAEAAAAZACcAAAAAAAEAAAAZACgAAAAAAAEAAAAZACkAAAAAAAEAAAAZACoAAAAAAAEAAAAZACsAAAAAAAEAAAAZACwAAAAAAAEAAAAZAC0AAAAAAAEAAAAZAC4AAAAAAAEAAAAZAC8AAAAAAAEAAAAZADAAAAAAAAEAAAAZADEAAAAAAAEAAAAZADIAAAAAAAEAAAAZADMAAAAAAAEAAAAZADQAAAAAAAEAAAAZADUAAAAAAAEAAAAZADYAAAAAAAEAAAAZADcAAAAAAAEAAAAWACIAAAACAAEAAAAWACMAAAACAAEAAAAWACQAAAACAAEAAAAWACUAAAACAAEAAAAWACYAAAACAAEAAAAWACcAAAACAAEAAAAWACgAAAACAAEAAAAWACkAAAACAAEAAAAWACoAAAACAAEAAAAWACsAAAACAAEAAAAWACwAAAACAAEAAAAWAC0AAAACAAEAAAAWAC4AAAACAAEAAAAWAC8AAAACAAEAAAAWADAAAAACAAEAAAAWADEAAAACAAEAAAAWADIAAAACAAEAAAAWADMAAAACAAEAAAAWADQAAAACAAEAAAAWADUAAAACAAEAAAAWADYAAAACAAEAAAAWADcAAAACAAEAAAAWADgAAAACAAEAAAAWADkAAAACAAEAAAAWADoAAAACAAEAAAAWADsAAAACAAEAAAAWADwAAAACAAEAAAAWAD0AAAACAAEAAAAWAD4AAAACAAEAAAAWAD8AAAACAAEAAAAWAEAAAAACAAEAAAAZADgAAAAAAAEAAAAZADkAAAAAAAEAAAAZADoAAAAAAAEAAAAZADsAAAAAAAEAAAAZADwAAAAAAAEAAAAZAD0AAAAAAAEAAAAZAD4AAAAAAAEAAAAZAD8AAAAAAAEAAAAZAEAAAAAAAAEAAAAZAEEAAAAAAAEAAAAWAEEAAAACAAEAAAAnABwAAAADAAAAAAAoABwAAAABAAIAAAApABwAAAABAAIAAAAqABwAAAABAAIAAAArABwAAAABAAIAAAAsABwAAAABAAIAAAAtABwAAAABAAIAAAAuABwAAAABAAIAAAAvABwAAAABAAIAAAAwABwAAAABAAIAAAAxABwAAAABAAIAAAAyABwAAAACAAYAAAAzABwAAAABAAIAAAA0ABwAAAABAAIAAAA1ABwAAAABAAIAAAA2ABwAAAABAAIAAAA3ABwAAAABAAIAAAA4ABwAAAABAAIAAAA5ABwAAAABAAIAAAA6ABwAAAABAAIAAAA7ABwAAAABAAIAAAA9ABwAAAAEAAAAAAA8ABwAAAABAAIAAAA9AB0AAAAAAAEAAAA9AB4AAAAAAAEAAAA9AB8AAAAAAAEAAAA9ACAAAAAGAAEAAAA9ACEAAAAGAAIAAAA6ACUAAAAAAAAAAAA7ACUAAAABAAAAAAA8ACUAAAABAAAAAAA9ACUAAAABAAAAAAAqACYAAAADAAEAAAA5ACYAAAABAAAAAAA4ACYAAAABAAAAAAA3ACYAAAABAAAAAAA2ACYAAAABAAAAAAA1ACYAAAABAAAAAAA0ACYAAAABAAAAAAAzACYAAAABAAAAAAAyACYAAAABAAAAAAAxACYAAAABAAAAAAAwACYAAAABAAAAAAAvACYAAAABAAAAAAAuACYAAAABAAAAAAAtACYAAAABAAAAAAAsACYAAAABAAAAAAArACYAAAABAAAAAAA6ACYAAAAEAAEAAAA+ACUAAAACAAAAAABNACUAAAAAAAAAAABOACUAAAABAAAAAABPACUAAAABAAAAAABQACUAAAABAAAAAABRACUAAAABAAAAAABSACUAAAABAAAAAABTACUAAAABAAAAAABOACAAAAAAAAEAAABOACEAAAAAAAIAAABPACEAAAACAAIAAABQACAAAAABAAIAAABRACAAAAABAAIAAABSACAAAAABAAIAAABTACAAAAABAAIAAABUACAAAAAEAAAAAABUACUAAAAEAAEAAABUACEAAAAAAAEAAABUACIAAAAAAAEAAABUACMAAAAAAAEAAABUACQAAAAAAAEAAABNACYAAAAAAAEAAAA+ACYAAAACAAEAAABNACcAAAAAAAEAAABNACgAAAAAAAEAAAA+ACcAAAACAAEAAAA+ACgAAAACAAEAAAA+ACkAAAACAAEAAABNACkAAAAAAAEAAAA/ACkAAAABAAIAAABAACkAAAABAAIAAABBACkAAAABAAIAAABCACkAAAABAAIAAABDACkAAAABAAIAAABEACkAAAABAAIAAABFACkAAAABAAIAAABGACkAAAABAAIAAABHACkAAAABAAIAAABIACkAAAABAAIAAABJACkAAAABAAIAAABKACkAAAABAAIAAABLACkAAAABAAIAAABMACkAAAABAAIAAAA=") + +[node name="BlackWalls" parent="Tiles" index="1"] +tile_map_data = PackedByteArray("AAAhABEAAAABAAAAAAAiABEAAAABAAAAAAA/ACYAAAABAAAAAABAACYAAAABAAAAAABBACYAAAABAAAAAABCACYAAAABAAAAAABDACYAAAABAAAAAABEACYAAAABAAAAAABFACYAAAABAAAAAABGACYAAAABAAAAAABHACYAAAABAAAAAABIACYAAAABAAAAAABJACYAAAABAAAAAABKACYAAAABAAAAAABLACYAAAABAAAAAABMACYAAAABAAAAAAA=") + +[node name="WhiteWalls" parent="Tiles" index="2"] +tile_map_data = PackedByteArray("AAABAAsAAAAAAAIAAAACAAsAAAABAAIAAAADAAsAAAABAAIAAAAEAAsAAAABAAIAAAAFAAsAAAABAAIAAAAGAAsAAAABAAIAAAAHAAsAAAABAAIAAAAIAAsAAAABAAIAAAAKAAsAAAABAAcAAAAJAAsAAAABAAIAAAAKAAwAAAAGAAEAAAAKAA0AAAAGAAEAAAALAAsAAAABAAIAAAAMAAsAAAABAAIAAAANAAsAAAABAAIAAAAOAAsAAAABAAIAAAAPAAsAAAABAAIAAAAQAAsAAAABAAIAAAARAAsAAAABAAIAAAASAAsAAAABAAIAAAATAAsAAAABAAIAAAAUAAsAAAABAAIAAAAVAAsAAAABAAcAAAAVAAwAAAAGAAEAAAAVAA0AAAAGAAEAAAAWAAsAAAABAAIAAAAXAAsAAAABAAIAAAAYAAsAAAABAAIAAAAZAAsAAAABAAIAAAAaAAsAAAABAAIAAAAbAAsAAAABAAIAAAAcAAsAAAABAAIAAAAdAAsAAAABAAIAAAAeAAsAAAABAAIAAAAfAAsAAAABAAIAAAAgAAsAAAABAAIAAAAhAAsAAAABAAIAAAAiAAsAAAABAAIAAAAjAAsAAAAEAAAAAAAjAB0AAAAAAAIAAAAkAB0AAAABAAIAAAAlAB0AAAABAAIAAAAmAB0AAAABAAIAAAAnAB4AAAAAAAEAAAAnAB8AAAAAAAEAAAAnAB0AAAAEAAAAAAAoACEAAAABAAAAAAApACEAAAABAAAAAAAqACEAAAACAAAAAAAqACIAAAADAAEAAAArACIAAAABAAAAAAAsACIAAAABAAAAAAAtACIAAAABAAAAAAAuACIAAAABAAAAAAAvACIAAAABAAAAAAAwACIAAAABAAAAAAAxACIAAAABAAAAAAAyACIAAAABAAAAAAAzACIAAAABAAAAAAA0ACIAAAABAAAAAAA1ACIAAAABAAAAAAA2ACIAAAABAAAAAAA3ACIAAAABAAAAAAA4ACIAAAABAAAAAAA5ACIAAAABAAAAAAA6ACIAAAAEAAEAAAA6ACEAAAAAAAAAAAA7ACEAAAABAAAAAAA8ACEAAAABAAAAAAA9AB0AAAADAAAAAAA9AB4AAAACAAEAAAA9AB8AAAACAAEAAAA+AB0AAAABAAIAAAA/AB0AAAABAAIAAABAAB0AAAABAAIAAABBAB0AAAABAAIAAABCAB0AAAABAAIAAABDAB0AAAABAAIAAABEAB0AAAABAAIAAABFAB0AAAABAAIAAABGAB0AAAABAAIAAABHAB0AAAABAAIAAABIAB0AAAABAAIAAABJAB0AAAABAAIAAABKAB0AAAABAAIAAABLAB0AAAABAAIAAABMAB0AAAABAAIAAABNAB0AAAABAAIAAABOAB0AAAAEAAAAAABOAB4AAAAAAAEAAABOAB8AAAAAAAEAAAAyACEAAAAGAAEAAAAyACAAAAAGAAEAAAAyAB8AAAAGAAEAAAAyAB4AAAAGAAEAAAAyAB0AAAAGAAEAAAA=") + +[node name="Traps" parent="Tiles" index="3"] +tile_map_data = PackedByteArray("AAA/ACcAAAAAAAAAAABAACcAAAAAAAAAAABBACcAAAAAAAAAAABCACcAAAAAAAAAAABDACcAAAAAAAAAAABEACcAAAAAAAAAAABFACcAAAAAAAAAAABGACcAAAAAAAAAAABHACcAAAAAAAAAAABIACcAAAAAAAAAAABJACcAAAAAAAAAAABKACcAAAAAAAAAAABLACcAAAAAAAAAAABMACcAAAAAAAAAAAA/ACgAAAAAAAEAAABAACgAAAAAAAEAAABBACgAAAAAAAEAAABCACgAAAAAAAEAAABDACgAAAAAAAEAAABEACgAAAAAAAEAAABFACgAAAAAAAEAAABGACgAAAAAAAEAAABHACgAAAAAAAEAAABIACgAAAAAAAEAAABJACgAAAAAAAEAAABKACgAAAAAAAEAAABLACgAAAAAAAEAAABMACgAAAAAAAEAAABMACkAAAAAAAEAAABLACkAAAAAAAEAAABKACkAAAAAAAEAAABJACkAAAAAAAEAAABIACkAAAAAAAEAAABHACkAAAAAAAEAAABGACkAAAAAAAEAAABFACkAAAAAAAEAAABEACkAAAAAAAEAAABDACkAAAAAAAEAAABCACkAAAAAAAEAAABBACkAAAAAAAEAAABAACkAAAAAAAEAAAA/ACkAAAAAAAEAAAA=") + +[node name="LevelEnd" parent="." index="7"] +position = Vector2(384, 812) diff --git a/game/levels/level_5.tscn b/game/levels/level_5.tscn new file mode 100644 index 0000000..088e608 --- /dev/null +++ b/game/levels/level_5.tscn @@ -0,0 +1,195 @@ +[gd_scene load_steps=22 format=4 uid="uid://brysu1p6fw88n"] + +[ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_v1h2f"] +[ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="2_2vfi4"] +[ext_resource type="PackedScene" uid="uid://g0n5npbt3hb2" path="res://game/doors/circle_door.tscn" id="3_3jny0"] +[ext_resource type="PackedScene" uid="uid://b7imlh4sl036i" path="res://game/doors/square_door.tscn" id="4_qpxtm"] +[ext_resource type="PackedScene" uid="uid://dwvv5dj8lqif2" path="res://game/doors/triangle_door.tscn" id="5_p0pgv"] +[ext_resource type="PackedScene" uid="uid://c4gqqhlew67ay" path="res://game/pickups/circle_key_pickup.tscn" id="6_r6jdw"] +[ext_resource type="PackedScene" uid="uid://b8pvlnpdnfmd0" path="res://game/objects/chair_f.tscn" id="6_t3mj1"] +[ext_resource type="PackedScene" uid="uid://c6qy8uybkn4x" path="res://game/objects/plate.tscn" id="7_mthp1"] +[ext_resource type="PackedScene" uid="uid://ciubf1ttwc133" path="res://game/pickups/square_key_pickup.tscn" id="7_u7kdy"] +[ext_resource type="PackedScene" uid="uid://b1cq0uor2sk6k" path="res://game/objects/table_l.tscn" id="8_mpb5r"] +[ext_resource type="PackedScene" uid="uid://dqgmfpv2mhdpn" path="res://game/pickups/triangle_key_pickup.tscn" id="8_xoocc"] +[ext_resource type="PackedScene" uid="uid://btpkbyyteewsh" path="res://game/objects/chair_b.tscn" id="9_i374g"] +[ext_resource type="PackedScene" uid="uid://crccdk7wmuqig" path="res://game/objects/painting_h_l.tscn" id="10_c6guj"] +[ext_resource type="PackedScene" uid="uid://d330w1ygg6uxy" path="res://game/objects/painting_v_l.tscn" id="11_fah6j"] +[ext_resource type="PackedScene" uid="uid://bo7756lp68bl1" path="res://game/objects/painting_v_s.tscn" id="12_gtkf3"] +[ext_resource type="PackedScene" uid="uid://bdwbdnbenueu1" path="res://game/objects/table_m.tscn" id="13_s735u"] +[ext_resource type="PackedScene" uid="uid://x82wjrsqdfd" path="res://game/objects/chair_l.tscn" id="13_vpoau"] +[ext_resource type="PackedScene" uid="uid://d3m8kf7lqmyb8" path="res://game/objects/flask_l.tscn" id="14_rnrg1"] +[ext_resource type="PackedScene" uid="uid://bvbjd5l447qjy" path="res://game/objects/retort_l.tscn" id="15_4ncxq"] +[ext_resource type="PackedScene" uid="uid://cpvsevdfmecrq" path="res://game/objects/retort_end_r.tscn" id="16_sqm4v"] +[ext_resource type="PackedScene" uid="uid://bt4smb361amjj" path="res://game/objects/flask_s.tscn" id="17_had2m"] + +[node name="Level4" instance=ExtResource("1_v1h2f")] + +[node name="HubDoor" parent="Doors" index="0" instance=ExtResource("2_2vfi4")] +position = Vector2(-206, 488) +scale = Vector2(-1, 1) + +[node name="HubCircleDoor" parent="Doors" index="1" instance=ExtResource("3_3jny0")] +position = Vector2(206, 488) + +[node name="HubSquareDoor" parent="Doors" index="2" instance=ExtResource("4_qpxtm")] +position = Vector2(-222, 343) +scale = Vector2(-1, 1) + +[node name="HubTriangleDoor" parent="Doors" index="3" instance=ExtResource("5_p0pgv")] +position = Vector2(222, 344) + +[node name="TriangleKeyDoor" parent="Doors" index="4" instance=ExtResource("2_2vfi4")] +position = Vector2(-925, 631) + +[node name="HubLevel1" type="Node2D" parent="Objects" index="0"] +position = Vector2(0, 491) + +[node name="ChairF_1_1" parent="Objects/HubLevel1" index="0" instance=ExtResource("6_t3mj1")] +position = Vector2(-70, 6) + +[node name="ChairF_1_2" parent="Objects/HubLevel1" index="1" instance=ExtResource("6_t3mj1")] +position = Vector2(-54, 6) + +[node name="ChairF_1_3" parent="Objects/HubLevel1" index="2" instance=ExtResource("6_t3mj1")] +position = Vector2(-39, 6) + +[node name="ChairF_1_4" parent="Objects/HubLevel1" index="3" instance=ExtResource("6_t3mj1")] +position = Vector2(-22, 6) + +[node name="Plate_1_1" parent="Objects/HubLevel1" index="4" instance=ExtResource("7_mthp1")] +position = Vector2(-76, 1) + +[node name="Plate_1_2" parent="Objects/HubLevel1" index="5" instance=ExtResource("7_mthp1")] +position = Vector2(-57, 1) + +[node name="Plate_1_3" parent="Objects/HubLevel1" index="6" instance=ExtResource("7_mthp1")] +position = Vector2(-41, 1) + +[node name="Plate_1_4" parent="Objects/HubLevel1" index="7" instance=ExtResource("7_mthp1")] +position = Vector2(-27, 1) + +[node name="Plate_1_5" parent="Objects/HubLevel1" index="8" instance=ExtResource("7_mthp1")] +position = Vector2(-16, 1) + +[node name="TableL1" parent="Objects/HubLevel1" index="9" instance=ExtResource("8_mpb5r")] +position = Vector2(-45, 11) + +[node name="ChairB_1_1" parent="Objects/HubLevel1" index="10" instance=ExtResource("9_i374g")] +position = Vector2(-68, 6) + +[node name="ChairB_1_2" parent="Objects/HubLevel1" index="11" instance=ExtResource("9_i374g")] +position = Vector2(-51, 6) + +[node name="ChairB_1_3" parent="Objects/HubLevel1" index="12" instance=ExtResource("9_i374g")] +position = Vector2(-37, 6) + +[node name="ChairB_1_4" parent="Objects/HubLevel1" index="13" instance=ExtResource("9_i374g")] +position = Vector2(-24, 6) + +[node name="ChairF_2_1" parent="Objects/HubLevel1" index="14" instance=ExtResource("6_t3mj1")] +position = Vector2(24, 6) + +[node name="ChairF_2_2" parent="Objects/HubLevel1" index="15" instance=ExtResource("6_t3mj1")] +position = Vector2(38, 6) + +[node name="ChairF_2_3" parent="Objects/HubLevel1" index="16" instance=ExtResource("6_t3mj1")] +position = Vector2(54, 6) + +[node name="ChairF_2_4" parent="Objects/HubLevel1" index="17" instance=ExtResource("6_t3mj1")] +position = Vector2(69, 6) + +[node name="Plate_2_1" parent="Objects/HubLevel1" index="18" instance=ExtResource("7_mthp1")] +position = Vector2(17, 1) + +[node name="Plate_2_2" parent="Objects/HubLevel1" index="19" instance=ExtResource("7_mthp1")] +position = Vector2(33, 1) + +[node name="Plate_2_3" parent="Objects/HubLevel1" index="20" instance=ExtResource("7_mthp1")] +position = Vector2(46, 1) + +[node name="Plate_2_4" parent="Objects/HubLevel1" index="21" instance=ExtResource("7_mthp1")] +position = Vector2(60, 1) + +[node name="Plate_2_5" parent="Objects/HubLevel1" index="22" instance=ExtResource("7_mthp1")] +position = Vector2(74, 1) + +[node name="TableL2" parent="Objects/HubLevel1" index="23" instance=ExtResource("8_mpb5r")] +position = Vector2(47, 11) + +[node name="ChairB_2_1" parent="Objects/HubLevel1" index="24" instance=ExtResource("9_i374g")] +position = Vector2(22, 6) + +[node name="ChairB_2_2" parent="Objects/HubLevel1" index="25" instance=ExtResource("9_i374g")] +position = Vector2(36, 6) + +[node name="ChairB_2_3" parent="Objects/HubLevel1" index="26" instance=ExtResource("9_i374g")] +position = Vector2(51, 6) + +[node name="ChairB_2_4" parent="Objects/HubLevel1" index="27" instance=ExtResource("9_i374g")] +position = Vector2(65, 6) + +[node name="PaintingHL_1" parent="Objects/HubLevel1" index="28" instance=ExtResource("10_c6guj")] +position = Vector2(-87, -30) + +[node name="PaintingHL_2" parent="Objects/HubLevel1" index="29" instance=ExtResource("10_c6guj")] +position = Vector2(87, -30) + +[node name="PaintingVL" parent="Objects/HubLevel1" index="30" instance=ExtResource("11_fah6j")] +position = Vector2(0, -57) + +[node name="PaintingVS_1" parent="Objects/HubLevel1" index="31" instance=ExtResource("12_gtkf3")] +position = Vector2(-38, -40) + +[node name="PaintingVS_2" parent="Objects/HubLevel1" index="32" instance=ExtResource("12_gtkf3")] +position = Vector2(38, -40) + +[node name="HubLevel2" type="Node2D" parent="Objects" index="1"] +position = Vector2(0, 354) + +[node name="ChairF" parent="Objects/HubLevel2" index="0" instance=ExtResource("6_t3mj1")] +position = Vector2(-6, 0) + +[node name="ChairL" parent="Objects/HubLevel2" index="1" instance=ExtResource("13_vpoau")] +position = Vector2(20, 0) + +[node name="TableM" parent="Objects/HubLevel2" index="2" instance=ExtResource("13_s735u")] +position = Vector2(0, 5) + +[node name="FlaskL" parent="Objects/HubLevel2" index="3" instance=ExtResource("14_rnrg1")] +position = Vector2(-12, -10) + +[node name="RetortL" parent="Objects/HubLevel2" index="4" instance=ExtResource("15_4ncxq")] +position = Vector2(4, -11) + +[node name="RetortEndR" parent="Objects/HubLevel2" index="5" instance=ExtResource("16_sqm4v")] +position = Vector2(-7, -11) + +[node name="FlaskS" parent="Objects/HubLevel2" index="6" instance=ExtResource("17_had2m")] +position = Vector2(0, -9) + +[node name="Plate" parent="Objects/HubLevel2" index="7" instance=ExtResource("7_mthp1")] +position = Vector2(12, -4) + +[node name="CircleKeyPickup" parent="Pickups" index="0" instance=ExtResource("6_r6jdw")] +position = Vector2(-232, 354) + +[node name="SquareKeyPickup" parent="Pickups" index="1" instance=ExtResource("7_u7kdy")] +position = Vector2(229, 358) + +[node name="TriangleKeyPickup" parent="Pickups" index="2" instance=ExtResource("8_xoocc")] +position = Vector2(-971, 636) + +[node name="GrayWalls" parent="Tiles" index="0"] +tile_map_data = PackedByteArray("AAABAPT/AAAAAAEAAAABAPX/AAAAAAEAAAABAPb/AAAAAAEAAAABAPf/AAAAAAEAAAABAPj/AAAAAAEAAAABAPn/AAAAAAEAAAABAPr/AAAAAAEAAAABAPv/AAAAAAEAAAABAPz/AAAAAAEAAAABAP3/AAAAAAEAAAABAP7/AAAAAAEAAAABAP//AAAAAAEAAAABAAAAAAAAAAEAAAABAAEAAAAAAAEAAAABAAIAAAAAAAEAAAABAAMAAAAAAAEAAAABAAQAAAAAAAEAAAABAAUAAAAAAAEAAAABAAYAAAAAAAEAAAABAAcAAAAAAAEAAAABAAgAAAAAAAEAAAABAAkAAAAAAAEAAAABAAoAAAAAAAEAAAABAAsAAAAAAAEAAAABAAwAAAAAAAEAAAABAA0AAAAAAAEAAAABAA4AAAAAAAEAAAD+/w4AAAACAAEAAAD+/w0AAAACAAEAAAD+/wwAAAACAAEAAAD+/wsAAAACAAEAAAD+/woAAAACAAEAAAD+/wkAAAACAAEAAAD+/wgAAAACAAEAAAD+/wcAAAACAAEAAAD+/wYAAAACAAEAAAD+/wUAAAACAAEAAAD+/wQAAAACAAEAAAD+/wMAAAACAAEAAAD+/wIAAAACAAEAAAD+/wEAAAACAAEAAAD+/wAAAAACAAEAAAD+////AAACAAEAAAD+//7/AAACAAEAAAD+//3/AAACAAEAAAD+//z/AAACAAEAAAD+//v/AAACAAEAAAD+//r/AAACAAEAAAD+//n/AAACAAEAAAD+//j/AAACAAEAAAD+//f/AAACAAEAAAD+//b/AAACAAEAAAD+//X/AAACAAEAAAD+//T/AAACAAEAAADz/xAAAAACAAEAAADz/xEAAAACAAEAAADz/xoAAAACAAAAAAAMABAAAAAAAAEAAAAMABEAAAAAAAEAAAAMABIAAAAAAAEAAAAMABMAAAAAAAIAAAAMABoAAAAAAAAAAADz/xMAAAACAAIAAADz/xIAAAACAAEAAADz/xwAAAACAAUAAADz/yAAAAABAAAAAAD0/yAAAAABAAAAAAD1/yAAAAABAAAAAAD2/yAAAAABAAAAAAD3/yAAAAABAAAAAAD4/yAAAAABAAAAAAD5/yAAAAABAAAAAAD6/yAAAAABAAAAAAD7/yAAAAABAAAAAAD8/yAAAAABAAAAAAD9/yAAAAABAAAAAAD+/yAAAAABAAAAAAD//yAAAAABAAAAAAAAACAAAAABAAAAAAABACAAAAABAAAAAAACACAAAAABAAAAAAADACAAAAABAAAAAAAEACAAAAABAAAAAAAFACAAAAABAAAAAAAGACAAAAABAAAAAAAHACAAAAABAAAAAAAIACAAAAABAAAAAAAJACAAAAABAAAAAAAKACAAAAABAAAAAAALACAAAAABAAAAAAAMABwAAAADAAUAAAAMACAAAAABAAAAAADz/xsAAAACAAEAAAAMABsAAAAAAAEAAADy/xcAAAACAAQAAADy/xgAAAACAAEAAADy/xkAAAACAAEAAADy/xoAAAADAAEAAAANABcAAAADAAQAAAANABgAAAAAAAEAAAANABkAAAAAAAEAAAANABoAAAAEAAEAAAANACAAAAABAAAAAADy/yAAAAABAAAAAAANABwAAAABAAIAAAANABMAAAABAAIAAADy/xMAAAABAAIAAADy/xwAAAABAAIAAADx/xcAAAABAAAAAAAOABcAAAABAAAAAADx/xMAAAABAAIAAAAOABMAAAABAAIAAAAOACAAAAACAAAAAAAOABwAAAABAAIAAAAPABwAAAABAAIAAAAQABwAAAABAAIAAAARABwAAAAEAAAAAAARAB0AAAAAAAEAAAARAB4AAAAAAAEAAAARAB8AAAAAAAEAAAARACAAAAAAAAEAAAARACEAAAAAAAEAAAARACIAAAAAAAEAAAAOACEAAAACAAEAAAAOACIAAAACAAEAAAARACMAAAAAAAEAAAARACQAAAAAAAEAAAARACUAAAAAAAEAAAARACYAAAAAAAEAAAAOACMAAAACAAEAAAAOACQAAAACAAEAAAAOACUAAAACAAEAAAAOACYAAAACAAEAAAAOACcAAAACAAEAAAAOACgAAAACAAEAAAAOACkAAAACAAEAAAAOACoAAAACAAEAAAARACcAAAAAAAEAAAARACgAAAAAAAEAAAARACkAAAAAAAEAAAARACoAAAAAAAEAAAARACsAAAAAAAEAAAARACwAAAAAAAEAAAARAC0AAAAAAAEAAAARAC4AAAAAAAEAAAARAC8AAAAAAAEAAAARADAAAAAAAAEAAAARADEAAAAAAAEAAAARADIAAAAAAAEAAAARADMAAAAAAAEAAAARADQAAAAAAAEAAAARADUAAAAAAAEAAAARADYAAAAAAAEAAAARADcAAAAAAAEAAAAOACsAAAACAAEAAAAOACwAAAACAAEAAAAOAC0AAAACAAEAAAAOAC4AAAACAAEAAAAOAC8AAAACAAEAAAAOADAAAAACAAEAAAAOADEAAAACAAEAAAAOADIAAAACAAEAAAAOADMAAAACAAEAAAAOADQAAAACAAEAAAAOADUAAAACAAEAAAAOADYAAAACAAEAAAAOADcAAAACAAEAAAAOADgAAAACAAEAAAAOADkAAAACAAEAAAAOADoAAAACAAEAAAAOADsAAAACAAEAAAAOADwAAAACAAEAAAAOAD0AAAACAAEAAAAOAD4AAAACAAEAAAAOAD8AAAACAAEAAAAOAEAAAAACAAEAAAARADgAAAAAAAEAAAARADkAAAAAAAEAAAARADoAAAAAAAEAAAARADsAAAAAAAEAAAARADwAAAAAAAEAAAARAD0AAAAAAAEAAAARAD4AAAAAAAEAAAARAD8AAAAAAAEAAAARAEAAAAAAAAEAAADx/yAAAAABAAAAAADw/yAAAAAAAAAAAADw/yEAAAAAAAEAAADw/yIAAAAAAAEAAADw/yMAAAAEAAEAAADv/yMAAAABAAAAAADu/yMAAAAAAAAAAADu/yQAAAAAAAEAAADu/yUAAAAAAAEAAADu/yYAAAAEAAEAAADt/yYAAAABAAAAAADs/yYAAAAAAAAAAADx/xwAAAABAAIAAADw/xwAAAABAAIAAADv/xwAAAABAAIAAADu/xwAAAABAAIAAADt/xwAAAABAAIAAADs/xwAAAABAAIAAADr/xwAAAADAAAAAADq/x0AAAADAAAAAADp/x4AAAADAAAAAADo/x8AAAADAAAAAADr/x0AAAACAAIAAADq/x4AAAACAAIAAADp/x8AAAACAAIAAADB/ygAAAACAAEAAADB/ykAAAADAAEAAADC/ykAAAABAAAAAADD/ykAAAABAAAAAADE/ykAAAABAAAAAADF/ykAAAABAAAAAADG/ykAAAABAAAAAADH/ykAAAABAAAAAADI/ykAAAABAAAAAADJ/ykAAAABAAAAAADK/ykAAAABAAAAAADL/ykAAAACAAAAAADL/yoAAAACAAEAAADL/ysAAAACAAEAAADL/ywAAAACAAEAAADM/ywAAAABAAIAAADN/ywAAAABAAIAAADO/ywAAAABAAIAAADP/ywAAAABAAIAAADQ/ykAAAAAAAAAAADQ/yoAAAAAAAEAAADQ/ysAAAAAAAEAAADQ/ywAAAAAAAEAAADR/ykAAAABAAAAAADS/ykAAAACAAQAAADS/yoAAAACAAEAAADS/ysAAAACAAEAAADS/ywAAAACAAEAAADT/ywAAAABAAIAAADU/ywAAAABAAIAAADV/ywAAAABAAIAAADW/ywAAAABAAIAAADX/ywAAAABAAIAAADY/ywAAAABAAIAAADZ/ykAAAAHAAUAAADZ/yoAAAAGAAEAAADZ/ysAAAAGAAEAAADZ/ywAAAAGAAEAAADa/ywAAAABAAIAAADb/ywAAAABAAIAAADc/ywAAAABAAIAAADd/ywAAAABAAIAAADe/ywAAAABAAIAAADf/ywAAAABAAIAAADg/ywAAAABAAIAAADh/ywAAAABAAIAAADi/ywAAAABAAIAAADj/ywAAAABAAIAAADk/ywAAAABAAIAAADl/ywAAAABAAIAAADm/ykAAAADAAQAAADm/yoAAAAAAAEAAADm/ysAAAAAAAEAAADm/ywAAAAAAAEAAADn/ykAAAABAAAAAADo/ykAAAABAAAAAADp/ykAAAABAAAAAADq/ykAAAABAAAAAADr/ykAAAABAAAAAADs/ygAAAAAAAEAAADs/ykAAAAEAAEAAADB/yUAAAADAAAAAADB/yYAAAACAAEAAADB/ycAAAACAAEAAADC/yUAAAABAAIAAADD/yUAAAABAAIAAADE/yUAAAABAAIAAADF/yIAAAADAAAAAADF/yMAAAACAAEAAADF/yQAAAACAAEAAADF/yUAAAACAAIAAADG/yIAAAABAAIAAADH/yIAAAABAAIAAADI/yIAAAABAAIAAADJ/yIAAAABAAIAAADK/yIAAAABAAIAAADL/yIAAAABAAIAAADM/yIAAAAAAAYAAADN/yIAAAABAAIAAADO/yIAAAABAAIAAADP/yIAAAABAAYAAADQ/yIAAAABAAIAAADR/yIAAAABAAIAAADS/yIAAAABAAIAAADT/yIAAAABAAIAAADU/yIAAAABAAIAAADV/yIAAAABAAIAAADW/yIAAAABAAIAAADX/yIAAAABAAIAAADY/yIAAAABAAIAAADZ/yIAAAACAAYAAADa/yIAAAABAAIAAADb/yIAAAABAAIAAADc/yIAAAABAAIAAADd/yIAAAABAAIAAADe/yIAAAABAAIAAADf/yIAAAABAAIAAADg/yIAAAABAAIAAADh/yIAAAABAAIAAADi/yIAAAABAAIAAADj/yIAAAABAAIAAADk/yIAAAABAAIAAADl/yIAAAABAAIAAADm/yIAAAACAAIAAADn/yEAAAACAAIAAADo/yAAAAACAAIAAADm/yEAAAADAAAAAADn/yAAAAADAAAAAADs/ycAAAAAAAEAAAA=") + +[node name="BlackWalls" parent="Tiles" index="1"] +tile_map_data = PackedByteArray("AADz/xcAAAABAAAAAAD0/xcAAAABAAAAAAD1/xcAAAABAAMAAAD+/xcAAAABAAAAAAD//xcAAAABAAAAAAAAABcAAAABAAAAAAABABcAAAABAAAAAAACABcAAAABAAAAAAADABcAAAABAAAAAAAEABcAAAABAAMAAAAKABcAAAAAAAMAAAALABcAAAABAAAAAAAMABcAAAABAAAAAAD7/xcAAAAAAAMAAAD8/xcAAAABAAAAAAD9/xcAAAABAAAAAADM/yMAAAACAAEAAADM/yQAAAACAAEAAADM/yUAAAACAAEAAADM/yYAAAACAAEAAADM/ycAAAACAAEAAADM/ygAAAACAAEAAADM/ykAAAACAAEAAADM/yoAAAACAAEAAADM/ysAAAACAAEAAADg/ykAAAABAAAAAADh/ykAAAABAAAAAADi/ykAAAABAAAAAADj/ykAAAABAAAAAADk/ykAAAABAAAAAADl/ykAAAABAAAAAAA=") + +[node name="WhiteWalls" parent="Tiles" index="2"] +tile_map_data = PackedByteArray("AAD+/w8AAAACAAIAAAABAA8AAAAAAAIAAAACAA8AAAABAAIAAAADAA8AAAABAAIAAAAEAA8AAAABAAIAAAAFAA8AAAABAAIAAAAGAA8AAAABAAIAAAAHAA8AAAABAAIAAAAIAA8AAAABAAIAAAAJAA8AAAABAAIAAAAKAA8AAAABAAIAAAALAA8AAAABAAIAAAD9/w8AAAABAAIAAAD8/w8AAAABAAIAAAD7/w8AAAABAAIAAAD6/w8AAAABAAIAAAD5/w8AAAABAAIAAAD4/w8AAAABAAIAAAD3/w8AAAABAAIAAAD2/w8AAAABAAIAAAD1/w8AAAABAAIAAAD0/w8AAAABAAIAAAAMAA8AAAAEAAAAAADz/w8AAAADAAAAAAD0/xwAAAABAAIAAAALABwAAAABAAIAAAAKABwAAAACAAMAAAD1/xwAAAADAAMAAADP/yMAAAAAAAEAAADP/yQAAAAAAAEAAADP/yUAAAAAAAEAAADP/yYAAAAAAAEAAADP/ycAAAAAAAEAAADP/ygAAAAAAAEAAADP/ykAAAAAAAEAAADP/yoAAAAAAAEAAADP/ysAAAAAAAEAAADT/ykAAAABAAAAAADU/ykAAAABAAAAAADV/ykAAAABAAAAAADW/ykAAAABAAAAAADX/ykAAAABAAAAAADY/ykAAAABAAAAAADZ/yMAAAAGAAEAAADZ/yQAAAAGAAEAAADZ/yUAAAAGAAEAAADZ/yYAAAAGAAEAAADZ/ycAAAAGAAEAAADZ/ygAAAAGAAEAAADa/ykAAAABAAAAAADb/ykAAAABAAAAAADc/ykAAAABAAAAAADd/ykAAAABAAAAAADe/ykAAAABAAAAAADf/ykAAAABAAAAAAA=") + +[node name="Traps" parent="Tiles" index="3"] +tile_map_data = PackedByteArray("AADM/yoAAAAAAAAAAADM/ysAAAAAAAEAAADM/ywAAAAAAAEAAADN/yoAAAAAAAAAAADN/ysAAAAAAAEAAADN/ywAAAAAAAEAAADO/yoAAAAAAAAAAADO/ysAAAAAAAEAAADO/ywAAAAAAAEAAADP/yoAAAAAAAAAAADP/ysAAAAAAAEAAADP/ywAAAAAAAEAAADT/yoAAAAAAAAAAADT/ysAAAAAAAEAAADT/ywAAAAAAAEAAADU/yoAAAAAAAAAAADU/ysAAAAAAAEAAADU/ywAAAAAAAEAAADV/yoAAAAAAAAAAADV/ysAAAAAAAEAAADV/ywAAAAAAAEAAADW/yoAAAAAAAAAAADW/ysAAAAAAAEAAADW/ywAAAAAAAEAAADX/yoAAAAAAAAAAADX/ysAAAAAAAEAAADX/ywAAAAAAAEAAADY/yoAAAAAAAAAAADY/ysAAAAAAAEAAADY/ywAAAAAAAEAAADa/yoAAAAAAAAAAADa/ysAAAAAAAEAAADa/ywAAAAAAAEAAADb/yoAAAAAAAAAAADb/ysAAAAAAAEAAADb/ywAAAAAAAEAAADc/yoAAAAAAAAAAADc/ysAAAAAAAEAAADc/ywAAAAAAAEAAADd/yoAAAAAAAAAAADd/ysAAAAAAAEAAADd/ywAAAAAAAEAAADe/yoAAAAAAAAAAADe/ysAAAAAAAEAAADe/ywAAAAAAAEAAADf/yoAAAAAAAAAAADf/ysAAAAAAAEAAADf/ywAAAAAAAEAAADg/yoAAAAAAAAAAADg/ysAAAAAAAEAAADg/ywAAAAAAAEAAADh/yoAAAAAAAAAAADh/ysAAAAAAAEAAADh/ywAAAAAAAEAAADi/yoAAAAAAAAAAADi/ysAAAAAAAEAAADi/ywAAAAAAAEAAADj/yoAAAAAAAAAAADj/ysAAAAAAAEAAADj/ywAAAAAAAEAAADk/yoAAAAAAAAAAADk/ysAAAAAAAEAAADk/ywAAAAAAAEAAADl/yoAAAAAAAAAAADl/ysAAAAAAAEAAADl/ywAAAAAAAEAAAA=") + +[node name="LevelEnd" parent="." index="7"] +position = Vector2(256, 797) diff --git a/game/managers/level_manager.tscn b/game/managers/level_manager.tscn index 0e28d14..7c6dbbf 100644 --- a/game/managers/level_manager.tscn +++ b/game/managers/level_manager.tscn @@ -1,10 +1,12 @@ -[gd_scene load_steps=5 format=3 uid="uid://b2rgtl2dyorip"] +[gd_scene load_steps=7 format=3 uid="uid://b2rgtl2dyorip"] [ext_resource type="Script" uid="uid://w4ofprtn7lu8" path="res://game/managers/level_manager.gd" id="1_te7jw"] [ext_resource type="PackedScene" uid="uid://dlpi1ptis3wna" path="res://game/levels/level_1.tscn" id="2_r84xe"] [ext_resource type="PackedScene" uid="uid://cc06c06hlv7ix" path="res://game/levels/level_2.tscn" id="3_yl05u"] [ext_resource type="PackedScene" uid="uid://ungdvjmfc6v7" path="res://game/levels/level_3.tscn" id="4_eo2u3"] +[ext_resource type="PackedScene" uid="uid://cmp1cog2cbfh5" path="res://game/levels/level_4.tscn" id="5_yl05u"] +[ext_resource type="PackedScene" uid="uid://brysu1p6fw88n" path="res://game/levels/level_5.tscn" id="6_eo2u3"] [node name="LevelManager" type="Node"] script = ExtResource("1_te7jw") -levels = Array[PackedScene]([ExtResource("2_r84xe"), ExtResource("3_yl05u"), ExtResource("4_eo2u3")]) +levels = Array[PackedScene]([ExtResource("2_r84xe"), ExtResource("3_yl05u"), ExtResource("4_eo2u3"), ExtResource("5_yl05u"), ExtResource("6_eo2u3")]) diff --git a/game/managers/settings_manager.gd b/game/managers/settings_manager.gd index 2793c62..cd76ed7 100644 --- a/game/managers/settings_manager.gd +++ b/game/managers/settings_manager.gd @@ -149,7 +149,7 @@ func _apply_window_scale() -> void: DisplayServer.window_set_size(new_size) DisplayServer.window_set_position(new_position) - _ensure_window_on_screen() + #_ensure_window_on_screen() func _ensure_window_on_screen() -> void: diff --git a/game/managers/sound_manager.gd b/game/managers/sound_manager.gd index 0c7d61a..dfbb7ad 100644 --- a/game/managers/sound_manager.gd +++ b/game/managers/sound_manager.gd @@ -29,6 +29,7 @@ const MUSIC_BUS = "Music" @export var sfx_stream_door_closing : AudioStream @export var sfx_stream_door_locked : AudioStream @export var sfx_stream_door_opening : AudioStream +@export var sfx_stream_door_unlocking : AudioStream @export var sfx_stream_jump : AudioStream @export var sfx_stream_key_picked_up : AudioStream @export var sfx_stream_level_completed : AudioStream diff --git a/game/managers/sound_manager.tscn b/game/managers/sound_manager.tscn index 99c78de..7477f67 100644 --- a/game/managers/sound_manager.tscn +++ b/game/managers/sound_manager.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=3 uid="uid://drk4dvbn78dva"] +[gd_scene load_steps=17 format=3 uid="uid://drk4dvbn78dva"] [ext_resource type="Script" uid="uid://cx5qcukr66whc" path="res://game/managers/sound_manager.gd" id="1_cg0sy"] [ext_resource type="AudioStream" uid="uid://d2suvaisb6w45" path="res://sound/ui/accept.wav" id="2_ge1il"] @@ -15,6 +15,7 @@ [ext_resource type="AudioStream" uid="uid://2spbxv7pwkmb" path="res://sound/sfx/door_opening.wav" id="8_ounmg"] [ext_resource type="AudioStream" uid="uid://txk8dq16levc" path="res://sound/sfx/key_picked_up.wav" id="8_wyfta"] [ext_resource type="AudioStream" uid="uid://dy7qnen5k20mo" path="res://sound/sfx/player_spoted.wav" id="9_q7cyi"] +[ext_resource type="AudioStream" uid="uid://dg0t7fwu8u3m2" path="res://sound/sfx/door_unlocking.wav" id="10_lqyhh"] [node name="SoundManager" type="Node"] process_mode = 3 @@ -33,6 +34,7 @@ sfx_stream_death = ExtResource("5_fpnh3") sfx_stream_door_closing = ExtResource("7_814q3") sfx_stream_door_locked = ExtResource("8_lqyhh") sfx_stream_door_opening = ExtResource("8_ounmg") +sfx_stream_door_unlocking = ExtResource("10_lqyhh") sfx_stream_jump = ExtResource("6_22ptj") sfx_stream_key_picked_up = ExtResource("8_wyfta") sfx_stream_level_completed = ExtResource("7_22ptj") diff --git a/images/level/objects.png b/images/level/objects.png index cdd4a58..551ff9e 100644 --- a/images/level/objects.png +++ b/images/level/objects.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ee32e334e059cdd1bb435b0a72838d7cc9011b97733505dfc2030c0e5c271e31 -size 2136 +oid sha256:67c9c586648497d7974e21e0ffc9c28f2a739d4095e0c9839cfe7e68507c9a6f +size 2113 diff --git a/sound/sfx/door_unlocking.wav b/sound/sfx/door_unlocking.wav new file mode 100644 index 0000000..0935ac4 --- /dev/null +++ b/sound/sfx/door_unlocking.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1855869ee16bcb77bfca42e8b47436c41b261f4b04d021869d5e4d92490d58dd +size 44170 diff --git a/sound/sfx/door_unlocking.wav.import b/sound/sfx/door_unlocking.wav.import new file mode 100644 index 0000000..126781e --- /dev/null +++ b/sound/sfx/door_unlocking.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dg0t7fwu8u3m2" +path="res://.godot/imported/door_unlocking.wav-453abdf0eede5f166886f9f0fe4235af.sample" + +[deps] + +source_file="res://sound/sfx/door_unlocking.wav" +dest_files=["res://.godot/imported/door_unlocking.wav-453abdf0eede5f166886f9f0fe4235af.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2