音效适配:瞎子卧室

This commit is contained in:
cakipaul 2025-06-21 01:51:36 +08:00
parent 588550584c
commit 1176913032
69 changed files with 726 additions and 141 deletions

BIN
asset/art/prop/c02/海报特写/剪辫子侦探.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 32 KiB

BIN
asset/art/prop/c02/海报(小)/剪辫子侦探.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://8hjot820jnyo"
path="res://.godot/imported/f_禁用火具.png-eeda21314b6690c12a250a220c4d2ada.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s03_公寓一楼院子/f_禁用火具.png"
dest_files=["res://.godot/imported/f_禁用火具.png-eeda21314b6690c12a250a220c4d2ada.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: 2.6 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://diuh52qo2o6pa"
path="res://.godot/imported/f_院子内墙上文字.png-107caa7c643223d1c6850711ee51240a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png"
dest_files=["res://.godot/imported/f_院子内墙上文字.png-107caa7c643223d1c6850711ee51240a.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.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bihg7v2peym1l"
path="res://.godot/imported/ux_空白.png-84d43bcc979b998d57e5673fffce1516.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_空白.png"
dest_files=["res://.godot/imported/ux_空白.png-84d43bcc979b998d57e5673fffce1516.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.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://o7fj0r0fbm1h"
path="res://.godot/imported/sfx_冷飕飕.wav-49bde3acf56c811a4c6eeb2e0878cd83.sample"
[deps]
source_file="res://asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav"
dest_files=["res://.godot/imported/sfx_冷飕飕.wav-49bde3acf56c811a4c6eeb2e0878cd83.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dkadc7ewletgn"
path="res://.godot/imported/sfx_猪头喘气.wav-e61d36f6c63e0887ca4e5a06164c0c2c.sample"
[deps]
source_file="res://asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav"
dest_files=["res://.godot/imported/sfx_猪头喘气.wav-e61d36f6c63e0887ca4e5a06164c0c2c.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://6q5qi1qon35r"
path="res://.godot/imported/sfx_猫挠门.wav-5b50528f62e4bb1a657aee883ca56db3.sample"
[deps]
source_file="res://asset/audio/sfx/交互/第一章/sfx_猫挠门.wav"
dest_files=["res://.godot/imported/sfx_猫挠门.wav-5b50528f62e4bb1a657aee883ca56db3.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bma77k6n4hwle"
path="res://.godot/imported/sfx_猫猫钻盒子.wav-fff524f5c65b7d65f903cb8a22b20c3a.sample"
[deps]
source_file="res://asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav"
dest_files=["res://.godot/imported/sfx_猫猫钻盒子.wav-fff524f5c65b7d65f903cb8a22b20c3a.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dukcyf5fq4drj"
path="res://.godot/imported/sfx_鞋子掉了.wav-bd029033cc3c235c5126d4fefb4c08f4.sample"
[deps]
source_file="res://asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav"
dest_files=["res://.godot/imported/sfx_鞋子掉了.wav-bd029033cc3c235c5126d4fefb4c08f4.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://mff0udi3glb4"
path="res://.godot/imported/瞎子房间癞子呼吸.wav-88d74d3c8d27da9965f81cbf84d398b7.sample"
[deps]
source_file="res://asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav"
dest_files=["res://.godot/imported/瞎子房间癞子呼吸.wav-88d74d3c8d27da9965f81cbf84d398b7.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dnk2cba1bwr4s"
path="res://.godot/imported/风吹灭火.ogg-407d91e0eb2937c6a489a47456b187c4.oggvorbisstr"
[deps]
source_file="res://asset/audio/sfx/交互/第一章/风吹灭火.ogg"
dest_files=["res://.godot/imported/风吹灭火.ogg-407d91e0eb2937c6a489a47456b187c4.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bal423qlb3jp2"
path="res://.godot/imported/sfx_夜晚虫鸣.wav-3ae82e24b8f559263fd9e486a25978e8.sample"
[deps]
source_file="res://asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav"
dest_files=["res://.godot/imported/sfx_夜晚虫鸣.wav-3ae82e24b8f559263fd9e486a25978e8.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://7q03rss2vlcn"
path="res://.godot/imported/sfx_老鼠叫.wav-6bc8d6061275cea774bd013d9442632f.sample"
[deps]
source_file="res://asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav"
dest_files=["res://.godot/imported/sfx_老鼠叫.wav-6bc8d6061275cea774bd013d9442632f.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://djc818l7b4oif"
path="res://.godot/imported/sfx_猪头走路1.wav-ab28234d571102ab9127ac8a82b8447a.sample"
[deps]
source_file="res://asset/audio/sfx/脚步/sfx_猪头走路1.wav"
dest_files=["res://.godot/imported/sfx_猪头走路1.wav-ab28234d571102ab9127ac8a82b8447a.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://0pm6s7jdo5ca"
path="res://.godot/imported/sfx_猪头走路2.wav-6f7dade147334e57f07a092923ed21ae.sample"
[deps]
source_file="res://asset/audio/sfx/脚步/sfx_猪头走路2.wav"
dest_files=["res://.godot/imported/sfx_猪头走路2.wav-6f7dade147334e57f07a092923ed21ae.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View File

@ -15,8 +15,8 @@
~ c02_04_李氏癞子
#[#anonymous]
李兰: 真的假的?你钻进去啦,你这个体型进得去哒? [ID:c02_6偷听对话_李氏_1_fx]
王守义: 小声点,让人听见了倒惹麻烦。[#db=3] [ID:c02_6偷听对话_癞子_1_fx]
李兰: 那你说说,都看到什么啦? [#db=-5] [ID:c02_6偷听对话_李氏_2_fx]
王守义: 小声点,让人听见了倒惹麻烦。 [ID:c02_6偷听对话_癞子_1_fx]
李兰: 那你说说,都看到什么啦?[ID:c02_6偷听对话_李氏_2_fx]
王守义: 不好说,那里头弯弯绕绕的,我得找个时间再去看一眼。 [ID:c02_6偷听对话_癞子_2_fx]
王守义: 对了,你改天撺个局,让方启钊和胖子一块来搓麻,我顺嘴问一道。 [ID:c02_6偷听对话_癞子_3_fx]
王守义: 其余的,不要声张。 [ID:c02_6偷听对话_癞子_4_fx]

View File

@ -10,6 +10,7 @@ keys,zh_CN,_character,_notes,_tags
c01_飘落的寻人启事1,寻人(看不清)年八岁。,,,
c01_飘落的寻人启事2,由(看不清)步行外出,至今未回,遍找无踪。,,,
c01_飘落的寻人启事3,如有知其下落者(看不清)备有重谢,绝不失言。,,,
c02_青岛啤酒详情,系最好最廉之酒,并且每星期有新货到埠,,,
tdb119a3714,据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。,,,
ta750647b12,《申报》,,,
t736cca4563,民国五年一月十三日,,,

1 keys zh_CN _character _notes _tags
10 c01_飘落的寻人启事1 寻人(看不清)年八岁。
11 c01_飘落的寻人启事2 由(看不清)步行外出,至今未回,遍找无踪。
12 c01_飘落的寻人启事3 如有知其下落者(看不清)备有重谢,绝不失言。
13 c02_青岛啤酒详情 系最好最廉之酒,并且每星期有新货到埠
14 tdb119a3714 据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。
15 ta750647b12 《申报》
16 t736cca4563 民国五年一月十三日

View File

@ -5,6 +5,11 @@
如有知其下落者(看不清)备有重谢,绝不失言。 [ID:c01_飘落的寻人启事3]
=> END
~ c02_青岛啤酒
系最好最廉之酒,并且每星期有新货到埠 [ID:c02_青岛啤酒详情]
=> END
~ c02_鼠疫海报
据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。[ID:tdb119a3714]
《申报》 [ID:ta750647b12]

View File

@ -26,6 +26,7 @@ ui_auto_saved,自动保存成功,,,,,Auto save successful
ui_press_e,按 E 与场景互动,,,,,Press E to interact
ui_press_q_to_exit,按 Q 可退出,,,,,
ui_use_prop,按 E 使用道具,,,,,Press E to use prop
ui_left_mouse_shave,按住鼠标拖拽可刮开海报,,,,,
ui_important_item_update,重要物品已更新(按 B 打开背包),,,,,
ui_switch_prop,点击图标可切换道具(或按 Z/C,,,,,
ui_press_shift,按住 Shift 奔跑,,,,,
@ -54,7 +55,7 @@ prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=
prop_院长的信_说明,浦育院院长秦阳<br>民国21年11月20日<br>致吕萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国十九年十月十五日<br>公寓地址 芦昌路26弄3号,,,,,
prop_火柴,火柴,,,[#texture=c02/火柴.png],,
prop_小猫玩具的脑袋,小猫玩具的脑袋,,,[#texture=c02/新小猫头.png],,
prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png],,
prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png],,
prop_小猫玩具完整,小猫玩具,,,[#texture=c02/新小猫全身.png],,
prop_撕下的照片上,撕下的照片(上),,,[#texture=c02/照片_上.png],,
prop_老虎钳,老虎钳,,,[#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png],,
@ -120,6 +121,9 @@ c02_院子_算命摊位,算命的摊位?,,,,,
c02_院子_要下雨,好像要下雨了?,,,,,
c02_保卫科花名册os,芦昌公寓居民登记簿,黄国栋记。,,,,,
c02_一楼楼道被挡住,被挡住了,,,,,
c02_描述垃圾通道,飘着一股血气,又酸又腥。,,,,,
c02_敲门_肉掉落,楼道有东西掉下来了?,,,,,
c02_敲门_老鼠叼肉,刚刚这里有块肉不见了?,,,,,
c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...,,,,,
c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,,
c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
26 ui_press_e 按 E 与场景互动 Press E to interact
27 ui_press_q_to_exit 按 Q 可退出
28 ui_use_prop 按 E 使用道具 Press E to use prop
29 ui_left_mouse_shave 按住鼠标拖拽可刮开海报
30 ui_important_item_update 重要物品已更新(按 B 打开背包)
31 ui_switch_prop 点击图标可切换道具(或按 Z/C)
32 ui_press_shift 按住 Shift 奔跑
55 prop_院长的信_说明 浦育院院长秦阳<br>民国21年11月20日<br>致吕萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国十九年十月十五日<br>公寓地址 芦昌路26弄3号
56 prop_火柴 火柴 [#texture=c02/火柴.png]
57 prop_小猫玩具的脑袋 小猫玩具的脑袋 [#texture=c02/新小猫头.png]
58 prop_无头小猫玩具 无头小猫玩具 [#texture=c02/新小猫身体.png] [#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png]
59 prop_小猫玩具完整 小猫玩具 [#texture=c02/新小猫全身.png]
60 prop_撕下的照片上 撕下的照片(上) [#texture=c02/照片_上.png]
61 prop_老虎钳 老虎钳 [#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png]
121 c02_院子_要下雨 好像要下雨了?
122 c02_保卫科花名册os 芦昌公寓居民登记簿,黄国栋记。
123 c02_一楼楼道被挡住 被挡住了
124 c02_描述垃圾通道 飘着一股血气,又酸又腥。
125 c02_敲门_肉掉落 楼道有东西掉下来了?
126 c02_敲门_老鼠叼肉 刚刚这里有块肉不见了?
127 c02_瞎子卧室_八卦图 「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...
128 c02_瞎子卧室_血脚印 这画上的脚印和刚刚看到的一样。
129 c02_瞎子卧室_十字架 院长房间里也有一个类似的十字架。

View File

@ -23,6 +23,7 @@
按 E 与场景互动 [ID:ui_press_e]
按 Q 可退出 [ID:ui_press_q_to_exit]
按 E 使用道具 [ID:ui_use_prop]
按住鼠标拖拽可刮开海报 [ID:ui_left_mouse_shave]
重要物品已更新(按 B 打开背包) [ID:ui_important_item_update]
点击图标可切换道具(或按 Z/C [ID:ui_switch_prop]
按住 Shift 奔跑 [ID:ui_press_shift]
@ -165,6 +166,10 @@
芦昌公寓居民登记簿,黄国栋记。 [ID:c02_保卫科花名册os]
# c02 内侧楼道
被挡住了 [ID:c02_一楼楼道被挡住]
飘着一股血气,又酸又腥。 [ID:c02_描述垃圾通道]
# c02 敲门_老鼠叼肉
楼道有东西掉下来了? [ID:c02_敲门_肉掉落]
刚刚这里有块肉不见了? [ID:c02_敲门_老鼠叼肉]
# 瞎子卧室
「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图]
这画上的脚印和刚刚看到的一样。 [ID:c02_瞎子卧室_血脚印]

View File

@ -2910,31 +2910,67 @@ animations = [{
"duration": 1.0,
"texture": ExtResource("578_rneg4")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("579_pwgpx")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("580_y13bn")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("581_cs3vs")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("582_wm8vb")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("583_8ghmx")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("582_wm8vb")
}, {
"duration": 1.5,
"texture": ExtResource("583_8ghmx")
}, {
"duration": 1.5,
"texture": ExtResource("582_wm8vb")
}, {
"duration": 1.5,
"texture": ExtResource("583_8ghmx")
}, {
"duration": 1.5,
"texture": ExtResource("582_wm8vb")
}, {
"duration": 1.5,
"texture": ExtResource("583_8ghmx")
}, {
"duration": 1.5,
"texture": ExtResource("582_wm8vb")
}, {
"duration": 1.5,
"texture": ExtResource("583_8ghmx")
}, {
"duration": 1.5,
"texture": ExtResource("582_wm8vb")
}, {
"duration": 1.5,
"texture": ExtResource("583_8ghmx")
}, {
"duration": 1.5,
"texture": ExtResource("582_wm8vb")
}, {
"duration": 1.5,
"texture": ExtResource("583_8ghmx")
}, {
"duration": 1.5,
"texture": ExtResource("584_81b6k")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("585_81b6k")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("586_7slog")
}, {
"duration": 1.0,
"duration": 1.5,
"texture": ExtResource("587_gr680")
}, {
"duration": 1.0,

View File

@ -86,6 +86,7 @@ region_rect = Rect2(22, 38, 40, 30)
[sub_resource type="FontVariation" id="FontVariation_d3ufv"]
fallbacks = Array[Font]([ExtResource("1_u1bqr")])
base_font = ExtResource("2_kajgs")
spacing_bottom = 1
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ujvfm"]

View File

@ -55,6 +55,9 @@ func _init() -> void:
prop_inventory_xxdie = PropInventory.new()
if not prop_inventory_xxxdie:
prop_inventory_xxxdie = PropInventory.new()
prop_inventory_xxdie.owner = "小小蝶"
prop_inventory_xxxdie.owner = "小小小蝶"
prop_inventory.owner = "default"
func ground_archive(scene_name := current_scene) -> GroundArchive:

View File

@ -15,11 +15,8 @@ func c02_cat_play_with_door():
if knocking:
return
knocking = true
var knock_stream = preload("uid://7of24bqow07e")
var knock_stream = preload("uid://6q5qi1qon35r")
AudioManager.play_sfx(knock_stream)
SceneManager.freeze_player(1.5, 6, true)
await get_tree().create_timer(0.8).timeout
AudioManager.play_sfx(knock_stream)
await get_tree().create_timer(0.3).timeout
AudioManager.play_sfx(knock_stream)
await get_tree().create_timer(0.5).timeout
await get_tree().create_timer(1.5).timeout
knocking = false

View File

@ -182,7 +182,7 @@ space={
[internationalization]
locale/translations=PackedStringArray("res://asset/dialogue/c01.zh_CN.translation", "res://asset/dialogue/c02.zh_CN.translation", "res://asset/dialogue/inspect_content.zh_CN.translation", "res://asset/dialogue/item_description.zh_CN.translation", "res://asset/dialogue/names.zh_CN.translation", "res://asset/dialogue/npc.zh_CN.translation", "res://asset/dialogue/c01.zh_SH.translation", "res://asset/dialogue/纯中文_无需本地化.zh_CN.translation")
locale/translations=PackedStringArray("res://asset/dialogue/c01.zh_CN.translation", "res://asset/dialogue/c02.zh_CN.translation", "res://asset/dialogue/inspect_content.zh_CN.translation", "res://asset/dialogue/item_description.zh_CN.translation", "res://asset/dialogue/names.zh_CN.translation", "res://asset/dialogue/npc.zh_CN.translation", "res://asset/dialogue/c01.zh_SH.translation", "res://asset/dialogue/纯中文_无需本地化.zh_CN.translation", "res://asset/dialogue/c01.en.translation", "res://asset/dialogue/c03.zh_CN.translation", "res://asset/dialogue/c04.zh_CN.translation", "res://asset/dialogue/c05.zh_CN.translation", "res://asset/dialogue/c06.zh_CN.translation", "res://asset/dialogue/item_description.en.translation", "res://asset/dialogue/item_description.zh_SH.translation")
locale/translations_pot_files=PackedStringArray("res://asset/dialogue/item_description.dialogue", "res://asset/dialogue/c01.dialogue", "res://asset/dialogue/c02.dialogue", "res://asset/dialogue/inspect_content.dialogue", "res://asset/dialogue/npc.dialogue", "res://asset/dialogue/c03.dialogue", "res://asset/dialogue/c04.dialogue", "res://asset/dialogue/c05.dialogue", "res://asset/dialogue/c06.dialogue", "res://asset/dialogue/纯中文_无需本地化.dialogue")
locale/test="zh-Hans"
locale/fallback="zh"

View File

@ -23,9 +23,12 @@ func _ready() -> void:
func _close_up_interacted() -> void:
if interacted_times == 1 and first_interact_os_key:
SceneManager.freeze_player(0)
sign_mark.display_sign = false
var tween = await SceneManager.pop_os_with_str(first_interact_os_key)
tween.tween_interval(0.5)
tween.tween_callback(display)
tween.tween_callback(func(): sign_mark.display_sign = true)
else:
display()

View File

@ -11,7 +11,11 @@ signal sign_mark_offset_updated
enum { STATUS_NORAML, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSPECTING_NOTES }
@export var enabled := true:
set(val):
enabled = val
if is_node_ready() and not Engine.is_editor_hint():
sign_mark.enabled = val
# sign_mark 节点在 ready 时会直接读取
@export var sign_mark_offset := Vector2.ZERO:
set(val):
@ -28,7 +32,6 @@ enum { STATUS_NORAML, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSP
notify_property_list_changed()
var content_key: String = ""
@onready var sign_mark = %Sign as Sign
@onready var area2d = %Area2D as Area2D
@ -58,6 +61,7 @@ var tried_times: int:
if tried_times >= 1 and sign_mark:
sign_mark.sprite2d.texture = note_sign_texture
func _ready() -> void:
$InspectLayer.layer = GlobalConfig.CANVAS_LAYER_PROP_INSPECTOR
container.modulate.a = 0.0
@ -67,7 +71,7 @@ func _ready() -> void:
cover_rect.texture = texture_cover
if Engine.is_editor_hint():
return
sign_mark.enabled = enabled
# setup default value
ground_archive = ArchiveManager.archive.ground_archive()
tried_times = ground_archive.get_value(name, "tried_times", 0)

View File

@ -8,15 +8,12 @@
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_do8tr"]
[ext_resource type="Texture2D" uid="uid://dwgxa5j6602vv" path="res://asset/art/ui/prop/inspect文本衬底蒙版.png" id="6_q18ff"]
[ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="7_ianbs"]
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop/inspect背景遮罩.png" id="7_xawjo"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4fuic"]
resource_local_to_scene = true
size = Vector2(20, 70)
[sub_resource type="LabelSettings" id="LabelSettings_c3c2j"]
line_spacing = 1.0
font_size = 11
[node name="LocalInspectable" type="Sprite2D"]
script = ExtResource("1_85el0")
note_sign_texture = ExtResource("2_3pauf")
@ -70,6 +67,13 @@ grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="BGMask" type="TextureRect" parent="InspectLayer/Root/Container"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
mouse_filter = 2
texture = ExtResource("7_xawjo")
[node name="Cover" type="TextureRect" parent="InspectLayer/Root/Container"]
unique_name_in_owner = true
layout_mode = 2
@ -84,7 +88,6 @@ z_index = 100
custom_minimum_size = Vector2(130, 0)
layout_mode = 2
size_flags_horizontal = 4
label_settings = SubResource("LabelSettings_c3c2j")
vertical_alignment = 1
autowrap_mode = 3

View File

@ -97,7 +97,6 @@ height = 0.5
[node name="FootstepAudioPlayer" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
volume_db = -8.0
bus = &"game_sfx"
script = ExtResource("5_7mb2q")
metadata/_custom_type_script = "uid://dpnny2y808k71"

View File

@ -42,6 +42,7 @@ func _on_ground_ready() -> void:
if data.flyer_shaven:
flyer.enabled = false
flyer.visible = false
$"../DeployLayer/青岛啤酒".enabled = true
else:
flyer.exit.connect(_on_flyer_exit)
music_box = $"../DeployLayer/Closeup八音盒"
@ -62,6 +63,7 @@ func _oneshot_wind():
func _on_flyer_exit(arg):
if arg:
$"../DeployLayer/青岛啤酒".enabled = true
set_data("flyer_shaven", true)
flyer.enabled = false
flyer.visible = false

View File

@ -1,14 +1,14 @@
[gd_scene load_steps=30 format=3 uid="uid://brck77w81fhvc"]
[gd_scene load_steps=31 format=3 uid="uid://brck77w81fhvc"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_wrr6r"]
[ext_resource type="Script" uid="uid://bfrgnmde3hjn0" path="res://scene/ground/scene/c02/s02_animation.gd" id="2_5p8ev"]
[ext_resource type="PackedScene" uid="uid://byj234hen4btr" path="res://scene/entity/audio/sfx.tscn" id="3_fvldj"]
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="3_fy0o1"]
[ext_resource type="Texture2D" uid="uid://5428j51dwarc" path="res://asset/art/scene/c02/s02_大门过道/bg_过道背景.png" id="3_gjwum"]
[ext_resource type="AudioStream" uid="uid://o7fj0r0fbm1h" path="res://asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav" id="4_36l5t"]
[ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="4_wbif8"]
[ext_resource type="Texture2D" uid="uid://r0n7qy4kr3w2" path="res://asset/art/ui/action_mark/UI场景切换.png" id="5_m1xet"]
[ext_resource type="AudioStream" uid="uid://bew3slewru6j0" path="res://asset/audio/sfx/环境音/第一章/02_进门过道.wav" id="6_36l5t"]
[ext_resource type="Texture2D" uid="uid://ceijv5l0prppa" path="res://asset/art/prop/c02/海报(小)/除鼠双杰.png" id="6_gjwum"]
[ext_resource type="Texture2D" uid="uid://b8pcnqvdddo5g" path="res://asset/art/prop/c02/海报特写/除鼠二杰.png" id="7_jg8g0"]
[ext_resource type="Texture2D" uid="uid://cvgw2mxrlr6io" path="res://asset/art/scene/c02/旧版/s02_走道/ux_进门鼠疫海报yz.png" id="7_wdwbi"]
[ext_resource type="Texture2D" uid="uid://5pl1b7cor715" path="res://asset/art/scene/c02/旧版/s02_走道/e_纸人.png" id="7_xsghn"]
@ -20,6 +20,7 @@
[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/local_inspectable.tscn" id="12_0fckv"]
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="13_ck13g"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="14_jg8g0"]
[ext_resource type="Texture2D" uid="uid://cyctvbeqxqvpb" path="res://asset/art/prop/c02/海报特写/青岛啤酒.png" id="16_vqhm5"]
[ext_resource type="Texture2D" uid="uid://8otjg8gn0m6p" path="res://asset/art/gif/c02_公寓过道/眨眼睛/0.png" id="17_m1xet"]
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="17_mpkj1"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="19_6wwyd"]
@ -64,7 +65,7 @@ data = {
oneshot_animation = ""
[node name="冷飕飕Sfx" parent="Ground/AnimationPlayer" index="0" instance=ExtResource("3_fvldj")]
stream = null
stream = ExtResource("4_36l5t")
mode = "交互与效果音"
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
@ -117,25 +118,30 @@ position = Vector2(177, 42)
hook_os_key = "c02_太暗了"
[node name="海报1" parent="Ground/DeployLayer" index="5" instance=ExtResource("12_0fckv")]
position = Vector2(211, -33)
texture = ExtResource("6_gjwum")
position = Vector2(203, -31)
sign_mark_offset = Vector2(-1.58, 8.6)
content_centered = true
texture_cover = ExtResource("7_jg8g0")
content_key = "c02_海报1"
[node name="Closeup刮海报" parent="Ground/DeployLayer" index="6" instance=ExtResource("19_6wwyd")]
position = Vector2(252, -27)
position = Vector2(253, -31)
texture = ExtResource("10_jg8g0")
first_interact_os_key = "c02_海报_剪辫子侦探"
packed_scene = ExtResource("11_jg8g0")
[node name="鼠疫海报" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")]
[node name="青岛啤酒" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")]
position = Vector2(253, -31)
enabled = false
texture_cover = ExtResource("16_vqhm5")
content_key = "c02_青岛啤酒"
[node name="鼠疫海报" parent="Ground/DeployLayer" index="8" instance=ExtResource("12_0fckv")]
position = Vector2(439, -29)
texture_cover = ExtResource("7_wdwbi")
content_key = "c02_鼠疫海报"
[node name="Ambush纸人" parent="Ground/DeployLayer" index="8" instance=ExtResource("8_52as8")]
[node name="Ambush纸人" parent="Ground/DeployLayer" index="9" instance=ExtResource("8_52as8")]
visible = false
position = Vector2(113, 44)
texture = ExtResource("7_xsghn")
@ -161,13 +167,13 @@ stream = ExtResource("11_u68d7")
bus = &"game_sfx"
script = ExtResource("14_jg8g0")
[node name="Ambush杂物堆" parent="Ground/DeployLayer" index="9" instance=ExtResource("8_52as8")]
[node name="Ambush杂物堆" parent="Ground/DeployLayer" index="10" instance=ExtResource("8_52as8")]
position = Vector2(387, 66)
trigger_mode = "interact"
freeze_time = 1.0
hook_method = "lumber_interacted"
[node name="杂物眨眼睛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="10"]
[node name="杂物眨眼睛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
visible = false
light_mask = 5
position = Vector2(269, 38)
@ -180,34 +186,34 @@ energy = 3.0
range_item_cull_mask = 4
texture = ExtResource("17_m1xet")
[node name="Note老鼠洞" parent="Ground/DeployLayer" index="11" instance=ExtResource("3_fy0o1")]
[node name="Note老鼠洞" parent="Ground/DeployLayer" index="12" instance=ExtResource("3_fy0o1")]
position = Vector2(507, 64)
title_filter = "c02"
note_key = "c02_老鼠洞"
[node name="老鼠拖鞋" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
[node name="老鼠拖鞋" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="13"]
visible = false
position = Vector2(498, 0)
sprite_frames = ExtResource("19_q0axc")
animation = &"老鼠托小鞋子"
[node name="Interactable小鞋子" parent="Ground/DeployLayer" index="13" instance=ExtResource("13_ck13g")]
[node name="Interactable小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("13_ck13g")]
position = Vector2(498, 65)
enabled = false
mute_when_interacted = true
[node name="Ambush推小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("8_52as8")]
[node name="Ambush推小鞋子" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_52as8")]
position = Vector2(525, 61)
one_shot = false
freeze_time = 1.0
hook_method = "check_if_show_shoes"
[node name="煤油灯" parent="Ground/DeployLayer" index="15" instance=ExtResource("17_mpkj1")]
[node name="煤油灯" parent="Ground/DeployLayer" index="16" instance=ExtResource("17_mpkj1")]
position = Vector2(122, -15)
gaslight_energy = 2.0
gaslight_ground_energy = 0.0
[node name="Closeup八音盒" parent="Ground/DeployLayer" index="16" instance=ExtResource("19_6wwyd")]
[node name="Closeup八音盒" parent="Ground/DeployLayer" index="17" instance=ExtResource("19_6wwyd")]
position = Vector2(533, 65)
packed_scene = ExtResource("10_ifae7")

View File

@ -39,6 +39,8 @@ func _on_ground_ready() -> void:
$"../DeployLayer/Ambush偷听对话".enabled = false
eavesdrop_window.visible = false
$"../DeployLayer/Closeup敲门游戏".exit.connect(_on_knock_exit)
counter = $"../DeployLayer/Interactable柜子" as Interactable2D
counter.interacted.connect(_on_counter_interacted)
if ArchiveManager.get_global_value("c02_counter_pushed_out"):
@ -97,10 +99,12 @@ func _on_ground_ready() -> void:
var tween = create_tween()
# 实现重力加速度效果的 y 移动,在 drop_duration 中移动到 final_y
tween.tween_method(drop_shoe.bind(y1, y2), 0.0, 1.0, drop_duration)
await tween.finished
# 落地音效
$"Sfx小鞋落地".play()
tween = create_tween()
tween.tween_property(fg, "modulate:a", 0.0, 1.5)
await tween.finished
#TODO 落地音效
SceneManager.pop_debug_dialog_info("音效", "小鞋子落地")
play("镜头上下运动")
$"../BGSprite2D/无头小蝶".play()
$"../CameraFocusMarker".limit_top -= 1000
@ -127,6 +131,12 @@ func _on_gate_interacted() -> void:
gate.get_node("Wall/CollisionShape2D").disabled = true
func _on_knock_exit(arg):
if arg:
await create_tween().tween_interval(1.0).finished
SceneManager.pop_os_with_str("c02_敲门_肉掉落")
func shocking_lighting() -> void:
var root = $"../DeployLayer/闷雷_纸人闪现" as Node2D
var normal_ppl = root.get_node("排队常人") as Sprite2D

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=76 format=3 uid="uid://djc2uaefhmu7"]
[gd_scene load_steps=78 format=3 uid="uid://djc2uaefhmu7"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0dylx"]
[ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_animation.gd" id="2_dt5aj"]
@ -14,6 +14,7 @@
[ext_resource type="AudioStream" uid="uid://civuwccn6v6yk" path="res://asset/audio/sfx/交互/第一章/sfx_闷雷声.wav" id="6_vddfx"]
[ext_resource type="Texture2D" uid="uid://bxqetnlx0bpv4" path="res://asset/art/scene/c02/门_贴图/1012保卫科.png" id="6_ygnci"]
[ext_resource type="Texture2D" uid="uid://cmm6oxlbl2wps" path="res://asset/art/scene/c02/门_贴图/1013肉铺.png" id="7_c3f8o"]
[ext_resource type="AudioStream" uid="uid://dukcyf5fq4drj" path="res://asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav" id="7_df1yo"]
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="7_em2ma"]
[ext_resource type="Texture2D" uid="uid://bs8bdad5ak0m0" path="res://asset/art/scene/c02/s03_公寓一楼院子/铁门/关闭状态.png" id="7_gd6xp"]
[ext_resource type="Texture2D" uid="uid://b1tnkshmv7r3b" path="res://asset/art/scene/c02/门_贴图/院子房间3.png" id="8_crgo6"]
@ -21,6 +22,7 @@
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="8_xt8j0"]
[ext_resource type="Texture2D" uid="uid://bgpf35bhrkl86" path="res://asset/art/scene/c02/s03_公寓一楼院子/铁门/打开 底层.png" id="9_liq0c"]
[ext_resource type="Texture2D" uid="uid://cvtbiefbffjd7" path="res://asset/art/scene/c02/门_贴图/1015房间.png" id="9_vddfx"]
[ext_resource type="Texture2D" uid="uid://diuh52qo2o6pa" path="res://asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png" id="10_3nako"]
[ext_resource type="PackedScene" uid="uid://dnbutraty2285" path="res://scene/entity/partical/particals_ash_vertical.tscn" id="10_c3f8o"]
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="10_jme4f"]
[ext_resource type="Texture2D" uid="uid://dooaferyy44rs" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_前侧楼梯.png" id="10_ud2jg"]
@ -370,6 +372,12 @@ bus = &"game_sfx"
script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx小鞋落地" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
stream = ExtResource("7_df1yo")
bus = &"game_sfx"
script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="1"]
light_mask = 5
texture = ExtResource("3_sqv8l")
@ -391,7 +399,16 @@ matched_sign_texture = null
position = Vector2(2286, 16)
matched_sign_texture = null
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_00b7a")]
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="2"]
modulate = Color(1, 1, 1, 0)
position = Vector2(1189, 0)
texture = ExtResource("6_d7h4s")
[node name="禁火等墙面文字" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
position = Vector2(955, 5)
texture = ExtResource("10_3nako")
[node name="portal_1" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_00b7a")]
position = Vector2(200, 10)
debug_note = "1012保卫科"
portal_name = "1"
@ -400,7 +417,7 @@ target_portal = "left"
status = "opened"
matched_sign_texture = null
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_00b7a")]
[node name="portal_2" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")]
position = Vector2(928, 7)
debug_note = "一楼内侧过道
"
@ -409,7 +426,7 @@ target_scene = "c02_s05"
target_portal = "left"
matched_sign_texture = null
[node name="Note血迹" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_t48d1")]
[node name="Note血迹" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_t48d1")]
position = Vector2(523, 78)
note_key = "notes_干掉的血迹"
@ -420,7 +437,7 @@ position = Vector2(132, 10)
sprite_frames = ExtResource("4_gd6xp")
animation = &"肉铺门口血迹"
[node name="portal_3" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")]
[node name="portal_3" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_00b7a")]
position = Vector2(1704, 14)
debug_note = "空房间 1014"
portal_name = "3"
@ -429,7 +446,7 @@ target_portal = "left"
status = "opened"
matched_sign_texture = null
[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="6"]
[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="8"]
[node name="灯笼" type="Sprite2D" parent="Ground/DeployLayer/灯笼"]
position = Vector2(1644, -86)
@ -476,7 +493,7 @@ color = Color(1, 0.0980392, 0, 1)
energy = 0.7
texture = SubResource("GradientTexture2D_kyfht")
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="7"]
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="9"]
visible = false
[node name="奠1" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"]
@ -505,7 +522,7 @@ position = Vector2(898, -162)
z_index = 15
position = Vector2(1964, -209)
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="8"]
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="10"]
visible = false
[node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")]
@ -532,16 +549,11 @@ range_layer_max = 2
range_item_cull_mask = 4
texture = SubResource("GradientTexture2D_3nako")
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="9" instance=ExtResource("25_iyaiw")]
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="11" instance=ExtResource("25_iyaiw")]
position = Vector2(1611, 46)
hook_os_key = "c02_院子_要下雨"
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="10"]
modulate = Color(1, 1, 1, 0)
position = Vector2(1189, 0)
texture = ExtResource("6_d7h4s")
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="11" instance=ExtResource("7_em2ma")]
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="12" instance=ExtResource("7_em2ma")]
position = Vector2(809, 75)
sign_mark_offset = Vector2(0, -16.88)
enabled = false
@ -552,7 +564,7 @@ position = Vector2(0, -7)
scale = Vector2(0.15, 0.15)
texture = ExtResource("8_plfv5")
[node name="Interactable铁门" parent="Ground/DeployLayer" index="12" instance=ExtResource("8_xt8j0")]
[node name="Interactable铁门" parent="Ground/DeployLayer" index="13" instance=ExtResource("8_xt8j0")]
light_mask = 5
position = Vector2(1222, 28)
texture = ExtResource("7_gd6xp")
@ -570,7 +582,7 @@ collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Wall"]
shape = SubResource("RectangleShape2D_mdix7")
[node name="Note算命摊位" parent="Ground/DeployLayer" index="13" instance=ExtResource("6_t48d1")]
[node name="Note算命摊位" parent="Ground/DeployLayer" index="14" instance=ExtResource("6_t48d1")]
position = Vector2(725, 45)
note_key = "c02_院子_算命摊位"
@ -578,13 +590,13 @@ note_key = "c02_院子_算命摊位"
position = Vector2(0, 18)
texture = ExtResource("6_1tart")
[node name="煤油灯" parent="Ground/DeployLayer" index="14" instance=ExtResource("10_jme4f")]
[node name="煤油灯" parent="Ground/DeployLayer" index="15" instance=ExtResource("10_jme4f")]
position = Vector2(290, 1)
gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
[node name="煤油灯2" parent="Ground/DeployLayer" index="15" instance=ExtResource("10_jme4f")]
[node name="煤油灯2" parent="Ground/DeployLayer" index="16" instance=ExtResource("10_jme4f")]
position = Vector2(610, 1)
gaslight_texture = ExtResource("11_g0qhj")
ground_light_texture = ExtResource("12_ni5ro")
@ -592,7 +604,7 @@ gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
[node name="煤油灯3" parent="Ground/DeployLayer" index="16" instance=ExtResource("10_jme4f")]
[node name="煤油灯3" parent="Ground/DeployLayer" index="17" instance=ExtResource("10_jme4f")]
position = Vector2(857, 1)
gaslight_texture = ExtResource("13_hw832")
ground_light_texture = ExtResource("14_7pq5y")
@ -600,45 +612,45 @@ gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="17"]
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="18"]
self_modulate = Color(0.739288, 0.739288, 0.739288, 1)
light_mask = 5
z_index = 10
position = Vector2(2062, 60)
texture = ExtResource("21_4n8vm")
[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="18"]
[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="19"]
light_mask = 5
z_index = 10
position = Vector2(1025, 27)
texture = ExtResource("22_3y5s5")
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="19" instance=ExtResource("23_81juy")]
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="20" instance=ExtResource("23_81juy")]
position = Vector2(466, 3)
packed_scene = ExtResource("24_0o4rt")
[node name="Closeup井" parent="Ground/DeployLayer" index="20" instance=ExtResource("23_81juy")]
[node name="Closeup井" parent="Ground/DeployLayer" index="21" instance=ExtResource("23_81juy")]
z_index = 6
position = Vector2(2063, 50)
packed_scene = ExtResource("26_yy4fp")
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="21" instance=ExtResource("25_iyaiw")]
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="22" instance=ExtResource("25_iyaiw")]
position = Vector2(1319, 40)
hook_method = "shocking_lighting"
[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="22" instance=ExtResource("25_iyaiw")]
[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="23" instance=ExtResource("25_iyaiw")]
position = Vector2(1836, 7)
trigger_mode = "interact"
one_shot = false
hook_method = "eavesdrop"
[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="23"]
[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="24"]
position = Vector2(1835, -16)
sprite_frames = SubResource("SpriteFrames_0o4rt")
autoplay = "default"
frame_progress = 0.643855
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="24" instance=ExtResource("35_plfv5")]
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="25" instance=ExtResource("35_plfv5")]
z_index = 10
position = Vector2(2037, 67)
sprite_frames = SubResource("SpriteFrames_kyfht")
@ -664,7 +676,7 @@ position = Vector2(-11, -3)
shape = SubResource("RectangleShape2D_bbhbr")
disabled = true
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="25"]
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="26"]
visible = false
position = Vector2(2154, 60)
@ -729,7 +741,7 @@ collision_mask = 0
shape = SubResource("RectangleShape2D_d7h4s")
disabled = true
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="26"]
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="27"]
visible = false
[node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"]
@ -900,7 +912,7 @@ offset_bottom = -23.0
[node name="CollisionShape2D" parent="Ground/DeployLayer/火灾/Ambush等待的小蝉/Area2D" index="0"]
shape = SubResource("RectangleShape2D_em2ma")
[node name="Interactable柜子" parent="Ground/DeployLayer" index="27" instance=ExtResource("8_xt8j0")]
[node name="Interactable柜子" parent="Ground/DeployLayer" index="28" instance=ExtResource("8_xt8j0")]
visible = false
position = Vector2(1772, 48)
texture = ExtResource("32_cpifc")
@ -916,7 +928,7 @@ animation = &"箱子着火"
autoplay = "箱子着火"
frame_progress = 0.453645
[node name="最终跑路" type="RigidBody2D" parent="Ground/DeployLayer" index="28"]
[node name="最终跑路" type="RigidBody2D" parent="Ground/DeployLayer" index="29"]
visible = false
position = Vector2(2150, 30)
collision_layer = 4

View File

@ -4,8 +4,7 @@ extends AnimationRoot
# 覆盖该方法
func _default_data() -> Dictionary:
return {
}
return {}
func _ready() -> void:
@ -13,28 +12,33 @@ func _ready() -> void:
if Engine.is_editor_hint():
return
var closeup_tin_coin
var closeup_tin_coin
var little_hand
func _on_ground_ready() -> void:
closeup_tin_coin = $"../DeployLayer/Closeup折锡纸" as Closeup2D
if not ArchiveManager.get_global_value("c02_tin_coin_taken"):
closeup_tin_coin.exit.connect(_on_closeup_tin_coin_exited)
little_hand = $"../DeployLayer/小手讨东西"
if little_hand.tried_times == 0:
little_hand.interacted.connect(_on_little_hand_first_interacted, CONNECT_ONE_SHOT)
func _on_little_hand_first_interacted() -> void:
# 9 小手交互,吓摔倒
little_hand.enabled = false
var duration = 3.0
SceneManager.freeze_player(duration, 9)
get_tree().create_timer(1.5).timeout.connect($"Sfx摔倒".play)
await get_tree().create_timer(duration).timeout
SceneManager.release_player()
little_hand.enabled = true
func _on_closeup_tin_coin_exited(arg = null):
if arg == true:
ArchiveManager.set_global_entry("c02_tin_coin_taken", true)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=3 uid="uid://bivc5cdap370p"]
[gd_scene load_steps=21 format=3 uid="uid://bivc5cdap370p"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2jej0"]
[ext_resource type="Script" uid="uid://dmhh4g47bdxxy" path="res://scene/ground/scene/c02/s04_animation.gd" id="2_jyere"]
@ -7,6 +7,7 @@
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ffvrp"]
[ext_resource type="SpriteFrames" uid="uid://c2sjavnptjn" path="res://asset/art/gif/c02_保卫科/c02_保卫科_frames.tres" id="4_svuj3"]
[ext_resource type="Texture2D" uid="uid://bnyf8m63ltgh0" path="res://asset/art/scene/c02/s04_保卫科/l_香.png" id="5_cy26p"]
[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.mp3" id="5_xy3nq"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="6_66gue"]
[ext_resource type="PackedScene" uid="uid://b8i6tqwdvvddy" path="res://scene/ground/script/c02/花名册.tscn" id="6_fvlg0"]
[ext_resource type="Texture2D" uid="uid://cs14llkvr3fg8" path="res://asset/art/scene/c02/s04_保卫科/弹珠墙面涂鸦提示.png" id="6_gk1h4"]
@ -49,6 +50,12 @@ mode = "场景背景音"
"感应玩家操作" = false
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
stream = ExtResource("5_xy3nq")
bus = &"game_sfx"
script = ExtResource("4_ffvrp")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="1"]
light_mask = 5
position = Vector2(47, 2)

View File

@ -47,12 +47,14 @@ func mouse_pick_meat() -> void:
if not pick_meat_amush_allowed:
return
pick_meat_amush_allowed = false
SceneManager.freeze_player(1.5)
SceneManager.freeze_player(2.0)
# 标记为已掉落
ArchiveManager.set_global_entry("c02_meat_dropping", false)
var sprite = $"../DeployLayer/老鼠叼肉"
sprite.visible = true
sprite.play()
await sprite.animation_finished
SceneManager.pop_os_with_str("c02_敲门_老鼠叼肉")
func _on_madman_interacted() -> void:

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=29 format=3 uid="uid://cp8d3ag5nbjq0"]
[gd_scene load_steps=36 format=3 uid="uid://cp8d3ag5nbjq0"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_6w6et"]
[ext_resource type="Script" uid="uid://dydpmjpcvt3v1" path="res://scene/ground/scene/c02/s05_animation.gd" id="2_70lf6"]
@ -21,6 +21,8 @@
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="17_aofps"]
[ext_resource type="SpriteFrames" uid="uid://cvwdqa8gyqj4g" path="res://asset/art/gif/c02_老鼠拖肉/c02_老鼠拖肉_frames.tres" id="17_bk7rf"]
[ext_resource type="Texture2D" uid="uid://d1etd7hr23rir" path="res://asset/art/scene/c02/s05_一楼内侧楼道/e_掉落的肉.png" id="18_bk7rf"]
[ext_resource type="Texture2D" uid="uid://bp84w8keuelyj" path="res://asset/art/scene/c02/s10_空房间/e_蜡烛-sheet.png" id="21_heq1x"]
[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="22_laquj"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_n48fn"]
@ -55,6 +57,42 @@ height = 10
fill = 1
fill_from = Vector2(0.5, 0.5)
[sub_resource type="AtlasTexture" id="AtlasTexture_chbaa"]
atlas = ExtResource("21_heq1x")
region = Rect2(0, 0, 6, 14)
[sub_resource type="AtlasTexture" id="AtlasTexture_th1ek"]
atlas = ExtResource("21_heq1x")
region = Rect2(6, 0, 6, 14)
[sub_resource type="AtlasTexture" id="AtlasTexture_to1d1"]
atlas = ExtResource("21_heq1x")
region = Rect2(12, 0, 6, 14)
[sub_resource type="AtlasTexture" id="AtlasTexture_nx6jy"]
atlas = ExtResource("21_heq1x")
region = Rect2(18, 0, 6, 14)
[sub_resource type="SpriteFrames" id="SpriteFrames_heq1x"]
animations = [{
"frames": [{
"duration": 3.0,
"texture": SubResource("AtlasTexture_chbaa")
}, {
"duration": 3.0,
"texture": SubResource("AtlasTexture_th1ek")
}, {
"duration": 3.0,
"texture": SubResource("AtlasTexture_to1d1")
}, {
"duration": 3.0,
"texture": SubResource("AtlasTexture_nx6jy")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[node name="S05" type="Node2D"]
metadata/_edit_horizontal_guides_ = [98.0]
@ -172,11 +210,16 @@ position = Vector2(394, 26)
title_filter = "c02"
note_key = "c02_一楼楼道被挡住"
[node name="打开的垃圾桶盖" type="Sprite2D" parent="Ground/DeployLayer" index="8"]
[node name="Note垃圾通道" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_8t4w6")]
position = Vector2(660, -1)
title_filter = "c02"
note_key = "c02_描述垃圾通道"
[node name="打开的垃圾桶盖" type="Sprite2D" parent="Ground/DeployLayer" index="9"]
position = Vector2(660, 8)
texture = ExtResource("15_s2g5k")
[node name="Interactable粘鼠板" parent="Ground/DeployLayer" index="9" instance=ExtResource("13_uj0pt")]
[node name="Interactable粘鼠板" parent="Ground/DeployLayer" index="10" instance=ExtResource("13_uj0pt")]
position = Vector2(604, 81)
disable_prop_after_interacted = true
interacted_texture = ExtResource("16_jknyg")
@ -199,18 +242,18 @@ position = Vector2(0, 5)
sprite_frames = ExtResource("17_bk7rf")
animation = &"老鼠被黏住死亡"
[node name="Ambush老鼠叼肉" parent="Ground/DeployLayer" index="10" instance=ExtResource("8_rcuxq")]
position = Vector2(592, 81)
[node name="Ambush老鼠叼肉" parent="Ground/DeployLayer" index="11" instance=ExtResource("8_rcuxq")]
position = Vector2(585, 80)
one_shot = false
hook_method = "mouse_pick_meat"
[node name="老鼠叼肉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
[node name="老鼠叼肉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
visible = false
position = Vector2(687, 69)
sprite_frames = ExtResource("17_bk7rf")
animation = &"奇怪的肉被拖进去动画"
[node name="Pickable掉落的肉" parent="Ground/DeployLayer" index="12" instance=ExtResource("17_aofps")]
[node name="Pickable掉落的肉" parent="Ground/DeployLayer" index="13" instance=ExtResource("17_aofps")]
visible = false
position = Vector2(668, 85)
texture = ExtResource("18_bk7rf")
@ -218,6 +261,19 @@ sign_mark_offset = Vector2(0, -9.86)
enabled = false
prop_key = "prop_奇怪的肉"
[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="14"]
self_modulate = Color(0.611765, 0.611765, 0.611765, 1)
position = Vector2(627.8, 79.6172)
sprite_frames = SubResource("SpriteFrames_heq1x")
autoplay = "default"
[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer" index="15"]
position = Vector2(627.8, 66.8)
color = Color(0.999971, 0.912551, 0.842208, 1)
energy = 1.2
texture = ExtResource("22_laquj")
texture_scale = 0.3
[node name="MainPlayer" parent="Ground" index="4"]
position = Vector2(41, 98)

View File

@ -38,7 +38,10 @@ func _on_ground_ready() -> void:
if gaslight.interacted_times > 0:
ambush_lookback.enabled = true
else:
gaslight.interacted.connect(func(): ambush_lookback.enabled = true)
gaslight.interacted.connect(func():
ambush_lookback.enabled = true
$"../DeployLayer/癞子偷窥/Sfx2D癞子呼吸".play()
)
if looked_back:
gaslight.enabled = false
gaslight.visible = false
@ -163,6 +166,9 @@ func look_back_hole():
tween.tween_property(camera, "limit_right", room_camera_r_limit + 100, 1.0)
tween.parallel().tween_property(camera, "zoom_ratio", 1.1, 1.0)
tween.tween_callback(func(): occluder.visible = false)
tween.tween_interval(0.5)
tween.tween_callback($"Sfx癞子对视惊吓".play)
tween.tween_interval(0.5)
tween.tween_callback(_on_shocked)
tween.tween_property(darker_light, "energy", 1.0, 3.0)
tween.tween_property(camera, "limit_right", room_camera_r_limit, 1.0)
@ -171,10 +177,11 @@ func look_back_hole():
func _on_shocked():
SceneManager.pop_debug_dialog_info("音效", "惊吓")
$"Sfx癞子对视惊吓".play()
SceneManager.freeze_player(0, 11, true)
SceneManager.get_player().animation_finished.connect(_on_shocked_finished, CONNECT_ONE_SHOT)
await create_tween().tween_interval(1.1).finished
$"Sfx吹灭蜡烛".play()
await create_tween().tween_interval(0.6).finished
$"Sfx摔倒".play()
# 熄火
gaslight.enabled = false
gaslight.visible = false
@ -186,6 +193,7 @@ func _on_shocked():
light.energy = 0
create_tween().tween_property(light, "energy", 0.6, 1.5)
$"../DeployLayer/Closeup画".enabled = false
$"../DeployLayer/癞子偷窥/Sfx2D癞子呼吸".stop()
func _on_shocked_finished():

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=34 format=3 uid="uid://ce2vyyg2reg52"]
[gd_scene load_steps=39 format=3 uid="uid://ce2vyyg2reg52"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"]
[ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"]
@ -7,9 +7,12 @@
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_1ws4i"]
[ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="4_gx8oy"]
[ext_resource type="AudioStream" uid="uid://dthm5gd1sc16" path="res://asset/audio/sfx/环境音/第一章/房间内部场景2.wav" id="4_vjjde"]
[ext_resource type="AudioStream" uid="uid://dk3e1w3n2snur" path="res://asset/audio/sfx/旧版/c02/纸人出现.mp3" id="5_0qeqe"]
[ext_resource type="Texture2D" uid="uid://b5pwb4fm46sad" path="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png" id="5_f6mma"]
[ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_vjjde"]
[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.mp3" id="6_nnqdd"]
[ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="7_j6ltr"]
[ext_resource type="AudioStream" uid="uid://dnk2cba1bwr4s" path="res://asset/audio/sfx/交互/第一章/风吹灭火.ogg" id="7_quq80"]
[ext_resource type="Texture2D" uid="uid://dtyg0nugb2tnf" path="res://asset/art/ui/action_mark/UI探索.png" id="8_dkqw0"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="10_a48k2"]
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="10_f6mma"]
@ -24,6 +27,8 @@
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="14_1ws4i"]
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="17_5fx68"]
[ext_resource type="Texture2D" uid="uid://dcot0rove27rd" path="res://asset/art/scene/c02/s08_瞎子卧室/e_粘鼠板.png" id="18_dkqw0"]
[ext_resource type="AudioStream" uid="uid://mff0udi3glb4" path="res://asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav" id="20_ujhuc"]
[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="21_0qeqe"]
[sub_resource type="Animation" id="Animation_f6mma"]
length = 0.001
@ -112,17 +117,7 @@ data = {
}
oneshot_animation = ""
[node name="Sfx癞子对视惊吓" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
autoplay = true
bus = &"game_sfx"
script = ExtResource("3_t3h08")
mode = "场景背景音"
"自动开始" = true
"循环播放" = true
"感应玩家操作" = true
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
stream = ExtResource("4_vjjde")
autoplay = true
bus = &"game_sfx"
@ -133,6 +128,25 @@ mode = "场景背景音"
"感应玩家操作" = false
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx癞子对视惊吓" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
stream = ExtResource("5_0qeqe")
volume_db = 2.0
bus = &"game_sfx"
script = ExtResource("3_t3h08")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
stream = ExtResource("6_nnqdd")
bus = &"game_sfx"
script = ExtResource("3_t3h08")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx吹灭蜡烛" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"]
stream = ExtResource("7_quq80")
bus = &"game_sfx"
script = ExtResource("3_t3h08")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="1"]
texture = ExtResource("3_iares")
@ -279,6 +293,16 @@ sprite_frames = ExtResource("13_t3h08")
animation = &"c02_王癞子_蹲着呼吸"
autoplay = "c02_王癞子_蹲着呼吸"
[node name="Sfx2D癞子呼吸" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/癞子偷窥"]
stream = ExtResource("20_ujhuc")
volume_db = -5.0
max_distance = 700.0
attenuation = 2.0
bus = &"game_sfx"
script = ExtResource("21_0qeqe")
loop = true
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Ambush回看洞口" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_f6mma")]
position = Vector2(522, 31)
enabled = false
@ -346,6 +370,9 @@ energy = 0.5
range_item_cull_mask = 8
texture = SubResource("GradientTexture2D_bp5fr")
[node name="AudioListener2D" type="AudioListener2D" parent="Ground/MainPlayer" index="7"]
current = true
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(11, 148)
texture = ExtResource("4_gx8oy")

View File

@ -124,20 +124,20 @@ sprite_frames = SubResource("SpriteFrames_th1ek")
autoplay = "default"
frame_progress = 0.72851
[node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/小蜡烛"]
position = Vector2(0, -12.8172)
[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer" index="4"]
position = Vector2(271, 60.1423)
color = Color(0.999971, 0.912551, 0.842208, 1)
energy = 1.2
texture = ExtResource("15_e24j0")
texture_scale = 0.3
[node name="血脚印" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="4"]
[node name="血脚印" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="5"]
position = Vector2(269, 36.4798)
sprite_frames = ExtResource("15_2j5dr")
animation = &"空房间血脚印"
frame = 8
[node name="Pickable小猫玩具脑袋" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_27dvh")]
[node name="Pickable小猫玩具脑袋" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_27dvh")]
position = Vector2(362, 67.0439)
enabled = false
visible_follow_enabled = false
@ -150,27 +150,27 @@ rotation = -1.51912
scale = Vector2(0.34, 0.34)
texture = ExtResource("8_3ftnp")
[node name="Interactable柜子" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_ylhfc")]
[node name="Interactable柜子" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_ylhfc")]
position = Vector2(364, 55)
texture = ExtResource("6_mty8e")
enabled = false
mute_when_interacted = true
one_shot = false
[node name="大头小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="7"]
[node name="大头小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="8"]
self_modulate = Color(0.80687, 0.80687, 0.80687, 1)
position = Vector2(351, 29.5782)
scale = Vector2(0.9, 0.9)
sprite_frames = ExtResource("15_2j5dr")
animation = &"坐箱子小婵丢人偶"
[node name="Interactable小蝉" parent="Ground/DeployLayer" index="8" instance=ExtResource("5_ylhfc")]
[node name="Interactable小蝉" parent="Ground/DeployLayer" index="9" instance=ExtResource("5_ylhfc")]
position = Vector2(350, 15.7751)
mute_when_interacted = true
disable_prop_after_interacted = true
prop_key = "prop_木头人偶"
[node name="Pickable木头人偶" parent="Ground/DeployLayer" index="9" instance=ExtResource("6_27dvh")]
[node name="Pickable木头人偶" parent="Ground/DeployLayer" index="10" instance=ExtResource("6_27dvh")]
z_index = 7
position = Vector2(423, 97.6081)
sign_mark_offset = Vector2(0, -7.09)
@ -183,13 +183,13 @@ rotation = -1.19178
scale = Vector2(0.25, 0.25)
texture = ExtResource("12_27dvh")
[node name="煤油灯" parent="Ground/DeployLayer" index="10" instance=ExtResource("13_27dvh")]
[node name="煤油灯" parent="Ground/DeployLayer" index="11" instance=ExtResource("13_27dvh")]
position = Vector2(373, -13.8031)
gaslight_energy = 2.0
gaslight_ground_energy = 2.0
mute_when_interacted = false
[node name="拼接小猫玩具" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
[node name="拼接小猫玩具" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
visible = false
light_mask = 32
z_index = 10
@ -218,7 +218,7 @@ position = Vector2(3, -0.98594)
range_item_cull_mask = 32
texture = ExtResource("15_e24j0")
[node name="Ambush首次进入血脚印" parent="Ground/DeployLayer" index="12" instance=ExtResource("14_3ftnp")]
[node name="Ambush首次进入血脚印" parent="Ground/DeployLayer" index="13" instance=ExtResource("14_3ftnp")]
position = Vector2(192, 38.4517)
freeze_time = 0.1
hook_method = "first_enter_ambush"

View File

@ -30,6 +30,7 @@ func _intro():
layer.disable_crawl = true
var duration = layer.show_cat_duration
await get_tree().create_timer(duration).timeout
$"Sfx钻盒子演出".play()
anim.play()
var camera = SceneManager.get_camera_marker()
create_tween().tween_property(camera, "force_offset", Vector2.ZERO, 1.0)

View File

@ -1,8 +1,10 @@
[gd_scene load_steps=6 format=3 uid="uid://da4cuf2i3nwpj"]
[gd_scene load_steps=8 format=3 uid="uid://da4cuf2i3nwpj"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ngo77"]
[ext_resource type="Script" uid="uid://cyd1xo106unfk" path="res://scene/ground/scene/c02/s12_animation.gd" id="2_7ah3n"]
[ext_resource type="AudioStream" uid="uid://bma77k6n4hwle" path="res://asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav" id="3_72mc1"]
[ext_resource type="Texture2D" uid="uid://yn00uls1kvn3" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png" id="3_oskpk"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_r3hvb"]
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="4_vv3sh"]
[ext_resource type="SpriteFrames" uid="uid://b85gyfhk1mg6r" path="res://asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres" id="5_ycgng"]
@ -18,6 +20,12 @@ footstep_type = "盒子猫"
script = ExtResource("2_7ah3n")
oneshot_animation = ""
[node name="Sfx钻盒子演出" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
stream = ExtResource("3_72mc1")
bus = &"game_sfx"
script = ExtResource("4_r3hvb")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="1"]
texture = ExtResource("3_oskpk")
offset = Vector2(0, -103.7)

View File

@ -18,24 +18,18 @@ func _on_ground_ready() -> void:
func knock_light_door():
var knock_stream = preload("uid://7of24bqow07e")
var knock_stream = preload("uid://6q5qi1qon35r")
var player = SceneManager.get_player()
# 一直循环下去
for _i in range(100):
SceneManager.freeze_player(0, 6)
await get_tree().create_timer(0.6).timeout
AudioManager.play_sfx(knock_stream)
SceneManager.freeze_player(1.5, 6, true)
await get_tree().create_timer(0.5).timeout
# 被抓时打断
if not player.visible or player.hide_sprite:
_outtro_show()
break
AudioManager.play_sfx(knock_stream)
await get_tree().create_timer(0.2).timeout
# 被抓时打断
if not player.visible or player.hide_sprite:
_outtro_show()
break
AudioManager.play_sfx(knock_stream)
await get_tree().create_timer(0.2).timeout
await get_tree().create_timer(0.5).timeout
# 被抓时打断
if not player.visible or player.hide_sprite:
_outtro_show()

View File

@ -8,6 +8,7 @@ signal exit
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
flyer.shaven.connect(_on_shaven)
SceneManager.pop_center_notification(tr("ui_left_mouse_shave"))
var exiting = false

View File

@ -42,9 +42,9 @@ expand_mode = 5
stretch_mode = 5
[node name="刮刮乐" parent="." instance=ExtResource("3_qwopf")]
offset_left = -136.0
offset_left = -102.0
offset_top = -116.0
offset_right = 69.0
offset_right = 103.0
offset_bottom = 124.0
texture = SubResource("ImageTexture_qwopf")
stretch_mode = 5

View File

@ -101,13 +101,22 @@ func _on_ground_ready():
var footstep_count := 0
var signed_x_diff = 10000
func _on_footstep_timer_timeout() -> void:
sfx_footstep.play()
footstep_count += 1
if footstep_count % 2 == 0:
# shake camera
camera.shake_camera(4.0, 5.0)
if abs(signed_x_diff) > 250:
if footstep_count % 3 == 0:
sfx_footstep.play()
elif abs(signed_x_diff) > 100:
if footstep_count % 2 == 0:
sfx_footstep.play()
else:
sfx_footstep.play()
# 启用/禁用脚步声
@ -181,7 +190,7 @@ func _physics_process(delta: float) -> void:
var player_pos = player.global_position
# 玩家到猪头怪面前的距离(有符号)
var signed_x_diff = player_pos.x - global_position.x
signed_x_diff = player_pos.x - global_position.x
# 默认向左, flip_h 后向右
if not sprite2d.flip_h:
signed_x_diff *= -1

View File

@ -1,14 +1,17 @@
[gd_scene load_steps=6 format=3 uid="uid://dewbg4phd8c17"]
[gd_scene load_steps=8 format=3 uid="uid://dewbg4phd8c17"]
[ext_resource type="Script" uid="uid://tn7sfe0qmix2" path="res://scene/ground/script/c02/追猫猪头怪.gd" id="1_lrjfo"]
[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="2_35vtd"]
[ext_resource type="AudioStream" uid="uid://dd2whbtg7ah8a" path="res://asset/audio/sfx/脚步/猫咪走路2.wav" id="2_e62rv"]
[ext_resource type="AudioStream" uid="uid://djc818l7b4oif" path="res://asset/audio/sfx/脚步/sfx_猪头走路1.wav" id="2_icl85"]
[ext_resource type="AudioStream" uid="uid://0pm6s7jdo5ca" path="res://asset/audio/sfx/脚步/sfx_猪头走路2.wav" id="3_q3g2s"]
[ext_resource type="SpriteFrames" uid="uid://b85gyfhk1mg6r" path="res://asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres" id="4_3sbui"]
[ext_resource type="AudioStream" uid="uid://dkadc7ewletgn" path="res://asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav" id="4_3ypo7"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_3sbui"]
playback_mode = 1
streams_count = 1
stream_0/stream = ExtResource("2_e62rv")
streams_count = 2
stream_0/stream = ExtResource("2_icl85")
stream_1/stream = ExtResource("3_q3g2s")
[node name="追猫猪头怪" type="Node2D"]
script = ExtResource("1_lrjfo")
@ -21,6 +24,16 @@ bus = &"game_sfx"
script = ExtResource("2_35vtd")
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Sfx喘气" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("4_3ypo7")
autoplay = true
max_distance = 800.0
attenuation = 1.7411
bus = &"game_sfx"
script = ExtResource("2_35vtd")
loop = true
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
z_index = 20
sprite_frames = ExtResource("4_3sbui")

View File

@ -128,5 +128,5 @@ unique_name_in_owner = true
light_mask = 9
scale = Vector2(0.5, 0.5)
sprite_frames = ExtResource("2_3w63u")
animation = &"c00_吕萍_idle_right"
animation = &"c02_吕萍_被吓到后退"
offset = Vector2(0, -100)

View File

@ -2,6 +2,7 @@ class_name PropInventory extends Resource
signal current_item_changed(prop_key: String)
@export var owner := ""
@export var enabled_items := []
@export var current_index := 0:
set(val):

View File

@ -15,8 +15,8 @@ signal exited
@onready var diary_btn = %DiaryBtn as Button
# 音量 DB 偏移
var sfx_db_offset := 6.0
var dialog_db_offset := -20.0
var sfx_db_offset := 0.0
var dialog_db_offset := 0.0
func _ready():
layer = GlobalConfig.CANVAS_LAYER_SETTINGS
@ -103,6 +103,8 @@ func _on_language_options_selected(id: int) -> void:
lang = "zh_CN"
printerr("Unknown language id: ", id)
GlobalConfigManager.config.language = id
if GlobalConfig.DEBUG:
print("set language to: ", lang)
TranslationServer.set_locale(lang)