Compare commits

...

4 Commits

75 changed files with 1250 additions and 203 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://mtwjy24fpmp6"
path="res://.godot/imported/流血的洞.png-a53e0995c71280d8306768eefbcc98a3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_小手/流血的洞.png"
dest_files=["res://.godot/imported/流血的洞.png-a53e0995c71280d8306768eefbcc98a3.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,4 +1,4 @@
[gd_resource type="SpriteFrames" load_steps=73 format=3 uid="uid://div8kcn7gu78r"]
[gd_resource type="SpriteFrames" load_steps=75 format=3 uid="uid://div8kcn7gu78r"]
[ext_resource type="Texture2D" uid="uid://ci0lh102m7myw" path="res://asset/art/gif/c03_瞎子新卧室/瞎子_坐拿烟_左呼吸/0.png" id="1_5viyw"]
[ext_resource type="Texture2D" uid="uid://chptmqdm7c4wd" path="res://asset/art/gif/c03_瞎子新卧室/瞎子_咳嗽吐血/0.png" id="1_a0gqt"]
@ -30,6 +30,8 @@
[ext_resource type="Texture2D" uid="uid://cqvhc7emob3r2" path="res://asset/art/gif/c03_瞎子新卧室/小猫挠墙/2.png" id="13_omra6"]
[ext_resource type="Texture2D" uid="uid://r117spkalnsd" path="res://asset/art/gif/c03_瞎子新卧室/瞎子_咳嗽吐血/13.png" id="14_kpr4a"]
[ext_resource type="Texture2D" uid="uid://dwe8gbny3488v" path="res://asset/art/gif/c03_瞎子新卧室/小猫挠墙/3.png" id="14_mgqqr"]
[ext_resource type="Texture2D" uid="uid://xw0akfvfh1d" path="res://asset/art/gif/c03_瞎子新卧室/小猫呼吸_left/1.png" id="14_omra6"]
[ext_resource type="Texture2D" uid="uid://bg754vafpitve" path="res://asset/art/gif/c03_瞎子新卧室/小猫呼吸_left/2.png" id="15_mgqqr"]
[ext_resource type="Texture2D" uid="uid://ctri0kcjfyacl" path="res://asset/art/gif/c03_瞎子新卧室/瞎子_咳嗽吐血/14.png" id="15_sprph"]
[ext_resource type="Texture2D" uid="uid://dx84h7qxo543c" path="res://asset/art/gif/c03_瞎子新卧室/小猫挠墙/4.png" id="15_vol74"]
[ext_resource type="Texture2D" uid="uid://c42p8e1gtnbnq" path="res://asset/art/gif/c03_瞎子新卧室/小猫挠墙/5.png" id="16_euwpl"]
@ -133,6 +135,37 @@ animations = [{
"speed": 5.0
}, {
"frames": [{
"duration": 2.0,
"texture": ExtResource("14_omra6")
}, {
"duration": 2.0,
"texture": ExtResource("15_mgqqr")
}],
"loop": true,
"name": &"小猫呼吸_left",
"speed": 3.0
}, {
"frames": [{
"duration": 6.0,
"texture": ExtResource("14_mgqqr")
}, {
"duration": 6.0,
"texture": ExtResource("15_vol74")
}, {
"duration": 6.0,
"texture": ExtResource("16_euwpl")
}, {
"duration": 6.0,
"texture": ExtResource("17_t2v0v")
}, {
"duration": 6.0,
"texture": ExtResource("18_5eyh2")
}],
"loop": true,
"name": &"小猫循环挠墙",
"speed": 30.0
}, {
"frames": [{
"duration": 30.0,
"texture": ExtResource("11_5xlyr")
}, {
@ -172,11 +205,31 @@ animations = [{
"duration": 15.0,
"texture": ExtResource("23_gvvdv")
}],
"loop": false,
"loop": true,
"name": &"小猫挠墙",
"speed": 30.0
}, {
"frames": [{
"duration": 3.0,
"texture": ExtResource("17_t2v0v")
}, {
"duration": 3.0,
"texture": ExtResource("18_5eyh2")
}, {
"duration": 3.0,
"texture": ExtResource("19_ht57b")
}, {
"duration": 3.0,
"texture": ExtResource("20_qoe5p")
}, {
"duration": 15.0,
"texture": ExtResource("23_gvvdv")
}],
"loop": false,
"name": &"小猫结束挠墙",
"speed": 30.0
}, {
"frames": [{
"duration": 9.0,
"texture": ExtResource("1_a0gqt")
}, {

Binary file not shown.

After

Width:  |  Height:  |  Size: 573 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://xw0akfvfh1d"
path="res://.godot/imported/1.png-3827522f9eabd2cc4e1ba6c1a701890f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c03_瞎子新卧室/小猫呼吸_left/1.png"
dest_files=["res://.godot/imported/1.png-3827522f9eabd2cc4e1ba6c1a701890f.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: 559 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bg754vafpitve"
path="res://.godot/imported/2.png-7b99f34955caf582f8c5e76c1007f604.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c03_瞎子新卧室/小猫呼吸_left/2.png"
dest_files=["res://.godot/imported/2.png-7b99f34955caf582f8c5e76c1007f604.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: 578 B

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cxgkncudoqrd"
path="res://.godot/imported/药纸.png-b290a4fbe8a5c2fa0ec5bde4e0cb7317.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/prop/c03/药纸.png"
dest_files=["res://.godot/imported/药纸.png-b290a4fbe8a5c2fa0ec5bde4e0cb7317.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: 50 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://rsk3dkai37hu"
path="res://.godot/imported/前侧楼梯_楼梯人群_前景.png-9fc74b9bf846fcbf637d0679b6c67eab.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_楼梯人群_前景.png"
dest_files=["res://.godot/imported/前侧楼梯_楼梯人群_前景.png-9fc74b9bf846fcbf637d0679b6c67eab.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: 52 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://mbtx17tg24pl"
path="res://.godot/imported/前侧楼梯_诡异纸人_前景.png-3d2ba39e4cabaf4bf5fcc1c425fa0de3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_诡异纸人_前景.png"
dest_files=["res://.godot/imported/前侧楼梯_诡异纸人_前景.png-3d2ba39e4cabaf4bf5fcc1c425fa0de3.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: 65 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c5fk2san1lfmn"
path="res://.godot/imported/bg_保卫科_第二章.png-88842d2d29569bdc834e47425dacca6a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png"
dest_files=["res://.godot/imported/bg_保卫科_第二章.png-88842d2d29569bdc834e47425dacca6a.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: 5.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bsl1w7a5cfw1f"
path="res://.godot/imported/ux_老鼠精画像_第二章.png-bd0c9c146c5122f84c9025496f20ead3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s04_保卫科/ux_老鼠精画像_第二章.png"
dest_files=["res://.godot/imported/ux_老鼠精画像_第二章.png-bd0c9c146c5122f84c9025496f20ead3.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: 49 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wo86m2knrxu6"
path="res://.godot/imported/房间藤蔓_第二章.png-27ce1ff7aa7146d143e1059e1f5eedb4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png"
dest_files=["res://.godot/imported/房间藤蔓_第二章.png-27ce1ff7aa7146d143e1059e1f5eedb4.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: 24 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c04b18dx2o8k4"
path="res://.godot/imported/翻开页_第二章.png-8f1a8f2429e16972571b2ba403dd1dfc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s04_保卫科/花名册/翻开页_第二章.png"
dest_files=["res://.godot/imported/翻开页_第二章.png-8f1a8f2429e16972571b2ba403dd1dfc.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.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c7hh6cvkahswt"
path="res://.godot/imported/指引纸人4歪头.png-12a694b0b7f54d9d3c4b6bc8d1dd6bea.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/引导纸人/指引纸人4歪头.png"
dest_files=["res://.godot/imported/指引纸人4歪头.png-12a694b0b7f54d9d3c4b6bc8d1dd6bea.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,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://o5a70tl5445e"
path="res://.godot/imported/sfx_瞎子咳嗽.ogg-2e9fbd90a5a121ed6d5b93d9ee736c74.oggvorbisstr"
[deps]
source_file="res://asset/audio/sfx/交互/角色/sfx_瞎子咳嗽.ogg"
dest_files=["res://.godot/imported/sfx_瞎子咳嗽.ogg-2e9fbd90a5a121ed6d5b93d9ee736c74.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@ -10,11 +10,14 @@
~ c03_s02_邀请小蝉与瞎子对话1
小小蝶: 那个...阿叔,小蝉在吗 [#anonymous] [ID:c03_瞎子卧室演出_小小蝶1]
=> END
~ c03_s02_邀请小蝉与瞎子对话2
方启钊: 咳咳,她,咳咳,不在。 [#anonymous] [ID:c03_瞎子卧室演出_瞎子1]
小小蝶: 她是不是生病了,好几天没看到她了。 [#anonymous] [ID:c03_瞎子卧室演出_小小蝶2]
=> END
~ c03_s02_邀请小蝉与瞎子对话2
~ c03_s02_邀请小蝉与瞎子对话3
方启钊: 她... [#anonymous] [ID:c03_瞎子卧室演出_瞎子2]
方启钊: 我一家一家问过来,都讲没看见她。 [#anonymous] [ID:c03_瞎子卧室演出_瞎子3]
方启钊: 一个活生生的小女孩,就这么找不见了... [#anonymous] [ID:c03_瞎子卧室演出_瞎子4]

View File

@ -27,6 +27,13 @@ c02_保卫科花名册5,三〇一二 吕萍,,,,3012 Lu Ping
c02_保卫科花名册6,三〇一三 (看不清),,,,3013 (Illegible)
c02_保卫科花名册7,把我的鞋子拿给老鼠,老鼠会引开那个疯男人,,,,"Give my shoes to the rats, the rats will lure away that crazy man"
c02_保卫科花名册8,不要相信墙里的东西!,,,,Don't trust what's in the wall!
c03_保卫科花名册1,一〇一四 空,,,,
c03_保卫科花名册2,一〇一五 *** **,,,,
c03_保卫科花名册3,二〇一三 张文开,,,,
c03_保卫科花名册4,二〇一五 *** 方小蝉,,,,
c03_保卫科花名册5,三〇一二 **,,,,
c03_保卫科花名册6,三** ***,,,,
c03_保卫科花名册7,多言数穷,不如守中,,,,
c02_小猫纸条,大哥!今晚老地方见 /井\,,,,Big brother! Meet at the usual place tonight /well\
c02_议论文字1,你说的是真的啊?,,,,Is what you're saying really true?
c02_议论文字2,你听谁说的?,,,,Who did you hear that from?

1 keys zh_CN _character _notes _tags en
27 c02_保卫科花名册6 三〇一三 (看不清) 3013 (Illegible)
28 c02_保卫科花名册7 把我的鞋子拿给老鼠,老鼠会引开那个疯男人 Give my shoes to the rats, the rats will lure away that crazy man
29 c02_保卫科花名册8 不要相信墙里的东西! Don't trust what's in the wall!
30 c03_保卫科花名册1 一〇一四 空
31 c03_保卫科花名册2 一〇一五 *** **
32 c03_保卫科花名册3 二〇一三 张文开
33 c03_保卫科花名册4 二〇一五 *** 方小蝉
34 c03_保卫科花名册5 三〇一二 **
35 c03_保卫科花名册6 三** ***
36 c03_保卫科花名册7 多言数穷,不如守中
37 c02_小猫纸条 大哥!今晚老地方见 /井\ Big brother! Meet at the usual place tonight /well\
38 c02_议论文字1 你说的是真的啊? Is what you're saying really true?
39 c02_议论文字2 你听谁说的? Who did you hear that from?

View File

@ -43,6 +43,17 @@
不要相信墙里的东西! [ID:c02_保卫科花名册8]
=> END
~ c03_保卫科花名册
一〇一四 空 [ID:c03_保卫科花名册1]
一〇一五 *** ** [ID:c03_保卫科花名册2]
二〇一三 张文开 [ID:c03_保卫科花名册3]
二〇一五 *** 方小蝉 [ID:c03_保卫科花名册4]
三〇一二 ** [ID:c03_保卫科花名册5]
三** *** [ID:c03_保卫科花名册6]
多言数穷,不如守中 [ID:c03_保卫科花名册7]
=> END
~ c02_小猫纸条
大哥!今晚老地方见 /井\[ID:c02_小猫纸条]
=> END

View File

@ -134,6 +134,8 @@ prop_3个纸铜钱,三个纸铜钱,,,[#texture=c03/3个纸铜钱.png],,
prop_3个纸铜钱_说明,三枚纸制铜钱整齐排列,数量似乎有特殊含义,,,,,
prop_剪刀,剪刀,,,[#texture=c03/缠着符咒的剪刀.png][#inspect=c03/ux_缠着符咒的剪刀.png],,
prop_剪刀_说明,普通的裁缝剪刀,刀身上缠绕着黄色的符纸,,,,,
prop_药纸,药纸,,,[#texture=c03/药纸.png],,
prop_药纸_说明,用牛皮做的药纸,上面沾着些粉尘,,,,,
prop_药包,药包,,,[#texture=c03/药包.png][#inspect=c03/ux_药包.png],,
prop_药包_说明,用牛皮纸包裹的药粉,竟散发着淡淡的香味,,,,,
prop_菜刀,菜刀,,,[#texture=c03/菜刀.png][#inspect=c03/ux_菜刀.png],,
@ -279,13 +281,14 @@ c03_s02_获得1015钥匙后,嘶...这是哪户人家的钥匙来着?,,,,,
c03_s03_纸娃娃,这些是...用来展示发型的吗?,,,,,
c03_s03_假头套,现在已经不时兴这些了。,,,,,
c03_s03_镜子,镜子上都是灰尘,,,,,
c03_s03_获得纸舌头后,要命...搞不懂这种东西干嘛要藏起来...,,,,,
c03_s03_照完镜子,...{br}是小蝉吧...见怪不怪了。,,,,,
c03_s03_癞子呼吸声开始,{br}又是这个呼吸声?,,,,,
c03_s03_癞子纸人首次结束,这个假人的造型...有点像在墙缝里看到的那个男人。,,,,,
c03_s03_桌子,理发店常见的置物架,,,,,
c03_s03_洗头盆,和楼道里一样的洗头盆,,,,,
c03_s03_演出结束,又是幻觉吗...{br}刚才灰衣服的男人在八音盒和照片里出现过{br}还有那个红色衣服的女孩...{br}难道说...,,,,,
c03_药车须知,抓药需足数三文,另需药方与药引,,,,,
c03_药车须知,抓药需足数三文,另需药方、药纸与药引,,,,,
c03_抓药铜钱不足,钱还没准备够...牌子上讲需要三文,,,,,
c03_老板被吸走,...{br}铃铛声...{br}是我梦里那个铃铛声...,,,,,
c03_s04_首次进入,1015...是刚才那对夫妻的房间吧。,,,,,
@ -300,12 +303,16 @@ c03_s04_麻将游戏结束,刚才的幻觉...{br}不像是我的记忆。,,,,,
c03_s04_李氏纸人首次互动,这假人什么时候摆在这的?,,,,,
c03_s04_李氏纸人求舌头,舌...头...,,,,,
c03_s04_李氏纸人求药,药...,,,,,
c03_s04_获得剪刀后,理发店的假人好像提到过剪刀...,,,,,
c03_s04_获得钥匙后,2013...{br}这是那个肉铺老板家的钥匙。,,,,,
c03_s04_给药后,病终究还是没治好。,,,,,
c03_s04_奠,奠,,,,,
c03_招魂幡鬼差,...{br}还是别乱碰了,,,,,
c03_s05_长桌,这桌上的肉竟然没有腐烂,,,,,
c03_s05_首次读完账本,...还是不要多想了,,,,,
c03_s05_偷听结束,这小女孩提到的玩具...{br}不会就是我手上这个吧?,,,,,
c03_s06_没贴的寻人启事,肉铺老板居然把一大摞寻人启事藏在家里{br}嗯...还有几张像是从墙上撕下来的。,,,,,
c03_s06_暗门,暗门被锁起来了,,,,,
c03_s06_暗门,锁上的活板门...{br}是通到哪里去的?,,,,,
c03_s06_柜子,这柜子后面好像还有东西,,,,,
c03_s07_肉袋,一股腐臭的味道,,,,,
c03_s07_绞肉机,看着像台碎肉机,,,,,
@ -330,3 +337,4 @@ c03_s12_label6,[wave]将她交给我,方能保你平安[/wave],,,,,
c03_s12_label7,[wave]反正...都一样吧[/wave],,,,,
c03_s12_label8,[wave]又嫩又甜[/wave],,,,,
c03_李癞胖演出结束,怎么突然出现这么多人?{br}要不跟过去看看?,,,,,
c03_小手洞1,洞里有很浓的血腥味...,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
134 prop_3个纸铜钱_说明 三枚纸制铜钱整齐排列,数量似乎有特殊含义
135 prop_剪刀 剪刀 [#texture=c03/缠着符咒的剪刀.png][#inspect=c03/ux_缠着符咒的剪刀.png]
136 prop_剪刀_说明 普通的裁缝剪刀,刀身上缠绕着黄色的符纸
137 prop_药纸 药纸 [#texture=c03/药纸.png]
138 prop_药纸_说明 用牛皮做的药纸,上面沾着些粉尘
139 prop_药包 药包 [#texture=c03/药包.png][#inspect=c03/ux_药包.png]
140 prop_药包_说明 用牛皮纸包裹的药粉,竟散发着淡淡的香味
141 prop_菜刀 菜刀 [#texture=c03/菜刀.png][#inspect=c03/ux_菜刀.png]
281 c03_s03_纸娃娃 这些是...用来展示发型的吗?
282 c03_s03_假头套 现在已经不时兴这些了。
283 c03_s03_镜子 镜子上都是灰尘
284 c03_s03_获得纸舌头后 要命...搞不懂这种东西干嘛要藏起来...
285 c03_s03_照完镜子 ...{br}是小蝉吧...见怪不怪了。
286 c03_s03_癞子呼吸声开始 !?{br}又是这个呼吸声?
287 c03_s03_癞子纸人首次结束 这个假人的造型...有点像在墙缝里看到的那个男人。
288 c03_s03_桌子 理发店常见的置物架
289 c03_s03_洗头盆 和楼道里一样的洗头盆
290 c03_s03_演出结束 又是幻觉吗...{br}刚才灰衣服的男人在八音盒和照片里出现过{br}还有那个红色衣服的女孩...{br}难道说...
291 c03_药车须知 抓药需足数三文,另需药方与药引 抓药需足数三文,另需药方、药纸与药引
292 c03_抓药铜钱不足 钱还没准备够...牌子上讲需要三文
293 c03_老板被吸走 ...{br}铃铛声...{br}是我梦里那个铃铛声...
294 c03_s04_首次进入 1015...是刚才那对夫妻的房间吧。
303 c03_s04_李氏纸人首次互动 这假人什么时候摆在这的?
304 c03_s04_李氏纸人求舌头 舌...头...
305 c03_s04_李氏纸人求药 药...
306 c03_s04_获得剪刀后 理发店的假人好像提到过剪刀...
307 c03_s04_获得钥匙后 2013...{br}这是那个肉铺老板家的钥匙。
308 c03_s04_给药后 病终究还是没治好。
309 c03_s04_奠
310 c03_招魂幡鬼差 ...{br}还是别乱碰了
311 c03_s05_长桌 这桌上的肉竟然没有腐烂
312 c03_s05_首次读完账本 ...还是不要多想了
313 c03_s05_偷听结束 这小女孩提到的玩具...{br}不会就是我手上这个吧?
314 c03_s06_没贴的寻人启事 肉铺老板居然把一大摞寻人启事藏在家里{br}嗯...还有几张像是从墙上撕下来的。
315 c03_s06_暗门 暗门被锁起来了 锁上的活板门...{br}是通到哪里去的?
316 c03_s06_柜子 这柜子后面好像还有东西
317 c03_s07_肉袋 一股腐臭的味道
318 c03_s07_绞肉机 看着像台碎肉机
337 c03_s12_label7 [wave]反正...都一样吧[/wave]
338 c03_s12_label8 [wave]又嫩又甜[/wave]
339 c03_李癞胖演出结束 怎么突然出现这么多人?{br}要不跟过去看看?
340 c03_小手洞1 洞里有很浓的血腥味...

View File

@ -159,6 +159,8 @@
三枚纸制铜钱整齐排列,数量似乎有特殊含义 [ID:prop_3个纸铜钱_说明]
剪刀 [#texture=c03/缠着符咒的剪刀.png][#inspect=c03/ux_缠着符咒的剪刀.png] [ID:prop_剪刀]
普通的裁缝剪刀,刀身上缠绕着黄色的符纸 [ID:prop_剪刀_说明]
药纸 [#texture=c03/药纸.png] [ID:prop_药纸]
用牛皮做的药纸,上面沾着些粉尘 [ID:prop_药纸_说明]
药包 [#texture=c03/药包.png][#inspect=c03/ux_药包.png] [ID:prop_药包]
用牛皮纸包裹的药粉,竟散发着淡淡的香味 [ID:prop_药包_说明]
菜刀 [#texture=c03/菜刀.png][#inspect=c03/ux_菜刀.png] [ID:prop_菜刀]
@ -287,6 +289,7 @@
3012上面有我的名字看来确实是这里... {br}先去三楼看看吧[ID:c02_保卫科花名册首次互动结束]
祭台是专门供奉这只大老鼠的? [ID:c02_保卫科祭台os]
鼠歌 {br}{br}天地小如喉,{br}红轮自吞吐。{br}多少世间人,{br}都被红轮误。 [ID:c02_保卫科老鼠精]
莫被红轮误莫被红轮误{br}莫被红轮误莫被红轮误{br}莫被红轮误莫被红轮误 [ID:c02_保卫科老鼠精_第二章]
#小手
...还有什么东西能跟它交换呢? [ID:c02_小手还能换什么]
[ID:c02_小手出现摔倒]
@ -365,7 +368,7 @@
和楼道里一样的洗头盆 [ID:c03_s03_洗头盆]
又是幻觉吗...{br}刚才灰衣服的男人在八音盒和照片里出现过{br}还有那个红色衣服的女孩...{br}难道说... [ID:c03_s03_演出结束]
# 抓药游戏
抓药需足数三文,另需药方与药引 [ID:c03_药车须知]
抓药需足数三文,另需药方、药纸与药引 [ID:c03_药车须知]
钱还没准备够...牌子上讲需要三文 [ID:c03_抓药铜钱不足]
...{br}铃铛声...{br}是我梦里那个铃铛声... [ID:c03_老板被吸走]
# s04 李癞房间
@ -384,6 +387,7 @@
理发店的假人好像提到过剪刀... [ID:c03_s04_获得剪刀后]
2013...{br}这是那个肉铺老板家的钥匙。 [ID:c03_s04_获得钥匙后]
病终究还是没治好。 [ID:c03_s04_给药后]
奠 [ID:c03_s04_奠]
...{br}还是别乱碰了 [ID:c03_招魂幡鬼差]
# s05 肉铺
这桌上的肉竟然没有腐烂 [ID:c03_s05_长桌]
@ -391,7 +395,7 @@
这小女孩提到的玩具...{br}不会就是我手上这个吧? [ID:c03_s05_偷听结束]
# s06 胖子卧室
肉铺老板居然把一大摞寻人启事藏在家里{br}嗯...还有几张像是从墙上撕下来的。 [ID:c03_s06_没贴的寻人启事]
暗门被锁起来了 [ID:c03_s06_暗门]
锁上的活板门...{br}是通到哪里去的? [ID:c03_s06_暗门]
这柜子后面好像还有东西 [ID:c03_s06_柜子]
# s07 屠宰间
一股腐臭的味道 [ID:c03_s07_肉袋]
@ -421,6 +425,9 @@
[wave]又嫩又甜[/wave] [ID:c03_s12_label8]
# 李癞胖演出结束
怎么突然出现这么多人?{br}要不跟过去看看?[ID:c03_李癞胖演出结束]
...{br}这股风...[ID:c03_冷飕飕风吹过]
# 小手
洞里有很浓的血腥味...[ID:c03_小手洞1]
=> END
~ Notes_c04

View File

@ -55,6 +55,7 @@ var ANIMATION_CONFIG = {
19: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身", &""],
20: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠呼吸", &""],
21: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身_屠宰间", &""],
22: [&"", Vector2.ONE, Vector2(341.0, -75.0), &"", &"c02_吕萍_风吹过"],
},
"吕萍爬行":
{

View File

@ -22,6 +22,7 @@ one_shot = false
prop_key = ""
prop_key2 = ""
prop_key3 = ""
prop_key4 = ""
[node name="SfxInvalid" type="AudioStreamPlayer" parent="."]
bus = &"game_sfx"

View File

@ -44,6 +44,7 @@ signal sign_mark_offset_updated
var prop_key := ""
var prop_key2 := ""
var prop_key3 := ""
var prop_key4 := ""
@onready var sfx_invalid = $SfxInvalid as Sfx
@onready var sfx_success = $SfxSuccess as Sfx
@ -140,19 +141,20 @@ var interact_mutex = Mutex.new()
func is_key_matched(key) -> bool:
return (
# prop_key 皆空,则表示不需要匹配
(not prop_key and not prop_key2 and not prop_key3)
(not prop_key and not prop_key2 and not prop_key3 and not prop_key4)
or (
# 只要有一个 prop_key 匹配即可
(prop_key and key == prop_key)
or (prop_key2 and key == prop_key2)
or (prop_key3 and key == prop_key3)
or (prop_key4 and key == prop_key4)
)
)
func check_if_disable_prop(key) -> void:
# prop_key 若空, 则表示不需要匹配, 也就不需要 disable 当前道具
if not disable_prop_after_interacted or (not prop_key and not prop_key2 and not prop_key3):
if not disable_prop_after_interacted or (not prop_key and not prop_key2 and not prop_key3 and not prop_key4):
return
if key:
SceneManager.disable_prop_item(key)
@ -229,6 +231,12 @@ func _get_property_list() -> Array[Dictionary]:
"type": TYPE_STRING,
"hint": PROPERTY_HINT_ENUM_SUGGESTION,
"hint_string": ",".join(items),
},
{
"name": "prop_key4",
"type": TYPE_STRING,
"hint": PROPERTY_HINT_ENUM_SUGGESTION,
"hint_string": ",".join(items),
}
]
@ -240,6 +248,8 @@ func _get(property: StringName) -> Variant:
return prop_key2
elif property == "prop_key3":
return prop_key3
elif property == "prop_key4":
return prop_key4
return null
@ -253,4 +263,7 @@ func _set(property: StringName, value: Variant) -> bool:
elif property == "prop_key3":
prop_key3 = value
return true
elif property == "prop_key4":
prop_key4 = value
return true
return false

View File

@ -22,6 +22,7 @@ matched_sign_texture = ExtResource("4_njk43")
prop_key = ""
prop_key2 = ""
prop_key3 = ""
prop_key4 = ""
[node name="SfxInvalid" type="AudioStreamPlayer" parent="."]
stream = ExtResource("4_n1rbo")

View File

@ -2,6 +2,7 @@
class_name Portal2D extends Sprite2D
signal rejected_on_locked
signal unlocked
signal before_pre_transport_wait
signal sign_mark_offset_updated
@ -191,6 +192,8 @@ func _on_interacted() -> void:
interact_mutex.unlock()
if rejected:
rejected_on_locked.emit()
else:
unlocked.emit()
# 开锁尝试后,哪怕开锁成功,也需要下次操作再进入,而不是立即传送
return
# 传送queue free 导致 sfx 无法播放,使用全局声源

View File

@ -344,6 +344,9 @@ func _find_props(props: Dictionary, node: Node) -> void:
if child.prop_key3 != &"":
props[child.prop_key3] = true
print("Find Interactable2D prop3: " + child.prop_key3)
if child.prop_key4 != &"":
props[child.prop_key4] = true
print("Find Interactable2D prop4: " + child.prop_key4)
elif child is Pickable2D:
if child.prop_key != &"" and not child.as_important_item:
props[child.prop_key] = true

View File

@ -88,10 +88,14 @@ func _on_ground_ready() -> void:
# 不偷听则不可开门
$"../DeployLayer/portal_5".enabled = false
if ArchiveManager.get_global_value(&"c02_show_grounded_coins") and EventManager.get_chapter_stage() <= 2:
# 奠字 + 纸钱
$"../DeployLayer/新背景_奠".visible = true
# 奠字 + 纸钱
var show_coin_rain := false
if EventManager.get_chapter_stage() <= 2:
show_coin_rain = ArchiveManager.get_global_value(&"c02_show_grounded_coins")
elif EventManager.get_chapter_stage() >= 3:
# 已拿钥匙
show_coin_rain = EventManager.get_stage("c03_li_paperwoman") >= 5
$"../DeployLayer/新背景_奠".visible = show_coin_rain
small_shoe = $"../DeployLayer/Pickable小鞋子" as Pickable2D
@ -365,3 +369,32 @@ func run_away():
camera.force_offset.x = 0.0
SceneManager.unlock_player()
SceneManager.get_ground_loader().transition_to_scene("c02_s06", "right")
# 保卫科灯光闪烁
func c03_light_flip0() -> void:
var light = $"../DeployLayer/煤油灯3/PointLight2D"
Util.timer(2.5, _flip_light.bind(light))
$"Sfx风吹过".play()
await SceneManager.lock_player(0, 22) # 风吹过
SceneManager.pop_os_with_str("c03_冷飕飕风吹过")
SceneManager.unlock_player()
func c03_light_flip1() -> void:
var light = $"../DeployLayer/煤油灯2/PointLight2D"
_flip_light(light)
func c03_light_flip2() -> void:
var light = $"../DeployLayer/煤油灯/PointLight2D"
_flip_light(light)
func _flip_light(light:PointLight2D)->void:
var default_energy = light.energy
var tween = create_tween()
tween.tween_property(light, "energy", default_energy * 0.25, 0.5)
tween.tween_property(light, "energy", default_energy * 0.6, 0.2)
tween.tween_property(light, "energy", default_energy * 0.1, 0.3)
tween.tween_property(light, "energy", default_energy, 0.4)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=114 format=3 uid="uid://djc2uaefhmu7"]
[gd_scene load_steps=120 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_院子.gd" id="2_dt5aj"]
@ -28,6 +28,7 @@
[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="Texture2D" uid="uid://dooaferyy44rs" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_前侧楼梯.png" id="10_ud2jg"]
[ext_resource type="AudioStream" uid="uid://o7fj0r0fbm1h" path="res://asset/audio/sfx/交互/第一章/sfx_冷飕飕.ogg" id="11_8xnjh"]
[ext_resource type="Texture2D" uid="uid://c0enojekent6s" path="res://asset/art/scene/c02/杂物/e_灯笼.png" id="11_em2ma"]
[ext_resource type="Texture2D" uid="uid://0x7cl2cmcs6l" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕2.png" id="11_g0qhj"]
[ext_resource type="Script" uid="uid://3p6e8f385kow" path="res://scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd" id="11_lq23y"]
@ -80,11 +81,16 @@
[ext_resource type="Texture2D" uid="uid://bjdy0o0qngukl" path="res://asset/art/scene/c03/s00_院子与其他/e_运尸车.png" id="74_f5g0l"]
[ext_resource type="Script" uid="uid://b5to0url3t7h4" path="res://scene/ground/script/c02/s03_event李氏给药完成.gd" id="75_0ek7o"]
[ext_resource type="SpriteFrames" uid="uid://cmvr3lbwe3h7p" path="res://asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres" id="75_allmh"]
[ext_resource type="Texture2D" uid="uid://rsk3dkai37hu" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_楼梯人群_前景.png" id="77_6y26q"]
[ext_resource type="Script" uid="uid://3umabu63j1t5" path="res://scene/ground/script/c02/s03_event第三章开幕.gd" id="77_ndc6g"]
[ext_resource type="Texture2D" uid="uid://by7ibwt45ndlm" path="res://asset/art/scene/c03/s00_第三章开幕/第三章开场.png" id="77_pyl5w"]
[ext_resource type="SpriteFrames" uid="uid://cvjl0m6b5oc6f" path="res://asset/art/gif/c03_棺材怪/c03_棺材怪_frames.tres" id="77_ru58d"]
[ext_resource type="Texture2D" uid="uid://mbtx17tg24pl" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_诡异纸人_前景.png" id="78_5mk2s"]
[ext_resource type="Texture2D" uid="uid://cyb7wxwadqhht" path="res://asset/art/scene/c03/s00_第三章开幕/二楼栏杆.png" id="78_ndc6g"]
[ext_resource type="Texture2D" uid="uid://0d7afuay7x0k" path="res://asset/art/scene/c03/s00_第三章开幕/三楼栏杆.png" id="79_0ek7o"]
[ext_resource type="Texture2D" uid="uid://iochvxxj4oji" path="res://asset/art/scene/c03/s00_第三章开幕/邻居1.png" id="86_j6i36"]
[ext_resource type="Texture2D" uid="uid://b1omqxct4hws2" path="res://asset/art/scene/c03/s00_第三章开幕/邻居2.png" id="87_y7f1y"]
[ext_resource type="Texture2D" uid="uid://dr222pgv54efg" path="res://asset/art/scene/c03/s00_第三章开幕/邻居3.png" id="88_y7f1y"]
[sub_resource type="Animation" id="Animation_rt2lh"]
length = 0.001
@ -450,6 +456,12 @@ bus = &"game_sfx"
script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx风吹过" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="7"]
stream = ExtResource("11_8xnjh")
bus = &"game_sfx"
script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="2"]
light_mask = 5
texture = ExtResource("3_sqv8l")
@ -513,6 +525,13 @@ target_portal = "1"
status = "locked"
prop_key = "prop_1015钥匙"
[node name="EventBinder" type="Node" parent="Ground/DeployLayer/portal_5"]
script = ExtResource("12_2b6vx")
updater_event = &"c03_li_paperwoman"
updater_stage_mode = "exclude"
updater_stages = Array[int]([5])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="Ambush保卫科旁边os" parent="Ground/DeployLayer" index="7" instance=ExtResource("25_iyaiw")]
position = Vector2(138, 47)
hook_os_key = "c02_院子_保卫科旁"
@ -888,6 +907,7 @@ prop_key3 = "prop_辫子"
[node name="Closeup抓药游戏" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板" instance=ExtResource("23_81juy")]
position = Vector2(1058, 30)
packed_scene = ExtResource("45_fxne6")
on_display_hide_hud = true
enabled = false
action_key = 3
collision_width_and_x = Vector2(40, 0)
@ -1340,6 +1360,7 @@ texture_scale = 0.5
[node name="Pro胖子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"]
position = Vector2(511, 27)
scale = Vector2(0.95, 0.95)
sprite_frames = ExtResource("66_deuom")
animation = &"胖子_撕寻人启事"
script = ExtResource("67_h2lyo")
@ -1367,6 +1388,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx"
[node name="Pro李氏" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"]
position = Vector2(460, 32)
scale = Vector2(0.95, 0.95)
sprite_frames = ExtResource("66_deuom")
animation = &"李氏_看向右边呼吸"
autoplay = "李氏_看向右边呼吸"
@ -1383,6 +1405,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx"
[node name="Pro癞子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"]
position = Vector2(592, 32)
scale = Vector2(0.95, 0.95)
sprite_frames = ExtResource("66_deuom")
animation = &"辫子癞子_侧面呼吸"
autoplay = "辫子癞子_侧面呼吸"
@ -1418,7 +1441,6 @@ script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Event2D第二章_纸人" type="Node2D" parent="Ground/DeployLayer" index="39"]
visible = false
script = ExtResource("73_lt8c0")
event_name = &"c03_well_show"
event_stages = Array[int]([0])
@ -1428,7 +1450,7 @@ metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="排队常人" type="Sprite2D" parent="Ground/DeployLayer/Event2D第二章_纸人"]
light_mask = 0
position = Vector2(1227.5, -119)
position = Vector2(1233, -120)
texture = ExtResource("18_crgo6")
centered = false
@ -1440,9 +1462,14 @@ updater_ease_duration = 0.0
updater_stages = Array[int]([0])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="前景" type="Sprite2D" parent="Ground/DeployLayer/Event2D第二章_纸人/排队常人"]
z_index = 21
texture = ExtResource("77_6y26q")
centered = false
[node name="排队纸人" type="Sprite2D" parent="Ground/DeployLayer/Event2D第二章_纸人"]
light_mask = 0
position = Vector2(1227.5, -119)
position = Vector2(1233, -120)
texture = ExtResource("19_vddfx")
centered = false
@ -1455,6 +1482,11 @@ updater_stage_mode = "exclude"
updater_stages = Array[int]([0])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="前景" type="Sprite2D" parent="Ground/DeployLayer/Event2D第二章_纸人/排队纸人"]
z_index = 21
texture = ExtResource("78_5mk2s")
centered = false
[node name="Event2D李氏给药完成" type="Node2D" parent="Ground/DeployLayer" index="40"]
position = Vector2(1858, 24)
script = ExtResource("75_0ek7o")
@ -1532,6 +1564,18 @@ z_index = 1
position = Vector2(169, -227.5)
texture = ExtResource("79_0ek7o")
[node name="邻居1" type="Sprite2D" parent="Ground/DeployLayer/Event第三章开幕"]
position = Vector2(169, -227.5)
texture = ExtResource("86_j6i36")
[node name="邻居2" type="Sprite2D" parent="Ground/DeployLayer/Event第三章开幕"]
position = Vector2(169, -227.5)
texture = ExtResource("87_y7f1y")
[node name="邻居3" type="Sprite2D" parent="Ground/DeployLayer/Event第三章开幕"]
position = Vector2(169, -227.5)
texture = ExtResource("88_y7f1y")
[node name="Pro灰姑黑影" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event第三章开幕"]
position = Vector2(169, -227.5)
sprite_frames = ExtResource("75_allmh")
@ -1584,6 +1628,36 @@ libraries = {
&"": SubResource("AnimationLibrary_0ek7o")
}
[node name="Note李癞_奠" parent="Ground/DeployLayer" index="42" instance=ExtResource("6_t48d1")]
position = Vector2(1937, -26)
title_filter = "c03"
note_key = "c03_s04_奠"
[node name="EventBinder" type="Node" parent="Ground/DeployLayer/Note李癞_奠"]
script = ExtResource("12_2b6vx")
updater_event = &"c03_li_paperwoman"
updater_stages = Array[int]([5])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="Event保卫科灯光闪烁C03" type="Node2D" parent="Ground/DeployLayer" index="43"]
script = ExtResource("73_lt8c0")
event_name = &"current_chapter_stage"
event_mode = "hide"
event_stages = Array[int]([0, 1, 2])
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Ambush保卫科灯光闪烁0" parent="Ground/DeployLayer/Event保卫科灯光闪烁C03" instance=ExtResource("25_iyaiw")]
position = Vector2(979, 34)
hook_method = "c03_light_flip0"
[node name="Ambush保卫科灯光闪烁1" parent="Ground/DeployLayer/Event保卫科灯光闪烁C03" instance=ExtResource("25_iyaiw")]
position = Vector2(658, 33)
hook_method = "c03_light_flip1"
[node name="Ambush保卫科灯光闪烁2" parent="Ground/DeployLayer/Event保卫科灯光闪烁C03" instance=ExtResource("25_iyaiw")]
position = Vector2(342, 35)
hook_method = "c03_light_flip2"
[node name="PointLight2D" type="PointLight2D" parent="Ground/AmbientLayer" index="0"]
light_mask = 4
position = Vector2(2189, -142)
@ -1593,7 +1667,7 @@ range_item_cull_mask = 4
texture = SubResource("GradientTexture2D_plfv5")
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(2236, 93)
position = Vector2(913, 93)
player_movement_rect = Rect2(17, -158, 2233, 316)
facing_direction = Vector2(-1, -1)
@ -1611,6 +1685,7 @@ scale = Vector2(1.08, 1.08)
points = PackedVector2Array(17, 150, 2250, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.6
blend_mode = 1

View File

@ -38,6 +38,10 @@ func _on_ground_ready() -> void:
if ambush进门看到小蝉.played:
.visible = false
# 第二章之后关闭 closeup折锡纸
if EventManager.get_chapter_stage() >= 3:
closeup折锡纸.enabled = false
func _on_closeup_tin_coin_exited(arg = null):
if arg == true:

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=26 format=3 uid="uid://bivc5cdap370p"]
[gd_scene load_steps=30 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_保卫科.gd" id="2_jyere"]
@ -23,8 +23,12 @@
[ext_resource type="SpriteFrames" uid="uid://di43shn22n5ph" path="res://asset/art/gif/c00_通用动作/c00_通用动作_frames.tres" id="20_47ju4"]
[ext_resource type="Texture2D" uid="uid://day38kany2gmr" path="res://asset/art/scene/c02/小蝉寻人启事/e_寻人启事完整.png" id="20_g8amr"]
[ext_resource type="Texture2D" uid="uid://ce3d785v5lxg2" path="res://asset/art/scene/c02/小蝉寻人启事/ux_寻人启事完整.png" id="21_cq2m4"]
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="23_8qoej"]
[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="23_cq2m4"]
[ext_resource type="Texture2D" uid="uid://dri8e2lyx6wg4" path="res://asset/art/scene/c02/s04_保卫科/e_老鼠精_第二章.png" id="23_vppvs"]
[ext_resource type="Texture2D" uid="uid://c5fk2san1lfmn" path="res://asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png" id="26_6bni3"]
[ext_resource type="Texture2D" uid="uid://wo86m2knrxu6" path="res://asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png" id="27_8gu7y"]
[ext_resource type="Texture2D" uid="uid://mtwjy24fpmp6" path="res://asset/art/gif/c02_小手/流血的洞.png" id="27_dygjd"]
[node name="S04" type="Node2D"]
@ -54,7 +58,7 @@ position = Vector2(47, 2)
texture = ExtResource("3_66gue")
[node name="烟雾" type="AnimatedSprite2D" parent="Ground/BGSprite2D" index="0"]
position = Vector2(162, -29)
position = Vector2(162, -30)
sprite_frames = ExtResource("4_svuj3")
animation = &"小烟雾2"
autoplay = "小烟雾2"
@ -63,6 +67,14 @@ autoplay = "小烟雾2"
position = Vector2(1, 28)
texture = ExtResource("5_cy26p")
[node name="EventBinder" type="Node" parent="Ground/BGSprite2D/烟雾"]
script = ExtResource("23_cq2m4")
updater_event = &"current_chapter_stage"
updater_mode = "shower"
updater_ease_duration = 0.0
updater_stages = Array[int]([0, 1, 2])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(67, 29)
target_scene = "c02_s03"
@ -131,13 +143,22 @@ texture = ExtResource("9_a43aq")
[node name="小手讨东西" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_a43aq")]
position = Vector2(295, -6)
[node name="EventBinder" type="Node" parent="Ground/DeployLayer/小手讨东西"]
script = ExtResource("23_cq2m4")
updater_event = &"current_chapter_stage"
updater_mode = "shower"
updater_ease_duration = 0.0
updater_stages = Array[int]([0, 1, 2])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="小蝉写字" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
position = Vector2(351, 51)
sprite_frames = ExtResource("20_47ju4")
animation = &"c00_头套小婵_write"
[node name="老鼠精_第二章" type="Sprite2D" parent="Ground/DeployLayer" index="12"]
position = Vector2(207.5, -40.5)
self_modulate = Color(0.493545, 0.493546, 0.493546, 1)
position = Vector2(206.5, -41.5)
texture = ExtResource("23_vppvs")
[node name="EventBinder" type="Node" parent="Ground/DeployLayer/老鼠精_第二章"]
@ -148,6 +169,31 @@ updater_ease_duration = 0.0
updater_stages = Array[int]([3, 4, 5, 6])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="背景图" type="Sprite2D" parent="Ground/DeployLayer/老鼠精_第二章"]
z_index = -1
position = Vector2(-160.5, -77.5)
texture = ExtResource("26_6bni3")
centered = false
[node name="背景藤蔓" type="Sprite2D" parent="Ground/DeployLayer/老鼠精_第二章"]
z_index = -1
position = Vector2(-165.5, -142.5)
texture = ExtResource("27_8gu7y")
centered = false
flip_h = true
[node name="背景血手洞" type="Sprite2D" parent="Ground/DeployLayer/老鼠精_第二章"]
z_index = 1
position = Vector2(67.5, 4.5)
texture = ExtResource("27_dygjd")
centered = false
flip_h = true
[node name="Note小手洞" parent="Ground/DeployLayer/老鼠精_第二章" instance=ExtResource("23_8qoej")]
position = Vector2(88.5, 28.5)
title_filter = "c03"
note_key = "c03_小手洞1"
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(447, 98)
player_movement_rect = Rect2(66, -158, 429, 316)
@ -163,7 +209,7 @@ points = PackedVector2Array(66, 150, 495, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.9
energy = 0.8
blend_mode = 1
[editable path="Ground"]

View File

@ -83,6 +83,10 @@ func _on_ground_ready() -> void:
if $"../DeployLayer/Ambush小蝉偷看".played:
$"../DeployLayer/Ambush小蝉偷看".queue_free()
# 胖子房间
$"../DeployLayer/portal_4".unlocked.connect(_on_2013_unlocked)
# 小蝉偷看
func glimpse_hide_out():
$"../DeployLayer/Ambush小蝉偷看".queue_free()
@ -150,6 +154,7 @@ func _on_ball_game_exit(success = null):
ball_game_boys_ambush.enabled = false
ball_game_boys_ambush.visible = false
func _toggle_candles(show: bool) -> void:
var candles = $"../DeployLayer/楼梯蜡烛"
var lights = candles.get_children()
@ -165,7 +170,6 @@ func _toggle_candles(show: bool) -> void:
light.energy = 0.2
# 第一章火灾结束,尾声演出
func _c02_final_show():
SceneManager.toggle_hud_display(false)
@ -235,3 +239,27 @@ func unlock_2floor_map():
EventManager.set_stage_if_greater(&"c02_2f_xchan_run_away", 1)
EventManager.set_stage_if_greater(&"handnote_c02_map_2", 1)
EventManager.set_stage_if_greater(&"handnote_c02_shoe_giveToMouce", 1)
func _on_2013_unlocked() -> void:
$"../DeployLayer/煤油灯".hold_off_light()
var l1 = $"../DeployLayer/煤油灯2/PointLight2D"
var l2 = $"../DeployLayer/煤油灯2/地面光"
var tween = create_tween()
# 所有灯和蜡烛火光不规律闪烁后熄灭
var candles = $"../DeployLayer/楼梯蜡烛"
var lights = candles.get_children()
tween.tween_property(l1, "energy", 0.0, 0.5)
tween.parallel().tween_property(l2, "energy", 0.0, 0.5)
for light in lights:
var energy = randf_range(0.2, 0.4)
tween.parallel().tween_property(light, "energy", energy, 0.5)
tween.tween_interval(0.4)
for light in lights:
var energy = randf_range(0.5, 0.9)
tween.parallel().tween_property(light, "energy", energy, 0.4)
tween.tween_interval(0.3)
for light in lights:
# 默认保持 0.18 亮度,避免 mix 纯黑
tween.parallel().tween_property(light, "energy", 0.18, 0.3)
# tween.tween_property(candles, "modulate:a", 0.0, 1.0)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=73 format=3 uid="uid://cootarwb44vvh"]
[gd_scene load_steps=76 format=3 uid="uid://cootarwb44vvh"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qkymk"]
[ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_二楼.gd" id="2_4dg6u"]
@ -26,12 +26,14 @@
[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="11_2rktm"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="11_owxx3"]
[ext_resource type="PackedScene" uid="uid://cjx7o685ox8c1" path="res://scene/little_game/弹珠游戏/弹珠游戏.tscn" id="12_intre"]
[ext_resource type="Texture2D" uid="uid://c7hh6cvkahswt" path="res://asset/art/scene/c03/引导纸人/指引纸人4歪头.png" id="12_jxvkc"]
[ext_resource type="SpriteFrames" uid="uid://cee76qwjhw268" path="res://asset/art/gif/c03_二楼/c03_二楼_frames.tres" id="12_sqio2"]
[ext_resource type="SpriteFrames" uid="uid://c218xrr85jdc7" path="res://asset/art/gif/c03_小小小蝶上楼道/c03_小小小蝶上楼道_frames.tres" id="13_6iuix"]
[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="14_7x2h6"]
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="14_k01ve"]
[ext_resource type="AudioStream" uid="uid://oya48ab6e3ye" path="res://asset/audio/sfx/旧版/child/小孩从远到近跑步.ogg" id="14_lipxo"]
[ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="14_och2w"]
[ext_resource type="AudioStream" uid="uid://dxx5lu2j88c7x" path="res://asset/audio/sfx/交互/第二章/sfx_s03_咔嚓转头.ogg" id="14_p6bap"]
[ext_resource type="SpriteFrames" uid="uid://b0icyhxpj16tv" path="res://asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres" id="15_k01ve"]
[ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="15_tw31y"]
[ext_resource type="Texture2D" uid="uid://1pr32tkx4ttl" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_煤油灯座.png" id="16_osg51"]
@ -808,6 +810,20 @@ _data = {
&"疯子撞墙": SubResource("Animation_p6da7")
}
[sub_resource type="SpriteFrames" id="SpriteFrames_p6bap"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("10_sqio2")
}, {
"duration": 1.0,
"texture": ExtResource("12_jxvkc")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_chbaa"]
atlas = ExtResource("10_6iuix")
region = Rect2(0, 0, 6, 14)
@ -992,10 +1008,9 @@ updater_stage_mode = "exclude"
updater_stages = Array[int]([0, 1, 2])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="左侧纸人" type="Sprite2D" parent="Ground/DeployLayer" index="6"]
visible = false
position = Vector2(36, 35)
texture = ExtResource("10_sqio2")
[node name="左侧纸人" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="6"]
position = Vector2(86, 31)
sprite_frames = SubResource("SpriteFrames_p6bap")
[node name="Event2D疯子跑开" type="Node2D" parent="Ground/DeployLayer" index="7"]
position = Vector2(105, 2)
@ -1007,6 +1022,12 @@ pre_event_mode = "hide"
pre_event_stages = Array[int]([0])
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Sfx纸人咔嚓转头" type="AudioStreamPlayer" parent="Ground/DeployLayer/Event2D疯子跑开"]
stream = ExtResource("14_p6bap")
bus = &"game_sfx"
script = ExtResource("4_2e08x")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Pro疯子慌张跑开" parent="Ground/DeployLayer/Event2D疯子跑开" instance=ExtResource("10_p6da7")]
position = Vector2(102, 22)
sprite_frames = ExtResource("12_sqio2")
@ -1394,6 +1415,8 @@ position = Vector2(9, -4)
script = ExtResource("39_t5e0j")
event_name = &"c02_2f_xchan_run_away"
event_stages = Array[int]([1])
pre_event_name = &"current_chapter_stage"
pre_event_stages = Array[int]([0, 1, 2])
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Ambush走到尽头后小蝉跑" parent="Ground/DeployLayer/Event2D_xchan_run_away" instance=ExtResource("14_k01ve")]
@ -1450,7 +1473,7 @@ energy = 0.15
texture = ExtResource("11_2rktm")
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95)
position = Vector2(49, 98)
catty_light_energy = 0.5
player_movement_rect = Rect2(26, -158, 874, 316)
facing_direction = Vector2(1, 0)

View File

@ -14,10 +14,11 @@ func _ready() -> void:
var flyer: Closeup2D
var hand
func _on_ground_ready() -> void:
flyer = $"../DeployLayer/Closeup刮海报"
hand = $"../DeployLayer/小手讨东西"
if data.flyer_shaven:
take_off_flyer(true)
else:
@ -40,6 +41,5 @@ func take_off_flyer(immediatelly = false):
await tween.finished
else:
flyer.visible = false
var hand = $"../DeployLayer/小手讨东西"
hand.enabled = true

View File

@ -78,7 +78,6 @@ position = Vector2(292, -11)
texture = ExtResource("10_6ivku")
packed_scene = ExtResource("11_vxng8")
on_display_hide_hud = true
transition_effect = true
first_interact_os_key = "c02_海报_戏法班"
[node name="Note老鼠洞" parent="Ground/DeployLayer" index="7" instance=ExtResource("13_s75vl")]
@ -126,6 +125,7 @@ position = Vector2(11, -1)
points = PackedVector2Array(37, 150, 610, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.9
blend_mode = 1

View File

@ -46,8 +46,13 @@ func _on_ground_ready() -> void:
else:
closeup洋糕点.enabled = true
if ambush小猫挠墙.played:
ambush小猫挠墙.visible = false
pickable李癞钥匙.visible = true
# ambush小猫挠墙.visible = false
ambush小猫挠墙.get_node("小猫挠墙").play("小猫呼吸_left")
else:
#TODO
SceneManager.pop_debug_dialog_info("音效", "右侧小猫挠墙")
$"Sfx2D猫挠墙".play()
pickable李癞钥匙.triggered.connect(func():
await SceneManager.get_inspector().quit_and_hidden
SceneManager.pop_os_with_str("c03_s02_获得1015钥匙后")
@ -73,10 +78,19 @@ func _set_notes_coverer(coverer: String) -> void:
func scratching_cat_interacted() -> void:
$"Sfx2D猫挠墙".stop()
# 蹲下 起立
SceneManager.lock_player()
$"../DeployLayer/Ambush小猫挠墙/小猫挠墙".play("小猫挠墙")
await Util.wait(3.5)
# 自动隐藏
ambush小猫挠墙.get_node("小猫挠墙").play("小猫结束挠墙")
SceneManager.pop_debug_dialog_info("音效", "猫打呼噜 & 钥匙掉地上")
$"Sfx猫打呼噜".play()
# $"Sfx钥匙掉地上".play()
# 隐藏床交互,稍后启用
var bed = $"../DeployLayer/Note小蝉的床" as Note2D
bed.enabled = false
await Util.wait(1.5)
# 显示钥匙
EventManager.set_stage("c03_invite_xchan_supper", 3)
SceneManager.unlock_player()
await Util.wait(0.5)
bed.enabled = true

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=41 format=3 uid="uid://ctwy1ubhm68la"]
[gd_scene load_steps=45 format=3 uid="uid://ctwy1ubhm68la"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_jad6f"]
[ext_resource type="Script" uid="uid://tk4wg0i4payx" path="res://scene/ground/scene/c03/s02_瞎子新卧室.gd" id="2_y504i"]
[ext_resource type="AudioStream" uid="uid://b2mudqvq1dmng" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里1.ogg" id="3_kesv8"]
[ext_resource type="Texture2D" uid="uid://vc2hn6t5bedg" path="res://asset/art/scene/c03/s02_瞎子新卧室/bg_瞎子新卧室.png" id="4_hehhg"]
[ext_resource type="AudioStream" uid="uid://l0whtf4cscgx" path="res://asset/audio/sfx/交互/猫咪呼噜.ogg" id="5_bjrfa"]
[ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_xifhb"]
[ext_resource type="Texture2D" uid="uid://bgtxwxerl2dxh" path="res://asset/art/scene/c02/s08_瞎子卧室/十字架.png" id="6_hehhg"]
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_jad6f"]
@ -22,8 +23,10 @@
[ext_resource type="PackedScene" uid="uid://jp6ut4wayw7g" path="res://scene/ground/script/c03/s02_closeup洋糕点.tscn" id="13_fl7if"]
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="13_v3seo"]
[ext_resource type="Texture2D" uid="uid://c86bfer5qwp2g" path="res://asset/art/scene/c03/s02_瞎子新卧室/桌上放着邀请信.png" id="13_yl4ee"]
[ext_resource type="Texture2D" uid="uid://b7uo33bdiwpl3" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光4.png" id="17_rslrj"]
[ext_resource type="Texture2D" uid="uid://l7cuvw1k5xc1" path="res://asset/art/scene/c03/s02_瞎子新卧室/洋糕点和符纸.png" id="18_t8u8e"]
[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="22_jchds"]
[ext_resource type="AudioStream" uid="uid://o5a70tl5445e" path="res://asset/audio/sfx/交互/角色/sfx_瞎子咳嗽.ogg" id="22_jg7q6"]
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="23_6show"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="23_qq2pn"]
[ext_resource type="SpriteFrames" uid="uid://c218xrr85jdc7" path="res://asset/art/gif/c03_小小小蝶上楼道/c03_小小小蝶上楼道_frames.tres" id="24_5cqb4"]
@ -33,6 +36,7 @@
[ext_resource type="AudioStream" uid="uid://b08ps5rke143i" path="res://asset/audio/sfx/交互/第二章/amb_灰姑演出.ogg" id="26_kesv8"]
[ext_resource type="AudioStream" uid="uid://bx2l0xus8u1em" path="res://asset/audio/sfx/交互/第二章/sfx_灰姑出场.ogg" id="27_jchds"]
[ext_resource type="Script" uid="uid://cnt01hiw52bmn" path="res://scene/entity/ux/sign_snapper.gd" id="32_740dl"]
[ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="34_w67cj"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
@ -149,7 +153,7 @@ width = 600
height = 300
[node name="S02" type="Node2D"]
metadata/_edit_horizontal_guides_ = [-627.0]
metadata/_edit_horizontal_guides_ = [-627.0, 95.0]
[node name="Ground" parent="." instance=ExtResource("1_jad6f")]
scene_name = "c03_s02"
@ -172,6 +176,22 @@ mode = "场景背景音"
"感应玩家操作" = false
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx猫打呼噜" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
stream = ExtResource("5_bjrfa")
bus = &"game_sfx"
script = ExtResource("23_qq2pn")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx2D猫挠墙" type="AudioStreamPlayer2D" parent="Ground/AnimationPlayer" index="2"]
position = Vector2(532, 54)
max_distance = 500.0
attenuation = 2.0
bus = &"game_sfx"
script = ExtResource("22_jchds")
loop = true
loop_round_time = 3.0
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="BGSprite2D" parent="Ground" index="2"]
light_mask = 5
position = Vector2(0, -2)
@ -237,7 +257,7 @@ updater_stages = Array[int]([0, 1])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="Pickable邀请信" parent="Ground/DeployLayer" index="7" instance=ExtResource("13_v3seo")]
position = Vector2(454, 42)
position = Vector2(429, 29)
texture = ExtResource("13_yl4ee")
as_important_item = true
sign_mark_offset = Vector2(0, -4)
@ -263,8 +283,8 @@ position = Vector2(167, 31)
sprite_scale = 0.33
animation_low_mode = true
hide_texture = true
ground_light_texture = ExtResource("17_rslrj")
gaslight_energy = 2.0
gaslight_ground_energy = 2.0
debug_light_switch = false
sign_mark_offset = Vector2(0, -18.4)
@ -295,6 +315,7 @@ libraries = {
}
[node name="Sfx2D瞎子咳嗽" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D偷听陆仁对话后"]
stream = ExtResource("22_jg7q6")
bus = &"game_sfx"
script = ExtResource("22_jchds")
metadata/_custom_type_script = "uid://wapo47a1oddf"
@ -309,13 +330,14 @@ autoplay = "火苗"
[node name="瞎子抽烟" parent="Ground/DeployLayer/Event2D偷听陆仁对话后" instance=ExtResource("10_jad6f")]
position = Vector2(229, 39)
sprite_frames = ExtResource("10_2hv3f")
animation = &"瞎子_坐拿烟_左呼吸"
animation = &"瞎子_咳嗽吐血"
autoplay = "瞎子_坐拿烟_左呼吸"
action_configs = Array[Dictionary]([{
&"animation_intro": "瞎子_抽烟",
&"animation_next": "瞎子_坐拿烟_左呼吸",
"animation_wait_time": 0.0,
"intro_loop": 1
&"animation_next": "瞎子_坐拿烟_左呼吸"
}, {
"animation_intro": &"瞎子_咳嗽吐血",
&"animation_next": "瞎子_坐拿烟_左呼吸"
}])
[node name="小小小蝶" parent="Ground/DeployLayer/Event2D偷听陆仁对话后" instance=ExtResource("10_jad6f")]
@ -367,7 +389,9 @@ texture = SubResource("GradientTexture2D_5cqb4")
[node name="Pickable李癞钥匙" parent="Ground/DeployLayer" index="13" instance=ExtResource("13_v3seo")]
unique_name_in_owner = true
visible = false
position = Vector2(506, 69)
position = Vector2(499, 78)
sign_mark_offset = Vector2(0, -2.42)
collision_width_and_x = Vector2(42.79, 0)
prop_key = "prop_1015钥匙"
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Pickable李癞钥匙"]
@ -389,32 +413,39 @@ metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="Ambush小猫挠墙" parent="Ground/DeployLayer" index="14" instance=ExtResource("23_6show")]
unique_name_in_owner = true
position = Vector2(507, 49)
position = Vector2(508, 50)
trigger_mode = "interact"
hook_method = "scratching_cat_interacted"
[node name="SignSnapper" type="Marker2D" parent="Ground/DeployLayer/Ambush小猫挠墙"]
position = Vector2(3, 15)
script = ExtResource("32_740dl")
radius = 20.0
walk_to_edge = true
face_inside_on_edge = true
metadata/_custom_type_script = "uid://cnt01hiw52bmn"
[node name="小猫挠墙" type="AnimatedSprite2D" parent="Ground/DeployLayer/Ambush小猫挠墙"]
position = Vector2(8, 16)
sprite_frames = ExtResource("10_2hv3f")
animation = &"小猫循环挠墙"
autoplay = "小猫循环挠墙"
script = ExtResource("34_w67cj")
action_configs = Array[Dictionary]([{
"animation_intro": &"小猫结束挠墙",
&"animation_next": "小猫呼吸_left"
}])
metadata/_custom_type_script = "uid://cphfob11f7atx"
[node name="EventBinder" type="Node" parent="Ground/DeployLayer/Ambush小猫挠墙"]
script = ExtResource("12_es0xo")
updater_event = &"c03_invite_xchan_supper"
updater_mode = "shower"
updater_ease_duration = 0.0
updater_stages = Array[int]([2])
updater_stage_mode = "exclude"
updater_stages = Array[int]([0, 1])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="小猫挠墙" type="AnimatedSprite2D" parent="Ground/DeployLayer/Ambush小猫挠墙"]
position = Vector2(9, 17)
sprite_frames = ExtResource("10_2hv3f")
animation = &"小猫呼吸"
autoplay = "小猫呼吸"
[node name="SignSnapper" type="Marker2D" parent="Ground/DeployLayer/Ambush小猫挠墙"]
position = Vector2(8, 11)
script = ExtResource("32_740dl")
radius = 20.0
walk_to_edge = true
face_inside_on_edge = true
metadata/_custom_type_script = "uid://cnt01hiw52bmn"
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95)
catty_light_energy = 0.5

View File

@ -16,8 +16,10 @@ func _ready() -> void:
#region node_reference
var closeup肉铺账簿: Closeup2D
var ambush偷听门板: Ambush2D
var ambush拿钥匙: Ambush2D
var pickable新鲜的肉: Pickable2D
var bloody_footstep: AnimatedSprite2D
var xchan: AnimatedSprite2D
#endregion
@ -26,12 +28,18 @@ func _setup_node_reference() -> void:
closeup肉铺账簿 = $"../DeployLayer/Closeup肉铺账簿"
ambush偷听门板 = $"../DeployLayer/Ambush偷听门板"
pickable新鲜的肉 = $"../DeployLayer/Pickable新鲜的肉"
ambush拿钥匙 = $"../DeployLayer/Ambush拿钥匙"
bloody_footstep = $"../DeployLayer/血脚印"
xchan = $"../DeployLayer/小蝉给钥匙"
func _on_ground_ready() -> void:
pickable新鲜的肉.triggered.connect(_on_meat_picked)
if pickable新鲜的肉.picked:
ambush拿钥匙.enabled = true
if not ambush拿钥匙.played:
xchan.modulate.a = 1.0
xchan.play()
bloody_footstep.frame = 8
_post_meat_picked()
if closeup肉铺账簿.icount == 0:
@ -43,28 +51,28 @@ func _on_first_exit_book(_arg = null) -> void:
func _on_meat_picked() -> void:
# 小蝉给钥匙,先静默给,再真给
SceneManager.enable_prop_item_silently("prop_符纸钥匙")
ambush拿钥匙.enabled = true
SceneManager.lock_player()
await SceneManager.get_inspector().quit_and_hidden
bloody_footstep.play()
SceneManager.pop_debug_dialog_info("音效", "小蝉血脚印出现,给钥匙")
$"Sfx小蝉给钥匙".play()
$"Sfx小蝉浮现".play()
await bloody_footstep.animation_finished
var xchan = $"../DeployLayer/小蝉给钥匙" as AnimatedSprite2D
var tween = create_tween()
tween.tween_property(xchan, "modulate:a", 1.0, 1.0)
tween.tween_callback(xchan.play)
tween.tween_callback(SceneManager.get_player().set_facing_direction.bind(Vector2.LEFT))
await xchan.animation_finished
tween = create_tween()
tween.tween_property(xchan, "modulate:a", 0.0, 1.0)
SceneManager.enable_prop_item("prop_符纸钥匙")
SceneManager.unlock_player()
_post_meat_picked()
func take_key() -> void:
SceneManager.enable_prop_item("prop_符纸钥匙")
var tween = create_tween()
tween.tween_property(xchan, "modulate:a", 0.0, 1.0)
func _post_meat_picked() -> void:
# 血脚印 小蝉给钥匙 后 Ambush偷听门板 附近出现轻微敲门声
ambush偷听门板.enabled = true

View File

@ -92,7 +92,7 @@ mode = "场景背景音"
"感应玩家操作" = false
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx小蝉给钥匙" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
[node name="Sfx小蝉浮现" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
stream = ExtResource("5_cbx3n")
bus = &"game_sfx"
script = ExtResource("4_r4bhp")
@ -174,13 +174,19 @@ blend_mode = 2
texture = ExtResource("14_cbx3n")
texture_scale = 0.3
[node name="小蝉给钥匙" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="9"]
[node name="Ambush拿钥匙" parent="Ground/DeployLayer" index="9" instance=ExtResource("6_r4bhp")]
position = Vector2(59, 53)
enabled = false
trigger_mode = "interact"
hook_method = "take_key"
[node name="小蝉给钥匙" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="10"]
modulate = Color(1, 1, 1, 0)
position = Vector2(41, 54)
sprite_frames = ExtResource("15_rt6kj")
animation = &"c03_小婵_give_抬手"
[node name="Ambush长桌" parent="Ground/DeployLayer" index="10" instance=ExtResource("6_r4bhp")]
[node name="Ambush长桌" parent="Ground/DeployLayer" index="11" instance=ExtResource("6_r4bhp")]
position = Vector2(311, 55)
hook_os_key = "c03_s05_长桌"

View File

@ -1,15 +1,17 @@
[gd_scene load_steps=14 format=3 uid="uid://cxacrp8mrrbry"]
[gd_scene load_steps=16 format=3 uid="uid://cxacrp8mrrbry"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_h8p4n"]
[ext_resource type="Script" uid="uid://cxgeon4qs1klv" path="res://scene/ground/scene/c03/s06_胖子卧室.gd" id="2_f527l"]
[ext_resource type="AudioStream" uid="uid://6gttowdwmado" path="res://asset/audio/sfx/环境音/第一章/房间内部场景1.ogg" id="3_fs6xo"]
[ext_resource type="AudioStream" uid="uid://b2mudqvq1dmng" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里1.ogg" id="3_argdf"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_481tl"]
[ext_resource type="Texture2D" uid="uid://c2qdnw8b0rcah" path="res://asset/art/scene/c03/s06_胖子卧室/bg_胖子卧室背景.png" id="4_h8p4n"]
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="5_6747o"]
[ext_resource type="Texture2D" uid="uid://q20myccplwm7" path="res://asset/art/scene/c03/s06_胖子卧室/fg_胖子卧室前景.png" id="5_f527l"]
[ext_resource type="AudioStream" uid="uid://owp3occawow5" path="res://asset/audio/sfx/交互/第一章/sfx_拖箱子.ogg" id="5_uibf0"]
[ext_resource type="AudioStream" uid="uid://bhaws2ungqaf5" path="res://asset/audio/sfx/交互/角色/sfx_哼歌.ogg" id="6_argdf"]
[ext_resource type="Texture2D" uid="uid://coaugvwesap35" path="res://asset/art/scene/c03/s06_胖子卧室/胖子卧室柜子.png" id="6_wsqdn"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="7_wsqdn"]
[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="7_x8gtn"]
[ext_resource type="PackedScene" uid="uid://5uqi3c3f4va1" path="res://scene/ground/script/c03/s06_closeup柜子后的洞.tscn" id="8_1qtud"]
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="10_481tl"]
@ -29,7 +31,7 @@ libraries = {
script = ExtResource("2_f527l")
[node name="Sfx背景音" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
stream = ExtResource("3_fs6xo")
stream = ExtResource("3_argdf")
volume_db = -5.0
autoplay = true
bus = &"game_sfx"
@ -83,15 +85,31 @@ note_key = "c03_s06_没贴的寻人启事"
[node name="Note暗门" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_481tl")]
position = Vector2(330, 81)
action = 3
title_filter = "c03"
note_key = "c03_s06_暗门"
[node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/AmbientLayer" index="0"]
position = Vector2(331, 100)
stream = ExtResource("6_argdf")
volume_db = 24.0
autoplay = true
max_distance = 300.0
attenuation = 3.0
bus = &"game_sfx"
script = ExtResource("7_x8gtn")
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(418, 98)
catty_light_energy = 0.5
player_movement_rect = Rect2(45, -158, 473, 316)
facing_direction = Vector2(-1, 0)
[node name="AudioListener2D" type="AudioListener2D" parent="Ground/MainPlayer" index="6"]
position = Vector2(1, -63)
current = true
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(26, 0)
texture = ExtResource("5_f527l")

View File

@ -86,11 +86,14 @@ func _on_body_interacted(success: bool) -> void:
func play_footstep() -> void:
SceneManager.lock_player()
var sfx = $"Sfx小蝉哼歌" as Sfx
sfx.play()
var sprite = ambush血脚印.get_node("血脚印")
sprite.play()
await sprite.animation_finished
await SceneManager.pop_os_with_str("c03_s08_囚室看到脚印")
SceneManager.unlock_player()
Util.timer(3.0, sfx.easing_kill.bind(3.0))
func eavesdrop() -> void:

View File

@ -1,10 +1,11 @@
[gd_scene load_steps=32 format=3 uid="uid://bixdbbyhroepi"]
[gd_scene load_steps=33 format=3 uid="uid://bixdbbyhroepi"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_fusj3"]
[ext_resource type="Script" uid="uid://ddrlpkqfabx6d" path="res://scene/ground/scene/c03/s08_囚室.gd" id="2_fusj3"]
[ext_resource type="AudioStream" uid="uid://d0ef0felylt8d" path="res://asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.ogg" id="3_dovfj"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_2jtaw"]
[ext_resource type="Texture2D" uid="uid://c53e7kxlfj8kw" path="res://asset/art/scene/c03/s08_囚室/bg_囚室背景.png" id="4_fusj3"]
[ext_resource type="AudioStream" uid="uid://bhaws2ungqaf5" path="res://asset/audio/sfx/交互/角色/sfx_哼歌.ogg" id="5_cvhc1"]
[ext_resource type="Texture2D" uid="uid://dfsqs13fm7urb" path="res://asset/art/scene/c03/s08_囚室/fg_囚室前景.png" id="5_i2s3v"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="5_jua84"]
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_dovfj"]
@ -156,6 +157,13 @@ mode = "场景背景音"
"感应玩家操作" = false
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx小蝉哼歌" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
stream = ExtResource("5_cvhc1")
volume_db = 20.0
bus = &"game_sfx"
script = ExtResource("4_2jtaw")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="2"]
light_mask = 5
position = Vector2(8, 0)

View File

@ -170,7 +170,7 @@ tracks/1/keys = {
"times": PackedFloat32Array(0, 5.96667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(55, -100), Vector2(60, -100)]
"values": [Vector2(80, -62), Vector2(80, -62)]
}
tracks/2/type = "value"
tracks/2/imported = false
@ -399,7 +399,7 @@ clip_1/stream = ExtResource("20_8k23x")
clip_1/auto_advance = 0
[node name="S09" type="Node2D"]
metadata/_edit_horizontal_guides_ = [-627.0]
metadata/_edit_horizontal_guides_ = [-627.0, -120.0]
[node name="Ground" parent="." instance=ExtResource("1_8vqn6")]
scene_name = "c03_s09"
@ -544,6 +544,24 @@ bus = &"game_sfx"
script = ExtResource("10_htuhx")
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="ColorRectLeft" type="ColorRect" parent="Ground/DeployLayer" index="9"]
z_index = 20
offset_left = -18.0
offset_top = -164.0
offset_right = 52.0
offset_bottom = 186.0
mouse_filter = 2
color = Color(0, 0, 0, 1)
[node name="ColorRectRight" type="ColorRect" parent="Ground/DeployLayer" index="10"]
z_index = 20
offset_left = 512.0
offset_top = -180.0
offset_right = 582.0
offset_bottom = 170.0
mouse_filter = 2
color = Color(0, 0, 0, 1)
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(325, 98)
catty_light_energy = 0.5

View File

@ -100,6 +100,7 @@ func label_ambush3() -> void:
func eat_meat() -> void:
$"Sfx小蝉哼歌".play()
final_label.show()
final_label.modulate.a = 0.0
final_meat_ambush.enabled = false
@ -115,7 +116,7 @@ func eat_meat() -> void:
player.reparent_light(light_pivot)
play("eat_meat")
await animation_finished
# TODO 将 final_label 放置到 transition_layer
# 将 final_label 放置到 transition_layer
SceneManager.transition_with_layer(final_label, 2.0, 4.0)
await Util.wait(5.0)
# c03_meat_grinder: 0:初始化 1:已装转盘 2:胖子游戏结束 3:绞肉机演出 4:演出结束

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=23 format=3 uid="uid://cxabqg87g4vxc"]
[gd_scene load_steps=24 format=3 uid="uid://cxabqg87g4vxc"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ly8ge"]
[ext_resource type="Script" uid="uid://f4uampm47832" path="res://scene/ground/scene/c03/s12_胖子游戏3.gd" id="2_c01lu"]
[ext_resource type="AudioStream" uid="uid://dvc2emnfcmabx" path="res://asset/audio/sfx/环境音/白噪音/白噪声楼道1.ogg" id="3_h404e"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_fjio5"]
[ext_resource type="AudioStream" uid="uid://bhaws2ungqaf5" path="res://asset/audio/sfx/交互/角色/sfx_哼歌.ogg" id="5_47wdn"]
[ext_resource type="Texture2D" uid="uid://jimhy0dgkeoi" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/地面.png" id="9_fjio5"]
[ext_resource type="Texture2D" uid="uid://b22lmq2qtsmf1" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/最后的背景 循环贴图.png" id="9_mr0pm"]
[ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="9_vyyx8"]
@ -138,6 +139,13 @@ bus = &"game_sfx"
script = ExtResource("4_fjio5")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx小蝉哼歌" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
stream = ExtResource("5_47wdn")
volume_db = 20.0
bus = &"game_sfx"
script = ExtResource("4_fjio5")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="2"]
light_mask = 5
position = Vector2(2797, 0)

View File

@ -99,6 +99,14 @@ func turn_on(gradually := true):
_check_sign_status()
# 熄灭光线, 并且不可点燃
func hold_off_light() -> void:
enabled = false
light_sprite2d.hide()
point_light.hide()
point_light_ground.hide()
func _switch_gaslight(state := true, gradually := false):
var engrgy1 = gaslight_energy
var engrgy2 = gaslight_ground_energy

View File

@ -41,6 +41,7 @@ mute_when_interacted = true
prop_key = "prop_火柴"
prop_key2 = ""
prop_key3 = ""
prop_key4 = ""
[node name="SfxInvalid" type="AudioStreamPlayer" parent="."]
stream = ExtResource("9_l338h")

View File

@ -30,9 +30,12 @@ signal exit(arg)
@onready var sfx_packing = $SfxPacking as Sfx
@onready var inspect_content = %"InspectContent" as Control
@onready var draggable_finished_powder = %"Draggable完成的药粉" as Draggable2D
@onready var hover_spec = %"Hover药方" as HoverLightClickArea
@onready var hover_grinder = %"Hover石臼棒" as HoverLightClickArea
@onready var hover_finished_powder = %"Hover完成的药粉" as HoverLightClickArea
@onready var hover_packing_paper = %"Hover洞中药纸" as HoverLightClickArea
@onready var packing_paper = %"桌面药纸" as Sprite2D
@onready var hover_packed_drug = %"Hover桌面药包" as HoverLightClickArea
const correct_ingredients = [0, 3, 5, 6, 7] # 生姜,竹叶,甘蔗, 蟋蟀, 粉末
@ -171,20 +174,54 @@ func _process_grinding() -> void:
animation_player.play("intro_grinding")
sfx_toggle_grinder.play()
await animation_player.animation_finished
hover_finished_powder.freezing = false
hover_finished_powder.interacted.connect(_on_finished_powder_interacted, CONNECT_ONE_SHOT)
hover_packing_paper.freezing = false
hover_packing_paper.interacted.connect(_on_packing_paper_interacted, CONNECT_ONE_SHOT)
func _on_finished_powder_interacted() -> void:
var packing_paper = $"洞中药纸"
func _on_packing_paper_interacted() -> void:
hover_packing_paper.freezing = true
sfx_packing.play()
packing_paper.show()
packing_paper.modulate.a = 0.0
var tween = create_tween()
tween.tween_property(packing_paper, "modulate:a", 0.0, 1.0)
tween = create_tween()
tween.tween_interval(0.5)
tween.tween_property(hover_finished_powder, "modulate:a", 0.0, 0.5)
tween.tween_callback(SceneManager.enable_prop_item.bind("prop_药包"))
tween.tween_callback(exit.emit.bind(true))
tween.tween_property(hover_packing_paper, "modulate:a", 0.0, 1.0)
tween.parallel().tween_property(packing_paper, "modulate:a", 1.0, 1.0)
draggable_finished_powder.freezing = false
draggable_finished_powder.picked.connect(_on_finished_powder_picked)
draggable_finished_powder.dropped.connect(_on_finished_powder_dropped)
func _on_finished_powder_picked(_node) -> void:
draggable_finished_powder.z_index = 5 # 置于顶层
create_tween().tween_property(draggable_finished_powder, "scale", Vector2(0.9, 0.9), 0.5)
func _on_finished_powder_dropped(node: Draggable2D) -> void:
var target_pos = packing_paper.global_position
var distance_squared = node.global_position.distance_squared_to(target_pos)
if distance_squared > 1600:
# 需要放在 packing_paper 附近
node.force_hold()
node.invalid_shake()
else:
draggable_finished_powder.freezing = true
sfx_packing.play()
hover_packed_drug.show()
hover_packed_drug.modulate.a = 0.0
hover_packed_drug.interacted.connect(pick_drug)
var tween = create_tween()
tween.tween_interval(0.5)
tween.tween_property(draggable_finished_powder, "modulate:a", 0.0, 0.7)
tween.parallel().tween_property(packing_paper, "modulate:a", 0.0, 0.7)
tween.parallel().tween_property(hover_packed_drug, "modulate:a", 1.0, 1.0)
tween.tween_callback(func():hover_packed_drug.freezing = false)
func pick_drug() -> void:
# 抓药完成
EventManager.set_stage_if_greater("c03_drug_game", 2)
SceneManager.enable_prop_item("prop_药包")
exit.emit(true)
func ingredients_fading_out() -> void:

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=61 format=3 uid="uid://cpxt082my5yac"]
[gd_scene load_steps=64 format=3 uid="uid://cpxt082my5yac"]
[ext_resource type="Script" uid="uid://dj2b4f3soxki5" path="res://scene/ground/script/c02/s03_closeup抓药游戏.gd" id="1_0wbm3"]
[ext_resource type="Texture2D" uid="uid://bs4npq7fnwjhw" path="res://asset/art/little_game/c03_药车游戏/背景底图.png" id="2_5ts1i"]
@ -46,6 +46,9 @@
[ext_resource type="Texture2D" uid="uid://b5ibixjn6oikx" path="res://asset/art/little_game/c03_药车游戏/黑色粉末单独.png" id="32_gf0xj"]
[ext_resource type="Texture2D" uid="uid://bq1ilitkvodnr" path="res://asset/art/little_game/c03_药车游戏/蟋蟀单独.png" id="33_26hqw"]
[ext_resource type="Texture2D" uid="uid://dyeeyfdr7gbh2" path="res://asset/art/little_game/c03_药车游戏/蟋蟀一对.png" id="36_stbjq"]
[ext_resource type="PackedScene" uid="uid://bg7oictr1wgex" path="res://scene/little_game/general/draggable.tscn" id="40_38b4f"]
[ext_resource type="Texture2D" uid="uid://dv3hi7mccvfgk" path="res://asset/art/little_game/c03_药车游戏/药纸.png" id="42_2rjr1"]
[ext_resource type="Texture2D" uid="uid://dp8junmvxwop1" path="res://asset/art/prop/c03/药包.png" id="44_cfntv"]
[sub_resource type="Animation" id="Animation_wdf7x"]
length = 0.001
@ -100,38 +103,38 @@ tracks/3/keys = {
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("完成的药粉:modulate")
tracks/4/path = NodePath("Hover洞中药纸/洞中药纸:modulate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
"values": [Color(1, 1, 1, 1)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("洞中药纸:modulate")
tracks/5/path = NodePath("SfxPacking:playing")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
"update": 1,
"values": [false]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("SfxPacking:playing")
tracks/6/path = NodePath("Draggable完成的药粉:modulate")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_26hqw"]
@ -185,25 +188,13 @@ tracks/3/keys = {
"update": 1,
"values": [true, true, true]
}
tracks/4/type = "value"
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("完成的药粉:modulate")
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(3.2, 5.9),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/5/type = "method"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath(".")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(3.33333),
"transitions": PackedFloat32Array(1),
"values": [{
@ -211,6 +202,18 @@ tracks/5/keys = {
"method": &"ingredients_fading_out"
}]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Draggable完成的药粉:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(3.23333, 6),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_wdf7x"]
_data = {
@ -754,12 +757,22 @@ texture = ExtResource("29_26hqw")
position = Vector2(-82, -34)
polygon = PackedVector2Array(100, 0, 67.8, 0, 65.8, 1.3, 62.4, 0, 59.4, 0, 55, 2.9, 46.2, 3, 43.1, 6, 41.6, 5, 37.3, 5, 26.9, 12.5, 25, 10, 21.4, 10, 0.4, 25, 0, 50.7, 36, 77.9, 36, 79.5, 53.7, 85, 111.2, 85, 131.4, 81, 133.8, 81, 166.8, 49, 168.4, 49, 170, 45, 170, 25, 164.5, 25, 140.5, 13, 141.1, 12, 142.3, 12, 143.4, 9.5, 141, 7.1, 141, 3.8, 136.5, 6, 133.6, 6, 128, 1.9, 128, 0, 125.6, 0, 118.8, 2, 117.7, 2, 116, 0.9, 116, 0, 111, 0, 108.5, 1, 104.1, 1)
[node name="完成的药粉" type="Sprite2D" parent="."]
[node name="Draggable完成的药粉" parent="." instance=ExtResource("40_38b4f")]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
light_mask = 5
position = Vector2(52, 132)
position = Vector2(138, 174)
freezing = true
texture = ExtResource("29_26hqw")
centered = false
[node name="PointLight2D" type="PointLight2D" parent="Draggable完成的药粉"]
energy = 2.0
range_layer_max = 10
range_item_cull_mask = 128
texture = ExtResource("29_26hqw")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Draggable完成的药粉"]
position = Vector2(-82, -34)
polygon = PackedVector2Array(100, 0, 67.8, 0, 65.8, 1.3, 62.4, 0, 59.4, 0, 55, 2.9, 46.2, 3, 43.1, 6, 41.6, 5, 37.3, 5, 26.9, 12.5, 25, 10, 21.4, 10, 0.4, 25, 0, 50.7, 36, 77.9, 36, 79.5, 53.7, 85, 111.2, 85, 131.4, 81, 133.8, 81, 166.8, 49, 168.4, 49, 170, 45, 170, 25, 164.5, 25, 140.5, 13, 141.1, 12, 142.3, 12, 143.4, 9.5, 141, 7.1, 141, 3.8, 136.5, 6, 133.6, 6, 128, 1.9, 128, 0, 125.6, 0, 118.8, 2, 117.7, 2, 116, 0.9, 116, 0, 111, 0, 108.5, 1, 104.1, 1)
[node name="StaticBodyBowl" type="StaticBody2D" parent="."]
position = Vector2(132, 178)
@ -775,12 +788,59 @@ texture = ExtResource("15_nugkd")
show_behind_parent = true
polygon = PackedVector2Array(-94, -7, -72, 14, -53, 22, -22, 25, 20, 24, 49, 22, 74, 15, 97, -1, 109, -8, 126, -16, 456, -18, 460, 87, 24, 90, -160, 86, -162, -30, -142, -63, -102, -30)
[node name="洞中药纸" type="Sprite2D" parent="."]
[node name="Hover洞中药纸" parent="." instance=ExtResource("20_8lx66")]
unique_name_in_owner = true
position = Vector2(53, 242)
freezing = true
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hover洞中药纸"]
position = Vector2(-39, -44)
polygon = PackedVector2Array(41, 0, 31, 0, 25.7, 8.6, 24, 5.5, 24, 2, 15.7, 2, 0.7, 33, 0, 33, 0, 66.5, 4, 81, 4, 86.1, 9, 89.1, 9, 90.8, 18, 91.8, 50.7, 92, 55, 90.4, 73.1, 89, 80, 89, 80, 72.4, 78, 58, 78, 53.5, 67, 33.3, 67, 31.2, 41, 2.2)
[node name="洞中药纸" type="Sprite2D" parent="Hover洞中药纸"]
light_mask = 33
z_index = 1
position = Vector2(14, 198)
position = Vector2(-39, -44)
texture = ExtResource("30_8leof")
centered = false
[node name="PointLight2D" type="PointLight2D" parent="Hover洞中药纸"]
position = Vector2(1, 2)
range_layer_max = 10
range_item_cull_mask = 32
texture = ExtResource("30_8leof")
[node name="桌面药纸" type="Sprite2D" parent="."]
unique_name_in_owner = true
visible = false
z_index = 1
position = Vector2(302, 238)
scale = Vector2(1.5, 1.5)
texture = ExtResource("42_2rjr1")
[node name="Hover桌面药包" parent="." instance=ExtResource("20_8lx66")]
unique_name_in_owner = true
visible = false
position = Vector2(305, 214)
freezing = true
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hover桌面药包"]
position = Vector2(3, 9)
polygon = PackedVector2Array(1, -64.3, 1, -62.5, -55.1, -43.8, -70.6, -51, -74, -51, -78, -46, -79.4, -46, -85.4, -29, -87.3, -29, -86, -18.8, -86, -13.5, -81.2, -4.7, -81.8, -4, -84, -4, -84, 14.7, -62, 43.6, -62, 46, -55, 51, -55, 52.7, -44, 54.7, -44, 55.9, 37.9, 61, 47.8, 61, 65.9, 44, 67.9, 44, 88.9, 20, 91.4, 20, 90, 11.7, 90, 5.2, 84, -0.800003, 84, -2.6, 91.1, -15, 93, -15, 93, -30.8, 84, -39.8, 84, -41.5, 74, -44.5, 74, -45.5, 30, -59.5, 30, -60.8)
[node name="PointLight2D" type="PointLight2D" parent="Hover桌面药包"]
position = Vector2(3, 9)
energy = 0.8
range_layer_max = 10
range_item_cull_mask = 32
texture = ExtResource("44_cfntv")
[node name="桌面药包" type="Sprite2D" parent="Hover桌面药包"]
light_mask = 32
z_index = 1
position = Vector2(3, 9)
texture = ExtResource("44_cfntv")
[node name="遮罩" type="TextureRect" parent="."]
light_mask = 5
z_index = 1
@ -789,7 +849,6 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("2_wtw10")
[node name="InspectContent" type="Control" parent="."]
@ -802,7 +861,7 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
mouse_filter = 1
[node name="药方" type="TextureRect" parent="InspectContent"]
layout_mode = 0
@ -810,11 +869,11 @@ offset_left = -14.0
offset_top = -10.0
offset_right = 562.0
offset_bottom = 306.0
mouse_filter = 2
texture = ExtResource("25_gonyp")
[node name="ContentInspector" parent="InspectContent" instance=ExtResource("3_h2dug")]
layout_mode = 1
mouse_filter = 1
[node name="遮罩" type="TextureRect" parent="InspectContent/ContentInspector"]
layout_mode = 1
@ -823,7 +882,6 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("5_qafag")
[node name="Label" type="Label" parent="InspectContent/ContentInspector/遮罩"]
@ -840,6 +898,7 @@ offset_right = 60.0
offset_bottom = 15.5
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 1
text = "生姜两片
竹叶十片去尖
经霜三年的甘蔗

View File

@ -25,13 +25,6 @@ func _on_ground_ready(_ground: Ground2D):
if interactable.interacted_times >= 3:
closeup.enabled = true
boss_sprite.hide()
closeup.exit.connect(_on_closeup_exit)
func _on_closeup_exit(win = false) -> void:
if win:
# 完成抓药游戏
EventManager.set_stage_if_greater("c03_drug_game", 2)
func _boss_interacted(valid := true) -> void:

View File

@ -16,6 +16,7 @@ func _on_global_stage_updated(e: StringName, s: int):
func _on_ground_ready(_ground: Ground2D):
paperman = $"../左侧纸人"
var ambush = $"Ambush疯子慌张跑开" as Ambush2D
if stage == 0:
# 重置 ambush
@ -35,7 +36,7 @@ func _on_ambush_triggered() -> void:
SceneManager.unlock_player()
var paperman_x = 24
var paperman:AnimatedSprite2D
func _on_pre_stage_updated():
@ -44,9 +45,20 @@ func _on_pre_stage_updated():
func _on_stage_updated():
if stage == 1:
$"../左侧纸人".visible = true
paperman.visible = true
if ArchiveManager.get_global_value("c03_s06_paperman_knocked"):
paperman.frame = 1
$"../portal_left".before_pre_transport_wait.connect(_on_left_poortal_interacted)
# 显示纸人的时候阻塞通道
# $"../portal_left".enabled = false
else:
$"../左侧纸人".visible = false
# $"../portal_left".enabled = true
func _on_left_poortal_interacted()-> void:
# 0 正常; 1 歪头
if not ArchiveManager.get_global_value("c03_s06_paperman_knocked"):
ArchiveManager.set_global_entry("c03_s06_paperman_knocked", true)
$"Sfx纸人咔嚓转头".global_play()
paperman.frame = 1

View File

@ -17,7 +17,8 @@ signal interact_start
@onready var sfx_invalid = $SfxInvalid as Sfx
@onready var sfx_success = $SfxSuccess as Sfx
@onready var sfx_bgm = $SfxBgm as AudioStreamPlayer
@onready var sfx_bgm_c02 = $SfxBgmC02 as Sfx
@onready var sfx_bgm_c03 = $SfxBgmC03 as Sfx
@onready var sign_mark = %Sign as Sign
@onready var sign_snapper = %SignSnapper as SignSnapper
@onready var area2d = %Area2D as Area2D
@ -60,11 +61,15 @@ var icount: int:
sign_mark.sprite2d.texture = matched_sign_texture
var coin: Pickable2D
var sfx_bgm: Sfx
func _ready() -> void:
if Engine.is_editor_hint():
return
if EventManager.get_chapter_stage() <= 2:
sfx_bgm = sfx_bgm_c02
else:
sfx_bgm = sfx_bgm_c03
# sign_mark.interacted.connect(_on_interacted)
sign_snapper.arrived.connect(_on_interacted)
sign_mark.cancel.connect(_on_cancel)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=19 format=3 uid="uid://xovlfee503a4"]
[gd_scene load_steps=20 format=3 uid="uid://xovlfee503a4"]
[ext_resource type="Texture2D" uid="uid://cawpq7rnho5px" path="res://asset/art/gif/c02_小手/洞.png" id="1_47cqy"]
[ext_resource type="Script" uid="uid://my5xqi3bkka6" path="res://scene/ground/script/c02/小手讨东西.gd" id="1_n7thl"]
@ -14,6 +14,7 @@
[ext_resource type="SpriteFrames" uid="uid://b6nvwset1hwbv" path="res://asset/art/gif/c02_小手/c02_小手_frames.tres" id="9_yatcw"]
[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.ogg" id="10_0tuif"]
[ext_resource type="Texture2D" uid="uid://2mjipesnigcr" path="res://asset/art/prop/c02/锡箔元宝.png" id="10_47cqy"]
[ext_resource type="AudioStream" uid="uid://wt7jlambh6y" path="res://asset/audio/peiyin/c03/c03_棺材怪_3.ogg" id="10_n2hq3"]
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="12_6lwlv"]
[ext_resource type="Script" uid="uid://cnt01hiw52bmn" path="res://scene/entity/ux/sign_snapper.gd" id="15_lr23o"]
@ -46,8 +47,16 @@ bus = &"game_sfx"
script = ExtResource("7_7dftu")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxBgm" type="AudioStreamPlayer" parent="."]
[node name="SfxBgmC02" type="AudioStreamPlayer" parent="."]
stream = ExtResource("9_7dftu")
volume_db = -10.0
bus = &"game_sfx"
script = ExtResource("7_7dftu")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxBgmC03" type="AudioStreamPlayer" parent="."]
stream = ExtResource("10_n2hq3")
volume_db = -10.0
bus = &"game_sfx"
script = ExtResource("7_7dftu")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"

View File

@ -3,4 +3,8 @@ extends CanvasLayer
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
%Label.text = tr("c02_保卫科老鼠精").replace("{br}", "\n")
if EventManager.get_chapter_stage() <= 2:
%Label.text = tr("c02_保卫科老鼠精").replace("{br}", "\n")
else:
%Label.text = tr("c02_保卫科老鼠精_第二章").replace("{br}", "\n")

View File

@ -3,10 +3,15 @@ extends CanvasLayer
@onready var button = $TextureButton as TextureButton
var texture_dict = {
var texture_dict_c02 = {
"0": preload("res://asset/art/scene/c02/s04_保卫科/花名册/花名册封皮.png"),
"1": preload("res://asset/art/scene/c02/s04_保卫科/花名册/翻开页.png"),
}
var texture_dict_c03 = {
"0": preload("res://asset/art/scene/c02/s04_保卫科/花名册/花名册封皮.png"),
"1": preload("res://asset/art/scene/c02/s04_保卫科/花名册/翻开页_第二章.png"),
}
var click_count = 0
@ -20,7 +25,11 @@ func _on_button_pressed() -> void:
$"Sfx翻页".play()
click_count += 1
if click_count == 1:
button.texture_normal = texture_dict["1"]
if EventManager.get_chapter_stage() <= 2:
button.texture_normal = texture_dict_c02["1"]
$ContentInspector.visible = true
else:
button.texture_normal = texture_dict_c03["1"]
$ContentInspectorC03.visible = true
button.set_anchors_preset(Control.PRESET_CENTER)
$ContentInspector.visible = true
button.disabled = true

View File

@ -41,7 +41,6 @@ texture_normal = ExtResource("3_myeas")
[node name="ContentInspector" parent="." instance=ExtResource("4_1s4sv")]
visible = false
mouse_filter = 2
[node name="HBoxContainer" type="TextureRect" parent="ContentInspector"]
custom_minimum_size = Vector2(200, 0)
@ -106,3 +105,66 @@ text = "c02_保卫科花名册7"
[node name="Label8" type="Label" parent="ContentInspector/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "c02_保卫科花名册8"
[node name="ContentInspectorC03" parent="." instance=ExtResource("4_1s4sv")]
visible = false
[node name="HBoxContainer" type="TextureRect" parent="ContentInspectorC03"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -282.0
offset_top = -120.0
offset_right = 282.0
offset_bottom = 120.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("4_myeas")
[node name="VBoxContainer" type="VBoxContainer" parent="ContentInspectorC03/HBoxContainer"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -42.0
offset_top = -66.0
offset_right = 42.0
offset_bottom = 66.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="Label1" type="Label" parent="ContentInspectorC03/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "c03_保卫科花名册1"
[node name="Label2" type="Label" parent="ContentInspectorC03/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "c03_保卫科花名册2"
[node name="Label3" type="Label" parent="ContentInspectorC03/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "c03_保卫科花名册3"
[node name="Label4" type="Label" parent="ContentInspectorC03/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "c03_保卫科花名册4"
[node name="Label5" type="Label" parent="ContentInspectorC03/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "c03_保卫科花名册5"
[node name="Label6" type="Label" parent="ContentInspectorC03/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "c03_保卫科花名册6"
[node name="Label7" type="Label" parent="ContentInspectorC03/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "c03_保卫科花名册7"

View File

@ -47,24 +47,21 @@ func _on_ground_ready(_ground: Ground2D):
# Part2: 下半段对话2&灯忽闪
animation_player.play("light_flipping")
SceneManager.pop_debug_dialog_info("音效", "老鼠叫声+悉悉索索老鼠走路钻洞声")
the_blind.play("瞎子_咳嗽吐血")
DialogueManager.show_dialogue_balloon(c03_dialogue, "c03_s02_邀请小蝉与瞎子对话2")
await DialogueManager.dialogue_ended
# TODO
# Part3: 瞎子咳嗽
SceneManager.pop_debug_dialog_info("音效(或配音老师做)", "瞎子咳嗽&吐血")
DialogueManager.show_dialogue_balloon(c03_dialogue, "c03_s02_邀请小蝉与瞎子对话3")
await DialogueManager.dialogue_ended
the_blind.play("瞎子_咳嗽吐血")
Util.timer(1.0, $"Sfx2D瞎子咳嗽".play)
the_blind.frame_changed.connect(
# 共 28 帧,第 20 帧开始
Util.timer(6.0,
func ():
if the_blind.frame == 20:
animation_player.pause()
# Part4: 过度到快速闪烁
var tween = create_tween()
tween.tween_property(light_adder, "energy", 0.8, 0.2)
await tween.finished
animation_player.play("light_fast_flipping")
animation_player.pause()
# Part4: 过度到快速闪烁
var tween = create_tween()
tween.tween_property(light_adder, "energy", 0.8, 0.2)
await tween.finished
animation_player.play("light_fast_flipping")
)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=28 format=3 uid="uid://dohvkxfdmcrw4"]
[gd_scene load_steps=29 format=3 uid="uid://dohvkxfdmcrw4"]
[ext_resource type="Script" uid="uid://d31fc1bolhwlf" path="res://scene/ground/script/c02/刮海报.gd" id="1_pdoaa"]
[ext_resource type="Script" uid="uid://bagqdqsd0b4fy" path="res://scene/ground/script/c03/鬼母子游戏.gd" id="2_86fqw"]
@ -17,9 +17,8 @@
[ext_resource type="Texture2D" uid="uid://dc1yq5hnho25q" path="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/4正.png" id="12_b7rxv"]
[ext_resource type="SpriteFrames" uid="uid://cmvr3lbwe3h7p" path="res://asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres" id="14_s7g11"]
[ext_resource type="PackedScene" uid="uid://bkk1rxx36ghrl" path="res://scene/entity/ux/hover_light_click_area.tscn" id="15_3uuyc"]
[ext_resource type="Texture2D" uid="uid://cstd74y5811u3" path="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/l_舌头.png" id="17_682sk"]
[ext_resource type="Texture2D" uid="uid://cxgkncudoqrd" path="res://asset/art/prop/c03/药纸.png" id="16_5s8gu"]
[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="17_dhl8m"]
[ext_resource type="Texture2D" uid="uid://csu41qqgeqqhl" path="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/e_舌头.png" id="19_puk8y"]
[ext_resource type="Texture2D" uid="uid://d2ynca8tib6r7" path="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/海报.png" id="22_puk8y"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6jvn1"]
@ -47,6 +46,15 @@ height = 115.7
radius = 21.7
height = 91.8
[sub_resource type="Gradient" id="Gradient_puk8y"]
offsets = PackedFloat32Array(1)
colors = PackedColorArray(1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_b7rxv"]
gradient = SubResource("Gradient_puk8y")
width = 128
height = 48
[node name="c03_barber_shave_flyer" type="CanvasLayer"]
layer = 5
script = ExtResource("1_pdoaa")
@ -160,32 +168,34 @@ centered = false
[node name="Props" type="Node2D" parent="鬼母子游戏/倒塌"]
visible = false
[node name="纸舌头" parent="鬼母子游戏/倒塌/Props" instance=ExtResource("15_3uuyc")]
[node name="纸" parent="鬼母子游戏/倒塌/Props" instance=ExtResource("15_3uuyc")]
unique_name_in_owner = true
position = Vector2(255, 248)
[node name="Sprite2D" type="Sprite2D" parent="鬼母子游戏/倒塌/Props/纸舌头"]
position = Vector2(-40, 0)
texture = ExtResource("19_puk8y")
centered = false
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="鬼母子游戏/倒塌/Props/药纸"]
scale = Vector2(0.7, 0.3)
polygon = PackedVector2Array(43, -26.5, -19, -44.7, -19, -42.1, -69, -5, -69, -1.6, -46.3, 6, -41.6, 6, -8.5, 24, -5.7, 24, 10.3, 36, 12.1, 36, 20, 44.7, 20, 46.4, 22.6, 47.4, 67.9, -4, 69.4, -4, 70, -5.6, 70, -7, 61, -14.9, 61, -16.2, 43, -25.3)
[node name="PointLight2D" type="PointLight2D" parent="鬼母子游戏/倒塌/Props/纸舌头"]
position = Vector2(7, 7)
[node name="Sprite2D" type="Sprite2D" parent="鬼母子游戏/倒塌/Props/药纸"]
light_mask = 2
scale = Vector2(0.7, 0.3)
texture = ExtResource("16_5s8gu")
[node name="PointLight2D" type="PointLight2D" parent="鬼母子游戏/倒塌/Props/药纸"]
light_mask = 0
position = Vector2(1, 5)
energy = 0.6
range_layer_max = 10
texture = ExtResource("17_682sk")
range_item_cull_mask = 2
texture = SubResource("GradientTexture2D_b7rxv")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="鬼母子游戏/倒塌/Props/纸舌头"]
visible = false
position = Vector2(7, 6)
polygon = PackedVector2Array(-49, -10, -49, -2.8, -38, 3.2, -38, 5.1, 5.1, 3, 13.1, 3, 18.1, 9, 28.8, 9, 32, 5.8, 32, 4.2, 39.4, 1, 41.4, 1, 42.4, -1.6, 36, -7, 36, -8.8, 26, -9.9)
[node name="EventBinder" type="Node" parent="鬼母子游戏/倒塌/Props/纸舌头"]
[node name="EventBinder" type="Node" parent="鬼母子游戏/倒塌/Props/药纸"]
script = ExtResource("17_dhl8m")
updater_event = &"c03_hariti_tongue"
updater_event = &"c03_hariti_drug_paper"
updater_mode = "shower"
updater_ease_duration = 0.0
updater_stages = Array[int]([0])
trigger_event = &"c03_hariti_tongue"
trigger_event = &"c03_hariti_drug_paper"
trigger_mode = "interacted"
metadata/_custom_type_script = "uid://0wjaho6qkg6s"

View File

@ -301,7 +301,7 @@ theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("18_3m4i6")
theme_override_font_sizes/normal_font_size = 40
bbcode_enabled = true
text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3]"
text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3]舌...头..."
fit_content = true
autowrap_mode = 1
horizontal_alignment = 1
@ -335,7 +335,7 @@ theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("18_3m4i6")
theme_override_font_sizes/normal_font_size = 40
bbcode_enabled = true
text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3]"
text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3]药..."
fit_content = true
autowrap_mode = 1
horizontal_alignment = 1

View File

@ -19,9 +19,9 @@ func _on_majhong_interacted() -> void:
SceneManager.enable_prop_item("prop_麻将")
func _on_drug_spec_interacted() -> void:
SceneManager.enable_prop_item("prop_药方", true)
# 拿药方后,启动 drug game
EventManager.set_stage("c03_drug_game", 1)
SceneManager.enable_prop_item("prop_药方", true)
func _on_pic_interacted() -> void:
if pic.freezing:

View File

@ -27,7 +27,7 @@ var success_states: Array = [2, 1, 3, 0]
func _ready() -> void:
EventManager.stage_updated.connect(_on_stage_updated)
$"../Draggable纸钱".picked.connect(GlobalFunctor.c03_get_paper_coin)
$"倒塌/Props/舌头".interacted.connect(SceneManager.enable_prop_item.bind("prop_舌头"))
$"倒塌/Props/".interacted.connect(SceneManager.enable_prop_item.bind("prop_"))
$"../刮刮乐".visible = true
var shaven = ArchiveManager.get_global_value("c03_barber_shave_flyer")

View File

@ -194,3 +194,37 @@ func force_hold() -> void:
current_focusing_node = self
holding = true
picked.emit(self)
# 缓存常量
const SHAKE_FPS := 15.0
const SHAKE_DURATION := 0.8
const SHAKE_DELTA := 12.0
const HUD_FADE_DURATION := 0.3
var _shake_tween: Tween
func invalid_shake() -> void:
if _shake_tween and _shake_tween.is_running():
_shake_tween.kill()
# 抖动效果
_shake_tween = create_tween()
var count := int(SHAKE_DURATION * SHAKE_FPS)
var delta_t := 1.0 / SHAKE_FPS
sprite.modulate = Color.INDIAN_RED
# 预计算随机值,避免在循环中多次调用 randf_range
for i in count:
var decay := exp(-float(i))
var offset := Vector2(
randf_range(-SHAKE_DELTA, SHAKE_DELTA) * decay,
randf_range(-SHAKE_DELTA, SHAKE_DELTA) * decay
)
_shake_tween.tween_property(sprite, "offset", sprite_offset + offset, delta_t).set_trans(
Tween.TRANS_CUBIC
)
_shake_tween.tween_callback(_reset_after_shake)
func _reset_after_shake() -> void:
sprite.modulate = Color.WHITE
sprite.offset = sprite_offset

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=16 format=3 uid="uid://dc778gsjfr3ky"]
[gd_scene load_steps=15 format=3 uid="uid://dc778gsjfr3ky"]
[ext_resource type="Script" uid="uid://ytrf63hbqa45" path="res://scene/ux/prop_hud.gd" id="1_bbv0a"]
[ext_resource type="Texture2D" uid="uid://dok08tovej18w" path="res://asset/art/ui/hud/normal_left.png" id="2_bjc2b"]
@ -11,7 +11,6 @@
[ext_resource type="Texture2D" uid="uid://c0gjes4a8ou3b" path="res://asset/art/ui/hud/select_mark.png" id="7_53yeo"]
[ext_resource type="Texture2D" uid="uid://yvwjasroj4yr" path="res://asset/art/prop/c01/银元.png" id="9_hty3r"]
[ext_resource type="Texture2D" uid="uid://c1ogeaa836kry" path="res://asset/art/ui/hud/normal_right.png" id="10_vkaik"]
[ext_resource type="Script" uid="uid://cmpkidbjeue6p" path="res://scene/ux/test_hbox.gd" id="11_008sv"]
[ext_resource type="Texture2D" uid="uid://d03la4d2swk0k" path="res://asset/art/ui/hud/pressed_right.png" id="11_a512b"]
[ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="13_lom38"]
@ -248,23 +247,3 @@ layout_mode = 2
size_flags_horizontal = 4
text = "1012钥匙"
label_settings = SubResource("LabelSettings_830v8")
[node name="TestHBox" type="HBoxContainer" parent="."]
visible = false
layout_mode = 0
offset_left = 450.0
offset_top = 476.667
offset_right = 490.0
offset_bottom = 516.667
mouse_filter = 2
script = ExtResource("11_008sv")
[node name="AddButton" type="Button" parent="TestHBox"]
layout_mode = 2
theme_override_font_sizes/font_size = 42
text = "add_item"
[node name="RemoveButton" type="Button" parent="TestHBox"]
layout_mode = 2
theme_override_font_sizes/font_size = 42
text = "remove_item"