diff --git a/asset/art/prop/c02/海报特写/剪辫子侦探.png b/asset/art/prop/c02/海报特写/剪辫子侦探.png
old mode 100755
new mode 100644
index ccab69f5..5c3e806a
Binary files a/asset/art/prop/c02/海报特写/剪辫子侦探.png and b/asset/art/prop/c02/海报特写/剪辫子侦探.png differ
diff --git a/asset/art/prop/c02/海报(小)/剪辫子侦探.png b/asset/art/prop/c02/海报(小)/剪辫子侦探.png
old mode 100755
new mode 100644
index a4ffa09b..1abff7ec
Binary files a/asset/art/prop/c02/海报(小)/剪辫子侦探.png and b/asset/art/prop/c02/海报(小)/剪辫子侦探.png differ
diff --git a/asset/art/scene/c02/s02_大门过道/bg_过道背景.png b/asset/art/scene/c02/s02_大门过道/bg_过道背景.png
index 15c5eb3d..2b4694e0 100644
Binary files a/asset/art/scene/c02/s02_大门过道/bg_过道背景.png and b/asset/art/scene/c02/s02_大门过道/bg_过道背景.png differ
diff --git a/asset/art/scene/c02/s02_大门过道/ux_过道面板.png b/asset/art/scene/c02/s02_大门过道/ux_过道面板.png
index 24a16f91..6003edcf 100644
Binary files a/asset/art/scene/c02/s02_大门过道/ux_过道面板.png and b/asset/art/scene/c02/s02_大门过道/ux_过道面板.png differ
diff --git a/asset/art/scene/c02/s03_公寓一楼院子/f_禁用火具.png b/asset/art/scene/c02/s03_公寓一楼院子/f_禁用火具.png
new file mode 100644
index 00000000..541347b3
Binary files /dev/null and b/asset/art/scene/c02/s03_公寓一楼院子/f_禁用火具.png differ
diff --git a/asset/art/scene/c02/s03_公寓一楼院子/f_禁用火具.png.import b/asset/art/scene/c02/s03_公寓一楼院子/f_禁用火具.png.import
new file mode 100644
index 00000000..37ea011a
--- /dev/null
+++ b/asset/art/scene/c02/s03_公寓一楼院子/f_禁用火具.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://8hjot820jnyo"
+path="res://.godot/imported/f_禁用火具.png-eeda21314b6690c12a250a220c4d2ada.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/art/scene/c02/s03_公寓一楼院子/f_禁用火具.png"
+dest_files=["res://.godot/imported/f_禁用火具.png-eeda21314b6690c12a250a220c4d2ada.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png b/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png
new file mode 100644
index 00000000..fb1424d6
Binary files /dev/null and b/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png differ
diff --git a/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png.import b/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png.import
new file mode 100644
index 00000000..46a88b67
--- /dev/null
+++ b/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://diuh52qo2o6pa"
+path="res://.godot/imported/f_院子内墙上文字.png-107caa7c643223d1c6850711ee51240a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png"
+dest_files=["res://.godot/imported/f_院子内墙上文字.png-107caa7c643223d1c6850711ee51240a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png b/asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png
index ff56d8c1..b73ed010 100644
Binary files a/asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png and b/asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png differ
diff --git a/asset/art/scene/c02/s12_to_s17_盒子猫/ux_特写.png b/asset/art/scene/c02/s12_to_s17_盒子猫/ux_特写.png
index ef2a8e95..b8c9ba46 100644
Binary files a/asset/art/scene/c02/s12_to_s17_盒子猫/ux_特写.png and b/asset/art/scene/c02/s12_to_s17_盒子猫/ux_特写.png differ
diff --git a/asset/art/scene/c02/s12_to_s17_盒子猫/ux_空白.png b/asset/art/scene/c02/s12_to_s17_盒子猫/ux_空白.png
new file mode 100644
index 00000000..ef2a8e95
Binary files /dev/null and b/asset/art/scene/c02/s12_to_s17_盒子猫/ux_空白.png differ
diff --git a/asset/art/scene/c02/s12_to_s17_盒子猫/ux_空白.png.import b/asset/art/scene/c02/s12_to_s17_盒子猫/ux_空白.png.import
new file mode 100644
index 00000000..8979261f
--- /dev/null
+++ b/asset/art/scene/c02/s12_to_s17_盒子猫/ux_空白.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bihg7v2peym1l"
+path="res://.godot/imported/ux_空白.png-84d43bcc979b998d57e5673fffce1516.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_空白.png"
+dest_files=["res://.godot/imported/ux_空白.png-84d43bcc979b998d57e5673fffce1516.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav b/asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav
new file mode 100644
index 00000000..9c5d6c6c
Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav differ
diff --git a/asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav.import b/asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav.import
new file mode 100644
index 00000000..a479ba90
--- /dev/null
+++ b/asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://o7fj0r0fbm1h"
+path="res://.godot/imported/sfx_冷飕飕.wav-49bde3acf56c811a4c6eeb2e0878cd83.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav"
+dest_files=["res://.godot/imported/sfx_冷飕飕.wav-49bde3acf56c811a4c6eeb2e0878cd83.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav b/asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav
new file mode 100644
index 00000000..c8227c21
Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav differ
diff --git a/asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav.import b/asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav.import
new file mode 100644
index 00000000..5481e70c
--- /dev/null
+++ b/asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://dkadc7ewletgn"
+path="res://.godot/imported/sfx_猪头喘气.wav-e61d36f6c63e0887ca4e5a06164c0c2c.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav"
+dest_files=["res://.godot/imported/sfx_猪头喘气.wav-e61d36f6c63e0887ca4e5a06164c0c2c.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/交互/第一章/sfx_猫挠门.wav b/asset/audio/sfx/交互/第一章/sfx_猫挠门.wav
new file mode 100644
index 00000000..c4eecf63
Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_猫挠门.wav differ
diff --git a/asset/audio/sfx/交互/第一章/sfx_猫挠门.wav.import b/asset/audio/sfx/交互/第一章/sfx_猫挠门.wav.import
new file mode 100644
index 00000000..d312874c
--- /dev/null
+++ b/asset/audio/sfx/交互/第一章/sfx_猫挠门.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://6q5qi1qon35r"
+path="res://.godot/imported/sfx_猫挠门.wav-5b50528f62e4bb1a657aee883ca56db3.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/交互/第一章/sfx_猫挠门.wav"
+dest_files=["res://.godot/imported/sfx_猫挠门.wav-5b50528f62e4bb1a657aee883ca56db3.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav b/asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav
new file mode 100644
index 00000000..4f13b4c6
Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav differ
diff --git a/asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav.import b/asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav.import
new file mode 100644
index 00000000..05fe93cb
--- /dev/null
+++ b/asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://bma77k6n4hwle"
+path="res://.godot/imported/sfx_猫猫钻盒子.wav-fff524f5c65b7d65f903cb8a22b20c3a.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav"
+dest_files=["res://.godot/imported/sfx_猫猫钻盒子.wav-fff524f5c65b7d65f903cb8a22b20c3a.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav b/asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav
new file mode 100644
index 00000000..ef525928
Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav differ
diff --git a/asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav.import b/asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav.import
new file mode 100644
index 00000000..bdff4808
--- /dev/null
+++ b/asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://dukcyf5fq4drj"
+path="res://.godot/imported/sfx_鞋子掉了.wav-bd029033cc3c235c5126d4fefb4c08f4.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav"
+dest_files=["res://.godot/imported/sfx_鞋子掉了.wav-bd029033cc3c235c5126d4fefb4c08f4.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav b/asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav
new file mode 100644
index 00000000..24db8adc
Binary files /dev/null and b/asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav differ
diff --git a/asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav.import b/asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav.import
new file mode 100644
index 00000000..b77cad70
--- /dev/null
+++ b/asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://mff0udi3glb4"
+path="res://.godot/imported/瞎子房间癞子呼吸.wav-88d74d3c8d27da9965f81cbf84d398b7.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav"
+dest_files=["res://.godot/imported/瞎子房间癞子呼吸.wav-88d74d3c8d27da9965f81cbf84d398b7.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/交互/第一章/风吹灭火.ogg b/asset/audio/sfx/交互/第一章/风吹灭火.ogg
new file mode 100644
index 00000000..8f288d20
Binary files /dev/null and b/asset/audio/sfx/交互/第一章/风吹灭火.ogg differ
diff --git a/asset/audio/sfx/交互/第一章/风吹灭火.ogg.import b/asset/audio/sfx/交互/第一章/风吹灭火.ogg.import
new file mode 100644
index 00000000..67372e81
--- /dev/null
+++ b/asset/audio/sfx/交互/第一章/风吹灭火.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dnk2cba1bwr4s"
+path="res://.godot/imported/风吹灭火.ogg-407d91e0eb2937c6a489a47456b187c4.oggvorbisstr"
+
+[deps]
+
+source_file="res://asset/audio/sfx/交互/第一章/风吹灭火.ogg"
+dest_files=["res://.godot/imported/风吹灭火.ogg-407d91e0eb2937c6a489a47456b187c4.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav b/asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav
new file mode 100644
index 00000000..29855735
Binary files /dev/null and b/asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav differ
diff --git a/asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav.import b/asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav.import
new file mode 100644
index 00000000..3e0a865b
--- /dev/null
+++ b/asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://bal423qlb3jp2"
+path="res://.godot/imported/sfx_夜晚虫鸣.wav-3ae82e24b8f559263fd9e486a25978e8.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav"
+dest_files=["res://.godot/imported/sfx_夜晚虫鸣.wav-3ae82e24b8f559263fd9e486a25978e8.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav b/asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav
new file mode 100644
index 00000000..6d08a3a4
Binary files /dev/null and b/asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav differ
diff --git a/asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav.import b/asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav.import
new file mode 100644
index 00000000..fb5acaf7
--- /dev/null
+++ b/asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://7q03rss2vlcn"
+path="res://.godot/imported/sfx_老鼠叫.wav-6bc8d6061275cea774bd013d9442632f.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav"
+dest_files=["res://.godot/imported/sfx_老鼠叫.wav-6bc8d6061275cea774bd013d9442632f.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/脚步/sfx_猪头走路1.wav b/asset/audio/sfx/脚步/sfx_猪头走路1.wav
new file mode 100644
index 00000000..09c08fd7
Binary files /dev/null and b/asset/audio/sfx/脚步/sfx_猪头走路1.wav differ
diff --git a/asset/audio/sfx/脚步/sfx_猪头走路1.wav.import b/asset/audio/sfx/脚步/sfx_猪头走路1.wav.import
new file mode 100644
index 00000000..4da482e5
--- /dev/null
+++ b/asset/audio/sfx/脚步/sfx_猪头走路1.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://djc818l7b4oif"
+path="res://.godot/imported/sfx_猪头走路1.wav-ab28234d571102ab9127ac8a82b8447a.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/脚步/sfx_猪头走路1.wav"
+dest_files=["res://.godot/imported/sfx_猪头走路1.wav-ab28234d571102ab9127ac8a82b8447a.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/audio/sfx/脚步/sfx_猪头走路2.wav b/asset/audio/sfx/脚步/sfx_猪头走路2.wav
new file mode 100644
index 00000000..457736c7
Binary files /dev/null and b/asset/audio/sfx/脚步/sfx_猪头走路2.wav differ
diff --git a/asset/audio/sfx/脚步/sfx_猪头走路2.wav.import b/asset/audio/sfx/脚步/sfx_猪头走路2.wav.import
new file mode 100644
index 00000000..db58041b
--- /dev/null
+++ b/asset/audio/sfx/脚步/sfx_猪头走路2.wav.import
@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://0pm6s7jdo5ca"
+path="res://.godot/imported/sfx_猪头走路2.wav-6f7dade147334e57f07a092923ed21ae.sample"
+
+[deps]
+
+source_file="res://asset/audio/sfx/脚步/sfx_猪头走路2.wav"
+dest_files=["res://.godot/imported/sfx_猪头走路2.wav-6f7dade147334e57f07a092923ed21ae.sample"]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop_mode=0
+edit/loop_begin=0
+edit/loop_end=-1
+compress/mode=2
diff --git a/asset/dialogue/c02.dialogue b/asset/dialogue/c02.dialogue
index 8b46b4d5..8fdede00 100644
--- a/asset/dialogue/c02.dialogue
+++ b/asset/dialogue/c02.dialogue
@@ -15,8 +15,8 @@
~ c02_04_李氏癞子
#[#anonymous]
李兰: 真的假的?你钻进去啦,你这个体型进得去哒? [ID:c02_6偷听对话_李氏_1_fx]
-王守义: 小声点,让人听见了倒惹麻烦。[#db=3] [ID:c02_6偷听对话_癞子_1_fx]
-李兰: 那你说说,都看到什么啦? [#db=-5] [ID:c02_6偷听对话_李氏_2_fx]
+王守义: 小声点,让人听见了倒惹麻烦。 [ID:c02_6偷听对话_癞子_1_fx]
+李兰: 那你说说,都看到什么啦?[ID:c02_6偷听对话_李氏_2_fx]
王守义: 不好说,那里头弯弯绕绕的,我得找个时间再去看一眼。 [ID:c02_6偷听对话_癞子_2_fx]
王守义: 对了,你改天撺个局,让方启钊和胖子一块来搓麻,我顺嘴问一道。 [ID:c02_6偷听对话_癞子_3_fx]
王守义: 其余的,不要声张。 [ID:c02_6偷听对话_癞子_4_fx]
diff --git a/asset/dialogue/inspect_content.csv b/asset/dialogue/inspect_content.csv
index 683f7c18..28453b9e 100644
--- a/asset/dialogue/inspect_content.csv
+++ b/asset/dialogue/inspect_content.csv
@@ -10,6 +10,7 @@ keys,zh_CN,_character,_notes,_tags
c01_飘落的寻人启事1,寻人(看不清)年八岁。,,,
c01_飘落的寻人启事2,由(看不清)步行外出,至今未回,遍找无踪。,,,
c01_飘落的寻人启事3,如有知其下落者(看不清)备有重谢,绝不失言。,,,
+c02_青岛啤酒详情,系最好最廉之酒,并且每星期有新货到埠,,,
tdb119a3714,据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。,,,
ta750647b12,《申报》,,,
t736cca4563,民国五年一月十三日,,,
diff --git a/asset/dialogue/inspect_content.dialogue b/asset/dialogue/inspect_content.dialogue
index d8ec20d3..91c0f6a5 100644
--- a/asset/dialogue/inspect_content.dialogue
+++ b/asset/dialogue/inspect_content.dialogue
@@ -5,6 +5,11 @@
如有知其下落者(看不清)备有重谢,绝不失言。 [ID:c01_飘落的寻人启事3]
=> END
+~ c02_青岛啤酒
+系最好最廉之酒,并且每星期有新货到埠 [ID:c02_青岛啤酒详情]
+=> END
+
+
~ c02_鼠疫海报
据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。[ID:tdb119a3714]
《申报》 [ID:ta750647b12]
diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv
index c3c5f4b0..4e042486 100644
--- a/asset/dialogue/item_description.csv
+++ b/asset/dialogue/item_description.csv
@@ -26,6 +26,7 @@ ui_auto_saved,自动保存成功,,,,,Auto save successful
ui_press_e,按 E 与场景互动,,,,,Press E to interact
ui_press_q_to_exit,按 Q 可退出,,,,,
ui_use_prop,按 E 使用道具,,,,,Press E to use prop
+ui_left_mouse_shave,按住鼠标拖拽可刮开海报,,,,,
ui_important_item_update,重要物品已更新(按 B 打开背包),,,,,
ui_switch_prop,点击图标可切换道具(或按 Z/C),,,,,
ui_press_shift,按住 Shift 奔跑,,,,,
@@ -54,7 +55,7 @@ prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=
prop_院长的信_说明,浦育院院长秦阳
民国21年11月20日
致吕萍:
你现下境况如何?
你虽离开浦育院已久,但我始终没有忘记为你祈祷。
愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。
你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。
若有闲暇,欢迎你回浦育院看看。
院长童玉君
民国十九年十月十五日
公寓地址 芦昌路26弄3号,,,,,
prop_火柴,火柴,,,[#texture=c02/火柴.png],,
prop_小猫玩具的脑袋,小猫玩具的脑袋,,,[#texture=c02/新小猫头.png],,
-prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png],,
+prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png],,
prop_小猫玩具完整,小猫玩具,,,[#texture=c02/新小猫全身.png],,
prop_撕下的照片上,撕下的照片(上),,,[#texture=c02/照片_上.png],,
prop_老虎钳,老虎钳,,,[#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png],,
@@ -120,6 +121,9 @@ c02_院子_算命摊位,算命的摊位?,,,,,
c02_院子_要下雨,好像要下雨了?,,,,,
c02_保卫科花名册os,芦昌公寓居民登记簿,黄国栋记。,,,,,
c02_一楼楼道被挡住,被挡住了,,,,,
+c02_描述垃圾通道,飘着一股血气,又酸又腥。,,,,,
+c02_敲门_肉掉落,楼道有东西掉下来了?,,,,,
+c02_敲门_老鼠叼肉,刚刚这里有块肉不见了?,,,,,
c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」
咦,这口诀是谁教我的来着...,,,,,
c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,,
c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,,
diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue
index 1651d04c..2c44a480 100644
--- a/asset/dialogue/item_description.dialogue
+++ b/asset/dialogue/item_description.dialogue
@@ -23,6 +23,7 @@
按 E 与场景互动 [ID:ui_press_e]
按 Q 可退出 [ID:ui_press_q_to_exit]
按 E 使用道具 [ID:ui_use_prop]
+按住鼠标拖拽可刮开海报 [ID:ui_left_mouse_shave]
重要物品已更新(按 B 打开背包) [ID:ui_important_item_update]
点击图标可切换道具(或按 Z/C) [ID:ui_switch_prop]
按住 Shift 奔跑 [ID:ui_press_shift]
@@ -165,6 +166,10 @@
芦昌公寓居民登记簿,黄国栋记。 [ID:c02_保卫科花名册os]
# c02 内侧楼道
被挡住了 [ID:c02_一楼楼道被挡住]
+飘着一股血气,又酸又腥。 [ID:c02_描述垃圾通道]
+# c02 敲门_老鼠叼肉
+楼道有东西掉下来了? [ID:c02_敲门_肉掉落]
+刚刚这里有块肉不见了? [ID:c02_敲门_老鼠叼肉]
# 瞎子卧室
「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」
咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图]
这画上的脚印和刚刚看到的一样。 [ID:c02_瞎子卧室_血脚印]
diff --git a/config/animation/entity_sprite_frames.tres b/config/animation/entity_sprite_frames.tres
index 85ca31c8..38879b40 100644
--- a/config/animation/entity_sprite_frames.tres
+++ b/config/animation/entity_sprite_frames.tres
@@ -2910,31 +2910,67 @@ animations = [{
"duration": 1.0,
"texture": ExtResource("578_rneg4")
}, {
-"duration": 1.0,
+"duration": 1.5,
"texture": ExtResource("579_pwgpx")
}, {
-"duration": 1.0,
+"duration": 1.5,
"texture": ExtResource("580_y13bn")
}, {
-"duration": 1.0,
+"duration": 1.5,
"texture": ExtResource("581_cs3vs")
}, {
-"duration": 1.0,
+"duration": 1.5,
"texture": ExtResource("582_wm8vb")
}, {
-"duration": 1.0,
+"duration": 1.5,
"texture": ExtResource("583_8ghmx")
}, {
-"duration": 1.0,
+"duration": 1.5,
+"texture": ExtResource("582_wm8vb")
+}, {
+"duration": 1.5,
+"texture": ExtResource("583_8ghmx")
+}, {
+"duration": 1.5,
+"texture": ExtResource("582_wm8vb")
+}, {
+"duration": 1.5,
+"texture": ExtResource("583_8ghmx")
+}, {
+"duration": 1.5,
+"texture": ExtResource("582_wm8vb")
+}, {
+"duration": 1.5,
+"texture": ExtResource("583_8ghmx")
+}, {
+"duration": 1.5,
+"texture": ExtResource("582_wm8vb")
+}, {
+"duration": 1.5,
+"texture": ExtResource("583_8ghmx")
+}, {
+"duration": 1.5,
+"texture": ExtResource("582_wm8vb")
+}, {
+"duration": 1.5,
+"texture": ExtResource("583_8ghmx")
+}, {
+"duration": 1.5,
+"texture": ExtResource("582_wm8vb")
+}, {
+"duration": 1.5,
+"texture": ExtResource("583_8ghmx")
+}, {
+"duration": 1.5,
"texture": ExtResource("584_81b6k")
}, {
-"duration": 1.0,
+"duration": 1.5,
"texture": ExtResource("585_81b6k")
}, {
-"duration": 1.0,
+"duration": 1.5,
"texture": ExtResource("586_7slog")
}, {
-"duration": 1.0,
+"duration": 1.5,
"texture": ExtResource("587_gr680")
}, {
"duration": 1.0,
diff --git a/config/default_theme.tres b/config/default_theme.tres
index 827ea038..ffca224a 100644
--- a/config/default_theme.tres
+++ b/config/default_theme.tres
@@ -86,6 +86,7 @@ region_rect = Rect2(22, 38, 40, 30)
[sub_resource type="FontVariation" id="FontVariation_d3ufv"]
fallbacks = Array[Font]([ExtResource("1_u1bqr")])
base_font = ExtResource("2_kajgs")
+spacing_bottom = 1
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ujvfm"]
diff --git a/manager/archive_manager/assembled_archive.gd b/manager/archive_manager/assembled_archive.gd
index 84bc7dea..fc571a10 100644
--- a/manager/archive_manager/assembled_archive.gd
+++ b/manager/archive_manager/assembled_archive.gd
@@ -55,6 +55,9 @@ func _init() -> void:
prop_inventory_xxdie = PropInventory.new()
if not prop_inventory_xxxdie:
prop_inventory_xxxdie = PropInventory.new()
+ prop_inventory_xxdie.owner = "小小蝶"
+ prop_inventory_xxxdie.owner = "小小小蝶"
+ prop_inventory.owner = "default"
func ground_archive(scene_name := current_scene) -> GroundArchive:
diff --git a/manager/scene/global_functor.gd b/manager/scene/global_functor.gd
index 13050f0c..981e135d 100644
--- a/manager/scene/global_functor.gd
+++ b/manager/scene/global_functor.gd
@@ -15,11 +15,8 @@ func c02_cat_play_with_door():
if knocking:
return
knocking = true
- var knock_stream = preload("uid://7of24bqow07e")
+ var knock_stream = preload("uid://6q5qi1qon35r")
+ AudioManager.play_sfx(knock_stream)
SceneManager.freeze_player(1.5, 6, true)
- await get_tree().create_timer(0.8).timeout
- AudioManager.play_sfx(knock_stream)
- await get_tree().create_timer(0.3).timeout
- AudioManager.play_sfx(knock_stream)
- await get_tree().create_timer(0.5).timeout
+ await get_tree().create_timer(1.5).timeout
knocking = false
diff --git a/project.godot b/project.godot
index bde2ba13..69396e06 100644
--- a/project.godot
+++ b/project.godot
@@ -182,7 +182,7 @@ space={
[internationalization]
-locale/translations=PackedStringArray("res://asset/dialogue/c01.zh_CN.translation", "res://asset/dialogue/c02.zh_CN.translation", "res://asset/dialogue/inspect_content.zh_CN.translation", "res://asset/dialogue/item_description.zh_CN.translation", "res://asset/dialogue/names.zh_CN.translation", "res://asset/dialogue/npc.zh_CN.translation", "res://asset/dialogue/c01.zh_SH.translation", "res://asset/dialogue/纯中文_无需本地化.zh_CN.translation")
+locale/translations=PackedStringArray("res://asset/dialogue/c01.zh_CN.translation", "res://asset/dialogue/c02.zh_CN.translation", "res://asset/dialogue/inspect_content.zh_CN.translation", "res://asset/dialogue/item_description.zh_CN.translation", "res://asset/dialogue/names.zh_CN.translation", "res://asset/dialogue/npc.zh_CN.translation", "res://asset/dialogue/c01.zh_SH.translation", "res://asset/dialogue/纯中文_无需本地化.zh_CN.translation", "res://asset/dialogue/c01.en.translation", "res://asset/dialogue/c03.zh_CN.translation", "res://asset/dialogue/c04.zh_CN.translation", "res://asset/dialogue/c05.zh_CN.translation", "res://asset/dialogue/c06.zh_CN.translation", "res://asset/dialogue/item_description.en.translation", "res://asset/dialogue/item_description.zh_SH.translation")
locale/translations_pot_files=PackedStringArray("res://asset/dialogue/item_description.dialogue", "res://asset/dialogue/c01.dialogue", "res://asset/dialogue/c02.dialogue", "res://asset/dialogue/inspect_content.dialogue", "res://asset/dialogue/npc.dialogue", "res://asset/dialogue/c03.dialogue", "res://asset/dialogue/c04.dialogue", "res://asset/dialogue/c05.dialogue", "res://asset/dialogue/c06.dialogue", "res://asset/dialogue/纯中文_无需本地化.dialogue")
locale/test="zh-Hans"
locale/fallback="zh"
diff --git a/scene/entity/closeup.gd b/scene/entity/closeup.gd
index a5d7c6d9..2b848b9b 100644
--- a/scene/entity/closeup.gd
+++ b/scene/entity/closeup.gd
@@ -23,9 +23,12 @@ func _ready() -> void:
func _close_up_interacted() -> void:
if interacted_times == 1 and first_interact_os_key:
+ SceneManager.freeze_player(0)
+ sign_mark.display_sign = false
var tween = await SceneManager.pop_os_with_str(first_interact_os_key)
tween.tween_interval(0.5)
tween.tween_callback(display)
+ tween.tween_callback(func(): sign_mark.display_sign = true)
else:
display()
diff --git a/scene/entity/local_inspectable.gd b/scene/entity/local_inspectable.gd
index 241d65b0..92582df7 100644
--- a/scene/entity/local_inspectable.gd
+++ b/scene/entity/local_inspectable.gd
@@ -11,7 +11,11 @@ signal sign_mark_offset_updated
enum { STATUS_NORAML, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSPECTING_NOTES }
-
+@export var enabled := true:
+ set(val):
+ enabled = val
+ if is_node_ready() and not Engine.is_editor_hint():
+ sign_mark.enabled = val
# sign_mark 节点在 ready 时会直接读取
@export var sign_mark_offset := Vector2.ZERO:
set(val):
@@ -28,7 +32,6 @@ enum { STATUS_NORAML, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSP
notify_property_list_changed()
var content_key: String = ""
-
@onready var sign_mark = %Sign as Sign
@onready var area2d = %Area2D as Area2D
@@ -58,6 +61,7 @@ var tried_times: int:
if tried_times >= 1 and sign_mark:
sign_mark.sprite2d.texture = note_sign_texture
+
func _ready() -> void:
$InspectLayer.layer = GlobalConfig.CANVAS_LAYER_PROP_INSPECTOR
container.modulate.a = 0.0
@@ -67,7 +71,7 @@ func _ready() -> void:
cover_rect.texture = texture_cover
if Engine.is_editor_hint():
return
-
+ sign_mark.enabled = enabled
# setup default value
ground_archive = ArchiveManager.archive.ground_archive()
tried_times = ground_archive.get_value(name, "tried_times", 0)
diff --git a/scene/entity/local_inspectable.tscn b/scene/entity/local_inspectable.tscn
index 43795165..bc8f8cfc 100644
--- a/scene/entity/local_inspectable.tscn
+++ b/scene/entity/local_inspectable.tscn
@@ -8,15 +8,12 @@
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_do8tr"]
[ext_resource type="Texture2D" uid="uid://dwgxa5j6602vv" path="res://asset/art/ui/prop/inspect文本衬底蒙版.png" id="6_q18ff"]
[ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="7_ianbs"]
+[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop/inspect背景遮罩.png" id="7_xawjo"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4fuic"]
resource_local_to_scene = true
size = Vector2(20, 70)
-[sub_resource type="LabelSettings" id="LabelSettings_c3c2j"]
-line_spacing = 1.0
-font_size = 11
-
[node name="LocalInspectable" type="Sprite2D"]
script = ExtResource("1_85el0")
note_sign_texture = ExtResource("2_3pauf")
@@ -70,6 +67,13 @@ grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
+[node name="BGMask" type="TextureRect" parent="InspectLayer/Root/Container"]
+layout_mode = 2
+size_flags_horizontal = 4
+size_flags_vertical = 4
+mouse_filter = 2
+texture = ExtResource("7_xawjo")
+
[node name="Cover" type="TextureRect" parent="InspectLayer/Root/Container"]
unique_name_in_owner = true
layout_mode = 2
@@ -84,7 +88,6 @@ z_index = 100
custom_minimum_size = Vector2(130, 0)
layout_mode = 2
size_flags_horizontal = 4
-label_settings = SubResource("LabelSettings_c3c2j")
vertical_alignment = 1
autowrap_mode = 3
diff --git a/scene/ground/ground.tscn b/scene/ground/ground.tscn
index 39b51fa6..d9d60dbb 100644
--- a/scene/ground/ground.tscn
+++ b/scene/ground/ground.tscn
@@ -97,7 +97,6 @@ height = 0.5
[node name="FootstepAudioPlayer" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
-volume_db = -8.0
bus = &"game_sfx"
script = ExtResource("5_7mb2q")
metadata/_custom_type_script = "uid://dpnny2y808k71"
diff --git a/scene/ground/scene/c02/s02_animation.gd b/scene/ground/scene/c02/s02_animation.gd
index fb662e3b..30ae5c9d 100644
--- a/scene/ground/scene/c02/s02_animation.gd
+++ b/scene/ground/scene/c02/s02_animation.gd
@@ -42,6 +42,7 @@ func _on_ground_ready() -> void:
if data.flyer_shaven:
flyer.enabled = false
flyer.visible = false
+ $"../DeployLayer/青岛啤酒".enabled = true
else:
flyer.exit.connect(_on_flyer_exit)
music_box = $"../DeployLayer/Closeup八音盒"
@@ -62,6 +63,7 @@ func _oneshot_wind():
func _on_flyer_exit(arg):
if arg:
+ $"../DeployLayer/青岛啤酒".enabled = true
set_data("flyer_shaven", true)
flyer.enabled = false
flyer.visible = false
diff --git a/scene/ground/scene/c02/s02_过道.tscn b/scene/ground/scene/c02/s02_过道.tscn
index 37f0af6e..0d900200 100644
--- a/scene/ground/scene/c02/s02_过道.tscn
+++ b/scene/ground/scene/c02/s02_过道.tscn
@@ -1,14 +1,14 @@
-[gd_scene load_steps=30 format=3 uid="uid://brck77w81fhvc"]
+[gd_scene load_steps=31 format=3 uid="uid://brck77w81fhvc"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_wrr6r"]
[ext_resource type="Script" uid="uid://bfrgnmde3hjn0" path="res://scene/ground/scene/c02/s02_animation.gd" id="2_5p8ev"]
[ext_resource type="PackedScene" uid="uid://byj234hen4btr" path="res://scene/entity/audio/sfx.tscn" id="3_fvldj"]
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="3_fy0o1"]
[ext_resource type="Texture2D" uid="uid://5428j51dwarc" path="res://asset/art/scene/c02/s02_大门过道/bg_过道背景.png" id="3_gjwum"]
+[ext_resource type="AudioStream" uid="uid://o7fj0r0fbm1h" path="res://asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav" id="4_36l5t"]
[ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="4_wbif8"]
[ext_resource type="Texture2D" uid="uid://r0n7qy4kr3w2" path="res://asset/art/ui/action_mark/UI场景切换.png" id="5_m1xet"]
[ext_resource type="AudioStream" uid="uid://bew3slewru6j0" path="res://asset/audio/sfx/环境音/第一章/02_进门过道.wav" id="6_36l5t"]
-[ext_resource type="Texture2D" uid="uid://ceijv5l0prppa" path="res://asset/art/prop/c02/海报(小)/除鼠双杰.png" id="6_gjwum"]
[ext_resource type="Texture2D" uid="uid://b8pcnqvdddo5g" path="res://asset/art/prop/c02/海报特写/除鼠二杰.png" id="7_jg8g0"]
[ext_resource type="Texture2D" uid="uid://cvgw2mxrlr6io" path="res://asset/art/scene/c02/旧版/s02_走道/ux_进门鼠疫海报yz.png" id="7_wdwbi"]
[ext_resource type="Texture2D" uid="uid://5pl1b7cor715" path="res://asset/art/scene/c02/旧版/s02_走道/e_纸人.png" id="7_xsghn"]
@@ -20,6 +20,7 @@
[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/local_inspectable.tscn" id="12_0fckv"]
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="13_ck13g"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="14_jg8g0"]
+[ext_resource type="Texture2D" uid="uid://cyctvbeqxqvpb" path="res://asset/art/prop/c02/海报特写/青岛啤酒.png" id="16_vqhm5"]
[ext_resource type="Texture2D" uid="uid://8otjg8gn0m6p" path="res://asset/art/gif/c02_公寓过道/眨眼睛/0.png" id="17_m1xet"]
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="17_mpkj1"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="19_6wwyd"]
@@ -64,7 +65,7 @@ data = {
oneshot_animation = ""
[node name="冷飕飕Sfx" parent="Ground/AnimationPlayer" index="0" instance=ExtResource("3_fvldj")]
-stream = null
+stream = ExtResource("4_36l5t")
mode = "交互与效果音"
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
@@ -117,25 +118,30 @@ position = Vector2(177, 42)
hook_os_key = "c02_太暗了"
[node name="海报1" parent="Ground/DeployLayer" index="5" instance=ExtResource("12_0fckv")]
-position = Vector2(211, -33)
-texture = ExtResource("6_gjwum")
+position = Vector2(203, -31)
sign_mark_offset = Vector2(-1.58, 8.6)
content_centered = true
texture_cover = ExtResource("7_jg8g0")
content_key = "c02_海报1"
[node name="Closeup刮海报" parent="Ground/DeployLayer" index="6" instance=ExtResource("19_6wwyd")]
-position = Vector2(252, -27)
+position = Vector2(253, -31)
texture = ExtResource("10_jg8g0")
first_interact_os_key = "c02_海报_剪辫子侦探"
packed_scene = ExtResource("11_jg8g0")
-[node name="鼠疫海报" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")]
+[node name="青岛啤酒" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")]
+position = Vector2(253, -31)
+enabled = false
+texture_cover = ExtResource("16_vqhm5")
+content_key = "c02_青岛啤酒"
+
+[node name="鼠疫海报" parent="Ground/DeployLayer" index="8" instance=ExtResource("12_0fckv")]
position = Vector2(439, -29)
texture_cover = ExtResource("7_wdwbi")
content_key = "c02_鼠疫海报"
-[node name="Ambush纸人" parent="Ground/DeployLayer" index="8" instance=ExtResource("8_52as8")]
+[node name="Ambush纸人" parent="Ground/DeployLayer" index="9" instance=ExtResource("8_52as8")]
visible = false
position = Vector2(113, 44)
texture = ExtResource("7_xsghn")
@@ -161,13 +167,13 @@ stream = ExtResource("11_u68d7")
bus = &"game_sfx"
script = ExtResource("14_jg8g0")
-[node name="Ambush杂物堆" parent="Ground/DeployLayer" index="9" instance=ExtResource("8_52as8")]
+[node name="Ambush杂物堆" parent="Ground/DeployLayer" index="10" instance=ExtResource("8_52as8")]
position = Vector2(387, 66)
trigger_mode = "interact"
freeze_time = 1.0
hook_method = "lumber_interacted"
-[node name="杂物眨眼睛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="10"]
+[node name="杂物眨眼睛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
visible = false
light_mask = 5
position = Vector2(269, 38)
@@ -180,34 +186,34 @@ energy = 3.0
range_item_cull_mask = 4
texture = ExtResource("17_m1xet")
-[node name="Note老鼠洞" parent="Ground/DeployLayer" index="11" instance=ExtResource("3_fy0o1")]
+[node name="Note老鼠洞" parent="Ground/DeployLayer" index="12" instance=ExtResource("3_fy0o1")]
position = Vector2(507, 64)
title_filter = "c02"
note_key = "c02_老鼠洞"
-[node name="老鼠拖鞋" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
+[node name="老鼠拖鞋" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="13"]
visible = false
position = Vector2(498, 0)
sprite_frames = ExtResource("19_q0axc")
animation = &"老鼠托小鞋子"
-[node name="Interactable小鞋子" parent="Ground/DeployLayer" index="13" instance=ExtResource("13_ck13g")]
+[node name="Interactable小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("13_ck13g")]
position = Vector2(498, 65)
enabled = false
mute_when_interacted = true
-[node name="Ambush推小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("8_52as8")]
+[node name="Ambush推小鞋子" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_52as8")]
position = Vector2(525, 61)
one_shot = false
freeze_time = 1.0
hook_method = "check_if_show_shoes"
-[node name="煤油灯" parent="Ground/DeployLayer" index="15" instance=ExtResource("17_mpkj1")]
+[node name="煤油灯" parent="Ground/DeployLayer" index="16" instance=ExtResource("17_mpkj1")]
position = Vector2(122, -15)
gaslight_energy = 2.0
gaslight_ground_energy = 0.0
-[node name="Closeup八音盒" parent="Ground/DeployLayer" index="16" instance=ExtResource("19_6wwyd")]
+[node name="Closeup八音盒" parent="Ground/DeployLayer" index="17" instance=ExtResource("19_6wwyd")]
position = Vector2(533, 65)
packed_scene = ExtResource("10_ifae7")
diff --git a/scene/ground/scene/c02/s03_animation.gd b/scene/ground/scene/c02/s03_animation.gd
index 831a997d..2884da9a 100644
--- a/scene/ground/scene/c02/s03_animation.gd
+++ b/scene/ground/scene/c02/s03_animation.gd
@@ -39,6 +39,8 @@ func _on_ground_ready() -> void:
$"../DeployLayer/Ambush偷听对话".enabled = false
eavesdrop_window.visible = false
+ $"../DeployLayer/Closeup敲门游戏".exit.connect(_on_knock_exit)
+
counter = $"../DeployLayer/Interactable柜子" as Interactable2D
counter.interacted.connect(_on_counter_interacted)
if ArchiveManager.get_global_value("c02_counter_pushed_out"):
@@ -97,10 +99,12 @@ func _on_ground_ready() -> void:
var tween = create_tween()
# 实现重力加速度效果的 y 移动,在 drop_duration 中移动到 final_y
tween.tween_method(drop_shoe.bind(y1, y2), 0.0, 1.0, drop_duration)
+ await tween.finished
+ # 落地音效
+ $"Sfx小鞋落地".play()
+ tween = create_tween()
tween.tween_property(fg, "modulate:a", 0.0, 1.5)
await tween.finished
- #TODO 落地音效
- SceneManager.pop_debug_dialog_info("音效", "小鞋子落地")
play("镜头上下运动")
$"../BGSprite2D/无头小蝶".play()
$"../CameraFocusMarker".limit_top -= 1000
@@ -127,6 +131,12 @@ func _on_gate_interacted() -> void:
gate.get_node("Wall/CollisionShape2D").disabled = true
+func _on_knock_exit(arg):
+ if arg:
+ await create_tween().tween_interval(1.0).finished
+ SceneManager.pop_os_with_str("c02_敲门_肉掉落")
+
+
func shocking_lighting() -> void:
var root = $"../DeployLayer/闷雷_纸人闪现" as Node2D
var normal_ppl = root.get_node("排队常人") as Sprite2D
diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn
index 930c9403..3f56eaef 100644
--- a/scene/ground/scene/c02/s03_院子.tscn
+++ b/scene/ground/scene/c02/s03_院子.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=76 format=3 uid="uid://djc2uaefhmu7"]
+[gd_scene load_steps=78 format=3 uid="uid://djc2uaefhmu7"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0dylx"]
[ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_animation.gd" id="2_dt5aj"]
@@ -14,6 +14,7 @@
[ext_resource type="AudioStream" uid="uid://civuwccn6v6yk" path="res://asset/audio/sfx/交互/第一章/sfx_闷雷声.wav" id="6_vddfx"]
[ext_resource type="Texture2D" uid="uid://bxqetnlx0bpv4" path="res://asset/art/scene/c02/门_贴图/1012保卫科.png" id="6_ygnci"]
[ext_resource type="Texture2D" uid="uid://cmm6oxlbl2wps" path="res://asset/art/scene/c02/门_贴图/1013肉铺.png" id="7_c3f8o"]
+[ext_resource type="AudioStream" uid="uid://dukcyf5fq4drj" path="res://asset/audio/sfx/交互/第一章/sfx_鞋子掉了.wav" id="7_df1yo"]
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="7_em2ma"]
[ext_resource type="Texture2D" uid="uid://bs8bdad5ak0m0" path="res://asset/art/scene/c02/s03_公寓一楼院子/铁门/关闭状态.png" id="7_gd6xp"]
[ext_resource type="Texture2D" uid="uid://b1tnkshmv7r3b" path="res://asset/art/scene/c02/门_贴图/院子房间3.png" id="8_crgo6"]
@@ -21,6 +22,7 @@
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="8_xt8j0"]
[ext_resource type="Texture2D" uid="uid://bgpf35bhrkl86" path="res://asset/art/scene/c02/s03_公寓一楼院子/铁门/打开 底层.png" id="9_liq0c"]
[ext_resource type="Texture2D" uid="uid://cvtbiefbffjd7" path="res://asset/art/scene/c02/门_贴图/1015房间.png" id="9_vddfx"]
+[ext_resource type="Texture2D" uid="uid://diuh52qo2o6pa" path="res://asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png" id="10_3nako"]
[ext_resource type="PackedScene" uid="uid://dnbutraty2285" path="res://scene/entity/partical/particals_ash_vertical.tscn" id="10_c3f8o"]
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="10_jme4f"]
[ext_resource type="Texture2D" uid="uid://dooaferyy44rs" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_前侧楼梯.png" id="10_ud2jg"]
@@ -370,6 +372,12 @@ bus = &"game_sfx"
script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+[node name="Sfx小鞋落地" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
+stream = ExtResource("7_df1yo")
+bus = &"game_sfx"
+script = ExtResource("4_ygnci")
+metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+
[node name="BGSprite2D" parent="Ground" index="1"]
light_mask = 5
texture = ExtResource("3_sqv8l")
@@ -391,7 +399,16 @@ matched_sign_texture = null
position = Vector2(2286, 16)
matched_sign_texture = null
-[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_00b7a")]
+[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="2"]
+modulate = Color(1, 1, 1, 0)
+position = Vector2(1189, 0)
+texture = ExtResource("6_d7h4s")
+
+[node name="禁火等墙面文字" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
+position = Vector2(955, 5)
+texture = ExtResource("10_3nako")
+
+[node name="portal_1" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_00b7a")]
position = Vector2(200, 10)
debug_note = "1012保卫科"
portal_name = "1"
@@ -400,7 +417,7 @@ target_portal = "left"
status = "opened"
matched_sign_texture = null
-[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_00b7a")]
+[node name="portal_2" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")]
position = Vector2(928, 7)
debug_note = "一楼内侧过道
"
@@ -409,7 +426,7 @@ target_scene = "c02_s05"
target_portal = "left"
matched_sign_texture = null
-[node name="Note血迹" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_t48d1")]
+[node name="Note血迹" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_t48d1")]
position = Vector2(523, 78)
note_key = "notes_干掉的血迹"
@@ -420,7 +437,7 @@ position = Vector2(132, 10)
sprite_frames = ExtResource("4_gd6xp")
animation = &"肉铺门口血迹"
-[node name="portal_3" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")]
+[node name="portal_3" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_00b7a")]
position = Vector2(1704, 14)
debug_note = "空房间 1014"
portal_name = "3"
@@ -429,7 +446,7 @@ target_portal = "left"
status = "opened"
matched_sign_texture = null
-[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="6"]
+[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="8"]
[node name="灯笼" type="Sprite2D" parent="Ground/DeployLayer/灯笼"]
position = Vector2(1644, -86)
@@ -476,7 +493,7 @@ color = Color(1, 0.0980392, 0, 1)
energy = 0.7
texture = SubResource("GradientTexture2D_kyfht")
-[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="7"]
+[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="9"]
visible = false
[node name="奠1" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"]
@@ -505,7 +522,7 @@ position = Vector2(898, -162)
z_index = 15
position = Vector2(1964, -209)
-[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="8"]
+[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="10"]
visible = false
[node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")]
@@ -532,16 +549,11 @@ range_layer_max = 2
range_item_cull_mask = 4
texture = SubResource("GradientTexture2D_3nako")
-[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="9" instance=ExtResource("25_iyaiw")]
+[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="11" instance=ExtResource("25_iyaiw")]
position = Vector2(1611, 46)
hook_os_key = "c02_院子_要下雨"
-[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="10"]
-modulate = Color(1, 1, 1, 0)
-position = Vector2(1189, 0)
-texture = ExtResource("6_d7h4s")
-
-[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="11" instance=ExtResource("7_em2ma")]
+[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="12" instance=ExtResource("7_em2ma")]
position = Vector2(809, 75)
sign_mark_offset = Vector2(0, -16.88)
enabled = false
@@ -552,7 +564,7 @@ position = Vector2(0, -7)
scale = Vector2(0.15, 0.15)
texture = ExtResource("8_plfv5")
-[node name="Interactable铁门" parent="Ground/DeployLayer" index="12" instance=ExtResource("8_xt8j0")]
+[node name="Interactable铁门" parent="Ground/DeployLayer" index="13" instance=ExtResource("8_xt8j0")]
light_mask = 5
position = Vector2(1222, 28)
texture = ExtResource("7_gd6xp")
@@ -570,7 +582,7 @@ collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Wall"]
shape = SubResource("RectangleShape2D_mdix7")
-[node name="Note算命摊位" parent="Ground/DeployLayer" index="13" instance=ExtResource("6_t48d1")]
+[node name="Note算命摊位" parent="Ground/DeployLayer" index="14" instance=ExtResource("6_t48d1")]
position = Vector2(725, 45)
note_key = "c02_院子_算命摊位"
@@ -578,13 +590,13 @@ note_key = "c02_院子_算命摊位"
position = Vector2(0, 18)
texture = ExtResource("6_1tart")
-[node name="煤油灯" parent="Ground/DeployLayer" index="14" instance=ExtResource("10_jme4f")]
+[node name="煤油灯" parent="Ground/DeployLayer" index="15" instance=ExtResource("10_jme4f")]
position = Vector2(290, 1)
gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
-[node name="煤油灯2" parent="Ground/DeployLayer" index="15" instance=ExtResource("10_jme4f")]
+[node name="煤油灯2" parent="Ground/DeployLayer" index="16" instance=ExtResource("10_jme4f")]
position = Vector2(610, 1)
gaslight_texture = ExtResource("11_g0qhj")
ground_light_texture = ExtResource("12_ni5ro")
@@ -592,7 +604,7 @@ gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
-[node name="煤油灯3" parent="Ground/DeployLayer" index="16" instance=ExtResource("10_jme4f")]
+[node name="煤油灯3" parent="Ground/DeployLayer" index="17" instance=ExtResource("10_jme4f")]
position = Vector2(857, 1)
gaslight_texture = ExtResource("13_hw832")
ground_light_texture = ExtResource("14_7pq5y")
@@ -600,45 +612,45 @@ gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
-[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="17"]
+[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="18"]
self_modulate = Color(0.739288, 0.739288, 0.739288, 1)
light_mask = 5
z_index = 10
position = Vector2(2062, 60)
texture = ExtResource("21_4n8vm")
-[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="18"]
+[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="19"]
light_mask = 5
z_index = 10
position = Vector2(1025, 27)
texture = ExtResource("22_3y5s5")
-[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="19" instance=ExtResource("23_81juy")]
+[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="20" instance=ExtResource("23_81juy")]
position = Vector2(466, 3)
packed_scene = ExtResource("24_0o4rt")
-[node name="Closeup井" parent="Ground/DeployLayer" index="20" instance=ExtResource("23_81juy")]
+[node name="Closeup井" parent="Ground/DeployLayer" index="21" instance=ExtResource("23_81juy")]
z_index = 6
position = Vector2(2063, 50)
packed_scene = ExtResource("26_yy4fp")
-[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="21" instance=ExtResource("25_iyaiw")]
+[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="22" instance=ExtResource("25_iyaiw")]
position = Vector2(1319, 40)
hook_method = "shocking_lighting"
-[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="22" instance=ExtResource("25_iyaiw")]
+[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="23" instance=ExtResource("25_iyaiw")]
position = Vector2(1836, 7)
trigger_mode = "interact"
one_shot = false
hook_method = "eavesdrop"
-[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="23"]
+[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="24"]
position = Vector2(1835, -16)
sprite_frames = SubResource("SpriteFrames_0o4rt")
autoplay = "default"
frame_progress = 0.643855
-[node name="Npc井边疯子" parent="Ground/DeployLayer" index="24" instance=ExtResource("35_plfv5")]
+[node name="Npc井边疯子" parent="Ground/DeployLayer" index="25" instance=ExtResource("35_plfv5")]
z_index = 10
position = Vector2(2037, 67)
sprite_frames = SubResource("SpriteFrames_kyfht")
@@ -664,7 +676,7 @@ position = Vector2(-11, -3)
shape = SubResource("RectangleShape2D_bbhbr")
disabled = true
-[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="25"]
+[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="26"]
visible = false
position = Vector2(2154, 60)
@@ -729,7 +741,7 @@ collision_mask = 0
shape = SubResource("RectangleShape2D_d7h4s")
disabled = true
-[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="26"]
+[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="27"]
visible = false
[node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"]
@@ -900,7 +912,7 @@ offset_bottom = -23.0
[node name="CollisionShape2D" parent="Ground/DeployLayer/火灾/Ambush等待的小蝉/Area2D" index="0"]
shape = SubResource("RectangleShape2D_em2ma")
-[node name="Interactable柜子" parent="Ground/DeployLayer" index="27" instance=ExtResource("8_xt8j0")]
+[node name="Interactable柜子" parent="Ground/DeployLayer" index="28" instance=ExtResource("8_xt8j0")]
visible = false
position = Vector2(1772, 48)
texture = ExtResource("32_cpifc")
@@ -916,7 +928,7 @@ animation = &"箱子着火"
autoplay = "箱子着火"
frame_progress = 0.453645
-[node name="最终跑路" type="RigidBody2D" parent="Ground/DeployLayer" index="28"]
+[node name="最终跑路" type="RigidBody2D" parent="Ground/DeployLayer" index="29"]
visible = false
position = Vector2(2150, 30)
collision_layer = 4
diff --git a/scene/ground/scene/c02/s04_animation.gd b/scene/ground/scene/c02/s04_animation.gd
index 027b13cc..dacced57 100644
--- a/scene/ground/scene/c02/s04_animation.gd
+++ b/scene/ground/scene/c02/s04_animation.gd
@@ -4,8 +4,7 @@ extends AnimationRoot
# 覆盖该方法
func _default_data() -> Dictionary:
- return {
- }
+ return {}
func _ready() -> void:
@@ -13,28 +12,33 @@ func _ready() -> void:
if Engine.is_editor_hint():
return
-var closeup_tin_coin
+
+var closeup_tin_coin
var little_hand
+
func _on_ground_ready() -> void:
closeup_tin_coin = $"../DeployLayer/Closeup折锡纸" as Closeup2D
if not ArchiveManager.get_global_value("c02_tin_coin_taken"):
closeup_tin_coin.exit.connect(_on_closeup_tin_coin_exited)
-
+
little_hand = $"../DeployLayer/小手讨东西"
if little_hand.tried_times == 0:
little_hand.interacted.connect(_on_little_hand_first_interacted, CONNECT_ONE_SHOT)
+
func _on_little_hand_first_interacted() -> void:
# 9 小手交互,吓摔倒
little_hand.enabled = false
var duration = 3.0
SceneManager.freeze_player(duration, 9)
+ get_tree().create_timer(1.5).timeout.connect($"Sfx摔倒".play)
await get_tree().create_timer(duration).timeout
SceneManager.release_player()
-
+
little_hand.enabled = true
+
func _on_closeup_tin_coin_exited(arg = null):
if arg == true:
ArchiveManager.set_global_entry("c02_tin_coin_taken", true)
diff --git a/scene/ground/scene/c02/s04_保卫科.tscn b/scene/ground/scene/c02/s04_保卫科.tscn
index d84d503a..da22e592 100644
--- a/scene/ground/scene/c02/s04_保卫科.tscn
+++ b/scene/ground/scene/c02/s04_保卫科.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=20 format=3 uid="uid://bivc5cdap370p"]
+[gd_scene load_steps=21 format=3 uid="uid://bivc5cdap370p"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2jej0"]
[ext_resource type="Script" uid="uid://dmhh4g47bdxxy" path="res://scene/ground/scene/c02/s04_animation.gd" id="2_jyere"]
@@ -7,6 +7,7 @@
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ffvrp"]
[ext_resource type="SpriteFrames" uid="uid://c2sjavnptjn" path="res://asset/art/gif/c02_保卫科/c02_保卫科_frames.tres" id="4_svuj3"]
[ext_resource type="Texture2D" uid="uid://bnyf8m63ltgh0" path="res://asset/art/scene/c02/s04_保卫科/l_香.png" id="5_cy26p"]
+[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.mp3" id="5_xy3nq"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="6_66gue"]
[ext_resource type="PackedScene" uid="uid://b8i6tqwdvvddy" path="res://scene/ground/script/c02/花名册.tscn" id="6_fvlg0"]
[ext_resource type="Texture2D" uid="uid://cs14llkvr3fg8" path="res://asset/art/scene/c02/s04_保卫科/弹珠墙面涂鸦提示.png" id="6_gk1h4"]
@@ -49,6 +50,12 @@ mode = "场景背景音"
"感应玩家操作" = false
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+[node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
+stream = ExtResource("5_xy3nq")
+bus = &"game_sfx"
+script = ExtResource("4_ffvrp")
+metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+
[node name="BGSprite2D" parent="Ground" index="1"]
light_mask = 5
position = Vector2(47, 2)
diff --git a/scene/ground/scene/c02/s05_animation.gd b/scene/ground/scene/c02/s05_animation.gd
index 411011b8..98d0acf0 100644
--- a/scene/ground/scene/c02/s05_animation.gd
+++ b/scene/ground/scene/c02/s05_animation.gd
@@ -47,12 +47,14 @@ func mouse_pick_meat() -> void:
if not pick_meat_amush_allowed:
return
pick_meat_amush_allowed = false
- SceneManager.freeze_player(1.5)
+ SceneManager.freeze_player(2.0)
# 标记为已掉落
ArchiveManager.set_global_entry("c02_meat_dropping", false)
var sprite = $"../DeployLayer/老鼠叼肉"
sprite.visible = true
sprite.play()
+ await sprite.animation_finished
+ SceneManager.pop_os_with_str("c02_敲门_老鼠叼肉")
func _on_madman_interacted() -> void:
diff --git a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn
index cc6deeed..e263f80e 100644
--- a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn
+++ b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=29 format=3 uid="uid://cp8d3ag5nbjq0"]
+[gd_scene load_steps=36 format=3 uid="uid://cp8d3ag5nbjq0"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_6w6et"]
[ext_resource type="Script" uid="uid://dydpmjpcvt3v1" path="res://scene/ground/scene/c02/s05_animation.gd" id="2_70lf6"]
@@ -21,6 +21,8 @@
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="17_aofps"]
[ext_resource type="SpriteFrames" uid="uid://cvwdqa8gyqj4g" path="res://asset/art/gif/c02_老鼠拖肉/c02_老鼠拖肉_frames.tres" id="17_bk7rf"]
[ext_resource type="Texture2D" uid="uid://d1etd7hr23rir" path="res://asset/art/scene/c02/s05_一楼内侧楼道/e_掉落的肉.png" id="18_bk7rf"]
+[ext_resource type="Texture2D" uid="uid://bp84w8keuelyj" path="res://asset/art/scene/c02/s10_空房间/e_蜡烛-sheet.png" id="21_heq1x"]
+[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="22_laquj"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_n48fn"]
@@ -55,6 +57,42 @@ height = 10
fill = 1
fill_from = Vector2(0.5, 0.5)
+[sub_resource type="AtlasTexture" id="AtlasTexture_chbaa"]
+atlas = ExtResource("21_heq1x")
+region = Rect2(0, 0, 6, 14)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_th1ek"]
+atlas = ExtResource("21_heq1x")
+region = Rect2(6, 0, 6, 14)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_to1d1"]
+atlas = ExtResource("21_heq1x")
+region = Rect2(12, 0, 6, 14)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_nx6jy"]
+atlas = ExtResource("21_heq1x")
+region = Rect2(18, 0, 6, 14)
+
+[sub_resource type="SpriteFrames" id="SpriteFrames_heq1x"]
+animations = [{
+"frames": [{
+"duration": 3.0,
+"texture": SubResource("AtlasTexture_chbaa")
+}, {
+"duration": 3.0,
+"texture": SubResource("AtlasTexture_th1ek")
+}, {
+"duration": 3.0,
+"texture": SubResource("AtlasTexture_to1d1")
+}, {
+"duration": 3.0,
+"texture": SubResource("AtlasTexture_nx6jy")
+}],
+"loop": true,
+"name": &"default",
+"speed": 10.0
+}]
+
[node name="S05" type="Node2D"]
metadata/_edit_horizontal_guides_ = [98.0]
@@ -172,11 +210,16 @@ position = Vector2(394, 26)
title_filter = "c02"
note_key = "c02_一楼楼道被挡住"
-[node name="打开的垃圾桶盖" type="Sprite2D" parent="Ground/DeployLayer" index="8"]
+[node name="Note垃圾通道" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_8t4w6")]
+position = Vector2(660, -1)
+title_filter = "c02"
+note_key = "c02_描述垃圾通道"
+
+[node name="打开的垃圾桶盖" type="Sprite2D" parent="Ground/DeployLayer" index="9"]
position = Vector2(660, 8)
texture = ExtResource("15_s2g5k")
-[node name="Interactable粘鼠板" parent="Ground/DeployLayer" index="9" instance=ExtResource("13_uj0pt")]
+[node name="Interactable粘鼠板" parent="Ground/DeployLayer" index="10" instance=ExtResource("13_uj0pt")]
position = Vector2(604, 81)
disable_prop_after_interacted = true
interacted_texture = ExtResource("16_jknyg")
@@ -199,18 +242,18 @@ position = Vector2(0, 5)
sprite_frames = ExtResource("17_bk7rf")
animation = &"老鼠被黏住死亡"
-[node name="Ambush老鼠叼肉" parent="Ground/DeployLayer" index="10" instance=ExtResource("8_rcuxq")]
-position = Vector2(592, 81)
+[node name="Ambush老鼠叼肉" parent="Ground/DeployLayer" index="11" instance=ExtResource("8_rcuxq")]
+position = Vector2(585, 80)
one_shot = false
hook_method = "mouse_pick_meat"
-[node name="老鼠叼肉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
+[node name="老鼠叼肉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
visible = false
position = Vector2(687, 69)
sprite_frames = ExtResource("17_bk7rf")
animation = &"奇怪的肉被拖进去动画"
-[node name="Pickable掉落的肉" parent="Ground/DeployLayer" index="12" instance=ExtResource("17_aofps")]
+[node name="Pickable掉落的肉" parent="Ground/DeployLayer" index="13" instance=ExtResource("17_aofps")]
visible = false
position = Vector2(668, 85)
texture = ExtResource("18_bk7rf")
@@ -218,6 +261,19 @@ sign_mark_offset = Vector2(0, -9.86)
enabled = false
prop_key = "prop_奇怪的肉"
+[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="14"]
+self_modulate = Color(0.611765, 0.611765, 0.611765, 1)
+position = Vector2(627.8, 79.6172)
+sprite_frames = SubResource("SpriteFrames_heq1x")
+autoplay = "default"
+
+[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer" index="15"]
+position = Vector2(627.8, 66.8)
+color = Color(0.999971, 0.912551, 0.842208, 1)
+energy = 1.2
+texture = ExtResource("22_laquj")
+texture_scale = 0.3
+
[node name="MainPlayer" parent="Ground" index="4"]
position = Vector2(41, 98)
diff --git a/scene/ground/scene/c02/s08_animation.gd b/scene/ground/scene/c02/s08_animation.gd
index 6d1e002e..f8c11b11 100644
--- a/scene/ground/scene/c02/s08_animation.gd
+++ b/scene/ground/scene/c02/s08_animation.gd
@@ -38,7 +38,10 @@ func _on_ground_ready() -> void:
if gaslight.interacted_times > 0:
ambush_lookback.enabled = true
else:
- gaslight.interacted.connect(func(): ambush_lookback.enabled = true)
+ gaslight.interacted.connect(func():
+ ambush_lookback.enabled = true
+ $"../DeployLayer/癞子偷窥/Sfx2D癞子呼吸".play()
+ )
if looked_back:
gaslight.enabled = false
gaslight.visible = false
@@ -163,6 +166,9 @@ func look_back_hole():
tween.tween_property(camera, "limit_right", room_camera_r_limit + 100, 1.0)
tween.parallel().tween_property(camera, "zoom_ratio", 1.1, 1.0)
tween.tween_callback(func(): occluder.visible = false)
+ tween.tween_interval(0.5)
+ tween.tween_callback($"Sfx癞子对视惊吓".play)
+ tween.tween_interval(0.5)
tween.tween_callback(_on_shocked)
tween.tween_property(darker_light, "energy", 1.0, 3.0)
tween.tween_property(camera, "limit_right", room_camera_r_limit, 1.0)
@@ -171,10 +177,11 @@ func look_back_hole():
func _on_shocked():
SceneManager.pop_debug_dialog_info("音效", "惊吓")
- $"Sfx癞子对视惊吓".play()
SceneManager.freeze_player(0, 11, true)
SceneManager.get_player().animation_finished.connect(_on_shocked_finished, CONNECT_ONE_SHOT)
- await create_tween().tween_interval(1.1).finished
+ $"Sfx吹灭蜡烛".play()
+ await create_tween().tween_interval(0.6).finished
+ $"Sfx摔倒".play()
# 熄火
gaslight.enabled = false
gaslight.visible = false
@@ -186,6 +193,7 @@ func _on_shocked():
light.energy = 0
create_tween().tween_property(light, "energy", 0.6, 1.5)
$"../DeployLayer/Closeup画".enabled = false
+ $"../DeployLayer/癞子偷窥/Sfx2D癞子呼吸".stop()
func _on_shocked_finished():
diff --git a/scene/ground/scene/c02/s08_瞎子卧室.tscn b/scene/ground/scene/c02/s08_瞎子卧室.tscn
index d7015d18..5fe920ec 100644
--- a/scene/ground/scene/c02/s08_瞎子卧室.tscn
+++ b/scene/ground/scene/c02/s08_瞎子卧室.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=34 format=3 uid="uid://ce2vyyg2reg52"]
+[gd_scene load_steps=39 format=3 uid="uid://ce2vyyg2reg52"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"]
[ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"]
@@ -7,9 +7,12 @@
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_1ws4i"]
[ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="4_gx8oy"]
[ext_resource type="AudioStream" uid="uid://dthm5gd1sc16" path="res://asset/audio/sfx/环境音/第一章/房间内部场景2.wav" id="4_vjjde"]
+[ext_resource type="AudioStream" uid="uid://dk3e1w3n2snur" path="res://asset/audio/sfx/旧版/c02/纸人出现.mp3" id="5_0qeqe"]
[ext_resource type="Texture2D" uid="uid://b5pwb4fm46sad" path="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png" id="5_f6mma"]
[ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_vjjde"]
+[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.mp3" id="6_nnqdd"]
[ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="7_j6ltr"]
+[ext_resource type="AudioStream" uid="uid://dnk2cba1bwr4s" path="res://asset/audio/sfx/交互/第一章/风吹灭火.ogg" id="7_quq80"]
[ext_resource type="Texture2D" uid="uid://dtyg0nugb2tnf" path="res://asset/art/ui/action_mark/UI探索.png" id="8_dkqw0"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="10_a48k2"]
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="10_f6mma"]
@@ -24,6 +27,8 @@
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="14_1ws4i"]
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="17_5fx68"]
[ext_resource type="Texture2D" uid="uid://dcot0rove27rd" path="res://asset/art/scene/c02/s08_瞎子卧室/e_粘鼠板.png" id="18_dkqw0"]
+[ext_resource type="AudioStream" uid="uid://mff0udi3glb4" path="res://asset/audio/sfx/交互/第一章/瞎子房间癞子呼吸.wav" id="20_ujhuc"]
+[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="21_0qeqe"]
[sub_resource type="Animation" id="Animation_f6mma"]
length = 0.001
@@ -112,17 +117,7 @@ data = {
}
oneshot_animation = ""
-[node name="Sfx癞子对视惊吓" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
-autoplay = true
-bus = &"game_sfx"
-script = ExtResource("3_t3h08")
-mode = "场景背景音"
-"自动开始" = true
-"循环播放" = true
-"感应玩家操作" = true
-metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
-
-[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
+[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
stream = ExtResource("4_vjjde")
autoplay = true
bus = &"game_sfx"
@@ -133,6 +128,25 @@ mode = "场景背景音"
"感应玩家操作" = false
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+[node name="Sfx癞子对视惊吓" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
+stream = ExtResource("5_0qeqe")
+volume_db = 2.0
+bus = &"game_sfx"
+script = ExtResource("3_t3h08")
+metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+
+[node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
+stream = ExtResource("6_nnqdd")
+bus = &"game_sfx"
+script = ExtResource("3_t3h08")
+metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+
+[node name="Sfx吹灭蜡烛" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"]
+stream = ExtResource("7_quq80")
+bus = &"game_sfx"
+script = ExtResource("3_t3h08")
+metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+
[node name="BGSprite2D" parent="Ground" index="1"]
texture = ExtResource("3_iares")
@@ -279,6 +293,16 @@ sprite_frames = ExtResource("13_t3h08")
animation = &"c02_王癞子_蹲着呼吸"
autoplay = "c02_王癞子_蹲着呼吸"
+[node name="Sfx2D癞子呼吸" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/癞子偷窥"]
+stream = ExtResource("20_ujhuc")
+volume_db = -5.0
+max_distance = 700.0
+attenuation = 2.0
+bus = &"game_sfx"
+script = ExtResource("21_0qeqe")
+loop = true
+metadata/_custom_type_script = "uid://wapo47a1oddf"
+
[node name="Ambush回看洞口" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_f6mma")]
position = Vector2(522, 31)
enabled = false
@@ -346,6 +370,9 @@ energy = 0.5
range_item_cull_mask = 8
texture = SubResource("GradientTexture2D_bp5fr")
+[node name="AudioListener2D" type="AudioListener2D" parent="Ground/MainPlayer" index="7"]
+current = true
+
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(11, 148)
texture = ExtResource("4_gx8oy")
diff --git a/scene/ground/scene/c02/s10_空房间.tscn b/scene/ground/scene/c02/s10_空房间.tscn
index ebd4855c..f723fd70 100644
--- a/scene/ground/scene/c02/s10_空房间.tscn
+++ b/scene/ground/scene/c02/s10_空房间.tscn
@@ -124,20 +124,20 @@ sprite_frames = SubResource("SpriteFrames_th1ek")
autoplay = "default"
frame_progress = 0.72851
-[node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/小蜡烛"]
-position = Vector2(0, -12.8172)
+[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer" index="4"]
+position = Vector2(271, 60.1423)
color = Color(0.999971, 0.912551, 0.842208, 1)
energy = 1.2
texture = ExtResource("15_e24j0")
texture_scale = 0.3
-[node name="血脚印" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="4"]
+[node name="血脚印" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="5"]
position = Vector2(269, 36.4798)
sprite_frames = ExtResource("15_2j5dr")
animation = &"空房间血脚印"
frame = 8
-[node name="Pickable小猫玩具脑袋" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_27dvh")]
+[node name="Pickable小猫玩具脑袋" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_27dvh")]
position = Vector2(362, 67.0439)
enabled = false
visible_follow_enabled = false
@@ -150,27 +150,27 @@ rotation = -1.51912
scale = Vector2(0.34, 0.34)
texture = ExtResource("8_3ftnp")
-[node name="Interactable柜子" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_ylhfc")]
+[node name="Interactable柜子" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_ylhfc")]
position = Vector2(364, 55)
texture = ExtResource("6_mty8e")
enabled = false
mute_when_interacted = true
one_shot = false
-[node name="大头小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="7"]
+[node name="大头小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="8"]
self_modulate = Color(0.80687, 0.80687, 0.80687, 1)
position = Vector2(351, 29.5782)
scale = Vector2(0.9, 0.9)
sprite_frames = ExtResource("15_2j5dr")
animation = &"坐箱子小婵丢人偶"
-[node name="Interactable小蝉" parent="Ground/DeployLayer" index="8" instance=ExtResource("5_ylhfc")]
+[node name="Interactable小蝉" parent="Ground/DeployLayer" index="9" instance=ExtResource("5_ylhfc")]
position = Vector2(350, 15.7751)
mute_when_interacted = true
disable_prop_after_interacted = true
prop_key = "prop_木头人偶"
-[node name="Pickable木头人偶" parent="Ground/DeployLayer" index="9" instance=ExtResource("6_27dvh")]
+[node name="Pickable木头人偶" parent="Ground/DeployLayer" index="10" instance=ExtResource("6_27dvh")]
z_index = 7
position = Vector2(423, 97.6081)
sign_mark_offset = Vector2(0, -7.09)
@@ -183,13 +183,13 @@ rotation = -1.19178
scale = Vector2(0.25, 0.25)
texture = ExtResource("12_27dvh")
-[node name="煤油灯" parent="Ground/DeployLayer" index="10" instance=ExtResource("13_27dvh")]
+[node name="煤油灯" parent="Ground/DeployLayer" index="11" instance=ExtResource("13_27dvh")]
position = Vector2(373, -13.8031)
gaslight_energy = 2.0
gaslight_ground_energy = 2.0
mute_when_interacted = false
-[node name="拼接小猫玩具" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
+[node name="拼接小猫玩具" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
visible = false
light_mask = 32
z_index = 10
@@ -218,7 +218,7 @@ position = Vector2(3, -0.98594)
range_item_cull_mask = 32
texture = ExtResource("15_e24j0")
-[node name="Ambush首次进入血脚印" parent="Ground/DeployLayer" index="12" instance=ExtResource("14_3ftnp")]
+[node name="Ambush首次进入血脚印" parent="Ground/DeployLayer" index="13" instance=ExtResource("14_3ftnp")]
position = Vector2(192, 38.4517)
freeze_time = 0.1
hook_method = "first_enter_ambush"
diff --git a/scene/ground/scene/c02/s12_animation.gd b/scene/ground/scene/c02/s12_animation.gd
index 56da3f78..fa714e35 100644
--- a/scene/ground/scene/c02/s12_animation.gd
+++ b/scene/ground/scene/c02/s12_animation.gd
@@ -30,6 +30,7 @@ func _intro():
layer.disable_crawl = true
var duration = layer.show_cat_duration
await get_tree().create_timer(duration).timeout
+ $"Sfx钻盒子演出".play()
anim.play()
var camera = SceneManager.get_camera_marker()
create_tween().tween_property(camera, "force_offset", Vector2.ZERO, 1.0)
diff --git a/scene/ground/scene/c02/s12_盒子猫.tscn b/scene/ground/scene/c02/s12_盒子猫.tscn
index 6a91b016..ab66c646 100644
--- a/scene/ground/scene/c02/s12_盒子猫.tscn
+++ b/scene/ground/scene/c02/s12_盒子猫.tscn
@@ -1,8 +1,10 @@
-[gd_scene load_steps=6 format=3 uid="uid://da4cuf2i3nwpj"]
+[gd_scene load_steps=8 format=3 uid="uid://da4cuf2i3nwpj"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ngo77"]
[ext_resource type="Script" uid="uid://cyd1xo106unfk" path="res://scene/ground/scene/c02/s12_animation.gd" id="2_7ah3n"]
+[ext_resource type="AudioStream" uid="uid://bma77k6n4hwle" path="res://asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav" id="3_72mc1"]
[ext_resource type="Texture2D" uid="uid://yn00uls1kvn3" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png" id="3_oskpk"]
+[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_r3hvb"]
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="4_vv3sh"]
[ext_resource type="SpriteFrames" uid="uid://b85gyfhk1mg6r" path="res://asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres" id="5_ycgng"]
@@ -18,6 +20,12 @@ footstep_type = "盒子猫"
script = ExtResource("2_7ah3n")
oneshot_animation = ""
+[node name="Sfx钻盒子演出" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
+stream = ExtResource("3_72mc1")
+bus = &"game_sfx"
+script = ExtResource("4_r3hvb")
+metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
+
[node name="BGSprite2D" parent="Ground" index="1"]
texture = ExtResource("3_oskpk")
offset = Vector2(0, -103.7)
diff --git a/scene/ground/scene/c02/s13_animation.gd b/scene/ground/scene/c02/s13_animation.gd
index 940ad25f..0cc6cd2b 100644
--- a/scene/ground/scene/c02/s13_animation.gd
+++ b/scene/ground/scene/c02/s13_animation.gd
@@ -18,24 +18,18 @@ func _on_ground_ready() -> void:
func knock_light_door():
- var knock_stream = preload("uid://7of24bqow07e")
+ var knock_stream = preload("uid://6q5qi1qon35r")
var player = SceneManager.get_player()
# 一直循环下去
for _i in range(100):
- SceneManager.freeze_player(0, 6)
- await get_tree().create_timer(0.6).timeout
+ AudioManager.play_sfx(knock_stream)
+ SceneManager.freeze_player(1.5, 6, true)
+ await get_tree().create_timer(0.5).timeout
# 被抓时打断
if not player.visible or player.hide_sprite:
_outtro_show()
break
- AudioManager.play_sfx(knock_stream)
- await get_tree().create_timer(0.2).timeout
- # 被抓时打断
- if not player.visible or player.hide_sprite:
- _outtro_show()
- break
- AudioManager.play_sfx(knock_stream)
- await get_tree().create_timer(0.2).timeout
+ await get_tree().create_timer(0.5).timeout
# 被抓时打断
if not player.visible or player.hide_sprite:
_outtro_show()
diff --git a/scene/ground/script/c02/刮海报.gd b/scene/ground/script/c02/刮海报.gd
index d7d63847..942a6ce9 100644
--- a/scene/ground/script/c02/刮海报.gd
+++ b/scene/ground/script/c02/刮海报.gd
@@ -8,6 +8,7 @@ signal exit
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
flyer.shaven.connect(_on_shaven)
+ SceneManager.pop_center_notification(tr("ui_left_mouse_shave"))
var exiting = false
diff --git a/scene/ground/script/c02/刮海报_过道.tscn b/scene/ground/script/c02/刮海报_过道.tscn
index 3a73b923..42a59e88 100644
--- a/scene/ground/script/c02/刮海报_过道.tscn
+++ b/scene/ground/script/c02/刮海报_过道.tscn
@@ -42,9 +42,9 @@ expand_mode = 5
stretch_mode = 5
[node name="刮刮乐" parent="." instance=ExtResource("3_qwopf")]
-offset_left = -136.0
+offset_left = -102.0
offset_top = -116.0
-offset_right = 69.0
+offset_right = 103.0
offset_bottom = 124.0
texture = SubResource("ImageTexture_qwopf")
stretch_mode = 5
diff --git a/scene/ground/script/c02/追猫猪头怪.gd b/scene/ground/script/c02/追猫猪头怪.gd
index 343bb2af..6f923867 100644
--- a/scene/ground/script/c02/追猫猪头怪.gd
+++ b/scene/ground/script/c02/追猫猪头怪.gd
@@ -101,13 +101,22 @@ func _on_ground_ready():
var footstep_count := 0
+var signed_x_diff = 10000
+
func _on_footstep_timer_timeout() -> void:
- sfx_footstep.play()
footstep_count += 1
if footstep_count % 2 == 0:
# shake camera
camera.shake_camera(4.0, 5.0)
+ if abs(signed_x_diff) > 250:
+ if footstep_count % 3 == 0:
+ sfx_footstep.play()
+ elif abs(signed_x_diff) > 100:
+ if footstep_count % 2 == 0:
+ sfx_footstep.play()
+ else:
+ sfx_footstep.play()
# 启用/禁用脚步声
@@ -181,7 +190,7 @@ func _physics_process(delta: float) -> void:
var player_pos = player.global_position
# 玩家到猪头怪面前的距离(有符号)
- var signed_x_diff = player_pos.x - global_position.x
+ signed_x_diff = player_pos.x - global_position.x
# 默认向左, flip_h 后向右
if not sprite2d.flip_h:
signed_x_diff *= -1
diff --git a/scene/ground/script/c02/追猫猪头怪.tscn b/scene/ground/script/c02/追猫猪头怪.tscn
index d4eabeb1..5df34ba4 100644
--- a/scene/ground/script/c02/追猫猪头怪.tscn
+++ b/scene/ground/script/c02/追猫猪头怪.tscn
@@ -1,14 +1,17 @@
-[gd_scene load_steps=6 format=3 uid="uid://dewbg4phd8c17"]
+[gd_scene load_steps=8 format=3 uid="uid://dewbg4phd8c17"]
[ext_resource type="Script" uid="uid://tn7sfe0qmix2" path="res://scene/ground/script/c02/追猫猪头怪.gd" id="1_lrjfo"]
[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="2_35vtd"]
-[ext_resource type="AudioStream" uid="uid://dd2whbtg7ah8a" path="res://asset/audio/sfx/脚步/猫咪走路2.wav" id="2_e62rv"]
+[ext_resource type="AudioStream" uid="uid://djc818l7b4oif" path="res://asset/audio/sfx/脚步/sfx_猪头走路1.wav" id="2_icl85"]
+[ext_resource type="AudioStream" uid="uid://0pm6s7jdo5ca" path="res://asset/audio/sfx/脚步/sfx_猪头走路2.wav" id="3_q3g2s"]
[ext_resource type="SpriteFrames" uid="uid://b85gyfhk1mg6r" path="res://asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres" id="4_3sbui"]
+[ext_resource type="AudioStream" uid="uid://dkadc7ewletgn" path="res://asset/audio/sfx/交互/第一章/sfx_猪头喘气.wav" id="4_3ypo7"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_3sbui"]
playback_mode = 1
-streams_count = 1
-stream_0/stream = ExtResource("2_e62rv")
+streams_count = 2
+stream_0/stream = ExtResource("2_icl85")
+stream_1/stream = ExtResource("3_q3g2s")
[node name="追猫猪头怪" type="Node2D"]
script = ExtResource("1_lrjfo")
@@ -21,6 +24,16 @@ bus = &"game_sfx"
script = ExtResource("2_35vtd")
metadata/_custom_type_script = "uid://wapo47a1oddf"
+[node name="Sfx喘气" type="AudioStreamPlayer2D" parent="."]
+stream = ExtResource("4_3ypo7")
+autoplay = true
+max_distance = 800.0
+attenuation = 1.7411
+bus = &"game_sfx"
+script = ExtResource("2_35vtd")
+loop = true
+metadata/_custom_type_script = "uid://wapo47a1oddf"
+
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
z_index = 20
sprite_frames = ExtResource("4_3sbui")
diff --git a/scene/player/main_player.tscn b/scene/player/main_player.tscn
index 0c22dd5e..82c172db 100644
--- a/scene/player/main_player.tscn
+++ b/scene/player/main_player.tscn
@@ -128,5 +128,5 @@ unique_name_in_owner = true
light_mask = 9
scale = Vector2(0.5, 0.5)
sprite_frames = ExtResource("2_3w63u")
-animation = &"c00_吕萍_idle_right"
+animation = &"c02_吕萍_被吓到后退"
offset = Vector2(0, -100)
diff --git a/scene/prop/prop_inventory_resource.gd b/scene/prop/prop_inventory_resource.gd
index d20c2f80..7fbee489 100644
--- a/scene/prop/prop_inventory_resource.gd
+++ b/scene/prop/prop_inventory_resource.gd
@@ -2,6 +2,7 @@ class_name PropInventory extends Resource
signal current_item_changed(prop_key: String)
+@export var owner := ""
@export var enabled_items := []
@export var current_index := 0:
set(val):
diff --git a/scene/settings/settings.gd b/scene/settings/settings.gd
index 616c1572..3d9cde40 100644
--- a/scene/settings/settings.gd
+++ b/scene/settings/settings.gd
@@ -15,8 +15,8 @@ signal exited
@onready var diary_btn = %DiaryBtn as Button
# 音量 DB 偏移
-var sfx_db_offset := 6.0
-var dialog_db_offset := -20.0
+var sfx_db_offset := 0.0
+var dialog_db_offset := 0.0
func _ready():
layer = GlobalConfig.CANVAS_LAYER_SETTINGS
@@ -103,6 +103,8 @@ func _on_language_options_selected(id: int) -> void:
lang = "zh_CN"
printerr("Unknown language id: ", id)
GlobalConfigManager.config.language = id
+ if GlobalConfig.DEBUG:
+ print("set language to: ", lang)
TranslationServer.set_locale(lang)