Added menu sound

This commit is contained in:
2026-01-09 00:36:16 +03:00
parent bc0c494244
commit bd0dd5a9ec
36 changed files with 882 additions and 351 deletions
+6
View File
@@ -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()
+13 -1
View File
@@ -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"]
+6 -3
View File
@@ -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
+6 -3
View File
@@ -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
+6 -3
View File
@@ -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
+1
View File
@@ -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()
+376 -272
View File
@@ -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="."]
File diff suppressed because one or more lines are too long
+4
View File
@@ -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] = []
+9 -3
View File
@@ -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")
+14 -3
View File
@@ -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:
+2
View File
@@ -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="."]
+11 -2
View File
@@ -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:
+2
View File
@@ -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="."]
+8
View File
@@ -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")
+8 -1
View File
@@ -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"]
+7 -8
View File
@@ -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()
+2
View File
@@ -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"]
+19 -37
View File
@@ -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)
+2
View File
@@ -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"
+18 -2
View File
@@ -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)
+2
View File
@@ -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"]
+12
View File
@@ -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")
+12
View File
@@ -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")
+12
View File
@@ -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")
+12
View File
@@ -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")
+35
View File
@@ -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")]
+168
View File
@@ -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")
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+24
View File
@@ -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
BIN
View File
Binary file not shown.
+24
View File
@@ -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
BIN
View File
Binary file not shown.
+24
View File
@@ -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