diff --git a/game/characters/abstract_enemy.tscn b/game/characters/abstract_enemy.tscn index 64c56f2..77754eb 100644 --- a/game/characters/abstract_enemy.tscn +++ b/game/characters/abstract_enemy.tscn @@ -1,423 +1,9 @@ -[gd_scene load_steps=47 format=3 uid="uid://bx0luh4vdob3q"] +[gd_scene load_steps=6 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"] -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_tjvyk"] +[ext_resource type="PackedScene" uid="uid://dtxiercm8dsfm" path="res://game/characters/enemy_sprite.tscn" id="2_tjvyk"] [ext_resource type="PackedScene" uid="uid://dpvsvsd8pcjqn" path="res://game/player_killer.tscn" id="4_vecdo"] -[sub_resource type="ShaderMaterial" id="ShaderMaterial_vecdo"] -shader = ExtResource("2_tjvyk") -shader_parameter/black_color = Color(0, 0, 0, 1) -shader_parameter/white_color = Color(1, 1, 1, 1) -shader_parameter/switch_colors = false -shader_parameter/threshold = 0.5 -shader_parameter/speed = 5.0 -shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 - -[sub_resource type="AtlasTexture" id="AtlasTexture_l58xb"] -atlas = ExtResource("2_mocsw") -region = Rect2(0, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_jrclg"] -atlas = ExtResource("2_mocsw") -region = Rect2(32, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_wwwee"] -atlas = ExtResource("2_mocsw") -region = Rect2(64, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_law7y"] -atlas = ExtResource("2_mocsw") -region = Rect2(96, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_hme24"] -atlas = ExtResource("2_mocsw") -region = Rect2(128, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qawtf"] -atlas = ExtResource("2_mocsw") -region = Rect2(160, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_srxh4"] -atlas = ExtResource("2_mocsw") -region = Rect2(192, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_x6npu"] -atlas = ExtResource("2_mocsw") -region = Rect2(224, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_xavx3"] -atlas = ExtResource("2_mocsw") -region = Rect2(0, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_8t4m8"] -atlas = ExtResource("2_mocsw") -region = Rect2(32, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_3seah"] -atlas = ExtResource("2_mocsw") -region = Rect2(64, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_koyeg"] -atlas = ExtResource("2_mocsw") -region = Rect2(96, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_uw3v1"] -atlas = ExtResource("2_mocsw") -region = Rect2(128, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_265lf"] -atlas = ExtResource("2_mocsw") -region = Rect2(160, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_tav7c"] -atlas = ExtResource("2_mocsw") -region = Rect2(192, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_0xs27"] -atlas = ExtResource("2_mocsw") -region = Rect2(224, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_tjvyk"] -atlas = ExtResource("2_mocsw") -region = Rect2(128, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_vecdo"] -atlas = ExtResource("2_mocsw") -region = Rect2(64, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qly8p"] -atlas = ExtResource("2_mocsw") -region = Rect2(0, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_klrad"] -atlas = ExtResource("2_mocsw") -region = Rect2(160, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_rjy0i"] -atlas = ExtResource("2_mocsw") -region = Rect2(96, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ps2ar"] -atlas = ExtResource("2_mocsw") -region = Rect2(32, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ijx3p"] -atlas = ExtResource("2_mocsw") -region = Rect2(0, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_nm8xp"] -atlas = ExtResource("2_mocsw") -region = Rect2(32, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_mocsw"] -atlas = ExtResource("2_mocsw") -region = Rect2(128, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_y256a"] -atlas = ExtResource("2_mocsw") -region = Rect2(160, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_8wpvf"] -atlas = ExtResource("2_mocsw") -region = Rect2(64, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_vbirv"] -atlas = ExtResource("2_mocsw") -region = Rect2(0, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ntvg2"] -atlas = ExtResource("2_mocsw") -region = Rect2(96, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ssc8d"] -atlas = ExtResource("2_mocsw") -region = Rect2(96, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_hrljr"] -atlas = ExtResource("2_mocsw") -region = Rect2(0, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ng7ok"] -atlas = ExtResource("2_mocsw") -region = Rect2(64, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_8s45y"] -atlas = ExtResource("2_mocsw") -region = Rect2(192, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qbqct"] -atlas = ExtResource("2_mocsw") -region = Rect2(128, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ga5mk"] -atlas = ExtResource("2_mocsw") -region = Rect2(224, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_yu2nn"] -atlas = ExtResource("2_mocsw") -region = Rect2(224, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_g4v8m"] -atlas = ExtResource("2_mocsw") -region = Rect2(128, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_20lqo"] -atlas = ExtResource("2_mocsw") -region = Rect2(192, 0, 32, 32) - -[sub_resource type="SpriteFrames" id="SpriteFrames_2wrno"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_l58xb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_jrclg") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_wwwee") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_law7y") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_hme24") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_qawtf") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_srxh4") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_x6npu") -}], -"loop": true, -"name": &"chase_left", -"speed": 20.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_xavx3") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_8t4m8") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_3seah") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_koyeg") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_uw3v1") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_265lf") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_tav7c") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_0xs27") -}], -"loop": true, -"name": &"chase_right", -"speed": 20.0 -}, { -"frames": [{ -"duration": 10.0, -"texture": SubResource("AtlasTexture_tjvyk") -}], -"loop": true, -"name": &"fall_down", -"speed": 5.0 -}, { -"frames": [{ -"duration": 5.0, -"texture": SubResource("AtlasTexture_vecdo") -}], -"loop": true, -"name": &"fall_down_left", -"speed": 5.0 -}, { -"frames": [{ -"duration": 5.0, -"texture": SubResource("AtlasTexture_qly8p") -}], -"loop": true, -"name": &"fall_down_right", -"speed": 5.0 -}, { -"frames": [{ -"duration": 5.0, -"texture": SubResource("AtlasTexture_klrad") -}], -"loop": true, -"name": &"fall_up", -"speed": 5.0 -}, { -"frames": [{ -"duration": 5.0, -"texture": SubResource("AtlasTexture_rjy0i") -}], -"loop": true, -"name": &"fall_up_left", -"speed": 5.0 -}, { -"frames": [{ -"duration": 5.0, -"texture": SubResource("AtlasTexture_ps2ar") -}], -"loop": true, -"name": &"fall_up_right", -"speed": 5.0 -}, { -"frames": [{ -"duration": 4.0, -"texture": SubResource("AtlasTexture_ijx3p") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_nm8xp") -}, { -"duration": 5.0, -"texture": SubResource("AtlasTexture_ijx3p") -}], -"loop": true, -"name": &"idle_front", -"speed": 5.0 -}, { -"frames": [{ -"duration": 4.0, -"texture": SubResource("AtlasTexture_mocsw") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_y256a") -}, { -"duration": 5.0, -"texture": SubResource("AtlasTexture_mocsw") -}], -"loop": true, -"name": &"idle_rear", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_8wpvf") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_vbirv") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ntvg2") -}], -"loop": false, -"name": &"look_around_front_1", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_ssc8d") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_hrljr") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ng7ok") -}], -"loop": false, -"name": &"look_around_front_2", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_8s45y") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_qbqct") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ga5mk") -}], -"loop": false, -"name": &"look_around_rear_1", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_yu2nn") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_g4v8m") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_20lqo") -}], -"loop": false, -"name": &"look_around_rear_2", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_l58xb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_jrclg") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_wwwee") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_law7y") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_hme24") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_qawtf") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_srxh4") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_x6npu") -}], -"loop": true, -"name": &"walk_left", -"speed": 10.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_xavx3") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_8t4m8") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_3seah") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_koyeg") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_uw3v1") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_265lf") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_tav7c") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_0xs27") -}], -"loop": true, -"name": &"walk_right", -"speed": 10.0 -}] - [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_mocsw"] radius = 4.0 height = 28.0 @@ -429,10 +15,7 @@ size = Vector2(32, 28) collision_layer = 0 script = ExtResource("1_2wrno") -[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_vecdo") -sprite_frames = SubResource("SpriteFrames_2wrno") -animation = &"idle_front" +[node name="AnimatedSprite2D" parent="." instance=ExtResource("2_tjvyk")] [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, 2) @@ -485,6 +68,4 @@ collision_mask = 0 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 ac0d678..0303320 100644 --- a/game/characters/black_enemy.tscn +++ b/game/characters/black_enemy.tscn @@ -1,19 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://cutjutvd8dqqc"] +[gd_scene load_steps=4 format=3 uid="uid://cutjutvd8dqqc"] [ext_resource type="PackedScene" uid="uid://d37eyum03h83i" path="res://game/characters/abstract_color_enemy.tscn" id="1_gj2ks"] [ext_resource type="Script" uid="uid://c2knsjcp6faf6" path="res://game/characters/black_enemy.gd" id="2_332ds"] -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_3jy5n"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_3jy5n"] -resource_local_to_scene = true -shader = ExtResource("3_3jy5n") -shader_parameter/black_color = Color(0, 0, 0, 1) -shader_parameter/white_color = Color(1, 1, 1, 1) -shader_parameter/switch_colors = true -shader_parameter/threshold = 0.5 -shader_parameter/speed = 5.0 -shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 +[ext_resource type="Material" uid="uid://dggr8t4b30e3n" path="res://game/materials/enemy_black.tres" id="3_3jy5n"] [node name="BlackEnemy" instance=ExtResource("1_gj2ks")] collision_layer = 4 @@ -21,7 +10,7 @@ collision_mask = 3 script = ExtResource("2_332ds") [node name="AnimatedSprite2D" parent="." index="0"] -material = SubResource("ShaderMaterial_3jy5n") +material = ExtResource("3_3jy5n") [node name="CollisionSwitcher" parent="." index="2"] initial_state = 0 diff --git a/game/characters/enemy_sprite.tscn b/game/characters/enemy_sprite.tscn new file mode 100644 index 0000000..e85447e --- /dev/null +++ b/game/characters/enemy_sprite.tscn @@ -0,0 +1,455 @@ +[gd_scene load_steps=47 format=3 uid="uid://dtxiercm8dsfm"] + +[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_b6aoy"] +[ext_resource type="Texture2D" uid="uid://drk8j57acajrq" path="res://images/characters/cultist.png" id="2_yjsd7"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_vecdo"] +shader = ExtResource("1_b6aoy") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = false +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_l58xb"] +atlas = ExtResource("2_yjsd7") +region = Rect2(0, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jrclg"] +atlas = ExtResource("2_yjsd7") +region = Rect2(32, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wwwee"] +atlas = ExtResource("2_yjsd7") +region = Rect2(64, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_law7y"] +atlas = ExtResource("2_yjsd7") +region = Rect2(96, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hme24"] +atlas = ExtResource("2_yjsd7") +region = Rect2(128, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qawtf"] +atlas = ExtResource("2_yjsd7") +region = Rect2(160, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_srxh4"] +atlas = ExtResource("2_yjsd7") +region = Rect2(192, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_x6npu"] +atlas = ExtResource("2_yjsd7") +region = Rect2(224, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xavx3"] +atlas = ExtResource("2_yjsd7") +region = Rect2(0, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8t4m8"] +atlas = ExtResource("2_yjsd7") +region = Rect2(32, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3seah"] +atlas = ExtResource("2_yjsd7") +region = Rect2(64, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_koyeg"] +atlas = ExtResource("2_yjsd7") +region = Rect2(96, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uw3v1"] +atlas = ExtResource("2_yjsd7") +region = Rect2(128, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_265lf"] +atlas = ExtResource("2_yjsd7") +region = Rect2(160, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tav7c"] +atlas = ExtResource("2_yjsd7") +region = Rect2(192, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0xs27"] +atlas = ExtResource("2_yjsd7") +region = Rect2(224, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tjvyk"] +atlas = ExtResource("2_yjsd7") +region = Rect2(128, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vecdo"] +atlas = ExtResource("2_yjsd7") +region = Rect2(64, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qly8p"] +atlas = ExtResource("2_yjsd7") +region = Rect2(0, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_klrad"] +atlas = ExtResource("2_yjsd7") +region = Rect2(160, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rjy0i"] +atlas = ExtResource("2_yjsd7") +region = Rect2(96, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ps2ar"] +atlas = ExtResource("2_yjsd7") +region = Rect2(32, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ijx3p"] +atlas = ExtResource("2_yjsd7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nm8xp"] +atlas = ExtResource("2_yjsd7") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mocsw"] +atlas = ExtResource("2_yjsd7") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y256a"] +atlas = ExtResource("2_yjsd7") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yjsd7"] +atlas = ExtResource("2_yjsd7") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b6aoy"] +atlas = ExtResource("2_yjsd7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_voddl"] +atlas = ExtResource("2_yjsd7") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_soo8x"] +atlas = ExtResource("2_yjsd7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8wpvf"] +atlas = ExtResource("2_yjsd7") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vbirv"] +atlas = ExtResource("2_yjsd7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ntvg2"] +atlas = ExtResource("2_yjsd7") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ssc8d"] +atlas = ExtResource("2_yjsd7") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hrljr"] +atlas = ExtResource("2_yjsd7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ng7ok"] +atlas = ExtResource("2_yjsd7") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8s45y"] +atlas = ExtResource("2_yjsd7") +region = Rect2(192, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qbqct"] +atlas = ExtResource("2_yjsd7") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ga5mk"] +atlas = ExtResource("2_yjsd7") +region = Rect2(224, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yu2nn"] +atlas = ExtResource("2_yjsd7") +region = Rect2(224, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g4v8m"] +atlas = ExtResource("2_yjsd7") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_20lqo"] +atlas = ExtResource("2_yjsd7") +region = Rect2(192, 0, 32, 32) + +[sub_resource type="SpriteFrames" id="SpriteFrames_2wrno"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_l58xb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jrclg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wwwee") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_law7y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hme24") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qawtf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_srxh4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_x6npu") +}], +"loop": true, +"name": &"chase_left", +"speed": 20.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_xavx3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8t4m8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3seah") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_koyeg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uw3v1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_265lf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tav7c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0xs27") +}], +"loop": true, +"name": &"chase_right", +"speed": 20.0 +}, { +"frames": [{ +"duration": 10.0, +"texture": SubResource("AtlasTexture_tjvyk") +}], +"loop": true, +"name": &"fall_down", +"speed": 5.0 +}, { +"frames": [{ +"duration": 5.0, +"texture": SubResource("AtlasTexture_vecdo") +}], +"loop": true, +"name": &"fall_down_left", +"speed": 5.0 +}, { +"frames": [{ +"duration": 5.0, +"texture": SubResource("AtlasTexture_qly8p") +}], +"loop": true, +"name": &"fall_down_right", +"speed": 5.0 +}, { +"frames": [{ +"duration": 5.0, +"texture": SubResource("AtlasTexture_klrad") +}], +"loop": true, +"name": &"fall_up", +"speed": 5.0 +}, { +"frames": [{ +"duration": 5.0, +"texture": SubResource("AtlasTexture_rjy0i") +}], +"loop": true, +"name": &"fall_up_left", +"speed": 5.0 +}, { +"frames": [{ +"duration": 5.0, +"texture": SubResource("AtlasTexture_ps2ar") +}], +"loop": true, +"name": &"fall_up_right", +"speed": 5.0 +}, { +"frames": [{ +"duration": 4.0, +"texture": SubResource("AtlasTexture_ijx3p") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nm8xp") +}, { +"duration": 5.0, +"texture": SubResource("AtlasTexture_ijx3p") +}], +"loop": true, +"name": &"idle_front", +"speed": 5.0 +}, { +"frames": [{ +"duration": 4.0, +"texture": SubResource("AtlasTexture_mocsw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_y256a") +}, { +"duration": 5.0, +"texture": SubResource("AtlasTexture_mocsw") +}], +"loop": true, +"name": &"idle_rear", +"speed": 5.0 +}, { +"frames": [{ +"duration": 3.0, +"texture": SubResource("AtlasTexture_yjsd7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_b6aoy") +}, { +"duration": 3.0, +"texture": SubResource("AtlasTexture_voddl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_soo8x") +}], +"loop": true, +"name": &"look_around", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_8wpvf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vbirv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ntvg2") +}], +"loop": false, +"name": &"look_around_front_1", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ssc8d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hrljr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ng7ok") +}], +"loop": false, +"name": &"look_around_front_2", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_8s45y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qbqct") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ga5mk") +}], +"loop": false, +"name": &"look_around_rear_1", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_yu2nn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_g4v8m") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_20lqo") +}], +"loop": false, +"name": &"look_around_rear_2", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_l58xb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jrclg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wwwee") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_law7y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hme24") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qawtf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_srxh4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_x6npu") +}], +"loop": true, +"name": &"walk_left", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_xavx3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8t4m8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3seah") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_koyeg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uw3v1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_265lf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tav7c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0xs27") +}], +"loop": true, +"name": &"walk_right", +"speed": 10.0 +}] + +[node name="AnimatedSprite2D" type="AnimatedSprite2D"] +material = SubResource("ShaderMaterial_vecdo") +sprite_frames = SubResource("SpriteFrames_2wrno") +animation = &"look_around" diff --git a/game/characters/gray_enemy.tscn b/game/characters/gray_enemy.tscn index 4aea1a2..e29bae0 100644 --- a/game/characters/gray_enemy.tscn +++ b/game/characters/gray_enemy.tscn @@ -1,18 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://cb0w6mt8g4mer"] +[gd_scene load_steps=4 format=3 uid="uid://cb0w6mt8g4mer"] [ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/abstract_enemy.tscn" id="1_q3s46"] [ext_resource type="Script" uid="uid://cern5veiqkrkc" path="res://game/characters/gray_enemy.gd" id="2_olede"] -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_ho47d"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_hsdrn"] -shader = ExtResource("3_ho47d") -shader_parameter/black_color = Color(0, 0, 0, 1) -shader_parameter/white_color = Color(1, 1, 1, 1) -shader_parameter/switch_colors = false -shader_parameter/threshold = 0.5 -shader_parameter/speed = 5.0 -shader_parameter/intensity = 0.70000003325 -shader_parameter/scale = 20.0 +[ext_resource type="Material" uid="uid://dbkn3k0batj5w" path="res://game/materials/enemy_gray.tres" id="3_ho47d"] [node name="GrayEnemy" instance=ExtResource("1_q3s46")] collision_layer = 16 @@ -20,7 +10,7 @@ collision_mask = 35 script = ExtResource("2_olede") [node name="AnimatedSprite2D" parent="." index="0"] -material = SubResource("ShaderMaterial_hsdrn") +material = ExtResource("3_ho47d") [node name="LeftWallRay" parent="WallCheck" index="0"] collision_mask = 35 diff --git a/game/characters/player.tscn b/game/characters/player.tscn index 5eca17a..8e28cfb 100644 --- a/game/characters/player.tscn +++ b/game/characters/player.tscn @@ -1,403 +1,8 @@ -[gd_scene load_steps=53 format=3 uid="uid://dtcad8tdx78tg"] +[gd_scene load_steps=5 format=3 uid="uid://dtcad8tdx78tg"] [ext_resource type="Script" uid="uid://bb8kc32sggrn2" path="res://game/characters/player.gd" id="1_xln5q"] -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_i05k5"] [ext_resource type="PackedScene" uid="uid://5qlocc0yu8ug" path="res://game/collision_switcher.tscn" id="2_j06tb"] -[ext_resource type="Texture2D" uid="uid://bjccaucrio6ht" path="res://images/characters/player.png" id="2_n6ad3"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_i05k5"] -shader = ExtResource("2_i05k5") -shader_parameter/black_color = Color(0, 0, 0, 1) -shader_parameter/white_color = Color(1, 1, 1, 1) -shader_parameter/switch_colors = false -shader_parameter/threshold = 0.5 -shader_parameter/speed = 5.0 -shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 - -[sub_resource type="AtlasTexture" id="AtlasTexture_v6e46"] -atlas = ExtResource("2_n6ad3") -region = Rect2(0, 128, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qikhv"] -atlas = ExtResource("2_n6ad3") -region = Rect2(32, 128, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_xtgne"] -atlas = ExtResource("2_n6ad3") -region = Rect2(64, 128, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qvokx"] -atlas = ExtResource("2_n6ad3") -region = Rect2(96, 128, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_cc0lq"] -atlas = ExtResource("2_n6ad3") -region = Rect2(128, 128, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_dw7uy"] -atlas = ExtResource("2_n6ad3") -region = Rect2(160, 128, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ecm54"] -atlas = ExtResource("2_n6ad3") -region = Rect2(192, 128, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_0l1kh"] -atlas = ExtResource("2_n6ad3") -region = Rect2(224, 128, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_c3gpp"] -atlas = ExtResource("2_n6ad3") -region = Rect2(0, 160, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_myk4l"] -atlas = ExtResource("2_n6ad3") -region = Rect2(32, 160, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_kwrpx"] -atlas = ExtResource("2_n6ad3") -region = Rect2(64, 160, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_0n461"] -atlas = ExtResource("2_n6ad3") -region = Rect2(96, 160, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_bgbv2"] -atlas = ExtResource("2_n6ad3") -region = Rect2(128, 160, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_h5vay"] -atlas = ExtResource("2_n6ad3") -region = Rect2(160, 160, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_4u621"] -atlas = ExtResource("2_n6ad3") -region = Rect2(128, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_tqwgk"] -atlas = ExtResource("2_n6ad3") -region = Rect2(64, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ly4f6"] -atlas = ExtResource("2_n6ad3") -region = Rect2(0, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_htqrf"] -atlas = ExtResource("2_n6ad3") -region = Rect2(160, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_vkuli"] -atlas = ExtResource("2_n6ad3") -region = Rect2(96, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_457no"] -atlas = ExtResource("2_n6ad3") -region = Rect2(32, 96, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_n6ad3"] -atlas = ExtResource("2_n6ad3") -region = Rect2(0, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_i05k5"] -atlas = ExtResource("2_n6ad3") -region = Rect2(32, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_mrbkc"] -atlas = ExtResource("2_n6ad3") -region = Rect2(64, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_166ew"] -atlas = ExtResource("2_n6ad3") -region = Rect2(32, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_kepaj"] -atlas = ExtResource("2_n6ad3") -region = Rect2(0, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_v8w1g"] -atlas = ExtResource("2_n6ad3") -region = Rect2(128, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ss7fc"] -atlas = ExtResource("2_n6ad3") -region = Rect2(0, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_14vf2"] -atlas = ExtResource("2_n6ad3") -region = Rect2(96, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_rfvyr"] -atlas = ExtResource("2_n6ad3") -region = Rect2(96, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_gjv0h"] -atlas = ExtResource("2_n6ad3") -region = Rect2(0, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_1qt2f"] -atlas = ExtResource("2_n6ad3") -region = Rect2(32, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_gdvfa"] -atlas = ExtResource("2_n6ad3") -region = Rect2(64, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_mg2nh"] -atlas = ExtResource("2_n6ad3") -region = Rect2(96, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_gcjjm"] -atlas = ExtResource("2_n6ad3") -region = Rect2(128, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_e3g8f"] -atlas = ExtResource("2_n6ad3") -region = Rect2(160, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_6pjby"] -atlas = ExtResource("2_n6ad3") -region = Rect2(192, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_b0cbm"] -atlas = ExtResource("2_n6ad3") -region = Rect2(224, 64, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_dd46j"] -atlas = ExtResource("2_n6ad3") -region = Rect2(0, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_wvo82"] -atlas = ExtResource("2_n6ad3") -region = Rect2(32, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_kdo6l"] -atlas = ExtResource("2_n6ad3") -region = Rect2(64, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_hapb4"] -atlas = ExtResource("2_n6ad3") -region = Rect2(96, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_lof82"] -atlas = ExtResource("2_n6ad3") -region = Rect2(128, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_6toyj"] -atlas = ExtResource("2_n6ad3") -region = Rect2(160, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_2eclv"] -atlas = ExtResource("2_n6ad3") -region = Rect2(192, 32, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ojxu4"] -atlas = ExtResource("2_n6ad3") -region = Rect2(224, 32, 32, 32) - -[sub_resource type="SpriteFrames" id="SpriteFrames_v8w1g"] -animations = [{ -"frames": [{ -"duration": 2.0, -"texture": SubResource("AtlasTexture_v6e46") -}, { -"duration": 2.0, -"texture": SubResource("AtlasTexture_qikhv") -}, { -"duration": 2.0, -"texture": SubResource("AtlasTexture_xtgne") -}, { -"duration": 2.0, -"texture": SubResource("AtlasTexture_qvokx") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_cc0lq") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_dw7uy") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ecm54") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_0l1kh") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_c3gpp") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_myk4l") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_kwrpx") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_0n461") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_bgbv2") -}, { -"duration": 5.0, -"texture": SubResource("AtlasTexture_h5vay") -}], -"loop": false, -"name": &"death", -"speed": 10.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_4u621") -}], -"loop": true, -"name": &"fall_down", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_tqwgk") -}], -"loop": true, -"name": &"fall_down_left", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_ly4f6") -}], -"loop": true, -"name": &"fall_down_right", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_htqrf") -}], -"loop": true, -"name": &"fall_up", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_vkuli") -}], -"loop": true, -"name": &"fall_up_left", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_457no") -}], -"loop": true, -"name": &"fall_up_right", -"speed": 5.0 -}, { -"frames": [{ -"duration": 3.0, -"texture": SubResource("AtlasTexture_n6ad3") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_i05k5") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_mrbkc") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_166ew") -}, { -"duration": 4.0, -"texture": SubResource("AtlasTexture_kepaj") -}], -"loop": true, -"name": &"idle", -"speed": 5.0 -}, { -"frames": [{ -"duration": 2.0, -"texture": SubResource("AtlasTexture_v8w1g") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ss7fc") -}, { -"duration": 2.0, -"texture": SubResource("AtlasTexture_14vf2") -}], -"loop": false, -"name": &"look_around_1", -"speed": 5.0 -}, { -"frames": [{ -"duration": 2.0, -"texture": SubResource("AtlasTexture_rfvyr") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ss7fc") -}, { -"duration": 2.0, -"texture": SubResource("AtlasTexture_v8w1g") -}], -"loop": false, -"name": &"look_around_2", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_gjv0h") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_1qt2f") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_gdvfa") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_mg2nh") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_gcjjm") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_e3g8f") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_6pjby") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_b0cbm") -}], -"loop": true, -"name": &"walk_left", -"speed": 20.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_dd46j") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_wvo82") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_kdo6l") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_hapb4") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_lof82") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_6toyj") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_2eclv") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ojxu4") -}], -"loop": true, -"name": &"walk_right", -"speed": 20.0 -}] +[ext_resource type="PackedScene" uid="uid://cvx6akiplg21s" path="res://game/characters/player_sprite.tscn" id="2_n6ad3"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_xln5q"] radius = 4.0 @@ -407,10 +12,7 @@ collision_layer = 128 collision_mask = 113 script = ExtResource("1_xln5q") -[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_i05k5") -sprite_frames = SubResource("SpriteFrames_v8w1g") -animation = &"idle" +[node name="AnimatedSprite2D" parent="." instance=ExtResource("2_n6ad3")] [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, 1) @@ -432,6 +34,3 @@ one_shot = true [node name="CoyoteTimeTimer" type="Timer" parent="."] wait_time = 0.1 one_shot = true - -[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animation_finished"] -[connection signal="animation_looped" from="AnimatedSprite2D" to="." method="_on_animation_looped"] diff --git a/game/characters/player_sprite.tscn b/game/characters/player_sprite.tscn new file mode 100644 index 0000000..ecc13f3 --- /dev/null +++ b/game/characters/player_sprite.tscn @@ -0,0 +1,432 @@ +[gd_scene load_steps=53 format=3 uid="uid://cvx6akiplg21s"] + +[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_57ht8"] +[ext_resource type="Texture2D" uid="uid://bjccaucrio6ht" path="res://images/characters/player.png" id="2_mi53p"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_i05k5"] +shader = ExtResource("1_57ht8") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = false +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_v6e46"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qikhv"] +atlas = ExtResource("2_mi53p") +region = Rect2(32, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xtgne"] +atlas = ExtResource("2_mi53p") +region = Rect2(64, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qvokx"] +atlas = ExtResource("2_mi53p") +region = Rect2(96, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cc0lq"] +atlas = ExtResource("2_mi53p") +region = Rect2(128, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dw7uy"] +atlas = ExtResource("2_mi53p") +region = Rect2(160, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ecm54"] +atlas = ExtResource("2_mi53p") +region = Rect2(192, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0l1kh"] +atlas = ExtResource("2_mi53p") +region = Rect2(224, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c3gpp"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 160, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_myk4l"] +atlas = ExtResource("2_mi53p") +region = Rect2(32, 160, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kwrpx"] +atlas = ExtResource("2_mi53p") +region = Rect2(64, 160, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0n461"] +atlas = ExtResource("2_mi53p") +region = Rect2(96, 160, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bgbv2"] +atlas = ExtResource("2_mi53p") +region = Rect2(128, 160, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h5vay"] +atlas = ExtResource("2_mi53p") +region = Rect2(160, 160, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4u621"] +atlas = ExtResource("2_mi53p") +region = Rect2(128, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tqwgk"] +atlas = ExtResource("2_mi53p") +region = Rect2(64, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ly4f6"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_htqrf"] +atlas = ExtResource("2_mi53p") +region = Rect2(160, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vkuli"] +atlas = ExtResource("2_mi53p") +region = Rect2(96, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_457no"] +atlas = ExtResource("2_mi53p") +region = Rect2(32, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n6ad3"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_i05k5"] +atlas = ExtResource("2_mi53p") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mrbkc"] +atlas = ExtResource("2_mi53p") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_166ew"] +atlas = ExtResource("2_mi53p") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kepaj"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mi53p"] +atlas = ExtResource("2_mi53p") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_57ht8"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vfr3e"] +atlas = ExtResource("2_mi53p") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v8w1g"] +atlas = ExtResource("2_mi53p") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ss7fc"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_14vf2"] +atlas = ExtResource("2_mi53p") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rfvyr"] +atlas = ExtResource("2_mi53p") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gjv0h"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1qt2f"] +atlas = ExtResource("2_mi53p") +region = Rect2(32, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gdvfa"] +atlas = ExtResource("2_mi53p") +region = Rect2(64, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mg2nh"] +atlas = ExtResource("2_mi53p") +region = Rect2(96, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gcjjm"] +atlas = ExtResource("2_mi53p") +region = Rect2(128, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e3g8f"] +atlas = ExtResource("2_mi53p") +region = Rect2(160, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6pjby"] +atlas = ExtResource("2_mi53p") +region = Rect2(192, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b0cbm"] +atlas = ExtResource("2_mi53p") +region = Rect2(224, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dd46j"] +atlas = ExtResource("2_mi53p") +region = Rect2(0, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wvo82"] +atlas = ExtResource("2_mi53p") +region = Rect2(32, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kdo6l"] +atlas = ExtResource("2_mi53p") +region = Rect2(64, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hapb4"] +atlas = ExtResource("2_mi53p") +region = Rect2(96, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lof82"] +atlas = ExtResource("2_mi53p") +region = Rect2(128, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6toyj"] +atlas = ExtResource("2_mi53p") +region = Rect2(160, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2eclv"] +atlas = ExtResource("2_mi53p") +region = Rect2(192, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ojxu4"] +atlas = ExtResource("2_mi53p") +region = Rect2(224, 32, 32, 32) + +[sub_resource type="SpriteFrames" id="SpriteFrames_v8w1g"] +animations = [{ +"frames": [{ +"duration": 2.0, +"texture": SubResource("AtlasTexture_v6e46") +}, { +"duration": 2.0, +"texture": SubResource("AtlasTexture_qikhv") +}, { +"duration": 2.0, +"texture": SubResource("AtlasTexture_xtgne") +}, { +"duration": 2.0, +"texture": SubResource("AtlasTexture_qvokx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cc0lq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dw7uy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ecm54") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0l1kh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c3gpp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_myk4l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kwrpx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0n461") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bgbv2") +}, { +"duration": 5.0, +"texture": SubResource("AtlasTexture_h5vay") +}], +"loop": false, +"name": &"death", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_4u621") +}], +"loop": true, +"name": &"fall_down", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_tqwgk") +}], +"loop": true, +"name": &"fall_down_left", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ly4f6") +}], +"loop": true, +"name": &"fall_down_right", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_htqrf") +}], +"loop": true, +"name": &"fall_up", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_vkuli") +}], +"loop": true, +"name": &"fall_up_left", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_457no") +}], +"loop": true, +"name": &"fall_up_right", +"speed": 5.0 +}, { +"frames": [{ +"duration": 3.0, +"texture": SubResource("AtlasTexture_n6ad3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_i05k5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mrbkc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_166ew") +}, { +"duration": 4.0, +"texture": SubResource("AtlasTexture_kepaj") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 3.0, +"texture": SubResource("AtlasTexture_mi53p") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_57ht8") +}, { +"duration": 3.0, +"texture": SubResource("AtlasTexture_vfr3e") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_57ht8") +}], +"loop": true, +"name": &"look_around", +"speed": 5.0 +}, { +"frames": [{ +"duration": 2.0, +"texture": SubResource("AtlasTexture_v8w1g") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ss7fc") +}, { +"duration": 2.0, +"texture": SubResource("AtlasTexture_14vf2") +}], +"loop": false, +"name": &"look_around_1", +"speed": 5.0 +}, { +"frames": [{ +"duration": 2.0, +"texture": SubResource("AtlasTexture_rfvyr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ss7fc") +}, { +"duration": 2.0, +"texture": SubResource("AtlasTexture_v8w1g") +}], +"loop": false, +"name": &"look_around_2", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_gjv0h") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1qt2f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gdvfa") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mg2nh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gcjjm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_e3g8f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6pjby") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_b0cbm") +}], +"loop": true, +"name": &"walk_left", +"speed": 20.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_dd46j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wvo82") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kdo6l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hapb4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lof82") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6toyj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2eclv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ojxu4") +}], +"loop": true, +"name": &"walk_right", +"speed": 20.0 +}] + +[node name="AnimatedSprite2D" type="AnimatedSprite2D"] +material = SubResource("ShaderMaterial_i05k5") +sprite_frames = SubResource("SpriteFrames_v8w1g") +animation = &"look_around" diff --git a/game/characters/white_enemy.tscn b/game/characters/white_enemy.tscn index 5ce89fe..ed85d43 100644 --- a/game/characters/white_enemy.tscn +++ b/game/characters/white_enemy.tscn @@ -1,19 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://bv2gahb4wxgb1"] +[gd_scene load_steps=4 format=3 uid="uid://bv2gahb4wxgb1"] [ext_resource type="PackedScene" uid="uid://d37eyum03h83i" path="res://game/characters/abstract_color_enemy.tscn" id="1_3yi7g"] [ext_resource type="Script" uid="uid://dmcpkytgiuedi" path="res://game/characters/white_enemy.gd" id="2_c7pdf"] -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_uj6yw"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_gfhm1"] -resource_local_to_scene = true -shader = ExtResource("3_uj6yw") -shader_parameter/black_color = Color(0, 0, 0, 1) -shader_parameter/white_color = Color(1, 1, 1, 1) -shader_parameter/switch_colors = false -shader_parameter/threshold = 0.5 -shader_parameter/speed = 5.0 -shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 +[ext_resource type="Material" uid="uid://ci7xuso12af5" path="res://game/materials/enemy_white.tres" id="3_uj6yw"] [node name="WhiteEnemy" instance=ExtResource("1_3yi7g")] collision_layer = 64 @@ -21,7 +10,7 @@ collision_mask = 33 script = ExtResource("2_c7pdf") [node name="AnimatedSprite2D" parent="." index="0"] -material = SubResource("ShaderMaterial_gfhm1") +material = ExtResource("3_uj6yw") [node name="LeftWallRay" parent="WallCheck" index="0"] collision_mask = 33 diff --git a/game/doors/door.tscn b/game/doors/door.tscn index c4d0775..b9a41ad 100644 --- a/game/doors/door.tscn +++ b/game/doors/door.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=15 format=3 uid="uid://b7mhdrj3b6loq"] [ext_resource type="Script" uid="uid://5uqub2a6701b" path="res://game/doors/door.gd" id="1_vx1od"] -[ext_resource type="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/gray_walls.tres" id="1_xelsh"] +[ext_resource type="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/walls_gray.tres" id="1_xelsh"] [ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="3_ymlcn"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_cs8ri"] diff --git a/game/levels/abstract_level.gd b/game/levels/abstract_level.gd index b16d68a..48a6f77 100644 --- a/game/levels/abstract_level.gd +++ b/game/levels/abstract_level.gd @@ -28,6 +28,16 @@ func _input(event: InputEvent) -> void: pause_menu.show() +func _complete_level(player_position: Vector2) -> void: + SoundManager.play_sfx_stream(SoundManager.sfx_stream_level_completed, player_position) + get_tree().paused = true + completion_menu.show() + + if SaveManager.completed_levels <= LevelManager.current_level_index: + SaveManager.completed_levels = LevelManager.current_level_index + 1 + SaveManager.save() + + func _on_player_dead() -> void: get_tree().paused = true game_over_menu.show() @@ -35,11 +45,4 @@ func _on_player_dead() -> void: func _on_level_end_entered(body: Node2D) -> void: if body is Player: - var player_position := player.global_position - SoundManager.play_sfx_stream(SoundManager.sfx_stream_level_completed, player_position) - get_tree().paused = true - completion_menu.show() - - if SaveManager.completed_levels <= LevelManager.current_level_index: - SaveManager.completed_levels = LevelManager.current_level_index + 1 - SaveManager.save() + _complete_level(player.global_position) diff --git a/game/levels/abstract_level.tscn b/game/levels/abstract_level.tscn index 85757bc..dd48371 100644 --- a/game/levels/abstract_level.tscn +++ b/game/levels/abstract_level.tscn @@ -4,10 +4,10 @@ [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="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/walls_gray.tres" id="3_pi5fd"] +[ext_resource type="Material" uid="uid://d2o2o1w8kb51g" path="res://game/materials/walls_white.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="Material" uid="uid://bhksbugqhxxa0" path="res://game/materials/walls_black.tres" id="6_x8k35"] [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"] diff --git a/game/levels/level_1.tscn b/game/levels/level_1.tscn index 7c87cec..3f0122a 100644 --- a/game/levels/level_1.tscn +++ b/game/levels/level_1.tscn @@ -3,7 +3,7 @@ [ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_15okj"] [ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/locked_door.tscn" id="2_4ocoy"] [ext_resource type="Texture2D" uid="uid://dfeeppi0orneg" path="res://images/level/moon.png" id="2_ia26y"] -[ext_resource type="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/gray_walls.tres" id="2_tuvkr"] +[ext_resource type="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/walls_gray.tres" id="2_tuvkr"] [ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="3_crrvt"] [ext_resource type="Texture2D" uid="uid://du56n63yrot7d" path="res://images/level/tree.png" id="3_o0jti"] [ext_resource type="Texture2D" uid="uid://d3346lrt1c1oh" path="res://images/level/outdoor.png" id="3_wi6ud"] diff --git a/game/levels/level_7.gd b/game/levels/level_7.gd new file mode 100644 index 0000000..adf8799 --- /dev/null +++ b/game/levels/level_7.gd @@ -0,0 +1,148 @@ +extends AbstractLevel + + +const CUTSCENE_CAMERA_TIME = 5 +const CUTSCENE_HAZE_TIME = 0.1 + +const CUTSCENE_HAZE_TIME_BY_PHASE : Dictionary[int, float] = { + 1: CUTSCENE_HAZE_TIME, + 3: CUTSCENE_HAZE_TIME, + 5: CUTSCENE_HAZE_TIME, + 7: CUTSCENE_HAZE_TIME, +} + + +var _cutscene_phase := 0 +var _player_walk_speed : int +var _cutscene_player_speed_factor := 0.5 + +var _function_by_phase : Dictionary[int, Callable] = { + 1: _do_cutscene_phase_one, + 4: _do_cutscene_phase_four, + 6: _do_cutscene_phase_six, + 7: _do_cutscene_phase_seven, +} + + +@onready var cutscene_camera : Camera2D = $Cutscene/Camera2D +@onready var cutscene_haze : Polygon2D = $%CutsceneHaze +@onready var cutscene_thanks : Label = $CanvasLayer/MarginContainer/ThanksLabel + +@onready var cutscene_haze_timer : Timer = $Cutscene/HazeTimer +@onready var cutscene_player_timer : Timer = $Cutscene/PlayerTimer +@onready var cutscene_enemy_timer : Timer = $Cutscene/EnemyTimer +@onready var cutscene_end_timer : Timer = $Cutscene/EndTimer + +@onready var cutscene_fake_player : AnimatedSprite2D = $Cutscene/FakePlayer +@onready var cutscene_fake_enemy : AnimatedSprite2D = $Cutscene/FakeEnemy + +@onready var enemy_waves_by_phase : Dictionary[int, Node2D] = { + 3: $Cutscene/EnemyWaves/WaveOne, + 5: $Cutscene/EnemyWaves/WaveTwo, + 7: $Cutscene/EnemyWaves/WaveThree, +} + +@onready var cutscene_room_center : Vector2 = $Cutscene/RoomCenter.position +@onready var PLAYER_TARGET_POSITION_BY_PHASE : Dictionary[int, Vector2] = { + 1: $Cutscene/PlayerTargetPositions/PhaseOne.global_position, + 2: $Cutscene/PlayerTargetPositions/PhaseTwo.global_position, + 3: $Cutscene/PlayerTargetPositions/PhaseThree.global_position, + 4: $Cutscene/PlayerTargetPositions/PhaseFour.global_position, + 5: $Cutscene/PlayerTargetPositions/PhaseFive.global_position, + 6: $Cutscene/FakeEnemy.global_position, +} + + +func _ready() -> void: + super._ready() + _player_walk_speed = player.max_speed + cutscene_haze.hide() + cutscene_fake_player.hide() + cutscene_fake_enemy.hide() + cutscene_thanks.hide() + for phase in enemy_waves_by_phase: + enemy_waves_by_phase[phase].hide() + + +func _show_cutscene_haze(time: float) -> void: + SoundManager.play_sfx_stream(SoundManager.sfx_stream_haze, cutscene_room_center) + cutscene_haze.show() + cutscene_haze_timer.start(time) + + +func _next_cutscene_phase() -> void: + _cutscene_phase += 1 + + if _function_by_phase.has(_cutscene_phase): + _function_by_phase[_cutscene_phase].call() + + if CUTSCENE_HAZE_TIME_BY_PHASE.has(_cutscene_phase): + _show_cutscene_haze(CUTSCENE_HAZE_TIME_BY_PHASE[_cutscene_phase]) + + if enemy_waves_by_phase.has(_cutscene_phase): + enemy_waves_by_phase[_cutscene_phase].show() + + if PLAYER_TARGET_POSITION_BY_PHASE.has(_cutscene_phase): + var target_pos := PLAYER_TARGET_POSITION_BY_PHASE[_cutscene_phase] + var time := _get_player_move_time(cutscene_fake_player.position, target_pos) + var tween : Tween = create_tween() + tween.tween_property(cutscene_fake_player, "position", target_pos, time) + tween.finished.connect(_next_cutscene_phase) + + +func _do_cutscene_phase_one() -> void: + player.queue_free() + cutscene_camera.position = player.position + cutscene_camera.enabled = true + cutscene_camera.make_current() + cutscene_fake_player.show() + cutscene_fake_player.play(Player.ANIMATION_WALK_RIGHT, _cutscene_player_speed_factor) + var tween : Tween = create_tween() + tween.set_ease(Tween.EASE_IN_OUT) + tween.set_trans(Tween.TRANS_QUAD) + tween.tween_property(cutscene_camera, "position", cutscene_room_center, CUTSCENE_CAMERA_TIME) + + +func _do_cutscene_phase_four() -> void: + cutscene_fake_player.play(Player.ANIMATION_WALK_LEFT,_cutscene_player_speed_factor) + + +func _do_cutscene_phase_six() -> void: + _cutscene_player_speed_factor = 0.25 + cutscene_fake_player.play(Player.ANIMATION_WALK_RIGHT, _cutscene_player_speed_factor) + + +func _do_cutscene_phase_seven() -> void: + cutscene_fake_player.play("look_around", 0.5) + cutscene_player_timer.start() + + +func _get_player_move_time(initial_pos: Vector2, target_pos: Vector2) -> float: + var distance := initial_pos.distance_to(target_pos) + return distance / (_player_walk_speed * _cutscene_player_speed_factor) + + +func _on_level_end_entered(body: Node2D) -> void: + if body is Player: + _next_cutscene_phase() + + +func _on_haze_timer_timeout() -> void: + cutscene_haze.hide() + + +func _on_player_timer_timeout() -> void: + _show_cutscene_haze(CUTSCENE_HAZE_TIME) + cutscene_fake_player.queue_free() + cutscene_fake_enemy.show() + cutscene_fake_enemy.play("look_around", 0.5) + cutscene_enemy_timer.start() + + +func _on_enemy_timer_timeout() -> void: + cutscene_thanks.show() + cutscene_end_timer.start() + + +func _on_end_timer_timeout() -> void: + _complete_level(cutscene_room_center) diff --git a/game/levels/level_7.gd.uid b/game/levels/level_7.gd.uid new file mode 100644 index 0000000..ea85bc5 --- /dev/null +++ b/game/levels/level_7.gd.uid @@ -0,0 +1 @@ +uid://lxye5wqo5suq diff --git a/game/levels/level_7.tscn b/game/levels/level_7.tscn new file mode 100644 index 0000000..eaf069b --- /dev/null +++ b/game/levels/level_7.tscn @@ -0,0 +1,372 @@ +[gd_scene load_steps=25 format=4 uid="uid://cddh8nh54mrog"] + +[ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_bhhdo"] +[ext_resource type="PackedScene" uid="uid://dx1yasi8wlaye" path="res://game/objects/bookstand.tscn" id="2_1t02d"] +[ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/locked_door.tscn" id="2_b6xh1"] +[ext_resource type="Script" uid="uid://lxye5wqo5suq" path="res://game/levels/level_7.gd" id="2_sh0fj"] +[ext_resource type="PackedScene" uid="uid://cudbspmpx6sik" path="res://game/pickups/book_pickup.tscn" id="3_2esp0"] +[ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="3_7erpt"] +[ext_resource type="PackedScene" uid="uid://dioc4r03dfleq" path="res://game/doors/book_door.tscn" id="4_qqn64"] +[ext_resource type="Texture2D" uid="uid://f6vlokb08jir" path="res://images/level/candles.png" id="6_7erpt"] +[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="7_qqn64"] +[ext_resource type="PackedScene" uid="uid://cvx6akiplg21s" path="res://game/characters/player_sprite.tscn" id="10_x0kb5"] +[ext_resource type="PackedScene" uid="uid://dtxiercm8dsfm" path="res://game/characters/enemy_sprite.tscn" id="11_6yudq"] +[ext_resource type="Theme" uid="uid://bh56my8b2htnr" path="res://themes/menu.tres" id="13_6yudq"] +[ext_resource type="Material" uid="uid://dbkn3k0batj5w" path="res://game/materials/enemy_gray.tres" id="13_x83dg"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_qqn64"] +atlas = ExtResource("6_7erpt") +region = Rect2(0, 0, 640, 360) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_sh0fj"] +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = false +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 0.70000003325 +shader_parameter/scale = 20.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_sh0fj"] +atlas = ExtResource("6_7erpt") +region = Rect2(0, 360, 640, 360) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_o6y7x"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_6yudq"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_8x4ch"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_x83dg"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_jbfb3"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_n303p"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ghjrb"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_6mp5f"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 + +[node name="Level7" instance=ExtResource("1_bhhdo")] +script = ExtResource("2_sh0fj") + +[node name="LockedDoor_1" parent="Doors" index="0" instance=ExtResource("2_b6xh1")] +position = Vector2(-13, 2440) + +[node name="LockedDoor_2" parent="Doors" index="1" instance=ExtResource("2_b6xh1")] +position = Vector2(3443, 2440) + +[node name="Door1" parent="Doors" index="2" instance=ExtResource("3_7erpt")] +position = Vector2(451, 2440) + +[node name="BookDoor" parent="Doors" index="3" instance=ExtResource("4_qqn64")] +position = Vector2(1038, 2440) + +[node name="Door2" parent="Doors" index="4" instance=ExtResource("3_7erpt")] +position = Vector2(2019, 2440) + +[node name="Door3" parent="Doors" index="5" instance=ExtResource("3_7erpt")] +position = Vector2(2606, 2440) + +[node name="Bookstand" parent="Objects" index="0" instance=ExtResource("2_1t02d")] +position = Vector2(720, 2454) + +[node name="Candles" type="Node2D" parent="Objects" index="1"] +position = Vector2(735, 2355) + +[node name="Candles" type="Sprite2D" parent="Objects/Candles" index="0"] +texture = SubResource("AtlasTexture_qqn64") + +[node name="CandleFlames" type="Sprite2D" parent="Objects/Candles" index="1"] +material = SubResource("ShaderMaterial_sh0fj") +position = Vector2(0, -8) +texture = SubResource("AtlasTexture_sh0fj") + +[node name="BookPickup" parent="Pickups" index="0" instance=ExtResource("3_2esp0")] +position = Vector2(720, 2437) + +[node name="GrayWalls" parent="Tiles" index="0"] +tile_map_data = PackedByteArray("AAABAP//AAAAAAEAAAABAAAAAAAAAAEAAAABAAEAAAAAAAEAAAABAAIAAAAAAAEAAAABAAMAAAAAAAEAAAABAAQAAAAAAAEAAAABAAUAAAAAAAEAAAABAAYAAAAAAAEAAAABAAcAAAAAAAEAAAABAAgAAAAAAAEAAAABAAkAAAAAAAEAAAABAAoAAAAAAAEAAAABAAsAAAAAAAEAAAABAAwAAAAAAAEAAAABAA0AAAAAAAEAAAABAA4AAAAAAAEAAAABAA8AAAAAAAEAAAABABAAAAAAAAEAAAABABEAAAAAAAEAAAABABIAAAAAAAEAAAABABMAAAAAAAEAAAABABQAAAAAAAEAAAABABUAAAAAAAEAAAABABYAAAAAAAEAAAABABcAAAAAAAEAAAABABgAAAAAAAEAAAABABkAAAAAAAEAAAABABoAAAAAAAEAAAABABsAAAAAAAEAAAABABwAAAAAAAEAAAABAB0AAAAAAAEAAAABAB4AAAAAAAEAAAABAB8AAAAAAAEAAAABACAAAAAAAAEAAAABACEAAAAAAAEAAAABACIAAAAAAAEAAAABACMAAAAAAAEAAAABACQAAAAAAAEAAAABACUAAAAAAAEAAAABACYAAAAAAAEAAAABACcAAAAAAAEAAAABACgAAAAAAAEAAAABACkAAAAAAAEAAAABACoAAAAAAAEAAAABACsAAAAAAAEAAAABACwAAAAAAAEAAAABAC0AAAAAAAEAAAABAC4AAAAAAAEAAAABAC8AAAAAAAEAAAABADAAAAAAAAEAAAABADEAAAAAAAEAAAABADIAAAAAAAEAAAABADMAAAAAAAEAAAABADQAAAAAAAEAAAD+////AAACAAEAAAD+/wAAAAACAAEAAAD+/wEAAAACAAEAAAD+/wIAAAACAAEAAAD+/wMAAAACAAEAAAD+/wQAAAACAAEAAAD+/wUAAAACAAEAAAD+/wYAAAACAAEAAAD+/wcAAAACAAEAAAD+/wgAAAACAAEAAAD+/wkAAAACAAEAAAD+/woAAAACAAEAAAD+/wsAAAACAAEAAAD+/wwAAAACAAEAAAD+/w0AAAACAAEAAAD+/w4AAAACAAEAAAD+/w8AAAACAAEAAAD+/xAAAAACAAEAAAD+/xEAAAACAAEAAAD+/xIAAAACAAEAAAD+/xMAAAACAAEAAAD+/xQAAAACAAEAAAD+/xUAAAACAAEAAAD+/xYAAAACAAEAAAD+/xcAAAACAAEAAAD+/xgAAAACAAEAAAD+/xkAAAACAAEAAAD+/xoAAAACAAEAAAD+/xsAAAACAAEAAAD+/xwAAAACAAEAAAD+/x0AAAACAAEAAAD+/x4AAAACAAEAAAD+/x8AAAACAAEAAAD+/yAAAAACAAEAAAD+/yEAAAACAAEAAAD+/yIAAAACAAEAAAD+/yMAAAACAAEAAAD+/yQAAAACAAEAAAD+/yUAAAACAAEAAAD+/yYAAAACAAEAAAD+/ycAAAACAAEAAAD+/ygAAAACAAEAAAD+/ykAAAACAAEAAAD+/yoAAAACAAEAAAD+/ysAAAACAAEAAAD+/ywAAAACAAEAAAD+/y0AAAACAAEAAAD+/y4AAAACAAEAAAD+/y8AAAACAAEAAAD+/zAAAAACAAEAAAD+/zEAAAACAAEAAAD+/zIAAAACAAEAAAD+/zMAAAACAAEAAAD+/zQAAAACAAEAAAD+/zUAAAACAAEAAAD+/zYAAAACAAEAAAD+/zcAAAACAAEAAAD+/zgAAAACAAEAAAD+/zkAAAACAAEAAAD+/zoAAAACAAEAAAD+/zsAAAACAAEAAAD+/zwAAAACAAEAAAD+/z0AAAACAAEAAAD+/z4AAAACAAEAAAD+/z8AAAACAAEAAAD+/0AAAAACAAEAAAD+/0EAAAACAAEAAAD+/0IAAAACAAEAAAD+/0MAAAACAAEAAAD+/0QAAAACAAEAAAD+/0UAAAACAAEAAAD+/0YAAAACAAEAAAD+/0cAAAACAAEAAAD+/0gAAAACAAEAAAD+/0kAAAACAAEAAAD+/0oAAAACAAEAAAD+/0sAAAACAAEAAAD+/0wAAAACAAEAAAD+/00AAAACAAEAAAD+/04AAAACAAEAAAD+/08AAAACAAEAAAD+/1AAAAACAAEAAAD+/1EAAAACAAEAAAD+/1IAAAACAAEAAAD+/1MAAAACAAEAAAD+/1QAAAACAAEAAAD+/1UAAAACAAEAAAD+/1YAAAACAAEAAAD+/1cAAAACAAEAAAD+/1gAAAACAAEAAAD+/1kAAAACAAEAAAD+/1oAAAACAAEAAAD+/1sAAAACAAEAAAD+/1wAAAACAAEAAAD+/10AAAACAAEAAAD+/14AAAACAAEAAAD+/18AAAACAAEAAAD+/2AAAAACAAEAAAD+/2EAAAACAAEAAAD+/2IAAAACAAEAAAD+/2MAAAACAAEAAAD+/2QAAAACAAEAAAABADUAAAAAAAEAAAABADYAAAAAAAEAAAABADcAAAAAAAEAAAABADgAAAAAAAEAAAABADkAAAAAAAEAAAABADoAAAAAAAEAAAABADsAAAAAAAEAAAABADwAAAAAAAEAAAABAD0AAAAAAAEAAAABAD4AAAAAAAEAAAABAD8AAAAAAAEAAAABAEAAAAAAAAEAAAABAEEAAAAAAAEAAAABAEIAAAAAAAEAAAABAEMAAAAAAAEAAAABAEQAAAAAAAEAAAABAEUAAAAAAAEAAAABAEYAAAAAAAEAAAABAEcAAAAAAAEAAAABAEgAAAAAAAEAAAABAEkAAAAAAAEAAAABAEoAAAAAAAEAAAABAEsAAAAAAAEAAAABAEwAAAAAAAEAAAABAE0AAAAAAAEAAAABAE4AAAAAAAEAAAABAE8AAAAAAAEAAAABAFAAAAAAAAEAAAABAFEAAAAAAAEAAAABAFIAAAAAAAEAAAABAFMAAAAAAAEAAAABAFQAAAAAAAEAAAABAFUAAAAAAAEAAAABAFYAAAAAAAEAAAABAFcAAAAAAAEAAAABAFgAAAAAAAEAAAABAFkAAAAAAAEAAAABAFoAAAAAAAEAAAABAFsAAAAAAAEAAAABAFwAAAAAAAEAAAABAF0AAAAAAAEAAAABAF4AAAAAAAEAAAABAF8AAAAAAAEAAAABAGAAAAAAAAEAAAABAGEAAAAAAAEAAAABAGIAAAAAAAEAAAABAGMAAAAAAAEAAAABAGQAAAAAAAEAAAABAGUAAAAAAAEAAAABAGYAAAAAAAEAAAABAGcAAAAAAAEAAAABAGgAAAAAAAEAAAABAGkAAAAAAAEAAAABAGoAAAAAAAEAAAABAGsAAAAAAAEAAAABAGwAAAAAAAEAAAABAG0AAAAAAAEAAAABAG4AAAAAAAEAAAABAG8AAAAAAAEAAAABAHAAAAAAAAEAAAABAHEAAAAAAAEAAAABAHIAAAAAAAEAAAABAHMAAAAAAAEAAAABAHQAAAAAAAEAAAABAHUAAAAAAAEAAAABAHYAAAAAAAEAAAABAHcAAAAAAAEAAAABAHgAAAAAAAEAAAABAHkAAAAAAAEAAAABAHoAAAAAAAEAAAABAHsAAAAAAAEAAAABAHwAAAAAAAEAAAABAH0AAAAAAAEAAAABAH4AAAAAAAEAAAABAH8AAAAAAAEAAAABAIAAAAAAAAEAAAABAIEAAAAAAAEAAAABAIIAAAAAAAEAAAABAIMAAAAAAAEAAAABAIQAAAAAAAEAAAABAIUAAAAAAAEAAAABAIYAAAAAAAEAAAABAIcAAAAAAAEAAAABAIgAAAAAAAEAAAABAIkAAAAAAAEAAAABAIoAAAAAAAEAAAABAIsAAAAAAAEAAAABAIwAAAAAAAEAAAABAI0AAAAAAAEAAAABAI4AAAAAAAEAAAABAI8AAAAAAAEAAAABAJAAAAAAAAEAAAABAJEAAAAAAAEAAAABAJIAAAAAAAEAAAABAJMAAAAAAAEAAAABAJQAAAAAAAEAAAABAJUAAAAAAAEAAAABAJYAAAAAAAIAAAD+/2UAAAACAAEAAAD+/2YAAAACAAEAAAD+/2cAAAACAAEAAAD+/2gAAAACAAEAAAD+/2kAAAACAAEAAAD+/2oAAAACAAEAAAD+/2sAAAACAAEAAAD+/2wAAAACAAEAAAD+/20AAAACAAEAAAD+/24AAAACAAEAAAD+/28AAAACAAEAAAD+/3AAAAACAAEAAAD+/3EAAAACAAEAAAD+/3IAAAACAAEAAAD+/3MAAAACAAEAAAD+/3QAAAACAAEAAAD+/3UAAAACAAEAAAD+/3YAAAACAAEAAAD+/3cAAAACAAEAAAD+/3gAAAACAAEAAAD+/3kAAAACAAEAAAD+/3oAAAACAAEAAAD+/3sAAAACAAEAAAD+/3wAAAACAAEAAAD+/30AAAACAAEAAAD+/34AAAACAAEAAAD+/38AAAACAAEAAAD+/4AAAAACAAEAAAD+/4EAAAACAAEAAAD+/4IAAAACAAEAAAD+/4MAAAACAAEAAAD+/4QAAAACAAEAAAD+/4UAAAACAAEAAAD+/4YAAAACAAEAAAD+/4cAAAACAAEAAAD+/4gAAAACAAEAAAD+/4kAAAACAAEAAAD+/4oAAAACAAEAAAD+/4sAAAACAAEAAAD+/4wAAAACAAEAAAD+/40AAAACAAEAAAD+/44AAAACAAEAAAD+/48AAAACAAEAAAD+/5AAAAACAAEAAAD+/5EAAAACAAEAAAD+/5IAAAACAAEAAAD+/5MAAAACAAEAAAD+/5QAAAACAAEAAAD+/5UAAAACAAEAAAD+/5YAAAACAAIAAAD//5oAAAABAAAAAAAAAJoAAAABAAAAAAABAJoAAAABAAAAAAACAJoAAAABAAAAAAADAJoAAAABAAAAAAAEAJoAAAABAAAAAAAFAJoAAAABAAAAAAAGAJoAAAABAAAAAAAHAJoAAAABAAAAAAAIAJoAAAABAAAAAAAJAJoAAAABAAAAAAAKAJoAAAABAAAAAAALAJoAAAABAAAAAAD+/5oAAAABAAAAAAACAJYAAAABAAIAAAADAJYAAAABAAIAAAAEAJYAAAABAAIAAAAFAJYAAAABAAIAAAAGAJYAAAABAAIAAAAHAJYAAAABAAIAAAAIAJYAAAABAAIAAAAJAJYAAAABAAIAAAAKAJYAAAABAAIAAAALAJYAAAABAAIAAAAMAJYAAAABAAIAAAANAJYAAAABAAIAAAAOAJYAAAABAAIAAAAPAJYAAAABAAIAAAAQAJYAAAABAAIAAAARAJYAAAABAAIAAAASAJYAAAABAAIAAAATAJYAAAABAAIAAAAUAJYAAAABAAIAAAAVAJYAAAABAAIAAAAWAJYAAAABAAIAAAAXAJYAAAABAAIAAAAYAJYAAAABAAIAAAAZAJYAAAABAAIAAAAaAJYAAAABAAIAAAAMAJoAAAABAAAAAAANAJoAAAABAAAAAAAOAJoAAAABAAAAAAAPAJoAAAABAAAAAAAQAJoAAAABAAAAAAARAJoAAAABAAAAAAASAJoAAAABAAAAAAATAJoAAAABAAAAAAAUAJoAAAABAAAAAAAVAJoAAAABAAAAAAAWAJoAAAABAAAAAAAXAJoAAAABAAAAAAAYAJoAAAABAAAAAAAZAJoAAAABAAAAAAAaAJoAAAABAAAAAAAbAJoAAAABAAAAAAAcAJoAAAABAAAAAAAdAJoAAAABAAAAAAAeAJoAAAABAAAAAAAfAJoAAAABAAAAAAAgAJoAAAABAAAAAAAhAJoAAAABAAAAAAAiAJoAAAABAAAAAAAjAJoAAAABAAAAAAAkAJoAAAABAAAAAAAlAJoAAAABAAAAAAAmAJoAAAABAAAAAAAnAJoAAAABAAAAAAAoAJoAAAABAAAAAAApAJoAAAABAAAAAAAqAJoAAAABAAAAAAArAJoAAAABAAAAAAAsAJoAAAABAAAAAAAtAJoAAAABAAAAAAAuAJoAAAABAAAAAAAvAJoAAAABAAAAAAAwAJoAAAABAAAAAAAxAJoAAAABAAAAAAAyAJoAAAABAAAAAAAzAJoAAAABAAAAAAA0AJoAAAABAAAAAAA1AJoAAAABAAAAAAA2AJoAAAABAAAAAAA3AJoAAAABAAAAAAA4AJoAAAABAAAAAAA5AJoAAAABAAAAAAA6AJoAAAABAAAAAAAbAJYAAAACAAIAAAAbAJUAAAACAAEAAAAbAJQAAAACAAEAAAAbAJMAAAACAAEAAAAbAJIAAAACAAEAAAAbAJEAAAACAAEAAAAbAJAAAAACAAEAAAAbAI8AAAACAAEAAAAbAI4AAAACAAEAAAAbAI0AAAADAAAAAAAcAI0AAAABAAIAAAAdAI0AAAABAAIAAAAeAI0AAAABAAIAAAAfAI0AAAABAAIAAAAgAI0AAAABAAIAAAAhAI0AAAABAAIAAAAiAI0AAAABAAIAAAAjAI0AAAABAAIAAAAkAI0AAAABAAIAAAAlAI0AAAABAAIAAAAmAI0AAAABAAIAAAAnAI0AAAABAAIAAAAoAI0AAAABAAIAAAApAI0AAAABAAIAAAAqAI0AAAABAAIAAAArAI0AAAABAAIAAAAsAI0AAAABAAIAAAAtAI0AAAABAAIAAAAuAI0AAAABAAIAAAAvAI0AAAABAAIAAAAwAI0AAAABAAIAAAAxAI0AAAABAAIAAAAyAI0AAAABAAIAAAAzAI0AAAABAAIAAAA0AI0AAAABAAIAAAA1AI0AAAABAAIAAAA2AI0AAAABAAIAAAA3AI0AAAABAAIAAAA4AI0AAAABAAIAAAA5AI0AAAABAAIAAAA6AI0AAAABAAIAAAA7AI0AAAABAAIAAAA8AI0AAAABAAIAAAA9AI0AAAABAAIAAAA+AI0AAAABAAIAAAA/AI0AAAABAAIAAABAAI0AAAAEAAAAAABAAI4AAAAAAAEAAABAAI8AAAAAAAEAAABAAJAAAAAAAAEAAABAAJEAAAAAAAEAAABAAJIAAAAAAAEAAABAAJMAAAAAAAEAAABAAJQAAAAAAAEAAABAAJUAAAAAAAEAAABAAJYAAAAAAAIAAAA7AJoAAAABAAAAAAA8AJoAAAABAAAAAAA9AJoAAAABAAAAAAA+AJoAAAABAAAAAAA/AJoAAAABAAAAAABAAJoAAAABAAAAAABBAJoAAAABAAAAAABCAJoAAAABAAAAAABDAJoAAAABAAAAAABEAJoAAAABAAAAAABFAJoAAAABAAAAAABGAJoAAAABAAAAAABHAJoAAAABAAAAAABIAJoAAAABAAAAAABJAJoAAAABAAAAAABKAJoAAAABAAAAAABLAJoAAAABAAAAAABMAJoAAAABAAAAAABNAJoAAAABAAAAAABOAJoAAAABAAAAAABPAJoAAAABAAAAAABQAJoAAAABAAAAAABRAJoAAAABAAAAAABSAJoAAAABAAAAAABTAJoAAAABAAAAAABUAJoAAAABAAAAAABVAJoAAAABAAAAAABWAJoAAAABAAAAAABXAJoAAAABAAAAAABYAJoAAAABAAAAAABZAJoAAAABAAAAAABaAJoAAAABAAAAAABbAJoAAAABAAAAAABcAJoAAAABAAAAAABdAJoAAAABAAAAAABeAJoAAAABAAAAAABfAJoAAAABAAAAAABgAJoAAAABAAAAAABhAJoAAAABAAAAAABiAJoAAAABAAAAAABjAJoAAAABAAAAAABkAJoAAAABAAAAAABlAJoAAAABAAAAAABmAJoAAAABAAAAAABnAJoAAAABAAAAAABoAJoAAAABAAAAAABpAJoAAAABAAAAAABqAJoAAAABAAAAAABrAJoAAAABAAAAAABsAJoAAAABAAAAAABBAJYAAAABAAIAAABCAJYAAAABAAIAAABDAJYAAAABAAIAAABEAJYAAAABAAIAAABFAJYAAAABAAIAAABGAJYAAAABAAIAAABHAJYAAAABAAIAAABIAJYAAAABAAIAAABJAJYAAAABAAIAAABKAJYAAAABAAIAAABLAJYAAAABAAIAAABMAJYAAAABAAIAAABNAJYAAAABAAIAAABOAJYAAAABAAIAAABPAJYAAAABAAIAAABQAJYAAAABAAIAAABRAJYAAAABAAIAAABSAJYAAAABAAIAAABTAJYAAAABAAIAAABUAJYAAAABAAIAAABVAJYAAAABAAIAAABWAJYAAAABAAIAAABXAJYAAAABAAIAAABYAJYAAAABAAIAAABZAJYAAAABAAIAAABaAJYAAAABAAIAAABbAJYAAAABAAIAAABcAJYAAAABAAIAAABdAJYAAAABAAIAAABeAJYAAAABAAIAAABfAJYAAAABAAIAAABgAJYAAAABAAIAAABhAJYAAAABAAIAAABiAJYAAAABAAIAAABjAJYAAAABAAIAAABkAJYAAAABAAIAAABlAJYAAAABAAIAAABmAJYAAAABAAIAAABnAJYAAAABAAIAAABoAJYAAAABAAIAAABpAJYAAAABAAIAAABqAJYAAAABAAIAAABrAJYAAAABAAIAAABsAJYAAAABAAIAAABtAJoAAAABAAAAAABuAJoAAAABAAAAAABvAJoAAAABAAAAAABwAJoAAAABAAAAAABxAJoAAAABAAAAAAByAJoAAAABAAAAAABzAJoAAAABAAAAAAB0AJoAAAABAAAAAAB1AJoAAAABAAAAAAB2AJoAAAABAAAAAAB3AJoAAAABAAAAAABtAJYAAAABAAIAAABuAJYAAAABAAIAAABvAJYAAAABAAIAAABwAJYAAAABAAIAAABxAJYAAAABAAIAAAByAJYAAAABAAIAAABzAJYAAAABAAIAAAB0AJYAAAABAAIAAAB1AJYAAAABAAIAAAB2AJYAAAABAAIAAAB3AJYAAAABAAIAAAB4AJYAAAABAAIAAAB5AJYAAAABAAIAAAB6AJYAAAABAAIAAAB7AJYAAAABAAIAAAB8AJYAAAABAAIAAAB9AJYAAAACAAIAAAB4AJoAAAABAAAAAAB5AJoAAAABAAAAAAB6AJoAAAABAAAAAAB7AJoAAAABAAAAAAB8AJoAAAABAAAAAAB9AJoAAAABAAAAAAB9AI0AAAADAAAAAAB9AI4AAAACAAEAAAB9AI8AAAACAAEAAAB9AJAAAAACAAEAAAB9AJEAAAACAAEAAAB9AJIAAAACAAEAAAB9AJMAAAACAAEAAAB9AJQAAAACAAEAAAB9AJUAAAACAAEAAAB+AI0AAAABAAIAAAB+AJoAAAABAAAAAAB/AI0AAAABAAIAAAB/AJoAAAABAAAAAACAAI0AAAABAAIAAACAAJoAAAABAAAAAACBAI0AAAABAAIAAACBAJoAAAABAAAAAACCAI0AAAABAAIAAACCAJoAAAABAAAAAACDAI0AAAABAAIAAACDAJoAAAABAAAAAACEAI0AAAABAAIAAACEAJoAAAABAAAAAACFAI0AAAABAAIAAACFAJoAAAABAAAAAACGAI0AAAABAAIAAACGAJoAAAABAAAAAACHAI0AAAABAAIAAACHAJoAAAABAAAAAACIAI0AAAABAAIAAACIAJoAAAABAAAAAACJAI0AAAABAAIAAACJAJoAAAABAAAAAACKAI0AAAABAAIAAACKAJoAAAABAAAAAACLAI0AAAABAAIAAACLAJoAAAABAAAAAACMAI0AAAABAAIAAACMAJoAAAABAAAAAACNAI0AAAABAAIAAACNAJoAAAABAAAAAACOAI0AAAABAAIAAACOAJoAAAABAAAAAACPAI0AAAABAAIAAACPAJoAAAABAAAAAACQAI0AAAABAAIAAACQAJoAAAABAAAAAACRAI0AAAABAAIAAACRAJoAAAABAAAAAACSAI0AAAABAAIAAACSAJoAAAABAAAAAACTAI0AAAABAAIAAACTAJoAAAABAAAAAACUAI0AAAABAAIAAACUAJoAAAABAAAAAACVAI0AAAABAAIAAACVAJoAAAABAAAAAACWAI0AAAABAAIAAACWAJoAAAABAAAAAACXAI0AAAABAAIAAACXAJoAAAABAAAAAACYAI0AAAABAAIAAACYAJoAAAABAAAAAACZAI0AAAABAAIAAACZAJoAAAABAAAAAACaAI0AAAABAAIAAACaAJoAAAABAAAAAACbAI0AAAABAAIAAACbAJoAAAABAAAAAACcAI0AAAABAAIAAACcAJoAAAABAAAAAACdAI0AAAABAAIAAACdAJoAAAABAAAAAACeAI0AAAABAAIAAACeAJoAAAABAAAAAACfAI0AAAABAAIAAACfAJoAAAABAAAAAACgAI0AAAABAAIAAACgAJoAAAABAAAAAAChAI0AAAABAAIAAAChAJoAAAABAAAAAACiAI0AAAAEAAAAAACiAI4AAAAAAAEAAACiAI8AAAAAAAEAAACiAJAAAAAAAAEAAACiAJEAAAAAAAEAAACiAJIAAAAAAAEAAACiAJMAAAAAAAEAAACiAJQAAAAAAAEAAACiAJUAAAAAAAEAAACiAJYAAAAAAAIAAACiAJoAAAABAAAAAACjAJoAAAABAAAAAACkAJoAAAABAAAAAAClAJoAAAABAAAAAACmAJoAAAABAAAAAACnAJoAAAABAAAAAACoAJoAAAABAAAAAACpAJoAAAABAAAAAACqAJoAAAABAAAAAACrAJoAAAABAAAAAACsAJoAAAABAAAAAACtAJoAAAABAAAAAACuAJoAAAABAAAAAACvAJoAAAABAAAAAACwAJoAAAABAAAAAACxAJoAAAABAAAAAACyAJoAAAABAAAAAACzAJoAAAABAAAAAAC0AJoAAAABAAAAAAC1AJoAAAABAAAAAAC2AJoAAAABAAAAAAC3AJoAAAABAAAAAAC4AJoAAAABAAAAAAC5AJoAAAABAAAAAAC6AJoAAAABAAAAAAC7AJoAAAABAAAAAAC8AJoAAAABAAAAAAC9AJoAAAABAAAAAAC+AJoAAAABAAAAAAC/AJoAAAABAAAAAADAAJoAAAABAAAAAADBAJoAAAABAAAAAADCAJoAAAABAAAAAADDAJoAAAABAAAAAADEAJoAAAABAAAAAADFAJoAAAABAAAAAADGAJoAAAABAAAAAADHAJoAAAABAAAAAADIAJoAAAABAAAAAADJAJoAAAABAAAAAADKAJoAAAABAAAAAADLAJoAAAABAAAAAADMAJoAAAABAAAAAADNAJoAAAABAAAAAADOAJoAAAABAAAAAADPAJoAAAABAAAAAADQAJoAAAABAAAAAADRAJoAAAABAAAAAADSAJoAAAABAAAAAADTAJoAAAABAAAAAADUAJoAAAABAAAAAADVAJoAAAABAAAAAADWAJoAAAABAAAAAACjAJYAAAABAAIAAACkAJYAAAABAAIAAAClAJYAAAABAAIAAACmAJYAAAABAAIAAACnAJYAAAABAAIAAACoAJYAAAABAAIAAACpAJYAAAABAAIAAACqAJYAAAABAAIAAACrAJYAAAABAAIAAACsAJYAAAABAAIAAACtAJYAAAABAAIAAACuAJYAAAABAAIAAACvAJYAAAABAAIAAACwAJYAAAABAAIAAACxAJYAAAABAAIAAACyAJYAAAABAAIAAACzAJYAAAABAAIAAAC0AJYAAAABAAIAAAC1AJYAAAABAAIAAAC2AJYAAAABAAIAAAC3AJYAAAABAAIAAAC4AJYAAAABAAIAAAC5AJYAAAABAAIAAAC6AJYAAAABAAIAAAC7AJYAAAABAAIAAAC8AJYAAAABAAIAAAC9AJYAAAABAAIAAAC+AJYAAAABAAIAAAC/AJYAAAABAAIAAADAAJYAAAABAAIAAADBAJYAAAABAAIAAADCAJYAAAABAAIAAADDAJYAAAABAAIAAADEAJYAAAABAAIAAADFAJYAAAABAAIAAADGAJYAAAABAAIAAADHAJYAAAABAAIAAADIAJYAAAABAAIAAADJAJYAAAABAAIAAADKAJYAAAABAAIAAADLAJYAAAABAAIAAADMAJYAAAABAAIAAADNAJYAAAABAAIAAADOAJYAAAABAAIAAADPAJYAAAABAAIAAADQAJYAAAABAAIAAADRAJYAAAABAAIAAADSAJYAAAABAAIAAADTAJYAAAABAAIAAADUAJYAAAABAAIAAADVAJYAAAABAAIAAADWAJYAAAABAAIAAAABAP7/AAAAAAEAAAABAP3/AAAAAAEAAAABAPz/AAAAAAEAAAABAPv/AAAAAAEAAAABAPr/AAAAAAEAAAABAPn/AAAAAAEAAAABAPj/AAAAAAEAAAABAPf/AAAAAAEAAAABAPb/AAAAAAEAAAABAPX/AAAAAAEAAAABAPT/AAAAAAEAAAABAPP/AAAAAAEAAAABAPL/AAAAAAEAAAD+//7/AAACAAEAAAD+//3/AAACAAEAAAD+//z/AAACAAEAAAD+//v/AAACAAEAAAD+//r/AAACAAEAAAD+//n/AAACAAEAAAD+//j/AAACAAEAAAD+//f/AAACAAEAAAD+//b/AAACAAEAAAD+//X/AAACAAEAAAD+//T/AAACAAEAAAD+//P/AAACAAEAAAD+//L/AAACAAEAAAA=") + +[node name="Cutscene" type="Node2D" parent="." index="6"] + +[node name="HazeTimer" type="Timer" parent="Cutscene" index="0"] +one_shot = true + +[node name="PlayerTimer" type="Timer" parent="Cutscene" index="1"] +wait_time = 3.8 +one_shot = true + +[node name="EnemyTimer" type="Timer" parent="Cutscene" index="2"] +wait_time = 10.0 +one_shot = true + +[node name="EndTimer" type="Timer" parent="Cutscene" index="3"] +wait_time = 10.0 +one_shot = true + +[node name="Camera2D" type="Camera2D" parent="Cutscene" index="4"] +enabled = false + +[node name="FakePlayer" parent="Cutscene" index="5" instance=ExtResource("10_x0kb5")] +position = Vector2(2034, 2448) + +[node name="FakeEnemy" parent="Cutscene" index="6" instance=ExtResource("11_6yudq")] +position = Vector2(2304, 2448) + +[node name="RoomCenter" type="Node2D" parent="Cutscene" index="7"] +position = Vector2(2304, 2448) + +[node name="PlayerTargetPositions" type="Node2D" parent="Cutscene" index="8"] +position = Vector2(2304, 2448) + +[node name="PhaseOne" type="Node2D" parent="Cutscene/PlayerTargetPositions" index="0"] +position = Vector2(-87, 0) + +[node name="PhaseTwo" type="Node2D" parent="Cutscene/PlayerTargetPositions" index="1"] + +[node name="PhaseThree" type="Node2D" parent="Cutscene/PlayerTargetPositions" index="2"] +position = Vector2(45, 0) + +[node name="PhaseFour" type="Node2D" parent="Cutscene/PlayerTargetPositions" index="3"] +position = Vector2(-40, 0) + +[node name="PhaseFive" type="Node2D" parent="Cutscene/PlayerTargetPositions" index="4"] +position = Vector2(-62, 0) + +[node name="EnemyWaves" type="Node2D" parent="Cutscene" index="9"] +position = Vector2(2304, 2448) + +[node name="WaveThree" type="Node2D" parent="Cutscene/EnemyWaves" index="0"] + +[node name="Right_1" parent="Cutscene/EnemyWaves/WaveThree" index="0" instance=ExtResource("11_6yudq")] +position = Vector2(-69, 0) +animation = &"look_around_front_1" + +[node name="Right_2" parent="Cutscene/EnemyWaves/WaveThree" index="1" instance=ExtResource("11_6yudq")] +material = ExtResource("13_x83dg") +position = Vector2(-77, 0) +animation = &"look_around_front_1" + +[node name="Right_3" parent="Cutscene/EnemyWaves/WaveThree" index="2" instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_o6y7x") +position = Vector2(-87, 0) +animation = &"look_around_front_1" + +[node name="Right_4" parent="Cutscene/EnemyWaves/WaveThree" index="3" instance=ExtResource("11_6yudq")] +position = Vector2(-95, 0) +animation = &"look_around_front_1" + +[node name="Right_5" parent="Cutscene/EnemyWaves/WaveThree" index="4" instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_6yudq") +position = Vector2(-104, 0) +animation = &"look_around_front_1" + +[node name="Right_6" parent="Cutscene/EnemyWaves/WaveThree" index="5" instance=ExtResource("11_6yudq")] +material = ExtResource("13_x83dg") +position = Vector2(-113, 0) +animation = &"look_around_front_1" + +[node name="Right_7" parent="Cutscene/EnemyWaves/WaveThree" index="6" instance=ExtResource("11_6yudq")] +position = Vector2(-120, 0) +animation = &"look_around_front_1" + +[node name="Left_1" parent="Cutscene/EnemyWaves/WaveThree" index="7" instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_8x4ch") +position = Vector2(78, 0) +animation = &"look_around_front_2" + +[node name="Left_2" parent="Cutscene/EnemyWaves/WaveThree" index="8" instance=ExtResource("11_6yudq")] +position = Vector2(86, 0) +animation = &"look_around_front_2" + +[node name="Left_3" parent="Cutscene/EnemyWaves/WaveThree" index="9" instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_x83dg") +position = Vector2(95, 0) +animation = &"look_around_front_2" + +[node name="Left_4" parent="Cutscene/EnemyWaves/WaveThree" index="10" instance=ExtResource("11_6yudq")] +material = ExtResource("13_x83dg") +position = Vector2(105, 0) +animation = &"look_around_front_2" + +[node name="Left_5" parent="Cutscene/EnemyWaves/WaveThree" index="11" instance=ExtResource("11_6yudq")] +position = Vector2(115, 0) +animation = &"look_around_front_2" + +[node name="Left_6" parent="Cutscene/EnemyWaves/WaveThree" index="12" instance=ExtResource("11_6yudq")] +position = Vector2(123, 0) +animation = &"look_around_front_2" + +[node name="Left_7" parent="Cutscene/EnemyWaves/WaveThree" index="13" instance=ExtResource("11_6yudq")] +material = ExtResource("13_x83dg") +position = Vector2(131, 0) +animation = &"look_around_front_2" + +[node name="WaveOne" type="Node2D" parent="Cutscene/EnemyWaves" index="1"] + +[node name="Left_1" parent="Cutscene/EnemyWaves/WaveOne" index="0" instance=ExtResource("11_6yudq")] +position = Vector2(142, 0) +animation = &"walk_left" + +[node name="Left_2" parent="Cutscene/EnemyWaves/WaveOne" index="1" instance=ExtResource("11_6yudq")] +position = Vector2(156, 0) +animation = &"walk_left" + +[node name="Left_3" parent="Cutscene/EnemyWaves/WaveOne" index="2" instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_jbfb3") +position = Vector2(168, 0) +animation = &"walk_left" + +[node name="Left_4" parent="Cutscene/EnemyWaves/WaveOne" index="3" instance=ExtResource("11_6yudq")] +position = Vector2(181, 0) +animation = &"walk_left" + +[node name="Left_5" parent="Cutscene/EnemyWaves/WaveOne" index="4" instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_n303p") +position = Vector2(196, 0) +animation = &"walk_left" + +[node name="Left_6" parent="Cutscene/EnemyWaves/WaveOne" index="5" instance=ExtResource("11_6yudq")] +material = ExtResource("13_x83dg") +position = Vector2(211, 0) +animation = &"walk_left" + +[node name="Left_7" parent="Cutscene/EnemyWaves/WaveOne" index="6" instance=ExtResource("11_6yudq")] +position = Vector2(225, 0) +animation = &"walk_left" + +[node name="WaveTwo" type="Node2D" parent="Cutscene/EnemyWaves" index="2"] + +[node name="Right_1" parent="Cutscene/EnemyWaves/WaveTwo" index="0" instance=ExtResource("11_6yudq")] +material = ExtResource("13_x83dg") +position = Vector2(-131, 0) +animation = &"walk_right" + +[node name="Right_2" parent="Cutscene/EnemyWaves/WaveTwo" index="1" instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_ghjrb") +position = Vector2(-142, 0) +animation = &"walk_right" + +[node name="Right_3" parent="Cutscene/EnemyWaves/WaveTwo" index="2" instance=ExtResource("11_6yudq")] +position = Vector2(-154, 0) +animation = &"walk_right" + +[node name="Right_4" parent="Cutscene/EnemyWaves/WaveTwo" index="3" instance=ExtResource("11_6yudq")] +material = ExtResource("13_x83dg") +position = Vector2(-166, 0) +animation = &"walk_right" + +[node name="Right_5" parent="Cutscene/EnemyWaves/WaveTwo" index="4" instance=ExtResource("11_6yudq")] +position = Vector2(-175, -1) +animation = &"walk_right" + +[node name="Right_6" parent="Cutscene/EnemyWaves/WaveTwo" index="5" instance=ExtResource("11_6yudq")] +position = Vector2(-188, -1) +animation = &"walk_right" + +[node name="Right_7" parent="Cutscene/EnemyWaves/WaveTwo" index="6" instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_6mp5f") +position = Vector2(-200, -1) +animation = &"walk_right" + +[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer" index="0"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_bottom = 200 + +[node name="ThanksLabel" type="Label" parent="CanvasLayer/MarginContainer" index="0"] +layout_mode = 2 +theme = ExtResource("13_6yudq") +text = "Thanks for playing!" +horizontal_alignment = 1 + +[node name="CutsceneHaze" type="Polygon2D" parent="CanvasLayer" index="1"] +unique_name_in_owner = true +visible = false +color = Color(0, 0, 0, 1) +polygon = PackedVector2Array(0, 0, 640, 0, 640, 360, 0, 360) + +[node name="LevelEnd" parent="." index="8"] +position = Vector2(2031, 2440) + +[connection signal="timeout" from="Cutscene/HazeTimer" to="." method="_on_haze_timer_timeout"] +[connection signal="timeout" from="Cutscene/PlayerTimer" to="." method="_on_player_timer_timeout"] +[connection signal="timeout" from="Cutscene/EnemyTimer" to="." method="_on_enemy_timer_timeout"] +[connection signal="timeout" from="Cutscene/EndTimer" to="." method="_on_end_timer_timeout"] diff --git a/game/managers/level_manager.tscn b/game/managers/level_manager.tscn index 45edd57..72b9b1e 100644 --- a/game/managers/level_manager.tscn +++ b/game/managers/level_manager.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://b2rgtl2dyorip"] +[gd_scene load_steps=9 format=3 uid="uid://b2rgtl2dyorip"] [ext_resource type="Script" uid="uid://w4ofprtn7lu8" path="res://game/managers/level_manager.gd" id="1_te7jw"] [ext_resource type="PackedScene" uid="uid://dlpi1ptis3wna" path="res://game/levels/level_1.tscn" id="2_r84xe"] @@ -7,7 +7,8 @@ [ext_resource type="PackedScene" uid="uid://cmp1cog2cbfh5" path="res://game/levels/level_4.tscn" id="5_yl05u"] [ext_resource type="PackedScene" uid="uid://brysu1p6fw88n" path="res://game/levels/level_5.tscn" id="6_eo2u3"] [ext_resource type="PackedScene" uid="uid://uanhjjloryf4" path="res://game/levels/level_6.tscn" id="7_da5al"] +[ext_resource type="PackedScene" uid="uid://cddh8nh54mrog" path="res://game/levels/level_7.tscn" id="8_rvthr"] [node name="LevelManager" type="Node"] script = ExtResource("1_te7jw") -levels = Array[PackedScene]([ExtResource("2_r84xe"), ExtResource("3_yl05u"), ExtResource("4_eo2u3"), ExtResource("5_yl05u"), ExtResource("6_eo2u3"), ExtResource("7_da5al")]) +levels = Array[PackedScene]([ExtResource("2_r84xe"), ExtResource("3_yl05u"), ExtResource("4_eo2u3"), ExtResource("5_yl05u"), ExtResource("6_eo2u3"), ExtResource("7_da5al"), ExtResource("8_rvthr")]) diff --git a/game/managers/sound_manager.gd b/game/managers/sound_manager.gd index 4fa6325..77ad8fb 100644 --- a/game/managers/sound_manager.gd +++ b/game/managers/sound_manager.gd @@ -30,6 +30,7 @@ const MUSIC_BUS = "Music" @export var sfx_stream_door_locked : AudioStream @export var sfx_stream_door_opening : AudioStream @export var sfx_stream_door_unlocking : AudioStream +@export var sfx_stream_haze : AudioStream @export var sfx_stream_jump : AudioStream @export var sfx_stream_key_picked_up : AudioStream @export var sfx_stream_level_completed : AudioStream diff --git a/game/managers/sound_manager.tscn b/game/managers/sound_manager.tscn index e817958..8cb6167 100644 --- a/game/managers/sound_manager.tscn +++ b/game/managers/sound_manager.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://drk4dvbn78dva"] +[gd_scene load_steps=20 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"] @@ -16,6 +16,7 @@ [ext_resource type="AudioStream" uid="uid://txk8dq16levc" path="res://sound/sfx/key_picked_up.wav" id="8_wyfta"] [ext_resource type="AudioStream" uid="uid://dy7qnen5k20mo" path="res://sound/sfx/player_spoted.wav" id="9_q7cyi"] [ext_resource type="AudioStream" uid="uid://dg0t7fwu8u3m2" path="res://sound/sfx/door_unlocking.wav" id="10_lqyhh"] +[ext_resource type="AudioStream" uid="uid://capj5pjbrdpw5" path="res://sound/sfx/haze.wav" id="11_13qx5"] [ext_resource type="AudioStream" uid="uid://ckmpft46wjgqs" path="res://sound/music/main_menu.wav" id="17_g6nb7"] [ext_resource type="AudioStream" uid="uid://ttemdy7avyh7" path="res://sound/music/gameplay.wav" id="17_l5yxe"] @@ -37,6 +38,7 @@ sfx_stream_door_closing = ExtResource("7_814q3") sfx_stream_door_locked = ExtResource("8_lqyhh") sfx_stream_door_opening = ExtResource("8_ounmg") sfx_stream_door_unlocking = ExtResource("10_lqyhh") +sfx_stream_haze = ExtResource("11_13qx5") sfx_stream_jump = ExtResource("6_22ptj") sfx_stream_key_picked_up = ExtResource("8_wyfta") sfx_stream_level_completed = ExtResource("7_22ptj") diff --git a/game/materials/enemy_black.tres b/game/materials/enemy_black.tres new file mode 100644 index 0000000..b77bebd --- /dev/null +++ b/game/materials/enemy_black.tres @@ -0,0 +1,14 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dggr8t4b30e3n"] + +[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_61jua"] + +[resource] +resource_local_to_scene = true +shader = ExtResource("1_61jua") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = true +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 diff --git a/game/materials/enemy_gray.tres b/game/materials/enemy_gray.tres new file mode 100644 index 0000000..18e8e14 --- /dev/null +++ b/game/materials/enemy_gray.tres @@ -0,0 +1,13 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dbkn3k0batj5w"] + +[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_b0yyf"] + +[resource] +shader = ExtResource("1_b0yyf") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = false +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 0.70000003325 +shader_parameter/scale = 20.0 diff --git a/game/materials/enemy_white.tres b/game/materials/enemy_white.tres new file mode 100644 index 0000000..f26f720 --- /dev/null +++ b/game/materials/enemy_white.tres @@ -0,0 +1,14 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://ci7xuso12af5"] + +[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_xngo8"] + +[resource] +resource_local_to_scene = true +shader = ExtResource("1_xngo8") +shader_parameter/black_color = Color(0, 0, 0, 1) +shader_parameter/white_color = Color(1, 1, 1, 1) +shader_parameter/switch_colors = false +shader_parameter/threshold = 0.5 +shader_parameter/speed = 5.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 20.0 diff --git a/game/materials/black_walls.tres b/game/materials/walls_black.tres similarity index 100% rename from game/materials/black_walls.tres rename to game/materials/walls_black.tres diff --git a/game/materials/gray_walls.tres b/game/materials/walls_gray.tres similarity index 100% rename from game/materials/gray_walls.tres rename to game/materials/walls_gray.tres diff --git a/game/materials/white_walls.tres b/game/materials/walls_white.tres similarity index 100% rename from game/materials/white_walls.tres rename to game/materials/walls_white.tres diff --git a/images/level/candles.png b/images/level/candles.png new file mode 100644 index 0000000..c77a222 --- /dev/null +++ b/images/level/candles.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96ab525f7ce53d5a186ecd4866461fb984fc10745e7f126c37d8580366f4277f +size 1703 diff --git a/images/level/candles.png.import b/images/level/candles.png.import new file mode 100644 index 0000000..b4939d8 --- /dev/null +++ b/images/level/candles.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://f6vlokb08jir" +path="res://.godot/imported/candles.png-b35ff84ea8c9a3edc8580547a2b86e1b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/level/candles.png" +dest_files=["res://.godot/imported/candles.png-b35ff84ea8c9a3edc8580547a2b86e1b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/sound/sfx/haze.wav b/sound/sfx/haze.wav new file mode 100644 index 0000000..2f8fa2f --- /dev/null +++ b/sound/sfx/haze.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db82f094e7b79a3477b91705e29011ae551c58e2209f4d4530f37f60e2ef6b06 +size 18528 diff --git a/sound/sfx/haze.wav.import b/sound/sfx/haze.wav.import new file mode 100644 index 0000000..7737b37 --- /dev/null +++ b/sound/sfx/haze.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://capj5pjbrdpw5" +path="res://.godot/imported/haze.wav-9d85b516f01d2a3a30cb9413d11e6d92.sample" + +[deps] + +source_file="res://sound/sfx/haze.wav" +dest_files=["res://.godot/imported/haze.wav-9d85b516f01d2a3a30cb9413d11e6d92.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