diff --git a/asset/art/scene/c02/s04_保卫科/e_小钳子提示.png b/asset/art/scene/c02/s04_保卫科/e_小钳子提示.png new file mode 100644 index 00000000..bcd2ee98 Binary files /dev/null and b/asset/art/scene/c02/s04_保卫科/e_小钳子提示.png differ diff --git a/asset/art/scene/c02/s04_保卫科/e_小钳子提示.png.import b/asset/art/scene/c02/s04_保卫科/e_小钳子提示.png.import new file mode 100644 index 00000000..4dac0a9c --- /dev/null +++ b/asset/art/scene/c02/s04_保卫科/e_小钳子提示.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hkrd6dd2nxkv" +path="res://.godot/imported/e_小钳子提示.png-ee4b5aa0529e4147b552445d9eff7eae.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c02/s04_保卫科/e_小钳子提示.png" +dest_files=["res://.godot/imported/e_小钳子提示.png-ee4b5aa0529e4147b552445d9eff7eae.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/s04_保卫科/弹珠墙面涂鸦提示.png b/asset/art/scene/c02/s04_保卫科/e_弹珠墙面涂鸦提示.png similarity index 100% rename from asset/art/scene/c02/s04_保卫科/弹珠墙面涂鸦提示.png rename to asset/art/scene/c02/s04_保卫科/e_弹珠墙面涂鸦提示.png diff --git a/asset/art/scene/c02/s04_保卫科/弹珠墙面涂鸦提示.png.import b/asset/art/scene/c02/s04_保卫科/e_弹珠墙面涂鸦提示.png.import similarity index 65% rename from asset/art/scene/c02/s04_保卫科/弹珠墙面涂鸦提示.png.import rename to asset/art/scene/c02/s04_保卫科/e_弹珠墙面涂鸦提示.png.import index 6679323d..5c9a0b83 100644 --- a/asset/art/scene/c02/s04_保卫科/弹珠墙面涂鸦提示.png.import +++ b/asset/art/scene/c02/s04_保卫科/e_弹珠墙面涂鸦提示.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cs14llkvr3fg8" -path="res://.godot/imported/弹珠墙面涂鸦提示.png-08c1bbb65088ecb68de655121f2a1bdf.ctex" +path="res://.godot/imported/e_弹珠墙面涂鸦提示.png-825f109b9f934d17e12634e636196380.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/scene/c02/s04_保卫科/弹珠墙面涂鸦提示.png" -dest_files=["res://.godot/imported/弹珠墙面涂鸦提示.png-08c1bbb65088ecb68de655121f2a1bdf.ctex"] +source_file="res://asset/art/scene/c02/s04_保卫科/e_弹珠墙面涂鸦提示.png" +dest_files=["res://.godot/imported/e_弹珠墙面涂鸦提示.png-825f109b9f934d17e12634e636196380.ctex"] [params] diff --git a/asset/art/scene/c02/s04_保卫科/花名册/翻开页.png b/asset/art/scene/c02/s04_保卫科/花名册/翻开页.png index 99ac0837..ca1a8dc3 100644 Binary files a/asset/art/scene/c02/s04_保卫科/花名册/翻开页.png and b/asset/art/scene/c02/s04_保卫科/花名册/翻开页.png differ diff --git a/asset/art/scene/c03/s01_三楼/bg_三楼走廊.png b/asset/art/scene/c03/s01_三楼/bg_三楼走廊.png index cfd82f35..49c8d87d 100644 Binary files a/asset/art/scene/c03/s01_三楼/bg_三楼走廊.png and b/asset/art/scene/c03/s01_三楼/bg_三楼走廊.png differ diff --git a/asset/audio/sfx/bgm/第一章/游戏失败_FX.wav b/asset/audio/peiyin_new/c02/c02_9小蝉_游戏失败效果_fx.wav similarity index 100% rename from asset/audio/sfx/bgm/第一章/游戏失败_FX.wav rename to asset/audio/peiyin_new/c02/c02_9小蝉_游戏失败效果_fx.wav diff --git a/asset/audio/peiyin_new/c02/c02_9小蝉_游戏失败效果_fx.wav.import b/asset/audio/peiyin_new/c02/c02_9小蝉_游戏失败效果_fx.wav.import new file mode 100644 index 00000000..18f8b695 --- /dev/null +++ b/asset/audio/peiyin_new/c02/c02_9小蝉_游戏失败效果_fx.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bw2cu6xs8bv6y" +path="res://.godot/imported/c02_9小蝉_游戏失败效果_fx.wav-78e73705c8fba9bb0b2282f04947bcf8.sample" + +[deps] + +source_file="res://asset/audio/peiyin_new/c02/c02_9小蝉_游戏失败效果_fx.wav" +dest_files=["res://.godot/imported/c02_9小蝉_游戏失败效果_fx.wav-78e73705c8fba9bb0b2282f04947bcf8.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/bgm/序章/鬼差追击.MP3 b/asset/audio/sfx/bgm/序章/鬼差追击.MP3 new file mode 100644 index 00000000..b333502a Binary files /dev/null and b/asset/audio/sfx/bgm/序章/鬼差追击.MP3 differ diff --git a/asset/audio/sfx/bgm/序章/鬼差追击.MP3.import b/asset/audio/sfx/bgm/序章/鬼差追击.MP3.import new file mode 100644 index 00000000..48d29600 --- /dev/null +++ b/asset/audio/sfx/bgm/序章/鬼差追击.MP3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://csgc3241h5vin" +path="res://.godot/imported/鬼差追击.MP3-499cf5622e51384ac240c25cf08d7314.mp3str" + +[deps] + +source_file="res://asset/audio/sfx/bgm/序章/鬼差追击.MP3" +dest_files=["res://.godot/imported/鬼差追击.MP3-499cf5622e51384ac240c25cf08d7314.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3 b/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3 new file mode 100644 index 00000000..aaed2bc0 Binary files /dev/null and b/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3 differ diff --git a/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3.import b/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3.import new file mode 100644 index 00000000..60417eb0 --- /dev/null +++ b/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://cm80s51o5xt0r" +path="res://.godot/imported/打开铁门后不循环背景音.MP3-4616ac2763069f54bec960c43f9c2510.mp3str" + +[deps] + +source_file="res://asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3" +dest_files=["res://.godot/imported/打开铁门后不循环背景音.MP3-4616ac2763069f54bec960c43f9c2510.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/asset/audio/sfx/bgm/第一章/游戏失败_FX.wav.import b/asset/audio/sfx/bgm/第一章/游戏失败_FX.wav.import deleted file mode 100644 index 7951f44d..00000000 --- a/asset/audio/sfx/bgm/第一章/游戏失败_FX.wav.import +++ /dev/null @@ -1,24 +0,0 @@ -[remap] - -importer="wav" -type="AudioStreamWAV" -uid="uid://bw2cu6xs8bv6y" -path="res://.godot/imported/游戏失败_FX.wav-eb8cf13a5573521a1f5630643073f04d.sample" - -[deps] - -source_file="res://asset/audio/sfx/bgm/第一章/游戏失败_FX.wav" -dest_files=["res://.godot/imported/游戏失败_FX.wav-eb8cf13a5573521a1f5630643073f04d.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/环境音/第一章/氛围不受欢迎的存在.mp3 b/asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.mp3 new file mode 100644 index 00000000..76c26765 Binary files /dev/null and b/asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.mp3 differ diff --git a/asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.mp3.import b/asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.mp3.import new file mode 100644 index 00000000..d1e9f65c --- /dev/null +++ b/asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://d0ef0felylt8d" +path="res://.godot/imported/氛围不受欢迎的存在.mp3-dd937294e6c24d6a7034e3d3b9ec7fe9.mp3str" + +[deps] + +source_file="res://asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.mp3" +dest_files=["res://.godot/imported/氛围不受欢迎的存在.mp3-dd937294e6c24d6a7034e3d3b9ec7fe9.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/asset/dialogue/c01.dialogue b/asset/dialogue/c01.dialogue index b2e49713..8b9cbcf0 100644 --- a/asset/dialogue/c01.dialogue +++ b/asset/dialogue/c01.dialogue @@ -17,20 +17,6 @@ 小竹竿: 嘶,总觉得好像在哪见过... [ID:c02_围观B_1] => END -~ c01_s06_四个小孩_对话1 -小肉圆: 这画是六指儿画的,你问他去! [ID:c01_4围观A_1] -=> END - -~ c01_s06_四个小孩_对话2 -小竹竿: 那个怪人是最近才出现的,总是透过门缝往院子里头看。 [ID:c02_围观B_2] -小竹竿: 搞得大家都不去墙根底下玩儿了,真晦气。 [ID:c02_围观B_3] -=> END - -~ c01_s06_四个小孩_对话3 -孩子王: 我知道什么?知道也不能告诉你! [ID:c01_4残疾小孩_1] -孩子王: 还有,以后别叫我六指儿! [ID:c01_4残疾小孩_2] -=> END - ~ c01_s06_谈论鬼差与猫鼠游戏 大胖: 站住! [#wait=2.0] [ID:c01_5胖小孩_1] # 几个人凑过来 diff --git a/asset/dialogue/c02.csv b/asset/dialogue/c02.csv index 8481d4bd..b941c61d 100644 --- a/asset/dialogue/c02.csv +++ b/asset/dialogue/c02.csv @@ -6,6 +6,7 @@ c02_11肉铺敲门_3,不做生意赶紧滚!,不做生意奥扫滚!,??? 摔倒了、哭⿐头、⼩脚上面出血了 [ID:],摔倒了、哭⿐头、⼩脚上面出血了 [ID:],,,, 哭⿐头、哭⿐头~⼩脚⼩孩哭⿐头... [ID:],哭⿐头、哭⿐头~⼩脚⼩孩哭⿐头... [ID:],,,, c02_8小男孩童谣,下⾬了、打烊了、⼩脚⼩孩跳舞了,,,, +c02_9小蝉_游戏失败效果,再见了,大姐姐。,再会了,大姐姐。,小蝉,, c02_纸人互动_离开公寓1,你要离开芦昌公寓吗?,,,, c02_纸人互动_离开公寓2,离开,,(response),, c02_纸人互动_离开公寓3,留下,,(response),, @@ -61,7 +62,7 @@ c02_弹珠游戏6,先碰到边界你就输了!,,,, c02_尾声霸凌童谣1,下雨了、打烊了、小脚小孩跳舞了,,???,,[#wait=4.7] c02_尾声霸凌童谣2,摔倒了、哭鼻头、小脚上面出血了,,???,,[#wait=3.8] c02_尾声霸凌童谣3,哭鼻头、哭鼻头~小脚小孩哭鼻头...,,???,,[#wait=6] -c02_9小蝉_游戏失败效果,再见了,大姐姐。,再会了,大姐姐。,小蝉,, +c02_9小蝉_游戏失败效果_fx,再见了,大姐姐。,,小蝉,, c02_小孩喊着火啦1,着火啦!着火啦!,,男孩黄,, c02_小孩喊着火啦2,水!打水!,,男孩蓝,, c02_10小蝶_1,小姑娘,你是不是认得我啊?,小姑娘,侬阿是认得我啊?,吕萍,,[#ban_skip] diff --git a/asset/dialogue/c02.dialogue b/asset/dialogue/c02.dialogue index 9bc164bd..229a3a5b 100644 --- a/asset/dialogue/c02.dialogue +++ b/asset/dialogue/c02.dialogue @@ -124,7 +124,7 @@ => END ~ c02_未完成拯救小蝉的游戏 -小蝉: 再见了,大姐姐。 [ID:c02_9小蝉_游戏失败效果] +小蝉: 再见了,大姐姐。 [ID:c02_9小蝉_游戏失败效果_fx] => END ~ c02_男孩们喊着火啦 diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index d7e9610e..608b0cc0 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -104,7 +104,7 @@ prop_装有灵魂的令牌,装有灵魂的令牌,,,[#texture=c01/装有灵魂的 prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],, prop_院长的信_说明,小萍:
你现下境况如何?
你虽离开浦育院已久,但我始终没有忘记为你祈祷。
愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。
你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。
若有闲暇,欢迎你回浦育院看看。
院长童玉君
民国二十一年十月十五日
公寓地址 芦昌路26弄3号,,,,, prop_船票,船票,,,[#texture=c02/船票.png],, -prop_船票_说明,民国十九年十月十七日
上海-南京-济南-北平-林西-满洲里
三等舱 3-23 号铺位
船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。
我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,, +prop_船票_说明,民国二十一年十月十七日
上海-南京-济南-北平-林西-满洲里
三等舱 3-23 号铺位
船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。
我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,, prop_眼镜盒,眼镜盒,,,[#texture=c02/眼镜盒.png],, prop_眼镜盒_说明,这副眼镜对我很重要。
记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。
院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。
随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,, prop_小蝉人偶,小蝉人偶,,,[#texture=c02/小蝉人偶.png],, @@ -168,7 +168,7 @@ c02_小手是什么鬼,这是什么鬼东西,它是在讨要什么,,,,, c02_小手再次出现,又来一个!
这地方到底是怎么回事?,,,,, c02_一楼楼道被挡住,被挡住了,,,,, c02_一楼戏台,盖着布的木头架子...用来做什么的呢,,,,, -c02_描述垃圾通道,桶是空的,飘着一股血气,又酸又腥。,,,,, +c02_描述垃圾通道,通道是空的,飘着一股血气,又酸又腥。,,,,, c02_一楼疯子互动后,这人有点不正常...最好离他远点。,,,,, c02_一楼粘鼠板,这里原来放着什么?,,,,, c02_一楼死老鼠,老鼠被粘住死掉了。,,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 13ec28d9..38340ab7 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -39,7 +39,7 @@ 按 Q 可退出 [ID:ui_center_notify_press_q_to_exit] 按 E 使用道具 [ID:ui_center_notify_use_prop] 按 N 查看线索笔记 [ID:ui_center_notify_check_note] -按 B 查看重要物品 [ID:ui_center_notify_check_bag] +按 B 查看重要物品 [ID:] 右键点击可检阅道具 [ID:ui_center_notify_right_click_prop] 按住鼠标拖拽可刮开海报 [ID:ui_left_mouse_shave] 点击图标可切换道具(或按 Z/C) [ID:ui_switch_prop] @@ -130,7 +130,7 @@ 小萍:
你现下境况如何?
你虽离开浦育院已久,但我始终没有忘记为你祈祷。
愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。
你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。
若有闲暇,欢迎你回浦育院看看。
院长童玉君
民国二十一年十月十五日
公寓地址 芦昌路26弄3号 [ID:prop_院长的信_说明] # c02 船票 [#texture=c02/船票.png] [ID:prop_船票] -民国十九年十月十七日
上海-南京-济南-北平-林西-满洲里
三等舱 3-23 号铺位
船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。
我的亲生父母是谁?当初他们为何要把我送到浦育院? [ID:prop_船票_说明] +民国二十一年十月十七日
上海-南京-济南-北平-林西-满洲里
三等舱 3-23 号铺位
船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。
我的亲生父母是谁?当初他们为何要把我送到浦育院? [ID:prop_船票_说明] 眼镜盒 [#texture=c02/眼镜盒.png] [ID:prop_眼镜盒] 这副眼镜对我很重要。
记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。
院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。
随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。[ID:prop_眼镜盒_说明] 小蝉人偶[#texture=c02/小蝉人偶.png] [ID:prop_小蝉人偶] @@ -164,7 +164,7 @@ 这是鸡毛掸子吗? [ID:c01_鸡毛掸子] 桌上放着一本《圣经》。
「得著生命的,將要失喪生命...」 [ID:c01_院长书桌] 这本书已经看过了。
...那些句子是什么意思呢? [ID:c01_院长床] -这西洋钟没坏的时候,走针会咔哒、咔哒地响...
停在申时三刻不动了。 [ID:c01_院长座钟] +这西洋钟没坏的时候,走针会咔哒、咔哒地响...
停在未时一刻不动了。 [ID:c01_院长座钟] 哇啊,这张洋相片要掉下来了!
我得做点什么... [ID:c01_倾斜的洋相片] 这是院长的儿子吗? [ID:c01_摆正的洋相片] # c01-s06 院子 @@ -226,7 +226,7 @@ #内侧楼道 被挡住了 [ID:c02_一楼楼道被挡住] 盖着布的木头架子...用来做什么的呢 [ID:c02_一楼戏台] -桶是空的,飘着一股血气,又酸又腥。 [ID:c02_描述垃圾通道] +通道是空的,飘着一股血气,又酸又腥。 [ID:c02_描述垃圾通道] 这人有点不正常...最好离他远点。 [ID:c02_一楼疯子互动后] 这里原来放着什么? [ID:c02_一楼粘鼠板] 老鼠被粘住死掉了。 [ID:c02_一楼死老鼠] diff --git a/asset/dialogue/npc.csv b/asset/dialogue/npc.csv index f1d5265b..7c1802e3 100644 --- a/asset/dialogue/npc.csv +++ b/asset/dialogue/npc.csv @@ -1,4 +1,9 @@ keys,zh_CN,zh_SH,_character,_notes,_tags +c01_4围观A_1,这画是六指儿画的,你问他去!,这幅画是小跷脚画的,你起问他呀。,小肉圆,, +c02_围观B_2,那个怪人是最近才出现的,总是透过门缝往院子里头看。,这老鬼三好像是近腔波出来的,老是亚了门板后头偷偷较往里厢看。,小竹竿,, +c02_围观B_3,搞得大家都不去墙根底下玩儿了,真晦气。,弄得嘞依拉都不过去玩了,戳气死了。,小竹竿,, +c01_4残疾小孩_1,我知道什么?知道也不能告诉你!,我晓得啥东西啦?就算晓得也不会讲给你们听的!,孩子王,, +c01_4残疾小孩_2,还有,以后别叫我六指儿!,还有,下趟覅叫我小跷脚!,孩子王,, c01_6卖艺小孩A_1,您、您行行好,给点...,,小丁,, c01_6卖艺小孩B_1,祝恁身子骨儿杠赛来,吃嘛嘛香木个病,一年更比一年行!,,蛋蛋,, c01_6卖艺小孩C_1,宾安哗在,有才有财!,,沫儿,, diff --git a/asset/dialogue/npc.dialogue b/asset/dialogue/npc.dialogue index 3ee91fbf..f00b4cc6 100644 --- a/asset/dialogue/npc.dialogue +++ b/asset/dialogue/npc.dialogue @@ -1,3 +1,18 @@ +~ c01_s06_四个小孩_对话1 +小肉圆: 这画是六指儿画的,你问他去! [ID:c01_4围观A_1] +=> END + +~ c01_s06_四个小孩_对话2 +小竹竿: 那个怪人是最近才出现的,总是透过门缝往院子里头看。 [ID:c02_围观B_2] +小竹竿: 搞得大家都不去墙根底下玩儿了,真晦气。 [ID:c02_围观B_3] +=> END + +~ c01_s06_四个小孩_对话3 +孩子王: 我知道什么?知道也不能告诉你! [ID:c01_4残疾小孩_1] +孩子王: 还有,以后别叫我六指儿! [ID:c01_4残疾小孩_2] +=> END + + ~ c01_s07_小孩吉祥话1 #普通口音 小丁: 您、您行行好,给点... [ID:c01_6卖艺小孩A_1] diff --git a/manager/audio_manager/vibe_group_collection.tres b/manager/audio_manager/vibe_group_collection.tres index 8944e8bb..3621e6ee 100644 --- a/manager/audio_manager/vibe_group_collection.tres +++ b/manager/audio_manager/vibe_group_collection.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" script_class="VibeGroupCollection" load_steps=21 format=3 uid="uid://bfhwn1v0c2io7"] +[gd_resource type="Resource" script_class="VibeGroupCollection" load_steps=22 format=3 uid="uid://bfhwn1v0c2io7"] [ext_resource type="Script" uid="uid://cy1ngx5no67v" path="res://manager/audio_manager/vibe_group.gd" id="1_0bbao"] [ext_resource type="Script" uid="uid://bo8gxwe8hfs01" path="res://manager/audio_manager/vibe_group_collection.gd" id="2_h4hph"] @@ -11,6 +11,7 @@ [ext_resource type="AudioStream" uid="uid://c6ehv3lgway26" path="res://asset/audio/sfx/环境音/白噪音/白噪声诡异室外.wav" id="8_ehphf"] [ext_resource type="AudioStream" uid="uid://bal423qlb3jp2" path="res://asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.wav" id="9_tydt5"] [ext_resource type="AudioStream" uid="uid://s7uigovfp5g3" path="res://asset/audio/sfx/环境音/第一章/火灾演出.wav" id="10_bxcxa"] +[ext_resource type="AudioStream" uid="uid://d0ef0felylt8d" path="res://asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.mp3" id="11_scrw7"] [sub_resource type="Resource" id="Resource_bjndi"] script = ExtResource("1_0bbao") @@ -66,24 +67,6 @@ base_sound_db = 0.0 embellishments = Array[ExtResource("3_scrw7")]([]) metadata/_custom_type_script = "uid://cy1ngx5no67v" -[sub_resource type="Resource" id="Resource_s3jju"] -script = ExtResource("3_scrw7") -sound = ExtResource("9_tydt5") -db = 0.0 -loop = false -min_interval = 5.0 -max_interval = 10.0 -metadata/_custom_type_script = "uid://eydkufjbf7n6" - -[sub_resource type="Resource" id="Resource_n45nr"] -script = ExtResource("1_0bbao") -group_name = &"c02_楼道虫鸣" -group_db = -5.0 -base_sound = ExtResource("6_u0i77") -base_sound_db = 0.0 -embellishments = Array[ExtResource("3_scrw7")]([SubResource("Resource_s3jju")]) -metadata/_custom_type_script = "uid://cy1ngx5no67v" - [sub_resource type="Resource" id="Resource_j0xlt"] script = ExtResource("1_0bbao") group_name = &"c02_火灾" @@ -93,7 +76,25 @@ base_sound_db = 0.0 embellishments = Array[ExtResource("3_scrw7")]([]) metadata/_custom_type_script = "uid://cy1ngx5no67v" +[sub_resource type="Resource" id="Resource_f75a1"] +script = ExtResource("1_0bbao") +group_name = &"氛围_不受欢迎的存在" +group_db = 0.0 +base_sound = ExtResource("11_scrw7") +base_sound_db = -9.0 +embellishments = Array[ExtResource("3_scrw7")]([]) +metadata/_custom_type_script = "uid://cy1ngx5no67v" + +[sub_resource type="Resource" id="Resource_scrw7"] +script = ExtResource("1_0bbao") +group_name = &"夜晚虫鸣" +group_db = 0.0 +base_sound = ExtResource("9_tydt5") +base_sound_db = -10.0 +embellishments = Array[ExtResource("3_scrw7")]([]) +metadata/_custom_type_script = "uid://cy1ngx5no67v" + [resource] script = ExtResource("2_h4hph") -groups = Array[ExtResource("1_0bbao")]([SubResource("Resource_bjndi"), SubResource("Resource_chrc1"), SubResource("Resource_7c7wx"), SubResource("Resource_an5bn"), SubResource("Resource_egnaw"), SubResource("Resource_e3r3f"), SubResource("Resource_n45nr"), SubResource("Resource_j0xlt")]) +groups = Array[ExtResource("1_0bbao")]([SubResource("Resource_bjndi"), SubResource("Resource_chrc1"), SubResource("Resource_7c7wx"), SubResource("Resource_an5bn"), SubResource("Resource_egnaw"), SubResource("Resource_e3r3f"), SubResource("Resource_j0xlt"), SubResource("Resource_f75a1"), SubResource("Resource_scrw7")]) metadata/_custom_type_script = "uid://bo8gxwe8hfs01" diff --git a/scene/entity/audio/bgm_control.gd b/scene/entity/audio/bgm_control.gd index 5dc77f6e..779e970d 100644 --- a/scene/entity/audio/bgm_control.gd +++ b/scene/entity/audio/bgm_control.gd @@ -7,6 +7,7 @@ class_name BgmControl extends Node @export var stop_ease_duration := 3.0 @export var stop_on_ground_ease_out := false + func _ready() -> void: if not bgm_title: printerr("[BgmControl] no title fond!") @@ -16,7 +17,11 @@ func _ready() -> void: if not bgm_stream: printerr("bgm_stream is null, please check the BGM settings.") return - AudioManager.loop_bgm_music(bgm_title, bgm_stream, db) + start() + + +func start(): + AudioManager.loop_bgm_music(bgm_title, bgm_stream, db) func stop(duration := stop_ease_duration): diff --git a/scene/entity/audio/sfx.gd b/scene/entity/audio/sfx.gd index 40ceb39c..113d1e60 100644 --- a/scene/entity/audio/sfx.gd +++ b/scene/entity/audio/sfx.gd @@ -50,7 +50,6 @@ func global_play() -> void: AudioManager.play_sfx(stream) -# 注意:会导致 volume db 变化 func easing_kill(duration: float = 2.0) -> Tween: # stop with easing var tween = create_tween() diff --git a/scene/entity/audio/sfx2d.gd b/scene/entity/audio/sfx2d.gd index af9e4db7..4629cd42 100644 --- a/scene/entity/audio/sfx2d.gd +++ b/scene/entity/audio/sfx2d.gd @@ -17,13 +17,14 @@ class_name Sfx2D extends AudioStreamPlayer2D play() var timer: Timer - +var default_db := 0.0 func _ready() -> void: bus = &"game_sfx" - process_mode = Node.PROCESS_MODE_PAUSABLE + process_mode = Node.PROCESS_MODE_INHERIT if Engine.is_editor_hint(): return + default_db = volume_db timer = Timer.new() timer.autostart = autoplay and loop and loop_round_time > 0.0 and not Engine.is_editor_hint() timer.one_shot = false @@ -67,11 +68,13 @@ func global_play() -> void: AudioManager.play_sfx(stream) -# 注意:会导致 volume db 变化 -func easing_kill(duration: float = 2.0) -> void: +func easing_kill(duration: float = 2.0) -> Tween: # stop with easing + var tween = create_tween() + tween.bind_node(self) if playing: - var tween = create_tween() - tween.bind_node(self) tween.tween_property(self, "volume_linear", 0.0, duration) tween.tween_callback(stop) + # set volume_db back to default + tween.tween_callback(func(): volume_db = default_db) + return tween \ No newline at end of file diff --git a/scene/entity/pickable.gd b/scene/entity/pickable.gd index ecbb7788..d5c9d5c6 100644 --- a/scene/entity/pickable.gd +++ b/scene/entity/pickable.gd @@ -51,12 +51,12 @@ func reset() -> void: _check_display() -# 渐渐浮现 -func enable_with_ease(duration := 1.0): - enabled = true - if not picked: - var tween = create_tween() - tween.tween_property(self, "modulate:a", 1.0, duration).from(0.0) +# # 渐渐浮现 +# func enable_with_ease(duration := 1.0): +# enabled = true +# if not picked: +# var tween = create_tween() +# tween.tween_property(self, "modulate:a", 1.0, duration).from(0.0) # Called when the node enters the scene tree for the first time. @@ -90,7 +90,7 @@ func _check_display(): if picked: visible = false elif visible_follow_enabled: - modulate.a = 1.0 if enabled else 0.0 + visible = enabled sign_mark.enabled = enabled and is_visible_in_tree() diff --git a/scene/ground/scene/c01/s06_孤儿院长廊围墙.gd b/scene/ground/scene/c01/s06_孤儿院长廊围墙.gd index d0bf0a08..391debec 100644 --- a/scene/ground/scene/c01/s06_孤儿院长廊围墙.gd +++ b/scene/ground/scene/c01/s06_孤儿院长廊围墙.gd @@ -50,6 +50,11 @@ func _on_ground_ready() -> void: interactable_obstacles = $"../DeployLayer/Interactable桌椅" interactable_obstacles.interacted.connect(_on_push_obstacles) cat_rat_game_fail_ambush = $"../DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】/猫鼠游戏失败ambush" + + standing_kid1.get_node("Npc对话1").interacted.connect(_on_talked.bind(1)) + standing_kid2.get_node("Npc对话2").interacted.connect(_on_talked.bind(2)) + game_kid.get_node("Npc对话3").interacted.connect(_on_talked.bind(3)) + # 等待游戏开始后启用 cat_rat_game_fail_ambush.enabled = false cat_rat_game_start_ambush = $"../DeployLayer/猫鼠游戏开始ambush" @@ -69,15 +74,6 @@ func _on_ground_ready() -> void: # 解除镜头 x 右侧限制 SceneManager.get_camera_marker().limit_right = 10000 - #talk count - talk_count = 0 - if standing_kid1.get_node("对话1ambush").played: - talk_count += 1 - if standing_kid2.get_node("对话2ambush").played: - talk_count += 1 - if game_kid.get_node("对话3ambush").played: - talk_count += 1 - # 玩家不能超过开始跑的位置 var player = SceneManager.get_player() as MainPlayer if player.position.x > 1800: @@ -108,9 +104,9 @@ func pre_game_intro(): func game_intro() -> void: - standing_kid1.get_node("对话1ambush").enabled = false - standing_kid2.get_node("对话2ambush").enabled = false - game_kid.get_node("对话3ambush").enabled = false + standing_kid1.get_node("Npc对话1").enabled = false + standing_kid2.get_node("Npc对话2").enabled = false + game_kid.get_node("Npc对话3").enabled = false # 禁用猫鼠游戏开始 ambush 检测 cat_rat_game_start_ambush.enabled = false @@ -149,34 +145,25 @@ func _game_counting_down(_res = null): cat.get_node("猫咪嘶吼音效").play() -# 与小孩 1 对话 -func talk1(): - _on_talked() - - -# 与小孩 2 对话 -func talk2(): - _on_talked() - - -# 与残疾小孩对话 -func talk3(): - _on_talked() - - # 玩家与三个小孩的互动计数 -var talk_count := 0 - - -func _on_talked(): - talk_count += 1 - if talk_count == 3: - # 三个小孩都对话完毕 - await DialogueManager.dialogue_ended - SceneManager.lock_player() - await Util.wait(1) - await SceneManager.pop_os_with_str("c01_s06_四小孩对话结束") - SceneManager.unlock_player() +func _on_talked(id: int): + #talk count + if ( + standing_kid1.get_node("Npc对话1").icount > 0 + and standing_kid2.get_node("Npc对话2").icount > 0 + and game_kid.get_node("Npc对话3").icount > 0 + ): + if ( + (id == 1 and standing_kid1.get_node("Npc对话1").icount == 1) + or (id == 2 and standing_kid2.get_node("Npc对话2").icount == 1) + or (id == 3 and game_kid.get_node("Npc对话3").icount == 1) + ): + # 三个小孩都对话完毕 + await DialogueManager.dialogue_ended + SceneManager.lock_player() + await Util.wait(1) + await SceneManager.pop_os_with_str("c01_s06_四小孩对话结束") + SceneManager.unlock_player() var kid_run_tween @@ -217,8 +204,10 @@ func _on_push_obstacles(): $"桌椅撞倒音效".play() SceneManager.pop_debug_dialog_info("音效", "桌椅翻倒") + var current_round_failed = false + # 小孩1首先跑到桌椅旁 func obstacles_ambush1_triggered(): if obstacles_success: diff --git a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn index d30f12cf..b4192ed9 100644 --- a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn +++ b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=43 format=3 uid="uid://bx16c8nn32f40"] +[gd_scene load_steps=44 format=3 uid="uid://bx16c8nn32f40"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_bitx7"] [ext_resource type="Script" uid="uid://don6fobmq0h6x" path="res://scene/ground/scene/c01/s06_孤儿院长廊围墙.gd" id="2_fkfhi"] @@ -31,6 +31,7 @@ [ext_resource type="SpriteFrames" uid="uid://cramkual6vemp" path="res://asset/art/scene/c01/s06_孤儿院长廊围墙/fg_花圃.gif" id="15_wtosl"] [ext_resource type="AudioStream" uid="uid://c6fa4naudow04" path="res://asset/audio/sfx/交互/序章/02_孤儿院走廊_猫咪嘶吼.wav" id="16_huyl5"] [ext_resource type="Texture2D" uid="uid://dol25yn3fixim" path="res://asset/art/fog_mask.png" id="17_rdmp5"] +[ext_resource type="PackedScene" uid="uid://0sofmhrl358m" path="res://scene/entity/npc.tscn" id="24_phfqg"] [sub_resource type="Animation" id="Animation_723yg"] length = 0.001 @@ -151,7 +152,7 @@ libraries = { script = ExtResource("2_fkfhi") debug_global_data = Dictionary[String, Variant]({ "enabled_items": {}, -"player_x": 2000.0 +"player_x": 1500.0 }) debug_ground_data = Dictionary[String, Variant]({ "AnimationPlayer": { @@ -291,7 +292,7 @@ speed = 90.0 position = Vector2(1241, -1) sprite_frames = ExtResource("2_l4axy") animation = &"秋千" -frame = 5 +frame = 4 [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/秋千"] process_mode = 1 @@ -321,7 +322,7 @@ position = Vector2(1358, 0) sprite_frames = ExtResource("2_l4axy") animation = &"跷跷板" autoplay = "跷跷板" -frame = 3 +frame = 4 [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/跷跷板"] process_mode = 1 @@ -349,6 +350,7 @@ position = Vector2(1593, 44) position = Vector2(0, -44.5) sprite_frames = ExtResource("7_dsj2r") animation = &"【画画小女孩】呼吸" +frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "【画画小女孩】画画", "animation_next": "【画画小女孩】回头", @@ -370,7 +372,6 @@ action_configs = Array[Dictionary]([{ position = Vector2(43, -44.5) sprite_frames = ExtResource("7_dsj2r") animation = &"【画画男孩-1】呼吸" -frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "【画画男孩-1】呼吸", "animation_next": "【画画男孩-1】画画", @@ -426,7 +427,6 @@ one_shot = false position = Vector2(1558, -12) sprite_frames = ExtResource("7_dsj2r") animation = &"【站立小孩-3】呼吸" -frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": &"【站立小孩-3】转身", "animation_next": "【站立小孩-3】走路", @@ -501,12 +501,10 @@ enabled = false [node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-1】/猫鼠游戏重置ambush/Area2D" index="0"] shape = SubResource("RectangleShape2D_7cdhx") -[node name="对话1ambush" parent="Ground/DeployLayer/【站立小孩-1】" instance=ExtResource("11_tudob")] -position = Vector2(0, 51) -trigger_mode = "interact" -cooldown_time = 1.0 -hook_dialogue_title = "c01_s06_四个小孩_对话1" -hook_method = "talk1" +[node name="Npc对话1" parent="Ground/DeployLayer/【站立小孩-1】" instance=ExtResource("24_phfqg")] +position = Vector2(0, 71) +speaking_sign_height = 39.23 +dialogue_title = "c01_s06_四个小孩_对话1" [node name="【站立小孩-2】" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_ouldg")] z_index = 10 @@ -514,7 +512,6 @@ position = Vector2(1505, 19) sprite_frames = ExtResource("7_dsj2r") animation = &"【站立小孩-2】侧面呼吸" autoplay = "【站立小孩-2】侧面呼吸" -frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "【站立小孩-2】转身", "animation_next": "【站立小孩-2】走路", @@ -555,14 +552,6 @@ collision_mask = 64 [node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-2】/桌椅ambush2/Area2D" index="0"] shape = SubResource("RectangleShape2D_ceat6") -[node name="对话2ambush" parent="Ground/DeployLayer/【站立小孩-2】" instance=ExtResource("11_tudob")] -position = Vector2(2, 39) -sign_mark_offset = Vector2(0, -3.86) -trigger_mode = "interact" -cooldown_time = 1.0 -hook_dialogue_title = "c01_s06_四个小孩_对话2" -hook_method = "talk2" - [node name="猫鼠游戏重置ambush" parent="Ground/DeployLayer/【站立小孩-2】" instance=ExtResource("11_tudob")] position = Vector2(0, 53) enabled = false @@ -575,6 +564,11 @@ enabled = false [node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-2】/猫鼠游戏重置ambush/Area2D" index="0"] shape = SubResource("RectangleShape2D_7cdhx") +[node name="Npc对话2" parent="Ground/DeployLayer/【站立小孩-2】" instance=ExtResource("24_phfqg")] +position = Vector2(2, 52) +speaking_sign_height = 34.95 +dialogue_title = "c01_s06_四个小孩_对话2" + [node name="【墙上黑猫】" parent="Ground/DeployLayer" index="16" instance=ExtResource("8_ouldg")] position = Vector2(1453, -14) scale = Vector2(0.8, 0.8) @@ -607,7 +601,7 @@ z_index = 1 position = Vector2(1733, 5) sprite_frames = ExtResource("7_dsj2r") animation = &"【胖小孩背着残疾小孩】画画" -frame = 5 +frame = 6 action_configs = Array[Dictionary]([{ "animation_intro": "【胖小孩背着残疾小孩】呼吸", "animation_next": "【胖小孩背着残疾小孩】画画", @@ -692,12 +686,10 @@ enabled = false [node name="CollisionShape2D" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】/猫鼠游戏失败ambush/Area2D" index="0"] shape = SubResource("RectangleShape2D_7cdhx") -[node name="对话3ambush" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】" instance=ExtResource("11_tudob")] -position = Vector2(-2, 37) -trigger_mode = "interact" -cooldown_time = 1.0 -hook_dialogue_title = "c01_s06_四个小孩_对话3" -hook_method = "talk3" +[node name="Npc对话3" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】" instance=ExtResource("24_phfqg")] +position = Vector2(3, 53) +speaking_sign_height = 39.23 +dialogue_title = "c01_s06_四个小孩_对话3" [node name="猫鼠游戏胜利ambush" parent="Ground/DeployLayer" index="19" instance=ExtResource("11_tudob")] position = Vector2(4546, 45) @@ -747,18 +739,20 @@ position = Vector2(377, 18) scale = Vector2(0.9, 0.9) sprite_frames = ExtResource("2_l4axy") animation = &"中蓝衣小孩呼吸" -frame = 2 +frame = 1 [node name="门口_右绿衣男孩" parent="Ground/ParallaxForeground/BGParallaxLayer" index="3" instance=ExtResource("8_ouldg")] position = Vector2(408, 3) sprite_frames = ExtResource("2_l4axy") animation = &"右绿衣男孩呼吸" +frame = 1 [node name="门口_红衣姑娘" parent="Ground/ParallaxForeground/BGParallaxLayer" index="4" instance=ExtResource("8_ouldg")] light_mask = 2 position = Vector2(333, 9.5) sprite_frames = ExtResource("2_l4axy") animation = &"红衣姑娘呼吸" +frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": &"红衣姑娘抬头", "animation_next": "红衣姑娘呼吸", @@ -779,7 +773,6 @@ texture_scale = 0.5 position = Vector2(301, 8.5) sprite_frames = ExtResource("2_l4axy") animation = &"院长呼吸" -frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "院长翻书", "animation_next": "院长呼吸", @@ -796,7 +789,6 @@ action_configs = Array[Dictionary]([{ position = Vector2(273, 15) sprite_frames = ExtResource("2_l4axy") animation = &"左2黄衣男呼吸" -frame = 2 [node name="门口_左一绿衣男" parent="Ground/ParallaxForeground/BGParallaxLayer" index="7" instance=ExtResource("8_ouldg")] position = Vector2(242, 46.5) @@ -813,6 +805,7 @@ scale = Vector2(0.8, 0.8) sprite_frames = ExtResource("15_wtosl") animation = &"gif" autoplay = "gif" +frame = 1 centered = false offset = Vector2(0, -159) diff --git a/scene/ground/scene/c01/s07_书店外.tscn b/scene/ground/scene/c01/s07_书店外.tscn index f0b6f922..3411bb63 100644 --- a/scene/ground/scene/c01/s07_书店外.tscn +++ b/scene/ground/scene/c01/s07_书店外.tscn @@ -72,8 +72,23 @@ data = { "oneshot_animation_played": false } debug_global_data = Dictionary[String, Variant]({ -"enabled_items": PackedStringArray("prop_火柴", "prop_院长的信", "prop_银元"), -"player_x": 30.0 +"enabled_items": {}, +"player_x": 2000.0 +}) +debug_ground_data = Dictionary[String, Variant]({ +"Ambush报童": { +"played": false +}, +"Ambush监督小孩": { +"played": false +}, +"Ambush陆仁收刀": { +"played": false +}, +"AnimationPlayer": { +"fog_disappeared": false, +"oneshot_animation_played": false +} }) oneshot_animation = "" @@ -182,7 +197,7 @@ position = Vector2(1045, 6) sprite_frames = ExtResource("6_thm8f") animation = &"陆仁舞刀-黄昏带红缨" autoplay = "陆仁舞刀-黄昏带红缨" -frame = 20 +frame = 42 action_configs = Array[Dictionary]([{ "animation_intro": "陆仁收刀", &"animation_next": "陆仁收刀后呼吸", @@ -252,7 +267,7 @@ position = Vector2(2080, 6) sprite_frames = ExtResource("6_thm8f") animation = &"报童待机" autoplay = "报童待机" -frame = 5 +frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "报童给报纸", "animation_next": "报童待机", diff --git a/scene/ground/scene/c01/s08_书店.gd b/scene/ground/scene/c01/s08_书店.gd index 6f7068db..508186e4 100644 --- a/scene/ground/scene/c01/s08_书店.gd +++ b/scene/ground/scene/c01/s08_书店.gd @@ -99,12 +99,12 @@ func first_enter_door() -> void: func assign_tasks() -> void: # 放报纸动作 - SceneManager.freeze_player(0, 8, false) + SceneManager.lock_player(0, 8, true) await Util.wait(4.5) $"放报纸音效".play() DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s08_书店老板任务") await DialogueManager.dialogue_ended - SceneManager.release_player() + SceneManager.unlock_player() ladder.enabled = true envolope_table.enabled = true diff --git a/scene/ground/scene/c01/s08_书店.tscn b/scene/ground/scene/c01/s08_书店.tscn index aaca14a1..7d05f6d7 100644 --- a/scene/ground/scene/c01/s08_书店.tscn +++ b/scene/ground/scene/c01/s08_书店.tscn @@ -58,6 +58,31 @@ libraries = { &"": SubResource("AnimationLibrary_xqgjo") } script = ExtResource("2_0lque") +debug_global_data = Dictionary[String, Variant]({ +"c01_shelf_game_success": false, +"enabled_items": { +"prop_信碎片1": true +}, +"envelope_game_success": false, +"player_x": 30.0 +}) +debug_ground_data = Dictionary[String, Variant]({ +"Ambush梯子": { +"played": false +}, +"Ambush银元": { +"played": false +}, +"AnimationPlayer": { +"oneshot_animation_played": false +}, +"Interactable信件书桌": { +"interacted_times": 0 +}, +"Interactable报纸柜台": { +"interacted_times": 0 +} +}) oneshot_animation = "one_shot" [node name="环境音" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] @@ -194,6 +219,13 @@ offset = Vector2(317, 0) [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(437, 98) character = "小小蝶" +player_movement_rect = Rect2(22, -158, 523, 316) + +[node name="CameraFocusMarker" parent="Ground" index="6"] +limit_left = 0 +limit_top = -158 +limit_right = 576 +limit_bottom = 158 [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] position = Vector2(-1, 22) diff --git a/scene/ground/scene/c01/s09_公寓楼外.tscn b/scene/ground/scene/c01/s09_公寓楼外.tscn index 98cdbe27..3507b173 100644 --- a/scene/ground/scene/c01/s09_公寓楼外.tscn +++ b/scene/ground/scene/c01/s09_公寓楼外.tscn @@ -85,6 +85,13 @@ bgm_title = "诡异环境音2" bgm_stream = ExtResource("6_lrqbi") metadata/_custom_type_script = "uid://bbg4vopj4apl6" +[node name="Bgm鬼差追逐" type="Node" parent="Ground/AnimationPlayer" index="2"] +script = ExtResource("5_hy0mc") +mode = "stop" +bgm_title = "Bgm鬼差追逐" +stop_ease_duration = 10.0 +metadata/_custom_type_script = "uid://bbg4vopj4apl6" + [node name="BGSprite2D" parent="Ground" index="2"] position = Vector2(0, -15) texture = ExtResource("3_828bq") @@ -155,7 +162,6 @@ bus = &"game_sfx" script = ExtResource("11_6w7lv") [node name="Sfx鬼差擦肩而过" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Ghost"] -process_mode = 1 stream = ExtResource("8_sq0x2") max_distance = 500.0 bus = &"game_sfx" @@ -173,7 +179,6 @@ autoplay = "书店老板害怕" script = ExtResource("20_nwvnr") [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/书店老板害怕/鬼影浮现"] -process_mode = 1 stream = ExtResource("7_5sju7") max_distance = 1000.0 attenuation = 2.0 @@ -199,7 +204,6 @@ autoplay = "孤儿院小孩害怕1" script = ExtResource("20_nwvnr") [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/孤儿院小孩害怕1/鬼影浮现"] -process_mode = 1 stream = ExtResource("7_5sju7") max_distance = 1000.0 attenuation = 2.0 @@ -226,7 +230,6 @@ position = Vector2(7, 0) script = ExtResource("20_nwvnr") [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/孤儿院小孩害怕2/鬼影浮现"] -process_mode = 1 stream = ExtResource("7_5sju7") max_distance = 1000.0 attenuation = 2.0 @@ -252,7 +255,6 @@ autoplay = "举碗小孩害怕" script = ExtResource("20_nwvnr") [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕1/鬼影浮现"] -process_mode = 1 stream = ExtResource("7_5sju7") max_distance = 1000.0 attenuation = 2.0 @@ -279,7 +281,6 @@ position = Vector2(-26, 1) script = ExtResource("20_nwvnr") [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕2/鬼影浮现"] -process_mode = 1 stream = ExtResource("7_5sju7") max_distance = 1000.0 attenuation = 2.0 @@ -305,7 +306,6 @@ autoplay = "夜晚举腿小孩害怕" script = ExtResource("20_nwvnr") [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕3/鬼影浮现"] -process_mode = 1 stream = ExtResource("7_5sju7") max_distance = 1000.0 attenuation = 2.0 @@ -356,6 +356,13 @@ texture = ExtResource("12_828bq") [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(41, 103) character = "小小蝶" +player_movement_rect = Rect2(37, -158, 3423, 316) + +[node name="CameraFocusMarker" parent="Ground" index="6"] +limit_left = 0 +limit_top = -165 +limit_right = 3500 +limit_bottom = 165 [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(37, 150, 3460, 150) diff --git a/scene/ground/scene/c01/s12_书店外_诡异版.gd b/scene/ground/scene/c01/s12_书店外_诡异版.gd index 211932d0..2796eb0e 100644 --- a/scene/ground/scene/c01/s12_书店外_诡异版.gd +++ b/scene/ground/scene/c01/s12_书店外_诡异版.gd @@ -56,7 +56,7 @@ func intro() -> void: begger.play("杂戏团夜晚_小孩举碗呼吸") # SceneManager.freeze_player(0) # SceneManager.focus_node(begger, 5.) - Util.timer(1., _intro_dialog) + Util.timer(1., _intro_dialog) func _intro_dialog() -> void: @@ -77,6 +77,11 @@ func ambush_begger_interacted(): interactable_bowl.enabled = true +func _ghost_appear_sfx(): + $"Sfx鬼差出场".play() + Util.timer(3.0, $"Bgm鬼差追逐".start) + + func _on_interactable_bowl_interacted() -> void: SceneManager.freeze_player(0) # ⼩男孩询问吕萍银元从哪⾥弄来的 @@ -90,7 +95,7 @@ func _on_interactable_bowl_interacted() -> void: kids.play("夜晚其余小孩杂耍到害怕过渡") var kid = $"../DeployLayer/举腿小孩" kid.play("夜晚举腿小孩杂耍到害怕过渡") - $"Sfx鬼差出场".play() + _ghost_appear_sfx() await Util.wait(1) DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了") var tween = create_tween() @@ -132,6 +137,7 @@ func _setup_catching_game(): func player_been_catched(transition := true) -> void: + $"Bgm鬼差追逐".stop(1.5) $"Sfx鬼差擦肩而过".play() SceneManager.freeze_player(0) if ghost_move_tween: @@ -152,7 +158,7 @@ func player_been_catched(transition := true) -> void: # reset player and ghost position ghost.global_position.x = ghost_start_x + 100.0 SceneManager.get_player().global_position.x = player_start_x - $"Sfx鬼差出场".play() + _ghost_appear_sfx() DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了") await DialogueManager.dialogue_ended SceneManager.release_player() diff --git a/scene/ground/scene/c01/s12_书店外_诡异版.tscn b/scene/ground/scene/c01/s12_书店外_诡异版.tscn index 979ab7a4..2905ef40 100644 --- a/scene/ground/scene/c01/s12_书店外_诡异版.tscn +++ b/scene/ground/scene/c01/s12_书店外_诡异版.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=34 format=3 uid="uid://bol5hl68pbpgq"] +[gd_scene load_steps=36 format=3 uid="uid://bol5hl68pbpgq"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_llw14"] [ext_resource type="Script" uid="uid://bh4h0e158t1oj" path="res://scene/ground/scene/c01/s12_书店外_诡异版.gd" id="2_krdvw"] @@ -16,6 +16,7 @@ [ext_resource type="PackedScene" uid="uid://ci34db7xool2n" path="res://scene/ground/script/c01/s01_书店外_自动枯萎的花朵.tscn" id="7_aq8vg"] [ext_resource type="AudioStream" uid="uid://c5rgfl6ub4chw" path="res://asset/audio/sfx/交互/序章/sfx_鬼差擦肩而过.wav" id="7_denrd"] [ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/effect/ghost.tscn" id="8_gk0gq"] +[ext_resource type="AudioStream" uid="uid://csgc3241h5vin" path="res://asset/audio/sfx/bgm/序章/鬼差追击.MP3" id="9_denrd"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="9_nqlku"] [ext_resource type="Script" uid="uid://dxq5c05ab7uyu" path="res://scene/ground/script/c01/s00_ghost_footstep.gd" id="10_1tspp"] [ext_resource type="PackedScene" uid="uid://cn1ypquvs07wx" path="res://scene/ground/script/c01/s12_飘动的寻人启事.tscn" id="11_pwu7i"] @@ -50,6 +51,11 @@ _data = { &"intro": SubResource("Animation_48eje") } +[sub_resource type="AudioStreamSynchronized" id="AudioStreamSynchronized_mxf8g"] +stream_count = 1 +stream_0/stream = ExtResource("4_mxf8g") +stream_0/volume = 0.0 + [sub_resource type="FastNoiseLite" id="FastNoiseLite_jw18h"] noise_type = 2 fractal_type = 2 @@ -91,22 +97,54 @@ libraries = { &"": SubResource("AnimationLibrary_38lx7") } script = ExtResource("2_krdvw") +debug_global_data = Dictionary[String, Variant]({ +"enabled_items": { +"prop_银元": true +}, +"player_x": 1500.0 +}) +debug_ground_data = Dictionary[String, Variant]({ +"AmbushSuccess": { +"played": false +}, +"Ambush举碗小孩": { +"played": false +}, +"Ambush玩家被抓": { +"played": false +}, +"AnimationPlayer": { +"oneshot_animation_played": false +}, +"Interactable碗": { +"interacted_times": 0 +} +}) oneshot_animation = "intro" [node name="BgmControl" type="Node" parent="Ground/AnimationPlayer" index="0"] script = ExtResource("3_p7n7n") bgm_title = "诡异环境音2" -bgm_stream = ExtResource("4_mxf8g") +bgm_stream = SubResource("AudioStreamSynchronized_mxf8g") metadata/_custom_type_script = "uid://bbg4vopj4apl6" -[node name="Sfx鬼差出场" type="AudioStreamPlayer2D" parent="Ground/AnimationPlayer" index="1"] +[node name="Bgm鬼差追逐" type="Node" parent="Ground/AnimationPlayer" index="1"] +script = ExtResource("3_p7n7n") +mode = "stop" +bgm_title = "Bgm鬼差追逐" +bgm_stream = ExtResource("9_denrd") +db = -15.0 +metadata/_custom_type_script = "uid://bbg4vopj4apl6" + +[node name="Sfx鬼差出场" type="AudioStreamPlayer2D" parent="Ground/AnimationPlayer" index="2"] position = Vector2(1443, 41) stream = ExtResource("5_5qtdl") +volume_db = 3.0 bus = &"game_sfx" script = ExtResource("6_mxf8g") metadata/_custom_type_script = "uid://wapo47a1oddf" -[node name="Sfx鬼差擦肩而过" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +[node name="Sfx鬼差擦肩而过" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"] stream = ExtResource("7_denrd") bus = &"game_sfx" script = ExtResource("6_p7n7n") @@ -185,6 +223,7 @@ position = Vector2(1911, 12) sprite_frames = ExtResource("14_7jjl5") animation = &"夜晚其余小孩杂耍" autoplay = "夜晚其余小孩杂耍" +frame = 2 action_configs = Array[Dictionary]([{ "animation_intro": "夜晚其余小孩杂耍到害怕过渡", &"animation_next": "夜晚其余小孩害怕", @@ -197,6 +236,7 @@ position = Vector2(1822, 6) sprite_frames = ExtResource("14_7jjl5") animation = &"夜晚举腿小孩杂耍" autoplay = "夜晚举腿小孩杂耍" +frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "夜晚举腿小孩杂耍到害怕过渡", "animation_next": "夜晚举腿小孩害怕", @@ -209,6 +249,7 @@ position = Vector2(1792, 9) sprite_frames = ExtResource("13_lucm6") animation = &"杂戏团夜晚_小孩举碗呼吸" autoplay = "杂戏团夜晚_小孩举碗呼吸" +frame = 2 action_configs = Array[Dictionary]([{ "animation_intro": "杂戏团夜晚_小孩放下碗", "animation_next": "举碗小孩呼吸", @@ -299,6 +340,13 @@ texture = ExtResource("17_nta2f") [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(41, 98) character = "小小蝶" +player_movement_rect = Rect2(37, -158, 3013, 316) + +[node name="CameraFocusMarker" parent="Ground" index="6"] +limit_left = 0 +limit_top = -158 +limit_right = 3070 +limit_bottom = 158 [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(37, 150, 3050, 150) diff --git a/scene/ground/scene/c02/s01_公寓门口.tscn b/scene/ground/scene/c02/s01_公寓门口.tscn index 12f5cb28..bdbb780b 100644 --- a/scene/ground/scene/c02/s01_公寓门口.tscn +++ b/scene/ground/scene/c02/s01_公寓门口.tscn @@ -34,6 +34,11 @@ script = ExtResource("3_bhi7l") autoplay_group = &"c02_楼道1" metadata/_custom_type_script = "uid://cpejxlfni6n52" +[node name="VibeSfx虫鸣" type="Node" parent="Ground/AnimationPlayer" index="1"] +script = ExtResource("3_bhi7l") +autoplay_group = &"夜晚虫鸣" +metadata/_custom_type_script = "uid://cpejxlfni6n52" + [node name="BGSprite2D" parent="Ground" index="2"] texture = ExtResource("5_j2ctx") diff --git a/scene/ground/scene/c02/s02_过道.tscn b/scene/ground/scene/c02/s02_过道.tscn index fd33bd6e..dd67a100 100644 --- a/scene/ground/scene/c02/s02_过道.tscn +++ b/scene/ground/scene/c02/s02_过道.tscn @@ -70,7 +70,10 @@ debug_global_data = Dictionary[String, Variant]({ "c02_musicbox_xiaochan_taken": false, "c02_musicbox_xiaomao_taken": false, "c02_s02_mouse_push_shoe": false, -"enabled_items": ["prop_火柴", "prop_木头人偶", "prop_银元"], +"enabled_items": { +"prop_火柴": true +}, +"handnote_c02_musicbox_needPuppet": 0, "player_x": 530.0 }) debug_ground_data = Dictionary[String, Variant]({ @@ -91,7 +94,7 @@ debug_ground_data = Dictionary[String, Variant]({ }, "AnimationPlayer": { "display_paper_man": false, -"first_enter": false, +"first_enter": true, "flyer_shaven": false, "oneshot_animation_played": false }, @@ -120,7 +123,7 @@ mode = "交互与效果音" [node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="1"] script = ExtResource("5_36l5t") -autoplay_group = &"c02_楼道1" +autoplay_group = &"c02_楼道2" metadata/_custom_type_script = "uid://cpejxlfni6n52" [node name="BGSprite2D" parent="Ground" index="2"] diff --git a/scene/ground/scene/c02/s03_院子.gd b/scene/ground/scene/c02/s03_院子.gd index 8a1f5cae..c2cf0ac5 100644 --- a/scene/ground/scene/c02/s03_院子.gd +++ b/scene/ground/scene/c02/s03_院子.gd @@ -135,6 +135,7 @@ func _on_gate_failed() -> void: func _on_gate_interacted() -> void: + $"Sfx打开铁门后".play() gate.get_node("Wall/CollisionShape2D").disabled = true EventManager.set_stage_if_greater(&"handnote_c02_gate_chain", 2) EventManager.set_stage_if_greater(&"handnote_c02_map_1Right", 1) diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 6d2dea1f..356d8f3a 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=80 format=3 uid="uid://djc2uaefhmu7"] +[gd_scene load_steps=81 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"] @@ -6,6 +6,7 @@ [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="4_gd6xp"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ygnci"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="5_00b7a"] +[ext_resource type="AudioStream" uid="uid://cm80s51o5xt0r" path="res://asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3" id="5_qt2qg"] [ext_resource type="Texture2D" uid="uid://f8yjp5ggr8qw" path="res://asset/art/scene/c02/s03_公寓一楼院子/算卦布.png" id="6_1tart"] [ext_resource type="Texture2D" uid="uid://0uh6qaalhqju" path="res://asset/art/scene/c02/s11_一楼火灾/总背景/bg_院子1楼火灾.png" id="6_d7h4s"] [ext_resource type="AudioStream" uid="uid://bhaws2ungqaf5" path="res://asset/audio/sfx/交互/角色/sfx_哼歌.ogg" id="6_jhod7"] @@ -287,7 +288,7 @@ data = { "oneshot_animation_played": false } debug_global_data = Dictionary[String, Variant]({ -"c02_ball_game_stage": 3, +"c02_ball_game_stage": 1, "c02_burning": false, "c02_burning_end_stage": 1, "c02_counter_pushed_out": false, @@ -296,7 +297,7 @@ debug_global_data = Dictionary[String, Variant]({ "c02_madman_hitwall": false, "c02_madman_interacted": 0, "c02_open_gate_first_failed": false, -"c02_ready_to_fire": true, +"c02_ready_to_fire": false, "c02_show_grounded_coins": false, "c02_the_blind_room_unlocked": false, "c02_watched_the_well": false, @@ -308,7 +309,7 @@ debug_global_data = Dictionary[String, Variant]({ "handnote_c02_gate_chain": 1, "handnote_c02_map_1Right": 1, "handnote_c02_meat_knockDoor": 1, -"player_x": 2000.0 +"player_x": 1200.0 }) debug_ground_data = Dictionary[String, Variant]({ "Ambush保卫科旁边os": { @@ -352,7 +353,7 @@ debug_ground_data = Dictionary[String, Variant]({ "interacted_times": 0 }, "Interactable铁门": { -"interacted_times": 1 +"interacted_times": 0 }, "Pickable小鞋子": { "picked": false @@ -375,22 +376,29 @@ bus = &"game_sfx" script = ExtResource("4_ygnci") 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_qt2qg") +volume_db = -20.0 +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="Sfx小蝉哼歌" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +[node name="Sfx小蝉哼歌" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"] stream = ExtResource("6_jhod7") volume_db = 16.0 bus = &"game_sfx" script = ExtResource("4_ygnci") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" -[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="3"] +[node name="VibeSfx氛围" type="Node" parent="Ground/AnimationPlayer" index="4"] script = ExtResource("6_lq23y") -autoplay_group = &"c02_楼道2" +autoplay_group = &"氛围_不受欢迎的存在" metadata/_custom_type_script = "uid://cpejxlfni6n52" [node name="BGSprite2D" parent="Ground" index="2"] @@ -432,7 +440,7 @@ position = Vector2(953, 42) sprite_frames = ExtResource("11_o1qbs") animation = &"c00_头套小婵_run" autoplay = "c00_头套小婵_idle" -frame = 3 +frame = 5 move_configs = Array[Dictionary]([{ "animation": "c00_头套小婵_run", "animation_next": "", @@ -626,7 +634,6 @@ event = &"c02_madman_interacted" metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" [node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D小蝉哼歌"] -process_mode = 1 position = Vector2(-2, -1) stream = ExtResource("6_jhod7") volume_db = 20.0 @@ -794,10 +801,9 @@ position = Vector2(-11, 1) sprite_frames = ExtResource("34_1tart") animation = &"霸凌1" autoplay = "霸凌1" -frame = 4 +frame = 9 [node name="Sfx2D霸凌童谣" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/霸凌/f1"] -process_mode = 1 stream = ExtResource("46_qqdxs") volume_db = -5.0 attenuation = 2.0 @@ -1009,6 +1015,7 @@ position = Vector2(2229, 41) sprite_frames = ExtResource("34_1tart") animation = &"霸凌3-发抖" autoplay = "霸凌3-发抖" +frame = 1 [node name="Pro小孩喊着火啦3" parent="Ground/DeployLayer/火灾" instance=ExtResource("33_ycojw")] z_index = 9 @@ -1067,13 +1074,12 @@ z_index = 5 position = Vector2(17, -11) sprite_frames = ExtResource("39_rnk1v") animation = &"吕萍牵手动作" -frame = 3 +frame = 5 [node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/火灾/牵手跑"] shape = SubResource("RectangleShape2D_vddfx") [node name="Sfx2D跑步" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/火灾/牵手跑"] -process_mode = 1 stream = SubResource("AudioStreamRandomizer_fxne6") volume_db = 3.0 bus = &"game_sfx" diff --git a/scene/ground/scene/c02/s04_保卫科.tscn b/scene/ground/scene/c02/s04_保卫科.tscn index c5049713..04377220 100644 --- a/scene/ground/scene/c02/s04_保卫科.tscn +++ b/scene/ground/scene/c02/s04_保卫科.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=3 uid="uid://bivc5cdap370p"] +[gd_scene load_steps=23 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"] @@ -8,12 +8,13 @@ [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="5_g8amr"] [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"] +[ext_resource type="Texture2D" uid="uid://cs14llkvr3fg8" path="res://asset/art/scene/c02/s04_保卫科/e_弹珠墙面涂鸦提示.png" id="6_gk1h4"] [ext_resource type="Texture2D" uid="uid://baffg10ne8hu8" path="res://asset/art/scene/c02/s04_保卫科/fg_前景.png" id="6_tio43"] [ext_resource type="PackedScene" uid="uid://b454ap241bshk" path="res://scene/ground/script/c02/折锡纸.tscn" id="7_fvlg0"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="7_ypth3"] [ext_resource type="PackedScene" uid="uid://cdf2qe8l7323i" path="res://scene/ground/script/c02/老鼠精画像.tscn" id="8_cm3g6"] [ext_resource type="Texture2D" uid="uid://ch6uf4qi1i0h2" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕3.png" id="9_a43aq"] +[ext_resource type="Texture2D" uid="uid://hkrd6dd2nxkv" path="res://asset/art/scene/c02/s04_保卫科/e_小钳子提示.png" id="9_k74x7"] [ext_resource type="PackedScene" uid="uid://xovlfee503a4" path="res://scene/ground/script/c02/小手讨东西.tscn" id="10_a43aq"] [ext_resource type="Texture2D" uid="uid://v6q6ao6fiqm1" path="res://asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png" id="11_ffvrp"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="13_xy3nq"] @@ -106,25 +107,29 @@ hook_method = "xiaochan_disappear" position = Vector2(275, 13) texture = ExtResource("6_gk1h4") -[node name="Closeup折锡纸" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_66gue")] +[node name="小钳子提示" type="Sprite2D" parent="Ground/DeployLayer" index="4"] +position = Vector2(270, -3) +texture = ExtResource("9_k74x7") + +[node name="Closeup折锡纸" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_66gue")] unique_name_in_owner = true position = Vector2(189, 15) packed_scene = ExtResource("7_fvlg0") first_interact_os_key = "c02_保卫科祭台os" -[node name="Closeup老鼠精" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_66gue")] +[node name="Closeup老鼠精" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_66gue")] light_mask = 5 position = Vector2(207.5, -40.5) texture = ExtResource("11_ffvrp") packed_scene = ExtResource("8_cm3g6") -[node name="Closeup花名册" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_66gue")] +[node name="Closeup花名册" parent="Ground/DeployLayer" index="7" instance=ExtResource("6_66gue")] unique_name_in_owner = true position = Vector2(351, 31) packed_scene = ExtResource("6_fvlg0") first_interact_os_key = "c02_保卫科花名册os" -[node name="煤油灯" type="Sprite2D" parent="Ground/DeployLayer" index="7"] +[node name="煤油灯" type="Sprite2D" parent="Ground/DeployLayer" index="8"] position = Vector2(370, 39) [node name="灯光" type="AnimatedSprite2D" parent="Ground/DeployLayer/煤油灯"] @@ -141,16 +146,16 @@ energy = 2.0 blend_mode = 2 texture = ExtResource("9_a43aq") -[node name="小手讨东西" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_a43aq")] +[node name="小手讨东西" parent="Ground/DeployLayer" index="9" instance=ExtResource("10_a43aq")] position = Vector2(295, -6) -[node name="Local寻人启事" parent="Ground/DeployLayer" index="9" instance=ExtResource("19_k74x7")] +[node name="Local寻人启事" parent="Ground/DeployLayer" index="10" instance=ExtResource("19_k74x7")] position = Vector2(116, -1) texture = ExtResource("20_g8amr") texture_cover = ExtResource("21_cq2m4") content_key = "c02_寻人启事_完整" -[node name="小蝉写字" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="10"] +[node name="小蝉写字" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"] position = Vector2(351, 51) sprite_frames = ExtResource("20_47ju4") animation = &"c00_头套小婵_write" @@ -175,6 +180,7 @@ texture = ExtResource("6_tio43") points = PackedVector2Array(66, 150, 495, 150) [node name="DirectionalLight2D" parent="Ground" index="8"] +visible = false energy = 0.9 blend_mode = 1 diff --git a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn index 00965140..ff90c4b1 100644 --- a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn +++ b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn @@ -119,9 +119,12 @@ data = { debug_global_data = Dictionary[String, Variant]({ "c02_madman_hitwall": true, "c02_madman_interacted": 0, -"c02_meat_dropping": false, +"c02_meat_dropping": true, "c02_meat_given": false, -"enabled_items": ["prop_火柴", "prop_院长的信", "prop_银元"], +"enabled_items": { +"prop_奇怪的肉": true, +"prop_粘鼠板": true +}, "handnote_c02_map_1Left": 0, "handnote_c02_meat_knockDoor": 0, "handnote_c02_meat_stopMouse": 0, @@ -221,7 +224,7 @@ trigger_mode = "interact" hook_method = "wood_puppet" [node name="Closeup拿人偶后记忆闪回" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_2yvhw")] -position = Vector2(320, 23) +position = Vector2(-108, -168) packed_scene = ExtResource("10_7mq0m") quit_closeup_on_escape = false action_key = 3 @@ -355,6 +358,7 @@ position = Vector2(-180, 5) sprite_frames = ExtResource("7_mrltr") animation = &"小蝉背对转头" autoplay = "小蝉背对呼吸帧" +frame = 4 flip_h = true [node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="18"] @@ -364,7 +368,6 @@ event = &"c02_madman_interacted" metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" [node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D小蝉哼歌"] -process_mode = 1 position = Vector2(-103, -11) stream = ExtResource("24_7mq0m") volume_db = 20.0 @@ -382,10 +385,17 @@ hook_method = "update_1l_map" [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(41, 98) +player_movement_rect = Rect2(23, -158, 677, 316) [node name="AudioListener2D" type="AudioListener2D" parent="Ground/MainPlayer" index="6"] current = true +[node name="CameraFocusMarker" parent="Ground" index="6"] +limit_left = 0 +limit_top = -158 +limit_right = 716 +limit_bottom = 158 + [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] position = Vector2(45, -9) scale = Vector2(1.1, 1.1) @@ -395,6 +405,7 @@ texture = ExtResource("8_tueh3") points = PackedVector2Array(23, 150, 700, 150) [node name="DirectionalLight2D" parent="Ground" index="8"] +visible = false energy = 0.9 blend_mode = 1 diff --git a/scene/ground/scene/c02/s06_二楼.gd b/scene/ground/scene/c02/s06_二楼.gd index 5a93824d..d150ae8d 100644 --- a/scene/ground/scene/c02/s06_二楼.gd +++ b/scene/ground/scene/c02/s06_二楼.gd @@ -111,11 +111,12 @@ func boys_ball_game() -> void: var stage = EventManager.get_stage(&"c02_ball_game_stage") if stage == 0: EventManager.set_stage(&"c02_ball_game_stage", 1) - ArchiveManager.set_global_entry(&"c02_pliers_to_ball", true) SceneManager.lock_player() DialogueManager.show_dialogue_balloon(dialogue_c02, "c02_s05_三男孩弹珠游戏1") await DialogueManager.dialogue_ended - SceneManager.pop_os_with_str("c02_小手换回弹珠") + # 手里有弹珠就不说了 + if SceneManager.get_prop_hud().inventory.has_prop("prop_弹珠"): + SceneManager.pop_os_with_str("c02_小手换回弹珠") SceneManager.unlock_player() elif stage == 1 or stage == 2: SceneManager.lock_player() @@ -190,10 +191,9 @@ func _on_exit_final_show(_arg): await get_tree().create_timer(3.0).timeout $"../DeployLayer/c02_final/瞎子/Sfx2D脚步声".play() await animation_finished - c02_final_layer.queue_free() - _toggle_candles(true) - await Util.wait(0.5) + await Util.wait(1.0) + c02_final_layer.queue_free() # 小蝉上楼后开启第二章 var xxdie = $"../DeployLayer/Pro小小蝶上楼" as AnimatedSprite2D diff --git a/scene/ground/scene/c02/s06_二楼.tscn b/scene/ground/scene/c02/s06_二楼.tscn index 31fbf682..05db8eb8 100644 --- a/scene/ground/scene/c02/s06_二楼.tscn +++ b/scene/ground/scene/c02/s06_二楼.tscn @@ -899,20 +899,19 @@ libraries = { script = ExtResource("2_4dg6u") debug_global_data = Dictionary[String, Variant]({ "c02_2f_xchan_run_away": 0, -"c02_ball_game_stage": 1, -"c02_burning_end_stage": 1, +"c02_ball_game_stage": 2, +"c02_burning_end_stage": 2, "c02_madman_hitwall": false, "c02_mouse_follow_player": false, -"c02_pliers_to_ball": false, "c02_s02_mouse_push_shoe": false, -"c02_the_blind_room_unlocked": false, +"c02_the_blind_room_unlocked": true, "enabled_items": { "prop_小鞋子1": true, "prop_火柴": true }, "handnote_c02_map_2": 0, "handnote_c02_shoe_giveToMouce": 0, -"player_x": 830.0 +"player_x": 50.0 }) debug_ground_data = Dictionary[String, Variant]({ "Ambush三男孩": { @@ -1072,7 +1071,6 @@ position = Vector2(953, 30) sprite_frames = ExtResource("13_6iuix") animation = &"小小小蝶动画(跑)" autoplay = "小小小蝶动画(呼吸)" -frame = 1 flip_h = true move_configs = Array[Dictionary]([{ "animation": "小小小蝶动画(跑)", @@ -1240,6 +1238,7 @@ autostart = false action_configs = Array[Dictionary]([{ "animation_intro": &"胖子呼吸", &"animation_next": "胖子走路", +"animation_wait_time": 0.0, &"intro_loop": 5 }]) move_configs = Array[Dictionary]([{ @@ -1267,10 +1266,13 @@ animation = &"小婵捂脸" autostart = false action_configs = Array[Dictionary]([{ "animation_intro": "小婵捂脸", -&"animation_next": "小婵呼吸" +&"animation_next": "小婵呼吸", +"animation_wait_time": 0.0, +"intro_loop": 1 }, { "animation_intro": &"小婵呼吸", &"animation_next": "小婵走路", +"animation_wait_time": 0.0, &"intro_loop": 7 }]) move_configs = Array[Dictionary]([{ @@ -1292,6 +1294,7 @@ autostart = false action_configs = Array[Dictionary]([{ "animation_intro": &"方瞎子呼吸-右", &"animation_next": "方瞎子走路-左", +"animation_wait_time": 0.0, &"intro_loop": 6 }]) move_configs = Array[Dictionary]([{ diff --git a/scene/ground/scene/c02/s09_裂缝.tscn b/scene/ground/scene/c02/s09_裂缝.tscn index 28b7a157..de705426 100644 --- a/scene/ground/scene/c02/s09_裂缝.tscn +++ b/scene/ground/scene/c02/s09_裂缝.tscn @@ -743,7 +743,7 @@ texture = ExtResource("16_7mvsg") position = Vector2(637.5, -19) sprite_frames = ExtResource("21_kpfk1") animation = &"剪影人物床_呼吸" -frame = 2 +frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "剪影人物床_指天", &"animation_next": "剪影人物床_指天呼吸", diff --git a/scene/ground/scene/c03/s01_三楼.tscn b/scene/ground/scene/c03/s01_三楼.tscn index 231ff4c5..5090b35f 100644 --- a/scene/ground/scene/c03/s01_三楼.tscn +++ b/scene/ground/scene/c03/s01_三楼.tscn @@ -209,9 +209,9 @@ metadata/_custom_type_script = "uid://cpejxlfni6n52" [node name="BGSprite2D" parent="Ground" index="2"] light_mask = 5 -position = Vector2(0, -2) +position = Vector2(0, -24) texture = ExtResource("4_ow08b") -offset = Vector2(0, -115.5) +offset = Vector2(0, -155) [node name="portal_left" parent="Ground/DeployLayer" index="0"] position = Vector2(34, 8) @@ -268,7 +268,7 @@ texture = ExtResource("11_amci2") packed_scene = ExtResource("7_d27sg") [node name="小蜡烛系列" type="Node2D" parent="Ground/DeployLayer" index="6"] -position = Vector2(0, 3) +position = Vector2(0, 6) [node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer/小蜡烛系列"] self_modulate = Color(0.611765, 0.611765, 0.611765, 1) @@ -386,7 +386,6 @@ texture = ExtResource("5_ow08b") points = PackedVector2Array(30, 151, 723, 150) [node name="DirectionalLight2D" parent="Ground" index="8"] -visible = false energy = 0.9 blend_mode = 1 diff --git a/scene/ground/script/c02/小手讨东西.gd b/scene/ground/script/c02/小手讨东西.gd index 4f7fabf2..d76c05aa 100644 --- a/scene/ground/script/c02/小手讨东西.gd +++ b/scene/ground/script/c02/小手讨东西.gd @@ -225,9 +225,8 @@ func _on_interacted() -> void: ArchiveManager.set_global_entry(&"c02_little_hand_dropped_tin", true) await SceneManager.pop_os_with_str("c02_小手还能换什么") - # 是否允许老虎钳换弹珠 - var pliers_to_ball = ArchiveManager.get_global_value(&"c02_pliers_to_ball", false) - if id == 0 and key == "prop_老虎钳" and pliers_to_ball: + # 老虎钳 <-> 弹珠 + if id == 0 and key == "prop_老虎钳": interacted_success = true sfx_success.play() SceneManager.disable_prop_item("prop_老虎钳") @@ -235,9 +234,7 @@ func _on_interacted() -> void: SceneManager.pop_debug_dialog_info("美术", "小手_老虎钳_hide + 小手_弹珠_show + 小手_弹珠_idle") await Util.wait(1.5) holding_prop = "prop_弹珠" - # 换回弹珠后完全结束 - EventManager.set_stage_if_greater(&"handnote_c02_hand_exchange", 2) - elif id == 0 and key == "prop_弹珠" and not pliers_to_ball: + elif id == 0 and key == "prop_弹珠": interacted_success = true sfx_success.play() SceneManager.disable_prop_item("prop_弹珠") @@ -245,7 +242,6 @@ func _on_interacted() -> void: SceneManager.pop_debug_dialog_info("美术", "小手_弹珠_hide + 小手_老虎钳_show + 小手_老虎钳_idle") await Util.wait(1.5) holding_prop = "prop_老虎钳" - if interacted_success: EventManager.prop_interacted(name, key, 1) else: diff --git a/scene/little_game/弹珠游戏/ball.gd b/scene/little_game/弹珠游戏/ball.gd index e59d2b09..f99554b6 100644 --- a/scene/little_game/弹珠游戏/ball.gd +++ b/scene/little_game/弹珠游戏/ball.gd @@ -3,7 +3,7 @@ extends RigidBody2D signal hit_ball_touched -signal hit_ball_finished +signal hit_ball_finished(count: int) signal hit_boundary @export_enum("1", "2", "3", "4", "5", "6", "7") var id := "1": @@ -100,19 +100,29 @@ func _on_body_entered(node: Node): print("[debug] first hit node", node.get_path()) shooted_instances[instance_id] = true shoot_count += 1 + # 从被打击到的 ball 上建立 tween + tween = node.create_tween() + # sfx 碰撞音效 hit_ball_touched.emit() - tween = create_tween() - tween.tween_property(self, "modulate:a", 0.0, 1.5) + # 新碰到会刷新 modulate:a -> 0 时间 + tween.tween_property(self, "modulate:a", 0.0, 1.5).set_ease(Tween.EASE_IN) tween.parallel().tween_property(node, "modulate:a", 0.0, 1.5) - tween.tween_callback(hit_ball_finished.emit) + # 和第一个碰撞的球消失时一起消失 + if shoot_count == 1: + tween.tween_callback(_on_shoot_finished) tween.tween_callback(node.queue_free) - tween.tween_callback(queue_free) print("[ball] shoot count: ", shoot_count) if shoot_count >= 3: #TODO 连续射中三个成就 pass +func _on_shoot_finished() -> void: + # 计数+shoot_count & reload_hand_ball + hit_ball_finished.emit(shoot_count) + queue_free() + + func _process(_delta: float) -> void: if Engine.is_editor_hint(): return diff --git a/scene/little_game/弹珠游戏/弹珠游戏.gd b/scene/little_game/弹珠游戏/弹珠游戏.gd index bff2e1fa..b7b46f06 100644 --- a/scene/little_game/弹珠游戏/弹珠游戏.gd +++ b/scene/little_game/弹珠游戏/弹珠游戏.gd @@ -52,6 +52,8 @@ func intro(): func intro_finished(): SceneManager.disable_prop_item("prop_弹珠") + # 老虎钳 - 弹珠交换功能结束 + EventManager.set_stage_if_greater(&"handnote_c02_hand_exchange", 2) # 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束(小猫纸片) 4:游戏结束(小猫离开) # 放入弹珠,开始游戏 EventManager.set_stage(&"c02_ball_game_stage", 2) @@ -198,9 +200,10 @@ func _on_hit_ball(): sfx_shoot.stop() -func _on_hit_ball_finished(): +func _on_hit_ball_finished(count: int): reload_hand_ball() - hit_count += 1 + hit_count += count + print("current round: ", round_id, " hit count: ", hit_count) if round_id == 0: round_ready = false _success_dialogue() diff --git a/scene/little_game/拼凑信件.gd b/scene/little_game/拼凑信件.gd index d3412397..8c03f520 100644 --- a/scene/little_game/拼凑信件.gd +++ b/scene/little_game/拼凑信件.gd @@ -30,11 +30,13 @@ func _ready() -> void: content_rect.modulate.a = 0.0 content_rect.visible = true + func _enter_tree() -> void: SceneManager.pop_center_notification("input_拼凑信件") await Util.wait(4.0) SceneManager.pop_center_notification("ui_center_notify_press_q_to_exit") + func _setup() -> void: # 保存 whole 中的 4 个 part 的位置,然后从 whole 中移除,添加到 container 中 positions.clear() @@ -141,6 +143,9 @@ func _post_success(): $"Sfx展开信".play() var inspector = SceneManager.get_inspector() inspector.pop_standard_inspection(texture, null, tr("prop_院长的信_说明"), false, true) + inspector.quit_and_hidden.connect( + SceneManager.pop_center_notification.bind("ui_center_notify_check_bag"), CONNECT_ONE_SHOT + ) SceneManager.enable_important_item("prop_院长的信") whole.visible = false # 1s 后退出 diff --git a/scene/ux/prop_inventory_resource.gd b/scene/ux/prop_inventory_resource.gd index 9b6f4e05..e2c77f32 100644 --- a/scene/ux/prop_inventory_resource.gd +++ b/scene/ux/prop_inventory_resource.gd @@ -28,9 +28,9 @@ var enabled_items := [] as Array[String] func checkout(character: String): # @export_enum("吕萍", "吕萍爬行", "吕萍带小猫", "吕萍推柜子", "小小蝶", "盒子猫", "小小小蝶") var character := "吕萍": if character.begins_with("小小小蝶"): - enabled_items = xxdie_enabled_items - elif character.begins_with("小小蝶"): enabled_items = xxxdie_enabled_items + elif character.begins_with("小小蝶"): + enabled_items = xxdie_enabled_items elif character.begins_with("吕萍"): enabled_items = xdie_enabled_items else: