[gd_scene load_steps=28 format=3 uid="uid://dhn7yt46fyac8"] [ext_resource type="PackedScene" uid="uid://bhulqhxesd5gc" path="res://prefabs/player.tscn" id="1_65a7v"] [ext_resource type="AudioStream" uid="uid://bsy2d0bl3lgg0" path="res://sounds/crank.ogg" id="1_cweq4"] [ext_resource type="Script" path="res://scripts/GameManager.cs" id="1_ij566"] [ext_resource type="Texture2D" uid="uid://py6qiu3rm7cu" path="res://sprites/brickwall.png" id="2_edqdh"] [ext_resource type="Texture2D" uid="uid://dlbl6d4yghvht" path="res://sprites/mask.png" id="3_8o315"] [ext_resource type="Script" path="res://scripts/Flashlight.cs" id="3_cylxo"] [ext_resource type="Material" uid="uid://xuvxq5hy1dt" path="res://shaders/light_shader_material.tres" id="4_ro05e"] [ext_resource type="Shader" path="res://shaders/dithering.gdshader" id="5_64d71"] [ext_resource type="Script" path="res://scripts/GameCamera.cs" id="6_quua3"] [ext_resource type="Script" path="res://scripts/PointLight2DWorkaround.cs" id="6_slohe"] [ext_resource type="PackedScene" uid="uid://ccg3n7sobsvdw" path="res://prefabs/enemies/watcher.tscn" id="10_fsiss"] [ext_resource type="PackedScene" path="res://prefabs/enemies/living_armor.tscn" id="11_x3ep3"] [ext_resource type="PackedScene" uid="uid://bj1ixwjdpnooo" path="res://prefabs/entities/pressure_plate.tscn" id="12_ynt5e"] [ext_resource type="PackedScene" uid="uid://dqx43vr727ft8" path="res://prefabs/entities/spikes.tscn" id="13_w1hk1"] [ext_resource type="Script" path="res://scripts/DeathScreen.cs" id="15_12mhe"] [ext_resource type="PackedScene" path="res://prefabs/enemies/wretched.tscn" id="16_ejflu"] [ext_resource type="PackedScene" uid="uid://bdtjnmjopi5h2" path="res://prefabs/play_zone.tscn" id="17_mxxy2"] [sub_resource type="Curve" id="Curve_o5byr"] _data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] point_count = 2 [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_wg1ao"] light_mode = 2 [sub_resource type="ShaderMaterial" id="ShaderMaterial_m680d"] shader = ExtResource("5_64d71") [sub_resource type="ViewportTexture" id="ViewportTexture_q4yg2"] viewport_path = NodePath("FlashlightViewport") [sub_resource type="CircleShape2D" id="CircleShape2D_prnh4"] radius = 16.0 [sub_resource type="CircleShape2D" id="CircleShape2D_qcayn"] [sub_resource type="ViewportTexture" id="ViewportTexture_nnmvo"] viewport_path = NodePath("FlashlightViewport") [sub_resource type="Gradient" id="Gradient_cy0nu"] interpolation_mode = 1 offsets = PackedFloat32Array(0) colors = PackedColorArray(0, 0, 0, 1) [sub_resource type="GradientTexture2D" id="GradientTexture2D_2sbp3"] gradient = SubResource("Gradient_cy0nu") width = 256 height = 192 [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_au1d0"] light_mode = 2 [node name="Root" type="Node2D"] y_sort_enabled = true [node name="GameManager" type="Node" parent="." node_paths=PackedStringArray("FirstZone", "Player")] script = ExtResource("1_ij566") FirstZone = NodePath("../TestPlayZone") Player = NodePath("../Player") [node name="Sounds" type="Node" parent="."] [node name="CrankSound" type="AudioStreamPlayer" parent="Sounds"] stream = ExtResource("1_cweq4") [node name="FlashlightController" type="Node" parent="." node_paths=PackedStringArray("Player", "Camera", "Circle", "PlayerCircle", "Polygon", "CollisionCircle", "CollisionPlayerCircle", "CollisionPolygon", "FlashlightGroup", "CrankSoundPlayer")] script = ExtResource("3_cylxo") Player = NodePath("../Player") Camera = NodePath("../PlayerCamera") Circle = NodePath("../FlashlightViewport/CanvasGroup/Circle") PlayerCircle = NodePath("../FlashlightViewport/PlayerCircle") Polygon = NodePath("../FlashlightViewport/CanvasGroup/Triangle") CollisionCircle = NodePath("../PlayerCamera/FlashlightCollision/Circle") CollisionPlayerCircle = NodePath("../PlayerCamera/FlashlightCollision/PlayerCircle") CollisionPolygon = NodePath("../PlayerCamera/FlashlightCollision/CollisionPolygon2D") FlashlightGroup = NodePath("../FlashlightViewport/CanvasGroup") BrightnessCurve = SubResource("Curve_o5byr") CrankSoundPlayer = NodePath("../Sounds/CrankSound") [node name="Player" parent="." instance=ExtResource("1_65a7v")] position = Vector2(19, 4) [node name="TestWall" type="Sprite2D" parent="."] light_mask = 2 y_sort_enabled = true material = SubResource("CanvasItemMaterial_wg1ao") position = Vector2(58, 37) texture = ExtResource("2_edqdh") [node name="TestWall2" type="Sprite2D" parent="."] light_mask = 2 y_sort_enabled = true position = Vector2(85, 71) texture = ExtResource("2_edqdh") [node name="FlashlightViewport" type="SubViewport" parent="."] disable_3d = true transparent_bg = true snap_2d_transforms_to_pixel = true snap_2d_vertices_to_pixel = true canvas_item_default_texture_filter = 0 size = Vector2i(256, 192) render_target_update_mode = 4 [node name="PlayerCircle" type="Sprite2D" parent="FlashlightViewport"] position = Vector2(13.61, 14.405) scale = Vector2(0.5, 0.5) texture = ExtResource("3_8o315") [node name="CanvasGroup" type="CanvasGroup" parent="FlashlightViewport"] material = SubResource("ShaderMaterial_m680d") [node name="Circle" type="Sprite2D" parent="FlashlightViewport/CanvasGroup"] texture = ExtResource("3_8o315") [node name="Triangle" type="Polygon2D" parent="FlashlightViewport/CanvasGroup"] polygon = PackedVector2Array(-21, -25, 31, 29, -42, 31) [node name="PlayerCamera" type="Camera2D" parent="." node_paths=PackedStringArray("Player")] script = ExtResource("6_quua3") Player = NodePath("../Player") CameraBounds = Vector2(30, 20) [node name="PointLight2D" type="PointLight2D" parent="PlayerCamera" node_paths=PackedStringArray("LightViewport")] blend_mode = 2 range_item_cull_mask = 2 texture = SubResource("ViewportTexture_q4yg2") script = ExtResource("6_slohe") LightViewport = NodePath("../../FlashlightViewport") [node name="FlashlightCollision" type="Area2D" parent="PlayerCamera"] position = Vector2(-128, -96) collision_layer = 2 collision_mask = 2 monitoring = false [node name="PlayerCircle" type="CollisionShape2D" parent="PlayerCamera/FlashlightCollision"] shape = SubResource("CircleShape2D_prnh4") [node name="Circle" type="CollisionShape2D" parent="PlayerCamera/FlashlightCollision"] shape = SubResource("CircleShape2D_qcayn") [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="PlayerCamera/FlashlightCollision"] polygon = PackedVector2Array(0, 0, 0, 0, 0, 0) [node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="FlashlightUI" type="TextureRect" parent="CanvasLayer"] clip_children = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 texture = SubResource("ViewportTexture_nnmvo") [node name="InvertRect" type="ColorRect" parent="CanvasLayer/FlashlightUI"] material = ExtResource("4_ro05e") layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 [node name="DeathScreen" type="TextureRect" parent="CanvasLayer" node_paths=PackedStringArray("Camera")] visible = false z_index = 10 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 texture = SubResource("GradientTexture2D_2sbp3") script = ExtResource("15_12mhe") Camera = NodePath("../../PlayerCamera") [node name="Timer" type="Timer" parent="CanvasLayer/DeathScreen"] wait_time = 3.0 [node name="PlayerSprite" type="TextureRect" parent="CanvasLayer/DeathScreen"] layout_mode = 0 [node name="MonsterSprite" type="TextureRect" parent="CanvasLayer/DeathScreen"] layout_mode = 0 [node name="Sprite2D" type="Sprite2D" parent="."] light_mask = 2 y_sort_enabled = true material = SubResource("CanvasItemMaterial_au1d0") position = Vector2(-83, 43) texture = ExtResource("3_8o315") [node name="Watcher" parent="." instance=ExtResource("10_fsiss")] position = Vector2(116, -76) [node name="LivingArmor" parent="." instance=ExtResource("11_x3ep3")] position = Vector2(-70, -67) [node name="pressure_plate" parent="." instance=ExtResource("12_ynt5e")] position = Vector2(31, 51) [node name="spikes" parent="." instance=ExtResource("13_w1hk1")] position = Vector2(-40, 112) Enabled = true SpikesTimeout = 0.5 [node name="spikes2" parent="." instance=ExtResource("13_w1hk1")] position = Vector2(-8, 112) Enabled = true SpikesTimeout = 0.5 StartOffset = 0.25 [node name="spikes3" parent="." instance=ExtResource("13_w1hk1")] position = Vector2(24, 112) Enabled = true SpikesTimeout = 0.5 StartOffset = 0.5 [node name="Wretched" parent="." instance=ExtResource("16_ejflu")] position = Vector2(-120, 42) [node name="Wretched2" parent="." instance=ExtResource("16_ejflu")] position = Vector2(-139, -39) [node name="TestPlayZone" parent="." node_paths=PackedStringArray("TopLeftCorner", "BottomRightCorner", "PlayerSpawnPoint") instance=ExtResource("17_mxxy2")] position = Vector2(79, 99) TopLeftCorner = NodePath("TopLeft") BottomRightCorner = NodePath("BottomRight") PlayerSpawnPoint = NodePath("SpawnPoint") [node name="TopLeft" type="Node2D" parent="TestPlayZone"] [node name="BottomRight" type="Node2D" parent="TestPlayZone"] position = Vector2(97, 67) [node name="SpawnPoint" type="Node2D" parent="TestPlayZone"] position = Vector2(56, 34) [connection signal="timeout" from="CanvasLayer/DeathScreen/Timer" to="CanvasLayer/DeathScreen" method="Timeout"] [connection signal="ZoneEntered" from="TestPlayZone" to="GameManager" method="SetCurrentZone"]