Compare commits

...

34 commits

Author SHA1 Message Date
920f05b3a3 Финальные штрихи 3 2024-08-25 22:14:02 +03:00
dfd63f0f9c Финальные штрихи 2 2024-08-25 21:31:26 +03:00
c7f2417bb9 Финальные штрихи 2024-08-25 20:44:21 +03:00
52ce703697 Прогрессия 7 2024-08-25 20:37:57 +03:00
bc6c8934e7 Прогрессия 6 2024-08-25 19:39:23 +03:00
26e58b72db Прогрессия 5 2024-08-25 18:54:34 +03:00
1cdf11910d Прогрессия 4 2024-08-25 18:43:00 +03:00
8cd2db5fa7 Прогрессия 3 2024-08-25 18:25:22 +03:00
f37e2b5c4f Прогрессия 2 2024-08-25 18:08:54 +03:00
b793b79d39 Прогрессия 1 2024-08-25 17:42:49 +03:00
d92d6f629b Катсцена первого дня финальная версия 2024-08-25 17:35:36 +03:00
32f09f08f3 Катсцена для первого дня 2024-08-25 16:02:48 +03:00
47df3f9165 Кошмары 2024-08-25 15:11:13 +03:00
a87871a704 Функционал кошмаров 2024-08-25 14:39:39 +03:00
4222af1896 Реализация окончания дня по приходу в каюту. 2024-08-25 14:16:11 +03:00
de683399fa Реализация интерактивного объекта 2024-08-25 13:41:52 +03:00
872d650b3d Возможность отключать интерактивные объекты 2024-08-25 13:31:50 +03:00
26db1ea66d Переходы между днями 2024-08-25 13:17:20 +03:00
71502b0653 Переходы между днями. 2024-08-25 12:59:17 +03:00
7663a741e4 Музыка для каждого из дней. 2024-08-25 12:30:37 +03:00
f45ebbceb6 Система перехода между сценами. И главное меню. Типа. 2024-08-25 12:27:06 +03:00
8e4304ebc6 Сигналы NPC 2024-08-25 11:26:01 +03:00
eeac3ad3de Диалоги пятого дня. 2024-08-25 10:28:37 +03:00
50d7743d24 Диалоги четвертого дня 2024-08-25 10:25:03 +03:00
99dbbd2eab Дверь на мостик 2024-08-25 10:15:54 +03:00
60c3322281 Диалоги третьего дня 2024-08-25 10:14:23 +03:00
6e1eff887d Диалоги второго дня. 2024-08-25 10:04:12 +03:00
908d65179a Диалоги первого дня. 2024-08-25 09:55:16 +03:00
56a6c00ab6 Коллизии столов 2024-08-25 09:48:30 +03:00
ac3e2ffd62 Диалог Ивана в первый день, и некоторые исправления чата. 2024-08-25 09:34:11 +03:00
8fb7c44343 Двери2 2024-08-25 08:51:38 +03:00
47acb03356 Двери 2024-08-25 08:51:00 +03:00
b9e81f6a04 Отсутствующие двери. Имена персонажей. 2024-08-25 08:42:54 +03:00
636fb16f7e Имправление спрайта игрока при изменении состояния 2024-08-25 08:30:01 +03:00
50 changed files with 2080 additions and 260 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
# Godot 4+ specific ignores
.godot/
*.csproj.old
Build/

View file

