demo 0.2.1 hotfix 弹珠多击;部分文案优化;音效优化

This commit is contained in:
cakipaul 2025-07-05 06:05:44 +08:00
parent d0ae1d1f71
commit 284b0bf923
50 changed files with 482 additions and 238 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

View File

@ -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

View File

Before

Width:  |  Height:  |  Size: 183 B

After

Width:  |  Height:  |  Size: 183 B

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cs14llkvr3fg8" uid="uid://cs14llkvr3fg8"
path="res://.godot/imported/弹珠墙面涂鸦提示.png-08c1bbb65088ecb68de655121f2a1bdf.ctex" path="res://.godot/imported/e_弹珠墙面涂鸦提示.png-825f109b9f934d17e12634e636196380.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c02/s04_保卫科/弹珠墙面涂鸦提示.png" source_file="res://asset/art/scene/c02/s04_保卫科/e_弹珠墙面涂鸦提示.png"
dest_files=["res://.godot/imported/弹珠墙面涂鸦提示.png-08c1bbb65088ecb68de655121f2a1bdf.ctex"] dest_files=["res://.godot/imported/e_弹珠墙面涂鸦提示.png-825f109b9f934d17e12634e636196380.ctex"]
[params] [params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View File

@ -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

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -17,20 +17,6 @@
小竹竿: 嘶,总觉得好像在哪见过... [ID:c02_围观B_1] 小竹竿: 嘶,总觉得好像在哪见过... [ID:c02_围观B_1]
=> END => 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_谈论鬼差与猫鼠游戏 ~ c01_s06_谈论鬼差与猫鼠游戏
大胖: 站住! [#wait=2.0] [ID:c01_5胖小孩_1] 大胖: 站住! [#wait=2.0] [ID:c01_5胖小孩_1]
# 几个人凑过来 # 几个人凑过来

View File

@ -6,6 +6,7 @@ c02_11肉铺敲门_3,不做生意赶紧滚!,不做生意奥扫滚!,
摔倒了、哭⿐头、⼩脚上面出血了 [ID:],摔倒了、哭⿐头、⼩脚上面出血了 [ID:],,,, 摔倒了、哭⿐头、⼩脚上面出血了 [ID:],摔倒了、哭⿐头、⼩脚上面出血了 [ID:],,,,
哭⿐头、哭⿐头~⼩脚⼩孩哭⿐头... [ID:],哭⿐头、哭⿐头~⼩脚⼩孩哭⿐头... [ID:],,,, 哭⿐头、哭⿐头~⼩脚⼩孩哭⿐头... [ID:],哭⿐头、哭⿐头~⼩脚⼩孩哭⿐头... [ID:],,,,
c02_8小男孩童谣,下⾬了、打烊了、⼩脚⼩孩跳舞了,,,, c02_8小男孩童谣,下⾬了、打烊了、⼩脚⼩孩跳舞了,,,,
c02_9小蝉_游戏失败效果,再见了,大姐姐。,再会了,大姐姐。,小蝉,,
c02_纸人互动_离开公寓1,你要离开芦昌公寓吗?,,,, c02_纸人互动_离开公寓1,你要离开芦昌公寓吗?,,,,
c02_纸人互动_离开公寓2,离开,,(response),, c02_纸人互动_离开公寓2,离开,,(response),,
c02_纸人互动_离开公寓3,留下,,(response),, c02_纸人互动_离开公寓3,留下,,(response),,
@ -61,7 +62,7 @@ c02_弹珠游戏6,先碰到边界你就输了!,,,,
c02_尾声霸凌童谣1,下雨了、打烊了、小脚小孩跳舞了,,,,[#wait=4.7] c02_尾声霸凌童谣1,下雨了、打烊了、小脚小孩跳舞了,,,,[#wait=4.7]
c02_尾声霸凌童谣2,摔倒了、哭鼻头、小脚上面出血了,,,,[#wait=3.8] c02_尾声霸凌童谣2,摔倒了、哭鼻头、小脚上面出血了,,,,[#wait=3.8]
c02_尾声霸凌童谣3,哭鼻头、哭鼻头~小脚小孩哭鼻头...,,,,[#wait=6] c02_尾声霸凌童谣3,哭鼻头、哭鼻头~小脚小孩哭鼻头...,,,,[#wait=6]
c02_9小蝉_游戏失败效果,再见了,大姐姐。,再会了,大姐姐。,小蝉,, c02_9小蝉_游戏失败效果_fx,再见了,大姐姐。,,小蝉,,
c02_小孩喊着火啦1,着火啦!着火啦!,,男孩黄,, c02_小孩喊着火啦1,着火啦!着火啦!,,男孩黄,,
c02_小孩喊着火啦2,水!打水!,,男孩蓝,, c02_小孩喊着火啦2,水!打水!,,男孩蓝,,
c02_10小蝶_1,小姑娘,你是不是认得我啊?,小姑娘,侬阿是认得我啊?,吕萍,,[#ban_skip] c02_10小蝶_1,小姑娘,你是不是认得我啊?,小姑娘,侬阿是认得我啊?,吕萍,,[#ban_skip]

1 keys zh_CN zh_SH _character _notes _tags
6 摔倒了、哭⿐头、⼩脚上面出血了 [ID:] 摔倒了、哭⿐头、⼩脚上面出血了 [ID:]
7 哭⿐头、哭⿐头~⼩脚⼩孩哭⿐头... [ID:] 哭⿐头、哭⿐头~⼩脚⼩孩哭⿐头... [ID:]
8 c02_8小男孩童谣 下⾬了、打烊了、⼩脚⼩孩跳舞了
9 c02_9小蝉_游戏失败效果 再见了,大姐姐。 再会了,大姐姐。 小蝉
10 c02_纸人互动_离开公寓1 你要离开芦昌公寓吗?
11 c02_纸人互动_离开公寓2 离开 (response)
12 c02_纸人互动_离开公寓3 留下 (response)
62 c02_尾声霸凌童谣1 下雨了、打烊了、小脚小孩跳舞了 ??? [#wait=4.7]
63 c02_尾声霸凌童谣2 摔倒了、哭鼻头、小脚上面出血了 ??? [#wait=3.8]
64 c02_尾声霸凌童谣3 哭鼻头、哭鼻头~小脚小孩哭鼻头... ??? [#wait=6]
65 c02_9小蝉_游戏失败效果 c02_9小蝉_游戏失败效果_fx 再见了,大姐姐。 再会了,大姐姐。 小蝉
66 c02_小孩喊着火啦1 着火啦!着火啦! 男孩黄
67 c02_小孩喊着火啦2 水!打水! 男孩蓝
68 c02_10小蝶_1 小姑娘,你是不是认得我啊? 小姑娘,侬阿是认得我啊? 吕萍 [#ban_skip]

View File

@ -124,7 +124,7 @@
=> END => END
~ c02_未完成拯救小蝉的游戏 ~ c02_未完成拯救小蝉的游戏
小蝉: 再见了,大姐姐。 [ID:c02_9小蝉_游戏失败效果] 小蝉: 再见了,大姐姐。 [ID:c02_9小蝉_游戏失败效果_fx]
=> END => END
~ c02_男孩们喊着火啦 ~ c02_男孩们喊着火啦

View File

@ -104,7 +104,7 @@ prop_装有灵魂的令牌,装有灵魂的令牌,,,[#texture=c01/装有灵魂的
prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],, prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,
prop_院长的信_说明,小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号,,,,, prop_院长的信_说明,小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号,,,,,
prop_船票,船票,,,[#texture=c02/船票.png],, prop_船票,船票,,,[#texture=c02/船票.png],,
prop_船票_说明,民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,, prop_船票_说明,民国二十一年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,,
prop_眼镜盒,眼镜盒,,,[#texture=c02/眼镜盒.png],, prop_眼镜盒,眼镜盒,,,[#texture=c02/眼镜盒.png],,
prop_眼镜盒_说明,这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,, prop_眼镜盒_说明,这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,,
prop_小蝉人偶,小蝉人偶,,,[#texture=c02/小蝉人偶.png],, prop_小蝉人偶,小蝉人偶,,,[#texture=c02/小蝉人偶.png],,
@ -168,7 +168,7 @@ c02_小手是什么鬼,这是什么鬼东西,它是在讨要什么,,,,,
c02_小手再次出现,又来一个!<br>这地方到底是怎么回事?,,,,, c02_小手再次出现,又来一个!<br>这地方到底是怎么回事?,,,,,
c02_一楼楼道被挡住,被挡住了,,,,, c02_一楼楼道被挡住,被挡住了,,,,,
c02_一楼戏台,盖着布的木头架子...用来做什么的呢,,,,, c02_一楼戏台,盖着布的木头架子...用来做什么的呢,,,,,
c02_描述垃圾通道,是空的,飘着一股血气,又酸又腥。,,,,, c02_描述垃圾通道,通道是空的,飘着一股血气,又酸又腥。,,,,,
c02_一楼疯子互动后,这人有点不正常...最好离他远点。,,,,, c02_一楼疯子互动后,这人有点不正常...最好离他远点。,,,,,
c02_一楼粘鼠板,这里原来放着什么?,,,,, c02_一楼粘鼠板,这里原来放着什么?,,,,,
c02_一楼死老鼠,老鼠被粘住死掉了。,,,,, c02_一楼死老鼠,老鼠被粘住死掉了。,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
104 prop_院长的信 院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png]
105 prop_院长的信_说明 小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号
106 prop_船票 船票 [#texture=c02/船票.png]
107 prop_船票_说明 民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院? 民国二十一年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院?
108 prop_眼镜盒 眼镜盒 [#texture=c02/眼镜盒.png]
109 prop_眼镜盒_说明 这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。
110 prop_小蝉人偶 小蝉人偶 [#texture=c02/小蝉人偶.png]
168 c02_小手再次出现 又来一个!<br>这地方到底是怎么回事?
169 c02_一楼楼道被挡住 被挡住了
170 c02_一楼戏台 盖着布的木头架子...用来做什么的呢
171 c02_描述垃圾通道 桶是空的,飘着一股血气,又酸又腥。 通道是空的,飘着一股血气,又酸又腥。
172 c02_一楼疯子互动后 这人有点不正常...最好离他远点。
173 c02_一楼粘鼠板 这里原来放着什么?
174 c02_一楼死老鼠 老鼠被粘住死掉了。

View File

@ -39,7 +39,7 @@
按 Q 可退出 [ID:ui_center_notify_press_q_to_exit] 按 Q 可退出 [ID:ui_center_notify_press_q_to_exit]
按 E 使用道具 [ID:ui_center_notify_use_prop] 按 E 使用道具 [ID:ui_center_notify_use_prop]
按 N 查看线索笔记 [ID:ui_center_notify_check_note] 按 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_center_notify_right_click_prop]
按住鼠标拖拽可刮开海报 [ID:ui_left_mouse_shave] 按住鼠标拖拽可刮开海报 [ID:ui_left_mouse_shave]
点击图标可切换道具(或按 Z/C [ID:ui_switch_prop] 点击图标可切换道具(或按 Z/C [ID:ui_switch_prop]
@ -130,7 +130,7 @@
小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号 [ID:prop_院长的信_说明] 小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号 [ID:prop_院长的信_说明]
# c02 # c02
船票 [#texture=c02/船票.png] [ID:prop_船票] 船票 [#texture=c02/船票.png] [ID:prop_船票]
民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院? [ID:prop_船票_说明] 民国二十一年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院? [ID:prop_船票_说明]
眼镜盒 [#texture=c02/眼镜盒.png] [ID:prop_眼镜盒] 眼镜盒 [#texture=c02/眼镜盒.png] [ID:prop_眼镜盒]
这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。[ID:prop_眼镜盒_说明] 这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。[ID:prop_眼镜盒_说明]
小蝉人偶[#texture=c02/小蝉人偶.png] [ID:prop_小蝉人偶] 小蝉人偶[#texture=c02/小蝉人偶.png] [ID:prop_小蝉人偶]
@ -164,7 +164,7 @@
这是鸡毛掸子吗? [ID:c01_鸡毛掸子] 这是鸡毛掸子吗? [ID:c01_鸡毛掸子]
桌上放着一本《圣经》。<br>「得著生命的,將要失喪生命...」 [ID:c01_院长书桌] 桌上放着一本《圣经》。<br>「得著生命的,將要失喪生命...」 [ID:c01_院长书桌]
这本书已经看过了。<br>...那些句子是什么意思呢? [ID:c01_院长床] 这本书已经看过了。<br>...那些句子是什么意思呢? [ID:c01_院长床]
这西洋钟没坏的时候,走针会咔哒、咔哒地响...<br>停在申时三刻不动了。 [ID:c01_院长座钟] 这西洋钟没坏的时候,走针会咔哒、咔哒地响...<br>停在未时一刻不动了。 [ID:c01_院长座钟]
哇啊,这张洋相片要掉下来了!<br>我得做点什么... [ID:c01_倾斜的洋相片] 哇啊,这张洋相片要掉下来了!<br>我得做点什么... [ID:c01_倾斜的洋相片]
这是院长的儿子吗? [ID:c01_摆正的洋相片] 这是院长的儿子吗? [ID:c01_摆正的洋相片]
# c01-s06 院子 # c01-s06 院子
@ -226,7 +226,7 @@
#内侧楼道 #内侧楼道
被挡住了 [ID:c02_一楼楼道被挡住] 被挡住了 [ID:c02_一楼楼道被挡住]
盖着布的木头架子...用来做什么的呢 [ID:c02_一楼戏台] 盖着布的木头架子...用来做什么的呢 [ID:c02_一楼戏台]
是空的,飘着一股血气,又酸又腥。 [ID:c02_描述垃圾通道] 通道是空的,飘着一股血气,又酸又腥。 [ID:c02_描述垃圾通道]
这人有点不正常...最好离他远点。 [ID:c02_一楼疯子互动后] 这人有点不正常...最好离他远点。 [ID:c02_一楼疯子互动后]
这里原来放着什么? [ID:c02_一楼粘鼠板] 这里原来放着什么? [ID:c02_一楼粘鼠板]
老鼠被粘住死掉了。 [ID:c02_一楼死老鼠] 老鼠被粘住死掉了。 [ID:c02_一楼死老鼠]

View File

@ -1,4 +1,9 @@
keys,zh_CN,zh_SH,_character,_notes,_tags 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卖艺小孩A_1,您、您行行好,给点...,,小丁,,
c01_6卖艺小孩B_1,祝恁身子骨儿杠赛来,吃嘛嘛香木个病,一年更比一年行!,,蛋蛋,, c01_6卖艺小孩B_1,祝恁身子骨儿杠赛来,吃嘛嘛香木个病,一年更比一年行!,,蛋蛋,,
c01_6卖艺小孩C_1,宾安哗在,有才有财!,,沫儿,, c01_6卖艺小孩C_1,宾安哗在,有才有财!,,沫儿,,

1 keys zh_CN zh_SH _character _notes _tags
2 c01_4围观A_1 这画是六指儿画的,你问他去! 这幅画是小跷脚画的,你起问他呀。 小肉圆
3 c02_围观B_2 那个怪人是最近才出现的,总是透过门缝往院子里头看。 这老鬼三好像是近腔波出来的,老是亚了门板后头偷偷较往里厢看。 小竹竿
4 c02_围观B_3 搞得大家都不去墙根底下玩儿了,真晦气。 弄得嘞依拉都不过去玩了,戳气死了。 小竹竿
5 c01_4残疾小孩_1 我知道什么?知道也不能告诉你! 我晓得啥东西啦?就算晓得也不会讲给你们听的! 孩子王
6 c01_4残疾小孩_2 还有,以后别叫我六指儿! 还有,下趟覅叫我小跷脚! 孩子王
7 c01_6卖艺小孩A_1 您、您行行好,给点... 小丁
8 c01_6卖艺小孩B_1 祝恁身子骨儿杠赛来,吃嘛嘛香木个病,一年更比一年行! 蛋蛋
9 c01_6卖艺小孩C_1 宾安哗在,有才有财! 沫儿

View File

@ -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 ~ c01_s07_小孩吉祥话1
#普通口音 #普通口音
小丁: 您、您行行好,给点... [ID:c01_6卖艺小孩A_1] 小丁: 您、您行行好,给点... [ID:c01_6卖艺小孩A_1]

View File

@ -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://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"] [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://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://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://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"] [sub_resource type="Resource" id="Resource_bjndi"]
script = ExtResource("1_0bbao") script = ExtResource("1_0bbao")
@ -66,24 +67,6 @@ base_sound_db = 0.0
embellishments = Array[ExtResource("3_scrw7")]([]) embellishments = Array[ExtResource("3_scrw7")]([])
metadata/_custom_type_script = "uid://cy1ngx5no67v" 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"] [sub_resource type="Resource" id="Resource_j0xlt"]
script = ExtResource("1_0bbao") script = ExtResource("1_0bbao")
group_name = &"c02_火灾" group_name = &"c02_火灾"
@ -93,7 +76,25 @@ base_sound_db = 0.0
embellishments = Array[ExtResource("3_scrw7")]([]) embellishments = Array[ExtResource("3_scrw7")]([])
metadata/_custom_type_script = "uid://cy1ngx5no67v" 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] [resource]
script = ExtResource("2_h4hph") 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" metadata/_custom_type_script = "uid://bo8gxwe8hfs01"

View File

@ -7,6 +7,7 @@ class_name BgmControl extends Node
@export var stop_ease_duration := 3.0 @export var stop_ease_duration := 3.0
@export var stop_on_ground_ease_out := false @export var stop_on_ground_ease_out := false
func _ready() -> void: func _ready() -> void:
if not bgm_title: if not bgm_title:
printerr("[BgmControl] no title fond!") printerr("[BgmControl] no title fond!")
@ -16,6 +17,10 @@ func _ready() -> void:
if not bgm_stream: if not bgm_stream:
printerr("bgm_stream is null, please check the BGM settings.") printerr("bgm_stream is null, please check the BGM settings.")
return return
start()
func start():
AudioManager.loop_bgm_music(bgm_title, bgm_stream, db) AudioManager.loop_bgm_music(bgm_title, bgm_stream, db)

View File

@ -50,7 +50,6 @@ func global_play() -> void:
AudioManager.play_sfx(stream) AudioManager.play_sfx(stream)
# 注意:会导致 volume db 变化
func easing_kill(duration: float = 2.0) -> Tween: func easing_kill(duration: float = 2.0) -> Tween:
# stop with easing # stop with easing
var tween = create_tween() var tween = create_tween()

View File

@ -17,13 +17,14 @@ class_name Sfx2D extends AudioStreamPlayer2D
play() play()
var timer: Timer var timer: Timer
var default_db := 0.0
func _ready() -> void: func _ready() -> void:
bus = &"game_sfx" bus = &"game_sfx"
process_mode = Node.PROCESS_MODE_PAUSABLE process_mode = Node.PROCESS_MODE_INHERIT
if Engine.is_editor_hint(): if Engine.is_editor_hint():
return return
default_db = volume_db
timer = Timer.new() timer = Timer.new()
timer.autostart = autoplay and loop and loop_round_time > 0.0 and not Engine.is_editor_hint() timer.autostart = autoplay and loop and loop_round_time > 0.0 and not Engine.is_editor_hint()
timer.one_shot = false timer.one_shot = false
@ -67,11 +68,13 @@ func global_play() -> void:
AudioManager.play_sfx(stream) AudioManager.play_sfx(stream)
# 注意:会导致 volume db 变化 func easing_kill(duration: float = 2.0) -> Tween:
func easing_kill(duration: float = 2.0) -> void:
# stop with easing # stop with easing
if playing:
var tween = create_tween() var tween = create_tween()
tween.bind_node(self) tween.bind_node(self)
if playing:
tween.tween_property(self, "volume_linear", 0.0, duration) tween.tween_property(self, "volume_linear", 0.0, duration)
tween.tween_callback(stop) tween.tween_callback(stop)
# set volume_db back to default
tween.tween_callback(func(): volume_db = default_db)
return tween

View File

@ -51,12 +51,12 @@ func reset() -> void:
_check_display() _check_display()
# 渐渐浮现 # # 渐渐浮现
func enable_with_ease(duration := 1.0): # func enable_with_ease(duration := 1.0):
enabled = true # enabled = true
if not picked: # if not picked:
var tween = create_tween() # var tween = create_tween()
tween.tween_property(self, "modulate:a", 1.0, duration).from(0.0) # tween.tween_property(self, "modulate:a", 1.0, duration).from(0.0)
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
@ -90,7 +90,7 @@ func _check_display():
if picked: if picked:
visible = false visible = false
elif visible_follow_enabled: elif visible_follow_enabled:
modulate.a = 1.0 if enabled else 0.0 visible = enabled
sign_mark.enabled = enabled and is_visible_in_tree() sign_mark.enabled = enabled and is_visible_in_tree()

View File

@ -50,6 +50,11 @@ func _on_ground_ready() -> void:
interactable_obstacles = $"../DeployLayer/Interactable桌椅" interactable_obstacles = $"../DeployLayer/Interactable桌椅"
interactable_obstacles.interacted.connect(_on_push_obstacles) interactable_obstacles.interacted.connect(_on_push_obstacles)
cat_rat_game_fail_ambush = $"../DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】/猫鼠游戏失败ambush" 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_fail_ambush.enabled = false
cat_rat_game_start_ambush = $"../DeployLayer/猫鼠游戏开始ambush" cat_rat_game_start_ambush = $"../DeployLayer/猫鼠游戏开始ambush"
@ -69,15 +74,6 @@ func _on_ground_ready() -> void:
# 解除镜头 x 右侧限制 # 解除镜头 x 右侧限制
SceneManager.get_camera_marker().limit_right = 10000 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 var player = SceneManager.get_player() as MainPlayer
if player.position.x > 1800: if player.position.x > 1800:
@ -108,9 +104,9 @@ func pre_game_intro():
func game_intro() -> void: func game_intro() -> void:
standing_kid1.get_node("对话1ambush").enabled = false standing_kid1.get_node("Npc对话1").enabled = false
standing_kid2.get_node("对话2ambush").enabled = false standing_kid2.get_node("Npc对话2").enabled = false
game_kid.get_node("对话3ambush").enabled = false game_kid.get_node("Npc对话3").enabled = false
# 禁用猫鼠游戏开始 ambush 检测 # 禁用猫鼠游戏开始 ambush 检测
cat_rat_game_start_ambush.enabled = false cat_rat_game_start_ambush.enabled = false
@ -149,28 +145,19 @@ func _game_counting_down(_res = null):
cat.get_node("猫咪嘶吼音效").play() 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(id: int):
#talk count
if (
func _on_talked(): standing_kid1.get_node("Npc对话1").icount > 0
talk_count += 1 and standing_kid2.get_node("Npc对话2").icount > 0
if talk_count == 3: 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 await DialogueManager.dialogue_ended
SceneManager.lock_player() SceneManager.lock_player()
@ -217,8 +204,10 @@ func _on_push_obstacles():
$"桌椅撞倒音效".play() $"桌椅撞倒音效".play()
SceneManager.pop_debug_dialog_info("音效", "桌椅翻倒") SceneManager.pop_debug_dialog_info("音效", "桌椅翻倒")
var current_round_failed = false var current_round_failed = false
# 小孩1首先跑到桌椅旁 # 小孩1首先跑到桌椅旁
func obstacles_ambush1_triggered(): func obstacles_ambush1_triggered():
if obstacles_success: if obstacles_success:

View File

@ -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="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"] [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="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="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="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"] [sub_resource type="Animation" id="Animation_723yg"]
length = 0.001 length = 0.001
@ -151,7 +152,7 @@ libraries = {
script = ExtResource("2_fkfhi") script = ExtResource("2_fkfhi")
debug_global_data = Dictionary[String, Variant]({ debug_global_data = Dictionary[String, Variant]({
"enabled_items": {}, "enabled_items": {},
"player_x": 2000.0 "player_x": 1500.0
}) })
debug_ground_data = Dictionary[String, Variant]({ debug_ground_data = Dictionary[String, Variant]({
"AnimationPlayer": { "AnimationPlayer": {
@ -291,7 +292,7 @@ speed = 90.0
position = Vector2(1241, -1) position = Vector2(1241, -1)
sprite_frames = ExtResource("2_l4axy") sprite_frames = ExtResource("2_l4axy")
animation = &"秋千" animation = &"秋千"
frame = 5 frame = 4
[node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/秋千"] [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/秋千"]
process_mode = 1 process_mode = 1
@ -321,7 +322,7 @@ position = Vector2(1358, 0)
sprite_frames = ExtResource("2_l4axy") sprite_frames = ExtResource("2_l4axy")
animation = &"跷跷板" animation = &"跷跷板"
autoplay = "跷跷板" autoplay = "跷跷板"
frame = 3 frame = 4
[node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/跷跷板"] [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/跷跷板"]
process_mode = 1 process_mode = 1
@ -349,6 +350,7 @@ position = Vector2(1593, 44)
position = Vector2(0, -44.5) position = Vector2(0, -44.5)
sprite_frames = ExtResource("7_dsj2r") sprite_frames = ExtResource("7_dsj2r")
animation = &"【画画小女孩】呼吸" animation = &"【画画小女孩】呼吸"
frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "【画画小女孩】画画", "animation_intro": "【画画小女孩】画画",
"animation_next": "【画画小女孩】回头", "animation_next": "【画画小女孩】回头",
@ -370,7 +372,6 @@ action_configs = Array[Dictionary]([{
position = Vector2(43, -44.5) position = Vector2(43, -44.5)
sprite_frames = ExtResource("7_dsj2r") sprite_frames = ExtResource("7_dsj2r")
animation = &"【画画男孩-1】呼吸" animation = &"【画画男孩-1】呼吸"
frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "【画画男孩-1】呼吸", "animation_intro": "【画画男孩-1】呼吸",
"animation_next": "【画画男孩-1】画画", "animation_next": "【画画男孩-1】画画",
@ -426,7 +427,6 @@ one_shot = false
position = Vector2(1558, -12) position = Vector2(1558, -12)
sprite_frames = ExtResource("7_dsj2r") sprite_frames = ExtResource("7_dsj2r")
animation = &"【站立小孩-3】呼吸" animation = &"【站立小孩-3】呼吸"
frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": &"【站立小孩-3】转身", "animation_intro": &"【站立小孩-3】转身",
"animation_next": "【站立小孩-3】走路", "animation_next": "【站立小孩-3】走路",
@ -501,12 +501,10 @@ enabled = false
[node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-1】/猫鼠游戏重置ambush/Area2D" index="0"] [node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-1】/猫鼠游戏重置ambush/Area2D" index="0"]
shape = SubResource("RectangleShape2D_7cdhx") shape = SubResource("RectangleShape2D_7cdhx")
[node name="对话1ambush" parent="Ground/DeployLayer/【站立小孩-1】" instance=ExtResource("11_tudob")] [node name="Npc对话1" parent="Ground/DeployLayer/【站立小孩-1】" instance=ExtResource("24_phfqg")]
position = Vector2(0, 51) position = Vector2(0, 71)
trigger_mode = "interact" speaking_sign_height = 39.23
cooldown_time = 1.0 dialogue_title = "c01_s06_四个小孩_对话1"
hook_dialogue_title = "c01_s06_四个小孩_对话1"
hook_method = "talk1"
[node name="【站立小孩-2】" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_ouldg")] [node name="【站立小孩-2】" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_ouldg")]
z_index = 10 z_index = 10
@ -514,7 +512,6 @@ position = Vector2(1505, 19)
sprite_frames = ExtResource("7_dsj2r") sprite_frames = ExtResource("7_dsj2r")
animation = &"【站立小孩-2】侧面呼吸" animation = &"【站立小孩-2】侧面呼吸"
autoplay = "【站立小孩-2】侧面呼吸" autoplay = "【站立小孩-2】侧面呼吸"
frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "【站立小孩-2】转身", "animation_intro": "【站立小孩-2】转身",
"animation_next": "【站立小孩-2】走路", "animation_next": "【站立小孩-2】走路",
@ -555,14 +552,6 @@ collision_mask = 64
[node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-2】/桌椅ambush2/Area2D" index="0"] [node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-2】/桌椅ambush2/Area2D" index="0"]
shape = SubResource("RectangleShape2D_ceat6") 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")] [node name="猫鼠游戏重置ambush" parent="Ground/DeployLayer/【站立小孩-2】" instance=ExtResource("11_tudob")]
position = Vector2(0, 53) position = Vector2(0, 53)
enabled = false enabled = false
@ -575,6 +564,11 @@ enabled = false
[node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-2】/猫鼠游戏重置ambush/Area2D" index="0"] [node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-2】/猫鼠游戏重置ambush/Area2D" index="0"]
shape = SubResource("RectangleShape2D_7cdhx") 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")] [node name="【墙上黑猫】" parent="Ground/DeployLayer" index="16" instance=ExtResource("8_ouldg")]
position = Vector2(1453, -14) position = Vector2(1453, -14)
scale = Vector2(0.8, 0.8) scale = Vector2(0.8, 0.8)
@ -607,7 +601,7 @@ z_index = 1
position = Vector2(1733, 5) position = Vector2(1733, 5)
sprite_frames = ExtResource("7_dsj2r") sprite_frames = ExtResource("7_dsj2r")
animation = &"【胖小孩背着残疾小孩】画画" animation = &"【胖小孩背着残疾小孩】画画"
frame = 5 frame = 6
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "【胖小孩背着残疾小孩】呼吸", "animation_intro": "【胖小孩背着残疾小孩】呼吸",
"animation_next": "【胖小孩背着残疾小孩】画画", "animation_next": "【胖小孩背着残疾小孩】画画",
@ -692,12 +686,10 @@ enabled = false
[node name="CollisionShape2D" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】/猫鼠游戏失败ambush/Area2D" index="0"] [node name="CollisionShape2D" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】/猫鼠游戏失败ambush/Area2D" index="0"]
shape = SubResource("RectangleShape2D_7cdhx") shape = SubResource("RectangleShape2D_7cdhx")
[node name="对话3ambush" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】" instance=ExtResource("11_tudob")] [node name="Npc对话3" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】" instance=ExtResource("24_phfqg")]
position = Vector2(-2, 37) position = Vector2(3, 53)
trigger_mode = "interact" speaking_sign_height = 39.23
cooldown_time = 1.0 dialogue_title = "c01_s06_四个小孩_对话3"
hook_dialogue_title = "c01_s06_四个小孩_对话3"
hook_method = "talk3"
[node name="猫鼠游戏胜利ambush" parent="Ground/DeployLayer" index="19" instance=ExtResource("11_tudob")] [node name="猫鼠游戏胜利ambush" parent="Ground/DeployLayer" index="19" instance=ExtResource("11_tudob")]
position = Vector2(4546, 45) position = Vector2(4546, 45)
@ -747,18 +739,20 @@ position = Vector2(377, 18)
scale = Vector2(0.9, 0.9) scale = Vector2(0.9, 0.9)
sprite_frames = ExtResource("2_l4axy") sprite_frames = ExtResource("2_l4axy")
animation = &"中蓝衣小孩呼吸" animation = &"中蓝衣小孩呼吸"
frame = 2 frame = 1
[node name="门口_右绿衣男孩" parent="Ground/ParallaxForeground/BGParallaxLayer" index="3" instance=ExtResource("8_ouldg")] [node name="门口_右绿衣男孩" parent="Ground/ParallaxForeground/BGParallaxLayer" index="3" instance=ExtResource("8_ouldg")]
position = Vector2(408, 3) position = Vector2(408, 3)
sprite_frames = ExtResource("2_l4axy") sprite_frames = ExtResource("2_l4axy")
animation = &"右绿衣男孩呼吸" animation = &"右绿衣男孩呼吸"
frame = 1
[node name="门口_红衣姑娘" parent="Ground/ParallaxForeground/BGParallaxLayer" index="4" instance=ExtResource("8_ouldg")] [node name="门口_红衣姑娘" parent="Ground/ParallaxForeground/BGParallaxLayer" index="4" instance=ExtResource("8_ouldg")]
light_mask = 2 light_mask = 2
position = Vector2(333, 9.5) position = Vector2(333, 9.5)
sprite_frames = ExtResource("2_l4axy") sprite_frames = ExtResource("2_l4axy")
animation = &"红衣姑娘呼吸" animation = &"红衣姑娘呼吸"
frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": &"红衣姑娘抬头", "animation_intro": &"红衣姑娘抬头",
"animation_next": "红衣姑娘呼吸", "animation_next": "红衣姑娘呼吸",
@ -779,7 +773,6 @@ texture_scale = 0.5
position = Vector2(301, 8.5) position = Vector2(301, 8.5)
sprite_frames = ExtResource("2_l4axy") sprite_frames = ExtResource("2_l4axy")
animation = &"院长呼吸" animation = &"院长呼吸"
frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "院长翻书", "animation_intro": "院长翻书",
"animation_next": "院长呼吸", "animation_next": "院长呼吸",
@ -796,7 +789,6 @@ action_configs = Array[Dictionary]([{
position = Vector2(273, 15) position = Vector2(273, 15)
sprite_frames = ExtResource("2_l4axy") sprite_frames = ExtResource("2_l4axy")
animation = &"左2黄衣男呼吸" animation = &"左2黄衣男呼吸"
frame = 2
[node name="门口_左一绿衣男" parent="Ground/ParallaxForeground/BGParallaxLayer" index="7" instance=ExtResource("8_ouldg")] [node name="门口_左一绿衣男" parent="Ground/ParallaxForeground/BGParallaxLayer" index="7" instance=ExtResource("8_ouldg")]
position = Vector2(242, 46.5) position = Vector2(242, 46.5)
@ -813,6 +805,7 @@ scale = Vector2(0.8, 0.8)
sprite_frames = ExtResource("15_wtosl") sprite_frames = ExtResource("15_wtosl")
animation = &"gif" animation = &"gif"
autoplay = "gif" autoplay = "gif"
frame = 1
centered = false centered = false
offset = Vector2(0, -159) offset = Vector2(0, -159)

View File

@ -72,8 +72,23 @@ data = {
"oneshot_animation_played": false "oneshot_animation_played": false
} }
debug_global_data = Dictionary[String, Variant]({ debug_global_data = Dictionary[String, Variant]({
"enabled_items": PackedStringArray("prop_火柴", "prop_院长的信", "prop_银元"), "enabled_items": {},
"player_x": 30.0 "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 = "" oneshot_animation = ""
@ -182,7 +197,7 @@ position = Vector2(1045, 6)
sprite_frames = ExtResource("6_thm8f") sprite_frames = ExtResource("6_thm8f")
animation = &"陆仁舞刀-黄昏带红缨" animation = &"陆仁舞刀-黄昏带红缨"
autoplay = "陆仁舞刀-黄昏带红缨" autoplay = "陆仁舞刀-黄昏带红缨"
frame = 20 frame = 42
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "陆仁收刀", "animation_intro": "陆仁收刀",
&"animation_next": "陆仁收刀后呼吸", &"animation_next": "陆仁收刀后呼吸",
@ -252,7 +267,7 @@ position = Vector2(2080, 6)
sprite_frames = ExtResource("6_thm8f") sprite_frames = ExtResource("6_thm8f")
animation = &"报童待机" animation = &"报童待机"
autoplay = "报童待机" autoplay = "报童待机"
frame = 5 frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "报童给报纸", "animation_intro": "报童给报纸",
"animation_next": "报童待机", "animation_next": "报童待机",

View File

@ -99,12 +99,12 @@ func first_enter_door() -> void:
func assign_tasks() -> void: func assign_tasks() -> void:
# 放报纸动作 # 放报纸动作
SceneManager.freeze_player(0, 8, false) SceneManager.lock_player(0, 8, true)
await Util.wait(4.5) await Util.wait(4.5)
$"放报纸音效".play() $"放报纸音效".play()
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s08_书店老板任务") DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s08_书店老板任务")
await DialogueManager.dialogue_ended await DialogueManager.dialogue_ended
SceneManager.release_player() SceneManager.unlock_player()
ladder.enabled = true ladder.enabled = true
envolope_table.enabled = true envolope_table.enabled = true

View File

@ -58,6 +58,31 @@ libraries = {
&"": SubResource("AnimationLibrary_xqgjo") &"": SubResource("AnimationLibrary_xqgjo")
} }
script = ExtResource("2_0lque") 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" oneshot_animation = "one_shot"
[node name="环境音" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] [node name="环境音" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
@ -194,6 +219,13 @@ offset = Vector2(317, 0)
[node name="MainPlayer" parent="Ground" index="5"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(437, 98) position = Vector2(437, 98)
character = "小小蝶" 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"] [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(-1, 22) position = Vector2(-1, 22)

View File

@ -85,6 +85,13 @@ bgm_title = "诡异环境音2"
bgm_stream = ExtResource("6_lrqbi") bgm_stream = ExtResource("6_lrqbi")
metadata/_custom_type_script = "uid://bbg4vopj4apl6" 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"] [node name="BGSprite2D" parent="Ground" index="2"]
position = Vector2(0, -15) position = Vector2(0, -15)
texture = ExtResource("3_828bq") texture = ExtResource("3_828bq")
@ -155,7 +162,6 @@ bus = &"game_sfx"
script = ExtResource("11_6w7lv") script = ExtResource("11_6w7lv")
[node name="Sfx鬼差擦肩而过" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Ghost"] [node name="Sfx鬼差擦肩而过" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Ghost"]
process_mode = 1
stream = ExtResource("8_sq0x2") stream = ExtResource("8_sq0x2")
max_distance = 500.0 max_distance = 500.0
bus = &"game_sfx" bus = &"game_sfx"
@ -173,7 +179,6 @@ autoplay = "书店老板害怕"
script = ExtResource("20_nwvnr") script = ExtResource("20_nwvnr")
[node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/书店老板害怕/鬼影浮现"] [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/书店老板害怕/鬼影浮现"]
process_mode = 1
stream = ExtResource("7_5sju7") stream = ExtResource("7_5sju7")
max_distance = 1000.0 max_distance = 1000.0
attenuation = 2.0 attenuation = 2.0
@ -199,7 +204,6 @@ autoplay = "孤儿院小孩害怕1"
script = ExtResource("20_nwvnr") script = ExtResource("20_nwvnr")
[node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/孤儿院小孩害怕1/鬼影浮现"] [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/孤儿院小孩害怕1/鬼影浮现"]
process_mode = 1
stream = ExtResource("7_5sju7") stream = ExtResource("7_5sju7")
max_distance = 1000.0 max_distance = 1000.0
attenuation = 2.0 attenuation = 2.0
@ -226,7 +230,6 @@ position = Vector2(7, 0)
script = ExtResource("20_nwvnr") script = ExtResource("20_nwvnr")
[node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/孤儿院小孩害怕2/鬼影浮现"] [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/孤儿院小孩害怕2/鬼影浮现"]
process_mode = 1
stream = ExtResource("7_5sju7") stream = ExtResource("7_5sju7")
max_distance = 1000.0 max_distance = 1000.0
attenuation = 2.0 attenuation = 2.0
@ -252,7 +255,6 @@ autoplay = "举碗小孩害怕"
script = ExtResource("20_nwvnr") script = ExtResource("20_nwvnr")
[node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕1/鬼影浮现"] [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕1/鬼影浮现"]
process_mode = 1
stream = ExtResource("7_5sju7") stream = ExtResource("7_5sju7")
max_distance = 1000.0 max_distance = 1000.0
attenuation = 2.0 attenuation = 2.0
@ -279,7 +281,6 @@ position = Vector2(-26, 1)
script = ExtResource("20_nwvnr") script = ExtResource("20_nwvnr")
[node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕2/鬼影浮现"] [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕2/鬼影浮现"]
process_mode = 1
stream = ExtResource("7_5sju7") stream = ExtResource("7_5sju7")
max_distance = 1000.0 max_distance = 1000.0
attenuation = 2.0 attenuation = 2.0
@ -305,7 +306,6 @@ autoplay = "夜晚举腿小孩害怕"
script = ExtResource("20_nwvnr") script = ExtResource("20_nwvnr")
[node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕3/鬼影浮现"] [node name="Sfx鬼差浮现" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/杂戏团小孩害怕3/鬼影浮现"]
process_mode = 1
stream = ExtResource("7_5sju7") stream = ExtResource("7_5sju7")
max_distance = 1000.0 max_distance = 1000.0
attenuation = 2.0 attenuation = 2.0
@ -356,6 +356,13 @@ texture = ExtResource("12_828bq")
[node name="MainPlayer" parent="Ground" index="5"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(41, 103) position = Vector2(41, 103)
character = "小小蝶" 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"] [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(37, 150, 3460, 150) points = PackedVector2Array(37, 150, 3460, 150)

View File

@ -77,6 +77,11 @@ func ambush_begger_interacted():
interactable_bowl.enabled = true interactable_bowl.enabled = true
func _ghost_appear_sfx():
$"Sfx鬼差出场".play()
Util.timer(3.0, $"Bgm鬼差追逐".start)
func _on_interactable_bowl_interacted() -> void: func _on_interactable_bowl_interacted() -> void:
SceneManager.freeze_player(0) SceneManager.freeze_player(0)
# ⼩男孩询问吕萍银元从哪⾥弄来的 # ⼩男孩询问吕萍银元从哪⾥弄来的
@ -90,7 +95,7 @@ func _on_interactable_bowl_interacted() -> void:
kids.play("夜晚其余小孩杂耍到害怕过渡") kids.play("夜晚其余小孩杂耍到害怕过渡")
var kid = $"../DeployLayer/举腿小孩" var kid = $"../DeployLayer/举腿小孩"
kid.play("夜晚举腿小孩杂耍到害怕过渡") kid.play("夜晚举腿小孩杂耍到害怕过渡")
$"Sfx鬼差出场".play() _ghost_appear_sfx()
await Util.wait(1) await Util.wait(1)
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了") DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了")
var tween = create_tween() var tween = create_tween()
@ -132,6 +137,7 @@ func _setup_catching_game():
func player_been_catched(transition := true) -> void: func player_been_catched(transition := true) -> void:
$"Bgm鬼差追逐".stop(1.5)
$"Sfx鬼差擦肩而过".play() $"Sfx鬼差擦肩而过".play()
SceneManager.freeze_player(0) SceneManager.freeze_player(0)
if ghost_move_tween: if ghost_move_tween:
@ -152,7 +158,7 @@ func player_been_catched(transition := true) -> void:
# reset player and ghost position # reset player and ghost position
ghost.global_position.x = ghost_start_x + 100.0 ghost.global_position.x = ghost_start_x + 100.0
SceneManager.get_player().global_position.x = player_start_x SceneManager.get_player().global_position.x = player_start_x
$"Sfx鬼差出场".play() _ghost_appear_sfx()
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了") DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了")
await DialogueManager.dialogue_ended await DialogueManager.dialogue_ended
SceneManager.release_player() SceneManager.release_player()

View File

@ -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="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"] [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="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="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="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="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="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"] [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") &"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"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_jw18h"]
noise_type = 2 noise_type = 2
fractal_type = 2 fractal_type = 2
@ -91,22 +97,54 @@ libraries = {
&"": SubResource("AnimationLibrary_38lx7") &"": SubResource("AnimationLibrary_38lx7")
} }
script = ExtResource("2_krdvw") 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" oneshot_animation = "intro"
[node name="BgmControl" type="Node" parent="Ground/AnimationPlayer" index="0"] [node name="BgmControl" type="Node" parent="Ground/AnimationPlayer" index="0"]
script = ExtResource("3_p7n7n") script = ExtResource("3_p7n7n")
bgm_title = "诡异环境音2" bgm_title = "诡异环境音2"
bgm_stream = ExtResource("4_mxf8g") bgm_stream = SubResource("AudioStreamSynchronized_mxf8g")
metadata/_custom_type_script = "uid://bbg4vopj4apl6" 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) position = Vector2(1443, 41)
stream = ExtResource("5_5qtdl") stream = ExtResource("5_5qtdl")
volume_db = 3.0
bus = &"game_sfx" bus = &"game_sfx"
script = ExtResource("6_mxf8g") script = ExtResource("6_mxf8g")
metadata/_custom_type_script = "uid://wapo47a1oddf" 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") stream = ExtResource("7_denrd")
bus = &"game_sfx" bus = &"game_sfx"
script = ExtResource("6_p7n7n") script = ExtResource("6_p7n7n")
@ -185,6 +223,7 @@ position = Vector2(1911, 12)
sprite_frames = ExtResource("14_7jjl5") sprite_frames = ExtResource("14_7jjl5")
animation = &"夜晚其余小孩杂耍" animation = &"夜晚其余小孩杂耍"
autoplay = "夜晚其余小孩杂耍" autoplay = "夜晚其余小孩杂耍"
frame = 2
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "夜晚其余小孩杂耍到害怕过渡", "animation_intro": "夜晚其余小孩杂耍到害怕过渡",
&"animation_next": "夜晚其余小孩害怕", &"animation_next": "夜晚其余小孩害怕",
@ -197,6 +236,7 @@ position = Vector2(1822, 6)
sprite_frames = ExtResource("14_7jjl5") sprite_frames = ExtResource("14_7jjl5")
animation = &"夜晚举腿小孩杂耍" animation = &"夜晚举腿小孩杂耍"
autoplay = "夜晚举腿小孩杂耍" autoplay = "夜晚举腿小孩杂耍"
frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "夜晚举腿小孩杂耍到害怕过渡", "animation_intro": "夜晚举腿小孩杂耍到害怕过渡",
"animation_next": "夜晚举腿小孩害怕", "animation_next": "夜晚举腿小孩害怕",
@ -209,6 +249,7 @@ position = Vector2(1792, 9)
sprite_frames = ExtResource("13_lucm6") sprite_frames = ExtResource("13_lucm6")
animation = &"杂戏团夜晚_小孩举碗呼吸" animation = &"杂戏团夜晚_小孩举碗呼吸"
autoplay = "杂戏团夜晚_小孩举碗呼吸" autoplay = "杂戏团夜晚_小孩举碗呼吸"
frame = 2
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "杂戏团夜晚_小孩放下碗", "animation_intro": "杂戏团夜晚_小孩放下碗",
"animation_next": "举碗小孩呼吸", "animation_next": "举碗小孩呼吸",
@ -299,6 +340,13 @@ texture = ExtResource("17_nta2f")
[node name="MainPlayer" parent="Ground" index="5"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(41, 98) position = Vector2(41, 98)
character = "小小蝶" 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"] [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(37, 150, 3050, 150) points = PackedVector2Array(37, 150, 3050, 150)

View File

@ -34,6 +34,11 @@ script = ExtResource("3_bhi7l")
autoplay_group = &"c02_楼道1" autoplay_group = &"c02_楼道1"
metadata/_custom_type_script = "uid://cpejxlfni6n52" 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"] [node name="BGSprite2D" parent="Ground" index="2"]
texture = ExtResource("5_j2ctx") texture = ExtResource("5_j2ctx")

View File

@ -70,7 +70,10 @@ debug_global_data = Dictionary[String, Variant]({
"c02_musicbox_xiaochan_taken": false, "c02_musicbox_xiaochan_taken": false,
"c02_musicbox_xiaomao_taken": false, "c02_musicbox_xiaomao_taken": false,
"c02_s02_mouse_push_shoe": 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 "player_x": 530.0
}) })
debug_ground_data = Dictionary[String, Variant]({ debug_ground_data = Dictionary[String, Variant]({
@ -91,7 +94,7 @@ debug_ground_data = Dictionary[String, Variant]({
}, },
"AnimationPlayer": { "AnimationPlayer": {
"display_paper_man": false, "display_paper_man": false,
"first_enter": false, "first_enter": true,
"flyer_shaven": false, "flyer_shaven": false,
"oneshot_animation_played": false "oneshot_animation_played": false
}, },
@ -120,7 +123,7 @@ mode = "交互与效果音"
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="1"] [node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="1"]
script = ExtResource("5_36l5t") script = ExtResource("5_36l5t")
autoplay_group = &"c02_楼道1" autoplay_group = &"c02_楼道2"
metadata/_custom_type_script = "uid://cpejxlfni6n52" metadata/_custom_type_script = "uid://cpejxlfni6n52"
[node name="BGSprite2D" parent="Ground" index="2"] [node name="BGSprite2D" parent="Ground" index="2"]

View File

@ -135,6 +135,7 @@ func _on_gate_failed() -> void:
func _on_gate_interacted() -> void: func _on_gate_interacted() -> void:
$"Sfx打开铁门后".play()
gate.get_node("Wall/CollisionShape2D").disabled = true gate.get_node("Wall/CollisionShape2D").disabled = true
EventManager.set_stage_if_greater(&"handnote_c02_gate_chain", 2) EventManager.set_stage_if_greater(&"handnote_c02_gate_chain", 2)
EventManager.set_stage_if_greater(&"handnote_c02_map_1Right", 1) EventManager.set_stage_if_greater(&"handnote_c02_map_1Right", 1)

View File

@ -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="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"] [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="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="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="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://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="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"] [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 "oneshot_animation_played": false
} }
debug_global_data = Dictionary[String, Variant]({ debug_global_data = Dictionary[String, Variant]({
"c02_ball_game_stage": 3, "c02_ball_game_stage": 1,
"c02_burning": false, "c02_burning": false,
"c02_burning_end_stage": 1, "c02_burning_end_stage": 1,
"c02_counter_pushed_out": false, "c02_counter_pushed_out": false,
@ -296,7 +297,7 @@ debug_global_data = Dictionary[String, Variant]({
"c02_madman_hitwall": false, "c02_madman_hitwall": false,
"c02_madman_interacted": 0, "c02_madman_interacted": 0,
"c02_open_gate_first_failed": false, "c02_open_gate_first_failed": false,
"c02_ready_to_fire": true, "c02_ready_to_fire": false,
"c02_show_grounded_coins": false, "c02_show_grounded_coins": false,
"c02_the_blind_room_unlocked": false, "c02_the_blind_room_unlocked": false,
"c02_watched_the_well": false, "c02_watched_the_well": false,
@ -308,7 +309,7 @@ debug_global_data = Dictionary[String, Variant]({
"handnote_c02_gate_chain": 1, "handnote_c02_gate_chain": 1,
"handnote_c02_map_1Right": 1, "handnote_c02_map_1Right": 1,
"handnote_c02_meat_knockDoor": 1, "handnote_c02_meat_knockDoor": 1,
"player_x": 2000.0 "player_x": 1200.0
}) })
debug_ground_data = Dictionary[String, Variant]({ debug_ground_data = Dictionary[String, Variant]({
"Ambush保卫科旁边os": { "Ambush保卫科旁边os": {
@ -352,7 +353,7 @@ debug_ground_data = Dictionary[String, Variant]({
"interacted_times": 0 "interacted_times": 0
}, },
"Interactable铁门": { "Interactable铁门": {
"interacted_times": 1 "interacted_times": 0
}, },
"Pickable小鞋子": { "Pickable小鞋子": {
"picked": false "picked": false
@ -375,22 +376,29 @@ bus = &"game_sfx"
script = ExtResource("4_ygnci") script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m" 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") stream = ExtResource("7_df1yo")
bus = &"game_sfx" bus = &"game_sfx"
script = ExtResource("4_ygnci") script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m" 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") stream = ExtResource("6_jhod7")
volume_db = 16.0 volume_db = 16.0
bus = &"game_sfx" bus = &"game_sfx"
script = ExtResource("4_ygnci") script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m" 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") script = ExtResource("6_lq23y")
autoplay_group = &"c02_楼道2" autoplay_group = &"氛围_不受欢迎的存在"
metadata/_custom_type_script = "uid://cpejxlfni6n52" metadata/_custom_type_script = "uid://cpejxlfni6n52"
[node name="BGSprite2D" parent="Ground" index="2"] [node name="BGSprite2D" parent="Ground" index="2"]
@ -432,7 +440,7 @@ position = Vector2(953, 42)
sprite_frames = ExtResource("11_o1qbs") sprite_frames = ExtResource("11_o1qbs")
animation = &"c00_头套小婵_run" animation = &"c00_头套小婵_run"
autoplay = "c00_头套小婵_idle" autoplay = "c00_头套小婵_idle"
frame = 3 frame = 5
move_configs = Array[Dictionary]([{ move_configs = Array[Dictionary]([{
"animation": "c00_头套小婵_run", "animation": "c00_头套小婵_run",
"animation_next": "", "animation_next": "",
@ -626,7 +634,6 @@ event = &"c02_madman_interacted"
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D小蝉哼歌"] [node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D小蝉哼歌"]
process_mode = 1
position = Vector2(-2, -1) position = Vector2(-2, -1)
stream = ExtResource("6_jhod7") stream = ExtResource("6_jhod7")
volume_db = 20.0 volume_db = 20.0
@ -794,10 +801,9 @@ position = Vector2(-11, 1)
sprite_frames = ExtResource("34_1tart") sprite_frames = ExtResource("34_1tart")
animation = &"霸凌1" animation = &"霸凌1"
autoplay = "霸凌1" autoplay = "霸凌1"
frame = 4 frame = 9
[node name="Sfx2D霸凌童谣" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/霸凌/f1"] [node name="Sfx2D霸凌童谣" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/霸凌/f1"]
process_mode = 1
stream = ExtResource("46_qqdxs") stream = ExtResource("46_qqdxs")
volume_db = -5.0 volume_db = -5.0
attenuation = 2.0 attenuation = 2.0
@ -1009,6 +1015,7 @@ position = Vector2(2229, 41)
sprite_frames = ExtResource("34_1tart") sprite_frames = ExtResource("34_1tart")
animation = &"霸凌3-发抖" animation = &"霸凌3-发抖"
autoplay = "霸凌3-发抖" autoplay = "霸凌3-发抖"
frame = 1
[node name="Pro小孩喊着火啦3" parent="Ground/DeployLayer/火灾" instance=ExtResource("33_ycojw")] [node name="Pro小孩喊着火啦3" parent="Ground/DeployLayer/火灾" instance=ExtResource("33_ycojw")]
z_index = 9 z_index = 9
@ -1067,13 +1074,12 @@ z_index = 5
position = Vector2(17, -11) position = Vector2(17, -11)
sprite_frames = ExtResource("39_rnk1v") sprite_frames = ExtResource("39_rnk1v")
animation = &"吕萍牵手动作" animation = &"吕萍牵手动作"
frame = 3 frame = 5
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/火灾/牵手跑"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/火灾/牵手跑"]
shape = SubResource("RectangleShape2D_vddfx") shape = SubResource("RectangleShape2D_vddfx")
[node name="Sfx2D跑步" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/火灾/牵手跑"] [node name="Sfx2D跑步" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/火灾/牵手跑"]
process_mode = 1
stream = SubResource("AudioStreamRandomizer_fxne6") stream = SubResource("AudioStreamRandomizer_fxne6")
volume_db = 3.0 volume_db = 3.0
bus = &"game_sfx" bus = &"game_sfx"

View File

@ -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="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"] [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="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://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="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="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://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://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="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://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="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="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"] [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) position = Vector2(275, 13)
texture = ExtResource("6_gk1h4") 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 unique_name_in_owner = true
position = Vector2(189, 15) position = Vector2(189, 15)
packed_scene = ExtResource("7_fvlg0") packed_scene = ExtResource("7_fvlg0")
first_interact_os_key = "c02_保卫科祭台os" 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 light_mask = 5
position = Vector2(207.5, -40.5) position = Vector2(207.5, -40.5)
texture = ExtResource("11_ffvrp") texture = ExtResource("11_ffvrp")
packed_scene = ExtResource("8_cm3g6") 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 unique_name_in_owner = true
position = Vector2(351, 31) position = Vector2(351, 31)
packed_scene = ExtResource("6_fvlg0") packed_scene = ExtResource("6_fvlg0")
first_interact_os_key = "c02_保卫科花名册os" 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) position = Vector2(370, 39)
[node name="灯光" type="AnimatedSprite2D" parent="Ground/DeployLayer/煤油灯"] [node name="灯光" type="AnimatedSprite2D" parent="Ground/DeployLayer/煤油灯"]
@ -141,16 +146,16 @@ energy = 2.0
blend_mode = 2 blend_mode = 2
texture = ExtResource("9_a43aq") 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) 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) position = Vector2(116, -1)
texture = ExtResource("20_g8amr") texture = ExtResource("20_g8amr")
texture_cover = ExtResource("21_cq2m4") texture_cover = ExtResource("21_cq2m4")
content_key = "c02_寻人启事_完整" 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) position = Vector2(351, 51)
sprite_frames = ExtResource("20_47ju4") sprite_frames = ExtResource("20_47ju4")
animation = &"c00_头套小婵_write" animation = &"c00_头套小婵_write"
@ -175,6 +180,7 @@ texture = ExtResource("6_tio43")
points = PackedVector2Array(66, 150, 495, 150) points = PackedVector2Array(66, 150, 495, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"] [node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.9 energy = 0.9
blend_mode = 1 blend_mode = 1

View File

@ -119,9 +119,12 @@ data = {
debug_global_data = Dictionary[String, Variant]({ debug_global_data = Dictionary[String, Variant]({
"c02_madman_hitwall": true, "c02_madman_hitwall": true,
"c02_madman_interacted": 0, "c02_madman_interacted": 0,
"c02_meat_dropping": false, "c02_meat_dropping": true,
"c02_meat_given": false, "c02_meat_given": false,
"enabled_items": ["prop_火柴", "prop_院长的信", "prop_银元"], "enabled_items": {
"prop_奇怪的肉": true,
"prop_粘鼠板": true
},
"handnote_c02_map_1Left": 0, "handnote_c02_map_1Left": 0,
"handnote_c02_meat_knockDoor": 0, "handnote_c02_meat_knockDoor": 0,
"handnote_c02_meat_stopMouse": 0, "handnote_c02_meat_stopMouse": 0,
@ -221,7 +224,7 @@ trigger_mode = "interact"
hook_method = "wood_puppet" hook_method = "wood_puppet"
[node name="Closeup拿人偶后记忆闪回" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_2yvhw")] [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") packed_scene = ExtResource("10_7mq0m")
quit_closeup_on_escape = false quit_closeup_on_escape = false
action_key = 3 action_key = 3
@ -355,6 +358,7 @@ position = Vector2(-180, 5)
sprite_frames = ExtResource("7_mrltr") sprite_frames = ExtResource("7_mrltr")
animation = &"小蝉背对转头" animation = &"小蝉背对转头"
autoplay = "小蝉背对呼吸帧" autoplay = "小蝉背对呼吸帧"
frame = 4
flip_h = true flip_h = true
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="18"] [node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="18"]
@ -364,7 +368,6 @@ event = &"c02_madman_interacted"
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D小蝉哼歌"] [node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D小蝉哼歌"]
process_mode = 1
position = Vector2(-103, -11) position = Vector2(-103, -11)
stream = ExtResource("24_7mq0m") stream = ExtResource("24_7mq0m")
volume_db = 20.0 volume_db = 20.0
@ -382,10 +385,17 @@ hook_method = "update_1l_map"
[node name="MainPlayer" parent="Ground" index="5"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(41, 98) position = Vector2(41, 98)
player_movement_rect = Rect2(23, -158, 677, 316)
[node name="AudioListener2D" type="AudioListener2D" parent="Ground/MainPlayer" index="6"] [node name="AudioListener2D" type="AudioListener2D" parent="Ground/MainPlayer" index="6"]
current = true 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"] [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(45, -9) position = Vector2(45, -9)
scale = Vector2(1.1, 1.1) scale = Vector2(1.1, 1.1)
@ -395,6 +405,7 @@ texture = ExtResource("8_tueh3")
points = PackedVector2Array(23, 150, 700, 150) points = PackedVector2Array(23, 150, 700, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"] [node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.9 energy = 0.9
blend_mode = 1 blend_mode = 1

View File

@ -111,10 +111,11 @@ func boys_ball_game() -> void:
var stage = EventManager.get_stage(&"c02_ball_game_stage") var stage = EventManager.get_stage(&"c02_ball_game_stage")
if stage == 0: if stage == 0:
EventManager.set_stage(&"c02_ball_game_stage", 1) EventManager.set_stage(&"c02_ball_game_stage", 1)
ArchiveManager.set_global_entry(&"c02_pliers_to_ball", true)
SceneManager.lock_player() SceneManager.lock_player()
DialogueManager.show_dialogue_balloon(dialogue_c02, "c02_s05_三男孩弹珠游戏1") DialogueManager.show_dialogue_balloon(dialogue_c02, "c02_s05_三男孩弹珠游戏1")
await DialogueManager.dialogue_ended await DialogueManager.dialogue_ended
# 手里有弹珠就不说了
if SceneManager.get_prop_hud().inventory.has_prop("prop_弹珠"):
SceneManager.pop_os_with_str("c02_小手换回弹珠") SceneManager.pop_os_with_str("c02_小手换回弹珠")
SceneManager.unlock_player() SceneManager.unlock_player()
elif stage == 1 or stage == 2: elif stage == 1 or stage == 2:
@ -190,10 +191,9 @@ func _on_exit_final_show(_arg):
await get_tree().create_timer(3.0).timeout await get_tree().create_timer(3.0).timeout
$"../DeployLayer/c02_final/瞎子/Sfx2D脚步声".play() $"../DeployLayer/c02_final/瞎子/Sfx2D脚步声".play()
await animation_finished await animation_finished
c02_final_layer.queue_free()
_toggle_candles(true) _toggle_candles(true)
await Util.wait(0.5) await Util.wait(1.0)
c02_final_layer.queue_free()
# 小蝉上楼后开启第二章 # 小蝉上楼后开启第二章
var xxdie = $"../DeployLayer/Pro小小蝶上楼" as AnimatedSprite2D var xxdie = $"../DeployLayer/Pro小小蝶上楼" as AnimatedSprite2D

View File

@ -899,20 +899,19 @@ libraries = {
script = ExtResource("2_4dg6u") script = ExtResource("2_4dg6u")
debug_global_data = Dictionary[String, Variant]({ debug_global_data = Dictionary[String, Variant]({
"c02_2f_xchan_run_away": 0, "c02_2f_xchan_run_away": 0,
"c02_ball_game_stage": 1, "c02_ball_game_stage": 2,
"c02_burning_end_stage": 1, "c02_burning_end_stage": 2,
"c02_madman_hitwall": false, "c02_madman_hitwall": false,
"c02_mouse_follow_player": false, "c02_mouse_follow_player": false,
"c02_pliers_to_ball": false,
"c02_s02_mouse_push_shoe": false, "c02_s02_mouse_push_shoe": false,
"c02_the_blind_room_unlocked": false, "c02_the_blind_room_unlocked": true,
"enabled_items": { "enabled_items": {
"prop_小鞋子1": true, "prop_小鞋子1": true,
"prop_火柴": true "prop_火柴": true
}, },
"handnote_c02_map_2": 0, "handnote_c02_map_2": 0,
"handnote_c02_shoe_giveToMouce": 0, "handnote_c02_shoe_giveToMouce": 0,
"player_x": 830.0 "player_x": 50.0
}) })
debug_ground_data = Dictionary[String, Variant]({ debug_ground_data = Dictionary[String, Variant]({
"Ambush三男孩": { "Ambush三男孩": {
@ -1072,7 +1071,6 @@ position = Vector2(953, 30)
sprite_frames = ExtResource("13_6iuix") sprite_frames = ExtResource("13_6iuix")
animation = &"小小小蝶动画(跑)" animation = &"小小小蝶动画(跑)"
autoplay = "小小小蝶动画(呼吸)" autoplay = "小小小蝶动画(呼吸)"
frame = 1
flip_h = true flip_h = true
move_configs = Array[Dictionary]([{ move_configs = Array[Dictionary]([{
"animation": "小小小蝶动画(跑)", "animation": "小小小蝶动画(跑)",
@ -1240,6 +1238,7 @@ autostart = false
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": &"胖子呼吸", "animation_intro": &"胖子呼吸",
&"animation_next": "胖子走路", &"animation_next": "胖子走路",
"animation_wait_time": 0.0,
&"intro_loop": 5 &"intro_loop": 5
}]) }])
move_configs = Array[Dictionary]([{ move_configs = Array[Dictionary]([{
@ -1267,10 +1266,13 @@ animation = &"小婵捂脸"
autostart = false autostart = false
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "小婵捂脸", "animation_intro": "小婵捂脸",
&"animation_next": "小婵呼吸" &"animation_next": "小婵呼吸",
"animation_wait_time": 0.0,
"intro_loop": 1
}, { }, {
"animation_intro": &"小婵呼吸", "animation_intro": &"小婵呼吸",
&"animation_next": "小婵走路", &"animation_next": "小婵走路",
"animation_wait_time": 0.0,
&"intro_loop": 7 &"intro_loop": 7
}]) }])
move_configs = Array[Dictionary]([{ move_configs = Array[Dictionary]([{
@ -1292,6 +1294,7 @@ autostart = false
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": &"方瞎子呼吸-右", "animation_intro": &"方瞎子呼吸-右",
&"animation_next": "方瞎子走路-左", &"animation_next": "方瞎子走路-左",
"animation_wait_time": 0.0,
&"intro_loop": 6 &"intro_loop": 6
}]) }])
move_configs = Array[Dictionary]([{ move_configs = Array[Dictionary]([{

View File

@ -743,7 +743,7 @@ texture = ExtResource("16_7mvsg")
position = Vector2(637.5, -19) position = Vector2(637.5, -19)
sprite_frames = ExtResource("21_kpfk1") sprite_frames = ExtResource("21_kpfk1")
animation = &"剪影人物床_呼吸" animation = &"剪影人物床_呼吸"
frame = 2 frame = 1
action_configs = Array[Dictionary]([{ action_configs = Array[Dictionary]([{
"animation_intro": "剪影人物床_指天", "animation_intro": "剪影人物床_指天",
&"animation_next": "剪影人物床_指天呼吸", &"animation_next": "剪影人物床_指天呼吸",

View File

@ -209,9 +209,9 @@ metadata/_custom_type_script = "uid://cpejxlfni6n52"
[node name="BGSprite2D" parent="Ground" index="2"] [node name="BGSprite2D" parent="Ground" index="2"]
light_mask = 5 light_mask = 5
position = Vector2(0, -2) position = Vector2(0, -24)
texture = ExtResource("4_ow08b") texture = ExtResource("4_ow08b")
offset = Vector2(0, -115.5) offset = Vector2(0, -155)
[node name="portal_left" parent="Ground/DeployLayer" index="0"] [node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(34, 8) position = Vector2(34, 8)
@ -268,7 +268,7 @@ texture = ExtResource("11_amci2")
packed_scene = ExtResource("7_d27sg") packed_scene = ExtResource("7_d27sg")
[node name="小蜡烛系列" type="Node2D" parent="Ground/DeployLayer" index="6"] [node name="小蜡烛系列" type="Node2D" parent="Ground/DeployLayer" index="6"]
position = Vector2(0, 3) position = Vector2(0, 6)
[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer/小蜡烛系列"] [node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer/小蜡烛系列"]
self_modulate = Color(0.611765, 0.611765, 0.611765, 1) self_modulate = Color(0.611765, 0.611765, 0.611765, 1)
@ -386,7 +386,6 @@ texture = ExtResource("5_ow08b")
points = PackedVector2Array(30, 151, 723, 150) points = PackedVector2Array(30, 151, 723, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"] [node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.9 energy = 0.9
blend_mode = 1 blend_mode = 1

View File

@ -225,9 +225,8 @@ func _on_interacted() -> void:
ArchiveManager.set_global_entry(&"c02_little_hand_dropped_tin", true) ArchiveManager.set_global_entry(&"c02_little_hand_dropped_tin", true)
await SceneManager.pop_os_with_str("c02_小手还能换什么") 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_老虎钳":
if id == 0 and key == "prop_老虎钳" and pliers_to_ball:
interacted_success = true interacted_success = true
sfx_success.play() sfx_success.play()
SceneManager.disable_prop_item("prop_老虎钳") SceneManager.disable_prop_item("prop_老虎钳")
@ -235,9 +234,7 @@ func _on_interacted() -> void:
SceneManager.pop_debug_dialog_info("美术", "小手_老虎钳_hide + 小手_弹珠_show + 小手_弹珠_idle") SceneManager.pop_debug_dialog_info("美术", "小手_老虎钳_hide + 小手_弹珠_show + 小手_弹珠_idle")
await Util.wait(1.5) await Util.wait(1.5)
holding_prop = "prop_弹珠" holding_prop = "prop_弹珠"
# 换回弹珠后完全结束 elif id == 0 and key == "prop_弹珠":
EventManager.set_stage_if_greater(&"handnote_c02_hand_exchange", 2)
elif id == 0 and key == "prop_弹珠" and not pliers_to_ball:
interacted_success = true interacted_success = true
sfx_success.play() sfx_success.play()
SceneManager.disable_prop_item("prop_弹珠") SceneManager.disable_prop_item("prop_弹珠")
@ -245,7 +242,6 @@ func _on_interacted() -> void:
SceneManager.pop_debug_dialog_info("美术", "小手_弹珠_hide + 小手_老虎钳_show + 小手_老虎钳_idle") SceneManager.pop_debug_dialog_info("美术", "小手_弹珠_hide + 小手_老虎钳_show + 小手_老虎钳_idle")
await Util.wait(1.5) await Util.wait(1.5)
holding_prop = "prop_老虎钳" holding_prop = "prop_老虎钳"
if interacted_success: if interacted_success:
EventManager.prop_interacted(name, key, 1) EventManager.prop_interacted(name, key, 1)
else: else:

View File

@ -3,7 +3,7 @@
extends RigidBody2D extends RigidBody2D
signal hit_ball_touched signal hit_ball_touched
signal hit_ball_finished signal hit_ball_finished(count: int)
signal hit_boundary signal hit_boundary
@export_enum("1", "2", "3", "4", "5", "6", "7") var id := "1": @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()) print("[debug] first hit node", node.get_path())
shooted_instances[instance_id] = true shooted_instances[instance_id] = true
shoot_count += 1 shoot_count += 1
# 从被打击到的 ball 上建立 tween
tween = node.create_tween()
# sfx 碰撞音效
hit_ball_touched.emit() hit_ball_touched.emit()
tween = create_tween() # 新碰到会刷新 modulate:a -> 0 时间
tween.tween_property(self, "modulate:a", 0.0, 1.5) 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.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(node.queue_free)
tween.tween_callback(queue_free)
print("[ball] shoot count: ", shoot_count) print("[ball] shoot count: ", shoot_count)
if shoot_count >= 3: if shoot_count >= 3:
#TODO 连续射中三个成就 #TODO 连续射中三个成就
pass pass
func _on_shoot_finished() -> void:
# 计数+shoot_count & reload_hand_ball
hit_ball_finished.emit(shoot_count)
queue_free()
func _process(_delta: float) -> void: func _process(_delta: float) -> void:
if Engine.is_editor_hint(): if Engine.is_editor_hint():
return return

View File

@ -52,6 +52,8 @@ func intro():
func intro_finished(): func intro_finished():
SceneManager.disable_prop_item("prop_弹珠") SceneManager.disable_prop_item("prop_弹珠")
# 老虎钳 - 弹珠交换功能结束
EventManager.set_stage_if_greater(&"handnote_c02_hand_exchange", 2)
# 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束(小猫纸片) 4:游戏结束(小猫离开) # 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束(小猫纸片) 4:游戏结束(小猫离开)
# 放入弹珠,开始游戏 # 放入弹珠,开始游戏
EventManager.set_stage(&"c02_ball_game_stage", 2) EventManager.set_stage(&"c02_ball_game_stage", 2)
@ -198,9 +200,10 @@ func _on_hit_ball():
sfx_shoot.stop() sfx_shoot.stop()
func _on_hit_ball_finished(): func _on_hit_ball_finished(count: int):
reload_hand_ball() reload_hand_ball()
hit_count += 1 hit_count += count
print("current round: ", round_id, " hit count: ", hit_count)
if round_id == 0: if round_id == 0:
round_ready = false round_ready = false
_success_dialogue() _success_dialogue()

View File

@ -30,11 +30,13 @@ func _ready() -> void:
content_rect.modulate.a = 0.0 content_rect.modulate.a = 0.0
content_rect.visible = true content_rect.visible = true
func _enter_tree() -> void: func _enter_tree() -> void:
SceneManager.pop_center_notification("input_拼凑信件") SceneManager.pop_center_notification("input_拼凑信件")
await Util.wait(4.0) await Util.wait(4.0)
SceneManager.pop_center_notification("ui_center_notify_press_q_to_exit") SceneManager.pop_center_notification("ui_center_notify_press_q_to_exit")
func _setup() -> void: func _setup() -> void:
# 保存 whole 中的 4 个 part 的位置,然后从 whole 中移除,添加到 container 中 # 保存 whole 中的 4 个 part 的位置,然后从 whole 中移除,添加到 container 中
positions.clear() positions.clear()
@ -141,6 +143,9 @@ func _post_success():
$"Sfx展开信".play() $"Sfx展开信".play()
var inspector = SceneManager.get_inspector() var inspector = SceneManager.get_inspector()
inspector.pop_standard_inspection(texture, null, tr("prop_院长的信_说明"), false, true) 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_院长的信") SceneManager.enable_important_item("prop_院长的信")
whole.visible = false whole.visible = false
# 1s 后退出 # 1s 后退出

View File

@ -28,9 +28,9 @@ var enabled_items := [] as Array[String]
func checkout(character: String): func checkout(character: String):
# @export_enum("吕萍", "吕萍爬行", "吕萍带小猫", "吕萍推柜子", "小小蝶", "盒子猫", "小小小蝶") var character := "吕萍": # @export_enum("吕萍", "吕萍爬行", "吕萍带小猫", "吕萍推柜子", "小小蝶", "盒子猫", "小小小蝶") var character := "吕萍":
if character.begins_with("小小小蝶"): if character.begins_with("小小小蝶"):
enabled_items = xxdie_enabled_items
elif character.begins_with("小小蝶"):
enabled_items = xxxdie_enabled_items enabled_items = xxxdie_enabled_items
elif character.begins_with("小小蝶"):
enabled_items = xxdie_enabled_items
elif character.begins_with("吕萍"): elif character.begins_with("吕萍"):
enabled_items = xdie_enabled_items enabled_items = xdie_enabled_items
else: else: