diff --git a/game/characters/abstract_enemy.gd b/game/characters/abstract_enemy.gd index 8bdbfd6..6b7cbc2 100644 --- a/game/characters/abstract_enemy.gd +++ b/game/characters/abstract_enemy.gd @@ -299,3 +299,9 @@ func _on_animation_looped() -> void: if _state == State.Idle or (type == Type.Random and _is_walking_state()): if randi_range(1, 100) <= LOOK_AROUND_CHANCE: _state = State.LookAround + + +func _on_player_touch_area_entered(body: Node2D) -> void: + if body is Player: + _target_x = body.position.x + _set_chase_state() diff --git a/game/characters/abstract_enemy.tscn b/game/characters/abstract_enemy.tscn index 4383a94..336f1c4 100644 --- a/game/characters/abstract_enemy.tscn +++ b/game/characters/abstract_enemy.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=46 format=3 uid="uid://bx0luh4vdob3q"] +[gd_scene load_steps=47 format=3 uid="uid://bx0luh4vdob3q"] [ext_resource type="Script" uid="uid://but5aeh7y1s0f" path="res://game/characters/abstract_enemy.gd" id="1_2wrno"] [ext_resource type="Texture2D" uid="uid://drk8j57acajrq" path="res://images/characters/cultist.png" id="2_mocsw"] @@ -422,6 +422,9 @@ animations = [{ radius = 4.0 height = 28.0 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_vecdo"] +size = Vector2(32, 28) + [node name="AbstractEnemy" type="CharacterBody2D"] collision_layer = 0 script = ExtResource("1_2wrno") @@ -471,5 +474,14 @@ unique_name_in_owner = true target_position = Vector2(320, 0) collision_mask = 0 +[node name="PlayerTouchArea" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerTouchArea"] +position = Vector2(0, 2) +shape = SubResource("RectangleShape2D_vecdo") + [connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animation_finished"] [connection signal="animation_looped" from="AnimatedSprite2D" to="." method="_on_animation_looped"] +[connection signal="body_entered" from="PlayerTouchArea" to="." method="_on_player_touch_area_entered"] diff --git a/game/characters/black_enemy.tscn b/game/characters/black_enemy.tscn index 8674d9e..ac0d678 100644 --- a/game/characters/black_enemy.tscn +++ b/game/characters/black_enemy.tscn @@ -34,14 +34,17 @@ collision_mask = 3 [node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" index="0"] target_position = Vector2(-32, 0) -collision_mask = 8 +collision_mask = 11 [node name="RightPlayerCloseRay" parent="PlayerCloseCheck" index="1"] target_position = Vector2(32, 0) -collision_mask = 8 +collision_mask = 11 [node name="LeftPlayerDistantRay" parent="PlayerDistantCheck" index="0"] -collision_mask = 8 +collision_mask = 11 [node name="RightPlayerDistantRay" parent="PlayerDistantCheck" index="1"] +collision_mask = 11 + +[node name="PlayerTouchArea" parent="." index="7"] collision_mask = 8 diff --git a/game/characters/gray_enemy.tscn b/game/characters/gray_enemy.tscn index e450975..4aea1a2 100644 --- a/game/characters/gray_enemy.tscn +++ b/game/characters/gray_enemy.tscn @@ -29,13 +29,16 @@ collision_mask = 35 collision_mask = 35 [node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" index="0"] -collision_mask = 136 +collision_mask = 171 [node name="RightPlayerCloseRay" parent="PlayerCloseCheck" index="1"] -collision_mask = 136 +collision_mask = 171 [node name="LeftPlayerDistantRay" parent="PlayerDistantCheck" index="0"] -collision_mask = 136 +collision_mask = 171 [node name="RightPlayerDistantRay" parent="PlayerDistantCheck" index="1"] +collision_mask = 171 + +[node name="PlayerTouchArea" parent="." index="6"] collision_mask = 136 diff --git a/game/characters/white_enemy.tscn b/game/characters/white_enemy.tscn index 7031940..5ce89fe 100644 --- a/game/characters/white_enemy.tscn +++ b/game/characters/white_enemy.tscn @@ -31,14 +31,17 @@ collision_mask = 33 [node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" index="0"] target_position = Vector2(-32, 0) -collision_mask = 128 +collision_mask = 161 [node name="RightPlayerCloseRay" parent="PlayerCloseCheck" index="1"] target_position = Vector2(32, 0) -collision_mask = 128 +collision_mask = 161 [node name="LeftPlayerDistantRay" parent="PlayerDistantCheck" index="0"] -collision_mask = 128 +collision_mask = 161 [node name="RightPlayerDistantRay" parent="PlayerDistantCheck" index="1"] +collision_mask = 161 + +[node name="PlayerTouchArea" parent="." index="7"] collision_mask = 128 diff --git a/game/levels/abstract_level.gd b/game/levels/abstract_level.gd index c153a1b..b19eb65 100644 --- a/game/levels/abstract_level.gd +++ b/game/levels/abstract_level.gd @@ -18,6 +18,7 @@ func _ready() -> void: func _input(event: InputEvent) -> void: if event.is_action_pressed("pause"): + SoundManager.play_ui_stream.call_deferred(SoundManager.ui_stream_accept) get_tree().paused = true pause_menu.show() diff --git a/game/levels/abstract_level.tscn b/game/levels/abstract_level.tscn index f6f4d56..85757bc 100644 --- a/game/levels/abstract_level.tscn +++ b/game/levels/abstract_level.tscn @@ -1,18 +1,18 @@ -[gd_scene load_steps=21 format=3 uid="uid://mpsu4g2b5h3a"] +[gd_scene load_steps=19 format=3 uid="uid://mpsu4g2b5h3a"] [ext_resource type="Script" uid="uid://c737mx0kxva7i" path="res://game/levels/abstract_level.gd" id="1_o2mui"] [ext_resource type="PackedScene" uid="uid://dtcad8tdx78tg" path="res://game/characters/player.tscn" id="2_r0ht6"] +[ext_resource type="PackedScene" uid="uid://dqu87loahl7wn" path="res://game/tiles/walls.tscn" id="3_3fw0b"] [ext_resource type="Texture2D" uid="uid://due8mmt5ww1sf" path="res://images/level/walls.png" id="3_fnnmn"] [ext_resource type="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/gray_walls.tres" id="3_pi5fd"] [ext_resource type="Material" uid="uid://d2o2o1w8kb51g" path="res://game/materials/white_walls.tres" id="5_6b8cu"] +[ext_resource type="PackedScene" uid="uid://nfgx201cn4ti" path="res://game/tiles/traps.tscn" id="5_b7vts"] [ext_resource type="Material" uid="uid://bhksbugqhxxa0" path="res://game/materials/black_walls.tres" id="6_x8k35"] -[ext_resource type="Texture2D" uid="uid://5xkwkwjety0i" path="res://images/level/traps.png" id="7_8xgvj"] -[ext_resource type="PackedScene" uid="uid://dpvsvsd8pcjqn" path="res://game/player_killer.tscn" id="7_8ydah"] [ext_resource type="PackedScene" uid="uid://dsts4y32slhnc" path="res://game/menu/pause_menu.tscn" id="7_l0xih"] [ext_resource type="PackedScene" uid="uid://84lhc3yn8vub" path="res://game/menu/game_over_menu.tscn" id="8_b7vts"] [ext_resource type="PackedScene" uid="uid://bareycqj42c6e" path="res://game/menu/completion_menu.tscn" id="11_3fw0b"] -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_pi5fd"] +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8ydah"] texture = ExtResource("3_fnnmn") 0:0/0 = 0 0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8) @@ -124,275 +124,382 @@ texture = ExtResource("3_fnnmn") 8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 7:5/0 = 0 7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:6/0 = 0 +3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +4:6/0 = 0 +4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +5:6/0 = 0 +5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +6:6/0 = 0 +6:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 3, 3, 3, -8, 8, -8, 8, 8, -8, 8) +7:6/0 = 0 +7:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:6/0 = 0 +8:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:7/0 = 0 +8:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:7/0 = 0 +7:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +6:7/0 = 0 +6:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3) +5:7/0 = 0 +5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +4:7/0 = 0 +4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) +3:7/0 = 0 +3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, -3, 8, -3, 8, -8) +3:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) +2:7/0 = 0 +2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) +2:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) +1:7/0 = 0 +1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +0:7/0 = 0 +0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +0:8/0 = 0 +0:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, -8, 8, -8, 8, -3, -3, -3, -3, 8) +1:8/0 = 0 +1:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +2:8/0 = 0 +2:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:8/0 = 0 +3:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +4:8/0 = 0 +4:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) +5:8/0 = 0 +5:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -[sub_resource type="TileSet" id="TileSet_r0ht6"] +[sub_resource type="TileSet" id="TileSet_8xgvj"] physics_layer_0/collision_layer = 1 physics_layer_0/collision_mask = 0 -sources/0 = SubResource("TileSetAtlasSource_pi5fd") - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_l0xih"] -texture = ExtResource("3_fnnmn") -0:0/0 = 0 -0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8) -1:0/0 = 0 -1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) -2:0/0 = 0 -2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) -3:0/0 = 0 -3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) -4:0/0 = 0 -4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) -5:0/0 = 0 -5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:0/0 = 0 -6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) -2:1/0 = 0 -2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) -3:1/0 = 0 -3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, -3, 3, -3) -4:1/0 = 0 -4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) -5:1/0 = 0 -5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:1/0 = 0 -6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:2/0 = 0 -0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) -1:2/0 = 0 -1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -2:2/0 = 0 -2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) -3:2/0 = 0 -3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:2/0 = 0 -4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -5:2/0 = 0 -5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:2/0 = 0 -6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:3/0 = 0 -0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) -1:3/0 = 0 -1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -3, 8, -3, 8, -8) -2:3/0 = 0 -2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -3:3/0 = 0 -3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -8, 8, 8, 8, 8, 3) -4:3/0 = 0 -4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -5:3/0 = 0 -5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:3/0 = 0 -6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 8, 8, 8, 8, -8) -6:4/0 = 0 -6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) -5:5/0 = 0 -5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) -4:5/0 = 0 -4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) -3:5/0 = 0 -3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) -2:5/0 = 0 -2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) -1:5/0 = 0 -1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) -0:5/0 = 0 -0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) -0:4/0 = 0 -0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) -1:4/0 = 0 -1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) -2:4/0 = 0 -2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) -3:4/0 = 0 -3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) -4:4/0 = 0 -4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) -5:4/0 = 0 -5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) -0:6/0 = 0 -0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -1:6/0 = 0 -1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -2:6/0 = 0 -2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:4/0 = 0 -7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:4/0 = 0 -8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:5/0 = 0 -8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:5/0 = 0 -7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) - -[sub_resource type="TileSet" id="TileSet_b7vts"] -physics_layer_0/collision_layer = 2 -physics_layer_0/collision_mask = 0 -sources/0 = SubResource("TileSetAtlasSource_l0xih") - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_x8k35"] -texture = ExtResource("3_fnnmn") -0:0/0 = 0 -0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8) -1:0/0 = 0 -1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) -2:0/0 = 0 -2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) -3:0/0 = 0 -3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) -4:0/0 = 0 -4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) -5:0/0 = 0 -5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:0/0 = 0 -6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) -2:1/0 = 0 -2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) -3:1/0 = 0 -3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, -3, 3, -3) -4:1/0 = 0 -4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) -5:1/0 = 0 -5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:1/0 = 0 -6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:2/0 = 0 -0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) -1:2/0 = 0 -1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -2:2/0 = 0 -2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) -3:2/0 = 0 -3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:2/0 = 0 -4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -5:2/0 = 0 -5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:2/0 = 0 -6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:3/0 = 0 -0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) -1:3/0 = 0 -1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -3, 8, -3, 8, -8) -2:3/0 = 0 -2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -3:3/0 = 0 -3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -8, 8, 8, 8, 8, 3) -4:3/0 = 0 -4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -5:3/0 = 0 -5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:3/0 = 0 -6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 8, 8, 8, 8, -8) -6:4/0 = 0 -6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) -5:5/0 = 0 -5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) -4:5/0 = 0 -4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) -3:5/0 = 0 -3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) -2:5/0 = 0 -2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) -1:5/0 = 0 -1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) -0:5/0 = 0 -0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) -0:4/0 = 0 -0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) -1:4/0 = 0 -1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) -2:4/0 = 0 -2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) -3:4/0 = 0 -3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) -4:4/0 = 0 -4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) -5:4/0 = 0 -5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) -0:6/0 = 0 -0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -1:6/0 = 0 -1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -2:6/0 = 0 -2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:4/0 = 0 -7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:4/0 = 0 -8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -8:5/0 = 0 -8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -7:5/0 = 0 -7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) - -[sub_resource type="TileSet" id="TileSet_l0xih"] -physics_layer_0/collision_layer = 32 -physics_layer_0/collision_mask = 0 -sources/0 = SubResource("TileSetAtlasSource_x8k35") +sources/0 = SubResource("TileSetAtlasSource_8ydah") [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3fw0b"] -texture = ExtResource("7_8xgvj") -0:0/animation_columns = 4 -0:0/animation_speed = 5.0 -0:0/animation_mode = 1 -0:0/animation_frame_0/duration = 1.0 -0:0/animation_frame_1/duration = 1.0 -0:0/animation_frame_2/duration = 1.0 -0:0/animation_frame_3/duration = 1.0 +texture = ExtResource("3_fnnmn") 0:0/0 = 0 -0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 7, 8, 7, 8, 8, -8, 8) -0:1/animation_columns = 4 -0:1/animation_speed = 5.0 -0:1/animation_mode = 1 -0:1/animation_frame_0/duration = 1.0 -0:1/animation_frame_1/duration = 1.0 -0:1/animation_frame_2/duration = 1.0 -0:1/animation_frame_3/duration = 1.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8) +1:0/0 = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) +4:0/0 = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) +5:0/0 = 0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:0/0 = 0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 0:1/0 = 0 -0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) +3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, -3, 3, -3) +4:1/0 = 0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) +5:1/0 = 0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:1/0 = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +1:2/0 = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) +3:2/0 = 0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:2/0 = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:2/0 = 0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:2/0 = 0 +6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:3/0 = 0 +0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +1:3/0 = 0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -3, 8, -3, 8, -8) +2:3/0 = 0 +2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +3:3/0 = 0 +3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -8, 8, 8, 8, 8, 3) +4:3/0 = 0 +4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:3/0 = 0 +5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:3/0 = 0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 8, 8, 8, 8, -8) +6:4/0 = 0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +5:5/0 = 0 +5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +4:5/0 = 0 +4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) +3:5/0 = 0 +3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +2:5/0 = 0 +2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) +1:5/0 = 0 +1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +0:5/0 = 0 +0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) +0:4/0 = 0 +0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +1:4/0 = 0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +2:4/0 = 0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +3:4/0 = 0 +3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +4:4/0 = 0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +5:4/0 = 0 +5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) +0:6/0 = 0 +0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +1:6/0 = 0 +1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +2:6/0 = 0 +2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +7:0/0 = 0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:0/0 = 0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:1/0 = 0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:1/0 = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:2/0 = 0 +7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:2/0 = 0 +8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:3/0 = 0 +8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:3/0 = 0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:4/0 = 0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:4/0 = 0 +8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:5/0 = 0 +8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:5/0 = 0 +7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:6/0 = 0 +3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +4:6/0 = 0 +4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +5:6/0 = 0 +5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +6:6/0 = 0 +6:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 3, 3, 3, -8, 8, -8, 8, 8, -8, 8) +7:6/0 = 0 +7:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:6/0 = 0 +8:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:7/0 = 0 +8:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:7/0 = 0 +7:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +6:7/0 = 0 +6:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3) +5:7/0 = 0 +5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +4:7/0 = 0 +4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) +3:7/0 = 0 +3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, -3, 8, -3, 8, -8) +3:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) +2:7/0 = 0 +2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) +2:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) +1:7/0 = 0 +1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +0:7/0 = 0 +0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +0:8/0 = 0 +0:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, -8, 8, -8, 8, -3, -3, -3, -3, 8) +1:8/0 = 0 +1:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +2:8/0 = 0 +2:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:8/0 = 0 +3:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +4:8/0 = 0 +4:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) +5:8/0 = 0 +5:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) [sub_resource type="TileSet" id="TileSet_un604"] -physics_layer_0/collision_layer = 16 -physics_layer_0/collision_mask = 16 +physics_layer_0/collision_layer = 2 +physics_layer_0/collision_mask = 0 sources/0 = SubResource("TileSetAtlasSource_3fw0b") +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rvm7w"] +texture = ExtResource("3_fnnmn") +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8) +1:0/0 = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) +4:0/0 = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) +5:0/0 = 0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:0/0 = 0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) +3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, -3, 3, -3) +4:1/0 = 0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) +5:1/0 = 0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:1/0 = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +1:2/0 = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) +3:2/0 = 0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:2/0 = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:2/0 = 0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:2/0 = 0 +6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:3/0 = 0 +0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +1:3/0 = 0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -3, 8, -3, 8, -8) +2:3/0 = 0 +2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +3:3/0 = 0 +3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -8, 8, 8, 8, 8, 3) +4:3/0 = 0 +4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:3/0 = 0 +5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:3/0 = 0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 8, 8, 8, 8, -8) +6:4/0 = 0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +5:5/0 = 0 +5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +4:5/0 = 0 +4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) +3:5/0 = 0 +3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +2:5/0 = 0 +2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) +1:5/0 = 0 +1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +0:5/0 = 0 +0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) +0:4/0 = 0 +0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +1:4/0 = 0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +2:4/0 = 0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +3:4/0 = 0 +3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +4:4/0 = 0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +5:4/0 = 0 +5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) +0:6/0 = 0 +0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +1:6/0 = 0 +1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +2:6/0 = 0 +2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +7:0/0 = 0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:0/0 = 0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:1/0 = 0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:1/0 = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:2/0 = 0 +7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:2/0 = 0 +8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:3/0 = 0 +8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:3/0 = 0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:4/0 = 0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:4/0 = 0 +8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:5/0 = 0 +8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:5/0 = 0 +7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:6/0 = 0 +3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +4:6/0 = 0 +4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +5:6/0 = 0 +5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +6:6/0 = 0 +6:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 3, 3, 3, -8, 8, -8, 8, 8, -8, 8) +7:6/0 = 0 +7:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:6/0 = 0 +8:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:7/0 = 0 +8:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:7/0 = 0 +7:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +6:7/0 = 0 +6:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3) +5:7/0 = 0 +5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +4:7/0 = 0 +4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) +3:7/0 = 0 +3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, -3, 8, -3, 8, -8) +3:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) +2:7/0 = 0 +2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) +2:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) +1:7/0 = 0 +1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +0:7/0 = 0 +0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +0:8/0 = 0 +0:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, -8, 8, -8, 8, -3, -3, -3, -3, 8) +1:8/0 = 0 +1:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +2:8/0 = 0 +2:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:8/0 = 0 +3:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +4:8/0 = 0 +4:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) +5:8/0 = 0 +5:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) + +[sub_resource type="TileSet" id="TileSet_jsd6f"] +physics_layer_0/collision_layer = 32 +physics_layer_0/collision_mask = 0 +sources/0 = SubResource("TileSetAtlasSource_rvm7w") + [sub_resource type="RectangleShape2D" id="RectangleShape2D_3fw0b"] +size = Vector2(32, 32) [node name="AbstractLevel" type="Node2D"] script = ExtResource("1_o2mui") @@ -409,22 +516,19 @@ script = ExtResource("1_o2mui") [node name="Tiles" type="Node2D" parent="."] -[node name="GrayWalls" type="TileMapLayer" parent="Tiles"] +[node name="GrayWalls" parent="Tiles" instance=ExtResource("3_3fw0b")] material = ExtResource("3_pi5fd") -tile_set = SubResource("TileSet_r0ht6") +tile_set = SubResource("TileSet_8xgvj") -[node name="BlackWalls" type="TileMapLayer" parent="Tiles"] +[node name="BlackWalls" parent="Tiles" instance=ExtResource("3_3fw0b")] material = ExtResource("6_x8k35") -tile_set = SubResource("TileSet_b7vts") - -[node name="WhiteWalls" type="TileMapLayer" parent="Tiles"] -material = ExtResource("5_6b8cu") -tile_set = SubResource("TileSet_l0xih") - -[node name="Traps" type="TileMapLayer" parent="Tiles"] tile_set = SubResource("TileSet_un604") -[node name="PlayerKiller" parent="Tiles/Traps" instance=ExtResource("7_8ydah")] +[node name="WhiteWalls" parent="Tiles" instance=ExtResource("3_3fw0b")] +material = ExtResource("5_6b8cu") +tile_set = SubResource("TileSet_jsd6f") + +[node name="Traps" parent="Tiles" instance=ExtResource("5_b7vts")] [node name="CanvasLayer" type="CanvasLayer" parent="."] diff --git a/game/levels/test_level.tscn b/game/levels/test_level.tscn index 35c8a7a..857e41e 100644 --- a/game/levels/test_level.tscn +++ b/game/levels/test_level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=4 uid="uid://bmn74wc2vophn"] +[gd_scene load_steps=22 format=4 uid="uid://bmn74wc2vophn"] [ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_15okj"] [ext_resource type="Script" uid="uid://b04km0lbc108u" path="res://game/levels/test_level.gd" id="2_hj65a"] @@ -17,6 +17,7 @@ [ext_resource type="PackedScene" uid="uid://dqgmfpv2mhdpn" path="res://game/pickups/triangle_key_pickup.tscn" id="10_dea75"] [ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="11_g1txn"] [ext_resource type="PackedScene" uid="uid://dx1yasi8wlaye" path="res://game/objects/bookstand.tscn" id="13_g3b4m"] +[ext_resource type="PackedScene" uid="uid://b6qvcio6bnaoi" path="res://game/objects/tutorial/arrow_down.tscn" id="14_r01v2"] [ext_resource type="PackedScene" uid="uid://cb0w6mt8g4mer" path="res://game/characters/gray_enemy.tscn" id="18_blgb8"] [ext_resource type="PackedScene" uid="uid://cutjutvd8dqqc" path="res://game/characters/black_enemy.tscn" id="19_ohfy3"] [ext_resource type="PackedScene" uid="uid://bv2gahb4wxgb1" path="res://game/characters/white_enemy.tscn" id="20_rt0xo"] @@ -27,19 +28,25 @@ script = ExtResource("2_hj65a") [node name="Door" parent="Doors" index="0" instance=ExtResource("11_g1txn")] position = Vector2(416, -56) -[node name="CircleDoor" parent="Doors" index="1" instance=ExtResource("4_yrqjd")] +[node name="Door2" parent="Doors" index="1" instance=ExtResource("11_g1txn")] +position = Vector2(1488, 88) + +[node name="CircleDoor" parent="Doors" index="2" instance=ExtResource("4_yrqjd")] position = Vector2(1152, 88) -[node name="ClosedDoor" parent="Doors" index="2" instance=ExtResource("5_1skah")] +[node name="ClosedDoor" parent="Doors" index="3" instance=ExtResource("5_1skah")] position = Vector2(1104, -56) -[node name="TriangleDoor" parent="Doors" index="3" instance=ExtResource("6_75eok")] +[node name="ClosedDoor2" parent="Doors" index="4" instance=ExtResource("5_1skah")] +position = Vector2(1616, 88) + +[node name="TriangleDoor" parent="Doors" index="5" instance=ExtResource("6_75eok")] position = Vector2(896, -56) -[node name="SquareDoor" parent="Doors" index="4" instance=ExtResource("7_1skah")] +[node name="SquareDoor" parent="Doors" index="6" instance=ExtResource("7_1skah")] position = Vector2(624, -56) -[node name="BookDoor" parent="Doors" index="5" instance=ExtResource("8_75eok")] +[node name="BookDoor" parent="Doors" index="7" instance=ExtResource("8_75eok")] position = Vector2(1280, 88) [node name="Fireplace" parent="Objects" index="0" instance=ExtResource("3_tuvkr")] @@ -57,6 +64,9 @@ position = Vector2(692, -72) [node name="Bookstand" parent="Objects" index="4" instance=ExtResource("13_g3b4m")] position = Vector2(1216, 102) +[node name="ArrowDown" parent="Objects" index="5" instance=ExtResource("14_r01v2")] +position = Vector2(1376, 79) + [node name="BookPickup" parent="Pickups" index="0" instance=ExtResource("7_fq0h3")] position = Vector2(1216, 86) @@ -70,7 +80,9 @@ position = Vector2(306, -56) position = Vector2(803, -56) [node name="GrayEnemy" parent="Enemies" index="0" instance=ExtResource("18_blgb8")] -position = Vector2(1390, 96) +position = Vector2(1552, 96) +type = 1 +initial_state = 1 [node name="BlackEnemy" parent="Enemies" index="1" instance=ExtResource("19_ohfy3")] position = Vector2(936, -48) @@ -82,16 +94,19 @@ position = Vector2(743, -48) position = Vector2(-13, 0) [node name="GrayWalls" parent="Tiles" index="0"] -tile_map_data = PackedByteArray("AAD9/wEAAAABAAAAAAD+/wEAAAABAAAAAAD//wEAAAABAAAAAAAAAAEAAAABAAAAAAABAAEAAAABAAAAAAACAAEAAAABAAAAAAD8/wEAAAADAAEAAAD8/wAAAAACAAEAAAD8////AAACAAEAAAD8//7/AAACAAEAAAD8//3/AAACAAEAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAJAAEAAAABAAAAAAAKAAEAAAABAAAAAAALAAEAAAABAAAAAAAMAAEAAAABAAAAAAANAAEAAAABAAAAAAAOAAEAAAABAAAAAAAPAAEAAAABAAAAAAAQAAEAAAABAAAAAAARAAEAAAABAAAAAAASAAEAAAABAAAAAAATAAEAAAAEAAEAAAATAAAAAAAAAAEAAAATAP//AAAAAAEAAAATAP7/AAAAAAAAAAAUAP7/AAABAAAAAAAVAP7/AAABAAAAAAAWAP7/AAABAAAAAAAXAP7/AAABAAAAAAAYAP7/AAABAAAAAAAZAP7/AAABAAAAAAAaAP7/AAABAAAAAAAbAP7/AAABAAAAAAAcAP7/AAABAAAAAAAdAP7/AAABAAAAAAAeAP7/AAABAAAAAAAfAP7/AAABAAAAAAAgAP7/AAABAAAAAAAhAP7/AAABAAAAAAAiAP7/AAABAAAAAAAjAP7/AAABAAAAAAAkAP7/AAABAAAAAAAlAP7/AAABAAAAAAAmAP7/AAABAAAAAAAnAP7/AAABAAAAAAAoAP7/AAABAAAAAAApAP7/AAABAAAAAAAqAP7/AAABAAAAAAArAP7/AAABAAAAAAAsAP7/AAABAAAAAAAtAP7/AAABAAAAAAAuAP7/AAABAAAAAAAvAP7/AAABAAAAAAAwAP7/AAABAAAAAAAxAP7/AAABAAAAAAAyAP7/AAABAAAAAAAzAP7/AAABAAAAAAA0AP7/AAABAAAAAAA1AP7/AAABAAAAAAA2AP7/AAABAAAAAAA3AP7/AAABAAAAAAA4AP7/AAABAAAAAABEAP7/AAABAAAAAABEAPr/AAAGAAIAAAA5AP7/AAABAAAAAAA6AP7/AAABAAAAAAA7AP7/AAABAAAAAAA8AP7/AAABAAAAAAA9AP7/AAABAAAAAAA+AP7/AAABAAAAAABCAP7/AAABAAAAAABDAP7/AAABAAAAAAA5AAMAAAACAAEAAAA5AAQAAAACAAEAAAA5AAUAAAACAAEAAAA5AAYAAAACAAEAAAA5AAcAAAADAAEAAABHAAcAAAABAAAAAABGAAcAAAABAAAAAABFAAcAAAABAAAAAABEAAcAAAABAAAAAABDAAcAAAABAAAAAABCAAcAAAABAAAAAABBAAcAAAABAAAAAABAAAcAAAABAAAAAAA/AAcAAAABAAAAAAA+AAcAAAAAAAAAAAA8AAcAAAACAAAAAAA7AAcAAAABAAAAAAA6AAcAAAABAAAAAAA/AP7/AAAIAAAAAABBAP7/AAAHAAAAAABHAAMAAAAGAAIAAABIAAcAAAABAAAAAABJAAcAAAABAAAAAABKAAcAAAABAAAAAABLAAcAAAABAAAAAABMAAcAAAABAAAAAABNAAcAAAABAAAAAABOAAcAAAABAAAAAABPAAcAAAABAAAAAABPAAIAAAAEAAAAAABHAAIAAAADAAAAAAAZAPr/AAAGAAIAAAAmAPr/AAAGAAIAAAA3APr/AAAGAAIAAABFAP7/AAABAAAAAABGAP7/AAABAAAAAABHAP7/AAABAAAAAABIAP7/AAABAAAAAABJAP7/AAABAAAAAABKAP7/AAABAAAAAABLAP7/AAABAAAAAABMAP7/AAABAAAAAABNAP7/AAABAAAAAABOAP7/AAABAAAAAABPAP7/AAABAAAAAABQAP7/AAABAAAAAABRAP7/AAABAAAAAABSAP7/AAABAAAAAABTAP7/AAABAAAAAABUAP7/AAABAAAAAABVAP7/AAABAAAAAABWAP7/AAABAAAAAABXAP7/AAABAAAAAABYAP7/AAABAAAAAABZAP7/AAABAAAAAABaAP7/AAABAAAAAABbAP7/AAABAAAAAABcAP7/AAABAAAAAABdAP7/AAABAAAAAABeAP7/AAABAAAAAABfAP7/AAABAAAAAABgAP7/AAABAAAAAABhAP7/AAABAAAAAABiAP7/AAABAAAAAABEAPn/AAADAAAAAABQAAcAAAABAAAAAABRAAcAAAABAAAAAABSAAcAAAABAAAAAABTAAcAAAABAAAAAABUAAcAAAABAAAAAABVAAcAAAABAAAAAABWAAcAAAABAAAAAABXAAcAAAABAAAAAABYAAcAAAABAAAAAABZAAcAAAABAAAAAABaAAcAAAABAAAAAABbAAcAAAABAAAAAABcAAcAAAAEAAEAAABcAAYAAAAAAAEAAABcAAUAAAAAAAEAAABcAAQAAAAAAAEAAABcAAMAAAAAAAEAAABPAAMAAAAGAAIAAAA+AAgAAAAAAAEAAAA+AAkAAAAAAAEAAAA8AAgAAAACAAEAAAA8AAkAAAACAAEAAAA9AAkAAAABAAIAAAA=") +tile_map_data = PackedByteArray("AAD9/wEAAAABAAAAAAD+/wEAAAABAAAAAAD//wEAAAABAAAAAAAAAAEAAAABAAAAAAABAAEAAAABAAAAAAACAAEAAAABAAAAAAD8/wEAAAADAAEAAAD8/wAAAAACAAEAAAD8////AAACAAEAAAD8//7/AAACAAEAAAD8//3/AAACAAEAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAJAAEAAAABAAAAAAAKAAEAAAABAAAAAAALAAEAAAABAAAAAAAMAAEAAAABAAAAAAANAAEAAAABAAAAAAAOAAEAAAABAAAAAAAPAAEAAAABAAAAAAAQAAEAAAABAAAAAAARAAEAAAABAAAAAAASAAEAAAABAAAAAAATAAEAAAAEAAEAAAATAAAAAAAAAAEAAAATAP//AAAAAAEAAAATAP7/AAAAAAAAAAAUAP7/AAABAAAAAAAVAP7/AAABAAAAAAAWAP7/AAABAAAAAAAXAP7/AAABAAAAAAAYAP7/AAABAAAAAAAZAP7/AAABAAAAAAAaAP7/AAABAAAAAAAbAP7/AAABAAAAAAAcAP7/AAABAAAAAAAdAP7/AAABAAAAAAAeAP7/AAABAAAAAAAfAP7/AAABAAAAAAAgAP7/AAABAAAAAAAhAP7/AAABAAAAAAAiAP7/AAABAAAAAAAjAP7/AAABAAAAAAAkAP7/AAABAAAAAAAlAP7/AAABAAAAAAAmAP7/AAABAAAAAAAnAP7/AAABAAAAAAAoAP7/AAABAAAAAAApAP7/AAABAAAAAAAqAP7/AAABAAAAAAArAP7/AAABAAAAAAAsAP7/AAABAAAAAAAtAP7/AAABAAAAAAAuAP7/AAABAAAAAAAvAP7/AAABAAAAAAAwAP7/AAABAAAAAAAxAP7/AAABAAAAAAAyAP7/AAABAAAAAAAzAP7/AAABAAAAAAA0AP7/AAABAAAAAAA1AP7/AAABAAAAAAA2AP7/AAABAAAAAAA3AP7/AAABAAAAAAA4AP7/AAABAAAAAABEAP7/AAABAAAAAABEAPr/AAAGAAIAAAA5AP7/AAABAAAAAAA6AP7/AAABAAAAAAA7AP7/AAABAAAAAAA8AP7/AAABAAAAAAA9AP7/AAABAAAAAAA+AP7/AAABAAAAAABCAP7/AAABAAAAAABDAP7/AAABAAAAAAA5AAMAAAACAAEAAAA5AAQAAAACAAEAAAA5AAUAAAACAAEAAAA5AAYAAAACAAEAAAA5AAcAAAADAAEAAABHAAcAAAABAAAAAABGAAcAAAABAAAAAABFAAcAAAABAAAAAABEAAcAAAABAAAAAABDAAcAAAABAAAAAABCAAcAAAABAAAAAABBAAcAAAABAAAAAABAAAcAAAABAAAAAAA/AAcAAAABAAAAAAA+AAcAAAAAAAAAAAA8AAcAAAACAAAAAAA7AAcAAAABAAAAAAA6AAcAAAABAAAAAAA/AP7/AAAIAAAAAABBAP7/AAAHAAAAAABHAAMAAAAGAAIAAABIAAcAAAABAAAAAABJAAcAAAABAAAAAABKAAcAAAABAAAAAABLAAcAAAABAAAAAABMAAcAAAABAAAAAABNAAcAAAABAAAAAABOAAcAAAABAAAAAABPAAcAAAABAAAAAAAZAPr/AAAGAAIAAAAmAPr/AAAGAAIAAAA3APr/AAAGAAIAAABEAPn/AAADAAAAAABQAAcAAAABAAAAAABRAAcAAAABAAAAAABSAAcAAAABAAAAAABTAAcAAAABAAAAAABYAAcAAAABAAAAAABZAAcAAAABAAAAAABaAAcAAAABAAAAAABbAAcAAAABAAAAAABcAAcAAAABAAAAAABPAAMAAAAGAAIAAAA+AAgAAAAAAAEAAAA+AAkAAAAAAAEAAAA8AAgAAAACAAEAAAA8AAkAAAACAAEAAAA9AAkAAAABAAIAAABcAAMAAAAGAAIAAABkAAMAAAAGAAIAAABdAAcAAAABAAAAAABeAAcAAAABAAAAAABfAAcAAAABAAAAAABgAAcAAAABAAAAAABhAAcAAAABAAAAAABiAAcAAAABAAAAAABjAAcAAAABAAAAAABkAAcAAAABAAAAAABXAAcAAAAAAAAAAABUAAcAAAACAAAAAABXAAgAAAAAAAEAAABXAAkAAAAAAAEAAABXAAoAAAAAAAEAAABXAAsAAAAAAAEAAABXAAwAAAAAAAEAAABXAA0AAAAAAAEAAABUAAgAAAACAAEAAABUAAkAAAACAAEAAABUAAoAAAACAAEAAABUAAsAAAACAAEAAABUAAwAAAACAAEAAABUAA0AAAACAAEAAABUAA4AAAACAAEAAABUAA8AAAACAAEAAABUABAAAAACAAEAAABUABEAAAACAAEAAABUABIAAAACAAEAAABUABMAAAACAAEAAABUABQAAAACAAEAAABUABUAAAACAAEAAABXAA4AAAAAAAEAAABXAA8AAAAAAAEAAABXABAAAAAAAAEAAABXABUAAAAAAAEAAABXABEAAAAAAAEAAABXABIAAAAAAAEAAABXABMAAAAAAAEAAABXABQAAAAAAAEAAAA=") [node name="BlackWalls" parent="Tiles" index="1"] tile_map_data = PackedByteArray("AABAAP7/AAAEAAIAAAA=") [node name="WhiteWalls" parent="Tiles" index="2"] -tile_map_data = PackedByteArray("AAAwAP3/AAAAAAEAAAAwAPz/AAAAAAEAAAAwAPv/AAAAAAEAAAAwAPr/AAAAAAEAAAAwAPn/AAAAAAEAAAAwAPj/AAAAAAEAAAAwAPf/AAAAAAEAAAD8//z/AAACAAEAAAD8//v/AAACAAEAAAD8//r/AAACAAEAAAD8//n/AAACAAEAAAD8//j/AAACAAEAAAD8//f/AAACAAEAAAD8//b/AAADAAAAAAD9//b/AAABAAIAAAD+//b/AAABAAIAAAD///b/AAABAAIAAAAAAPb/AAABAAIAAAABAPb/AAABAAIAAAACAPb/AAABAAIAAAADAPb/AAABAAIAAAAEAPb/AAABAAIAAAAFAPb/AAABAAIAAAAGAPb/AAABAAIAAAAHAPb/AAABAAIAAAAIAPb/AAABAAIAAAAJAPb/AAABAAIAAAAKAPb/AAABAAIAAAALAPb/AAABAAIAAAAMAPb/AAABAAIAAAANAPb/AAABAAIAAAAOAPb/AAABAAIAAAAPAPb/AAABAAIAAAAQAPb/AAABAAIAAAARAPb/AAABAAIAAAASAPb/AAABAAIAAAATAPb/AAABAAIAAAAUAPb/AAABAAIAAAAVAPb/AAABAAIAAAAWAPb/AAABAAIAAAAXAPb/AAABAAIAAAAYAPb/AAABAAIAAAAZAPb/AAABAAIAAAAaAPb/AAABAAIAAAAbAPb/AAABAAIAAAAcAPb/AAABAAIAAAAdAPb/AAABAAIAAAAeAPb/AAABAAIAAAAfAPb/AAABAAIAAAAgAPb/AAABAAIAAAAhAPb/AAABAAIAAAAiAPb/AAABAAIAAAAjAPb/AAABAAIAAAAkAPb/AAABAAIAAAAlAPb/AAABAAIAAAAmAPb/AAABAAIAAAAnAPb/AAABAAIAAAAoAPb/AAABAAIAAAApAPb/AAABAAIAAAAqAPb/AAABAAIAAAArAPb/AAABAAIAAAAsAPb/AAABAAIAAAAtAPb/AAABAAIAAAAuAPb/AAABAAIAAAAvAPb/AAABAAIAAAAwAPb/AAABAAYAAAAxAPb/AAABAAIAAAAyAPb/AAABAAIAAAAzAPb/AAABAAIAAAA0APb/AAABAAIAAAA1APb/AAABAAIAAAA2APb/AAABAAIAAAA3APb/AAABAAIAAAA4APb/AAABAAIAAAA5APb/AAABAAIAAAA6APb/AAABAAIAAAA7APb/AAABAAIAAAA8APb/AAABAAIAAAA9APb/AAABAAIAAAA+APb/AAABAAIAAAA/APb/AAABAAIAAABAAPb/AAABAAIAAABEAPn/AAAAAAEAAABEAPj/AAAAAAEAAABEAPf/AAAAAAEAAABEAPb/AAAEAAAAAABBAPb/AAABAAIAAABCAPb/AAABAAIAAABDAPb/AAABAAIAAAA+AP7/AAADAAAAAABCAP7/AAAEAAAAAAA+AP//AAACAAIAAABCAP//AAAAAAIAAAA9AP//AAABAAIAAAA8AP//AAABAAIAAAA7AP//AAABAAIAAAA6AP//AAABAAIAAABDAP//AAABAAIAAABEAP//AAABAAIAAABFAP//AAABAAIAAABGAP//AAABAAIAAAA5AP//AAADAAAAAABHAP//AAAEAAAAAAA5AAAAAAACAAEAAAA5AAEAAAACAAEAAAA5AAIAAAACAAEAAABHAAAAAAAAAAEAAABHAAEAAAAAAAEAAABHAAIAAAAAAAEAAABOAAIAAAABAAIAAABNAAIAAAABAAIAAABMAAIAAAABAAIAAABLAAIAAAABAAIAAABKAAIAAAABAAIAAABJAAIAAAABAAIAAABIAAIAAAABAAIAAAAZAPf/AAAGAAEAAAAZAPj/AAAGAAEAAAAZAPn/AAAGAAEAAAAmAPn/AAAGAAEAAAAmAPj/AAAGAAEAAAAmAPf/AAAGAAEAAAA3APn/AAAGAAEAAAA3APj/AAAGAAEAAAA3APf/AAAGAAEAAABFAPn/AAABAAIAAABGAPn/AAABAAIAAABHAPn/AAABAAIAAABIAPn/AAABAAIAAABJAPn/AAABAAIAAABRAPn/AAABAAIAAABKAPn/AAABAAIAAABLAPn/AAABAAIAAABMAPn/AAABAAIAAABNAPn/AAABAAIAAABOAPn/AAABAAIAAABPAPn/AAABAAIAAABQAPn/AAABAAIAAABSAPn/AAABAAIAAABTAPn/AAABAAIAAABUAPn/AAABAAIAAABVAPn/AAABAAIAAABWAPn/AAABAAIAAABbAPn/AAABAAIAAABXAPn/AAABAAIAAABYAPn/AAABAAIAAABZAPn/AAABAAIAAABaAPn/AAABAAIAAABcAPn/AAABAAIAAABdAPn/AAABAAIAAABeAPn/AAABAAIAAABfAPn/AAABAAIAAABgAPn/AAABAAIAAABhAPn/AAABAAIAAABiAPn/AAABAAIAAABjAPn/AAABAAIAAABkAPn/AAABAAIAAABlAPn/AAABAAIAAABmAPn/AAABAAIAAABnAPn/AAABAAIAAABoAPn/AAABAAIAAABpAPn/AAABAAIAAABqAPn/AAABAAIAAABrAPn/AAABAAIAAABsAPn/AAABAAIAAABtAPn/AAABAAIAAABuAPn/AAABAAIAAABvAPn/AAABAAIAAABwAPn/AAABAAIAAABxAPn/AAABAAIAAAByAPn/AAABAAIAAABzAPn/AAABAAIAAAB0APn/AAABAAIAAAB1APn/AAABAAIAAABjAP7/AAABAAAAAABkAP7/AAABAAAAAABlAP7/AAABAAAAAABmAP7/AAABAAAAAABnAP7/AAABAAAAAABoAP7/AAABAAAAAABpAP7/AAABAAAAAABqAP7/AAABAAAAAABrAP7/AAABAAAAAABsAP7/AAABAAAAAABtAP7/AAABAAAAAABuAP7/AAABAAAAAABvAP7/AAABAAAAAABwAP7/AAABAAAAAABxAP7/AAABAAAAAAByAP7/AAABAAAAAABzAP7/AAABAAAAAAB0AP7/AAABAAAAAAB1AP7/AAABAAAAAABQAAIAAAABAAIAAABRAAIAAAABAAIAAABSAAIAAAABAAIAAABTAAIAAAABAAIAAABUAAIAAAABAAIAAABVAAIAAAABAAIAAABWAAIAAAABAAIAAABXAAIAAAABAAIAAABaAAIAAAABAAIAAABZAAIAAAABAAIAAABYAAIAAAABAAIAAABbAAIAAAABAAIAAABcAAIAAAAEAAAAAAA=") +tile_map_data = PackedByteArray("AAAwAP3/AAAAAAEAAAAwAPz/AAAAAAEAAAAwAPv/AAAAAAEAAAAwAPr/AAAAAAEAAAAwAPn/AAAAAAEAAAAwAPj/AAAAAAEAAAAwAPf/AAAAAAEAAAD8//z/AAACAAEAAAD8//v/AAACAAEAAAD8//r/AAACAAEAAAD8//n/AAACAAEAAAD8//j/AAACAAEAAAD8//f/AAACAAEAAAD8//b/AAADAAAAAAD9//b/AAABAAIAAAD+//b/AAABAAIAAAD///b/AAABAAIAAAAAAPb/AAABAAIAAAABAPb/AAABAAIAAAACAPb/AAABAAIAAAADAPb/AAABAAIAAAAEAPb/AAABAAIAAAAFAPb/AAABAAIAAAAGAPb/AAABAAIAAAAHAPb/AAABAAIAAAAIAPb/AAABAAIAAAAJAPb/AAABAAIAAAAKAPb/AAABAAIAAAALAPb/AAABAAIAAAAMAPb/AAABAAIAAAANAPb/AAABAAIAAAAOAPb/AAABAAIAAAAPAPb/AAABAAIAAAAQAPb/AAABAAIAAAARAPb/AAABAAIAAAASAPb/AAABAAIAAAATAPb/AAABAAIAAAAUAPb/AAABAAIAAAAVAPb/AAABAAIAAAAWAPb/AAABAAIAAAAXAPb/AAABAAIAAAAYAPb/AAABAAIAAAAZAPb/AAABAAIAAAAaAPb/AAABAAIAAAAbAPb/AAABAAIAAAAcAPb/AAABAAIAAAAdAPb/AAABAAIAAAAeAPb/AAABAAIAAAAfAPb/AAABAAIAAAAgAPb/AAABAAIAAAAhAPb/AAABAAIAAAAiAPb/AAABAAIAAAAjAPb/AAABAAIAAAAkAPb/AAABAAIAAAAlAPb/AAABAAIAAAAmAPb/AAABAAIAAAAnAPb/AAABAAIAAAAoAPb/AAABAAIAAAApAPb/AAABAAIAAAAqAPb/AAABAAIAAAArAPb/AAABAAIAAAAsAPb/AAABAAIAAAAtAPb/AAABAAIAAAAuAPb/AAABAAIAAAAvAPb/AAABAAIAAAAwAPb/AAABAAYAAAAxAPb/AAABAAIAAAAyAPb/AAABAAIAAAAzAPb/AAABAAIAAAA0APb/AAABAAIAAAA1APb/AAABAAIAAAA2APb/AAABAAIAAAA3APb/AAABAAIAAAA4APb/AAABAAIAAAA5APb/AAABAAIAAAA6APb/AAABAAIAAAA7APb/AAABAAIAAAA8APb/AAABAAIAAAA9APb/AAABAAIAAAA+APb/AAABAAIAAAA/APb/AAABAAIAAABAAPb/AAABAAIAAABEAPn/AAAAAAEAAABEAPj/AAAAAAEAAABEAPf/AAAAAAEAAABEAPb/AAAEAAAAAABBAPb/AAABAAIAAABCAPb/AAABAAIAAABDAPb/AAABAAIAAAA+AP7/AAADAAAAAABCAP7/AAAEAAAAAAA+AP//AAACAAIAAABCAP//AAAAAAIAAAA9AP//AAABAAIAAAA8AP//AAABAAIAAAA7AP//AAABAAIAAAA6AP//AAABAAIAAABDAP//AAABAAIAAABEAP//AAABAAIAAABFAP//AAABAAIAAABGAP//AAABAAIAAAA5AP//AAADAAAAAABHAP//AAAEAAAAAAA5AAAAAAACAAEAAAA5AAEAAAACAAEAAAA5AAIAAAACAAEAAABHAAAAAAAAAAEAAABHAAEAAAAAAAEAAABOAAIAAAABAAIAAABNAAIAAAABAAIAAABMAAIAAAABAAIAAABLAAIAAAABAAIAAABKAAIAAAABAAIAAABJAAIAAAABAAIAAABIAAIAAAABAAIAAAAZAPf/AAAGAAEAAAAZAPj/AAAGAAEAAAAZAPn/AAAGAAEAAAAmAPn/AAAGAAEAAAAmAPj/AAAGAAEAAAAmAPf/AAAGAAEAAAA3APn/AAAGAAEAAAA3APj/AAAGAAEAAAA3APf/AAAGAAEAAABFAPn/AAABAAIAAABGAPn/AAABAAIAAABHAPn/AAABAAIAAABIAPn/AAABAAIAAABJAPn/AAABAAIAAABRAPn/AAABAAIAAABKAPn/AAABAAIAAABLAPn/AAABAAIAAABMAPn/AAABAAIAAABNAPn/AAABAAIAAABOAPn/AAABAAIAAABPAPn/AAABAAIAAABQAPn/AAABAAIAAABSAPn/AAABAAIAAABTAPn/AAABAAIAAABUAPn/AAABAAIAAABVAPn/AAABAAIAAABWAPn/AAABAAIAAABbAPn/AAABAAIAAABXAPn/AAABAAIAAABYAPn/AAABAAIAAABZAPn/AAABAAIAAABaAPn/AAABAAIAAABcAPn/AAABAAIAAABdAPn/AAABAAIAAABeAPn/AAABAAIAAABfAPn/AAABAAIAAABgAPn/AAABAAIAAABhAPn/AAABAAIAAABiAPn/AAABAAIAAABjAPn/AAABAAIAAABkAPn/AAABAAIAAABlAPn/AAABAAIAAABmAPn/AAABAAIAAABnAPn/AAABAAIAAABoAPn/AAABAAIAAABpAPn/AAABAAIAAABqAPn/AAABAAIAAABrAPn/AAABAAIAAABsAPn/AAABAAIAAABtAPn/AAABAAIAAABuAPn/AAABAAIAAABvAPn/AAABAAIAAABwAPn/AAABAAIAAABxAPn/AAABAAIAAAByAPn/AAABAAIAAABzAPn/AAABAAIAAAB0APn/AAABAAIAAAB1APn/AAABAAIAAABjAP7/AAABAAAAAABkAP7/AAABAAAAAABlAP7/AAABAAAAAABmAP7/AAABAAAAAABnAP7/AAABAAAAAABoAP7/AAABAAAAAABpAP7/AAABAAAAAABqAP7/AAABAAAAAABrAP7/AAABAAAAAABsAP7/AAABAAAAAABtAP7/AAABAAAAAABuAP7/AAABAAAAAABvAP7/AAABAAAAAABwAP7/AAABAAAAAABxAP7/AAABAAAAAAByAP7/AAABAAAAAABzAP7/AAABAAAAAAB0AP7/AAABAAAAAAB1AP7/AAABAAAAAABQAAIAAAABAAIAAABRAAIAAAABAAIAAABSAAIAAAABAAIAAABTAAIAAAABAAIAAABUAAIAAAABAAIAAABVAAIAAAABAAIAAABWAAIAAAABAAIAAABXAAIAAAABAAIAAABaAAIAAAABAAIAAABZAAIAAAABAAIAAABYAAIAAAABAAIAAABbAAIAAAABAAIAAABHAAIAAAAFAAYAAABPAAIAAAABAAcAAABFAP7/AAABAAAAAABGAP7/AAABAAAAAABHAP7/AAABAAAAAABIAP7/AAABAAAAAABJAP7/AAABAAAAAABKAP7/AAABAAAAAABLAP7/AAABAAAAAABMAP7/AAABAAAAAABNAP7/AAABAAAAAABOAP7/AAABAAAAAABPAP7/AAABAAAAAABQAP7/AAABAAAAAABRAP7/AAABAAAAAABSAP7/AAABAAAAAABTAP7/AAABAAAAAABUAP7/AAABAAAAAABVAP7/AAABAAAAAABWAP7/AAABAAAAAABXAP7/AAABAAAAAABYAP7/AAABAAAAAABZAP7/AAABAAAAAABaAP7/AAABAAAAAABbAP7/AAABAAAAAABcAP7/AAABAAAAAABdAP7/AAABAAAAAABeAP7/AAABAAAAAABfAP7/AAABAAAAAABgAP7/AAABAAAAAABhAP7/AAABAAAAAABiAP7/AAABAAAAAABcAAIAAAABAAcAAABdAAIAAAABAAIAAABeAAIAAAABAAIAAABfAAIAAAABAAIAAABgAAIAAAABAAIAAABhAAIAAAABAAIAAABiAAIAAAABAAIAAABjAAIAAAABAAIAAABkAAIAAAABAAcAAABlAAcAAAABAAAAAABmAAcAAAABAAAAAABnAAcAAAABAAAAAABoAAcAAAABAAAAAABpAAcAAAABAAAAAABqAAcAAAABAAAAAABrAAcAAAABAAAAAABsAAcAAAABAAAAAABtAAcAAAABAAAAAABuAAcAAAABAAAAAABvAAcAAAABAAAAAABwAAcAAAABAAAAAABxAAcAAAABAAAAAAByAAcAAAABAAAAAABzAAcAAAABAAAAAAB0AAcAAAABAAAAAAB1AAcAAAABAAAAAAB2AAcAAAABAAAAAAB3AAcAAAABAAAAAAB4AAcAAAABAAAAAAB5AAcAAAABAAAAAAB6AAcAAAABAAAAAAB7AAcAAAABAAAAAAB8AAcAAAABAAAAAAB9AAcAAAABAAAAAAB2AP7/AAABAAAAAAB3AP7/AAABAAAAAAB4AP7/AAABAAAAAAB5AP7/AAABAAAAAAB6AP7/AAABAAAAAAB7AP7/AAABAAAAAAB8AP7/AAABAAAAAAB9AP7/AAABAAAAAAB+AP7/AAABAAAAAAB/AP7/AAABAAAAAAB+AAcAAAABAAAAAAB/AAcAAAABAAAAAAB2APn/AAABAAIAAAB3APn/AAABAAIAAAB4APn/AAABAAIAAAB5APn/AAABAAIAAAB6APn/AAABAAIAAAB7APn/AAABAAIAAAB8APn/AAABAAIAAAB9APn/AAABAAIAAAB+APn/AAABAAIAAAB/APn/AAABAAIAAABlAAIAAAABAAIAAABmAAIAAAABAAIAAABnAAIAAAABAAIAAABoAAIAAAABAAIAAABpAAIAAAABAAIAAABqAAIAAAABAAIAAABrAAIAAAABAAIAAABsAAIAAAABAAIAAABtAAIAAAABAAIAAABuAAIAAAABAAIAAABvAAIAAAABAAIAAABwAAIAAAABAAIAAABxAAIAAAABAAIAAAByAAIAAAABAAIAAABzAAIAAAABAAIAAAB0AAIAAAABAAIAAAB1AAIAAAABAAIAAAB2AAIAAAABAAIAAAB3AAIAAAABAAIAAAB4AAIAAAABAAIAAAB5AAIAAAABAAIAAAB6AAIAAAABAAIAAAB7AAIAAAABAAIAAAB8AAIAAAABAAIAAAB9AAIAAAABAAIAAAB+AAIAAAABAAIAAAB/AAIAAAABAAIAAABVAAcAAAABAAAAAABWAAcAAAABAAAAAAA=") [node name="Traps" parent="Tiles" index="3"] tile_map_data = PackedByteArray("AAA9AAcAAAAAAAAAAAA9AAgAAAAAAAEAAAA9AAkAAAAAAAEAAAA=") [node name="LevelEnd" parent="." index="7"] position = Vector2(1334, 103) + +[node name="CollisionShape2D" parent="LevelEnd" index="0"] +position = Vector2(42, 59) diff --git a/game/managers/sound_manager.gd b/game/managers/sound_manager.gd index b0db8a9..34951a1 100644 --- a/game/managers/sound_manager.gd +++ b/game/managers/sound_manager.gd @@ -18,6 +18,10 @@ const MUSIC_BUS = "Music" @export_range(1, 10) var player_count_ui := 1 @export_range(1, 100) var player_count_sfx := 1 +@export_group("UI Sounds", "ui") +@export var ui_stream_accept : AudioStream +@export var ui_stream_decline : AudioStream +@export var ui_stream_select : AudioStream var _ui_players : Array[AudioStreamPlayer] = [] diff --git a/game/managers/sound_manager.tscn b/game/managers/sound_manager.tscn index 31c49f6..7d03d36 100644 --- a/game/managers/sound_manager.tscn +++ b/game/managers/sound_manager.tscn @@ -1,12 +1,18 @@ -[gd_scene load_steps=2 format=3 uid="uid://drk4dvbn78dva"] +[gd_scene load_steps=5 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"] +[ext_resource type="AudioStream" uid="uid://2smjkpqyjcrb" path="res://sound/ui/decline.wav" id="3_agyxs"] +[ext_resource type="AudioStream" uid="uid://dnqw8nign1s6e" path="res://sound/ui/select.wav" id="4_0i6kl"] [node name="SoundManager" type="Node"] script = ExtResource("1_cg0sy") -putch_ui_min = 0.9500000000000001 +putch_ui_min = 0.95 putch_ui_max = 1.05 -putch_sfx_min = 0.9500000000000001 +putch_sfx_min = 0.95 putch_sfx_max = 1.05 player_count_ui = 4 player_count_sfx = 25 +ui_stream_accept = ExtResource("2_ge1il") +ui_stream_decline = ExtResource("3_agyxs") +ui_stream_select = ExtResource("4_0i6kl") diff --git a/game/menu/completion_menu.gd b/game/menu/completion_menu.gd index dfdbd3b..76a04cd 100644 --- a/game/menu/completion_menu.gd +++ b/game/menu/completion_menu.gd @@ -8,7 +8,9 @@ extends Control func _get_next_level(remove := false) -> PackedScene: - var next_level : PackedScene = get_tree().get_meta(AbstractLevel.NEXT_LEVEL_META, null) + if not get_tree().has_meta(AbstractLevel.NEXT_LEVEL_META): return null + + var next_level : PackedScene = get_tree().get_meta(AbstractLevel.NEXT_LEVEL_META) if remove: get_tree().remove_meta(AbstractLevel.NEXT_LEVEL_META) @@ -16,21 +18,30 @@ func _get_next_level(remove := false) -> PackedScene: return next_level +func _on_gui_focus_changed(_node: Control) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_select) + + func _on_next_level_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) get_tree().paused = false get_tree().change_scene_to_packed(_get_next_level(true)) func _on_main_menu_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) get_tree().paused = false get_tree().change_scene_to_file("res://game/menu/main_menu.tscn") func _on_visibility_changed() -> void: + if not is_node_ready(): return if visible: next_level_button.visible = _get_next_level() != null - if focus_timer != null: - focus_timer.start() + focus_timer.start() + get_viewport().gui_focus_changed.connect(_on_gui_focus_changed) + else: + get_viewport().gui_focus_changed.disconnect(_on_gui_focus_changed) func _on_focus_timer_timeout() -> void: diff --git a/game/menu/completion_menu.tscn b/game/menu/completion_menu.tscn index 4305c1b..2a569dd 100644 --- a/game/menu/completion_menu.tscn +++ b/game/menu/completion_menu.tscn @@ -46,11 +46,13 @@ horizontal_alignment = 1 [node name="NextLevelButton" type="Button" parent="MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_top = NodePath("../MainMenuButton") text = "Next level" [node name="MainMenuButton" type="Button" parent="MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_bottom = NodePath("../NextLevelButton") text = "Main menu" [node name="FocusTimer" type="Timer" parent="."] diff --git a/game/menu/game_over_menu.gd b/game/menu/game_over_menu.gd index b768f7c..0b4a4fd 100644 --- a/game/menu/game_over_menu.gd +++ b/game/menu/game_over_menu.gd @@ -7,20 +7,29 @@ extends Control @onready var focus_timer : Timer = $FocusTimer +func _on_gui_focus_changed(_node: Control) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_select) + + func _on_retry_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) get_tree().paused = false get_tree().change_scene_to_file(get_tree().current_scene.scene_file_path) func _on_main_menu_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) get_tree().paused = false get_tree().change_scene_to_file("res://game/menu/main_menu.tscn") func _on_visibility_changed() -> void: + if not is_node_ready(): return if visible: - if focus_timer != null: - focus_timer.start() + focus_timer.start() + get_viewport().gui_focus_changed.connect(_on_gui_focus_changed) + else: + get_viewport().gui_focus_changed.disconnect(_on_gui_focus_changed) func _on_focus_timer_timeout() -> void: diff --git a/game/menu/game_over_menu.tscn b/game/menu/game_over_menu.tscn index a5b24ea..853662d 100644 --- a/game/menu/game_over_menu.tscn +++ b/game/menu/game_over_menu.tscn @@ -46,11 +46,13 @@ horizontal_alignment = 1 [node name="RetryButton" type="Button" parent="MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_top = NodePath("../MainMenuButton") text = "Retry" [node name="MainMenuButton" type="Button" parent="MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_bottom = NodePath("../RetryButton") text = "Main menu" [node name="FocusTimer" type="Timer" parent="."] diff --git a/game/menu/level_selection.gd b/game/menu/level_selection.gd index a9d7214..355ba57 100644 --- a/game/menu/level_selection.gd +++ b/game/menu/level_selection.gd @@ -25,13 +25,21 @@ func _ready() -> void: if i == 0: button.grab_focus() + + get_viewport().gui_focus_changed.connect(_on_gui_focus_changed) + + +func _on_gui_focus_changed(_node: Control) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_select) func _on_level_selected(index: int, level: PackedScene, next_level: PackedScene) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) get_tree().set_meta(AbstractLevel.CURRENT_LEVEL_INDEX, index) get_tree().set_meta(AbstractLevel.NEXT_LEVEL_META, next_level) get_tree().change_scene_to_packed(level) func _on_main_menu_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_decline) get_tree().change_scene_to_file("res://game/menu/main_menu.tscn") diff --git a/game/menu/level_selection.tscn b/game/menu/level_selection.tscn index d00f014..1aa3d34 100644 --- a/game/menu/level_selection.tscn +++ b/game/menu/level_selection.tscn @@ -1,9 +1,15 @@ -[gd_scene load_steps=4 format=3 uid="uid://cdw72hewwmypn"] +[gd_scene load_steps=6 format=3 uid="uid://cdw72hewwmypn"] [ext_resource type="Theme" uid="uid://bh56my8b2htnr" path="res://themes/menu.tres" id="1_5cn0b"] [ext_resource type="Script" uid="uid://47impoi24o7g" path="res://game/menu/level_selection.gd" id="1_fb5q3"] [ext_resource type="PackedScene" uid="uid://bmn74wc2vophn" path="res://game/levels/test_level.tscn" id="3_3oqjo"] +[sub_resource type="InputEventAction" id="InputEventAction_3oqjo"] +action = &"ui_cancel" + +[sub_resource type="Shortcut" id="Shortcut_n2wmw"] +events = [SubResource("InputEventAction_3oqjo")] + [node name="LevelSelection" type="Control"] layout_mode = 3 anchors_preset = 15 @@ -40,6 +46,7 @@ size_flags_vertical = 3 [node name="MainMenuButton" type="Button" parent="MarginContainer/VBoxContainer"] layout_mode = 2 +shortcut = SubResource("Shortcut_n2wmw") text = "Main menu" [connection signal="pressed" from="MarginContainer/VBoxContainer/MainMenuButton" to="." method="_on_main_menu_button_pressed"] diff --git a/game/menu/main_menu.gd b/game/menu/main_menu.gd index 1d54600..e009486 100644 --- a/game/menu/main_menu.gd +++ b/game/menu/main_menu.gd @@ -8,26 +8,25 @@ extends Control func _ready() -> void: - _init_focus() - _setup_neighbors() - - -func _init_focus() -> void: start_button.grab_focus() + get_viewport().gui_focus_changed.connect(_on_gui_focus_changed) -func _setup_neighbors() -> void: - start_button.focus_neighbor_top = quit_button.get_path() - quit_button.focus_neighbor_bottom = start_button.get_path() +func _on_gui_focus_changed(_node: Control) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_select) func _on_start_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) get_tree().change_scene_to_file("res://game/menu/level_selection.tscn") func _on_options_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) get_tree().change_scene_to_file("res://game/menu/options_menu.tscn") func _on_quit_button_pressed() -> void: + var stream_player := SoundManager.play_ui_stream(SoundManager.ui_stream_decline) + await stream_player.finished get_tree().quit() diff --git a/game/menu/main_menu.tscn b/game/menu/main_menu.tscn index 966aa37..b9b6d3f 100644 --- a/game/menu/main_menu.tscn +++ b/game/menu/main_menu.tscn @@ -30,6 +30,7 @@ size_flags_vertical = 4 [node name="StartButton" type="Button" parent="MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_top = NodePath("../QuitButton") text = "Start" [node name="OptionsButton" type="Button" parent="MarginContainer/VBoxContainer"] @@ -40,6 +41,7 @@ text = "Options" [node name="QuitButton" type="Button" parent="MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_bottom = NodePath("../StartButton") text = "Quit" [node name="CopyrightLabel" type="Label" parent="MarginContainer"] diff --git a/game/menu/options_menu.gd b/game/menu/options_menu.gd index 102e2ee..aa2a6dc 100644 --- a/game/menu/options_menu.gd +++ b/game/menu/options_menu.gd @@ -5,7 +5,7 @@ extends Control const WINDOW_FACTOR = "window_factor" -signal back +var _play_sound := false @onready var fullscreen_button : CheckButton = $%FullscreenCheckButton @@ -18,26 +18,13 @@ signal back func _ready() -> void: - _connect_window_factor_buttons() _load_current_settings() - _init_focus() - _setup_neighbors() - - -func _play_left_sound() -> bool: - return _play_side_sound(1, 0) - - -func _play_right_sound() -> bool: - return _play_side_sound(0, 1) - - -func _play_side_sound(offset_begin: int, offset_end: int) -> bool: - for i in range(offset_begin, window_factor_buttons.get_child_count() - offset_end): - var child := window_factor_buttons.get_child(i) - if child is Button and child.has_focus(): - return true - return false + _connect_window_factor_buttons() + + fullscreen_button.grab_focus() + + _play_sound = true + get_viewport().gui_focus_changed.connect(_on_gui_focus_changed) func _connect_window_factor_buttons() -> void: @@ -47,23 +34,6 @@ func _connect_window_factor_buttons() -> void: button.pressed.connect(_on_window_factor_button_pressed.bind(button)) -func _on_visibility_changed() -> void: - if not is_node_ready(): return - if not visible: return - - _load_current_settings() - _init_focus() - _setup_neighbors() - - -func _init_focus() -> void: - fullscreen_button.grab_focus() - - -func _setup_neighbors() -> void: - music_slider.focus_neighbor_bottom = back_button.get_path() - - func _load_current_settings() -> void: fullscreen_button.button_pressed = SettingsManager.fullscreen for child in window_factor_buttons.get_children(): @@ -87,32 +57,44 @@ func _update_window_factor_disabled() -> void: child.focus_mode = Control.FOCUS_NONE if SettingsManager.fullscreen else Control.FOCUS_ALL +func _on_gui_focus_changed(_node: Control) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_select) + + func _on_fullscreen_check_button_toggled(toggled: bool) -> void: + if _play_sound: SoundManager.play_ui_stream(SoundManager.ui_stream_accept) SettingsManager.fullscreen = toggled _update_window_factor_disabled() func _on_back_button_pressed() -> void: + if _play_sound: SoundManager.play_ui_stream(SoundManager.ui_stream_decline) get_tree().change_scene_to_file("res://game/menu/main_menu.tscn") func _on_window_factor_button_pressed(button: Button) -> void: + if _play_sound: SoundManager.play_ui_stream(SoundManager.ui_stream_accept) var window_factor : int = button.get_meta(WINDOW_FACTOR, 0) if window_factor > 0: SettingsManager.window_factor = window_factor func _on_master_volume_changed(value: float) -> void: + if _play_sound: SoundManager.play_ui_stream(SoundManager.ui_stream_select) SettingsManager.master_volume = floor(value) func _on_ui_volume_changed(value: float) -> void: + if _play_sound: SoundManager.play_ui_stream(SoundManager.ui_stream_select) SettingsManager.ui_volume = floor(value) func _on_sfx_volume_changed(value: float) -> void: + var screen_center := SettingsManager.window_base_size/2 + if _play_sound: SoundManager.play_sfx_stream(SoundManager.ui_stream_select, screen_center) SettingsManager.sfx_volume = floor(value) func _on_music_volume_changed(value: float) -> void: + if _play_sound: SoundManager.play_music_stream(SoundManager.ui_stream_select) SettingsManager.music_volume = floor(value) diff --git a/game/menu/options_menu.tscn b/game/menu/options_menu.tscn index fb7901c..6a66456 100644 --- a/game/menu/options_menu.tscn +++ b/game/menu/options_menu.tscn @@ -45,6 +45,7 @@ layout_mode = 2 [node name="FullscreenCheckButton" type="CheckButton" parent="MarginContainer/VBoxContainer/GridContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_top = NodePath("../../HBoxContainer/BackButton") text = "Fullscreen" [node name="WindowFactorLabel" type="Label" parent="MarginContainer/VBoxContainer/GridContainer"] @@ -137,6 +138,7 @@ alignment = 1 [node name="BackButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_bottom = NodePath("../../GridContainer/FullscreenCheckButton") shortcut = SubResource("Shortcut_j72d6") text = "Back" diff --git a/game/menu/pause_menu.gd b/game/menu/pause_menu.gd index 7014060..bfff6ac 100644 --- a/game/menu/pause_menu.gd +++ b/game/menu/pause_menu.gd @@ -11,6 +11,17 @@ func _ready() -> void: _setup_neighbors() +func _on_gui_focus_changed(_node: Control) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_select) + + +func _input(event: InputEvent) -> void: + if not visible: return + + if event.is_action_pressed("pause"): + _on_continue_button_pressed.call_deferred() + + func _init_focus() -> void: continue_button.grab_focus() @@ -21,16 +32,21 @@ func _setup_neighbors() -> void: func _on_continue_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_decline) get_tree().paused = false hide() func _on_main_menu_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) get_tree().paused = false get_tree().change_scene_to_file("res://game/menu/main_menu.tscn") func _on_visibility_changed() -> void: + if not is_node_ready(): return if visible: - if continue_button != null: - continue_button.grab_focus() + continue_button.grab_focus() + get_viewport().gui_focus_changed.connect(_on_gui_focus_changed) + else: + get_viewport().gui_focus_changed.disconnect(_on_gui_focus_changed) diff --git a/game/menu/pause_menu.tscn b/game/menu/pause_menu.tscn index 644f4c2..b4e4468 100644 --- a/game/menu/pause_menu.tscn +++ b/game/menu/pause_menu.tscn @@ -39,11 +39,13 @@ size_flags_vertical = 4 [node name="ContinueButton" type="Button" parent="MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_top = NodePath("../MainMenuButton") text = "Continue" [node name="MainMenuButton" type="Button" parent="MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +focus_neighbor_bottom = NodePath("../ContinueButton") text = "Main menu" [connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"] diff --git a/game/objects/tutorial/arrow_down.tscn b/game/objects/tutorial/arrow_down.tscn new file mode 100644 index 0000000..9e7dc0a --- /dev/null +++ b/game/objects/tutorial/arrow_down.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://b6qvcio6bnaoi"] + +[ext_resource type="Texture2D" uid="uid://ddm4gc2g3aj2i" path="res://images/level/objects.png" id="1_r10g3"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_6qcrt"] +atlas = ExtResource("1_r10g3") +region = Rect2(176, 64, 16, 32) + +[node name="ArrowDown" type="Node2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = SubResource("AtlasTexture_6qcrt") diff --git a/game/objects/tutorial/arrow_left.tscn b/game/objects/tutorial/arrow_left.tscn new file mode 100644 index 0000000..8a23621 --- /dev/null +++ b/game/objects/tutorial/arrow_left.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://dindl67sbr8wc"] + +[ext_resource type="Texture2D" uid="uid://ddm4gc2g3aj2i" path="res://images/level/objects.png" id="1_ct7ib"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_n5v8r"] +atlas = ExtResource("1_ct7ib") +region = Rect2(128, 128, 32, 16) + +[node name="ArrowLeft" type="Node2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = SubResource("AtlasTexture_n5v8r") diff --git a/game/objects/tutorial/arrow_right.tscn b/game/objects/tutorial/arrow_right.tscn new file mode 100644 index 0000000..29450d4 --- /dev/null +++ b/game/objects/tutorial/arrow_right.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://c653affkseeh3"] + +[ext_resource type="Texture2D" uid="uid://ddm4gc2g3aj2i" path="res://images/level/objects.png" id="1_gvebv"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_r0fup"] +atlas = ExtResource("1_gvebv") +region = Rect2(160, 128, 32, 16) + +[node name="ArrowRight" type="Node2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = SubResource("AtlasTexture_r0fup") diff --git a/game/objects/tutorial/arrow_up.tscn b/game/objects/tutorial/arrow_up.tscn new file mode 100644 index 0000000..8c4b7af --- /dev/null +++ b/game/objects/tutorial/arrow_up.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://crxhuuyyu7v24"] + +[ext_resource type="Texture2D" uid="uid://ddm4gc2g3aj2i" path="res://images/level/objects.png" id="1_85c6u"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_0lvas"] +atlas = ExtResource("1_85c6u") +region = Rect2(176, 96, 16, 32) + +[node name="ArrowUp" type="Node2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = SubResource("AtlasTexture_0lvas") diff --git a/game/tiles/traps.tscn b/game/tiles/traps.tscn new file mode 100644 index 0000000..184964c --- /dev/null +++ b/game/tiles/traps.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=5 format=3 uid="uid://nfgx201cn4ti"] + +[ext_resource type="Texture2D" uid="uid://5xkwkwjety0i" path="res://images/level/traps.png" id="1_wrl76"] +[ext_resource type="PackedScene" uid="uid://dpvsvsd8pcjqn" path="res://game/player_killer.tscn" id="2_6f2i6"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3fw0b"] +texture = ExtResource("1_wrl76") +0:0/animation_columns = 4 +0:0/animation_speed = 5.0 +0:0/animation_mode = 1 +0:0/animation_frame_0/duration = 1.0 +0:0/animation_frame_1/duration = 1.0 +0:0/animation_frame_2/duration = 1.0 +0:0/animation_frame_3/duration = 1.0 +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 7, 8, 7, 8, 8, -8, 8) +0:1/animation_columns = 4 +0:1/animation_speed = 5.0 +0:1/animation_mode = 1 +0:1/animation_frame_0/duration = 1.0 +0:1/animation_frame_1/duration = 1.0 +0:1/animation_frame_2/duration = 1.0 +0:1/animation_frame_3/duration = 1.0 +0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) + +[sub_resource type="TileSet" id="TileSet_un604"] +physics_layer_0/collision_layer = 16 +physics_layer_0/collision_mask = 16 +sources/0 = SubResource("TileSetAtlasSource_3fw0b") + +[node name="Traps" type="TileMapLayer"] +tile_set = SubResource("TileSet_un604") + +[node name="PlayerKiller" parent="." instance=ExtResource("2_6f2i6")] diff --git a/game/tiles/walls.tscn b/game/tiles/walls.tscn new file mode 100644 index 0000000..59e23fc --- /dev/null +++ b/game/tiles/walls.tscn @@ -0,0 +1,168 @@ +[gd_scene load_steps=4 format=3 uid="uid://dqu87loahl7wn"] + +[ext_resource type="Texture2D" uid="uid://due8mmt5ww1sf" path="res://images/level/walls.png" id="2_nbf4a"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_pi5fd"] +texture = ExtResource("2_nbf4a") +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8) +1:0/0 = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) +4:0/0 = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) +5:0/0 = 0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:0/0 = 0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) +3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, -3, 3, -3) +4:1/0 = 0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) +5:1/0 = 0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:1/0 = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +1:2/0 = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) +3:2/0 = 0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:2/0 = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:2/0 = 0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:2/0 = 0 +6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:3/0 = 0 +0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +1:3/0 = 0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -3, 8, -3, 8, -8) +2:3/0 = 0 +2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +3:3/0 = 0 +3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -8, 8, 8, 8, 8, 3) +4:3/0 = 0 +4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:3/0 = 0 +5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:3/0 = 0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 8, 8, 8, 8, -8) +6:4/0 = 0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +5:5/0 = 0 +5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +4:5/0 = 0 +4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) +3:5/0 = 0 +3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +2:5/0 = 0 +2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) +1:5/0 = 0 +1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8) +0:5/0 = 0 +0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3) +0:4/0 = 0 +0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +1:4/0 = 0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +2:4/0 = 0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +3:4/0 = 0 +3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +4:4/0 = 0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8) +5:4/0 = 0 +5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8) +0:6/0 = 0 +0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +1:6/0 = 0 +1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +2:6/0 = 0 +2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +7:0/0 = 0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:0/0 = 0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:1/0 = 0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:1/0 = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:2/0 = 0 +7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:2/0 = 0 +8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:3/0 = 0 +8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:3/0 = 0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:4/0 = 0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:4/0 = 0 +8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:5/0 = 0 +8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:5/0 = 0 +7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:6/0 = 0 +3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8) +4:6/0 = 0 +4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +5:6/0 = 0 +5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +6:6/0 = 0 +6:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 3, 3, 3, -8, 8, -8, 8, 8, -8, 8) +7:6/0 = 0 +7:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:6/0 = 0 +8:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:7/0 = 0 +8:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:7/0 = 0 +7:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +6:7/0 = 0 +6:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3) +5:7/0 = 0 +5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +4:7/0 = 0 +4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8) +3:7/0 = 0 +3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, -3, 8, -3, 8, -8) +3:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) +2:7/0 = 0 +2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8) +2:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) +1:7/0 = 0 +1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8) +0:7/0 = 0 +0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) +0:8/0 = 0 +0:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, -8, 8, -8, 8, -3, -3, -3, -3, 8) +1:8/0 = 0 +1:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) +2:8/0 = 0 +2:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:8/0 = 0 +3:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8) +4:8/0 = 0 +4:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8) +5:8/0 = 0 +5:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) + +[sub_resource type="TileSet" id="TileSet_r0ht6"] +physics_layer_0/collision_layer = 0 +physics_layer_0/collision_mask = 0 +sources/0 = SubResource("TileSetAtlasSource_pi5fd") + +[node name="Walls" type="TileMapLayer"] +tile_set = SubResource("TileSet_r0ht6") diff --git a/images/level/objects.png b/images/level/objects.png index 9a61eb0..1b67f39 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:ada71c37e5531c77f7749cd54ff0672a433b57e58fca94b2145f10080e860b06 -size 1352 +oid sha256:ff5f333df19812a6d79e1e409f1da0ce568599669915c76c4c52301d4cabe9af +size 1526 diff --git a/images/level/walls.png b/images/level/walls.png index eda0ecf..cdf0f79 100644 --- a/images/level/walls.png +++ b/images/level/walls.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d12f371252bdf4a77554b1f8be200f907c7b31deca152882df2de5aab09f34b9 -size 842 +oid sha256:5d8e1d5cd13d500aa4945515e40697022e220bdae506ec6c1fc1b32b654db5fe +size 1096 diff --git a/sound/ui/accept.wav b/sound/ui/accept.wav new file mode 100644 index 0000000..3626ea2 --- /dev/null +++ b/sound/ui/accept.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eb9b0b8b5c95ad37c2b16c9cc45095b82ba251ce02ff9d45e40f4b099792eee +size 21900 diff --git a/sound/ui/accept.wav.import b/sound/ui/accept.wav.import new file mode 100644 index 0000000..4ffc031 --- /dev/null +++ b/sound/ui/accept.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://d2suvaisb6w45" +path="res://.godot/imported/accept.wav-725025bdb42b4b7611a06b20128154fe.sample" + +[deps] + +source_file="res://sound/ui/accept.wav" +dest_files=["res://.godot/imported/accept.wav-725025bdb42b4b7611a06b20128154fe.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 diff --git a/sound/ui/decline.wav b/sound/ui/decline.wav new file mode 100644 index 0000000..fc8f726 --- /dev/null +++ b/sound/ui/decline.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49cf7d2a311a301c4dec952d03c714443c3da1f9b120874b1205b31d4df53cda +size 23558 diff --git a/sound/ui/decline.wav.import b/sound/ui/decline.wav.import new file mode 100644 index 0000000..61e4b47 --- /dev/null +++ b/sound/ui/decline.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://2smjkpqyjcrb" +path="res://.godot/imported/decline.wav-0c35c7fd479f3e84c9e549f385ac9a98.sample" + +[deps] + +source_file="res://sound/ui/decline.wav" +dest_files=["res://.godot/imported/decline.wav-0c35c7fd479f3e84c9e549f385ac9a98.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 diff --git a/sound/ui/select.wav b/sound/ui/select.wav new file mode 100644 index 0000000..155a636 --- /dev/null +++ b/sound/ui/select.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e85418ae681720368df20b157b1411090e00a0d3573d19e89544d5266e275ba2 +size 8676 diff --git a/sound/ui/select.wav.import b/sound/ui/select.wav.import new file mode 100644 index 0000000..b60add7 --- /dev/null +++ b/sound/ui/select.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dnqw8nign1s6e" +path="res://.godot/imported/select.wav-006fb2e1590ec1d0308080a407514ee4.sample" + +[deps] + +source_file="res://sound/ui/select.wav" +dest_files=["res://.godot/imported/select.wav-006fb2e1590ec1d0308080a407514ee4.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