@ -2,16 +2,21 @@
## Who made this game
- friendlywithmeat - coding
- mrzuerg - graphics and level design
- friendlywithmeat [Evgeniy Titarenko] - coding
- mrzuerg [Nikolai Gilev] - graphics, level design, story
- Polina Gileva - music
- rndtrash - testing
## Used resources
- zx spectrum font - Sizenko Alexander from (Style-7)
- footsteps & doors sounds - [Kenney](http://www.kenney.nl/)
- footsteps & doors sounds, ui graphics - [Kenney](http://www.kenney.nl/)
## Tools
- Godot 4.3 with C#
- Jetbrains Rider
- Aseprite
- Aseprite
- Audacity
- Deflemask

View file

@ -1,40 +0,0 @@
using Godot;
using System;
public partial class Node2d : CharacterBody2D
{
public const float Speed = 300.0f;
public const float JumpVelocity = -400.0f;
public override void _PhysicsProcess(double delta)
{
Vector2 velocity = Velocity;
// Add the gravity.
if (!IsOnFloor())
{
velocity += GetGravity() * (float)delta;
}
// Handle Jump.
if (Input.IsActionJustPressed("ui_accept") && IsOnFloor())
{
velocity.Y = JumpVelocity;
}
// Get the input direction and handle the movement/deceleration.
// As good practice, you should replace UI actions with custom gameplay actions.
Vector2 direction = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
if (direction != Vector2.Zero)
{
velocity.X = direction.X * Speed;
}
else
{
velocity.X = Mathf.MoveToward(Velocity.X, 0, Speed);
}
Velocity = velocity;
MoveAndSlide();
}
}

View file

@ -1,4 +1,4 @@
[gd_resource type="AudioBusLayout" load_steps=3 format=3 uid="uid://l2ld5cr1ew0r"]
[gd_resource type="AudioBusLayout" load_steps=6 format=3 uid="uid://l2ld5cr1ew0r"]
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_728t0"]
resource_name = "Reverb"
@ -8,6 +8,18 @@ room_size = 0.2
resource_name = "Reverb"
room_size = 0.4
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_y6xta"]
resource_name = "Reverb"
room_size = 0.1
[sub_resource type="AudioEffectStereoEnhance" id="AudioEffectStereoEnhance_2b60j"]
resource_name = "StereoEnhance"
surround = 1.0
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_g1p66"]
resource_name = "Reverb"
room_size = 0.1
[resource]
bus/1/name = &"Music"
bus/1/solo = false
@ -25,3 +37,21 @@ bus/2/volume_db = 0.0
bus/2/send = &"Master"
bus/2/effect/0/effect = SubResource("AudioEffectReverb_wcs3s")
bus/2/effect/0/enabled = true
bus/3/name = &"Nightmare"
bus/3/solo = false
bus/3/mute = false
bus/3/bypass_fx = false
bus/3/volume_db = 0.0
bus/3/send = &"Master"
bus/3/effect/0/effect = SubResource("AudioEffectReverb_y6xta")
bus/3/effect/0/enabled = true
bus/3/effect/1/effect = SubResource("AudioEffectStereoEnhance_2b60j")
bus/3/effect/1/enabled = true
bus/4/name = &"Spook"
bus/4/solo = false
bus/4/mute = false
bus/4/bypass_fx = false
bus/4/volume_db = 0.0
bus/4/send = &"Master"
bus/4/effect/0/effect = SubResource("AudioEffectReverb_g1p66")
bus/4/effect/0/enabled = true

110
export_presets.cfg Normal file
View file

@ -0,0 +1,110 @@
[preset.0]
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="Build/OutOfTheDeep.exe"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
binary_format/architecture="x86_64"
codesign/enable=false
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PackedStringArray()
application/modify_resources=true
application/icon=""
application/console_wrapper_icon=""
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description=""
application/copyright=""
application/trademarks=""
application/export_angle=0
application/export_d3d12=0
application/d3d12_agility_sdk_multiarch=true
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
$settings = New-ScheduledTaskSettingsSet
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
Start-ScheduledTask -TaskName godot_remote_debug
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
Remove-Item -Recurse -Force '{temp_dir}'"
dotnet/include_scripts_content=false
dotnet/include_debug_symbols=false
dotnet/embed_build_outputs=false
[preset.1]
name="Linux"
platform="Linux"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="Build/Linux/OutOfTheDeep.x86_64"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""
dotnet/include_scripts_content=false
dotnet/include_debug_symbols=false
dotnet/embed_build_outputs=false

54
prefabs/Day1Cutscene.tscn Normal file
View file

@ -0,0 +1,54 @@
[gd_scene load_steps=9 format=3 uid="uid://ca2cali2s1y6x"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="1_pra77"]
[ext_resource type="Script" path="res://scripts/Day1Cutscene.cs" id="1_ryay5"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_c46dh"]
[ext_resource type="AudioStream" uid="uid://dtbu8f2sp1lql" path="res://resources/sounds/spook8.wav" id="4_dfp4a"]
[ext_resource type="AudioStream" uid="uid://cb0344er3onkq" path="res://resources/sounds/door/doorOpen_1.ogg" id="5_2n8ga"]
[ext_resource type="AudioStream" uid="uid://87caolv1uksk" path="res://resources/sounds/door/doorClose_3.ogg" id="6_6tavv"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_yoe65"]
size = Vector2(23, 20)
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_ruuga"]
loop = false
stream_count = 2
stream_0 = ExtResource("5_2n8ga")
stream_1 = ExtResource("6_6tavv")
[node name="Day1Cutscene" type="Node2D"]
script = ExtResource("1_ryay5")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = ExtResource("1_pra77")
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(-1.5, 0)
shape = SubResource("RectangleShape2D_yoe65")
[node name="NPC1" parent="." instance=ExtResource("3_c46dh")]
position = Vector2(225, -339)
NPCName = "Eugene"
DialogLines = ["Captain, I have found a quite strange signal.", "Listen"]
[node name="NPC2" parent="." instance=ExtResource("3_c46dh")]
position = Vector2(361, -342)
NPCName = "Captain"
DialogLines = ["...", "Quite intresting", "Process this signal on main computer", "We will set cource on source of this signal", "Keep up the good work"]
[node name="Spook" type="AudioStreamPlayer" parent="."]
stream = ExtResource("4_dfp4a")
bus = &"Spook"
[node name="DoorSounds" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamPlaylist_ruuga")
volume_db = -10.0
bus = &"Sound"
[connection signal="body_entered" from="Area2D" to="." method="Stage1"]
[connection signal="DialogEnded" from="NPC1" to="." method="Stage2"]
[connection signal="DialogEnded" from="NPC2" to="." method="Stage4"]
[connection signal="finished" from="Spook" to="." method="Stage3"]
[connection signal="finished" from="DoorSounds" to="." method="Final"]

View file

@ -8,7 +8,7 @@ script = ExtResource("1_nwv7e")
[node name="Interactable" parent="." instance=ExtResource("1_yb42q")]
SpriteOffset = Vector2(0, -40)
AreaRadius = 20.0
AreaRadius = 5.0
[connection signal="PlayerLeft" from="Interactable" to="." method="_on_interactable_player_left"]
[connection signal="PlayerNearBy" from="Interactable" to="." method="_on_interactable_player_near_by"]

View file

@ -3,8 +3,8 @@
[ext_resource type="Script" path="res://scripts/Interactable.cs" id="1_4ni08"]
[ext_resource type="SpriteFrames" uid="uid://bvnfvjn7am8tc" path="res://resources/sprites/key.tres" id="2_0s1fq"]
[sub_resource type="CircleShape2D" id="CircleShape2D_w4p6k"]
radius = 60.0
[sub_resource type="CircleShape2D" id="CircleShape2D_t3l22"]
radius = 0.0
[node name="Interactable" type="Node2D"]
script = ExtResource("1_4ni08")
@ -12,9 +12,10 @@ script = ExtResource("1_4ni08")
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_w4p6k")
shape = SubResource("CircleShape2D_t3l22")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
visible = false
scale = Vector2(0.5, 0.5)
sprite_frames = ExtResource("2_0s1fq")
autoplay = "default"

View file

@ -9,7 +9,7 @@ script = ExtResource("1_xeo83")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = ExtResource("2_r10xf")
frame_progress = 0.100142
frame_progress = 0.140426
[node name="Interactable" parent="." instance=ExtResource("2_hcfxj")]
SpriteOffset = Vector2(0, -35)

View file

@ -52,7 +52,7 @@ script = ExtResource("1_68nsf")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = ExtResource("1_be2ex")
animation = &"walk"
frame_progress = 0.0128934
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -0.5)
@ -125,7 +125,6 @@ offset_bottom = 75.0
clip_contents = true
layout_mode = 0
offset_right = 100.0
offset_bottom = 220.0
theme_override_styles/panel = SubResource("StyleBoxFlat_5af0i")
[node name="ChatLogContainer" type="VBoxContainer" parent="Camera2D/Control/Control/PanelContainer2"]
@ -134,24 +133,11 @@ theme_override_constants/separation = 0
script = ExtResource("4_tbl72")
[node name="PlaceholderDialog" parent="Camera2D/Control/Control/PanelContainer2/ChatLogContainer" instance=ExtResource("4_owmws")]
visible = false
layout_mode = 2
[node name="PlaceholderDialog2" parent="Camera2D/Control/Control/PanelContainer2/ChatLogContainer" instance=ExtResource("4_owmws")]
layout_mode = 2
Text = "Placeholder text 2"
Author = "NPC name 2"
[node name="PlaceholderDialog3" parent="Camera2D/Control/Control/PanelContainer2/ChatLogContainer" instance=ExtResource("4_owmws")]
layout_mode = 2
Text = "Placeholder text 2"
Author = "NPC name 2"
[node name="PlaceholderDialog4" parent="Camera2D/Control/Control/PanelContainer2/ChatLogContainer" instance=ExtResource("4_owmws")]
layout_mode = 2
Text = "Placeholder text 2"
Author = "NPC name 2"
[node name="PlaceholderDialog5" parent="Camera2D/Control/Control/PanelContainer2/ChatLogContainer" instance=ExtResource("4_owmws")]
visible = false
layout_mode = 2
Text = "Placeholder text 2"
Author = "NPC name 2"
@ -181,6 +167,14 @@ theme_override_styles/panel = SubResource("StyleBoxFlat_6l2d2")
layout_mode = 2
text = "E - Next"
[node name="ColorRect" type="ColorRect" parent="Camera2D"]
z_index = 11
offset_left = -160.0
offset_top = -140.0
offset_right = 160.0
offset_bottom = 100.0
color = Color(0, 0, 0, 0)
[node name="Footsteps" parent="." instance=ExtResource("5_wnylg")]
RandomPitch = true
PitchStart = 0.75

14
prefabs/SceneManager.tscn Normal file
View file

@ -0,0 +1,14 @@
[gd_scene load_steps=2 format=3 uid="uid://cs8w774ovpf5w"]
[ext_resource type="Script" path="res://scripts/SceneManager.cs" id="1_3bhed"]
[node name="SceneManager" type="Node"]
script = ExtResource("1_3bhed")
Scenes = {
"Day1": "res://scenes/Day1.tscn",
"Day2": "res://scenes/Day2.tscn",
"Day3": "res://scenes/Day3.tscn",
"Day4": "res://scenes/Day4.tscn",
"Day5": "res://scenes/Day5.tscn",
"Menu": "res://scenes/Startup.tscn"
}

View file

@ -11,10 +11,14 @@ config_version=5
[application]
config/name="chill-jam-10"
run/main_scene="res://scenes/test.tscn"
run/main_scene="res://scenes/Startup.tscn"
config/features=PackedStringArray("4.3", "C#", "GL Compatibility")
config/icon="res://icon.svg"
[autoload]
SceneManager="*res://prefabs/SceneManager.tscn"
[display]
window/size/viewport_width=640

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cw6y35jglsn1"
path="res://.godot/imported/D1nm.wav-c96eab61063b597f9e055d0540dfc4b5.sample"
[deps]
source_file="res://resources/sounds/nightmares/D1nm.wav"
dest_files=["res://.godot/imported/D1nm.wav-c96eab61063b597f9e055d0540dfc4b5.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=0

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://djbidtsatly0u"
path="res://.godot/imported/D2nm.wav-c35f2b635dadf79bf9cd09ea4b0ea311.sample"
[deps]
source_file="res://resources/sounds/nightmares/D2nm.wav"
dest_files=["res://.godot/imported/D2nm.wav-c35f2b635dadf79bf9cd09ea4b0ea311.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=0

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cthbe23g2r01q"
path="res://.godot/imported/D3nm.wav-6eb2d6754cd72a2fd4988a3a93e10f09.sample"
[deps]
source_file="res://resources/sounds/nightmares/D3nm.wav"
dest_files=["res://.godot/imported/D3nm.wav-6eb2d6754cd72a2fd4988a3a93e10f09.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=0

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://71paty3fjbq8"
path="res://.godot/imported/D4nm.wav-93e8bec9a896c771c11f8fe9e38e6360.sample"
[deps]
source_file="res://resources/sounds/nightmares/D4nm.wav"
dest_files=["res://.godot/imported/D4nm.wav-93e8bec9a896c771c11f8fe9e38e6360.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=0

BIN
resources/sounds/spook8.wav Normal file

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dtbu8f2sp1lql"
path="res://.godot/imported/spook8.wav-4324397a78d4da0b1262a5789ce80e63.sample"
[deps]
source_file="res://resources/sounds/spook8.wav"
dest_files=["res://.godot/imported/spook8.wav-4324397a78d4da0b1262a5789ce80e63.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=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://41c7sdjkinml"
path="res://.godot/imported/corrupt16.png-fa4f2a1c9c71d82d39a5d9bd127ff6b3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/sprites/barns/corrupt16.png"
dest_files=["res://.godot/imported/corrupt16.png-fa4f2a1c9c71d82d39a5d9bd127ff6b3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bu7tporh3nk4s"
path="res://.godot/imported/corrupt32.png-fd2f0c742953a4367f6064d3580e8eca.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/sprites/barns/corrupt32.png"
dest_files=["res://.godot/imported/corrupt32.png-fd2f0c742953a4367f6064d3580e8eca.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

View file

@ -1,11 +1,40 @@
[gd_resource type="SpriteFrames" load_steps=11 format=3 uid="uid://bwssm27bm14s7"]
[gd_resource type="SpriteFrames" load_steps=19 format=3 uid="uid://bwssm27bm14s7"]
[ext_resource type="Texture2D" uid="uid://c2l2x12w8fsdu" path="res://resources/sprites/npcs/captain.png" id="1_dt7xe"]
[ext_resource type="Texture2D" uid="uid://b1hbbkb0te3kw" path="res://resources/sprites/npcs/captain2.png" id="2_yrv3n"]
[sub_resource type="AtlasTexture" id="AtlasTexture_0smo8"]
atlas = ExtResource("1_dt7xe")
region = Rect2(0, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_x0dwo"]
atlas = ExtResource("2_yrv3n")
region = Rect2(64, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_3qn6h"]
atlas = ExtResource("2_yrv3n")
region = Rect2(128, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_00355"]
atlas = ExtResource("2_yrv3n")
region = Rect2(192, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_bjylo"]
atlas = ExtResource("2_yrv3n")
region = Rect2(256, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_ii4h5"]
atlas = ExtResource("2_yrv3n")
region = Rect2(320, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_nn0j6"]
atlas = ExtResource("2_yrv3n")
region = Rect2(384, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_rhrn0"]
atlas = ExtResource("2_yrv3n")
region = Rect2(448, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_23gxd"]
atlas = ExtResource("1_dt7xe")
region = Rect2(64, 0, 64, 64)
@ -50,6 +79,32 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_x0dwo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3qn6h")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_00355")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bjylo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ii4h5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nn0j6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rhrn0")
}],
"loop": true,
"name": &"walk",
"speed": 13.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_23gxd")
}, {
"duration": 1.0,
@ -74,6 +129,6 @@ animations = [{
"texture": SubResource("AtlasTexture_080lj")
}],
"loop": true,
"name": &"walk",
"name": &"walk2",
"speed": 5.0
}]

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b1hbbkb0te3kw"
path="res://.godot/imported/captain2.png-6a9dd37f0d43c30fe088e6ed161063a4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/sprites/npcs/captain2.png"
dest_files=["res://.godot/imported/captain2.png-6a9dd37f0d43c30fe088e6ed161063a4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnfl5s2jomppo"
path="res://.godot/imported/main.png-54077b4fd1ad9b9f001d3b57f414df20.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/sprites/player/main.png"
dest_files=["res://.godot/imported/main.png-54077b4fd1ad9b9f001d3b57f414df20.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

View file

@ -1,11 +1,40 @@
[gd_resource type="SpriteFrames" load_steps=11 format=3 uid="uid://e8ybb7seykdx"]
[gd_resource type="SpriteFrames" load_steps=19 format=3 uid="uid://e8ybb7seykdx"]
[ext_resource type="Texture2D" uid="uid://c50svxafnldco" path="res://resources/sprites/player/player.png" id="1_dm8qi"]
[ext_resource type="Texture2D" uid="uid://dnfl5s2jomppo" path="res://resources/sprites/player/main.png" id="2_u64dd"]
[sub_resource type="AtlasTexture" id="AtlasTexture_1e4dj"]
atlas = ExtResource("1_dm8qi")
region = Rect2(0, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_yhnkw"]
atlas = ExtResource("2_u64dd")
region = Rect2(64, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_t773d"]
atlas = ExtResource("2_u64dd")
region = Rect2(128, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_jtt6x"]
atlas = ExtResource("2_u64dd")
region = Rect2(192, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_s6u4e"]
atlas = ExtResource("2_u64dd")
region = Rect2(256, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_nxmti"]
atlas = ExtResource("2_u64dd")
region = Rect2(320, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_s1irt"]
atlas = ExtResource("2_u64dd")
region = Rect2(384, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_at6o4"]
atlas = ExtResource("2_u64dd")
region = Rect2(448, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_plu4p"]
atlas = ExtResource("1_dm8qi")
region = Rect2(64, 0, 64, 64)
@ -50,6 +79,32 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_yhnkw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t773d")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jtt6x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s6u4e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nxmti")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s1irt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_at6o4")
}],
"loop": true,
"name": &"walk",
"speed": 13.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_plu4p")
}, {
"duration": 1.0,
@ -74,6 +129,6 @@ animations = [{
"texture": SubResource("AtlasTexture_vm47t")
}],
"loop": true,
"name": &"walk",
"name": &"walk2",
"speed": 14.0
}]

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://82rj0mblksli"
path="res://.godot/imported/menu.png-4263fd2237a014a2a4ff0c92ae64c757.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/sprites/ui/menu.png"
dest_files=["res://.godot/imported/menu.png-4263fd2237a014a2a4ff0c92ae64c757.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

View file

@ -1,6 +1,7 @@
[gd_scene load_steps=22 format=3 uid="uid://c1abgp6quvo3o"]
[gd_scene load_steps=27 format=3 uid="uid://c1abgp6quvo3o"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_a6v5r"]
[ext_resource type="Script" path="res://scripts/Day.cs" id="1_cko08"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_qedp5"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_t4e54"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_ephn1"]
@ -10,6 +11,9 @@
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="8_csxln"]
[ext_resource type="AudioStream" uid="uid://be35iuapayv0u" path="res://resources/music/Day1.wav" id="9_43nb0"]
[ext_resource type="SpriteFrames" uid="uid://wu7pmuvjw5qm" path="res://resources/sprites/npcs/Empty.tres" id="10_medl6"]
[ext_resource type="AudioStream" uid="uid://cw6y35jglsn1" path="res://resources/sounds/nightmares/D1nm.wav" id="12_jjnbw"]
[ext_resource type="PackedScene" uid="uid://x6pqolxtgwvy" path="res://prefabs/Interactable.tscn" id="12_p32yk"]
[ext_resource type="PackedScene" uid="uid://ca2cali2s1y6x" path="res://prefabs/Day1Cutscene.tscn" id="14_t3ylj"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_h0540"]
size = Vector2(640, 24)
@ -17,6 +21,9 @@ size = Vector2(640, 24)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i40av"]
size = Vector2(25.5, 104)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ki2nk"]
size = Vector2(25.5, 38)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3xi1q"]
size = Vector2(25.5, 104)
@ -47,6 +54,9 @@ stream_count = 1
stream_0 = ExtResource("9_43nb0")
[node name="Test" type="Node2D"]
script = ExtResource("1_cko08")
NextScene = "Day2"
IsCaptainDisabled = true
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_a6v5r")
@ -61,6 +71,18 @@ shape = SubResource("RectangleShape2D_h0540")
position = Vector2(232, 11)
shape = SubResource("RectangleShape2D_i40av")
[node name="CollisionShape2D18" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(377, 29)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D19" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(321, 266)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D20" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(916, -244)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D3" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(889, 11)
shape = SubResource("RectangleShape2D_3xi1q")
@ -151,39 +173,83 @@ Exit = NodePath("../Door_SONAR")
position = Vector2(1436, 134)
Exit = NodePath("../Door_QUOTERS2")
[node name="Door_ENGINE" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_qedp5")]
position = Vector2(91, 134)
Exit = NodePath("../Door_ENGINE2")
[node name="Door_ENGINE2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_qedp5")]
position = Vector2(54, 255)
Exit = NodePath("../Door_ENGINE")
[node name="Door_CAPTAIN" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_qedp5")]
position = Vector2(980, 134)
Exit = NodePath("../Door_CAPTAIN2")
[node name="Door_CAPTAIN2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_qedp5")]
position = Vector2(1019, -258)
Exit = NodePath("../Door_CAPTAIN")
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_qedp5")]
position = Vector2(1442, 255)
Exit = NodePath("../Door_QUOTERS")
[node name="NPCs" type="Node2D" parent="."]
[node name="Test" parent="NPCs" instance=ExtResource("3_t4e54")]
[node name="Cook" parent="NPCs" instance=ExtResource("3_t4e54")]
position = Vector2(351, 14)
NPCName = "Chef"
NPCName = "Cook"
Frames = ExtResource("4_ephn1")
DefaultDialogLine = "Get your ration"
DialogLines = ["Ahoy, mate. What kind of food do you want?", "Let me see what we've got here", "Hmm... canned tuna", "canned bitroots", "canned carrots", "canned potato knishes", "Oh, look surstromming", "It should certanly be banned as bio weapon"]
[node name="Captain" parent="NPCs" instance=ExtResource("3_t4e54")]
position = Vector2(889, -258)
NPCName = "Captain"
Frames = ExtResource("5_o0reb")
DefaultDialogLine = "You should go check engine"
DialogLines = ["Expedition is going good", "We got many new samples of", "the deep-sea wildlife", "Those sounds you heard", "it might be a magnificent creature", "You should go check engine", "I dont want to miss an opportunity", "to catch a new species"]
[node name="Doctor" parent="NPCs" instance=ExtResource("3_t4e54")]
position = Vector2(286, 255)
NPCName = "Doctor"
Frames = ExtResource("6_vd74o")
DefaultDialogLine = "Get back to your work. Laziness is the worst illness."
DialogLines = ["Anything hurts?", "Tough luck, kiddo", "We need to save those ", "medicine for real deal."]
[node name="Crewmate" parent="NPCs" instance=ExtResource("3_t4e54")]
[node name="Ivan" parent="NPCs" instance=ExtResource("3_t4e54")]
position = Vector2(1307, 254)
NPCName = "Crewmate"
NPCName = "Ivan"
Frames = ExtResource("7_j5wfn")
DefaultDialogLine = "New day new joke"
DialogLines = ["Do you want to hear a joke?", "Two inmates are sitting in the cell.", "And one asks another:", "\"How did you get here?\"", "\"I opened a window on a work\"", "\"BS they don't jail people for that!", "Where did you work?\"", "\"I work on the submarine\"", "HAHAHA HA", "Nevermind. Get to the sonar room.", "Eugene want to see you."]
[node name="Npc" parent="NPCs" instance=ExtResource("3_t4e54")]
[node name="Eugene" parent="NPCs" instance=ExtResource("3_t4e54")]
position = Vector2(1326, 14)
NPCName = "Eugene"
Frames = ExtResource("7_j5wfn")
DefaultDialogLine = "I must go back to the sonars"
DialogLines = ["That was quite intresting sound", "Never heard anything like this before", "Just Imagine what king of creature", "makes sounds like this", "Ah yes, I have one problem", "I sometimes get some random noises", "that clearly comes from the engine", "you should go and check it"]
[node name="Npc2" parent="NPCs" instance=ExtResource("3_t4e54")]
[node name="Nikolai" parent="NPCs" instance=ExtResource("3_t4e54")]
position = Vector2(575, -6)
NPCName = "Nikolai"
Frames = ExtResource("7_j5wfn")
DefaultDialogLine = "I'm sick of the canned bread"
DialogLines = ["I am sick of this canned food", "when I fall asleep I dream about", "some good old pizza", "And than I wake up", "Damn"]
[node name="Computer" parent="NPCs" instance=ExtResource("3_t4e54")]
position = Vector2(1597, -12)
NPCName = "Computer"
Frames = ExtResource("10_medl6")
DefaultDialogLine = "Sonar output processing are in progress"
DialogLines = ["Welcome authorized user", "Unfortunatly you can't access database now", "Sonar output processing is in progress"]
[node name="Engine" parent="NPCs" instance=ExtResource("3_t4e54")]
position = Vector2(-359, 245)
NPCName = "Engine"
Frames = ExtResource("10_medl6")
DefaultDialogLine = "You can go back to your room now"
DialogLines = ["Tighten up the loose screws", "This should work for now", "Now I can return to my room"]
[node name="Player" parent="." instance=ExtResource("8_csxln")]
position = Vector2(1054, 255)
@ -194,7 +260,22 @@ stream = SubResource("AudioStreamPlaylist_7838k")
autoplay = true
bus = &"Music"
[node name="Npc" parent="." instance=ExtResource("3_t4e54")]
position = Vector2(1597, -12)
NPCName = "Computer"
Frames = ExtResource("10_medl6")
[node name="Nightmare" type="AudioStreamPlayer" parent="."]
stream = ExtResource("12_jjnbw")
bus = &"Nightmare"
[node name="EndDay" parent="." instance=ExtResource("12_p32yk")]
position = Vector2(985, 245)
SpriteOffset = Vector2(0, -30)
AreaRadius = 20.0
[node name="Day1Cutscene" parent="." instance=ExtResource("14_t3ylj")]
position = Vector2(1275, 18)
[connection signal="DialogEnded" from="NPCs/Eugene" to="." method="EnableEngine"]
[connection signal="DialogEnded" from="NPCs/Engine" to="." method="EnableEndDay"]
[connection signal="finished" from="Nightmare" to="." method="ChangeScene"]
[connection signal="OnInteract" from="EndDay" to="." method="ChangeDay"]
[connection signal="PlayerLeft" from="EndDay" to="." method="RemoveEndDay"]
[connection signal="PlayerNearBy" from="EndDay" to="." method="AssignEndDay"]
[connection signal="Finished" from="Day1Cutscene" to="." method="EnableCaptain"]

View file

@ -1,14 +1,19 @@
[gd_scene load_steps=21 format=3 uid="uid://c8nn57lfv6ou"]
[gd_scene load_steps=27 format=3 uid="uid://bpnc0noa6do5m"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_1c4ln"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_g17xb"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_4n3ql"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_0ph2x"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="5_e4los"]
[ext_resource type="SpriteFrames" uid="uid://1r4r5gmf5kdo" path="res://resources/sprites/npcs/doctor.tres" id="6_pjpon"]
[ext_resource type="SpriteFrames" uid="uid://532buo56y4q2" path="res://resources/sprites/npcs/crewmate.tres" id="7_c5sgk"]
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="8_8ynsc"]
[ext_resource type="AudioStream" uid="uid://be35iuapayv0u" path="res://resources/music/Day1.wav" id="9_pd364"]
[ext_resource type="Script" path="res://scripts/Day.cs" id="1_6vltc"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_j1x6m"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_mm217"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_w8l5u"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_7efhe"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="5_xr8ss"]
[ext_resource type="SpriteFrames" uid="uid://1r4r5gmf5kdo" path="res://resources/sprites/npcs/doctor.tres" id="6_m6fou"]
[ext_resource type="SpriteFrames" uid="uid://532buo56y4q2" path="res://resources/sprites/npcs/crewmate.tres" id="7_0mkl0"]
[ext_resource type="SpriteFrames" uid="uid://wu7pmuvjw5qm" path="res://resources/sprites/npcs/Empty.tres" id="8_1sqr2"]
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="9_7dj1v"]
[ext_resource type="Texture2D" uid="uid://41c7sdjkinml" path="res://resources/sprites/barns/corrupt16.png" id="10_1ls1k"]
[ext_resource type="AudioStream" uid="uid://bask8dw8kd56j" path="res://resources/music/Day2.wav" id="10_x821k"]
[ext_resource type="AudioStream" uid="uid://djbidtsatly0u" path="res://resources/sounds/nightmares/D2nm.wav" id="12_c16wp"]
[ext_resource type="PackedScene" uid="uid://x6pqolxtgwvy" path="res://prefabs/Interactable.tscn" id="12_f7yho"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_h0540"]
size = Vector2(640, 24)
@ -16,6 +21,9 @@ size = Vector2(640, 24)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i40av"]
size = Vector2(25.5, 104)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ki2nk"]
size = Vector2(25.5, 38)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3xi1q"]
size = Vector2(25.5, 104)
@ -43,12 +51,14 @@ size = Vector2(640, 24)
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_7838k"]
fade_time = 1.0
stream_count = 1
stream_0 = ExtResource("9_pd364")
stream_0 = ExtResource("10_x821k")
[node name="Test" type="Node2D"]
script = ExtResource("1_6vltc")
NextScene = "Day3"
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_1c4ln")
texture = ExtResource("1_j1x6m")
[node name="StaticBody2D" type="StaticBody2D" parent="Sprite2D"]
@ -60,6 +70,18 @@ shape = SubResource("RectangleShape2D_h0540")
position = Vector2(232, 11)
shape = SubResource("RectangleShape2D_i40av")
[node name="CollisionShape2D18" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(377, 29)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D19" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(321, 266)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D20" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(916, -244)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D3" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(889, 11)
shape = SubResource("RectangleShape2D_3xi1q")
@ -122,69 +144,118 @@ shape = SubResource("RectangleShape2D_bafxi")
[node name="Doors" type="Node2D" parent="."]
[node name="Door_3F" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_g17xb")]
[node name="Door_3F" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(788, 14)
Exit = NodePath("../Door_3F2")
[node name="Door_3F2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_g17xb")]
[node name="Door_3F2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(790, 134)
Exit = NodePath("../Door_3F")
[node name="Door_MEDBAY" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_g17xb")]
[node name="Door_MEDBAY" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(474, 134)
Exit = NodePath("../Door_MEDBAY2")
[node name="Door_MEDBAY2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_g17xb")]
[node name="Door_MEDBAY2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(474, 255)
Exit = NodePath("../Door_MEDBAY")
[node name="Door_SONAR" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_g17xb")]
[node name="Door_SONAR" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(1180, 134)
Exit = NodePath("../Door_SONAR2")
[node name="Door_SONAR2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_g17xb")]
[node name="Door_SONAR2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(1179, 14)
Exit = NodePath("../Door_SONAR")
[node name="Door_QUOTERS" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_g17xb")]
[node name="Door_QUOTERS" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(1436, 134)
Exit = NodePath("../Door_QUOTERS2")
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_g17xb")]
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(1442, 255)
Exit = NodePath("../Door_QUOTERS")
[node name="Door_ENGINE" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(91, 134)
Exit = NodePath("../Door_ENGINE2")
[node name="Door_ENGINE2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_mm217")]
position = Vector2(54, 255)
Exit = NodePath("../Door_ENGINE")
[node name="Door_CAPTAIN2" parent="Doors" instance=ExtResource("2_mm217")]
position = Vector2(1019, -258)
[node name="NPCs" type="Node2D" parent="."]
[node name="Test" parent="NPCs" instance=ExtResource("3_4n3ql")]
[node name="Cook" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(351, 14)
NPCName = "Chef"
Frames = ExtResource("4_0ph2x")
NPCName = "Cook"
Frames = ExtResource("4_7efhe")
DefaultDialogLine = "Enjoy while it lasts"
DialogLines = ["Ahhh you came for a new can of fresh...", "delicious...", "canned...", "ration", "My food certanly has nothing to do", "with these headaches.", "Well time to brighten up this day", "Some special cans this time", "And no, that is not surstromming"]
[node name="Captain" parent="NPCs" instance=ExtResource("3_4n3ql")]
[node name="Captain" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(889, -258)
NPCName = "Captain"
Frames = ExtResource("5_e4los")
Frames = ExtResource("5_xr8ss")
[node name="Doctor" parent="NPCs" instance=ExtResource("3_4n3ql")]
[node name="Doctor" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(286, 255)
NPCName = "Doctor"
Frames = ExtResource("6_pjpon")
Frames = ExtResource("6_m6fou")
DefaultDialogLine = "Get back to your work"
DialogLines = ["Nightmares and headache...", "What kind of headache epidemy goes on this ship?", "You're the fifth person to come to me with these symptoms.", "I have one suggestion: get back to work"]
[node name="Crewmate" parent="NPCs" instance=ExtResource("3_4n3ql")]
[node name="Ivan" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(1307, 254)
NPCName = "Crewmate"
Frames = ExtResource("7_c5sgk")
NPCName = "Ivan"
Frames = ExtResource("7_0mkl0")
DefaultDialogLine = "New day new joke"
DialogLines = ["No jokes today. I have a riddle for you", "Who falls asleep near the wall?", "Who falls at the edge?", "Who gets sick at the top?", "And suffocates at the bottom?", "A true submariner", "AHAHAH..."]
[node name="Npc" parent="NPCs" instance=ExtResource("3_4n3ql")]
[node name="Eugene" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(1326, 14)
Frames = ExtResource("7_c5sgk")
NPCName = "Eugene"
Frames = ExtResource("7_0mkl0")
DefaultDialogLine = "Hope that Captain know what he is doing"
DialogLines = ["Captain locked himself at the bridge", "Quite strange if you ask me.", "He seems obsessed with catching this creature...", "Engine seems to go full throttle.", "You should go check the engine", "Unless you want us to be stuck here"]
[node name="Npc2" parent="NPCs" instance=ExtResource("3_4n3ql")]
[node name="Nikolai" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(575, -6)
Frames = ExtResource("7_c5sgk")
NPCName = "Nikolai"
Frames = ExtResource("7_0mkl0")
DefaultDialogLine = "I have a bad feeling about all of this..."
DialogLines = ["Cook got something special this time", "All of this because of that strange nightmare", "You wont believe me I haven't dreamt about food this night.", "I have a bad feeling about all of this..."]
[node name="Player" parent="." instance=ExtResource("8_8ynsc")]
[node name="Computer" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(1597, -12)
NPCName = "Computer"
Frames = ExtResource("8_1sqr2")
DefaultDialogLine = "Navigation system reboot in progress..."
DialogLines = ["Log #1456", "Engine at max capacity", "Target: calculated...", "Target coordinates: ...", "#!@#$%^&*A%$#@! ERROR", "recalculating"]
[node name="Engine" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(-359, 245)
NPCName = "Engine"
Frames = ExtResource("8_1sqr2")
DefaultDialogLine = "You can go back to your room now"
DialogLines = ["Running at full capacity", "You make small repairs here and there to keep it running", "You can go back to your room"]
[node name="Bridge door" parent="NPCs" instance=ExtResource("3_w8l5u")]
position = Vector2(979, 130)
NPCName = "Bridge door"
Frames = ExtResource("8_1sqr2")
DefaultDialogLine = "Looks like the door is closed from the other side"
[node name="Deco" type="Node2D" parent="."]
[node name="Barn" type="Sprite2D" parent="Deco"]
position = Vector2(1037, 31)
texture = ExtResource("10_1ls1k")
[node name="Player" parent="." instance=ExtResource("9_7dj1v")]
position = Vector2(1054, 255)
Speed = 100.0
@ -192,3 +263,30 @@ Speed = 100.0
stream = SubResource("AudioStreamPlaylist_7838k")
autoplay = true
bus = &"Music"
[node name="Nightmare" type="AudioStreamPlayer" parent="."]
stream = ExtResource("12_c16wp")
bus = &"Nightmare"
[node name="ColorRect" type="ColorRect" parent="."]
z_index = 11
offset_left = 894.0
offset_top = 115.0
offset_right = 1214.0
offset_bottom = 355.0
color = Color(0, 0, 0, 0)
[node name="EndDay" parent="." instance=ExtResource("12_f7yho")]
position = Vector2(985, 245)
SpriteOffset = Vector2(0, -30)
AreaRadius = 20.0
[node name="Npc" parent="." instance=ExtResource("3_w8l5u")]
position = Vector2(724, 465)
[connection signal="DialogEnded" from="NPCs/Eugene" to="." method="EnableEngine"]
[connection signal="DialogEnded" from="NPCs/Engine" to="." method="EnableEndDay"]
[connection signal="finished" from="Nightmare" to="." method="ChangeScene"]
[connection signal="OnInteract" from="EndDay" to="." method="ChangeDay"]
[connection signal="PlayerLeft" from="EndDay" to="." method="RemoveEndDay"]
[connection signal="PlayerNearBy" from="EndDay" to="." method="AssignEndDay"]

View file

@ -1,14 +1,20 @@
[gd_scene load_steps=21 format=3 uid="uid://cyvy4s62fa452"]
[gd_scene load_steps=28 format=3 uid="uid://dydhxm41f4kqu"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_otfpc"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_53l42"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_ykngu"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_vcnww"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="5_0qu3f"]
[ext_resource type="SpriteFrames" uid="uid://1r4r5gmf5kdo" path="res://resources/sprites/npcs/doctor.tres" id="6_bdwkj"]
[ext_resource type="SpriteFrames" uid="uid://532buo56y4q2" path="res://resources/sprites/npcs/crewmate.tres" id="7_ev5f0"]
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="8_4w5ya"]
[ext_resource type="AudioStream" uid="uid://be35iuapayv0u" path="res://resources/music/Day1.wav" id="9_36ba4"]
[ext_resource type="Script" path="res://scripts/Day.cs" id="1_6ouk8"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_m7xoy"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_72qyp"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_s2s8w"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_o2kdb"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="5_njiis"]
[ext_resource type="SpriteFrames" uid="uid://1r4r5gmf5kdo" path="res://resources/sprites/npcs/doctor.tres" id="6_lwnpl"]
[ext_resource type="SpriteFrames" uid="uid://532buo56y4q2" path="res://resources/sprites/npcs/crewmate.tres" id="7_l8k40"]
[ext_resource type="SpriteFrames" uid="uid://wu7pmuvjw5qm" path="res://resources/sprites/npcs/Empty.tres" id="8_k42bg"]
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="9_pvv3u"]
[ext_resource type="Texture2D" uid="uid://bu7tporh3nk4s" path="res://resources/sprites/barns/corrupt32.png" id="10_1vl5d"]
[ext_resource type="AudioStream" uid="uid://c0mheqx5d738m" path="res://resources/music/Day3.wav" id="10_ouee8"]
[ext_resource type="Texture2D" uid="uid://41c7sdjkinml" path="res://resources/sprites/barns/corrupt16.png" id="11_tpmf6"]
[ext_resource type="AudioStream" uid="uid://cthbe23g2r01q" path="res://resources/sounds/nightmares/D3nm.wav" id="12_jru5s"]
[ext_resource type="PackedScene" uid="uid://x6pqolxtgwvy" path="res://prefabs/Interactable.tscn" id="12_yeat3"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_h0540"]
size = Vector2(640, 24)
@ -16,6 +22,9 @@ size = Vector2(640, 24)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i40av"]
size = Vector2(25.5, 104)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ki2nk"]
size = Vector2(25.5, 38)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3xi1q"]
size = Vector2(25.5, 104)
@ -43,12 +52,14 @@ size = Vector2(640, 24)
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_7838k"]
fade_time = 1.0
stream_count = 1
stream_0 = ExtResource("9_36ba4")
stream_0 = ExtResource("10_ouee8")
[node name="Test" type="Node2D"]
script = ExtResource("1_6ouk8")
NextScene = "Day4"
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_otfpc")
texture = ExtResource("1_m7xoy")
[node name="StaticBody2D" type="StaticBody2D" parent="Sprite2D"]
@ -60,6 +71,18 @@ shape = SubResource("RectangleShape2D_h0540")
position = Vector2(232, 11)
shape = SubResource("RectangleShape2D_i40av")
[node name="CollisionShape2D18" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(377, 29)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D19" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(321, 266)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D20" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(916, -244)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D3" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(889, 11)
shape = SubResource("RectangleShape2D_3xi1q")
@ -122,69 +145,166 @@ shape = SubResource("RectangleShape2D_bafxi")
[node name="Doors" type="Node2D" parent="."]
[node name="Door_3F" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_53l42")]
[node name="Door_3F" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(788, 14)
Exit = NodePath("../Door_3F2")
[node name="Door_3F2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_53l42")]
[node name="Door_3F2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(790, 134)
Exit = NodePath("../Door_3F")
[node name="Door_MEDBAY" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_53l42")]
[node name="Door_MEDBAY" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(474, 134)
Exit = NodePath("../Door_MEDBAY2")
[node name="Door_MEDBAY2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_53l42")]
[node name="Door_MEDBAY2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(474, 255)
Exit = NodePath("../Door_MEDBAY")
[node name="Door_SONAR" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_53l42")]
[node name="Door_SONAR" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(1180, 134)
Exit = NodePath("../Door_SONAR2")
[node name="Door_SONAR2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_53l42")]
[node name="Door_SONAR2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(1179, 14)
Exit = NodePath("../Door_SONAR")
[node name="Door_QUOTERS" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_53l42")]
[node name="Door_QUOTERS" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(1436, 134)
Exit = NodePath("../Door_QUOTERS2")
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_53l42")]
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(1442, 255)
Exit = NodePath("../Door_QUOTERS")
[node name="Door_ENGINE" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(91, 134)
Exit = NodePath("../Door_ENGINE2")
[node name="Door_ENGINE2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_72qyp")]
position = Vector2(54, 255)
Exit = NodePath("../Door_ENGINE")
[node name="Door_CAPTAIN2" parent="Doors" instance=ExtResource("2_72qyp")]
position = Vector2(1019, -258)
[node name="NPCs" type="Node2D" parent="."]
[node name="Test" parent="NPCs" instance=ExtResource("3_ykngu")]
[node name="Cook" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(351, 14)
NPCName = "Chef"
Frames = ExtResource("4_vcnww")
NPCName = "Cook"
Frames = ExtResource("4_o2kdb")
DefaultDialogLine = "Got any idea what captain is doing there?"
DialogLines = ["Here for your daily ration?", "Captain didn't come here yersterday", "And all tin cans are at their places", "Well, maybe we should just open that damn door", "and feed the captain"]
[node name="Captain" parent="NPCs" instance=ExtResource("3_ykngu")]
[node name="Captain" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(889, -258)
NPCName = "Captain"
Frames = ExtResource("5_0qu3f")
Frames = ExtResource("5_njiis")
[node name="Doctor" parent="NPCs" instance=ExtResource("3_ykngu")]
[node name="Doctor" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(286, 255)
NPCName = "Doctor"
Frames = ExtResource("6_bdwkj")
Frames = ExtResource("6_lwnpl")
DefaultDialogLine = "Crew needs some sunlight and fresh air immidiatly"
DialogLines = ["Ah, you again", "Have you seen those strange barnacle like creatures?", "Quite an intresting species if you ask me", "Do you know what is happening around there?", "I can't get in contact with the capitan", "Crew needs some sunlight and fresh air immediatly", "Tell this to the captain if you see him"]
[node name="Crewmate" parent="NPCs" instance=ExtResource("3_ykngu")]
[node name="Ivan" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(1307, 254)
NPCName = "Crewmate"
Frames = ExtResource("7_ev5f0")
NPCName = "Ivan"
Frames = ExtResource("7_l8k40")
DefaultDialogLine = "Sorry, no jokes today, pal"
DialogLines = ["Sorry, no jokes today, pal", "The headaches got worse today.", "Maybe went a bit too hard on previous jokes", "Hehe", "Have you seen captain yesterday?"]
[node name="Npc" parent="NPCs" instance=ExtResource("3_ykngu")]
[node name="Eugene" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(1326, 14)
Frames = ExtResource("7_ev5f0")
NPCName = "Eugene"
Frames = ExtResource("7_l8k40")
DefaultDialogLine = "Maybe I work too hard lately"
DialogLines = ["We are getting closer to the source", "The sound is truly mesmerising", "...", "...", "Maybe I work too hard lately"]
[node name="Npc2" parent="NPCs" instance=ExtResource("3_ykngu")]
[node name="Nikolai" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(575, -6)
Frames = ExtResource("7_ev5f0")
NPCName = "Nikolai"
Frames = ExtResource("7_l8k40")
DefaultDialogLine = "I wish i was dreaming about pizza as always"
DialogLines = ["You know", "...", "these nightmares", "They are getting more real", "I wish I was dreaming about pizza as always", "But at least now this canned food doesn't", "taste so terrible"]
[node name="Player" parent="." instance=ExtResource("8_4w5ya")]
[node name="Computer" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(1597, -12)
NPCName = "Computer"
Frames = ExtResource("8_k42bg")
DefaultDialogLine = "Maintenance required"
DialogLines = ["Target aquired", "Engine working at 100% capacity", "Recommend !@#$%^*", "...", "TEG RESOLC", "...", "Engine working at 105% capacity", "Maintenance required"]
[node name="Engine" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(-359, 244)
NPCName = "Engine"
Frames = ExtResource("8_k42bg")
DefaultDialogLine = "You can go back to your room now"
DialogLines = ["You manually lower engine speed to avoid overheating", "You are sure it should break at this stress level", "But something keeps it together", "Maybe it's you who keeps doing a good job", "Maybe", "...", "you don't want to think about this", "You can go back to your room"]
[node name="Bridge door" parent="NPCs" instance=ExtResource("3_s2s8w")]
position = Vector2(979, 131)
NPCName = "Bridge door"
Frames = ExtResource("8_k42bg")
DefaultDialogLine = "Still locked"
[node name="Deco" type="Node2D" parent="."]
[node name="Barn" type="Sprite2D" parent="Deco"]
position = Vector2(1030, 26)
texture = ExtResource("10_1vl5d")
[node name="Barn2" type="Sprite2D" parent="Deco"]
position = Vector2(886, 140)
texture = ExtResource("11_tpmf6")
[node name="Barn13" type="Sprite2D" parent="Deco"]
position = Vector2(871, -30)
texture = ExtResource("11_tpmf6")
[node name="Barn6" type="Sprite2D" parent="Deco"]
position = Vector2(1708, 91)
texture = ExtResource("11_tpmf6")
[node name="Barn7" type="Sprite2D" parent="Deco"]
position = Vector2(1708, -30)
texture = ExtResource("11_tpmf6")
[node name="Barn3" type="Sprite2D" parent="Deco"]
position = Vector2(1075, 98)
texture = ExtResource("11_tpmf6")
[node name="Barn5" type="Sprite2D" parent="Deco"]
position = Vector2(1520, 211)
texture = ExtResource("11_tpmf6")
[node name="Barn4" type="Sprite2D" parent="Deco"]
position = Vector2(576, 209)
texture = ExtResource("11_tpmf6")
[node name="Barn8" type="Sprite2D" parent="Deco"]
position = Vector2(-17, 26)
texture = ExtResource("11_tpmf6")
[node name="Barn9" type="Sprite2D" parent="Deco"]
position = Vector2(-467, 12)
texture = ExtResource("11_tpmf6")
[node name="Barn10" type="Sprite2D" parent="Deco"]
position = Vector2(-197, 6)
texture = ExtResource("11_tpmf6")
[node name="Barn11" type="Sprite2D" parent="Deco"]
position = Vector2(-417, 72)
texture = ExtResource("11_tpmf6")
[node name="Barn12" type="Sprite2D" parent="Deco"]
position = Vector2(-100, 45)
texture = ExtResource("11_tpmf6")
[node name="Player" parent="." instance=ExtResource("9_pvv3u")]
position = Vector2(1054, 255)
Speed = 100.0
@ -192,3 +312,30 @@ Speed = 100.0
stream = SubResource("AudioStreamPlaylist_7838k")
autoplay = true
bus = &"Music"
[node name="Nightmare" type="AudioStreamPlayer" parent="."]
stream = ExtResource("12_jru5s")
bus = &"Nightmare"
[node name="ColorRect" type="ColorRect" parent="."]
z_index = 11
offset_left = 894.0
offset_top = 115.0
offset_right = 1214.0
offset_bottom = 355.0
color = Color(0, 0, 0, 0)
[node name="EndDay" parent="." instance=ExtResource("12_yeat3")]
position = Vector2(985, 245)
SpriteOffset = Vector2(0, -30)
AreaRadius = 20.0
[node name="Npc" parent="." instance=ExtResource("3_s2s8w")]
position = Vector2(757, 512)
[connection signal="DialogEnded" from="NPCs/Computer" to="." method="EnableEngine"]
[connection signal="DialogEnded" from="NPCs/Engine" to="." method="EnableEndDay"]
[connection signal="finished" from="Nightmare" to="." method="ChangeScene"]
[connection signal="OnInteract" from="EndDay" to="." method="ChangeDay"]
[connection signal="PlayerLeft" from="EndDay" to="." method="RemoveEndDay"]
[connection signal="PlayerNearBy" from="EndDay" to="." method="AssignEndDay"]

View file

@ -1,14 +1,20 @@
[gd_scene load_steps=21 format=3 uid="uid://cggs2kf4oafyh"]
[gd_scene load_steps=28 format=3 uid="uid://cxvsyen213g1o"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_u05xn"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_3pd8r"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_hnx22"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_nb8g4"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="5_jsnd7"]
[ext_resource type="SpriteFrames" uid="uid://1r4r5gmf5kdo" path="res://resources/sprites/npcs/doctor.tres" id="6_ul4l1"]
[ext_resource type="SpriteFrames" uid="uid://532buo56y4q2" path="res://resources/sprites/npcs/crewmate.tres" id="7_q2gxe"]
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="8_djfuf"]
[ext_resource type="AudioStream" uid="uid://be35iuapayv0u" path="res://resources/music/Day1.wav" id="9_64d0j"]
[ext_resource type="Script" path="res://scripts/Day.cs" id="1_gb313"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_ngvqc"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_kyojn"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_vhb2r"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_av7ev"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="5_cl7fg"]
[ext_resource type="SpriteFrames" uid="uid://1r4r5gmf5kdo" path="res://resources/sprites/npcs/doctor.tres" id="6_tudqg"]
[ext_resource type="SpriteFrames" uid="uid://532buo56y4q2" path="res://resources/sprites/npcs/crewmate.tres" id="7_cr07l"]
[ext_resource type="SpriteFrames" uid="uid://wu7pmuvjw5qm" path="res://resources/sprites/npcs/Empty.tres" id="8_je535"]
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="9_qlkfx"]
[ext_resource type="AudioStream" uid="uid://dyj3161xr78j8" path="res://resources/music/Day4.wav" id="10_vlywc"]
[ext_resource type="Texture2D" uid="uid://bu7tporh3nk4s" path="res://resources/sprites/barns/corrupt32.png" id="10_yr64q"]
[ext_resource type="Texture2D" uid="uid://41c7sdjkinml" path="res://resources/sprites/barns/corrupt16.png" id="11_o25d6"]
[ext_resource type="PackedScene" uid="uid://x6pqolxtgwvy" path="res://prefabs/Interactable.tscn" id="12_dvtmm"]
[ext_resource type="AudioStream" uid="uid://71paty3fjbq8" path="res://resources/sounds/nightmares/D4nm.wav" id="12_lqcqa"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_h0540"]
size = Vector2(640, 24)
@ -16,6 +22,9 @@ size = Vector2(640, 24)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i40av"]
size = Vector2(25.5, 104)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ki2nk"]
size = Vector2(25.5, 38)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3xi1q"]
size = Vector2(25.5, 104)
@ -43,12 +52,14 @@ size = Vector2(640, 24)
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_7838k"]
fade_time = 1.0
stream_count = 1
stream_0 = ExtResource("9_64d0j")
stream_0 = ExtResource("10_vlywc")
[node name="Test" type="Node2D"]
script = ExtResource("1_gb313")
NextScene = "Day5"
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_u05xn")
texture = ExtResource("1_ngvqc")
[node name="StaticBody2D" type="StaticBody2D" parent="Sprite2D"]
@ -60,6 +71,18 @@ shape = SubResource("RectangleShape2D_h0540")
position = Vector2(232, 11)
shape = SubResource("RectangleShape2D_i40av")
[node name="CollisionShape2D18" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(377, 29)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D19" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(321, 266)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D20" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(916, -244)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D3" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(889, 11)
shape = SubResource("RectangleShape2D_3xi1q")
@ -122,69 +145,235 @@ shape = SubResource("RectangleShape2D_bafxi")
[node name="Doors" type="Node2D" parent="."]
[node name="Door_3F" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_3pd8r")]
[node name="Door_3F" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(788, 14)
Exit = NodePath("../Door_3F2")
[node name="Door_3F2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_3pd8r")]
[node name="Door_3F2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(790, 134)
Exit = NodePath("../Door_3F")
[node name="Door_MEDBAY" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_3pd8r")]
[node name="Door_MEDBAY" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(474, 134)
Exit = NodePath("../Door_MEDBAY2")
[node name="Door_MEDBAY2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_3pd8r")]
[node name="Door_MEDBAY2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(474, 255)
Exit = NodePath("../Door_MEDBAY")
[node name="Door_SONAR" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_3pd8r")]
[node name="Door_SONAR" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(1180, 134)
Exit = NodePath("../Door_SONAR2")
[node name="Door_SONAR2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_3pd8r")]
[node name="Door_SONAR2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(1179, 14)
Exit = NodePath("../Door_SONAR")
[node name="Door_QUOTERS" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_3pd8r")]
[node name="Door_QUOTERS" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(1436, 134)
Exit = NodePath("../Door_QUOTERS2")
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_3pd8r")]
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(1442, 255)
Exit = NodePath("../Door_QUOTERS")
[node name="Door_ENGINE" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(91, 134)
Exit = NodePath("../Door_ENGINE2")
[node name="Door_ENGINE2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_kyojn")]
position = Vector2(54, 255)
Exit = NodePath("../Door_ENGINE")
[node name="Door_CAPTAIN2" parent="Doors" instance=ExtResource("2_kyojn")]
position = Vector2(1019, -258)
[node name="NPCs" type="Node2D" parent="."]
[node name="Test" parent="NPCs" instance=ExtResource("3_hnx22")]
[node name="Cook" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(351, 14)
NPCName = "Chef"
Frames = ExtResource("4_nb8g4")
NPCName = "Cook"
Frames = ExtResource("4_av7ev")
DefaultDialogLine = "Time to get cooking"
DialogLines = ["You know those things", "You can make really good soup out of it", "Do you want some", "No?! Well I'll get you some canned food", "Here it is...", "You need to be prepared for the arrival"]
[node name="Captain" parent="NPCs" instance=ExtResource("3_hnx22")]
[node name="Captain" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(889, -258)
NPCName = "Captain"
Frames = ExtResource("5_jsnd7")
Frames = ExtResource("5_cl7fg")
[node name="Doctor" parent="NPCs" instance=ExtResource("3_hnx22")]
[node name="Doctor" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(286, 255)
NPCName = "Doctor"
Frames = ExtResource("6_ul4l1")
Frames = ExtResource("6_tudqg")
DefaultDialogLine = "Get to the engine room and turn off the engine"
DialogLines = ["Oh, good someone who is relativly sane on this ship", "I managed to get in contact with the captain", "but he seems to be completly insane", "Talking about arrival and other nonsence", "We should end all of this", "I have a plan", "Me with the last sane people on this ship will break", "into the bridge", "And you should manually turn off the ships engine", "Whatever is happening", "we need to stop our fast approach to this source"]
[node name="Crewmate" parent="NPCs" instance=ExtResource("3_hnx22")]
[node name="Ivan" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(1307, 254)
NPCName = "Crewmate"
Frames = ExtResource("7_q2gxe")
NPCName = "Ivan"
Frames = ExtResource("7_cr07l")
DefaultDialogLine = "I dont feel good"
DialogLines = ["I feel better today", "But no jokes today, sorry", "Everytime I come up with a joke", "it feels like something is messing up with my toughts", "Two inmates are sitting at the submarine", "They are getting closer", "...", "I should really see the doctor", "Ah, doctor. He wanted to talk to you"]
[node name="Npc" parent="NPCs" instance=ExtResource("3_hnx22")]
[node name="Eugene" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(1326, 14)
Frames = ExtResource("7_q2gxe")
NPCName = "Eugene"
Frames = ExtResource("7_cr07l")
DefaultDialogLine = "You hear them in your dreams"
DialogLines = ["Every step we make get us closer...", "Do you hear it? In your dreams", "It is calling us", "Below"]
[node name="Npc2" parent="NPCs" instance=ExtResource("3_hnx22")]
[node name="Nikolai" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(575, -6)
Frames = ExtResource("7_q2gxe")
NPCName = "Nikolai"
Frames = ExtResource("7_cr07l")
DefaultDialogLine = "Canned food tastes strange today"
DialogLines = ["Are they calling us", "or is it only some really messed up dream", "Do they really think", "that something is calling us deep below"]
[node name="Player" parent="." instance=ExtResource("8_djfuf")]
[node name="Computer" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(1597, -12)
NPCName = "Computer"
Frames = ExtResource("8_je535")
DefaultDialogLine = "Approaching target."
DialogLines = ["Approaching target.", "ETA $^%@#*&", "bx eva eipd nfenvat sq hdf snswo", "ptso ulp hdf sys", "eo hpsl tpfaxfv", "swo evpoit fpqknid", "..."]
[node name="Engine" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(-359, 245)
NPCName = "Engine"
Frames = ExtResource("8_je535")
DefaultDialogLine = "You can go back to your room now"
DialogLines = ["Engine works at 110% capacity", "You pull the lever and mechanism stops", "You fill a chill crawling down your spine", "Suddenly you pass out"]
[node name="Bridge door" parent="NPCs" instance=ExtResource("3_vhb2r")]
position = Vector2(979, 131)
NPCName = "Bridge door"
Frames = ExtResource("8_je535")
DefaultDialogLine = "You feel that you will meet the captain soon"
[node name="Deco" type="Node2D" parent="."]
[node name="Barn" type="Sprite2D" parent="Deco"]
position = Vector2(1030, 26)
texture = ExtResource("10_yr64q")
[node name="Barn26" type="Sprite2D" parent="Deco"]
position = Vector2(1007, 25)
texture = ExtResource("10_yr64q")
[node name="Barn2" type="Sprite2D" parent="Deco"]
position = Vector2(885, 130)
texture = ExtResource("10_yr64q")
[node name="Barn13" type="Sprite2D" parent="Deco"]
position = Vector2(871, -30)
texture = ExtResource("11_o25d6")
[node name="Barn16" type="Sprite2D" parent="Deco"]
position = Vector2(254, -30)
texture = ExtResource("11_o25d6")
[node name="Barn27" type="Sprite2D" parent="Deco"]
position = Vector2(-127, 202)
texture = ExtResource("11_o25d6")
[node name="Barn28" type="Sprite2D" parent="Deco"]
position = Vector2(-149, 255)
texture = ExtResource("11_o25d6")
[node name="Barn17" type="Sprite2D" parent="Deco"]
position = Vector2(310, -30)
texture = ExtResource("11_o25d6")
[node name="Barn18" type="Sprite2D" parent="Deco"]
position = Vector2(384, -1)
texture = ExtResource("11_o25d6")
[node name="Barn6" type="Sprite2D" parent="Deco"]
position = Vector2(1708, 91)
texture = ExtResource("11_o25d6")
[node name="Barn7" type="Sprite2D" parent="Deco"]
position = Vector2(1708, -30)
texture = ExtResource("11_o25d6")
[node name="Barn29" type="Sprite2D" parent="Deco"]
position = Vector2(1577, -31)
texture = ExtResource("11_o25d6")
[node name="Barn30" type="Sprite2D" parent="Deco"]
position = Vector2(1460, 32)
texture = ExtResource("11_o25d6")
[node name="Barn3" type="Sprite2D" parent="Deco"]
position = Vector2(1075, 98)
texture = ExtResource("10_yr64q")
[node name="Barn5" type="Sprite2D" parent="Deco"]
position = Vector2(1520, 211)
texture = ExtResource("11_o25d6")
[node name="Barn14" type="Sprite2D" parent="Deco"]
position = Vector2(1519, 269)
texture = ExtResource("11_o25d6")
[node name="Barn4" type="Sprite2D" parent="Deco"]
position = Vector2(576, 209)
texture = ExtResource("11_o25d6")
[node name="Barn15" type="Sprite2D" parent="Deco"]
position = Vector2(1241, 206)
texture = ExtResource("11_o25d6")
[node name="Barn8" type="Sprite2D" parent="Deco"]
position = Vector2(-17, 26)
texture = ExtResource("10_yr64q")
[node name="Barn9" type="Sprite2D" parent="Deco"]
position = Vector2(-467, 12)
texture = ExtResource("10_yr64q")
[node name="Barn10" type="Sprite2D" parent="Deco"]
position = Vector2(-197, 6)
texture = ExtResource("10_yr64q")
[node name="Barn11" type="Sprite2D" parent="Deco"]
position = Vector2(-417, 72)
texture = ExtResource("10_yr64q")
[node name="Barn19" type="Sprite2D" parent="Deco"]
position = Vector2(-229, 69)
texture = ExtResource("10_yr64q")
[node name="Barn20" type="Sprite2D" parent="Deco"]
position = Vector2(-209, 86)
texture = ExtResource("10_yr64q")
[node name="Barn21" type="Sprite2D" parent="Deco"]
position = Vector2(-201, 61)
texture = ExtResource("10_yr64q")
[node name="Barn22" type="Sprite2D" parent="Deco"]
position = Vector2(-233, 92)
texture = ExtResource("10_yr64q")
[node name="Barn12" type="Sprite2D" parent="Deco"]
position = Vector2(-100, 45)
texture = ExtResource("10_yr64q")
[node name="Barn23" type="Sprite2D" parent="Deco"]
position = Vector2(-36, 134)
texture = ExtResource("10_yr64q")
[node name="Barn24" type="Sprite2D" parent="Deco"]
position = Vector2(-359, 131)
texture = ExtResource("10_yr64q")
[node name="Barn25" type="Sprite2D" parent="Deco"]
position = Vector2(-301, 40)
texture = ExtResource("10_yr64q")
[node name="Player" parent="." instance=ExtResource("9_qlkfx")]
visible = false
position = Vector2(1054, 255)
Speed = 100.0
@ -192,3 +381,30 @@ Speed = 100.0
stream = SubResource("AudioStreamPlaylist_7838k")
autoplay = true
bus = &"Music"
[node name="Nightmare" type="AudioStreamPlayer" parent="."]
stream = ExtResource("12_lqcqa")
bus = &"Nightmare"
[node name="ColorRect" type="ColorRect" parent="."]
z_index = 11
offset_left = 894.0
offset_top = 115.0
offset_right = 1214.0
offset_bottom = 355.0
color = Color(0, 0, 0, 0)
[node name="EndDay" parent="." instance=ExtResource("12_dvtmm")]
position = Vector2(985, 245)
SpriteOffset = Vector2(0, -30)
AreaRadius = 20.0
[node name="Npc" parent="." instance=ExtResource("3_vhb2r")]
position = Vector2(402, 395)
[connection signal="DialogEnded" from="NPCs/Doctor" to="." method="EnableEngine"]
[connection signal="DialogEnded" from="NPCs/Engine" to="." method="ChangeDay"]
[connection signal="finished" from="Nightmare" to="." method="ChangeScene"]
[connection signal="OnInteract" from="EndDay" to="." method="ChangeDay"]
[connection signal="PlayerLeft" from="EndDay" to="." method="RemoveEndDay"]
[connection signal="PlayerNearBy" from="EndDay" to="." method="AssignEndDay"]

View file

@ -1,14 +1,19 @@
[gd_scene load_steps=21 format=3 uid="uid://ci6mrsqs1gafg"]
[gd_scene load_steps=27 format=3 uid="uid://10ew1xa1pxm2"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_ynuk4"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_k5nsw"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_k5xn1"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_rjcue"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="5_ejd4f"]
[ext_resource type="SpriteFrames" uid="uid://1r4r5gmf5kdo" path="res://resources/sprites/npcs/doctor.tres" id="6_27q3e"]
[ext_resource type="SpriteFrames" uid="uid://532buo56y4q2" path="res://resources/sprites/npcs/crewmate.tres" id="7_ptpge"]
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="8_nks88"]
[ext_resource type="AudioStream" uid="uid://be35iuapayv0u" path="res://resources/music/Day1.wav" id="9_3m6gm"]
[ext_resource type="Script" path="res://scripts/Day.cs" id="1_ii8yu"]
[ext_resource type="Texture2D" uid="uid://b5baxx5o21qy1" path="res://resources/sprites/Sub/Sub.png" id="1_p4jcj"]
[ext_resource type="PackedScene" uid="uid://coogmsw6rsdun" path="res://prefabs/Door.tscn" id="2_o6uwl"]
[ext_resource type="PackedScene" uid="uid://c5ndo6b0unkst" path="res://prefabs/NPC.tscn" id="3_4c2bg"]
[ext_resource type="SpriteFrames" uid="uid://dsgqo48qikwsn" path="res://resources/sprites/npcs/cock.tres" id="4_5jy86"]
[ext_resource type="SpriteFrames" uid="uid://bwssm27bm14s7" path="res://resources/sprites/npcs/captain.tres" id="5_vvft0"]
[ext_resource type="SpriteFrames" uid="uid://532buo56y4q2" path="res://resources/sprites/npcs/crewmate.tres" id="7_vou74"]
[ext_resource type="SpriteFrames" uid="uid://wu7pmuvjw5qm" path="res://resources/sprites/npcs/Empty.tres" id="8_8y5k0"]
[ext_resource type="PackedScene" uid="uid://dfdsnwub212o6" path="res://prefabs/Player.tscn" id="9_mxxxl"]
[ext_resource type="Texture2D" uid="uid://bu7tporh3nk4s" path="res://resources/sprites/barns/corrupt32.png" id="9_uvt3y"]
[ext_resource type="Texture2D" uid="uid://41c7sdjkinml" path="res://resources/sprites/barns/corrupt16.png" id="10_52vj7"]
[ext_resource type="AudioStream" uid="uid://3poadcg4f8mj" path="res://resources/music/Day5.wav" id="10_bwdem"]
[ext_resource type="PackedScene" uid="uid://x6pqolxtgwvy" path="res://prefabs/Interactable.tscn" id="12_bvb3u"]
[ext_resource type="AudioStream" uid="uid://cw6y35jglsn1" path="res://resources/sounds/nightmares/D1nm.wav" id="12_thjn8"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_h0540"]
size = Vector2(640, 24)
@ -16,6 +21,9 @@ size = Vector2(640, 24)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i40av"]
size = Vector2(25.5, 104)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ki2nk"]
size = Vector2(25.5, 38)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3xi1q"]
size = Vector2(25.5, 104)
@ -43,12 +51,15 @@ size = Vector2(640, 24)
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_7838k"]
fade_time = 1.0
stream_count = 1
stream_0 = ExtResource("9_3m6gm")
stream_0 = ExtResource("10_bwdem")
[node name="Test" type="Node2D"]
script = ExtResource("1_ii8yu")
NextScene = "Menu"
IsEngineDisabled = false
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_ynuk4")
texture = ExtResource("1_p4jcj")
[node name="StaticBody2D" type="StaticBody2D" parent="Sprite2D"]
@ -60,6 +71,18 @@ shape = SubResource("RectangleShape2D_h0540")
position = Vector2(232, 11)
shape = SubResource("RectangleShape2D_i40av")
[node name="CollisionShape2D18" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(377, 29)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D19" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(321, 266)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D20" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(916, -244)
shape = SubResource("RectangleShape2D_ki2nk")
[node name="CollisionShape2D3" type="CollisionShape2D" parent="Sprite2D/StaticBody2D"]
position = Vector2(889, 11)
shape = SubResource("RectangleShape2D_3xi1q")
@ -122,69 +145,318 @@ shape = SubResource("RectangleShape2D_bafxi")
[node name="Doors" type="Node2D" parent="."]
[node name="Door_3F" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_k5nsw")]
[node name="Door_3F" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(788, 14)
Exit = NodePath("../Door_3F2")
[node name="Door_3F2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_k5nsw")]
[node name="Door_3F2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(790, 134)
Exit = NodePath("../Door_3F")
[node name="Door_MEDBAY" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_k5nsw")]
[node name="Door_MEDBAY" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(474, 134)
Exit = NodePath("../Door_MEDBAY2")
[node name="Door_MEDBAY2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_k5nsw")]
[node name="Door_MEDBAY2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(474, 255)
Exit = NodePath("../Door_MEDBAY")
[node name="Door_SONAR" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_k5nsw")]
[node name="Door_SONAR" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(1180, 134)
Exit = NodePath("../Door_SONAR2")
[node name="Door_SONAR2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_k5nsw")]
[node name="Door_SONAR2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(1179, 14)
Exit = NodePath("../Door_SONAR")
[node name="Door_QUOTERS" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_k5nsw")]
[node name="Door_QUOTERS" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(1436, 134)
Exit = NodePath("../Door_QUOTERS2")
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_k5nsw")]
[node name="Door_QUOTERS2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(1442, 255)
Exit = NodePath("../Door_QUOTERS")
[node name="Door_ENGINE" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(91, 134)
Exit = NodePath("../Door_ENGINE2")
[node name="Door_ENGINE2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(54, 255)
Exit = NodePath("../Door_ENGINE")
[node name="Door_CAPTAIN" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(980, 134)
Exit = NodePath("../Door_CAPTAIN2")
[node name="Door_CAPTAIN2" parent="Doors" node_paths=PackedStringArray("Exit") instance=ExtResource("2_o6uwl")]
position = Vector2(1019, -258)
Exit = NodePath("../Door_CAPTAIN")
[node name="NPCs" type="Node2D" parent="."]
[node name="Test" parent="NPCs" instance=ExtResource("3_k5xn1")]
[node name="Cook" parent="NPCs" instance=ExtResource("3_4c2bg")]
position = Vector2(351, 14)
NPCName = "Chef"
Frames = ExtResource("4_rjcue")
NPCName = "Cook"
Frames = ExtResource("4_5jy86")
DefaultDialogLine = "Captain is waiting for you..."
[node name="Captain" parent="NPCs" instance=ExtResource("3_k5xn1")]
[node name="Captain" parent="NPCs" instance=ExtResource("3_4c2bg")]
position = Vector2(889, -258)
NPCName = "Captain"
Frames = ExtResource("5_ejd4f")
Frames = ExtResource("5_vvft0")
DialogLines = ["As you can see, your little mutiny didn't work", "However I want to congratulate you.", "You will bathe in HIS glory", "Come closer my friend"]
[node name="Doctor" parent="NPCs" instance=ExtResource("3_k5xn1")]
position = Vector2(286, 255)
NPCName = "Doctor"
Frames = ExtResource("6_27q3e")
[node name="Crewmate" parent="NPCs" instance=ExtResource("3_k5xn1")]
[node name="Ivan" parent="NPCs" instance=ExtResource("3_4c2bg")]
position = Vector2(1307, 254)
NPCName = "Crewmate"
Frames = ExtResource("7_ptpge")
NPCName = "Ivan"
Frames = ExtResource("7_vou74")
DefaultDialogLine = "Captain is waiting for you..."
[node name="Npc" parent="NPCs" instance=ExtResource("3_k5xn1")]
[node name="Eugene" parent="NPCs" instance=ExtResource("3_4c2bg")]
position = Vector2(1326, 14)
Frames = ExtResource("7_ptpge")
NPCName = "Eugene"
Frames = ExtResource("7_vou74")
DefaultDialogLine = "Captain is waiting for you..."
DialogLines = ["We are here.", "Captain is waiting for you..."]
[node name="Npc2" parent="NPCs" instance=ExtResource("3_k5xn1")]
position = Vector2(575, -6)
Frames = ExtResource("7_ptpge")
[node name="Computer" parent="NPCs" instance=ExtResource("3_4c2bg")]
position = Vector2(1597, -12)
NPCName = "Computer"
Frames = ExtResource("8_8y5k0")
DefaultDialogLine = "Captain is waiting for you..."
DialogLines = ["tymawsmys dbzp onsmgsz bx tho eidheoeewko", "xss kmh zba jw ssnf", "wzaa nej hdjrv va jw hopdltbc pzpf", "dpapjas czi wsi eck tqlzh us tbpfvcilu ltg omyxpas", "hcwrfr tbobrp pu imd aasi ofabqd", "ijeic hdf hpsl eipd kdilb", "Captain is waiting for you..."]
[node name="Player" parent="." instance=ExtResource("8_nks88")]
[node name="Engine" parent="NPCs" instance=ExtResource("3_4c2bg")]
position = Vector2(-359, 245)
NPCName = "Engine"
Frames = ExtResource("8_8y5k0")
DefaultDialogLine = "Captain is waiting for you..."
DialogLines = ["Works at normal pace", "You pull the lever, but the engine refuses to stop.", "Whatever is happening now, you must see the captain."]
[node name="Deco" type="Node2D" parent="."]
[node name="Barn" type="Sprite2D" parent="Deco"]
position = Vector2(1030, 26)
texture = ExtResource("9_uvt3y")
[node name="Barn26" type="Sprite2D" parent="Deco"]
position = Vector2(1007, 25)
texture = ExtResource("9_uvt3y")
[node name="Barn49" type="Sprite2D" parent="Deco"]
position = Vector2(1132, -278)
texture = ExtResource("9_uvt3y")
[node name="Barn52" type="Sprite2D" parent="Deco"]
position = Vector2(1132, -278)
texture = ExtResource("9_uvt3y")
[node name="Barn50" type="Sprite2D" parent="Deco"]
position = Vector2(1076, -296)
texture = ExtResource("9_uvt3y")
[node name="Barn39" type="Sprite2D" parent="Deco"]
position = Vector2(993, -53)
texture = ExtResource("9_uvt3y")
[node name="Barn2" type="Sprite2D" parent="Deco"]
position = Vector2(885, 130)
texture = ExtResource("9_uvt3y")
[node name="Barn32" type="Sprite2D" parent="Deco"]
position = Vector2(257, 269)
texture = ExtResource("9_uvt3y")
[node name="Barn13" type="Sprite2D" parent="Deco"]
position = Vector2(871, -30)
texture = ExtResource("10_52vj7")
[node name="Barn40" type="Sprite2D" parent="Deco"]
position = Vector2(922, 21)
texture = ExtResource("10_52vj7")
[node name="Barn41" type="Sprite2D" parent="Deco"]
position = Vector2(925, -24)
texture = ExtResource("10_52vj7")
[node name="Barn42" type="Sprite2D" parent="Deco"]
position = Vector2(917, -137)
texture = ExtResource("10_52vj7")
[node name="Barn43" type="Sprite2D" parent="Deco"]
position = Vector2(1027, -35)
texture = ExtResource("10_52vj7")
[node name="Barn44" type="Sprite2D" parent="Deco"]
position = Vector2(988, -104)
texture = ExtResource("10_52vj7")
[node name="Barn48" type="Sprite2D" parent="Deco"]
position = Vector2(924, -107)
texture = ExtResource("10_52vj7")
[node name="Barn45" type="Sprite2D" parent="Deco"]
position = Vector2(961, -160)
texture = ExtResource("10_52vj7")
[node name="Barn51" type="Sprite2D" parent="Deco"]
position = Vector2(836, -305)
texture = ExtResource("10_52vj7")
[node name="Barn53" type="Sprite2D" parent="Deco"]
position = Vector2(834, -242)
texture = ExtResource("10_52vj7")
[node name="Barn54" type="Sprite2D" parent="Deco"]
position = Vector2(1058, -242)
texture = ExtResource("10_52vj7")
[node name="Barn46" type="Sprite2D" parent="Deco"]
position = Vector2(1033, -180)
texture = ExtResource("10_52vj7")
[node name="Barn47" type="Sprite2D" parent="Deco"]
position = Vector2(966, -135)
texture = ExtResource("10_52vj7")
[node name="Barn16" type="Sprite2D" parent="Deco"]
position = Vector2(254, -25)
texture = ExtResource("9_uvt3y")
[node name="Barn31" type="Sprite2D" parent="Deco"]
position = Vector2(285, 28)
texture = ExtResource("9_uvt3y")
[node name="Barn55" type="Sprite2D" parent="Deco"]
position = Vector2(569, 16)
texture = ExtResource("9_uvt3y")
[node name="Barn27" type="Sprite2D" parent="Deco"]
position = Vector2(-127, 202)
texture = ExtResource("9_uvt3y")
[node name="Barn36" type="Sprite2D" parent="Deco"]
position = Vector2(-311, 254)
texture = ExtResource("9_uvt3y")
[node name="Barn28" type="Sprite2D" parent="Deco"]
position = Vector2(-143, 254)
texture = ExtResource("9_uvt3y")
[node name="Barn17" type="Sprite2D" parent="Deco"]
position = Vector2(310, -30)
texture = ExtResource("10_52vj7")
[node name="Barn33" type="Sprite2D" parent="Deco"]
position = Vector2(314, 24)
texture = ExtResource("10_52vj7")
[node name="Barn34" type="Sprite2D" parent="Deco"]
position = Vector2(328, 27)
texture = ExtResource("10_52vj7")
[node name="Barn37" type="Sprite2D" parent="Deco"]
position = Vector2(-371, 224)
texture = ExtResource("10_52vj7")
[node name="Barn38" type="Sprite2D" parent="Deco"]
position = Vector2(-329, 224)
texture = ExtResource("10_52vj7")
[node name="Barn18" type="Sprite2D" parent="Deco"]
position = Vector2(384, -1)
texture = ExtResource("10_52vj7")
[node name="Barn6" type="Sprite2D" parent="Deco"]
position = Vector2(1708, 91)
texture = ExtResource("10_52vj7")
[node name="Barn7" type="Sprite2D" parent="Deco"]
position = Vector2(1708, -30)
texture = ExtResource("10_52vj7")
[node name="Barn29" type="Sprite2D" parent="Deco"]
position = Vector2(1577, -31)
texture = ExtResource("10_52vj7")
[node name="Barn30" type="Sprite2D" parent="Deco"]
position = Vector2(1460, 32)
texture = ExtResource("10_52vj7")
[node name="Barn3" type="Sprite2D" parent="Deco"]
position = Vector2(1075, 98)
texture = ExtResource("9_uvt3y")
[node name="Barn5" type="Sprite2D" parent="Deco"]
position = Vector2(1520, 211)
texture = ExtResource("10_52vj7")
[node name="Barn14" type="Sprite2D" parent="Deco"]
position = Vector2(1519, 269)
texture = ExtResource("10_52vj7")
[node name="Barn4" type="Sprite2D" parent="Deco"]
position = Vector2(576, 209)
texture = ExtResource("10_52vj7")
[node name="Barn15" type="Sprite2D" parent="Deco"]
position = Vector2(1241, 206)
texture = ExtResource("10_52vj7")
[node name="Barn8" type="Sprite2D" parent="Deco"]
position = Vector2(-17, 26)
texture = ExtResource("9_uvt3y")
[node name="Barn9" type="Sprite2D" parent="Deco"]
position = Vector2(-467, 12)
texture = ExtResource("9_uvt3y")
[node name="Barn10" type="Sprite2D" parent="Deco"]
position = Vector2(-197, 6)
texture = ExtResource("9_uvt3y")
[node name="Barn11" type="Sprite2D" parent="Deco"]
position = Vector2(-417, 72)
texture = ExtResource("9_uvt3y")
[node name="Barn19" type="Sprite2D" parent="Deco"]
position = Vector2(-229, 69)
texture = ExtResource("9_uvt3y")
[node name="Barn20" type="Sprite2D" parent="Deco"]
position = Vector2(-209, 86)
texture = ExtResource("9_uvt3y")
[node name="Barn21" type="Sprite2D" parent="Deco"]
position = Vector2(-201, 61)
texture = ExtResource("9_uvt3y")
[node name="Barn22" type="Sprite2D" parent="Deco"]
position = Vector2(-233, 92)
texture = ExtResource("9_uvt3y")
[node name="Barn12" type="Sprite2D" parent="Deco"]
position = Vector2(-100, 45)
texture = ExtResource("9_uvt3y")
[node name="Barn23" type="Sprite2D" parent="Deco"]
position = Vector2(-36, 134)
texture = ExtResource("9_uvt3y")
[node name="Barn24" type="Sprite2D" parent="Deco"]
position = Vector2(-359, 131)
texture = ExtResource("9_uvt3y")
[node name="Barn35" type="Sprite2D" parent="Deco"]
position = Vector2(-359, 131)
texture = ExtResource("9_uvt3y")
[node name="Barn25" type="Sprite2D" parent="Deco"]
position = Vector2(-301, 40)
texture = ExtResource("9_uvt3y")
[node name="Player" parent="." instance=ExtResource("9_mxxxl")]
position = Vector2(1054, 255)
Speed = 100.0
@ -192,3 +464,26 @@ Speed = 100.0
stream = SubResource("AudioStreamPlaylist_7838k")
autoplay = true
bus = &"Music"
[node name="Nightmare" type="AudioStreamPlayer" parent="."]
stream = ExtResource("12_thjn8")
bus = &"Nightmare"
[node name="ColorRect" type="ColorRect" parent="."]
z_index = 11
offset_left = 894.0
offset_top = 115.0
offset_right = 1214.0
offset_bottom = 355.0
color = Color(0, 0, 0, 0)
[node name="EndDay" parent="." instance=ExtResource("12_bvb3u")]
position = Vector2(985, 245)
SpriteOffset = Vector2(0, -30)
AreaRadius = 20.0
[node name="Npc" parent="." instance=ExtResource("3_4c2bg")]
position = Vector2(705, 533)
[connection signal="DialogEnded" from="NPCs/Captain" to="." method="ChangeDay"]
[connection signal="finished" from="Nightmare" to="." method="ChangeScene"]

47
scenes/Startup.tscn Normal file
View file

@ -0,0 +1,47 @@
[gd_scene load_steps=6 format=3 uid="uid://b6nskaaaroy2j"]
[ext_resource type="Script" path="res://scripts/Startup.cs" id="1_1ndxq"]
[ext_resource type="Texture2D" uid="uid://82rj0mblksli" path="res://resources/sprites/ui/menu.png" id="1_nye7c"]
[ext_resource type="FontFile" uid="uid://dwn20pw40jpxm" path="res://fonts/ZxSpectrum7-nROZ0.ttf" id="2_et3ev"]
[ext_resource type="AudioStream" uid="uid://be35iuapayv0u" path="res://resources/music/Day1.wav" id="3_m8gkt"]
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_5mfcs"]
stream_count = 1
stream_0 = ExtResource("3_m8gkt")
[node name="Startup" type="Node2D"]
script = ExtResource("1_1ndxq")
[node name="Camera2D" type="Camera2D" parent="."]
zoom = Vector2(2, 2)
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_nye7c")
[node name="Label" type="Label" parent="."]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -128.0
offset_top = 97.0
offset_right = 128.0
offset_bottom = 120.0
grow_horizontal = 2
grow_vertical = 2
theme_override_fonts/font = ExtResource("2_et3ev")
theme_override_font_sizes/font_size = 20
text = "Press E to start"
[node name="ColorRect" type="ColorRect" parent="."]
offset_left = -160.0
offset_top = -120.0
offset_right = 160.0
offset_bottom = 120.0
color = Color(0, 0, 0, 0)
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamPlaylist_5mfcs")
autoplay = true
bus = &"Music"

View file

@ -33,7 +33,6 @@ public partial class ChatLogContainer : VBoxContainer
}
private const float MaxChatLogContainerSize = 200;
private Vector2 _initialPosition;
// Called when the node enters the scene tree for the first time.

115
scripts/Day.cs Normal file
View file

@ -0,0 +1,115 @@
using Godot;
using System;
public partial class Day : Node2D
{
[Export] public string NextScene;
[Export] public bool IsEngineDisabled = true;
[Export] public bool IsCaptainDisabled = false;
private enum State
{
Default,
TransitionIn,
TransitionOut
}
private State _state = State.TransitionIn;
private Player _player;
private ColorRect _colorRect;
private AudioStreamPlayer _music;
private AudioStreamPlayer _nightmare;
private Interactable _endDay;
private NPC _engine;
private Door _captainDoor;
private double _transitionTimeout = 0;
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
_player = (Player)FindChild("Player");
_colorRect = _player.CRect;
_music = (AudioStreamPlayer)FindChild("Music");
_nightmare = (AudioStreamPlayer)FindChild("Nightmare");
_endDay = (Interactable)FindChild("EndDay");
_engine = (NPC)FindChild("Engine");
_captainDoor = (Door)FindChild("Door_CAPTAIN");
_colorRect.Color = new Color(0, 0, 0, 1f);
_music.VolumeDb = -40;
_player.CurrentState = Player.State.Wait;
_endDay.Disable();
if (IsEngineDisabled) _engine.Disable();
if (IsCaptainDisabled) _captainDoor.Disable();
}
public void EnableEngine()
{
_engine.Enable();
}
public void EnableCaptain()
{
_captainDoor.Enable();
}
public void AssignEndDay(Player player)
{
player.InteractableObjects.Add(_endDay);
}
public void RemoveEndDay(Player player)
{
player.InteractableObjects.Remove(_endDay);
}
public void ChangeDay()
{
_state = State.TransitionOut;
}
public void EnableEndDay()
{
_endDay.Enable();
}
public void ChangeScene()
{
GetNode<SceneManager>("/root/SceneManager").SwitchScene(NextScene);
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
if (_state == State.TransitionIn)
{
if (_transitionTimeout <= 1)
{
_transitionTimeout += delta;
_music.VolumeDb = Mathf.Lerp(-40, 0, (float)_transitionTimeout);
_colorRect.Color = new Color(0, 0, 0, Mathf.Lerp(1, 0, (float)_transitionTimeout));
}
else
{
_state = State.Default;
_player.CurrentState = Player.State.Normal;
_transitionTimeout = 0;
}
}
if (_state == State.TransitionOut)
{
_player.CurrentState = Player.State.Wait;
if (_transitionTimeout <= 1)
{
_transitionTimeout += delta;
_music.VolumeDb = Mathf.Lerp(0, -40, (float)_transitionTimeout);
_colorRect.Color = new Color(0, 0, 0, Mathf.Lerp(0, 1, (float)_transitionTimeout));
}
else
{
_state = State.Default;
_music.Stop();
_nightmare.Play();
}
}
}
}

99
scripts/Day1Cutscene.cs Normal file
View file

@ -0,0 +1,99 @@
using Godot;
using System;
public partial class Day1Cutscene : Node2D
{
[Signal]
public delegate void FinishedEventHandler();
private Player _player;
private AnimatedSprite2D _sprite;
private NPC _npc1;
private NPC _npc2;
private AudioStreamPlayer _spook;
private AudioStreamPlayer _doorSounds;
private bool _stage4 = false;
private double _captainLeaveTime = 0;
private Vector2 _spriteInitialPosition;
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
_sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D");
_npc1 = (NPC)FindChild("NPC1");
_npc2 = (NPC)FindChild("NPC2");
_spook = (AudioStreamPlayer)FindChild("Spook");
_doorSounds = (AudioStreamPlayer)FindChild("DoorSounds");
_spriteInitialPosition = _sprite.GlobalPosition;
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
if (_stage4)
{
if (_captainLeaveTime <= 3)
{
if (_sprite.Animation == "default") _sprite.Play("walk");
_captainLeaveTime += delta;
_sprite.GlobalPosition =
_spriteInitialPosition.Lerp(new Vector2(1179, _sprite.GlobalPosition.Y), (float)(_captainLeaveTime / 3));
}
else
{
_stage4 = false;
_sprite.Visible = false;
_doorSounds.Play();
}
}
}
public void Final()
{
_player.CurrentState = Player.State.Normal;
EmitSignal(SignalName.Finished);
QueueFree();
}
public void Stage1(Node2D body)
{
if (body is Player player)
{
_player = player;
player.InteractableObjects.Add(_npc1);
player.CurrentState = Player.State.ChatWithNPC;
player.AddMessage(_npc1);
}
}
public void Stage2()
{
_player.CurrentState = Player.State.Wait;
_player.InteractableObjects.Remove(_npc1);
AudioServer.SetBusVolumeDb(1, -20);
_spook.Play();
_player.InteractableObjects.Add(_npc2);
}
public void Stage3()
{
_sprite.FlipH = true;
AudioServer.SetBusVolumeDb(1, 0);
_player.CurrentState = Player.State.ChatWithNPC;
_player.AddMessage(_npc2);
}
public void Stage4()
{
_player.InteractableObjects.Remove(_npc2);
_stage4 = true;
_player.CurrentState = Player.State.Wait;
}
}

View file

@ -5,11 +5,21 @@ public partial class Door : Node2D
{
[Export] public Door Exit;
private Interactable _interactable;
public void Enable()
{
_interactable.Enable();
}
public void Disable()
{
_interactable.Disable();
}
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
_interactable = (Interactable)FindChild("Interactable");
}
// Called every frame. 'delta' is the elapsed time since the previous frame.

View file

@ -5,12 +5,16 @@ using System;
public partial class Interactable : Node2D
{
private const double Tolerance = 1e-6;
[Signal]
public delegate void PlayerNearByEventHandler(Player player);
[Signal]
public delegate void PlayerLeftEventHandler(Player player);
[Signal]
public delegate void OnInteractEventHandler();
[Export] public Vector2 SpriteOffset;
[Export] public float AreaRadius;
@ -19,6 +23,8 @@ public partial class Interactable : Node2D
private CollisionShape2D _areaMesh;
private CircleShape2D _collisionCircle;
private bool _isEnabled = true;
// Called when the node enters the scene tree for the first time.
public override void _Ready()
@ -26,7 +32,7 @@ public partial class Interactable : Node2D
_sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D");
_areaMesh = (CollisionShape2D)FindChild("CollisionShape2D");
_sprite.Position = SpriteOffset;
_collisionCircle =(CircleShape2D)_areaMesh.Shape;
_collisionCircle = (CircleShape2D)_areaMesh.Shape;
_collisionCircle.Radius = AreaRadius;
if (Engine.IsEditorHint())
{
@ -48,9 +54,25 @@ public partial class Interactable : Node2D
}
}
public void Interact()
{
EmitSignal(SignalName.OnInteract);
}
public void Enable()
{
_isEnabled = true;
_sprite.Visible = true;
}
public void Disable()
{
_isEnabled = false;
_sprite.Visible = false;
}
private void _on_area_2d_body_entered(Node2D body)
{
if (body is Player player)
if (_isEnabled && body is Player player)
{
_sprite.Visible = true;
EmitSignal(SignalName.PlayerNearBy, player);
@ -59,7 +81,7 @@ public partial class Interactable : Node2D
private void _on_area_2d_body_exited(Node2D body)
{
if (body is Player player)
if (_isEnabled && body is Player player)
{
_sprite.Visible = false;
EmitSignal(SignalName.PlayerLeft, player);

View file

@ -5,6 +5,9 @@ using Godot.Collections;
[Tool]
public partial class NPC : Node2D
{
[Signal]
public delegate void DialogEndedEventHandler();
[Export] public string NPCName;
[Export] public SpriteFrames Frames;
[Export] public string DefaultDialogLine;
@ -17,18 +20,39 @@ public partial class NPC : Node2D
}
private AnimatedSprite2D _sprite;
private Interactable _interactable;
private int _currentDialogLine;
//Диалог закончен, если больше нет строк диалога.
public bool IsDialogEnded => _currentDialogLine == DialogLines.Count;
//Возвращаем строку диалога и увеличиваем счетчик текущей строки если диалог законче, и возвращаем строку по-умолчанию, если диалог законен.
public string Message => IsDialogEnded ? DefaultDialogLine : DialogLines[_currentDialogLine++];
public string Message
{
get
{
if (_currentDialogLine + 1 == DialogLines.Count)
{
EmitSignal(SignalName.DialogEnded);
}
return IsDialogEnded ? DefaultDialogLine : DialogLines[_currentDialogLine++];
}
}
public void Disable()
{
_interactable.Disable();
}
public void Enable()
{
_interactable.Enable();
}
public override void _Ready()
{
_sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D");
_interactable = (Interactable)FindChild("Interactable");
if (Frames is not null) _sprite.SpriteFrames = Frames;
_sprite.Play("default");
_currentDialogLine = 0;

View file

@ -22,8 +22,9 @@ public partial class Player : CharacterBody2D
public State CurrentState
{
get => _state;
private set
set
{
_sprite.Play("default");
switch (value)
{
case State.Normal:
@ -34,6 +35,7 @@ public partial class Player : CharacterBody2D
Visible = false;
break;
case State.ReadChat:
if (CurrentState == State.Wait) return;
_nextLabel.Visible = false;
_exitLabel.Visible = true;
_chatLogContainer.CurrentState = ChatLogContainer.ChatState.Default;
@ -100,6 +102,8 @@ public partial class Player : CharacterBody2D
private PackedScene _dialogBox = GD.Load<PackedScene>("res://prefabs/Dialog.tscn");
public ColorRect CRect { get; private set; }
public override void _Ready()
{
_sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D");
@ -110,6 +114,7 @@ public partial class Player : CharacterBody2D
_camera = (Camera2D)FindChild("Camera2D");
_footsteps = (AudioCollection)FindChild("Footsteps");
_doorSounds = (AudioCollection)FindChild("DoorSounds");
CRect = (ColorRect)FindChild("ColorRect");
}
public override void _PhysicsProcess(double delta)
@ -118,19 +123,7 @@ public partial class Player : CharacterBody2D
{
case State.Normal:
if (_camera.Offset != _cameraDefaultPosition)
{
if (_currentCameraTransitionTime < CameraTransitionTime)
{
_camera.Offset = _cameraChatLogPosition.Lerp(_cameraDefaultPosition,
(float)(_currentCameraTransitionTime * 1 / CameraTransitionTime));
_currentCameraTransitionTime += delta;
}
else
{
_currentCameraTransitionTime = 0;
}
}
HideChatLog(delta);
Vector2 velocity = Velocity;
@ -178,12 +171,31 @@ public partial class Player : CharacterBody2D
ShowChatLog(delta);
break;
case State.Wait:
// _camera.Offset = _cameraDefaultPosition;
HideChatLog(delta, 3);
break;
default:
throw new ArgumentOutOfRangeException();
}
}
private void HideChatLog(double delta, double transitionTime = CameraTransitionTime)
{
if (_camera.Offset != _cameraDefaultPosition)
{
if (_currentCameraTransitionTime < transitionTime)
{
_camera.Offset = _cameraChatLogPosition.Lerp(_cameraDefaultPosition,
(float)(_currentCameraTransitionTime * 1 / transitionTime));
_currentCameraTransitionTime += delta;
}
else
{
_currentCameraTransitionTime = 0;
}
}
}
private void ShowChatLog(double delta)
{
if (_camera.Offset != _cameraChatLogPosition)
@ -201,20 +213,25 @@ public partial class Player : CharacterBody2D
}
}
public void AddMessage(NPC npc)
{
var msg = _dialogBox.Instantiate<Dialog>();
msg.Text = npc.Message;
msg.Author = npc.NPCName;
_chatLogContainer.AddChild(msg);
_chatLogContainer.CurrentState = ChatLogContainer.ChatState.Default;
if (npc.IsDialogEnded) CurrentState = State.ReadChat;
}
public override void _Input(InputEvent @event)
{
if (@event.IsActionPressed("Interact"))
{
if (CurrentState == State.Transition) return;
if (InteractableObject is NPC npc)
{
void AddMessage()
{
var msg = _dialogBox.Instantiate<Dialog>();
msg.Text = npc.Message;
msg.Author = npc.NPCName;
_chatLogContainer.AddChild(msg);
if (npc.IsDialogEnded) CurrentState = State.ReadChat;
}
switch (CurrentState)
{
@ -231,10 +248,10 @@ public partial class Player : CharacterBody2D
_sprite.FlipH = false;
}
CurrentState = State.ChatWithNPC;
AddMessage();
AddMessage(npc);
break;
case State.ChatWithNPC:
AddMessage();
AddMessage(npc);
break;
}
}
@ -246,6 +263,11 @@ public partial class Player : CharacterBody2D
_nextPosition = door.Exit.GlobalPosition;
CurrentState = State.Wait;
}
if (InteractableObject is Interactable obj)
{
obj.Interact();
}
}
if (@event.IsActionPressed("show_chat"))

22
scripts/SceneManager.cs Normal file
View file

@ -0,0 +1,22 @@
using Godot;
using System;
using System.Linq;
using Godot.Collections;
public partial class SceneManager : Node
{
[Export] public Dictionary<string, string> Scenes;
public string CurrentScene;
public void SwitchScene(string sceneName)
{
GetTree().ChangeSceneToFile(Scenes[sceneName]);
}
public override void _Ready()
{
var scenePath = (string)ProjectSettings.GetSetting("application/run/main_scene");
CurrentScene = Scenes.First(pair => pair.Value == scenePath).Key;
}
}

50
scripts/Startup.cs Normal file
View file

@ -0,0 +1,50 @@
using Godot;
using System;
public partial class Startup : Node2D
{
private enum State
{
Default,
Transition
}
private State _state = State.Default;
private ColorRect _colorRect;
private AudioStreamPlayer _music;
private double _transitionTimeout = 0;
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
_colorRect = (ColorRect)FindChild("ColorRect");
_music = (AudioStreamPlayer)FindChild("AudioStreamPlayer");
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _PhysicsProcess(double delta)
{
if (_state == State.Transition)
{
_transitionTimeout += delta;
// _colorRect.Color = _colorRect.Color.Lerp(new Color(0, 0, 0, 255), (float)_transitionTimeout/2);
_colorRect.Color = new Color(0, 0, 0, Mathf.Lerp(0, 1, (float)_transitionTimeout/2));
_music.VolumeDb = Mathf.Lerp(0, -41, (float)_transitionTimeout/2);
if (_music.VolumeDb < -40)
{
GetNode<SceneManager>("/root/SceneManager").SwitchScene("Day1");
}
}
}
public override void _Input(InputEvent @event)
{
if (@event.IsActionPressed("Interact"))
{
_state = State.Transition;
}
}
}