demo 优化 v0.1.1
@ -1,6 +1,8 @@
|
|||||||
[gd_resource type="SpriteFrames" load_steps=26 format=3 uid="uid://blij4obvhb1vf"]
|
[gd_resource type="SpriteFrames" load_steps=28 format=3 uid="uid://blij4obvhb1vf"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://8otjg8gn0m6p" path="res://asset/art/gif/c02_公寓过道/眨眼睛/0.png" id="1_dcr3n"]
|
[ext_resource type="Texture2D" uid="uid://8otjg8gn0m6p" path="res://asset/art/gif/c02_公寓过道/眨眼睛/0.png" id="1_dcr3n"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png" id="1_wvj6u"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png" id="2_lqlhi"]
|
||||||
[ext_resource type="Texture2D" uid="uid://h67dk77cktlg" path="res://asset/art/gif/c02_公寓过道/眨眼睛/1.png" id="2_thlvb"]
|
[ext_resource type="Texture2D" uid="uid://h67dk77cktlg" path="res://asset/art/gif/c02_公寓过道/眨眼睛/1.png" id="2_thlvb"]
|
||||||
[ext_resource type="Texture2D" uid="uid://6po3pxrwx1vd" path="res://asset/art/gif/c02_公寓过道/眨眼睛/2.png" id="3_wvj6u"]
|
[ext_resource type="Texture2D" uid="uid://6po3pxrwx1vd" path="res://asset/art/gif/c02_公寓过道/眨眼睛/2.png" id="3_wvj6u"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d3856wm1qo7kv" path="res://asset/art/gif/c02_公寓过道/眨眼睛/3.png" id="4_lqlhi"]
|
[ext_resource type="Texture2D" uid="uid://d3856wm1qo7kv" path="res://asset/art/gif/c02_公寓过道/眨眼睛/3.png" id="4_lqlhi"]
|
||||||
@ -29,6 +31,17 @@
|
|||||||
[resource]
|
[resource]
|
||||||
animations = [{
|
animations = [{
|
||||||
"frames": [{
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("1_wvj6u")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("2_lqlhi")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"头套小蝉呼吸",
|
||||||
|
"speed": 1.5
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
"duration": 6.0,
|
"duration": 6.0,
|
||||||
"texture": ExtResource("1_dcr3n")
|
"texture": ExtResource("1_dcr3n")
|
||||||
}, {
|
}, {
|
||||||
|
BIN
asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif
Normal file
After Width: | Height: | Size: 2.3 KiB |
14
asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif.import
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="gif.animated.texture.plugin"
|
||||||
|
type="SpriteFrames"
|
||||||
|
uid="uid://dgysufpkl5pdp"
|
||||||
|
path="res://.godot/imported/头套小蝉呼吸.gif-ada0c526340ead17a8bfd36de468f05f.tres"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif"
|
||||||
|
dest_files=["res://.godot/imported/头套小蝉呼吸.gif-ada0c526340ead17a8bfd36de468f05f.tres"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
BIN
asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
34
asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bxo0l3d3blmc5"
|
||||||
|
path="res://.godot/imported/0.png-9c663fa7b539a22de5cbe437f0c29f08.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png"
|
||||||
|
dest_files=["res://.godot/imported/0.png-9c663fa7b539a22de5cbe437f0c29f08.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
|
BIN
asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
34
asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dkus208xyxsu2"
|
||||||
|
path="res://.godot/imported/1.png-925ae896e4be31cc91bdcb9d5f5b882e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png"
|
||||||
|
dest_files=["res://.godot/imported/1.png-925ae896e4be31cc91bdcb9d5f5b882e.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
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://c1uu7y472nve7"
|
uid="uid://c1uu7y472nve7"
|
||||||
path="res://.godot/imported/小鞋子.png-71a48c9981772cf5b76631ba47f96a90.ctex"
|
path="res://.godot/imported/小鞋子1.png-07f38ab5e9aa0dcb595079e127f9ec83.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/prop/c02/小鞋子.png"
|
source_file="res://asset/art/prop/c02/小鞋子1.png"
|
||||||
dest_files=["res://.godot/imported/小鞋子.png-71a48c9981772cf5b76631ba47f96a90.ctex"]
|
dest_files=["res://.godot/imported/小鞋子1.png-07f38ab5e9aa0dcb595079e127f9ec83.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
asset/art/prop/c02/小鞋子2.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
34
asset/art/prop/c02/小鞋子2.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://qg746w5sm43y"
|
||||||
|
path="res://.godot/imported/小鞋子2.png-378267ab790014bba61d65cdcbda8e35.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/prop/c02/小鞋子2.png"
|
||||||
|
dest_files=["res://.godot/imported/小鞋子2.png-378267ab790014bba61d65cdcbda8e35.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
|
BIN
asset/art/scene/c02/s03_公寓一楼院子/e_院子地上纸钱.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
34
asset/art/scene/c02/s03_公寓一楼院子/e_院子地上纸钱.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c8b80a75k3qw6"
|
||||||
|
path="res://.godot/imported/e_院子地上纸钱.png-3ac4dc930cd6b835c9f032ef5f1440ec.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c02/s03_公寓一楼院子/e_院子地上纸钱.png"
|
||||||
|
dest_files=["res://.godot/imported/e_院子地上纸钱.png-3ac4dc930cd6b835c9f032ef5f1440ec.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
|
BIN
asset/art/scene/c02/杂物/老鼠洞通用.png
Normal file
After Width: | Height: | Size: 215 B |
34
asset/art/scene/c02/杂物/老鼠洞通用.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dfosrexfvxsn0"
|
||||||
|
path="res://.godot/imported/老鼠洞通用.png-5c4bd59aa07625b2ea6a405d785874be.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c02/杂物/老鼠洞通用.png"
|
||||||
|
dest_files=["res://.godot/imported/老鼠洞通用.png-5c4bd59aa07625b2ea6a405d785874be.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
|
@ -1,4 +1,8 @@
|
|||||||
keys,zh_CN,_character,_notes,_tags,zh_SH,en
|
keys,zh_CN,_character,_notes,_tags,zh_SH,en
|
||||||
|
c01_6卖艺小孩A_1,您、您行行好,给点...,小丁,,,,
|
||||||
|
c01_6卖艺小孩B_1,祝恁身子骨儿杠赛来,吃嘛嘛香木个病,一年更比一年行!,蛋蛋,,,,
|
||||||
|
c01_6卖艺小孩C_1,宾安哗在,有才有财!,沫儿,,,,
|
||||||
|
c01_6幼年陆仁_1,这帮孩子们太苦了,前些天又摔坏了一个,您行行好...,陆仁,,,,
|
||||||
c01_1小小蝶_开头阅读2,...后面看不清了。,???,,,,
|
c01_1小小蝶_开头阅读2,...后面看不清了。,???,,,,
|
||||||
c01_2老师1,昨天认的字,现在全忘了?,老师,,,昨日刚刚教过你们,全忘记特了?,Have you forgotten all the characters you learned yesterday?
|
c01_2老师1,昨天认的字,现在全忘了?,老师,,,昨日刚刚教过你们,全忘记特了?,Have you forgotten all the characters you learned yesterday?
|
||||||
c01_2老师2,(唉呀)黄鱼脑子!,老师,,,(哪能?)都黄鱼脑子啊?,"(Aw, c'mon!) You're acting silly!"
|
c01_2老师2,(唉呀)黄鱼脑子!,老师,,,(哪能?)都黄鱼脑子啊?,"(Aw, c'mon!) You're acting silly!"
|
||||||
@ -28,10 +32,6 @@ c01_5胖小孩倒数_1,一!,小胖孩,,[#wait=2],,
|
|||||||
c01_6监督小孩_1,瞧一瞧,看一看,动动各位的发财手,老爷夫人别急走,什么把戏咱都有...,监督小孩,,,,
|
c01_6监督小孩_1,瞧一瞧,看一看,动动各位的发财手,老爷夫人别急走,什么把戏咱都有...,监督小孩,,,,
|
||||||
c01_6监督小孩_2,不要千、不要万,只求一顿温饱饭,又集福、又集善,亲戚儿孙中状元!,监督小孩,,,,
|
c01_6监督小孩_2,不要千、不要万,只求一顿温饱饭,又集福、又集善,亲戚儿孙中状元!,监督小孩,,,,
|
||||||
c01_6监督小孩_3,儿孙坐在那金銮殿,荣华富贵顶上天!,监督小孩,,,,
|
c01_6监督小孩_3,儿孙坐在那金銮殿,荣华富贵顶上天!,监督小孩,,,,
|
||||||
c01_6卖艺小孩A_1,您、您行行好,给点...,小丁,,,,
|
|
||||||
c01_6卖艺小孩B_1,祝恁身子骨儿杠赛来,吃嘛嘛香木个病,一年更比一年行!,蛋蛋,,,,
|
|
||||||
c01_6卖艺小孩C_1,宾安哗在,有才有财!,沫儿,,,,
|
|
||||||
c01_6幼年陆仁_1,这帮孩子们太苦了,前些天又摔坏了一个,您行行好...,陆仁,,,,
|
|
||||||
c01_7老板_1,报纸放这边。,书店老板,,,,
|
c01_7老板_1,报纸放这边。,书店老板,,,,
|
||||||
c01_7老板_2,哦,对了,还有封寄给你的信。,书店老板,,,,
|
c01_7老板_2,哦,对了,还有封寄给你的信。,书店老板,,,,
|
||||||
c01_7老板_3,蛮奇怪的,这么久也没见你有亲戚过来。,书店老板,,,,
|
c01_7老板_3,蛮奇怪的,这么久也没见你有亲戚过来。,书店老板,,,,
|
||||||
|
|
@ -69,7 +69,7 @@ c02_10小蝉_1,嗯。,方小蝉,,[#ban_skip]
|
|||||||
c02_10小蝶_2,我能感觉到,从我一进来,你就在盯着我。,吕萍,,[#ban_skip]
|
c02_10小蝶_2,我能感觉到,从我一进来,你就在盯着我。,吕萍,,[#ban_skip]
|
||||||
c02_10小蝉_2,...你不记得我了。,方小蝉,,[#ban_skip]
|
c02_10小蝉_2,...你不记得我了。,方小蝉,,[#ban_skip]
|
||||||
c02_10小蝶_3,...我更好奇另一件事。,吕萍,,[#ban_skip]
|
c02_10小蝶_3,...我更好奇另一件事。,吕萍,,[#ban_skip]
|
||||||
c02_10小蝶_4,你...是怎么死的?,吕萍,,
|
c02_10小蝶_4,你...是怎么死的?,吕萍,,[#ban_skip]
|
||||||
c02_10瞎子_1,小蝉,该回家了。,方启钊,,
|
c02_10瞎子_1,小蝉,该回家了。,方启钊,,
|
||||||
c02_10瞎子_2,你胖叔叔带了鲜肉过来,要给咱们露一手呢。,方启钊,,
|
c02_10瞎子_2,你胖叔叔带了鲜肉过来,要给咱们露一手呢。,方启钊,,
|
||||||
c02_10瞎子_3,还不快点过来谢谢人家?,方启钊,,
|
c02_10瞎子_3,还不快点过来谢谢人家?,方启钊,,
|
||||||
|
|
@ -10,15 +10,15 @@ keys,zh_CN,_character,_notes,_tags
|
|||||||
c01_飘落的寻人启事1,寻人(看不清)年八岁。,,,
|
c01_飘落的寻人启事1,寻人(看不清)年八岁。,,,
|
||||||
c01_飘落的寻人启事2,由(看不清)步行外出,至今未回,遍找无踪。,,,
|
c01_飘落的寻人启事2,由(看不清)步行外出,至今未回,遍找无踪。,,,
|
||||||
c01_飘落的寻人启事3,如有知其下落者(看不清)备有重谢,绝不失言。,,,
|
c01_飘落的寻人启事3,如有知其下落者(看不清)备有重谢,绝不失言。,,,
|
||||||
c02_寻人启事_残破,寻人启事...画像和字迹都看不清。,,,
|
c02_寻人启事_残破,画像和字迹都看不清了,,,
|
||||||
c02_寻人启事_完整1,寻人,方小蝉,年八岁。,,,
|
c02_寻人启事_完整1,寻人,方小蝉,年八岁。,,,
|
||||||
c02_寻人启事_完整2,于十月二十五日下午五时,由芦昌路26弄3号步行外出,至今未回,遍找无踪。,,,
|
c02_寻人启事_完整2,于十月二十五日下午五时,由芦昌路26弄3号步行外出,至今未回,遍找无踪。,,,
|
||||||
c02_寻人启事_完整3,如有知其下落者请赐信,备有重谢,绝不失言。,,,
|
c02_寻人启事_完整3,如有知其下落者请赐信,备有重谢,绝不失言。,,,
|
||||||
|
c02_海报1,战胜北方鼠疫之二杰,,,
|
||||||
c02_青岛啤酒详情,系最好最廉之酒,并且每星期有新货到埠,,,
|
c02_青岛啤酒详情,系最好最廉之酒,并且每星期有新货到埠,,,
|
||||||
tdb119a3714,据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。,,,
|
tdb119a3714,据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。,,,
|
||||||
ta750647b12,《申报》,,,
|
ta750647b12,《申报》,,,
|
||||||
t736cca4563,民国五年一月十三日,,,
|
t736cca4563,民国五年一月十三日,,,
|
||||||
c02_海报1,战胜北方鼠疫之二杰,,,
|
|
||||||
c02_保卫科花名册1,一零一四 空,,,
|
c02_保卫科花名册1,一零一四 空,,,
|
||||||
c02_保卫科花名册2,一零一五王守义 李兰,,,
|
c02_保卫科花名册2,一零一五王守义 李兰,,,
|
||||||
c02_保卫科花名册3,二零一二 张文开,,,
|
c02_保卫科花名册3,二零一二 张文开,,,
|
||||||
|
|
@ -6,7 +6,7 @@
|
|||||||
=> END
|
=> END
|
||||||
|
|
||||||
~ c02_寻人启事_残破
|
~ c02_寻人启事_残破
|
||||||
寻人启事...画像和字迹都看不清。 [ID:c02_寻人启事_残破]
|
画像和字迹都看不清了 [ID:c02_寻人启事_残破]
|
||||||
=> END
|
=> END
|
||||||
|
|
||||||
~ c02_寻人启事_完整
|
~ c02_寻人启事_完整
|
||||||
|
@ -9,6 +9,7 @@ prop_新鲜的肉,新鲜的肉,,,[#texture=c02/新鲜的肉.png],,
|
|||||||
c02_小蝉寻人启事_脸部破碎,寻人启事...画像和字迹都看不清。,,,,,
|
c02_小蝉寻人启事_脸部破碎,寻人启事...画像和字迹都看不清。,,,,,
|
||||||
小猫玩具发光,嗯?玩具在发光,,,,,
|
小猫玩具发光,嗯?玩具在发光,,,,,
|
||||||
setting_画册,画册(G),,,,,
|
setting_画册,画册(G),,,,,
|
||||||
|
notes_干掉的血迹,干掉的血迹,,,,,
|
||||||
index_新游戏,新游戏,,,,,New Game
|
index_新游戏,新游戏,,,,,New Game
|
||||||
index_继续游戏,继续游戏,,,,,Resume
|
index_继续游戏,继续游戏,,,,,Resume
|
||||||
index_退出游戏,退出游戏,,,,,Exit
|
index_退出游戏,退出游戏,,,,,Exit
|
||||||
@ -29,7 +30,8 @@ bag_tab_记忆,记忆,,,,,
|
|||||||
ui_saved_all,已保存所有数据,,,,,All the data have been saved
|
ui_saved_all,已保存所有数据,,,,,All the data have been saved
|
||||||
ui_new_archive,已创建新存档,,,,,A new archive has been created
|
ui_new_archive,已创建新存档,,,,,A new archive has been created
|
||||||
ui_auto_saved,自动保存成功,,,,,Auto save successful
|
ui_auto_saved,自动保存成功,,,,,Auto save successful
|
||||||
ui_press_e,按 E 与场景互动,,,,,Press E to interact
|
ui_intro_press_e,按 E 可与场景互动,,,,,
|
||||||
|
ui_press_e,按 E 可互动,,,,,Press E to interact
|
||||||
ui_press_q_to_exit,按 Q 可退出,,,,,
|
ui_press_q_to_exit,按 Q 可退出,,,,,
|
||||||
ui_use_prop,按 E 使用道具,,,,,Press E to use prop
|
ui_use_prop,按 E 使用道具,,,,,Press E to use prop
|
||||||
ui_right_click_prop,右键点击可检阅道具,,,,,
|
ui_right_click_prop,右键点击可检阅道具,,,,,
|
||||||
@ -62,20 +64,34 @@ prop_银元_说明,一枚“袁大头”银元,中華民國十年造。,,,,,
|
|||||||
prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,
|
prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,
|
||||||
prop_院长的信_说明,浦育院院长秦阳<br>民国21年11月20日<br>致吕萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国十九年十月十五日<br>公寓地址 芦昌路26弄3号,,,,,
|
prop_院长的信_说明,浦育院院长秦阳<br>民国21年11月20日<br>致吕萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国十九年十月十五日<br>公寓地址 芦昌路26弄3号,,,,,
|
||||||
prop_火柴,火柴,,,[#texture=c02/火柴.png],,
|
prop_火柴,火柴,,,[#texture=c02/火柴.png],,
|
||||||
|
prop_火柴_说明,火柴_说明,,,[#texture=c02/火柴.png],,
|
||||||
prop_小猫玩具的脑袋,小猫玩具的脑袋,,,[#texture=c02/新小猫头.png],,
|
prop_小猫玩具的脑袋,小猫玩具的脑袋,,,[#texture=c02/新小猫头.png],,
|
||||||
|
prop_小猫玩具的脑袋_说明,,,,,,
|
||||||
prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png],,
|
prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png],,
|
||||||
|
prop_无头小猫玩具_说明,没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练,,,,,
|
||||||
prop_小猫玩具完整,小猫玩具,,,[#texture=c02/新小猫全身.png],,
|
prop_小猫玩具完整,小猫玩具,,,[#texture=c02/新小猫全身.png],,
|
||||||
|
prop_小猫玩具完整_说明,这玩具看久了还蛮可爱的,,,,,
|
||||||
prop_撕下的照片上,撕下的照片(上),,,[#texture=c02/照片_上.png],,
|
prop_撕下的照片上,撕下的照片(上),,,[#texture=c02/照片_上.png],,
|
||||||
|
prop_撕下的照片上_说明,女儿生辰纪念 于 民国元年,,,,,
|
||||||
prop_老虎钳,老虎钳,,,[#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png],,
|
prop_老虎钳,老虎钳,,,[#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png],,
|
||||||
prop_老虎钳_说明,...,,,,,
|
prop_老虎钳_说明,「虎头牌」钳子,家家户户常备,,,,,
|
||||||
prop_锡箔元宝,锡箔元宝,,,[#texture=c02/锡箔元宝.png],,
|
prop_锡箔元宝,锡箔元宝,,,[#texture=c02/锡箔元宝.png],,
|
||||||
prop_小鞋子1,小鞋子1,,,[#texture=c02/小鞋子.png],,
|
prop_锡箔元宝_说明,人们一般将其叠成元宝形状,用以供奉逝者、祭拜鬼神。,,,,,
|
||||||
prop_小鞋子2,小鞋子2,,,[#texture=c02/小鞋子.png],,
|
prop_小鞋子1,小鞋子(一),,,[#texture=c02/小鞋子1.png],,
|
||||||
|
prop_小鞋子1_说明,尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓,,,,,
|
||||||
|
prop_小鞋子2,小鞋子(二),,,[#texture=c02/小鞋子2.png],,
|
||||||
|
prop_小鞋子2_说明,尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓,,,,,
|
||||||
prop_麻将,麻将,,,[#texture=c02/麻将.png],,
|
prop_麻将,麻将,,,[#texture=c02/麻将.png],,
|
||||||
|
prop_麻将_说明,这块麻将上雕着一朵圆形的花,,,,,
|
||||||
prop_奇怪的肉,奇怪的肉,,,[#texture=c02/奇怪的肉.png],,
|
prop_奇怪的肉,奇怪的肉,,,[#texture=c02/奇怪的肉.png],,
|
||||||
|
prop_奇怪的肉_说明,,,,,,
|
||||||
prop_弹珠,弹珠,,,[#texture=c02/弹珠.png],,
|
prop_弹珠,弹珠,,,[#texture=c02/弹珠.png],,
|
||||||
|
prop_弹珠_说明,一种玻璃小球,孩子们常用它来进行弹子游戏,,,,,
|
||||||
prop_木头人偶,木头人偶,,,[#texture=c02/小蝉人偶.png],,
|
prop_木头人偶,木头人偶,,,[#texture=c02/小蝉人偶.png],,
|
||||||
|
prop_木头人偶_说明,略显粗糙的木头玩偶,能依稀辨认出是个小女孩的模样,,,,,
|
||||||
|
prop_小蝉人偶_说明,小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花,,,,,
|
||||||
prop_粘鼠板,粘鼠板,,,[#texture=c02/粘鼠板特写.png],,
|
prop_粘鼠板,粘鼠板,,,[#texture=c02/粘鼠板特写.png],,
|
||||||
|
prop_粘鼠板_说明,自制的捕鼠工具,纸上面有黏黏的浆糊,,,,,
|
||||||
prop_一把香,一把香,,,[#texture=c02/一把香.png],,
|
prop_一把香,一把香,,,[#texture=c02/一把香.png],,
|
||||||
prop_2014钥匙,2014钥匙,,,[#texture=c02/1012钥匙物品.png],,
|
prop_2014钥匙,2014钥匙,,,[#texture=c02/1012钥匙物品.png],,
|
||||||
prop_重要物品示例,重要物品示例,,,[#texture=c01/银元.png],,
|
prop_重要物品示例,重要物品示例,,,[#texture=c01/银元.png],,
|
||||||
@ -93,7 +109,6 @@ notes_纸条,纸条,,,,,
|
|||||||
notes_锁住了,锁住了,,,,,
|
notes_锁住了,锁住了,,,,,
|
||||||
notes_打不开,打不开,,,,,
|
notes_打不开,打不开,,,,,
|
||||||
notes_无法通过,无法通过,,,,,
|
notes_无法通过,无法通过,,,,,
|
||||||
notes_干掉的血迹,干掉的血迹,,,,,
|
|
||||||
notes_有什么东西,有什么东西,,,,,
|
notes_有什么东西,有什么东西,,,,,
|
||||||
notes_无法触碰,无法触碰,,,,,
|
notes_无法触碰,无法触碰,,,,,
|
||||||
notes_挂画,挂画,,,,,
|
notes_挂画,挂画,,,,,
|
||||||
@ -116,26 +131,48 @@ c01_s08_书架游戏完成,这些书都被老鼠啃坏了,连木头架子都
|
|||||||
c01_s08_获得袁大头后,工钱还在老地方。,,,,,
|
c01_s08_获得袁大头后,工钱还在老地方。,,,,,
|
||||||
c02_海报_剪辫子侦探,剪辮懸樑上偵探奇聞,,,,,
|
c02_海报_剪辫子侦探,剪辮懸樑上偵探奇聞,,,,,
|
||||||
c02_海报_戏法班,朱连魁全班戏法——「各有幻女...演技新奇」,,,,,
|
c02_海报_戏法班,朱连魁全班戏法——「各有幻女...演技新奇」,,,,,
|
||||||
c02_芦昌路26,芦昌路26弄3号,就是这里了。,,,,,
|
c02_芦昌路26,芦昌路26弄3号,我父母真的住在这里吗...,,,,,
|
||||||
|
c02_s01_下黄包车,院长在信里提到的就是这里,,,,,
|
||||||
|
c02_s01_寻人启事,寻人启事...,,,,,
|
||||||
c02_冷飕飕的,冷飕飕的...,,,,,
|
c02_冷飕飕的,冷飕飕的...,,,,,
|
||||||
c02_太暗了,太暗了,找找能照明的东西吧。,,,,,
|
c02_太暗了,太暗了,找找能照明的东西吧。,,,,,
|
||||||
c02_陈旧的煤油灯,上了年头的煤油灯,似乎很久没用过了。,,,,,
|
c02_陈旧的煤油灯,上了年头的煤油灯,似乎很久没用过了。,,,,,
|
||||||
c02_使用煤油灯,呼,那股阴冷的感觉也消失了。,,,,,
|
c02_使用煤油灯,呼,那股阴冷的感觉也消失了。,,,,,
|
||||||
c02_卫生宣传画,几张卫生宣传画,,,,,
|
c02_卫生宣传画,几张卫生宣传画,,,,,
|
||||||
c02_老鼠洞,一个老鼠洞<br>在这种楼里挺常见的,,,,,
|
c02_老鼠洞,墙角的老鼠洞...还是不要凑近看了,,,,,
|
||||||
c02_十几年前的报纸,十几年前的报纸,,,,,
|
c02_十几年前的报纸,十几年前的报纸,,,,,
|
||||||
|
c02_s02_大头娃娃头套,看着唬人,这尺寸只是给孩子们戴着玩的,,,,,
|
||||||
|
c02_s02_八音盒,自制的八音盒,这么用心的小玩意,怎么会被人扔在这里呢?,,,,,
|
||||||
|
c02_s02_八音盒缺人偶,别出心裁的小机关,缺了点东西,暂时还不能用,,,,,
|
||||||
|
c02_s03_干掉的血迹,血迹看上去干了很久,血脚印有大有小,咦,还有个特别小的...,,,,,
|
||||||
c02_院子_算命摊位,算命的摊位?,,,,,
|
c02_院子_算命摊位,算命的摊位?,,,,,
|
||||||
c02_院子_要下雨,好像要下雨了?,,,,,
|
c02_院子_要下雨,好像要下雨了?,,,,,
|
||||||
|
c02_s03_掉鞋子,怎么天上掉了个小鞋子下来?,,,,,
|
||||||
|
c02_s03_铁门,通往后院的铁门,锁住了,,,,,
|
||||||
c02_保卫科花名册os,芦昌公寓居民登记簿,黄国栋记。,,,,,
|
c02_保卫科花名册os,芦昌公寓居民登记簿,黄国栋记。,,,,,
|
||||||
|
c02_保卫科祭台os,祭台是专门供奉这只大老鼠的?,,,,,
|
||||||
|
c02_小手出现摔倒,?!,,,,,
|
||||||
|
c02_小手其他交易,...还有什么东西能跟它交换呢?,,,,,
|
||||||
|
c02_保卫科老鼠精,鼠歌 <br><br>天地小如喉,<br>红轮自吞吐。<br>多少世间人,<br>都被红轮误。,,,,,
|
||||||
c02_一楼楼道被挡住,被挡住了,,,,,
|
c02_一楼楼道被挡住,被挡住了,,,,,
|
||||||
c02_描述垃圾通道,飘着一股血气,又酸又腥。,,,,,
|
c02_一楼戏台,盖着布的木头架子...用来做什么的呢,,,,,
|
||||||
|
c02_描述垃圾通道,桶是空的,飘着一股血气,又酸又腥。,,,,,
|
||||||
|
c02_一楼疯子互动后,这人有点不正常...最好离他远点。,,,,,
|
||||||
|
c02_一楼粘鼠板,这里原来放着什么?,,,,,
|
||||||
|
c02_获得小猫玩具,小猫玩具亮起来了,这光...竟有一丝暖意,,,,,
|
||||||
c02_敲门_肉掉落,楼道有东西掉下来了?,,,,,
|
c02_敲门_肉掉落,楼道有东西掉下来了?,,,,,
|
||||||
c02_敲门_老鼠叼肉,刚刚这里有块肉不见了?,,,,,
|
c02_敲门_老鼠叼肉,刚刚这里有块肉不见了?,,,,,
|
||||||
|
c02_锡箔换小鞋子,另一只小鞋子。,,,,,
|
||||||
|
c02_二楼楼梯杂物堆,堆满了杂物,看样子没办法从这里上去了。,,,,,
|
||||||
|
c02_二楼水盆,盆里的水很清澈,看上去像是刚盛的。,,,,,
|
||||||
|
c02_二楼老鼠洞,到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。,,,,,
|
||||||
|
c02_二楼血脚印,又是这种小小尖尖的血脚印...,,,,,
|
||||||
|
c02_离开红色演出,刚才的那两个人...是幻觉吗,,,,,
|
||||||
c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...,,,,,
|
c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...,,,,,
|
||||||
c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,,
|
c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,,
|
||||||
c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,,
|
c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,,
|
||||||
c02_火灾等待准备,还没准备好点火呢,,,,,
|
c02_火灾等待准备,还没准备好点火呢,,,,,
|
||||||
c02_霸凌救小蝉开始,啊!我得赶紧想办法救小蝉...,,,,,
|
c02_霸凌救小蝉开始,啊!我得想办法帮帮那个小女孩...,,,,,
|
||||||
c02_点火前阻止右移,没时间浪费了!想想办法救出小蝉...,,,,,
|
c02_点火前阻止右移,没时间浪费了!想想办法救出小蝉...,,,,,
|
||||||
g_偷听对话,偷听对话,,,,,
|
g_偷听对话,偷听对话,,,,,
|
||||||
g_疯子看井,疯子看井,,,,,
|
g_疯子看井,疯子看井,,,,,
|
||||||
|
|
@ -24,7 +24,8 @@
|
|||||||
已创建新存档 [ID:ui_new_archive]
|
已创建新存档 [ID:ui_new_archive]
|
||||||
自动保存成功 [ID:ui_auto_saved]
|
自动保存成功 [ID:ui_auto_saved]
|
||||||
|
|
||||||
按 E 与场景互动 [ID:ui_press_e]
|
按 E 可与场景互动 [ID:ui_intro_press_e]
|
||||||
|
按 E 可互动 [ID:ui_press_e]
|
||||||
按 Q 可退出 [ID:ui_press_q_to_exit]
|
按 Q 可退出 [ID:ui_press_q_to_exit]
|
||||||
按 E 使用道具 [ID:ui_use_prop]
|
按 E 使用道具 [ID:ui_use_prop]
|
||||||
右键点击可检阅道具 [ID:ui_right_click_prop]
|
右键点击可检阅道具 [ID:ui_right_click_prop]
|
||||||
@ -72,20 +73,33 @@
|
|||||||
火柴 [#texture=c02/火柴.png] [ID:prop_火柴]
|
火柴 [#texture=c02/火柴.png] [ID:prop_火柴]
|
||||||
火柴_说明 [#texture=c02/火柴.png] [ID:prop_火柴_说明]
|
火柴_说明 [#texture=c02/火柴.png] [ID:prop_火柴_说明]
|
||||||
小猫玩具的脑袋 [#texture=c02/新小猫头.png] [ID:prop_小猫玩具的脑袋]
|
小猫玩具的脑袋 [#texture=c02/新小猫头.png] [ID:prop_小猫玩具的脑袋]
|
||||||
|
[ID:prop_小猫玩具的脑袋_说明]
|
||||||
无头小猫玩具 [#texture=c02/新小猫身体.png] [#inspect=c02/新小猫身体_特写.png] [ID:prop_无头小猫玩具]
|
无头小猫玩具 [#texture=c02/新小猫身体.png] [#inspect=c02/新小猫身体_特写.png] [ID:prop_无头小猫玩具]
|
||||||
|
没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练 [ID:prop_无头小猫玩具_说明]
|
||||||
小猫玩具 [#texture=c02/新小猫全身.png] [ID:prop_小猫玩具完整]
|
小猫玩具 [#texture=c02/新小猫全身.png] [ID:prop_小猫玩具完整]
|
||||||
|
这玩具看久了还蛮可爱的[ID:prop_小猫玩具完整_说明]
|
||||||
撕下的照片(上) [#texture=c02/照片_上.png] [ID:prop_撕下的照片上]
|
撕下的照片(上) [#texture=c02/照片_上.png] [ID:prop_撕下的照片上]
|
||||||
|
女儿生辰纪念 于 民国元年 [ID:prop_撕下的照片上_说明]
|
||||||
老虎钳 [#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png] [ID:prop_老虎钳]
|
老虎钳 [#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png] [ID:prop_老虎钳]
|
||||||
... [ID:prop_老虎钳_说明]
|
「虎头牌」钳子,家家户户常备 [ID:prop_老虎钳_说明]
|
||||||
锡箔元宝 [#texture=c02/锡箔元宝.png] [ID:prop_锡箔元宝]
|
锡箔元宝 [#texture=c02/锡箔元宝.png] [ID:prop_锡箔元宝]
|
||||||
小鞋子1 [#texture=c02/小鞋子.png] [ID:prop_小鞋子1]
|
人们一般将其叠成元宝形状,用以供奉逝者、祭拜鬼神。[ID:prop_锡箔元宝_说明]
|
||||||
小鞋子2 [#texture=c02/小鞋子.png] [ID:prop_小鞋子2]
|
小鞋子(一) [#texture=c02/小鞋子1.png] [ID:prop_小鞋子1]
|
||||||
|
尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓[ID:prop_小鞋子1_说明]
|
||||||
|
小鞋子(二)[#texture=c02/小鞋子2.png] [ID:prop_小鞋子2]
|
||||||
|
尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓[ID:prop_小鞋子2_说明]
|
||||||
麻将 [#texture=c02/麻将.png] [ID:prop_麻将]
|
麻将 [#texture=c02/麻将.png] [ID:prop_麻将]
|
||||||
|
这块麻将上雕着一朵圆形的花[ID:prop_麻将_说明]
|
||||||
#新鲜的肉 [#texture=c02/新鲜的肉.png] [ID:prop_新鲜的肉]
|
#新鲜的肉 [#texture=c02/新鲜的肉.png] [ID:prop_新鲜的肉]
|
||||||
奇怪的肉 [#texture=c02/奇怪的肉.png] [ID:prop_奇怪的肉]
|
奇怪的肉 [#texture=c02/奇怪的肉.png] [ID:prop_奇怪的肉]
|
||||||
|
[ID:prop_奇怪的肉_说明]
|
||||||
弹珠 [#texture=c02/弹珠.png] [ID:prop_弹珠]
|
弹珠 [#texture=c02/弹珠.png] [ID:prop_弹珠]
|
||||||
|
一种玻璃小球,孩子们常用它来进行弹子游戏[ID:prop_弹珠_说明]
|
||||||
木头人偶 [#texture=c02/小蝉人偶.png] [ID:prop_木头人偶]
|
木头人偶 [#texture=c02/小蝉人偶.png] [ID:prop_木头人偶]
|
||||||
|
略显粗糙的木头玩偶,能依稀辨认出是个小女孩的模样 [ID:prop_木头人偶_说明]
|
||||||
|
小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花 [ID:prop_小蝉人偶_说明]
|
||||||
粘鼠板 [#texture=c02/粘鼠板特写.png] [ID:prop_粘鼠板]
|
粘鼠板 [#texture=c02/粘鼠板特写.png] [ID:prop_粘鼠板]
|
||||||
|
自制的捕鼠工具,纸上面有黏黏的浆糊[ID:prop_粘鼠板_说明]
|
||||||
|
|
||||||
# 未使用
|
# 未使用
|
||||||
一把香 [#texture=c02/一把香.png] [ID:prop_一把香]
|
一把香 [#texture=c02/一把香.png] [ID:prop_一把香]
|
||||||
@ -125,7 +139,6 @@
|
|||||||
锁住了 [ID:notes_锁住了]
|
锁住了 [ID:notes_锁住了]
|
||||||
打不开 [ID:notes_打不开]
|
打不开 [ID:notes_打不开]
|
||||||
无法通过 [ID:notes_无法通过]
|
无法通过 [ID:notes_无法通过]
|
||||||
干掉的血迹 [ID:notes_干掉的血迹]
|
|
||||||
有什么东西 [ID:notes_有什么东西]
|
有什么东西 [ID:notes_有什么东西]
|
||||||
无法触碰 [ID:notes_无法触碰]
|
无法触碰 [ID:notes_无法触碰]
|
||||||
挂画 [ID:notes_挂画]
|
挂画 [ID:notes_挂画]
|
||||||
@ -155,33 +168,57 @@
|
|||||||
剪辮懸樑上偵探奇聞 [ID:c02_海报_剪辫子侦探]
|
剪辮懸樑上偵探奇聞 [ID:c02_海报_剪辫子侦探]
|
||||||
朱连魁全班戏法——「各有幻女...演技新奇」 [ID:c02_海报_戏法班]
|
朱连魁全班戏法——「各有幻女...演技新奇」 [ID:c02_海报_戏法班]
|
||||||
# c02-s01 街道
|
# c02-s01 街道
|
||||||
芦昌路26弄3号,就是这里了。 [ID:c02_芦昌路26]
|
芦昌路26弄3号,我父母真的住在这里吗... [ID:c02_芦昌路26]
|
||||||
|
院长在信里提到的就是这里 [ID:c02_s01_下黄包车]
|
||||||
|
寻人启事... [ID:c02_s01_寻人启事]
|
||||||
# c02-s02 走道
|
# c02-s02 走道
|
||||||
冷飕飕的... [ID:c02_冷飕飕的]
|
冷飕飕的... [ID:c02_冷飕飕的]
|
||||||
太暗了,找找能照明的东西吧。 [ID:c02_太暗了]
|
太暗了,找找能照明的东西吧。 [ID:c02_太暗了]
|
||||||
上了年头的煤油灯,似乎很久没用过了。 [ID:c02_陈旧的煤油灯]
|
上了年头的煤油灯,似乎很久没用过了。 [ID:c02_陈旧的煤油灯]
|
||||||
呼,那股阴冷的感觉也消失了。 [ID:c02_使用煤油灯]
|
呼,那股阴冷的感觉也消失了。 [ID:c02_使用煤油灯]
|
||||||
几张卫生宣传画 [ID:c02_卫生宣传画]
|
几张卫生宣传画 [ID:c02_卫生宣传画]
|
||||||
一个老鼠洞<br>在这种楼里挺常见的 [ID:c02_老鼠洞]
|
墙角的老鼠洞...还是不要凑近看了 [ID:c02_老鼠洞]
|
||||||
十几年前的报纸 [ID:c02_十几年前的报纸]
|
十几年前的报纸 [ID:c02_十几年前的报纸]
|
||||||
|
看着唬人,这尺寸只是给孩子们戴着玩的 [ID:c02_s02_大头娃娃头套]
|
||||||
|
自制的八音盒,这么用心的小玩意,怎么会被人扔在这里呢? [ID:c02_s02_八音盒]
|
||||||
|
别出心裁的小机关,缺了点东西,暂时还不能用 [ID:c02_s02_八音盒缺人偶]
|
||||||
# c02 院子
|
# c02 院子
|
||||||
|
血迹看上去干了很久,血脚印有大有小,咦,还有个特别小的... [ID:c02_s03_干掉的血迹]
|
||||||
算命的摊位? [ID:c02_院子_算命摊位]
|
算命的摊位? [ID:c02_院子_算命摊位]
|
||||||
好像要下雨了? [ID:c02_院子_要下雨]
|
好像要下雨了? [ID:c02_院子_要下雨]
|
||||||
|
怎么天上掉了个小鞋子下来? [ID:c02_s03_掉鞋子]
|
||||||
|
通往后院的铁门,锁住了 [ID:c02_s03_铁门]
|
||||||
# c02 保卫科
|
# c02 保卫科
|
||||||
芦昌公寓居民登记簿,黄国栋记。 [ID:c02_保卫科花名册os]
|
芦昌公寓居民登记簿,黄国栋记。 [ID:c02_保卫科花名册os]
|
||||||
|
祭台是专门供奉这只大老鼠的? [ID:c02_保卫科祭台os]
|
||||||
|
?! [ID:c02_小手出现摔倒]
|
||||||
|
...还有什么东西能跟它交换呢? [ID:c02_小手其他交易]
|
||||||
|
鼠歌 <br><br>天地小如喉,<br>红轮自吞吐。<br>多少世间人,<br>都被红轮误。 [ID:c02_保卫科老鼠精]
|
||||||
# c02 内侧楼道
|
# c02 内侧楼道
|
||||||
被挡住了 [ID:c02_一楼楼道被挡住]
|
被挡住了 [ID:c02_一楼楼道被挡住]
|
||||||
飘着一股血气,又酸又腥。 [ID:c02_描述垃圾通道]
|
盖着布的木头架子...用来做什么的呢 [ID:c02_一楼戏台]
|
||||||
|
桶是空的,飘着一股血气,又酸又腥。 [ID:c02_描述垃圾通道]
|
||||||
|
这人有点不正常...最好离他远点。 [ID:c02_一楼疯子互动后]
|
||||||
|
这里原来放着什么? [ID:c02_一楼粘鼠板]
|
||||||
|
# c02 小猫玩具
|
||||||
|
小猫玩具亮起来了,这光...竟有一丝暖意 [ID:c02_获得小猫玩具]
|
||||||
# c02 敲门_老鼠叼肉
|
# c02 敲门_老鼠叼肉
|
||||||
楼道有东西掉下来了? [ID:c02_敲门_肉掉落]
|
楼道有东西掉下来了? [ID:c02_敲门_肉掉落]
|
||||||
刚刚这里有块肉不见了? [ID:c02_敲门_老鼠叼肉]
|
刚刚这里有块肉不见了? [ID:c02_敲门_老鼠叼肉]
|
||||||
# 瞎子卧室
|
# c02 二楼
|
||||||
|
另一只小鞋子。 [ID:c02_锡箔换小鞋子]
|
||||||
|
堆满了杂物,看样子没办法从这里上去了。 [ID:c02_二楼楼梯杂物堆]
|
||||||
|
盆里的水很清澈,看上去像是刚盛的。 [ID:c02_二楼水盆]
|
||||||
|
到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。 [ID:c02_二楼老鼠洞]
|
||||||
|
又是这种小小尖尖的血脚印... [ID:c02_二楼血脚印]
|
||||||
|
# c02 瞎子卧室
|
||||||
|
刚才的那两个人...是幻觉吗 [ID:c02_离开红色演出]
|
||||||
「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图]
|
「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图]
|
||||||
这画上的脚印和刚刚看到的一样。 [ID:c02_瞎子卧室_血脚印]
|
这画上的脚印和刚刚看到的一样。 [ID:c02_瞎子卧室_血脚印]
|
||||||
院长房间里也有一个类似的十字架。[ID:c02_瞎子卧室_十字架]
|
院长房间里也有一个类似的十字架。[ID:c02_瞎子卧室_十字架]
|
||||||
# c02 火灾
|
# c02 火灾
|
||||||
还没准备好点火呢 [ID:c02_火灾等待准备]
|
还没准备好点火呢 [ID:c02_火灾等待准备]
|
||||||
啊!我得赶紧想办法救小蝉... [ID:c02_霸凌救小蝉开始]
|
啊!我得想办法帮帮那个小女孩... [ID:c02_霸凌救小蝉开始]
|
||||||
没时间浪费了!想想办法救出小蝉... [ID:c02_点火前阻止右移]
|
没时间浪费了!想想办法救出小蝉... [ID:c02_点火前阻止右移]
|
||||||
=> END
|
=> END
|
||||||
|
|
||||||
|
@ -1,8 +1,15 @@
|
|||||||
|
@tool
|
||||||
extends Node
|
extends Node
|
||||||
|
var vibe_group_collection := preload("uid://bfhwn1v0c2io7") as VibeGroupCollection
|
||||||
|
|
||||||
|
@export_tool_button("重载vibe groups") var reload_groups = _reload_groups
|
||||||
|
|
||||||
|
static var VIBE_GROUPS := [] as Array[String]
|
||||||
|
|
||||||
|
|
||||||
# random players
|
# random players
|
||||||
var sfx_players = [] as Array[AudioStreamPlayer]
|
var sfx_players = [] as Array[AudioStreamPlayer]
|
||||||
var idx = 0
|
var sfx_players_idx = 0
|
||||||
# bgm player
|
# bgm player
|
||||||
var bgm_dict = {}
|
var bgm_dict = {}
|
||||||
# vibe player
|
# vibe player
|
||||||
@ -14,25 +21,24 @@ func _ready() -> void:
|
|||||||
sfx_players.append(sfx_player)
|
sfx_players.append(sfx_player)
|
||||||
sfx_player.bus = "game_sfx"
|
sfx_player.bus = "game_sfx"
|
||||||
add_child(sfx_player)
|
add_child(sfx_player)
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
_reload_groups()
|
||||||
|
|
||||||
# 初始化基础播放器
|
|
||||||
_base_player = AudioStreamPlayer.new()
|
|
||||||
_base_player.name = "BaseAmbiencePlayer"
|
|
||||||
add_child(_base_player)
|
|
||||||
|
|
||||||
# 初始化点缀音播放器池
|
func _reload_groups():
|
||||||
for i in range(_EMBELLISHMENT_PLAYER_POOL_SIZE):
|
VIBE_GROUPS.clear()
|
||||||
var player = AudioStreamPlayer.new()
|
for group in vibe_group_collection.groups:
|
||||||
player.name = "EmbellishmentPlayer_" + str(i)
|
if group and group.group_name:
|
||||||
add_child(player)
|
VIBE_GROUPS.append(group.group_name)
|
||||||
_embellishment_players.append(player)
|
else:
|
||||||
|
printerr("VibeGroup has no name: ", group)
|
||||||
|
|
||||||
|
|
||||||
func play_sfx(sfx: AudioStream, db := 1.0) -> void:
|
func play_sfx(sfx: AudioStream, db := 1.0) -> void:
|
||||||
sfx_players[idx].stream = sfx
|
sfx_players[sfx_players_idx].stream = sfx
|
||||||
sfx_players[idx].volume_db = db
|
sfx_players[sfx_players_idx].volume_db = db
|
||||||
sfx_players[idx].play()
|
sfx_players[sfx_players_idx].play()
|
||||||
idx = wrapi(idx + 1, 0, 5)
|
sfx_players_idx = wrapi(sfx_players_idx + 1, 0, 5)
|
||||||
|
|
||||||
|
|
||||||
# 挂载并循环播放 bgm 音效
|
# 挂载并循环播放 bgm 音效
|
||||||
@ -40,7 +46,7 @@ func loop_bgm_music(music_name: StringName, stream: AudioStream, db := 0.0, loop
|
|||||||
var audio_player = bgm_dict.get(music_name) as AudioStreamPlayer
|
var audio_player = bgm_dict.get(music_name) as AudioStreamPlayer
|
||||||
if audio_player:
|
if audio_player:
|
||||||
if audio_player.playing:
|
if audio_player.playing:
|
||||||
print("bgm music already playing: ", music_name)
|
print("bgm music is already playing: ", music_name)
|
||||||
return
|
return
|
||||||
bgm_dict.erase(music_name)
|
bgm_dict.erase(music_name)
|
||||||
audio_player.stop()
|
audio_player.stop()
|
||||||
@ -50,7 +56,7 @@ func loop_bgm_music(music_name: StringName, stream: AudioStream, db := 0.0, loop
|
|||||||
bgm_dict[music_name] = audio_player
|
bgm_dict[music_name] = audio_player
|
||||||
audio_player.stream = stream
|
audio_player.stream = stream
|
||||||
audio_player.volume_db = db
|
audio_player.volume_db = db
|
||||||
audio_player.bus = "game_music"
|
audio_player.bus = "game_sfx"
|
||||||
audio_player.play()
|
audio_player.play()
|
||||||
if loop and stream.get_length() > 0:
|
if loop and stream.get_length() > 0:
|
||||||
audio_player.finished.connect(audio_player.play)
|
audio_player.finished.connect(audio_player.play)
|
||||||
@ -75,92 +81,37 @@ func stop_bgm_music(music_name: StringName, ease_duration := 3.0) -> void:
|
|||||||
## 负责实际创建 AudioStreamPlayer 节点并播放、管理 VibeGroup。
|
## 负责实际创建 AudioStreamPlayer 节点并播放、管理 VibeGroup。
|
||||||
|
|
||||||
# 当前正在播放的音轨组资源
|
# 当前正在播放的音轨组资源
|
||||||
var current_vibe_group: VibeGroup = null
|
var vibe_player_dict:Dictionary[StringName,VibeGroupPlayer] = {}
|
||||||
|
|
||||||
# 用于播放基础环境音的播放器
|
func _find_group_by_name(group_name: StringName) -> VibeGroup:
|
||||||
var _base_player: AudioStreamPlayer
|
for group in vibe_group_collection.groups:
|
||||||
# 用于播放点缀音的播放器池。使用池可以处理多个点缀音同时播放的情况。
|
if group.group_name == group_name:
|
||||||
var _embellishment_players: Array[AudioStreamPlayer] = []
|
return group
|
||||||
# 用于管理点缀音播放间隔的计时器
|
return null
|
||||||
var _embellishment_timers: Array[Timer] = []
|
|
||||||
|
|
||||||
const _EMBELLISHMENT_PLAYER_POOL_SIZE = 8 # 点缀音播放器池的大小,可根据需求调整
|
|
||||||
|
|
||||||
|
|
||||||
## 核心方法:播放一个指定的 VibeGroup
|
## 核心方法:播放一个指定的 VibeGroup
|
||||||
func play_group(group: VibeGroup):
|
func play_group(group_name: StringName):
|
||||||
|
var group = _find_group_by_name(group_name)
|
||||||
if not is_instance_valid(group):
|
if not is_instance_valid(group):
|
||||||
printerr("VibeManager: VibeGroup is not valid.")
|
printerr("VibeManager: VibeGroup is not valid. group_name:", group_name)
|
||||||
stop_all()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# 如果请求播放的是当前已在播放的组,则忽略
|
# 如果请求播放的是当前已在播放的组,则忽略
|
||||||
if group == current_vibe_group:
|
if vibe_player_dict.has(group_name):
|
||||||
return
|
return
|
||||||
|
var vibe_player = VibeGroupPlayer.new(group)
|
||||||
stop_all()
|
vibe_player.name = group_name
|
||||||
current_vibe_group = group
|
add_child(vibe_player)
|
||||||
|
vibe_player_dict[group_name] = vibe_player
|
||||||
# 播放基础环境音
|
vibe_player.play()
|
||||||
if is_instance_valid(current_vibe_group.base_sound):
|
|
||||||
_base_player.stream = current_vibe_group.base_sound
|
|
||||||
# TODO 设置循环
|
|
||||||
if _base_player.stream is AudioStreamOggVorbis:
|
|
||||||
(_base_player.stream as AudioStreamOggVorbis).loop = true
|
|
||||||
# 注意:WAV 默认导入设置中需要勾选 loop
|
|
||||||
_base_player.volume_db = current_vibe_group.group_db + current_vibe_group.base_sound_db
|
|
||||||
_base_player.play()
|
|
||||||
|
|
||||||
# 设置并启动所有点缀音的计时器
|
|
||||||
for embellishment in current_vibe_group.embellishments:
|
|
||||||
if not is_instance_valid(embellishment) or not is_instance_valid(embellishment.sound):
|
|
||||||
continue
|
|
||||||
|
|
||||||
var timer = Timer.new()
|
|
||||||
timer.one_shot = true
|
|
||||||
# 使用 lambda 函数或 bind 将点缀音数据传递给超时处理函数
|
|
||||||
timer.timeout.connect(_on_embellishment_timer_timeout.bind(embellishment, timer))
|
|
||||||
add_child(timer)
|
|
||||||
_embellishment_timers.append(timer)
|
|
||||||
|
|
||||||
# 首次启动计时器
|
|
||||||
var random_wait_time = randf_range(embellishment.min_interval, embellishment.max_interval)
|
|
||||||
timer.start(random_wait_time)
|
|
||||||
|
|
||||||
|
|
||||||
## 停止所有当前播放的音效和计时器
|
func stop_group(group_name: StringName):
|
||||||
func stop_all():
|
if is_queued_for_deletion():
|
||||||
_base_player.stop()
|
return
|
||||||
|
if not vibe_player_dict.has(group_name):
|
||||||
for player in _embellishment_players:
|
return
|
||||||
player.stop()
|
var vibe_player = vibe_player_dict[group_name]
|
||||||
|
vibe_player_dict.erase(group_name)
|
||||||
for timer in _embellishment_timers:
|
remove_child(vibe_player)
|
||||||
timer.queue_free()
|
vibe_player.stop_and_free()
|
||||||
_embellishment_timers.clear()
|
|
||||||
|
|
||||||
current_vibe_group = null
|
|
||||||
|
|
||||||
|
|
||||||
# 当某个点缀音的计时器到期时调用
|
|
||||||
func _on_embellishment_timer_timeout(embellishment: Embellishment, timer: Timer):
|
|
||||||
# 寻找一个空闲的点缀音播放器
|
|
||||||
var player = _get_available_embellishment_player()
|
|
||||||
if is_instance_valid(player):
|
|
||||||
player.stream = embellishment.sound
|
|
||||||
player.volume_db = current_vibe_group.group_db + embellishment.db
|
|
||||||
player.play()
|
|
||||||
|
|
||||||
# 重新启动计时器,实现循环随机播放
|
|
||||||
var random_wait_time = randf_range(embellishment.min_interval, embellishment.max_interval)
|
|
||||||
timer.start(random_wait_time)
|
|
||||||
|
|
||||||
|
|
||||||
# 从池中获取一个当前未在播放的播放器
|
|
||||||
func _get_available_embellishment_player() -> AudioStreamPlayer:
|
|
||||||
for player in _embellishment_players:
|
|
||||||
if not player.playing:
|
|
||||||
return player
|
|
||||||
# 如果所有播放器都在忙,可以考虑返回null或者动态创建新的播放器(不推荐,可能导致节点泄漏)
|
|
||||||
printerr("VibeManager: No available embellishment player in the pool.")
|
|
||||||
return null
|
|
||||||
|
6
manager/audio_manager/audio_manager.tscn
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://br07tacnfq216"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dwae8qisko2qp" path="res://manager/audio_manager/audio_manager.gd" id="1_8y63p"]
|
||||||
|
|
||||||
|
[node name="AudioManager" type="Node"]
|
||||||
|
script = ExtResource("1_8y63p")
|
@ -14,11 +14,15 @@ extends Resource
|
|||||||
# 0 表示不变, 负数表示减小音量, 正数表示增大音量。
|
# 0 表示不变, 负数表示减小音量, 正数表示增大音量。
|
||||||
@export_range(-60, 6, 0.1, "dB") var db: float = 0.0
|
@export_range(-60, 6, 0.1, "dB") var db: float = 0.0
|
||||||
|
|
||||||
|
# 如果 loop,则 min_interval 与 max_interval 无效
|
||||||
|
@export var loop := false
|
||||||
|
|
||||||
# 播放此点缀音的最小随机间隔时间(秒)。
|
# 播放此点缀音的最小随机间隔时间(秒)。
|
||||||
@export_range(0.1, 300.0, 0.1, "s") var min_interval: float = 5.0
|
@export_range(0.0, 300.0, 0.1, "s") var min_interval: float = 5.0
|
||||||
|
|
||||||
# 播放此点缀音的最大随机间隔时间(秒)。
|
# 播放此点缀音的最大随机间隔时间(秒)。
|
||||||
@export_range(0.1, 300.0, 0.1, "s") var max_interval: float = 10.0
|
@export_range(0.0, 300.0, 0.1, "s") var max_interval: float = 10.0
|
||||||
|
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
# 确保 min <= max
|
# 确保 min <= max
|
||||||
|
@ -6,12 +6,11 @@ extends Resource
|
|||||||
## 定义一个“音轨组”的数据结构。
|
## 定义一个“音轨组”的数据结构。
|
||||||
## 这是一个核心资源,包含了完整的环境音效配置方案。
|
## 这是一个核心资源,包含了完整的环境音效配置方案。
|
||||||
## 你可以创建如 "forest_day.tres", "dungeon_terror.tres" 等资源文件。
|
## 你可以创建如 "forest_day.tres", "dungeon_terror.tres" 等资源文件。
|
||||||
@export var group_name := ""
|
@export var group_name := &""
|
||||||
|
|
||||||
# 该音轨组的全局音量调整(dB)。会影响到其下所有的声音。
|
# 该音轨组的全局音量调整(dB)。会影响到其下所有的声音。
|
||||||
@export_range(-60, 6, 0.1, "dB") var group_db: float = 0.0
|
@export_range(-60, 6, 0.1, "dB") var group_db: float = 0.0
|
||||||
|
|
||||||
|
|
||||||
@export_group("Base Ambience", "base_")
|
@export_group("Base Ambience", "base_")
|
||||||
# 基础环境音(白噪音),要求是无缝循环的音频文件。
|
# 基础环境音(白噪音),要求是无缝循环的音频文件。
|
||||||
@export var base_sound: AudioStream
|
@export var base_sound: AudioStream
|
||||||
@ -19,8 +18,22 @@ extends Resource
|
|||||||
# 基础环境音的独立音量调整(dB)。
|
# 基础环境音的独立音量调整(dB)。
|
||||||
@export_range(-60, 6, 0.1, "dB") var base_sound_db: float = 0.0
|
@export_range(-60, 6, 0.1, "dB") var base_sound_db: float = 0.0
|
||||||
|
|
||||||
|
|
||||||
@export_group("Embellishments", "embellishment_")
|
|
||||||
# 点缀音效列表。可以从库中拖入预设好的 Embellishment.tres 资源。
|
# 点缀音效列表。可以从库中拖入预设好的 Embellishment.tres 资源。
|
||||||
# 你也可以直接在这里新建 Embellishment 资源,实现“特制wav”的需求。
|
# 你也可以直接在这里新建 Embellishment 资源,实现“特制wav”的需求。
|
||||||
@export var embellishments: Array[Embellishment]
|
@export var embellishments: Array[Embellishment]
|
||||||
|
|
||||||
|
|
||||||
|
# func _init() -> void:
|
||||||
|
# if not Engine.is_editor_hint():
|
||||||
|
# return
|
||||||
|
# var root = EditorInterface.get_edited_scene_root()
|
||||||
|
# if not root:
|
||||||
|
# return
|
||||||
|
# var ground = root.get_node_or_null("Ground") as Ground2D
|
||||||
|
# if not ground:
|
||||||
|
# return
|
||||||
|
# var scene_name = ground.scene_name
|
||||||
|
# # 检查 group_name 是否以 scene_name 开头
|
||||||
|
# if not group_name.begins_with(scene_name):
|
||||||
|
# group_name = scene_name + "_" + group_name
|
||||||
|
# print("VibeGroup: Auto-prefixed group_name to %s" % group_name)
|
||||||
|
5
manager/audio_manager/vibe_group_collection.gd
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
@tool
|
||||||
|
class_name VibeGroupCollection
|
||||||
|
extends Resource
|
||||||
|
|
||||||
|
@export var groups: Array[VibeGroup] = []
|
1
manager/audio_manager/vibe_group_collection.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://bo8gxwe8hfs01
|
99
manager/audio_manager/vibe_group_collection.tres
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
[gd_resource type="Resource" script_class="VibeGroupCollection" load_steps=21 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"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://c2xr0rfmo60gn" path="res://asset/audio/sfx/环境音/白噪音/白噪声书店外.wav" id="2_uwtc1"]
|
||||||
|
[ext_resource type="Script" uid="uid://eydkufjbf7n6" path="res://manager/audio_manager/embellishment.gd" id="3_scrw7"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://b2mudqvq1dmng" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里1.wav" id="4_f75a1"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://o57tyriodr0c" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里2.wav" id="5_pgee5"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dvc2emnfcmabx" path="res://asset/audio/sfx/环境音/白噪音/白噪声楼道1.wav" id="6_u0i77"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://6oc0cgc3mbqb" path="res://asset/audio/sfx/环境音/白噪音/白噪声楼道2.wav" id="7_kxpku"]
|
||||||
|
[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"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bjndi"]
|
||||||
|
script = ExtResource("1_0bbao")
|
||||||
|
group_name = &"c01_书店外"
|
||||||
|
group_db = 0.0
|
||||||
|
base_sound = ExtResource("2_uwtc1")
|
||||||
|
base_sound_db = 0.0
|
||||||
|
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||||
|
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_chrc1"]
|
||||||
|
script = ExtResource("1_0bbao")
|
||||||
|
group_name = &"c02_房间里1"
|
||||||
|
group_db = 0.0
|
||||||
|
base_sound = ExtResource("4_f75a1")
|
||||||
|
base_sound_db = 0.0
|
||||||
|
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||||
|
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_7c7wx"]
|
||||||
|
script = ExtResource("1_0bbao")
|
||||||
|
group_name = &"c02_房间里2"
|
||||||
|
group_db = 0.0
|
||||||
|
base_sound = ExtResource("5_pgee5")
|
||||||
|
base_sound_db = 0.0
|
||||||
|
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||||
|
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_an5bn"]
|
||||||
|
script = ExtResource("1_0bbao")
|
||||||
|
group_name = &"c02_楼道1"
|
||||||
|
group_db = 0.0
|
||||||
|
base_sound = ExtResource("6_u0i77")
|
||||||
|
base_sound_db = 0.0
|
||||||
|
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||||
|
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_egnaw"]
|
||||||
|
script = ExtResource("1_0bbao")
|
||||||
|
group_name = &"c02_楼道2"
|
||||||
|
group_db = 0.0
|
||||||
|
base_sound = ExtResource("7_kxpku")
|
||||||
|
base_sound_db = 0.0
|
||||||
|
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||||
|
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_e3r3f"]
|
||||||
|
script = ExtResource("1_0bbao")
|
||||||
|
group_name = &"c02_诡异室外"
|
||||||
|
group_db = 0.0
|
||||||
|
base_sound = ExtResource("8_ehphf")
|
||||||
|
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 = 0.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_火灾"
|
||||||
|
group_db = 0.0
|
||||||
|
base_sound = ExtResource("10_bxcxa")
|
||||||
|
base_sound_db = 0.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")])
|
||||||
|
metadata/_custom_type_script = "uid://bo8gxwe8hfs01"
|
89
manager/audio_manager/vibe_group_player.gd
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
@tool
|
||||||
|
class_name VibeGroupPlayer
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
var vibe_group: VibeGroup
|
||||||
|
|
||||||
|
var _base_player: AudioStreamPlayer
|
||||||
|
var _embellishment_players = [] as Array[AudioStreamPlayer]
|
||||||
|
var _embellishment_timers = [] as Array[Timer]
|
||||||
|
|
||||||
|
|
||||||
|
func _init(group: VibeGroup):
|
||||||
|
vibe_group = group
|
||||||
|
# 初始化基础播放器
|
||||||
|
_base_player = AudioStreamPlayer.new()
|
||||||
|
_base_player.name = "BasePlayer"
|
||||||
|
_base_player.bus = "game_sfx"
|
||||||
|
_base_player.stream = group.base_sound
|
||||||
|
_base_player.volume_db = group.group_db + group.base_sound_db
|
||||||
|
# 循环播放
|
||||||
|
if vibe_group.base_sound.get_length() > 0:
|
||||||
|
_base_player.finished.connect(_base_player.play)
|
||||||
|
add_child(_base_player)
|
||||||
|
_embellishment_players.resize(group.embellishments.size())
|
||||||
|
_embellishment_timers.resize(group.embellishments.size())
|
||||||
|
# 初始化点缀音播放器池
|
||||||
|
for i in range(group.embellishments.size()):
|
||||||
|
if group.embellishments[i] == null:
|
||||||
|
continue
|
||||||
|
var player = AudioStreamPlayer.new()
|
||||||
|
player.name = "EPlayer" + str(i)
|
||||||
|
player.bus = "game_sfx"
|
||||||
|
player.stream = group.embellishments[i].sound
|
||||||
|
add_child(player)
|
||||||
|
_embellishment_players.append(player)
|
||||||
|
var timer = Timer.new()
|
||||||
|
timer.one_shot = true
|
||||||
|
timer.name = "ETimer" + str(i)
|
||||||
|
timer.autostart = false
|
||||||
|
add_child(timer)
|
||||||
|
_embellishment_timers.append(timer)
|
||||||
|
timer.timeout.connect(_on_embellishment_timer_timeout.bind(i))
|
||||||
|
|
||||||
|
|
||||||
|
func _on_embellishment_timer_timeout(id: int):
|
||||||
|
var embellishment = vibe_group.embellishments[id] as Embellishment
|
||||||
|
if not embellishment:
|
||||||
|
return
|
||||||
|
var player = _embellishment_players[id] as AudioStreamPlayer
|
||||||
|
var timer = _embellishment_timers[id] as Timer
|
||||||
|
# 增加随机性
|
||||||
|
timer.wait_time = randf_range(embellishment.min_interval, embellishment.max_interval)
|
||||||
|
timer.start()
|
||||||
|
player.volume_db = (vibe_group.group_db + embellishment.db) * randf_range(0.8, 1.2)
|
||||||
|
player.pitch_scale = randf_range(0.8, 1.2)
|
||||||
|
player.play()
|
||||||
|
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
func play():
|
||||||
|
_base_player.play()
|
||||||
|
# 设置并启动所有点缀音的计时器
|
||||||
|
for i in range(vibe_group.embellishments.size()):
|
||||||
|
var embellishment = vibe_group.embellishments[i]
|
||||||
|
if not is_instance_valid(embellishment) or not is_instance_valid(embellishment.sound):
|
||||||
|
continue
|
||||||
|
var timer = _embellishment_timers[i]
|
||||||
|
# 如果 loop,则 min_interval 与 max_interval 无效
|
||||||
|
if embellishment.loop:
|
||||||
|
var player = _embellishment_players[i]
|
||||||
|
player.volume_db = vibe_group.group_db + embellishment.db
|
||||||
|
if player.stream:
|
||||||
|
player.play()
|
||||||
|
player.finished.connect(player.play)
|
||||||
|
else:
|
||||||
|
# 首次启动计时器
|
||||||
|
var random_wait_time = randf_range(
|
||||||
|
embellishment.min_interval, embellishment.max_interval
|
||||||
|
)
|
||||||
|
timer.start(random_wait_time)
|
||||||
|
|
||||||
|
|
||||||
|
func stop_and_free():
|
||||||
|
if not is_queued_for_deletion():
|
||||||
|
queue_free()
|
1
manager/audio_manager/vibe_group_player.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://bswwg088lnvub
|
@ -2,52 +2,89 @@
|
|||||||
class_name VibeSfx
|
class_name VibeSfx
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
|
@export_tool_button("播放") var _play = _debug_play.bind(true)
|
||||||
|
@export_tool_button("停止") var _stop = _debug_play.bind(false)
|
||||||
|
|
||||||
## VibeSfx.gd
|
## VibeSfx.gd
|
||||||
## 场景中的环境音效控制器节点(“遥控器”)。
|
## 场景中的环境音效控制器节点(“遥控器”)。
|
||||||
## 你可以将此节点放置在任何场景中,用于配置和触发不同的 VibeGroup。
|
## 你可以将此节点放置在任何场景中,用于配置和触发不同的 VibeGroup。
|
||||||
## 它通过调用全局的 VibeManager 来实现功能。
|
## 它通过调用全局的 VibeManager 来实现功能。
|
||||||
|
|
||||||
# VibeGroup 库。使用字典可以方便地通过名称(如 "default", "battle")来引用不同的音轨组。
|
var autoplay_group: StringName
|
||||||
# 你可以在 Inspector 中配置这个字典,将名称映射到 VibeGroup.tres 资源文件。
|
|
||||||
@export var vibe_groups: Dictionary[String, VibeGroup] = {"default": null}
|
|
||||||
|
|
||||||
# 当此节点进入场景树时,是否自动播放指定的 VibeGroup。
|
|
||||||
@export var autoplay: bool = true
|
|
||||||
|
|
||||||
const autoplay_group_name := &"default"
|
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
# 仅在游戏运行时执行
|
# 仅在游戏运行时执行
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
|
if autoplay_group:
|
||||||
|
switch_to(autoplay_group)
|
||||||
|
|
||||||
if autoplay:
|
|
||||||
if vibe_groups.has(autoplay_group_name):
|
# var debug_audio_manager: AudioManager
|
||||||
switch_to(autoplay_group_name)
|
|
||||||
|
|
||||||
|
func _debug_play(play: bool):
|
||||||
|
# if not debug_audio_manager:
|
||||||
|
# debug_audio_manager = AudioManager.new()
|
||||||
|
# add_child(debug_audio_manager)
|
||||||
|
# if play:
|
||||||
|
# debug_audio_manager.play_group(autoplay_group)
|
||||||
|
# else:
|
||||||
|
# debug_audio_manager.stop_group(autoplay_group)
|
||||||
|
if play:
|
||||||
|
AudioManager.play_group(autoplay_group)
|
||||||
else:
|
else:
|
||||||
printerr(
|
AudioManager.stop_group(autoplay_group)
|
||||||
(
|
|
||||||
"VibeSfx: Autoplay group '%s' not found in vibe_groups dictionary."
|
|
||||||
% autoplay_group_name
|
var current_group: StringName
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
## 公共方法:切换到指定的 VibeGroup。
|
## 公共方法:切换到指定的 VibeGroup。
|
||||||
## 可以在其他脚本(如过场动画控制器、区域触发器)中调用此方法。
|
## 可以在其他脚本(如过场动画控制器、区域触发器)中调用此方法。
|
||||||
## example: $VibeSfx.switch_to("event_1_vibe")
|
## example: $VibeSfx.switch_to("event_1_vibe")
|
||||||
func switch_to(group_name: StringName):
|
func switch_to(group_name: StringName):
|
||||||
if vibe_groups.has(group_name):
|
if current_group:
|
||||||
var group_resource: VibeGroup = vibe_groups[group_name]
|
AudioManager.stop_group(current_group)
|
||||||
if is_instance_valid(group_resource):
|
current_group = group_name
|
||||||
AudioManager.play_group(group_resource)
|
AudioManager.play_group(group_name)
|
||||||
else:
|
|
||||||
printerr("VibeSfx: Resource for group '%s' is null or invalid." % group_name)
|
|
||||||
else:
|
|
||||||
printerr("VibeSfx: Group name '%s' not found." % group_name)
|
|
||||||
|
|
||||||
|
|
||||||
## 公共方法:停止所有由 VibeManager 控制的环境音。
|
|
||||||
func stop():
|
func stop():
|
||||||
AudioManager.stop_all()
|
if current_group:
|
||||||
|
AudioManager.stop_group(current_group)
|
||||||
|
|
||||||
|
|
||||||
|
func _exit_tree() -> void:
|
||||||
|
stop()
|
||||||
|
|
||||||
|
|
||||||
|
func _get(property: StringName) -> Variant:
|
||||||
|
if property == "autoplay_group":
|
||||||
|
return autoplay_group
|
||||||
|
return null
|
||||||
|
|
||||||
|
|
||||||
|
func _set(property: StringName, value: Variant) -> bool:
|
||||||
|
if property == "autoplay_group":
|
||||||
|
if current_group:
|
||||||
|
AudioManager.stop_group(current_group)
|
||||||
|
current_group = ""
|
||||||
|
autoplay_group = value
|
||||||
|
return true
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func _get_property_list() -> Array[Dictionary]:
|
||||||
|
var hint_str = ""
|
||||||
|
if is_node_ready():
|
||||||
|
hint_str = ",".join(AudioManager.VIBE_GROUPS)
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
"name": "autoplay_group",
|
||||||
|
"type": TYPE_STRING,
|
||||||
|
"hint": PROPERTY_HINT_ENUM_SUGGESTION,
|
||||||
|
"hint_string": hint_str
|
||||||
|
}
|
||||||
|
]
|
||||||
|
@ -26,7 +26,7 @@ const CANVAS_LAYER_GROUND_MASK = 14
|
|||||||
const CANVAS_LAYER_EFFECT = 11
|
const CANVAS_LAYER_EFFECT = 11
|
||||||
# 全屏 shading
|
# 全屏 shading
|
||||||
const CANVAS_LAYER_SHADING = 10
|
const CANVAS_LAYER_SHADING = 10
|
||||||
# 小游戏
|
# 小游戏与特写
|
||||||
const CANVAS_LAYER_LITTLE_GAME = 5
|
const CANVAS_LAYER_LITTLE_GAME = 5
|
||||||
# 前景层
|
# 前景层
|
||||||
const CANVAS_LAYER_FG = 2
|
const CANVAS_LAYER_FG = 2
|
||||||
|
@ -94,7 +94,7 @@ func unlock_player():
|
|||||||
# player.operational = val
|
# player.operational = val
|
||||||
|
|
||||||
|
|
||||||
func player_action(action_code : int, auto_quit := false):
|
func player_action(action_code: int, auto_quit := false):
|
||||||
var player = get_player()
|
var player = get_player()
|
||||||
if player:
|
if player:
|
||||||
player.player_action(action_code, auto_quit)
|
player.player_action(action_code, auto_quit)
|
||||||
@ -332,6 +332,14 @@ func _jump_back_to_index_and_quit_main():
|
|||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
|
|
||||||
|
|
||||||
|
func enter_main_scene():
|
||||||
|
# 从 index 进入 main
|
||||||
|
# get_tree().change_scene_to_packed.call_deferred(main_scene)
|
||||||
|
get_tree().change_scene_to_file.call_deferred("res://scene/main.tscn")
|
||||||
|
pause_counter = 0
|
||||||
|
get_tree().paused = false
|
||||||
|
|
||||||
|
|
||||||
var prop_bag_scene = preload("res://scene/prop/prop_bag.tscn")
|
var prop_bag_scene = preload("res://scene/prop/prop_bag.tscn")
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@ buses/default_bus_layout="res://config/default_bus_layout.tres"
|
|||||||
DebugMenu="*res://addons/debug_menu/debug_menu.tscn"
|
DebugMenu="*res://addons/debug_menu/debug_menu.tscn"
|
||||||
GlobalConfigManager="*res://manager/config_manager/global_config_manager.gd"
|
GlobalConfigManager="*res://manager/config_manager/global_config_manager.gd"
|
||||||
ArchiveManager="*res://manager/archive_manager/archive_manager.gd"
|
ArchiveManager="*res://manager/archive_manager/archive_manager.gd"
|
||||||
|
AudioManager="*res://manager/audio_manager/audio_manager.tscn"
|
||||||
SceneManager="*res://manager/scene/scene_manager.gd"
|
SceneManager="*res://manager/scene/scene_manager.gd"
|
||||||
AudioManager="*res://manager/audio_manager/audio_manager.gd"
|
|
||||||
EventManager="*res://manager/event_manager/event_manager.gd"
|
EventManager="*res://manager/event_manager/event_manager.gd"
|
||||||
DialogueManager="*res://addons/dialogue_manager/dialogue_manager.gd"
|
DialogueManager="*res://addons/dialogue_manager/dialogue_manager.gd"
|
||||||
GlobalFunctor="*res://manager/scene/global_functor.gd"
|
GlobalFunctor="*res://manager/scene/global_functor.gd"
|
||||||
|
@ -5,8 +5,6 @@ class_name Sfx extends AudioStreamPlayer
|
|||||||
set(value):
|
set(value):
|
||||||
mode = value
|
mode = value
|
||||||
notify_property_list_changed()
|
notify_property_list_changed()
|
||||||
# 默认 stream 会变成 default 值
|
|
||||||
@export var audio_dict: Dictionary[String, AudioStream]
|
|
||||||
|
|
||||||
# 当前播放状态注册;节点销毁前卸载
|
# 当前播放状态注册;节点销毁前卸载
|
||||||
# TODO BGM 过程抑制场景音效;场景音效随玩家运动呼吸 (结合 Sfx2D)
|
# TODO BGM 过程抑制场景音效;场景音效随玩家运动呼吸 (结合 Sfx2D)
|
||||||
@ -23,29 +21,10 @@ func _ready() -> void:
|
|||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
default_db = volume_db
|
default_db = volume_db
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
audio_dict.erase("default")
|
|
||||||
return
|
return
|
||||||
if stream:
|
|
||||||
audio_dict["default"] = stream
|
|
||||||
finished.connect(_on_finished)
|
finished.connect(_on_finished)
|
||||||
|
|
||||||
|
|
||||||
func switch_stream(stream_name: String, play_next:= false, easing_duration := 1.0):
|
|
||||||
if not audio_dict.has(stream_name):
|
|
||||||
printerr("Audio stream not found in audio_dict: ", stream_name)
|
|
||||||
return
|
|
||||||
if easing_duration > 0:
|
|
||||||
easing_kill(easing_duration).tween_callback(func():
|
|
||||||
stream = audio_dict[stream_name]
|
|
||||||
if play_next:
|
|
||||||
play()
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
stream = audio_dict[stream_name]
|
|
||||||
if play_next:
|
|
||||||
play()
|
|
||||||
|
|
||||||
|
|
||||||
func _on_finished() -> void:
|
func _on_finished() -> void:
|
||||||
if mode == "场景背景音" and scene_loop:
|
if mode == "场景背景音" and scene_loop:
|
||||||
play()
|
play()
|
||||||
|
@ -25,23 +25,27 @@ func _ready() -> void:
|
|||||||
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
|
||||||
timer.wait_time = max(1.0, loop_round_time)
|
timer.wait_time = max(0.1, loop_round_time)
|
||||||
timer.timeout.connect(play)
|
timer.timeout.connect(_on_timer_timeout)
|
||||||
add_child(timer)
|
add_child(timer)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_timer_timeout() -> void:
|
||||||
|
if not loop or loop_round_time <= 0.0:
|
||||||
|
timer.stop()
|
||||||
|
return
|
||||||
|
play()
|
||||||
|
|
||||||
|
|
||||||
func _on_finished() -> void:
|
func _on_finished() -> void:
|
||||||
if not loop:
|
if not loop:
|
||||||
timer.stop()
|
timer.stop()
|
||||||
elif loop_round_time <= 0:
|
else:
|
||||||
|
if loop_round_time <= 0:
|
||||||
|
timer.stop()
|
||||||
play()
|
play()
|
||||||
|
|
||||||
|
|
||||||
func start_timer():
|
|
||||||
if timer.wait_time > 0:
|
|
||||||
timer.start()
|
|
||||||
|
|
||||||
|
|
||||||
# queue free 导致 sfx 无法播放,使用全局声源
|
# queue free 导致 sfx 无法播放,使用全局声源
|
||||||
func global_play() -> void:
|
func global_play() -> void:
|
||||||
if stream:
|
if stream:
|
||||||
|
@ -6,9 +6,6 @@ class_name Closeup2D
|
|||||||
# 退出信号,默认 arg 为 null,可能是一个 bool 值,从 packed_scene 的 exit 信号中传递过来
|
# 退出信号,默认 arg 为 null,可能是一个 bool 值,从 packed_scene 的 exit 信号中传递过来
|
||||||
signal exit(arg)
|
signal exit(arg)
|
||||||
|
|
||||||
@export var action_key := 4
|
|
||||||
# 第一次交互时的气泡文字(unrevealed -> revealed) 如果为空则跳过
|
|
||||||
@export var first_interact_os_key := ""
|
|
||||||
@export var packed_scene: PackedScene
|
@export var packed_scene: PackedScene
|
||||||
@export var quit_closeup_on_escape := true
|
@export var quit_closeup_on_escape := true
|
||||||
var current_child: Node
|
var current_child: Node
|
||||||
@ -18,19 +15,7 @@ func _ready() -> void:
|
|||||||
super._ready()
|
super._ready()
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
interacted.connect(_close_up_interacted)
|
interacted.connect(display)
|
||||||
|
|
||||||
|
|
||||||
func _close_up_interacted() -> void:
|
|
||||||
if interacted_times == 1 and first_interact_os_key:
|
|
||||||
SceneManager.freeze_player(0, action_key)
|
|
||||||
sign_mark.display_sign = false
|
|
||||||
var tween = await SceneManager.pop_os_with_str(first_interact_os_key)
|
|
||||||
tween.tween_callback(display)
|
|
||||||
tween.tween_callback(func(): sign_mark.display_sign = true)
|
|
||||||
else:
|
|
||||||
SceneManager.freeze_player(0, action_key)
|
|
||||||
display()
|
|
||||||
|
|
||||||
|
|
||||||
# 可以直接调用
|
# 可以直接调用
|
||||||
|
@ -14,7 +14,6 @@ size = Vector2(25, 70)
|
|||||||
|
|
||||||
[node name="Closeup" type="Sprite2D"]
|
[node name="Closeup" type="Sprite2D"]
|
||||||
script = ExtResource("1_tvfr1")
|
script = ExtResource("1_tvfr1")
|
||||||
enable_snapper = null
|
|
||||||
collision_width_and_x = Vector2(25, 0)
|
collision_width_and_x = Vector2(25, 0)
|
||||||
unrevealed_sign_texture = ExtResource("2_dnubm")
|
unrevealed_sign_texture = ExtResource("2_dnubm")
|
||||||
unmatched_sign_texture = ExtResource("3_dnubm")
|
unmatched_sign_texture = ExtResource("3_dnubm")
|
||||||
|
@ -22,6 +22,8 @@ enum { STATUS_NORAML, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSP
|
|||||||
sign_mark_offset = val
|
sign_mark_offset = val
|
||||||
sign_mark_offset_updated.emit(val)
|
sign_mark_offset_updated.emit(val)
|
||||||
# @export var entity_name: String = ""
|
# @export var entity_name: String = ""
|
||||||
|
# 第一次交互时的气泡文字(unrevealed -> revealed) 如果为空则跳过
|
||||||
|
@export var first_interact_os_key := ""
|
||||||
@export var content_centered: bool = false
|
@export var content_centered: bool = false
|
||||||
@export var action_key := 4
|
@export var action_key := 4
|
||||||
@export var collision_width_and_x := Vector2(20.0, 0):
|
@export var collision_width_and_x := Vector2(20.0, 0):
|
||||||
@ -110,6 +112,20 @@ func _get_tr_content():
|
|||||||
|
|
||||||
|
|
||||||
func _on_interacted() -> void:
|
func _on_interacted() -> void:
|
||||||
|
if STATUS_TRANSITIONING == status:
|
||||||
|
return
|
||||||
|
if tried_times == 0 and first_interact_os_key:
|
||||||
|
SceneManager.freeze_player(0, action_key)
|
||||||
|
sign_mark.display_sign = false
|
||||||
|
var tween = await SceneManager.pop_os_with_str(first_interact_os_key)
|
||||||
|
tween.tween_callback(_do_action)
|
||||||
|
tween.tween_callback(func(): sign_mark.display_sign = true)
|
||||||
|
else:
|
||||||
|
SceneManager.freeze_player(0, action_key)
|
||||||
|
_do_action()
|
||||||
|
|
||||||
|
|
||||||
|
func _do_action() -> void:
|
||||||
if STATUS_TRANSITIONING == status:
|
if STATUS_TRANSITIONING == status:
|
||||||
return
|
return
|
||||||
if status == STATUS_NORAML:
|
if status == STATUS_NORAML:
|
||||||
|
@ -20,6 +20,7 @@ signal sign_mark_offset_updated
|
|||||||
if is_node_ready():
|
if is_node_ready():
|
||||||
_check_sign_display()
|
_check_sign_display()
|
||||||
@export var enable_snapper := true
|
@export var enable_snapper := true
|
||||||
|
@export var action_key := 4
|
||||||
@export var collision_width_and_x := Vector2(20.0, 0):
|
@export var collision_width_and_x := Vector2(20.0, 0):
|
||||||
set(val):
|
set(val):
|
||||||
collision_width_and_x = val
|
collision_width_and_x = val
|
||||||
@ -27,6 +28,8 @@ signal sign_mark_offset_updated
|
|||||||
var shape = area2d.get_node("CollisionShape2D").shape
|
var shape = area2d.get_node("CollisionShape2D").shape
|
||||||
shape.size.x = collision_width_and_x.x
|
shape.size.x = collision_width_and_x.x
|
||||||
area2d.position.x = collision_width_and_x.y
|
area2d.position.x = collision_width_and_x.y
|
||||||
|
# 第一次交互时的气泡文字(unrevealed -> revealed) 如果为空则跳过
|
||||||
|
@export var first_interact_os_key := ""
|
||||||
@export var unrevealed_sign_texture: Texture2D
|
@export var unrevealed_sign_texture: Texture2D
|
||||||
@export var unmatched_sign_texture: Texture2D
|
@export var unmatched_sign_texture: Texture2D
|
||||||
@export var matched_sign_texture: Texture2D
|
@export var matched_sign_texture: Texture2D
|
||||||
@ -71,10 +74,10 @@ func _ready() -> void:
|
|||||||
area2d.body_entered.connect(_reset)
|
area2d.body_entered.connect(_reset)
|
||||||
area2d.body_exited.connect(_on_cancel)
|
area2d.body_exited.connect(_on_cancel)
|
||||||
if enable_snapper:
|
if enable_snapper:
|
||||||
sign_snapper.arrived.connect(_on_interacted)
|
sign_snapper.arrived.connect(_pre_interacted)
|
||||||
else:
|
else:
|
||||||
sign_snapper.enabled = false
|
sign_snapper.enabled = false
|
||||||
sign_mark.interacted.connect(_on_interacted)
|
sign_mark.interacted.connect(_pre_interacted)
|
||||||
sign_mark.cancel.connect(_on_cancel)
|
sign_mark.cancel.connect(_on_cancel)
|
||||||
sign_mark.enabled = enabled
|
sign_mark.enabled = enabled
|
||||||
# setup default value
|
# setup default value
|
||||||
@ -138,6 +141,17 @@ func is_key_matched(key) -> bool:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func _pre_interacted() -> void:
|
||||||
|
SceneManager.player_action(action_key)
|
||||||
|
if tried_times == 0 and first_interact_os_key:
|
||||||
|
sign_mark.display_sign = false
|
||||||
|
var tween = await SceneManager.pop_os_with_str(first_interact_os_key)
|
||||||
|
tween.tween_callback(_on_interacted)
|
||||||
|
tween.tween_callback(func(): sign_mark.display_sign = true)
|
||||||
|
else:
|
||||||
|
_on_interacted()
|
||||||
|
|
||||||
|
|
||||||
func _on_interacted() -> void:
|
func _on_interacted() -> void:
|
||||||
interact_mutex.lock()
|
interact_mutex.lock()
|
||||||
tried_times += 1
|
tried_times += 1
|
||||||
|
@ -77,6 +77,5 @@ script = ExtResource("12_bxihn")
|
|||||||
release_player_on_arrived = false
|
release_player_on_arrived = false
|
||||||
radius = 10.0
|
radius = 10.0
|
||||||
delay_arrived = 0.1
|
delay_arrived = 0.1
|
||||||
action_on_arrived = 4
|
|
||||||
delay_after_action = 0.4
|
delay_after_action = 0.4
|
||||||
metadata/_custom_type_script = "uid://cnt01hiw52bmn"
|
metadata/_custom_type_script = "uid://cnt01hiw52bmn"
|
||||||
|
52
scene/entity/ux/content_inspector.gd
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
extends Control
|
||||||
|
class_name ContentInspector
|
||||||
|
|
||||||
|
signal exit
|
||||||
|
|
||||||
|
@onready var label = $TipContainer/Label as Label
|
||||||
|
|
||||||
|
var tip_can_show = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_阅读")
|
||||||
|
var tip_can_hide = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_收起")
|
||||||
|
|
||||||
|
var displaying = false
|
||||||
|
|
||||||
|
var blinking_tween: Tween
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
_setup_content()
|
||||||
|
|
||||||
|
|
||||||
|
func _setup_content():
|
||||||
|
for c in get_children():
|
||||||
|
if c.name == "TipContainer":
|
||||||
|
continue
|
||||||
|
c.visible = displaying
|
||||||
|
# reset_tips
|
||||||
|
if displaying:
|
||||||
|
label.text = tip_can_hide
|
||||||
|
else:
|
||||||
|
label.text = tip_can_show
|
||||||
|
if blinking_tween and blinking_tween.is_valid():
|
||||||
|
blinking_tween.kill()
|
||||||
|
# tween tips
|
||||||
|
blinking_tween = create_tween()
|
||||||
|
blinking_tween.tween_property(label, "modulate:a", 0.8, 2.0)
|
||||||
|
blinking_tween.tween_property(label, "modulate:a", 1.0, 2.0)
|
||||||
|
blinking_tween.set_loops(100000)
|
||||||
|
|
||||||
|
|
||||||
|
func _unhandled_input(event: InputEvent) -> void:
|
||||||
|
if event.is_action_pressed("interact"):
|
||||||
|
if not visible:
|
||||||
|
visible = true
|
||||||
|
displaying = false
|
||||||
|
_setup_content()
|
||||||
|
else:
|
||||||
|
displaying = not displaying
|
||||||
|
_setup_content()
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
|
# elif event.is_action_pressed("cancel"):
|
||||||
|
# exit.emit()
|
||||||
|
# visible = false
|
||||||
|
# get_viewport().set_input_as_handled()
|
1
scene/entity/ux/content_inspector.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://0dcbk75cd5pl
|
31
scene/entity/ux/content_inspector.tscn
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://dmysq4sxx8iqh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://0dcbk75cd5pl" path="res://scene/entity/ux/content_inspector.gd" id="1_4n727"]
|
||||||
|
[ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="2_mtwgq"]
|
||||||
|
|
||||||
|
[node name="ContentInspector" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_4n727")
|
||||||
|
|
||||||
|
[node name="TipContainer" type="MarginContainer" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 7
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = -20.0
|
||||||
|
offset_top = -40.0
|
||||||
|
offset_right = 20.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 0
|
||||||
|
theme_override_constants/margin_bottom = 46
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TipContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("2_mtwgq")
|
@ -57,6 +57,8 @@ func _ready() -> void:
|
|||||||
mask.color.a = 0.0
|
mask.color.a = 0.0
|
||||||
ground = get_node_or_null("Ground") as Ground2D
|
ground = get_node_or_null("Ground") as Ground2D
|
||||||
if ground:
|
if ground:
|
||||||
|
print("GroundLoader remove old ground:", ground.scene_name)
|
||||||
|
# remove_child(ground)
|
||||||
ground.queue_free()
|
ground.queue_free()
|
||||||
# load save
|
# load save
|
||||||
if not ignore_archive:
|
if not ignore_archive:
|
||||||
@ -126,6 +128,7 @@ func _update_archive():
|
|||||||
|
|
||||||
func _do_transition(scene_name: String) -> void:
|
func _do_transition(scene_name: String) -> void:
|
||||||
# SceneManager.freeze_player(0)
|
# SceneManager.freeze_player(0)
|
||||||
|
print("GroundLoader Transition to scene:", scene_name, "portal:", entrance_portal)
|
||||||
ground = get_node_or_null("Ground") as Ground2D
|
ground = get_node_or_null("Ground") as Ground2D
|
||||||
if ground:
|
if ground:
|
||||||
# 防止命名冲突
|
# 防止命名冲突
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
[node name="GroundLoader" type="Node2D"]
|
[node name="GroundLoader" type="Node2D"]
|
||||||
script = ExtResource("1_6mjre")
|
script = ExtResource("1_6mjre")
|
||||||
|
current_scene = "c01_s05"
|
||||||
|
|
||||||
[node name="BGLayer" type="CanvasLayer" parent="."]
|
[node name="BGLayer" type="CanvasLayer" parent="."]
|
||||||
layer = -1
|
layer = -1
|
||||||
|
@ -148,4 +148,4 @@ func _on_piano_interacted():
|
|||||||
|
|
||||||
|
|
||||||
func show_interact_help():
|
func show_interact_help():
|
||||||
SceneManager.pop_center_notification(tr("ui_press_e"))
|
SceneManager.pop_center_notification(tr("ui_intro_press_e"))
|
||||||
|
@ -405,7 +405,7 @@ tracks/9/keys = {
|
|||||||
"times": PackedFloat32Array(0, 5.5),
|
"times": PackedFloat32Array(0, 5.5),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [-10.0, 0.0]
|
"values": [-20.0, -10.0]
|
||||||
}
|
}
|
||||||
tracks/10/type = "value"
|
tracks/10/type = "value"
|
||||||
tracks/10/imported = false
|
tracks/10/imported = false
|
||||||
|
@ -161,7 +161,6 @@ func _on_fall_off_finished() -> void:
|
|||||||
|
|
||||||
func _setup_weird_bookstore() -> void:
|
func _setup_weird_bookstore() -> void:
|
||||||
# 切换背景音效
|
# 切换背景音效
|
||||||
# $"写字声".stop()
|
|
||||||
$"环境音".stop()
|
$"环境音".stop()
|
||||||
$"诡异环境音".play()
|
$"诡异环境音".play()
|
||||||
|
|
||||||
|
@ -22,6 +22,6 @@ func _on_ground_ready() -> void:
|
|||||||
|
|
||||||
func _on_animation_finished():
|
func _on_animation_finished():
|
||||||
# 鬼差眼睛
|
# 鬼差眼睛
|
||||||
var ghost = $"../S10鬼差探头"
|
var ghost = $"../DeployLayer/Closeup鬼差探头" as Closeup2D
|
||||||
ghost.play()
|
ghost.display()
|
||||||
$"背景音效".easing_kill()
|
$"背景音效".easing_kill()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=10 format=3 uid="uid://be57l2o3vxxtm"]
|
[gd_scene load_steps=11 format=3 uid="uid://be57l2o3vxxtm"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_hhs2q"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_hhs2q"]
|
||||||
[ext_resource type="Script" uid="uid://cu74s33qyiax7" path="res://scene/ground/scene/c01/s10_animation.gd" id="2_4kx83"]
|
[ext_resource type="Script" uid="uid://cu74s33qyiax7" path="res://scene/ground/scene/c01/s10_animation.gd" id="2_4kx83"]
|
||||||
@ -9,6 +9,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="5_2jx0x"]
|
[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="5_2jx0x"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bf6oxxe2e6vxj" path="res://scene/ground/script/c01/s10_鬼差探头.tscn" id="5_dnd0r"]
|
[ext_resource type="PackedScene" uid="uid://bf6oxxe2e6vxj" path="res://scene/ground/script/c01/s10_鬼差探头.tscn" id="5_dnd0r"]
|
||||||
[ext_resource type="PackedScene" uid="uid://svvlohuicvhf" path="res://scene/entity/ambient/light.tscn" id="5_rw4mf"]
|
[ext_resource type="PackedScene" uid="uid://svvlohuicvhf" path="res://scene/entity/ambient/light.tscn" id="5_rw4mf"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="8_2jx0x"]
|
||||||
|
|
||||||
[node name="S10" type="Node2D"]
|
[node name="S10" type="Node2D"]
|
||||||
|
|
||||||
@ -45,6 +46,10 @@ sprite_frames = ExtResource("4_bhb7e")
|
|||||||
animation = &"小蝶探头"
|
animation = &"小蝶探头"
|
||||||
autoplay = "小蝶探头"
|
autoplay = "小蝶探头"
|
||||||
|
|
||||||
|
[node name="Closeup鬼差探头" parent="Ground/DeployLayer" index="3" instance=ExtResource("8_2jx0x")]
|
||||||
|
packed_scene = ExtResource("5_dnd0r")
|
||||||
|
quit_closeup_on_escape = false
|
||||||
|
|
||||||
[node name="Light" parent="Ground/AmbientLayer" index="0" instance=ExtResource("5_rw4mf")]
|
[node name="Light" parent="Ground/AmbientLayer" index="0" instance=ExtResource("5_rw4mf")]
|
||||||
position = Vector2(123, -20)
|
position = Vector2(123, -20)
|
||||||
texture = null
|
texture = null
|
||||||
@ -58,12 +63,8 @@ character = "小小蝶"
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(37, 150, 665, 150)
|
points = PackedVector2Array(37, 150, 665, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
energy = 0.6
|
energy = 0.6
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
[node name="S10鬼差探头" parent="Ground" instance=ExtResource("5_dnd0r")]
|
|
||||||
modulate = Color(1, 1, 1, 0)
|
|
||||||
position = Vector2(33, -154)
|
|
||||||
|
|
||||||
[editable path="Ground"]
|
[editable path="Ground"]
|
||||||
|
@ -20,7 +20,7 @@ func _ready() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_ground_ready() -> void:
|
func _on_ground_ready() -> void:
|
||||||
pass
|
SceneManager.pop_os_with_str("c02_s01_下黄包车")
|
||||||
|
|
||||||
|
|
||||||
# func _give_letter() -> void:
|
# func _give_letter() -> void:
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
[gd_scene load_steps=10 format=3 uid="uid://bbs7yy5aofw1v"]
|
[gd_scene load_steps=9 format=3 uid="uid://bbs7yy5aofw1v"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_c4tdi"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_c4tdi"]
|
||||||
[ext_resource type="Script" uid="uid://jkselt4d5q4r" path="res://scene/ground/scene/c02/s01_animation.gd" id="2_jfumy"]
|
[ext_resource type="Script" uid="uid://jkselt4d5q4r" path="res://scene/ground/scene/c02/s01_animation.gd" id="2_jfumy"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c2wgvynhg3mec" path="res://asset/audio/sfx/环境音/第一章/室外院子1.wav" id="3_engrn"]
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_bhi7l"]
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_vc2dw"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d05pqud4yoxx3" path="res://asset/art/scene/c02/s01_公寓门口/bg_公寓门口.png" id="5_j2ctx"]
|
[ext_resource type="Texture2D" uid="uid://d05pqud4yoxx3" path="res://asset/art/scene/c02/s01_公寓门口/bg_公寓门口.png" id="5_j2ctx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="6_bhi7l"]
|
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="6_bhi7l"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/inspectable.tscn" id="7_vc2dw"]
|
[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/inspectable.tscn" id="7_vc2dw"]
|
||||||
@ -24,16 +23,10 @@ data = {
|
|||||||
}
|
}
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
stream = ExtResource("3_engrn")
|
script = ExtResource("3_bhi7l")
|
||||||
autoplay = true
|
autoplay_group = &"c02_楼道1"
|
||||||
bus = &"game_sfx"
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
script = ExtResource("4_vc2dw")
|
|
||||||
mode = "场景背景音"
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("5_j2ctx")
|
texture = ExtResource("5_j2ctx")
|
||||||
@ -57,6 +50,7 @@ note_key = "c02_芦昌路26"
|
|||||||
[node name="Local寻人启事" parent="Ground/DeployLayer" index="3" instance=ExtResource("7_vc2dw")]
|
[node name="Local寻人启事" parent="Ground/DeployLayer" index="3" instance=ExtResource("7_vc2dw")]
|
||||||
position = Vector2(236, -33)
|
position = Vector2(236, -33)
|
||||||
texture = ExtResource("8_j2ctx")
|
texture = ExtResource("8_j2ctx")
|
||||||
|
first_interact_os_key = "c02_s01_寻人启事"
|
||||||
texture_cover = ExtResource("9_bhi7l")
|
texture_cover = ExtResource("9_bhi7l")
|
||||||
content_key = "c02_寻人启事_残破"
|
content_key = "c02_寻人启事_残破"
|
||||||
|
|
||||||
|
@ -37,6 +37,8 @@ func _on_ground_ready() -> void:
|
|||||||
|
|
||||||
$"../DeployLayer/InteractableLeftPortal".interacted.connect(_on_try_exit)
|
$"../DeployLayer/InteractableLeftPortal".interacted.connect(_on_try_exit)
|
||||||
|
|
||||||
|
if $"../DeployLayer/Ambush小蝉闪现".played:
|
||||||
|
$"../DeployLayer/Ambush小蝉闪现/小蝉".visible = false
|
||||||
|
|
||||||
flyer = $"../DeployLayer/Closeup刮海报"
|
flyer = $"../DeployLayer/Closeup刮海报"
|
||||||
if data.flyer_shaven:
|
if data.flyer_shaven:
|
||||||
@ -61,6 +63,12 @@ func _oneshot_wind():
|
|||||||
$"冷飕飕Sfx".play()
|
$"冷飕飕Sfx".play()
|
||||||
|
|
||||||
|
|
||||||
|
func xiaochan_disappear():
|
||||||
|
var xc = $"../DeployLayer/Ambush小蝉闪现/小蝉" as AnimatedSprite2D
|
||||||
|
xc.play()
|
||||||
|
create_tween().tween_property(xc, "modulate:a", 0.0, 3.0)
|
||||||
|
|
||||||
|
|
||||||
func _on_flyer_exit(arg):
|
func _on_flyer_exit(arg):
|
||||||
if arg:
|
if arg:
|
||||||
$"../DeployLayer/青岛啤酒".enabled = true
|
$"../DeployLayer/青岛啤酒".enabled = true
|
||||||
@ -110,6 +118,7 @@ func _display_paper_man(play_sfx := true):
|
|||||||
paper_man.get_node("Sfx").play()
|
paper_man.get_node("Sfx").play()
|
||||||
paper_man.get_node("wall/CollisionShape2D").disabled = false
|
paper_man.get_node("wall/CollisionShape2D").disabled = false
|
||||||
|
|
||||||
|
|
||||||
func _on_try_exit():
|
func _on_try_exit():
|
||||||
SceneManager.freeze_player(0)
|
SceneManager.freeze_player(0)
|
||||||
# 退出公寓?
|
# 退出公寓?
|
||||||
@ -117,6 +126,7 @@ func _on_try_exit():
|
|||||||
await DialogueManager.dialogue_ended
|
await DialogueManager.dialogue_ended
|
||||||
SceneManager.release_player()
|
SceneManager.release_player()
|
||||||
|
|
||||||
|
|
||||||
func display_music_box():
|
func display_music_box():
|
||||||
# 展示八音盒
|
# 展示八音盒
|
||||||
music_box.visible = true
|
music_box.visible = true
|
||||||
@ -124,6 +134,7 @@ func display_music_box():
|
|||||||
# TODO 打开音效
|
# TODO 打开音效
|
||||||
SceneManager.pop_debug_dialog_info("音效", "显示八音盒")
|
SceneManager.pop_debug_dialog_info("音效", "显示八音盒")
|
||||||
|
|
||||||
|
|
||||||
func check_if_show_shoes():
|
func check_if_show_shoes():
|
||||||
# 不论是否推出,都需要 enable 调整为 false
|
# 不论是否推出,都需要 enable 调整为 false
|
||||||
$"../DeployLayer/Ambush推小鞋子".enabled = false
|
$"../DeployLayer/Ambush推小鞋子".enabled = false
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://5428j51dwarc" path="res://asset/art/scene/c02/s02_大门过道/bg_过道背景.png" id="3_gjwum"]
|
[ext_resource type="Texture2D" uid="uid://5428j51dwarc" path="res://asset/art/scene/c02/s02_大门过道/bg_过道背景.png" id="3_gjwum"]
|
||||||
[ext_resource type="AudioStream" uid="uid://o7fj0r0fbm1h" path="res://asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav" id="4_36l5t"]
|
[ext_resource type="AudioStream" uid="uid://o7fj0r0fbm1h" path="res://asset/audio/sfx/交互/第一章/sfx_冷飕飕.wav" id="4_36l5t"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="4_wbif8"]
|
[ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="4_wbif8"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="5_36l5t"]
|
||||||
[ext_resource type="Texture2D" uid="uid://r0n7qy4kr3w2" path="res://asset/art/ui/action_mark/UI场景切换.png" id="5_m1xet"]
|
[ext_resource type="Texture2D" uid="uid://r0n7qy4kr3w2" path="res://asset/art/ui/action_mark/UI场景切换.png" id="5_m1xet"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bew3slewru6j0" path="res://asset/audio/sfx/环境音/第一章/02_进门过道.wav" id="6_36l5t"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://b8pcnqvdddo5g" path="res://asset/art/prop/c02/海报特写/除鼠二杰.png" id="7_jg8g0"]
|
[ext_resource type="Texture2D" uid="uid://b8pcnqvdddo5g" path="res://asset/art/prop/c02/海报特写/除鼠二杰.png" id="7_jg8g0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cvgw2mxrlr6io" path="res://asset/art/scene/c02/旧版/s02_走道/ux_进门鼠疫海报yz.png" id="7_wdwbi"]
|
[ext_resource type="Texture2D" uid="uid://cvgw2mxrlr6io" path="res://asset/art/scene/c02/旧版/s02_走道/ux_进门鼠疫海报yz.png" id="7_wdwbi"]
|
||||||
[ext_resource type="Texture2D" uid="uid://5pl1b7cor715" path="res://asset/art/scene/c02/旧版/s02_走道/e_纸人.png" id="7_xsghn"]
|
[ext_resource type="Texture2D" uid="uid://5pl1b7cor715" path="res://asset/art/scene/c02/旧版/s02_走道/e_纸人.png" id="7_xsghn"]
|
||||||
@ -68,16 +68,10 @@ oneshot_animation = ""
|
|||||||
stream = ExtResource("4_36l5t")
|
stream = ExtResource("4_36l5t")
|
||||||
mode = "交互与效果音"
|
mode = "交互与效果音"
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="1"]
|
||||||
stream = ExtResource("6_36l5t")
|
script = ExtResource("5_36l5t")
|
||||||
autoplay = true
|
autoplay_group = &"c02_楼道1"
|
||||||
bus = &"game_sfx"
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
script = ExtResource("14_jg8g0")
|
|
||||||
mode = "场景背景音"
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
self_modulate = Color(0.831373, 0.886275, 0.956863, 1)
|
self_modulate = Color(0.831373, 0.886275, 0.956863, 1)
|
||||||
@ -127,9 +121,8 @@ content_key = "c02_海报1"
|
|||||||
[node name="Closeup刮海报" parent="Ground/DeployLayer" index="6" instance=ExtResource("19_6wwyd")]
|
[node name="Closeup刮海报" parent="Ground/DeployLayer" index="6" instance=ExtResource("19_6wwyd")]
|
||||||
position = Vector2(253, -31)
|
position = Vector2(253, -31)
|
||||||
texture = ExtResource("10_jg8g0")
|
texture = ExtResource("10_jg8g0")
|
||||||
first_interact_os_key = "c02_海报_剪辫子侦探"
|
|
||||||
packed_scene = ExtResource("11_jg8g0")
|
packed_scene = ExtResource("11_jg8g0")
|
||||||
enable_snapper = true
|
first_interact_os_key = "c02_海报_剪辫子侦探"
|
||||||
|
|
||||||
[node name="青岛啤酒" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")]
|
[node name="青岛啤酒" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")]
|
||||||
position = Vector2(253, -31)
|
position = Vector2(253, -31)
|
||||||
@ -138,7 +131,7 @@ texture_cover = ExtResource("16_vqhm5")
|
|||||||
content_key = "c02_青岛啤酒"
|
content_key = "c02_青岛啤酒"
|
||||||
|
|
||||||
[node name="鼠疫海报" parent="Ground/DeployLayer" index="8" instance=ExtResource("12_0fckv")]
|
[node name="鼠疫海报" parent="Ground/DeployLayer" index="8" instance=ExtResource("12_0fckv")]
|
||||||
position = Vector2(439, -29)
|
position = Vector2(442, -30)
|
||||||
texture_cover = ExtResource("7_wdwbi")
|
texture_cover = ExtResource("7_wdwbi")
|
||||||
|
|
||||||
[node name="Ambush纸人" parent="Ground/DeployLayer" index="9" instance=ExtResource("8_52as8")]
|
[node name="Ambush纸人" parent="Ground/DeployLayer" index="9" instance=ExtResource("8_52as8")]
|
||||||
@ -168,8 +161,9 @@ bus = &"game_sfx"
|
|||||||
script = ExtResource("14_jg8g0")
|
script = ExtResource("14_jg8g0")
|
||||||
|
|
||||||
[node name="Ambush杂物堆" parent="Ground/DeployLayer" index="10" instance=ExtResource("8_52as8")]
|
[node name="Ambush杂物堆" parent="Ground/DeployLayer" index="10" instance=ExtResource("8_52as8")]
|
||||||
position = Vector2(387, 66)
|
position = Vector2(358, 50)
|
||||||
trigger_mode = "interact"
|
trigger_mode = "interact"
|
||||||
|
collision_width_and_x = Vector2(23.86, 0)
|
||||||
freeze_time = 1.0
|
freeze_time = 1.0
|
||||||
hook_method = "lumber_interacted"
|
hook_method = "lumber_interacted"
|
||||||
|
|
||||||
@ -191,37 +185,40 @@ position = Vector2(507, 64)
|
|||||||
title_filter = "c02"
|
title_filter = "c02"
|
||||||
note_key = "c02_老鼠洞"
|
note_key = "c02_老鼠洞"
|
||||||
|
|
||||||
[node name="老鼠拖鞋" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="13"]
|
[node name="Note大头娃娃" parent="Ground/DeployLayer" index="13" instance=ExtResource("3_fy0o1")]
|
||||||
|
position = Vector2(418, 41)
|
||||||
|
collision_width_and_x = Vector2(18.02, 0)
|
||||||
|
title_filter = "c02"
|
||||||
|
note_key = "c02_s02_大头娃娃头套"
|
||||||
|
|
||||||
|
[node name="老鼠拖鞋" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="14"]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(498, 0)
|
position = Vector2(498, 0)
|
||||||
sprite_frames = ExtResource("19_q0axc")
|
sprite_frames = ExtResource("19_q0axc")
|
||||||
animation = &"老鼠托小鞋子"
|
animation = &"老鼠托小鞋子"
|
||||||
|
|
||||||
[node name="Interactable小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("13_ck13g")]
|
[node name="Interactable小鞋子" parent="Ground/DeployLayer" index="15" instance=ExtResource("13_ck13g")]
|
||||||
position = Vector2(498, 65)
|
position = Vector2(498, 65)
|
||||||
enabled = false
|
enabled = false
|
||||||
mute_when_interacted = true
|
mute_when_interacted = true
|
||||||
|
|
||||||
[node name="Ambush推小鞋子" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_52as8")]
|
[node name="Ambush推小鞋子" parent="Ground/DeployLayer" index="16" instance=ExtResource("8_52as8")]
|
||||||
position = Vector2(525, 61)
|
position = Vector2(525, 61)
|
||||||
one_shot = false
|
one_shot = false
|
||||||
freeze_time = 1.0
|
freeze_time = 1.0
|
||||||
hook_method = "check_if_show_shoes"
|
hook_method = "check_if_show_shoes"
|
||||||
|
|
||||||
[node name="煤油灯" parent="Ground/DeployLayer" index="16" instance=ExtResource("17_mpkj1")]
|
[node name="煤油灯" parent="Ground/DeployLayer" index="17" instance=ExtResource("17_mpkj1")]
|
||||||
position = Vector2(122, -15)
|
position = Vector2(122, -15)
|
||||||
gaslight_energy = 2.0
|
gaslight_energy = 2.0
|
||||||
gaslight_ground_energy = 0.0
|
gaslight_ground_energy = 0.0
|
||||||
collision_width_and_x = true
|
|
||||||
one_shot = false
|
one_shot = false
|
||||||
one_shot_max_times = true
|
disable_prop_after_interacted = true
|
||||||
disable_prop_after_interacted = 1
|
|
||||||
interacted_texture = false
|
|
||||||
|
|
||||||
[node name="Closeup八音盒" parent="Ground/DeployLayer" index="17" instance=ExtResource("19_6wwyd")]
|
[node name="Closeup八音盒" parent="Ground/DeployLayer" index="18" instance=ExtResource("19_6wwyd")]
|
||||||
position = Vector2(533, 65)
|
position = Vector2(533, 65)
|
||||||
packed_scene = ExtResource("10_ifae7")
|
packed_scene = ExtResource("10_ifae7")
|
||||||
enable_snapper = true
|
first_interact_os_key = "c02_s02_八音盒"
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Closeup八音盒"]
|
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Closeup八音盒"]
|
||||||
visible = false
|
visible = false
|
||||||
@ -229,6 +226,17 @@ show_behind_parent = true
|
|||||||
position = Vector2(0, 11)
|
position = Vector2(0, 11)
|
||||||
texture = ExtResource("22_jg8g0")
|
texture = ExtResource("22_jg8g0")
|
||||||
|
|
||||||
|
[node name="Ambush小蝉闪现" parent="Ground/DeployLayer" index="19" instance=ExtResource("8_52as8")]
|
||||||
|
position = Vector2(301, 52)
|
||||||
|
hook_method = "xiaochan_disappear"
|
||||||
|
|
||||||
|
[node name="小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer/Ambush小蝉闪现"]
|
||||||
|
position = Vector2(279, 10)
|
||||||
|
sprite_frames = ExtResource("19_q0axc")
|
||||||
|
animation = &"头套小蝉呼吸"
|
||||||
|
autoplay = "头套小蝉呼吸"
|
||||||
|
frame_progress = 0.346017
|
||||||
|
|
||||||
[node name="PointLight2D" type="PointLight2D" parent="Ground/AmbientLayer" index="0"]
|
[node name="PointLight2D" type="PointLight2D" parent="Ground/AmbientLayer" index="0"]
|
||||||
position = Vector2(-124, 135)
|
position = Vector2(-124, 135)
|
||||||
rotation = -0.405717
|
rotation = -0.405717
|
||||||
|
@ -32,6 +32,7 @@ func _on_ground_ready() -> void:
|
|||||||
if gate.interacted_times > 0:
|
if gate.interacted_times > 0:
|
||||||
gate.get_node("Wall/CollisionShape2D").disabled = true
|
gate.get_node("Wall/CollisionShape2D").disabled = true
|
||||||
else:
|
else:
|
||||||
|
gate.interact_mismatch_failed.connect(_on_gate_failed)
|
||||||
gate.interacted.connect(_on_gate_interacted)
|
gate.interacted.connect(_on_gate_interacted)
|
||||||
|
|
||||||
eavesdrop_window = $"../DeployLayer/李氏赖子房间人影"
|
eavesdrop_window = $"../DeployLayer/李氏赖子房间人影"
|
||||||
@ -61,7 +62,7 @@ func _on_ground_ready() -> void:
|
|||||||
new_bg.modulate.a = 1.0
|
new_bg.modulate.a = 1.0
|
||||||
# 火灾开始后,无需 enable
|
# 火灾开始后,无需 enable
|
||||||
counter.get_node("点燃").modulate.a = 1.0
|
counter.get_node("点燃").modulate.a = 1.0
|
||||||
$"背景音效".switch_stream("火灾")
|
$VibeSfx.switch_to("c02_火灾")
|
||||||
$"../DirectionalLight2D".energy = 0
|
$"../DirectionalLight2D".energy = 0
|
||||||
|
|
||||||
madman_npc = $"../DeployLayer/Npc井边疯子"
|
madman_npc = $"../DeployLayer/Npc井边疯子"
|
||||||
@ -98,6 +99,7 @@ func _on_ground_ready() -> void:
|
|||||||
await tween.finished
|
await tween.finished
|
||||||
# 落地音效
|
# 落地音效
|
||||||
$"Sfx小鞋落地".play()
|
$"Sfx小鞋落地".play()
|
||||||
|
SceneManager.pop_os_with_str("c02_s03_掉鞋子", false, false)
|
||||||
tween = create_tween()
|
tween = create_tween()
|
||||||
tween.tween_property(fg, "modulate:a", 0.0, 1.5)
|
tween.tween_property(fg, "modulate:a", 0.0, 1.5)
|
||||||
await tween.finished
|
await tween.finished
|
||||||
@ -128,6 +130,12 @@ func cg_end() -> void:
|
|||||||
create_tween().tween_property(fg, "modulate:a", 1.0, 1.5)
|
create_tween().tween_property(fg, "modulate:a", 1.0, 1.5)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_gate_failed() -> void:
|
||||||
|
if not ArchiveManager.get_global_value("c02_open_gate_first_failed"):
|
||||||
|
ArchiveManager.set_global_entry("c02_open_gate_first_failed", true)
|
||||||
|
SceneManager.pop_os_with_str("c02_s03_铁门")
|
||||||
|
|
||||||
|
|
||||||
func _on_gate_interacted() -> void:
|
func _on_gate_interacted() -> void:
|
||||||
gate.get_node("Wall/CollisionShape2D").disabled = true
|
gate.get_node("Wall/CollisionShape2D").disabled = true
|
||||||
|
|
||||||
@ -203,7 +211,7 @@ func _setup_bully_or_burning(reenter_scene := false):
|
|||||||
$"../DeployLayer/霸凌/f1/Sfx2D霸凌童谣".play()
|
$"../DeployLayer/霸凌/f1/Sfx2D霸凌童谣".play()
|
||||||
else:
|
else:
|
||||||
bully_layer.visible = false
|
bully_layer.visible = false
|
||||||
$"背景音效".switch_stream("火灾", true)
|
$VibeSfx.switch_to("c02_火灾")
|
||||||
$"../DeployLayer/霸凌/f1/Sfx2D霸凌童谣".easing_kill()
|
$"../DeployLayer/霸凌/f1/Sfx2D霸凌童谣".easing_kill()
|
||||||
bully_layer.get_node("Ambush点火游戏阻挡右移").enabled = false
|
bully_layer.get_node("Ambush点火游戏阻挡右移").enabled = false
|
||||||
bully_layer.get_node("wall/CollisionShape2D").disabled = true
|
bully_layer.get_node("wall/CollisionShape2D").disabled = true
|
||||||
|
@ -2,14 +2,13 @@
|
|||||||
|
|
||||||
[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_animation.gd" id="2_dt5aj"]
|
[ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_animation.gd" id="2_dt5aj"]
|
||||||
[ext_resource type="AudioStream" uid="uid://lp46utp018ac" path="res://asset/audio/sfx/环境音/第一章/03_一楼院子.wav" id="3_2y8cu"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://b3odt4ojsvu5n" path="res://asset/art/scene/c02/s03_公寓一楼院子/bg_一楼.png" id="3_sqv8l"]
|
[ext_resource type="Texture2D" uid="uid://b3odt4ojsvu5n" path="res://asset/art/scene/c02/s03_公寓一楼院子/bg_一楼.png" id="3_sqv8l"]
|
||||||
[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://s7uigovfp5g3" path="res://asset/audio/sfx/环境音/第一章/火灾演出.wav" id="5_ygnci"]
|
|
||||||
[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="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="6_lq23y"]
|
||||||
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="6_t48d1"]
|
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="6_t48d1"]
|
||||||
[ext_resource type="AudioStream" uid="uid://civuwccn6v6yk" path="res://asset/audio/sfx/交互/第一章/sfx_闷雷声.wav" id="6_vddfx"]
|
[ext_resource type="AudioStream" uid="uid://civuwccn6v6yk" path="res://asset/audio/sfx/交互/第一章/sfx_闷雷声.wav" id="6_vddfx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bxqetnlx0bpv4" path="res://asset/art/scene/c02/门_贴图/1012保卫科.png" id="6_ygnci"]
|
[ext_resource type="Texture2D" uid="uid://bxqetnlx0bpv4" path="res://asset/art/scene/c02/门_贴图/1012保卫科.png" id="6_ygnci"]
|
||||||
@ -31,6 +30,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://d33jmss6vlhk7" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光2.png" id="12_ni5ro"]
|
[ext_resource type="Texture2D" uid="uid://d33jmss6vlhk7" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光2.png" id="12_ni5ro"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ch6uf4qi1i0h2" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕3.png" id="13_hw832"]
|
[ext_resource type="Texture2D" uid="uid://ch6uf4qi1i0h2" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕3.png" id="13_hw832"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b78jbthcfkod7" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光3.png" id="14_7pq5y"]
|
[ext_resource type="Texture2D" uid="uid://b78jbthcfkod7" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光3.png" id="14_7pq5y"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c8b80a75k3qw6" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_院子地上纸钱.png" id="14_qqdxs"]
|
||||||
[ext_resource type="Texture2D" uid="uid://douwcahbhr1wt" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_楼梯人群.png" id="18_crgo6"]
|
[ext_resource type="Texture2D" uid="uid://douwcahbhr1wt" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_楼梯人群.png" id="18_crgo6"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dqd645v3k4yar" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_诡异纸人.png" id="19_vddfx"]
|
[ext_resource type="Texture2D" uid="uid://dqd645v3k4yar" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_诡异纸人.png" id="19_vddfx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dy55syw4my0qo" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_水井.png" id="21_4n8vm"]
|
[ext_resource type="Texture2D" uid="uid://dy55syw4my0qo" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_水井.png" id="21_4n8vm"]
|
||||||
@ -287,32 +287,23 @@ data = {
|
|||||||
}
|
}
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="Sfx闷雷" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
||||||
stream = ExtResource("3_2y8cu")
|
|
||||||
autoplay = true
|
|
||||||
bus = &"game_sfx"
|
|
||||||
script = ExtResource("4_ygnci")
|
|
||||||
mode = "场景背景音"
|
|
||||||
audio_dict = Dictionary[String, AudioStream]({
|
|
||||||
"火灾": ExtResource("5_ygnci")
|
|
||||||
})
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="Sfx闷雷" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
|
||||||
stream = ExtResource("6_vddfx")
|
stream = ExtResource("6_vddfx")
|
||||||
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="1"]
|
||||||
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="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="2"]
|
||||||
|
script = ExtResource("6_lq23y")
|
||||||
|
autoplay_group = &"c02_楼道2"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
light_mask = 5
|
light_mask = 5
|
||||||
texture = ExtResource("3_sqv8l")
|
texture = ExtResource("3_sqv8l")
|
||||||
@ -378,7 +369,8 @@ matched_sign_texture = null
|
|||||||
|
|
||||||
[node name="Note血迹" parent="Ground/DeployLayer" index="8" instance=ExtResource("6_t48d1")]
|
[node name="Note血迹" parent="Ground/DeployLayer" index="8" instance=ExtResource("6_t48d1")]
|
||||||
position = Vector2(523, 78)
|
position = Vector2(523, 78)
|
||||||
note_key = "notes_干掉的血迹"
|
title_filter = "c02"
|
||||||
|
note_key = "c02_s03_干掉的血迹"
|
||||||
|
|
||||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Ground/DeployLayer/Note血迹"]
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Ground/DeployLayer/Note血迹"]
|
||||||
self_modulate = Color(0.255659, 0.255659, 0.255659, 1)
|
self_modulate = Color(0.255659, 0.255659, 0.255659, 1)
|
||||||
@ -435,7 +427,12 @@ energy = 0.7
|
|||||||
texture = SubResource("GradientTexture2D_kyfht")
|
texture = SubResource("GradientTexture2D_kyfht")
|
||||||
|
|
||||||
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="10"]
|
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="10"]
|
||||||
visible = false
|
|
||||||
|
[node name="地上纸钱" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"]
|
||||||
|
z_index = -4
|
||||||
|
position = Vector2(0, -120)
|
||||||
|
texture = ExtResource("14_qqdxs")
|
||||||
|
centered = false
|
||||||
|
|
||||||
[node name="奠1" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"]
|
[node name="奠1" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"]
|
||||||
position = Vector2(199.5, -3)
|
position = Vector2(199.5, -3)
|
||||||
@ -535,11 +532,8 @@ texture = ExtResource("6_1tart")
|
|||||||
position = Vector2(290, 1)
|
position = Vector2(290, 1)
|
||||||
gaslight_energy = 1.5
|
gaslight_energy = 1.5
|
||||||
gaslight_ground_energy = 0.7
|
gaslight_ground_energy = 0.7
|
||||||
collision_width_and_x = true
|
|
||||||
mute_when_interacted = false
|
mute_when_interacted = false
|
||||||
one_shot = false
|
|
||||||
disable_prop_after_interacted = true
|
disable_prop_after_interacted = true
|
||||||
interacted_texture = false
|
|
||||||
|
|
||||||
[node name="煤油灯2" parent="Ground/DeployLayer" index="17" instance=ExtResource("10_jme4f")]
|
[node name="煤油灯2" parent="Ground/DeployLayer" index="17" instance=ExtResource("10_jme4f")]
|
||||||
position = Vector2(610, 1)
|
position = Vector2(610, 1)
|
||||||
@ -547,11 +541,8 @@ gaslight_texture = ExtResource("11_g0qhj")
|
|||||||
ground_light_texture = ExtResource("12_ni5ro")
|
ground_light_texture = ExtResource("12_ni5ro")
|
||||||
gaslight_energy = 1.5
|
gaslight_energy = 1.5
|
||||||
gaslight_ground_energy = 0.7
|
gaslight_ground_energy = 0.7
|
||||||
collision_width_and_x = true
|
|
||||||
mute_when_interacted = false
|
mute_when_interacted = false
|
||||||
one_shot = false
|
|
||||||
disable_prop_after_interacted = true
|
disable_prop_after_interacted = true
|
||||||
interacted_texture = false
|
|
||||||
|
|
||||||
[node name="煤油灯3" parent="Ground/DeployLayer" index="18" instance=ExtResource("10_jme4f")]
|
[node name="煤油灯3" parent="Ground/DeployLayer" index="18" instance=ExtResource("10_jme4f")]
|
||||||
position = Vector2(857, 1)
|
position = Vector2(857, 1)
|
||||||
@ -559,11 +550,8 @@ gaslight_texture = ExtResource("13_hw832")
|
|||||||
ground_light_texture = ExtResource("14_7pq5y")
|
ground_light_texture = ExtResource("14_7pq5y")
|
||||||
gaslight_energy = 1.5
|
gaslight_energy = 1.5
|
||||||
gaslight_ground_energy = 0.7
|
gaslight_ground_energy = 0.7
|
||||||
collision_width_and_x = true
|
|
||||||
mute_when_interacted = false
|
mute_when_interacted = false
|
||||||
one_shot = false
|
|
||||||
disable_prop_after_interacted = true
|
disable_prop_after_interacted = true
|
||||||
interacted_texture = false
|
|
||||||
|
|
||||||
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="19"]
|
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="19"]
|
||||||
self_modulate = Color(0.739288, 0.739288, 0.739288, 1)
|
self_modulate = Color(0.739288, 0.739288, 0.739288, 1)
|
||||||
@ -581,14 +569,12 @@ texture = ExtResource("22_3y5s5")
|
|||||||
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="21" instance=ExtResource("23_81juy")]
|
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="21" instance=ExtResource("23_81juy")]
|
||||||
position = Vector2(466, 3)
|
position = Vector2(466, 3)
|
||||||
packed_scene = ExtResource("24_0o4rt")
|
packed_scene = ExtResource("24_0o4rt")
|
||||||
enable_snapper = true
|
|
||||||
collision_width_and_x = Vector2(40, 0)
|
collision_width_and_x = Vector2(40, 0)
|
||||||
|
|
||||||
[node name="Closeup井" parent="Ground/DeployLayer" index="22" instance=ExtResource("23_81juy")]
|
[node name="Closeup井" parent="Ground/DeployLayer" index="22" instance=ExtResource("23_81juy")]
|
||||||
z_index = 6
|
z_index = 6
|
||||||
position = Vector2(2063, 50)
|
position = Vector2(2063, 50)
|
||||||
packed_scene = ExtResource("26_yy4fp")
|
packed_scene = ExtResource("26_yy4fp")
|
||||||
enable_snapper = true
|
|
||||||
|
|
||||||
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="23" instance=ExtResource("25_iyaiw")]
|
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="23" instance=ExtResource("25_iyaiw")]
|
||||||
position = Vector2(1319, 40)
|
position = Vector2(1319, 40)
|
||||||
@ -693,6 +679,7 @@ shape = SubResource("RectangleShape2D_d7h4s")
|
|||||||
disabled = true
|
disabled = true
|
||||||
|
|
||||||
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="28"]
|
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="28"]
|
||||||
|
visible = false
|
||||||
|
|
||||||
[node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"]
|
[node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"]
|
||||||
position = Vector2(1586, -21)
|
position = Vector2(1586, -21)
|
||||||
|
@ -24,18 +24,20 @@ func _on_ground_ready() -> void:
|
|||||||
|
|
||||||
little_hand = $"../DeployLayer/小手讨东西"
|
little_hand = $"../DeployLayer/小手讨东西"
|
||||||
if little_hand.tried_times == 0:
|
if little_hand.tried_times == 0:
|
||||||
little_hand.interacted.connect(_on_little_hand_first_interacted, CONNECT_ONE_SHOT)
|
little_hand.interacted.connect(
|
||||||
|
_on_little_hand_first_interacted.call_deferred, CONNECT_ONE_SHOT
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
func _on_little_hand_first_interacted() -> void:
|
func _on_little_hand_first_interacted() -> void:
|
||||||
# 9 小手交互,吓摔倒
|
# 9 小手交互,吓摔倒
|
||||||
little_hand.enabled = false
|
little_hand.enabled = false
|
||||||
var duration = 3.0
|
var duration = 3.0
|
||||||
|
SceneManager.pop_os_with_str(tr("c02_小手出现摔倒"), false, false)
|
||||||
SceneManager.freeze_player(duration, 9)
|
SceneManager.freeze_player(duration, 9)
|
||||||
get_tree().create_timer(1.5).timeout.connect($"Sfx摔倒".play)
|
get_tree().create_timer(1.5).timeout.connect($"Sfx摔倒".play)
|
||||||
await get_tree().create_timer(duration).timeout
|
await get_tree().create_timer(duration).timeout
|
||||||
SceneManager.release_player()
|
SceneManager.release_player()
|
||||||
|
|
||||||
little_hand.enabled = true
|
little_hand.enabled = true
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
[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_animation.gd" id="2_jyere"]
|
[ext_resource type="Script" uid="uid://dmhh4g47bdxxy" path="res://scene/ground/scene/c02/s04_animation.gd" id="2_jyere"]
|
||||||
[ext_resource type="Texture2D" uid="uid://7jvg2flkapj3" path="res://asset/art/scene/c02/s04_保卫科/bg_保卫科.png" id="3_66gue"]
|
[ext_resource type="Texture2D" uid="uid://7jvg2flkapj3" path="res://asset/art/scene/c02/s04_保卫科/bg_保卫科.png" id="3_66gue"]
|
||||||
[ext_resource type="AudioStream" uid="uid://6gttowdwmado" path="res://asset/audio/sfx/环境音/第一章/房间内部场景1.wav" id="3_dlq1i"]
|
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ffvrp"]
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ffvrp"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://c2sjavnptjn" path="res://asset/art/gif/c02_保卫科/c02_保卫科_frames.tres" id="4_svuj3"]
|
[ext_resource type="SpriteFrames" uid="uid://c2sjavnptjn" path="res://asset/art/gif/c02_保卫科/c02_保卫科_frames.tres" id="4_svuj3"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bnyf8m63ltgh0" path="res://asset/art/scene/c02/s04_保卫科/l_香.png" id="5_cy26p"]
|
[ext_resource type="Texture2D" uid="uid://bnyf8m63ltgh0" path="res://asset/art/scene/c02/s04_保卫科/l_香.png" id="5_cy26p"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="5_g8amr"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.mp3" id="5_xy3nq"]
|
[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.mp3" id="5_xy3nq"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="6_66gue"]
|
[ext_resource type="PackedScene" uid="uid://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"]
|
||||||
@ -39,23 +39,17 @@ data = {
|
|||||||
}
|
}
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
||||||
stream = ExtResource("3_dlq1i")
|
|
||||||
autoplay = true
|
|
||||||
bus = &"game_sfx"
|
|
||||||
script = ExtResource("4_ffvrp")
|
|
||||||
mode = "场景背景音"
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
|
||||||
stream = ExtResource("5_xy3nq")
|
stream = ExtResource("5_xy3nq")
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("4_ffvrp")
|
script = ExtResource("4_ffvrp")
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="1"]
|
||||||
|
script = ExtResource("5_g8amr")
|
||||||
|
autoplay_group = &"c02_房间里1"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
light_mask = 5
|
light_mask = 5
|
||||||
position = Vector2(47, 2)
|
position = Vector2(47, 2)
|
||||||
@ -88,19 +82,17 @@ texture = ExtResource("6_gk1h4")
|
|||||||
[node name="Closeup折锡纸" parent="Ground/DeployLayer" index="3" instance=ExtResource("6_66gue")]
|
[node name="Closeup折锡纸" parent="Ground/DeployLayer" index="3" instance=ExtResource("6_66gue")]
|
||||||
position = Vector2(189, 15)
|
position = Vector2(189, 15)
|
||||||
packed_scene = ExtResource("7_fvlg0")
|
packed_scene = ExtResource("7_fvlg0")
|
||||||
enable_snapper = null
|
first_interact_os_key = "c02_保卫科祭台os"
|
||||||
|
|
||||||
[node name="Closeup老鼠精" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_66gue")]
|
[node name="Closeup老鼠精" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_66gue")]
|
||||||
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")
|
||||||
enable_snapper = null
|
|
||||||
|
|
||||||
[node name="Closeup花名册" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_66gue")]
|
[node name="Closeup花名册" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_66gue")]
|
||||||
position = Vector2(351, 31)
|
position = Vector2(351, 31)
|
||||||
first_interact_os_key = "c02_保卫科花名册os"
|
|
||||||
packed_scene = ExtResource("6_fvlg0")
|
packed_scene = ExtResource("6_fvlg0")
|
||||||
enable_snapper = null
|
first_interact_os_key = "c02_保卫科花名册os"
|
||||||
|
|
||||||
[node name="煤油灯" parent="Ground/DeployLayer" index="6" instance=ExtResource("8_wpvss")]
|
[node name="煤油灯" parent="Ground/DeployLayer" index="6" instance=ExtResource("8_wpvss")]
|
||||||
position = Vector2(370, 39)
|
position = Vector2(370, 39)
|
||||||
@ -108,7 +100,6 @@ animation_low_mode = true
|
|||||||
hide_texture = true
|
hide_texture = true
|
||||||
gaslight_texture = ExtResource("9_a43aq")
|
gaslight_texture = ExtResource("9_a43aq")
|
||||||
ground_light_texture = ExtResource("10_svuj3")
|
ground_light_texture = ExtResource("10_svuj3")
|
||||||
enable_snapper = null
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" parent="Ground/DeployLayer/煤油灯/Area2D" index="0"]
|
[node name="CollisionShape2D" parent="Ground/DeployLayer/煤油灯/Area2D" index="0"]
|
||||||
shape = SubResource("RectangleShape2D_gk1h4")
|
shape = SubResource("RectangleShape2D_gk1h4")
|
||||||
|
@ -58,7 +58,11 @@ func mouse_pick_meat() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_madman_interacted() -> void:
|
func _on_madman_interacted() -> void:
|
||||||
|
if ArchiveManager.get_global_value("c02_madman_interacted"):
|
||||||
|
return
|
||||||
ArchiveManager.set_global_entry("c02_madman_interacted", true)
|
ArchiveManager.set_global_entry("c02_madman_interacted", true)
|
||||||
|
await DialogueManager.dialogue_ended
|
||||||
|
SceneManager.pop_os_with_str(tr("c02_一楼疯子互动后"))
|
||||||
|
|
||||||
|
|
||||||
func wood_puppet() -> void:
|
func wood_puppet() -> void:
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
[gd_scene load_steps=36 format=3 uid="uid://cp8d3ag5nbjq0"]
|
[gd_scene load_steps=35 format=3 uid="uid://cp8d3ag5nbjq0"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_6w6et"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_6w6et"]
|
||||||
[ext_resource type="Script" uid="uid://dydpmjpcvt3v1" path="res://scene/ground/scene/c02/s05_animation.gd" id="2_70lf6"]
|
[ext_resource type="Script" uid="uid://dydpmjpcvt3v1" path="res://scene/ground/scene/c02/s05_animation.gd" id="2_70lf6"]
|
||||||
[ext_resource type="AudioStream" uid="uid://r5b8qi54asdk" path="res://asset/audio/sfx/环境音/第一章/楼道场景4.wav" id="3_kpaw8"]
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_laquj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dbtepltemtmy2" path="res://asset/art/scene/c02/s05_一楼内侧楼道/bg_楼道背景.png" id="3_rcuxq"]
|
[ext_resource type="Texture2D" uid="uid://dbtepltemtmy2" path="res://asset/art/scene/c02/s05_一楼内侧楼道/bg_楼道背景.png" id="3_rcuxq"]
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_20mbg"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_tueh3"]
|
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_tueh3"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="7_mrltr"]
|
[ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="7_mrltr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bn47plsx5coug" path="res://asset/art/scene/c02/s05_一楼内侧楼道/l_煤油灯光效.png" id="8_mrltr"]
|
[ext_resource type="Texture2D" uid="uid://bn47plsx5coug" path="res://asset/art/scene/c02/s05_一楼内侧楼道/l_煤油灯光效.png" id="8_mrltr"]
|
||||||
@ -111,16 +110,10 @@ data = {
|
|||||||
}
|
}
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
stream = ExtResource("3_kpaw8")
|
script = ExtResource("3_laquj")
|
||||||
autoplay = true
|
autoplay_group = &"c02_楼道1"
|
||||||
bus = &"game_sfx"
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
script = ExtResource("4_20mbg")
|
|
||||||
mode = "场景背景音"
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
light_mask = 5
|
light_mask = 5
|
||||||
@ -204,7 +197,7 @@ texture = ExtResource("8_mrltr")
|
|||||||
[node name="Closeup戏台" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_2yvhw")]
|
[node name="Closeup戏台" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_2yvhw")]
|
||||||
position = Vector2(320, 23)
|
position = Vector2(320, 23)
|
||||||
packed_scene = ExtResource("11_2yvhw")
|
packed_scene = ExtResource("11_2yvhw")
|
||||||
enable_snapper = null
|
first_interact_os_key = "c02_一楼戏台"
|
||||||
|
|
||||||
[node name="Note一楼内侧通道" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_8t4w6")]
|
[node name="Note一楼内侧通道" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_8t4w6")]
|
||||||
position = Vector2(394, 26)
|
position = Vector2(394, 26)
|
||||||
@ -222,7 +215,7 @@ texture = ExtResource("15_s2g5k")
|
|||||||
|
|
||||||
[node name="Interactable粘鼠板" parent="Ground/DeployLayer" index="10" instance=ExtResource("13_uj0pt")]
|
[node name="Interactable粘鼠板" parent="Ground/DeployLayer" index="10" instance=ExtResource("13_uj0pt")]
|
||||||
position = Vector2(604, 81)
|
position = Vector2(604, 81)
|
||||||
enable_snapper = null
|
first_interact_os_key = "c02_一楼粘鼠板"
|
||||||
disable_prop_after_interacted = true
|
disable_prop_after_interacted = true
|
||||||
interacted_texture = ExtResource("16_jknyg")
|
interacted_texture = ExtResource("16_jknyg")
|
||||||
prop_key = "prop_粘鼠板"
|
prop_key = "prop_粘鼠板"
|
||||||
|
@ -40,7 +40,13 @@ func _on_ground_ready() -> void:
|
|||||||
mice_hole.enabled = true
|
mice_hole.enabled = true
|
||||||
else:
|
else:
|
||||||
mice_hole.enabled = false
|
mice_hole.enabled = false
|
||||||
gas_light_upon_hole.lighted.connect(func(): mice_hole.enabled = true)
|
gas_light_upon_hole.lighted.connect(func():
|
||||||
|
mice_hole.enabled = true
|
||||||
|
get_tree().create_timer(1.5).timeout.connect(
|
||||||
|
SceneManager.pop_os_with_str.bind(tr("c02_二楼血脚印"))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
closeup_ball = $"../DeployLayer/Closeup弹珠游戏" as Closeup2D
|
closeup_ball = $"../DeployLayer/Closeup弹珠游戏" as Closeup2D
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
[ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_animation.gd" id="2_4dg6u"]
|
[ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_animation.gd" id="2_4dg6u"]
|
||||||
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_h3h1a"]
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_h3h1a"]
|
||||||
[ext_resource type="Texture2D" uid="uid://6ol2om68cd1q" path="res://asset/art/scene/c02/s06_二楼楼道/bg_背景.png" id="3_och2w"]
|
[ext_resource type="Texture2D" uid="uid://6ol2om68cd1q" path="res://asset/art/scene/c02/s06_二楼楼道/bg_背景.png" id="3_och2w"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dvc2emnfcmabx" path="res://asset/audio/sfx/环境音/白噪音/白噪声楼道1.wav" id="3_tqnu8"]
|
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_2e08x"]
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_2e08x"]
|
||||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_haidv"]
|
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_haidv"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="5_3p5ta"]
|
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="5_3p5ta"]
|
||||||
@ -17,6 +16,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://b7uo33bdiwpl3" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光4.png" id="8_7x2h6"]
|
[ext_resource type="Texture2D" uid="uid://b7uo33bdiwpl3" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光4.png" id="8_7x2h6"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://blij4obvhb1vf" path="res://asset/art/gif/c02_公寓过道/c02_公寓过道_frames.tres" id="8_nh8we"]
|
[ext_resource type="SpriteFrames" uid="uid://blij4obvhb1vf" path="res://asset/art/gif/c02_公寓过道/c02_公寓过道_frames.tres" id="8_nh8we"]
|
||||||
[ext_resource type="PackedScene" uid="uid://8frowlq301" path="res://scene/ground/script/c02/s00_跟随的老鼠.tscn" id="9_58d45"]
|
[ext_resource type="PackedScene" uid="uid://8frowlq301" path="res://scene/ground/script/c02/s00_跟随的老鼠.tscn" id="9_58d45"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="10_h3h1a"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://c8dl7c68f1yb0" path="res://asset/art/gif/c02_二楼/c02_二楼_frames.tres" id="10_och2w"]
|
[ext_resource type="SpriteFrames" uid="uid://c8dl7c68f1yb0" path="res://asset/art/gif/c02_二楼/c02_二楼_frames.tres" id="10_och2w"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="10_p6da7"]
|
[ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="10_p6da7"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="11_owxx3"]
|
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="11_owxx3"]
|
||||||
@ -851,27 +851,16 @@ oneshot_animation = ""
|
|||||||
|
|
||||||
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
script = ExtResource("3_h3h1a")
|
script = ExtResource("3_h3h1a")
|
||||||
|
autoplay_group = &"c02_楼道2"
|
||||||
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
[node name="Sfx翻找东西" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
||||||
stream = ExtResource("3_tqnu8")
|
|
||||||
volume_db = -3.0
|
|
||||||
autoplay = true
|
|
||||||
bus = &"game_sfx"
|
|
||||||
script = ExtResource("4_2e08x")
|
|
||||||
mode = "场景背景音"
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="Sfx翻找东西" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
|
|
||||||
stream = ExtResource("5_lh55k")
|
stream = ExtResource("5_lh55k")
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("4_2e08x")
|
script = ExtResource("4_2e08x")
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="Sfx擦亮火柴" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"]
|
[node name="Sfx擦亮火柴" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
|
||||||
stream = ExtResource("5_wywax")
|
stream = ExtResource("5_wywax")
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("4_2e08x")
|
script = ExtResource("4_2e08x")
|
||||||
@ -902,8 +891,8 @@ status = "locked"
|
|||||||
matched_sign_texture = null
|
matched_sign_texture = null
|
||||||
|
|
||||||
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("4_haidv")]
|
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("4_haidv")]
|
||||||
position = Vector2(797, 17)
|
position = Vector2(222, 14)
|
||||||
debug_note = "瞎子卧室"
|
debug_note = "瞎子理发店"
|
||||||
portal_name = "2"
|
portal_name = "2"
|
||||||
target_scene = "c03_s01"
|
target_scene = "c03_s01"
|
||||||
holding = true
|
holding = true
|
||||||
@ -915,7 +904,13 @@ prop_key = "prop_2014钥匙"
|
|||||||
position = Vector2(802, -76)
|
position = Vector2(802, -76)
|
||||||
texture = ExtResource("7_v3hjg")
|
texture = ExtResource("7_v3hjg")
|
||||||
|
|
||||||
[node name="Pro小蝉上楼" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_p6da7")]
|
[node name="Note楼梯杂物堆" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_h3h1a")]
|
||||||
|
position = Vector2(801, 46)
|
||||||
|
sign_mark_offset = Vector2(0, -100)
|
||||||
|
title_filter = "c02"
|
||||||
|
note_key = "c02_二楼楼梯杂物堆"
|
||||||
|
|
||||||
|
[node name="Pro小蝉上楼" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_p6da7")]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(646, 63)
|
position = Vector2(646, 63)
|
||||||
sprite_frames = ExtResource("23_2e08x")
|
sprite_frames = ExtResource("23_2e08x")
|
||||||
@ -930,12 +925,10 @@ move_configs = Array[Dictionary]([{
|
|||||||
}])
|
}])
|
||||||
debug_mov_animation = "小小小蝶动画(跑)"
|
debug_mov_animation = "小小小蝶动画(跑)"
|
||||||
|
|
||||||
[node name="煤油灯" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_3p5ta")]
|
[node name="煤油灯" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_3p5ta")]
|
||||||
position = Vector2(616, -14)
|
position = Vector2(616, -14)
|
||||||
ground_light_texture = ExtResource("8_7x2h6")
|
ground_light_texture = ExtResource("8_7x2h6")
|
||||||
ground_height_offset = 15.0
|
ground_height_offset = 15.0
|
||||||
enable_snapper = null
|
|
||||||
one_shot = false
|
|
||||||
disable_prop_after_interacted = true
|
disable_prop_after_interacted = true
|
||||||
|
|
||||||
[node name="CollisionShape2D" parent="Ground/DeployLayer/煤油灯/Area2D" index="0"]
|
[node name="CollisionShape2D" parent="Ground/DeployLayer/煤油灯/Area2D" index="0"]
|
||||||
@ -945,37 +938,34 @@ shape = SubResource("RectangleShape2D_lh55k")
|
|||||||
position = Vector2(0, 15)
|
position = Vector2(0, 15)
|
||||||
texture = ExtResource("8_7x2h6")
|
texture = ExtResource("8_7x2h6")
|
||||||
|
|
||||||
[node name="煤油灯2" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_3p5ta")]
|
[node name="煤油灯2" parent="Ground/DeployLayer" index="8" instance=ExtResource("5_3p5ta")]
|
||||||
position = Vector2(329, -14)
|
position = Vector2(329, -14)
|
||||||
ground_light_texture = ExtResource("6_vbvbc")
|
ground_light_texture = ExtResource("6_vbvbc")
|
||||||
gaslight_energy = 2.0
|
gaslight_energy = 2.0
|
||||||
ground_height_offset = 15.0
|
ground_height_offset = 15.0
|
||||||
enable_snapper = null
|
|
||||||
one_shot = false
|
|
||||||
disable_prop_after_interacted = true
|
disable_prop_after_interacted = true
|
||||||
|
|
||||||
[node name="Interactable老鼠洞" parent="Ground/DeployLayer" index="8" instance=ExtResource("7_0d746")]
|
[node name="Interactable老鼠洞" parent="Ground/DeployLayer" index="9" instance=ExtResource("7_0d746")]
|
||||||
position = Vector2(610, 50)
|
position = Vector2(610, 50)
|
||||||
enabled = false
|
enabled = false
|
||||||
enable_snapper = null
|
|
||||||
one_shot_max_times = 2
|
one_shot_max_times = 2
|
||||||
disable_prop_after_interacted = true
|
disable_prop_after_interacted = true
|
||||||
prop_key = "prop_小鞋子1"
|
prop_key = "prop_小鞋子1"
|
||||||
prop_key2 = "prop_小鞋子2"
|
prop_key2 = "prop_小鞋子2"
|
||||||
|
|
||||||
[node name="小老鼠拖鞋子" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="9"]
|
[node name="小老鼠拖鞋子" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="10"]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(608, -15)
|
position = Vector2(608, -15)
|
||||||
sprite_frames = ExtResource("8_nh8we")
|
sprite_frames = ExtResource("8_nh8we")
|
||||||
animation = &"老鼠托小鞋子"
|
animation = &"老鼠托小鞋子"
|
||||||
speed_scale = -1.0
|
speed_scale = -1.0
|
||||||
|
|
||||||
[node name="自动跟随的老鼠" parent="Ground/DeployLayer" index="10" instance=ExtResource("9_58d45")]
|
[node name="自动跟随的老鼠" parent="Ground/DeployLayer" index="11" instance=ExtResource("9_58d45")]
|
||||||
position = Vector2(4, 73)
|
position = Vector2(4, 73)
|
||||||
action_area = Vector2(920, 40)
|
action_area = Vector2(920, 40)
|
||||||
distance_to_player_range = Vector2(20, 150)
|
distance_to_player_range = Vector2(20, 150)
|
||||||
|
|
||||||
[node name="疯子撞墙" parent="Ground/DeployLayer" index="11" instance=ExtResource("10_p6da7")]
|
[node name="疯子撞墙" parent="Ground/DeployLayer" index="12" instance=ExtResource("10_p6da7")]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(221, 4)
|
position = Vector2(221, 4)
|
||||||
sprite_frames = ExtResource("10_och2w")
|
sprite_frames = ExtResource("10_och2w")
|
||||||
@ -1000,7 +990,7 @@ loop = true
|
|||||||
loop_round_time = 1.0
|
loop_round_time = 1.0
|
||||||
metadata/_custom_type_script = "uid://wapo47a1oddf"
|
metadata/_custom_type_script = "uid://wapo47a1oddf"
|
||||||
|
|
||||||
[node name="Ambush三男孩" parent="Ground/DeployLayer" index="12" instance=ExtResource("14_k01ve")]
|
[node name="Ambush三男孩" parent="Ground/DeployLayer" index="13" instance=ExtResource("14_k01ve")]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(167, 38)
|
position = Vector2(167, 38)
|
||||||
enabled = false
|
enabled = false
|
||||||
@ -1017,25 +1007,23 @@ autoplay = "f3"
|
|||||||
frame = 6
|
frame = 6
|
||||||
frame_progress = 0.121203
|
frame_progress = 0.121203
|
||||||
|
|
||||||
[node name="Closeup弹珠游戏" parent="Ground/DeployLayer" index="13" instance=ExtResource("11_owxx3")]
|
[node name="Closeup弹珠游戏" parent="Ground/DeployLayer" index="14" instance=ExtResource("11_owxx3")]
|
||||||
position = Vector2(322, -269)
|
position = Vector2(322, -269)
|
||||||
packed_scene = ExtResource("12_intre")
|
packed_scene = ExtResource("12_intre")
|
||||||
quit_closeup_on_escape = false
|
quit_closeup_on_escape = false
|
||||||
enable_snapper = null
|
|
||||||
|
|
||||||
[node name="Closeup水盆" parent="Ground/DeployLayer" index="14" instance=ExtResource("11_owxx3")]
|
[node name="Closeup水盆" parent="Ground/DeployLayer" index="15" instance=ExtResource("11_owxx3")]
|
||||||
position = Vector2(289, 16)
|
position = Vector2(289, 16)
|
||||||
packed_scene = ExtResource("16_p6da7")
|
packed_scene = ExtResource("16_p6da7")
|
||||||
enable_snapper = null
|
first_interact_os_key = "c02_二楼水盆"
|
||||||
|
|
||||||
[node name="Closeup谢幕演出" parent="Ground/DeployLayer" index="15" instance=ExtResource("11_owxx3")]
|
[node name="Closeup谢幕演出" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_owxx3")]
|
||||||
position = Vector2(518, -272)
|
position = Vector2(518, -272)
|
||||||
action_key = 3
|
|
||||||
packed_scene = ExtResource("25_m28ab")
|
packed_scene = ExtResource("25_m28ab")
|
||||||
quit_closeup_on_escape = false
|
quit_closeup_on_escape = false
|
||||||
enable_snapper = null
|
action_key = 3
|
||||||
|
|
||||||
[node name="c02_final" type="Node2D" parent="Ground/DeployLayer" index="16"]
|
[node name="c02_final" type="Node2D" parent="Ground/DeployLayer" index="17"]
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="胖子" parent="Ground/DeployLayer/c02_final" instance=ExtResource("10_p6da7")]
|
[node name="胖子" parent="Ground/DeployLayer/c02_final" instance=ExtResource("10_p6da7")]
|
||||||
@ -1137,7 +1125,7 @@ color = Color(0.895506, 0.638359, 0.208885, 1)
|
|||||||
energy = 0.0
|
energy = 0.0
|
||||||
texture = SubResource("GradientTexture2D_p6da7")
|
texture = SubResource("GradientTexture2D_p6da7")
|
||||||
|
|
||||||
[node name="Local寻人启事" parent="Ground/DeployLayer" index="17" instance=ExtResource("32_4ndyv")]
|
[node name="Local寻人启事" parent="Ground/DeployLayer" index="18" instance=ExtResource("32_4ndyv")]
|
||||||
position = Vector2(749, -2)
|
position = Vector2(749, -2)
|
||||||
texture = ExtResource("33_h3h1a")
|
texture = ExtResource("33_h3h1a")
|
||||||
texture_cover = ExtResource("34_3u30v")
|
texture_cover = ExtResource("34_3u30v")
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
[gd_scene load_steps=14 format=3 uid="uid://t4xjt774ngwh"]
|
[gd_scene load_steps=15 format=3 uid="uid://t4xjt774ngwh"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_oao56"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_oao56"]
|
||||||
[ext_resource type="Script" uid="uid://cnjdxjni5v3cs" path="res://scene/ground/scene/c02/s07_animation.gd" id="2_t0s64"]
|
[ext_resource type="Script" uid="uid://cnjdxjni5v3cs" path="res://scene/ground/scene/c02/s07_animation.gd" id="2_t0s64"]
|
||||||
[ext_resource type="AudioStream" uid="uid://m6av0abbhyco" path="res://asset/audio/sfx/环境音/第一章/楼道场景3.wav" id="3_s75vl"]
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_geise"]
|
||||||
[ext_resource type="Texture2D" uid="uid://u7rp66mboqq4" path="res://asset/art/scene/c02/s07_二楼内侧楼道/bg_背景.png" id="3_t0s64"]
|
[ext_resource type="Texture2D" uid="uid://u7rp66mboqq4" path="res://asset/art/scene/c02/s07_二楼内侧楼道/bg_背景.png" id="3_t0s64"]
|
||||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_5krke"]
|
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_5krke"]
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_sv27p"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bim6w1xp1a4bg" path="res://asset/art/scene/c02/s07_二楼内侧楼道/锡箔墙面涂鸦提示.png" id="5_6ivku"]
|
[ext_resource type="Texture2D" uid="uid://bim6w1xp1a4bg" path="res://asset/art/scene/c02/s07_二楼内侧楼道/锡箔墙面涂鸦提示.png" id="5_6ivku"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="5_u2dyp"]
|
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="5_u2dyp"]
|
||||||
[ext_resource type="PackedScene" uid="uid://xovlfee503a4" path="res://scene/ground/script/c02/小手讨东西.tscn" id="6_5krke"]
|
[ext_resource type="PackedScene" uid="uid://xovlfee503a4" path="res://scene/ground/script/c02/小手讨东西.tscn" id="6_5krke"]
|
||||||
@ -13,6 +12,8 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="9_6ivku"]
|
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="9_6ivku"]
|
||||||
[ext_resource type="Texture2D" uid="uid://be0fw5y3yipr4" path="res://asset/art/prop/c02/海报(小)/戏法班.png" id="10_6ivku"]
|
[ext_resource type="Texture2D" uid="uid://be0fw5y3yipr4" path="res://asset/art/prop/c02/海报(小)/戏法班.png" id="10_6ivku"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cj2snkcyjhcb7" path="res://scene/ground/script/c02/刮海报_二楼内侧.tscn" id="11_vxng8"]
|
[ext_resource type="PackedScene" uid="uid://cj2snkcyjhcb7" path="res://scene/ground/script/c02/刮海报_二楼内侧.tscn" id="11_vxng8"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="13_s75vl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dfosrexfvxsn0" path="res://asset/art/scene/c02/杂物/老鼠洞通用.png" id="14_sv27p"]
|
||||||
|
|
||||||
[node name="S07" type="Node2D"]
|
[node name="S07" type="Node2D"]
|
||||||
|
|
||||||
@ -28,16 +29,10 @@ data = {
|
|||||||
}
|
}
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
stream = ExtResource("3_s75vl")
|
script = ExtResource("3_geise")
|
||||||
autoplay = true
|
autoplay_group = &"c02_楼道2"
|
||||||
bus = &"game_sfx"
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
script = ExtResource("4_sv27p")
|
|
||||||
mode = "场景背景音"
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("3_t0s64")
|
texture = ExtResource("3_t0s64")
|
||||||
@ -81,8 +76,15 @@ position = Vector2(-5, 78)
|
|||||||
[node name="Closeup刮海报" parent="Ground/DeployLayer" index="7" instance=ExtResource("9_6ivku")]
|
[node name="Closeup刮海报" parent="Ground/DeployLayer" index="7" instance=ExtResource("9_6ivku")]
|
||||||
position = Vector2(292, -11)
|
position = Vector2(292, -11)
|
||||||
texture = ExtResource("10_6ivku")
|
texture = ExtResource("10_6ivku")
|
||||||
first_interact_os_key = "c02_海报_戏法班"
|
|
||||||
packed_scene = ExtResource("11_vxng8")
|
packed_scene = ExtResource("11_vxng8")
|
||||||
|
first_interact_os_key = "c02_海报_戏法班"
|
||||||
|
|
||||||
|
[node name="Note老鼠洞" parent="Ground/DeployLayer" index="8" instance=ExtResource("13_s75vl")]
|
||||||
|
position = Vector2(207, 69)
|
||||||
|
texture = ExtResource("14_sv27p")
|
||||||
|
sign_mark_offset = Vector2(0, -7.38)
|
||||||
|
title_filter = "c02"
|
||||||
|
note_key = "c02_二楼老鼠洞"
|
||||||
|
|
||||||
[node name="MainPlayer" parent="Ground" index="4"]
|
[node name="MainPlayer" parent="Ground" index="4"]
|
||||||
position = Vector2(41, 98)
|
position = Vector2(41, 98)
|
||||||
|
@ -4,7 +4,10 @@ extends AnimationRoot
|
|||||||
|
|
||||||
# 覆盖该方法
|
# 覆盖该方法
|
||||||
func _default_data() -> Dictionary:
|
func _default_data() -> Dictionary:
|
||||||
return {"hole_interacted_times": 0}
|
return {
|
||||||
|
"hole_interacted_times": 0,
|
||||||
|
"first_entered": true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -57,6 +60,10 @@ func _on_ground_ready() -> void:
|
|||||||
boxcat_portal.get_node("Sprite2D").texture = preload("uid://b8sv81cw7mcn4") # e_墙上纸张_blood
|
boxcat_portal.get_node("Sprite2D").texture = preload("uid://b8sv81cw7mcn4") # e_墙上纸张_blood
|
||||||
$"../DeployLayer/Note画上脚印".enabled = true
|
$"../DeployLayer/Note画上脚印".enabled = true
|
||||||
|
|
||||||
|
if data["first_entered"]:
|
||||||
|
set_data("first_entered", false)
|
||||||
|
SceneManager.pop_os_with_str("c02_离开红色演出")
|
||||||
|
|
||||||
|
|
||||||
var interacting = false:
|
var interacting = false:
|
||||||
set(val):
|
set(val):
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"]
|
||||||
[ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"]
|
[ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"]
|
||||||
[ext_resource type="Texture2D" uid="uid://v3sj36aijq5b" path="res://asset/art/scene/c02/s08_瞎子卧室/bg_瞎子卧室.png" id="3_iares"]
|
[ext_resource type="Texture2D" uid="uid://v3sj36aijq5b" path="res://asset/art/scene/c02/s08_瞎子卧室/bg_瞎子卧室.png" id="3_iares"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_quq80"]
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_t3h08"]
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_t3h08"]
|
||||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_1ws4i"]
|
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_1ws4i"]
|
||||||
[ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="4_gx8oy"]
|
[ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="4_gx8oy"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dthm5gd1sc16" path="res://asset/audio/sfx/环境音/第一章/房间内部场景2.wav" id="4_vjjde"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://dk3e1w3n2snur" path="res://asset/audio/sfx/旧版/c02/纸人出现.mp3" id="5_0qeqe"]
|
[ext_resource type="AudioStream" uid="uid://dk3e1w3n2snur" path="res://asset/audio/sfx/旧版/c02/纸人出现.mp3" id="5_0qeqe"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b5pwb4fm46sad" path="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png" id="5_f6mma"]
|
[ext_resource type="Texture2D" uid="uid://b5pwb4fm46sad" path="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png" id="5_f6mma"]
|
||||||
[ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_vjjde"]
|
[ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_vjjde"]
|
||||||
@ -76,11 +76,11 @@ _data = {
|
|||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a48k2"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a48k2"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
size = Vector2(5, 70)
|
size = Vector2(20, 70)
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kwj7c"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kwj7c"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
size = Vector2(10, 70)
|
size = Vector2(25, 70)
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_f6mma"]
|
[sub_resource type="Gradient" id="Gradient_f6mma"]
|
||||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1)
|
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1)
|
||||||
@ -112,21 +112,16 @@ libraries = {
|
|||||||
}
|
}
|
||||||
script = ExtResource("2_m4uw8")
|
script = ExtResource("2_m4uw8")
|
||||||
data = {
|
data = {
|
||||||
|
"first_entered": true,
|
||||||
"hole_interacted_times": 0,
|
"hole_interacted_times": 0,
|
||||||
"oneshot_animation_played": false
|
"oneshot_animation_played": false
|
||||||
}
|
}
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
stream = ExtResource("4_vjjde")
|
script = ExtResource("3_quq80")
|
||||||
autoplay = true
|
autoplay_group = &"c02_房间里2"
|
||||||
bus = &"game_sfx"
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
script = ExtResource("3_t3h08")
|
|
||||||
mode = "场景背景音"
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="Sfx癞子对视惊吓" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
[node name="Sfx癞子对视惊吓" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
||||||
stream = ExtResource("5_0qeqe")
|
stream = ExtResource("5_0qeqe")
|
||||||
@ -380,7 +375,7 @@ texture = ExtResource("4_gx8oy")
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(580, 150, 690, 150)
|
points = PackedVector2Array(580, 150, 690, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
energy = 0.9
|
energy = 0.9
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
@ -903,12 +903,12 @@ position = Vector2(3421, 25)
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(80, 150, 4500.93, 150)
|
points = PackedVector2Array(80, 150, 4500.93, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
energy = 0.7
|
energy = 0.7
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
[node name="UIPointLight2D" parent="Ground" index="10"]
|
[node name="UIPointLight2D" parent="Ground" index="9"]
|
||||||
position = Vector2(7016, -4)
|
position = Vector2(7016, -4)
|
||||||
|
|
||||||
[editable path="Ground"]
|
[editable path="Ground"]
|
||||||
|
@ -188,6 +188,8 @@ func _on_pick_catty_head() -> void:
|
|||||||
await sprite.animation_finished
|
await sprite.animation_finished
|
||||||
sprite.visible = false
|
sprite.visible = false
|
||||||
SceneManager.enable_prop_item("prop_小猫玩具完整")
|
SceneManager.enable_prop_item("prop_小猫玩具完整")
|
||||||
|
await SceneManager.get_inspector().quit_and_hidden
|
||||||
|
SceneManager.pop_os_with_str(tr("c02_获得小猫玩具"))
|
||||||
# 进过瞎子卧室后,通道关闭
|
# 进过瞎子卧室后,通道关闭
|
||||||
if not ArchiveManager.get_global_value("c02_the_blind_room_unlocked"):
|
if not ArchiveManager.get_global_value("c02_the_blind_room_unlocked"):
|
||||||
portal_note.enabled = true
|
portal_note.enabled = true
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
[gd_scene load_steps=26 format=3 uid="uid://dny21yhtuteap"]
|
[gd_scene load_steps=25 format=3 uid="uid://dny21yhtuteap"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_w7j0m"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_w7j0m"]
|
||||||
[ext_resource type="Script" uid="uid://dkkey7qillk15" path="res://scene/ground/scene/c02/s10_animation.gd" id="2_egtqi"]
|
[ext_resource type="Script" uid="uid://dkkey7qillk15" path="res://scene/ground/scene/c02/s10_animation.gd" id="2_egtqi"]
|
||||||
[ext_resource type="AudioStream" uid="uid://6gttowdwmado" path="res://asset/audio/sfx/环境音/第一章/房间内部场景1.wav" id="3_chbaa"]
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_kqj5r"]
|
||||||
[ext_resource type="Texture2D" uid="uid://molvyfyy63ik" path="res://asset/art/scene/c02/s10_空房间/bg_空房间.png" id="3_ox8et"]
|
[ext_resource type="Texture2D" uid="uid://molvyfyy63ik" path="res://asset/art/scene/c02/s10_空房间/bg_空房间.png" id="3_ox8et"]
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_chbaa"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="5_ylhfc"]
|
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="5_ylhfc"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="6_27dvh"]
|
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="6_27dvh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cuno8okh8ytw2" path="res://asset/art/scene/c02/s10_空房间/柜子.png" id="6_mty8e"]
|
[ext_resource type="Texture2D" uid="uid://cuno8okh8ytw2" path="res://asset/art/scene/c02/s10_空房间/柜子.png" id="6_mty8e"]
|
||||||
@ -83,16 +82,10 @@ data = {
|
|||||||
}
|
}
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="背景音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
stream = ExtResource("3_chbaa")
|
script = ExtResource("3_kqj5r")
|
||||||
autoplay = true
|
autoplay_group = &"c02_房间里1"
|
||||||
bus = &"game_sfx"
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
script = ExtResource("4_chbaa")
|
|
||||||
mode = "场景背景音"
|
|
||||||
"自动开始" = true
|
|
||||||
"循环播放" = true
|
|
||||||
"感应玩家操作" = false
|
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
position = Vector2(26, 0)
|
position = Vector2(26, 0)
|
||||||
@ -188,13 +181,9 @@ texture = ExtResource("12_27dvh")
|
|||||||
position = Vector2(373, -13.8031)
|
position = Vector2(373, -13.8031)
|
||||||
gaslight_energy = 2.0
|
gaslight_energy = 2.0
|
||||||
gaslight_ground_energy = 2.0
|
gaslight_ground_energy = 2.0
|
||||||
enable_snapper = null
|
|
||||||
collision_width_and_x = true
|
|
||||||
mute_when_interacted = false
|
mute_when_interacted = false
|
||||||
one_shot = false
|
one_shot = false
|
||||||
one_shot_max_times = true
|
disable_prop_after_interacted = true
|
||||||
disable_prop_after_interacted = 1
|
|
||||||
interacted_texture = false
|
|
||||||
|
|
||||||
[node name="拼接小猫玩具" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
|
[node name="拼接小猫玩具" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
|
||||||
visible = false
|
visible = false
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=8 format=3 uid="uid://da4cuf2i3nwpj"]
|
[gd_scene load_steps=9 format=3 uid="uid://da4cuf2i3nwpj"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ngo77"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ngo77"]
|
||||||
[ext_resource type="Script" uid="uid://cyd1xo106unfk" path="res://scene/ground/scene/c02/s12_animation.gd" id="2_7ah3n"]
|
[ext_resource type="Script" uid="uid://cyd1xo106unfk" path="res://scene/ground/scene/c02/s12_animation.gd" id="2_7ah3n"]
|
||||||
@ -6,6 +6,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://yn00uls1kvn3" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png" id="3_oskpk"]
|
[ext_resource type="Texture2D" uid="uid://yn00uls1kvn3" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png" id="3_oskpk"]
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_r3hvb"]
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_r3hvb"]
|
||||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="4_vv3sh"]
|
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="4_vv3sh"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="5_72mc1"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://b85gyfhk1mg6r" path="res://asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres" id="5_ycgng"]
|
[ext_resource type="SpriteFrames" uid="uid://b85gyfhk1mg6r" path="res://asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres" id="5_ycgng"]
|
||||||
|
|
||||||
[node name="S12" type="Node2D"]
|
[node name="S12" type="Node2D"]
|
||||||
@ -26,6 +27,11 @@ bus = &"game_sfx"
|
|||||||
script = ExtResource("4_r3hvb")
|
script = ExtResource("4_r3hvb")
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="1"]
|
||||||
|
script = ExtResource("5_72mc1")
|
||||||
|
autoplay_group = &"c02_房间里1"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("3_oskpk")
|
texture = ExtResource("3_oskpk")
|
||||||
offset = Vector2(0, -103.7)
|
offset = Vector2(0, -103.7)
|
||||||
@ -58,7 +64,7 @@ position = Vector2(3584, -7)
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(37, 150, 400, 150)
|
points = PackedVector2Array(37, 150, 400, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("4_vv3sh")]
|
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("4_vv3sh")]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://bvjutch6jex0v"]
|
[gd_scene load_steps=13 format=3 uid="uid://bvjutch6jex0v"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_71lma"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_71lma"]
|
||||||
[ext_resource type="Script" uid="uid://28ujp27cbdh2" path="res://scene/ground/scene/c02/s13_animation.gd" id="2_w5nqu"]
|
[ext_resource type="Script" uid="uid://28ujp27cbdh2" path="res://scene/ground/scene/c02/s13_animation.gd" id="2_w5nqu"]
|
||||||
@ -7,6 +7,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_yywsi"]
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_yywsi"]
|
||||||
[ext_resource type="AudioStream" uid="uid://b8sbtn3l37uh" path="res://asset/audio/sfx/旧版/c02/红屏.mp3" id="5_yywsi"]
|
[ext_resource type="AudioStream" uid="uid://b8sbtn3l37uh" path="res://asset/audio/sfx/旧版/c02/红屏.mp3" id="5_yywsi"]
|
||||||
[ext_resource type="Texture2D" uid="uid://csrfyvaufo1wb" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/l_瞎子理发店光.png" id="6_gge8e"]
|
[ext_resource type="Texture2D" uid="uid://csrfyvaufo1wb" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/l_瞎子理发店光.png" id="6_gge8e"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="6_kmk38"]
|
||||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_yywsi"]
|
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_yywsi"]
|
||||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="7_u2fv1"]
|
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="7_u2fv1"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="9_yywsi"]
|
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="9_yywsi"]
|
||||||
@ -36,6 +37,11 @@ bus = &"game_sfx"
|
|||||||
script = ExtResource("4_yywsi")
|
script = ExtResource("4_yywsi")
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="2"]
|
||||||
|
script = ExtResource("6_kmk38")
|
||||||
|
autoplay_group = &"c02_房间里1"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("3_miykx")
|
texture = ExtResource("3_miykx")
|
||||||
offset = Vector2(0, -102)
|
offset = Vector2(0, -102)
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://d0p4x5st2r315"]
|
[gd_scene load_steps=8 format=3 uid="uid://d0p4x5st2r315"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_cr1hi"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_cr1hi"]
|
||||||
[ext_resource type="Script" uid="uid://bjisuntcem2lv" path="res://scene/ground/scene/c02/s14_animation.gd" id="2_o47bv"]
|
[ext_resource type="Script" uid="uid://bjisuntcem2lv" path="res://scene/ground/scene/c02/s14_animation.gd" id="2_o47bv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://y0e47513ca22" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼内侧楼道(粉笔画).png" id="3_cr1hi"]
|
[ext_resource type="Texture2D" uid="uid://y0e47513ca22" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼内侧楼道(粉笔画).png" id="3_cr1hi"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_idisw"]
|
||||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_o47bv"]
|
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_o47bv"]
|
||||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_cr1hi"]
|
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_cr1hi"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="5_o47bv"]
|
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="5_o47bv"]
|
||||||
@ -19,6 +20,11 @@ footstep_type = "盒子猫"
|
|||||||
script = ExtResource("2_o47bv")
|
script = ExtResource("2_o47bv")
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
script = ExtResource("3_idisw")
|
||||||
|
autoplay_group = &"c02_房间里1"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("3_cr1hi")
|
texture = ExtResource("3_cr1hi")
|
||||||
offset = Vector2(0, -102)
|
offset = Vector2(0, -102)
|
||||||
@ -49,7 +55,7 @@ character = "盒子猫"
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(101, 150, 660, 150)
|
points = PackedVector2Array(101, 150, 660, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("5_cr1hi")]
|
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("5_cr1hi")]
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://b21p53g42j2nt"]
|
[gd_scene load_steps=7 format=3 uid="uid://b21p53g42j2nt"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qxg0l"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qxg0l"]
|
||||||
[ext_resource type="Script" uid="uid://ebaq235h32fd" path="res://scene/ground/scene/c02/s15_animation.gd" id="2_etqjj"]
|
[ext_resource type="Script" uid="uid://ebaq235h32fd" path="res://scene/ground/scene/c02/s15_animation.gd" id="2_etqjj"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_etqjj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c4eb71kdnqy3y" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼内侧楼道(粉笔画).png" id="3_qxg0l"]
|
[ext_resource type="Texture2D" uid="uid://c4eb71kdnqy3y" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼内侧楼道(粉笔画).png" id="3_qxg0l"]
|
||||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_isic3"]
|
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_isic3"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_etqjj"]
|
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_etqjj"]
|
||||||
@ -18,6 +19,11 @@ footstep_type = "盒子猫"
|
|||||||
script = ExtResource("2_etqjj")
|
script = ExtResource("2_etqjj")
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
script = ExtResource("3_etqjj")
|
||||||
|
autoplay_group = &"c02_房间里1"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("3_qxg0l")
|
texture = ExtResource("3_qxg0l")
|
||||||
offset = Vector2(0, -102)
|
offset = Vector2(0, -102)
|
||||||
@ -46,7 +52,7 @@ position = Vector2(-1, -15)
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(125, 150, 660, 150)
|
points = PackedVector2Array(125, 150, 660, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=8 format=3 uid="uid://22hc3oe8t0id"]
|
[gd_scene load_steps=9 format=3 uid="uid://22hc3oe8t0id"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_umyae"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_umyae"]
|
||||||
[ext_resource type="Script" uid="uid://dx2w5v1erjyls" path="res://scene/ground/scene/c02/s16_animation.gd" id="2_tmnwc"]
|
[ext_resource type="Script" uid="uid://dx2w5v1erjyls" path="res://scene/ground/scene/c02/s16_animation.gd" id="2_tmnwc"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_r8qm5"]
|
||||||
[ext_resource type="Texture2D" uid="uid://by4ymjhnma8c6" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_三楼内侧楼道(粉笔画).png" id="3_tmnwc"]
|
[ext_resource type="Texture2D" uid="uid://by4ymjhnma8c6" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_三楼内侧楼道(粉笔画).png" id="3_tmnwc"]
|
||||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_qkv3g"]
|
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_qkv3g"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_qkv3g"]
|
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_qkv3g"]
|
||||||
@ -20,6 +21,11 @@ footstep_type = "盒子猫"
|
|||||||
script = ExtResource("2_tmnwc")
|
script = ExtResource("2_tmnwc")
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
script = ExtResource("3_r8qm5")
|
||||||
|
autoplay_group = &"c02_房间里1"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("3_tmnwc")
|
texture = ExtResource("3_tmnwc")
|
||||||
offset = Vector2(0, -102)
|
offset = Vector2(0, -102)
|
||||||
@ -58,7 +64,7 @@ position = Vector2(3584, -7)
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(37, 150, 655, 150)
|
points = PackedVector2Array(37, 150, 655, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
[gd_scene load_steps=8 format=3 uid="uid://cbr6gbgrl2wb1"]
|
[gd_scene load_steps=9 format=3 uid="uid://cbr6gbgrl2wb1"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_e436a"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_e436a"]
|
||||||
[ext_resource type="Script" uid="uid://bkkhxiyblu2lo" path="res://scene/ground/scene/c02/s17_animation.gd" id="2_e436a"]
|
[ext_resource type="Script" uid="uid://bkkhxiyblu2lo" path="res://scene/ground/scene/c02/s17_animation.gd" id="2_e436a"]
|
||||||
[ext_resource type="Texture2D" uid="uid://iyeqjguyrhog" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_三楼楼道(粉笔画).png" id="3_e436a"]
|
[ext_resource type="Texture2D" uid="uid://iyeqjguyrhog" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_三楼楼道(粉笔画).png" id="3_e436a"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_uua76"]
|
||||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_e436a"]
|
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_e436a"]
|
||||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="4_n3bxc"]
|
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="4_n3bxc"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_pfgbg"]
|
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_pfgbg"]
|
||||||
@ -20,6 +21,11 @@ footstep_type = "盒子猫"
|
|||||||
script = ExtResource("2_e436a")
|
script = ExtResource("2_e436a")
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
script = ExtResource("3_uua76")
|
||||||
|
autoplay_group = &"c02_房间里1"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("3_e436a")
|
texture = ExtResource("3_e436a")
|
||||||
offset = Vector2(0, -102)
|
offset = Vector2(0, -102)
|
||||||
@ -61,7 +67,7 @@ position = Vector2(3584, -7)
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(37, 150, 860, 150)
|
points = PackedVector2Array(37, 150, 860, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://d27gv3pbkn4b8"]
|
[gd_scene load_steps=8 format=3 uid="uid://d27gv3pbkn4b8"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_4bsvj"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_4bsvj"]
|
||||||
[ext_resource type="Script" uid="uid://b3mak700k2qwt" path="res://scene/ground/scene/c02/s18_animation.gd" id="2_4bsvj"]
|
[ext_resource type="Script" uid="uid://b3mak700k2qwt" path="res://scene/ground/scene/c02/s18_animation.gd" id="2_4bsvj"]
|
||||||
|
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_4bsvj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ttocw3erg8jv" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png" id="3_owpnf"]
|
[ext_resource type="Texture2D" uid="uid://ttocw3erg8jv" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png" id="3_owpnf"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_emyx1"]
|
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_emyx1"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_xoyld"]
|
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_xoyld"]
|
||||||
@ -19,6 +20,11 @@ footstep_type = "盒子猫"
|
|||||||
script = ExtResource("2_4bsvj")
|
script = ExtResource("2_4bsvj")
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
script = ExtResource("3_4bsvj")
|
||||||
|
autoplay_group = &"c02_房间里1"
|
||||||
|
metadata/_custom_type_script = "uid://cpejxlfni6n52"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||||
texture = ExtResource("3_owpnf")
|
texture = ExtResource("3_owpnf")
|
||||||
offset = Vector2(0, -102)
|
offset = Vector2(0, -102)
|
||||||
@ -75,7 +81,7 @@ position = Vector2(3584, -7)
|
|||||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||||
points = PackedVector2Array(37, 150, 860, 150)
|
points = PackedVector2Array(37, 150, 860, 150)
|
||||||
|
|
||||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
|
@ -1,21 +1,33 @@
|
|||||||
extends Node2D
|
extends CanvasLayer
|
||||||
|
|
||||||
var dialogue_c01 := preload("res://asset/dialogue/c01.dialogue") as DialogueResource
|
var dialogue_c01 := preload("res://asset/dialogue/c01.dialogue") as DialogueResource
|
||||||
|
|
||||||
func play():
|
|
||||||
var tween = create_tween()
|
func _ready() -> void:
|
||||||
tween.tween_property(self, "modulate:a", 1.0, 0.5)
|
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
||||||
|
# self.modulate = Color.BLACK
|
||||||
|
# var tween = create_tween()
|
||||||
|
# tween.tween_property(self, "modulate", Color.WHITE, 0.5)
|
||||||
$Sfx.play()
|
$Sfx.play()
|
||||||
var animation_player = $AnimationPlayer as AnimationPlayer
|
var animation_player = $AnimationPlayer as AnimationPlayer
|
||||||
animation_player.play("鬼差探头")
|
animation_player.play("鬼差探头")
|
||||||
animation_player.animation_finished.connect(_on_animation_finished)
|
animation_player.animation_finished.connect(_on_finished)
|
||||||
|
|
||||||
|
|
||||||
func play_bgm():
|
func play_bgm():
|
||||||
# 音效
|
# 音效
|
||||||
var stream = $"背景音".stream
|
var stream = $"背景音".stream
|
||||||
AudioManager.loop_bgm_music("黄包车背景音效", stream)
|
AudioManager.loop_bgm_music("黄包车背景音效", stream)
|
||||||
|
|
||||||
func _on_animation_finished(_name):
|
|
||||||
|
func pre_finished():
|
||||||
|
# 在 animation player 结束前 1 秒调用
|
||||||
|
var camera = SceneManager.get_camera_marker()
|
||||||
|
camera.limit_top -= 20
|
||||||
|
camera.limit_bottom += 20
|
||||||
|
camera.limit_left -= 20
|
||||||
|
camera.limit_right += 20
|
||||||
|
camera.shake_camera(8.0, 2.0)
|
||||||
# debug 模式允许跳过
|
# debug 模式允许跳过
|
||||||
if GlobalConfig.DEBUG:
|
if GlobalConfig.DEBUG:
|
||||||
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s11_车夫对话1")
|
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s11_车夫对话1")
|
||||||
@ -23,5 +35,8 @@ func _on_animation_finished(_name):
|
|||||||
DialogueManager.show_dialogue_balloon(
|
DialogueManager.show_dialogue_balloon(
|
||||||
dialogue_c01, "c01_s11_车夫对话1", [GlobalConfig.DIALOG_IGNORE_INPUT]
|
dialogue_c01, "c01_s11_车夫对话1", [GlobalConfig.DIALOG_IGNORE_INPUT]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_finished(_a):
|
||||||
# 跳转场景
|
# 跳转场景
|
||||||
SceneManager.get_ground_loader().transition_to_scene("c01_s11", "left")
|
SceneManager.get_ground_loader().transition_to_scene("c01_s11", "left")
|
||||||
|
@ -58,11 +58,14 @@ tracks/1/path = NodePath(".")
|
|||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PackedFloat32Array(6.56667),
|
"times": PackedFloat32Array(5.03333, 6.7),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"values": [{
|
"values": [{
|
||||||
"args": [],
|
"args": [],
|
||||||
"method": &"play_bgm"
|
"method": &"play_bgm"
|
||||||
|
}, {
|
||||||
|
"args": [],
|
||||||
|
"method": &"pre_finished"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
tracks/2/type = "value"
|
tracks/2/type = "value"
|
||||||
@ -91,7 +94,7 @@ stream_0/volume = 5.0
|
|||||||
stream_1/stream = ExtResource("8_vputk")
|
stream_1/stream = ExtResource("8_vputk")
|
||||||
stream_1/volume = -4.0
|
stream_1/volume = -4.0
|
||||||
|
|
||||||
[node name="S10鬼差探头" type="Node2D"]
|
[node name="S10鬼差探头" type="CanvasLayer"]
|
||||||
script = ExtResource("1_pvnth")
|
script = ExtResource("1_pvnth")
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
@ -71,6 +71,13 @@ func _ready() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_mismatch():
|
func _on_mismatch():
|
||||||
|
if not ArchiveManager.get_global_value("c02_gaslight_first_failed"):
|
||||||
|
ArchiveManager.set_global_entry("c02_gaslight_first_failed", true)
|
||||||
|
var scene = ArchiveManager.archive.current_scene
|
||||||
|
if scene == "c02_s02" or scene == "c02_s03":
|
||||||
|
SceneManager.pop_os_with_str(tr("c02_陈旧的煤油灯"))
|
||||||
|
# 如果有道具,则提示玩家可以使用道具
|
||||||
|
elif SceneManager.get_current_prop(false):
|
||||||
SceneManager.pop_center_notification(tr("ui_switch_prop"))
|
SceneManager.pop_center_notification(tr("ui_switch_prop"))
|
||||||
|
|
||||||
|
|
||||||
@ -116,6 +123,7 @@ func _switch_gaslight(state := true, gradually := false):
|
|||||||
point_light_ground.energy = engrgy2
|
point_light_ground.energy = engrgy2
|
||||||
light_sprite2d.modulate.a = 1.0
|
light_sprite2d.modulate.a = 1.0
|
||||||
)
|
)
|
||||||
|
_check_sign_display()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -132,3 +140,9 @@ func _gaslight_interacted():
|
|||||||
await get_tree().create_timer(1.0).timeout
|
await get_tree().create_timer(1.0).timeout
|
||||||
_switch_gaslight(true, true)
|
_switch_gaslight(true, true)
|
||||||
lighted.emit()
|
lighted.emit()
|
||||||
|
if not ArchiveManager.get_global_value("c02_gaslight_first_lighted"):
|
||||||
|
ArchiveManager.set_global_entry("c02_gaslight_first_lighted", true)
|
||||||
|
var scene = ArchiveManager.archive.current_scene
|
||||||
|
if scene == "c02_s02" or scene == "c02_s03":
|
||||||
|
await get_tree().create_timer(1.0).timeout
|
||||||
|
SceneManager.pop_os_with_str(tr("c02_使用煤油灯"))
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=15 format=3 uid="uid://cxw5rovg5mu1a"]
|
[gd_scene load_steps=17 format=3 uid="uid://cxw5rovg5mu1a"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://c8vsfqoeu26gk" path="res://scene/ground/script/c02/s00_煤油灯.gd" id="1_0aa53"]
|
[ext_resource type="Script" uid="uid://c8vsfqoeu26gk" path="res://scene/ground/script/c02/s00_煤油灯.gd" id="1_0aa53"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b3qgmrfslj135" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕1.png" id="2_uusov"]
|
[ext_resource type="Texture2D" uid="uid://b3qgmrfslj135" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕1.png" id="2_uusov"]
|
||||||
@ -18,12 +18,22 @@
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
size = Vector2(20, 70)
|
size = Vector2(20, 70)
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_l338h"]
|
||||||
|
offsets = PackedFloat32Array(0, 0.67029, 1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_ivr1s"]
|
||||||
|
gradient = SubResource("Gradient_l338h")
|
||||||
|
width = 200
|
||||||
|
height = 200
|
||||||
|
fill = 1
|
||||||
|
fill_from = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
[node name="煤油灯" type="Sprite2D"]
|
[node name="煤油灯" type="Sprite2D"]
|
||||||
script = ExtResource("1_0aa53")
|
script = ExtResource("1_0aa53")
|
||||||
gaslight_texture = ExtResource("2_uusov")
|
gaslight_texture = ExtResource("2_uusov")
|
||||||
ground_light_texture = ExtResource("3_y2gsk")
|
ground_light_texture = ExtResource("3_y2gsk")
|
||||||
debug_light_switch = true
|
debug_light_switch = true
|
||||||
enable_snapper = null
|
|
||||||
unrevealed_sign_texture = ExtResource("4_abb1f")
|
unrevealed_sign_texture = ExtResource("4_abb1f")
|
||||||
unmatched_sign_texture = ExtResource("5_l338h")
|
unmatched_sign_texture = ExtResource("5_l338h")
|
||||||
matched_sign_texture = ExtResource("6_ivr1s")
|
matched_sign_texture = ExtResource("6_ivr1s")
|
||||||
@ -54,6 +64,11 @@ shape = SubResource("RectangleShape2D_h0ajm")
|
|||||||
color = Color(1, 0.882353, 0.705882, 1)
|
color = Color(1, 0.882353, 0.705882, 1)
|
||||||
texture = ExtResource("2_uusov")
|
texture = ExtResource("2_uusov")
|
||||||
|
|
||||||
|
[node name="PointLight2D范围" type="PointLight2D" parent="PointLight2D"]
|
||||||
|
visible = false
|
||||||
|
energy = 0.7
|
||||||
|
texture = SubResource("GradientTexture2D_ivr1s")
|
||||||
|
|
||||||
[node name="PointLightGround2D" type="PointLight2D" parent="."]
|
[node name="PointLightGround2D" type="PointLight2D" parent="."]
|
||||||
range_item_cull_mask = 4
|
range_item_cull_mask = 4
|
||||||
texture = ExtResource("3_y2gsk")
|
texture = ExtResource("3_y2gsk")
|
||||||
|
@ -30,6 +30,8 @@ var random_directions: Array[Vector2] = []
|
|||||||
var random_positions: Array[Vector2] = []
|
var random_positions: Array[Vector2] = []
|
||||||
var player
|
var player
|
||||||
|
|
||||||
|
@onready var sfx = $"mouse1/Sfx2D老鼠叫" as Sfx2D
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
@ -40,6 +42,9 @@ func _ready() -> void:
|
|||||||
return
|
return
|
||||||
# 自动跟随的老鼠 ~ c02_mouse_follow_player
|
# 自动跟随的老鼠 ~ c02_mouse_follow_player
|
||||||
visible = ArchiveManager.get_global_value("c02_mouse_follow_player", false)
|
visible = ArchiveManager.get_global_value("c02_mouse_follow_player", false)
|
||||||
|
if visible:
|
||||||
|
# 播放老鼠叫 sfx
|
||||||
|
sfx.play()
|
||||||
|
|
||||||
|
|
||||||
func _on_visibility_changed() -> void:
|
func _on_visibility_changed() -> void:
|
||||||
@ -53,6 +58,8 @@ func _enter_tree() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func flush_right_and_disable(_res = null) -> void:
|
func flush_right_and_disable(_res = null) -> void:
|
||||||
|
sfx.loop = false
|
||||||
|
sfx.stop()
|
||||||
enabled = false
|
enabled = false
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
for i in range(mice.size()):
|
for i in range(mice.size()):
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://8frowlq301"]
|
[gd_scene load_steps=8 format=3 uid="uid://8frowlq301"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://biphnbirwpwv" path="res://scene/ground/script/c02/s00_跟随的老鼠.gd" id="1_5gnxj"]
|
[ext_resource type="Script" uid="uid://biphnbirwpwv" path="res://scene/ground/script/c02/s00_跟随的老鼠.gd" id="1_5gnxj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bebirk1fwldg2" path="res://asset/art/scene/c01/s00/老鼠.png" id="2_16usl"]
|
[ext_resource type="Texture2D" uid="uid://bebirk1fwldg2" path="res://asset/art/scene/c01/s00/老鼠.png" id="2_16usl"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://7q03rss2vlcn" path="res://asset/audio/sfx/环境音/点缀音/sfx_老鼠叫.wav" id="3_otpwt"]
|
||||||
|
[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="4_otpwt"]
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5gnxj"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_5gnxj"]
|
||||||
atlas = ExtResource("2_16usl")
|
atlas = ExtResource("2_16usl")
|
||||||
@ -26,6 +28,17 @@ position = Vector2(121.52, 5.04537)
|
|||||||
scale = Vector2(0.86, 0.86)
|
scale = Vector2(0.86, 0.86)
|
||||||
texture = SubResource("AtlasTexture_5gnxj")
|
texture = SubResource("AtlasTexture_5gnxj")
|
||||||
|
|
||||||
|
[node name="Sfx2D老鼠叫" type="AudioStreamPlayer2D" parent="mouse1"]
|
||||||
|
position = Vector2(-141.302, -5.86671)
|
||||||
|
scale = Vector2(1.16279, 1.16279)
|
||||||
|
stream = ExtResource("3_otpwt")
|
||||||
|
max_distance = 1000.0
|
||||||
|
bus = &"game_sfx"
|
||||||
|
script = ExtResource("4_otpwt")
|
||||||
|
loop = true
|
||||||
|
loop_round_time = 20.0
|
||||||
|
metadata/_custom_type_script = "uid://wapo47a1oddf"
|
||||||
|
|
||||||
[node name="mouse2" type="Sprite2D" parent="."]
|
[node name="mouse2" type="Sprite2D" parent="."]
|
||||||
position = Vector2(258.874, 22.6854)
|
position = Vector2(258.874, 22.6854)
|
||||||
scale = Vector2(0.86, 0.86)
|
scale = Vector2(0.86, 0.86)
|
||||||
|
@ -3,6 +3,7 @@ extends CanvasLayer
|
|||||||
signal exit
|
signal exit
|
||||||
|
|
||||||
@onready var flyer = $"刮刮乐"
|
@onready var flyer = $"刮刮乐"
|
||||||
|
@onready var sfx = $"Sfx撕海报"
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -20,8 +21,9 @@ func _on_shaven(progress: float):
|
|||||||
if progress >= 0.7:
|
if progress >= 0.7:
|
||||||
exiting = true
|
exiting = true
|
||||||
print("刮开 70% 以上!")
|
print("刮开 70% 以上!")
|
||||||
|
sfx.global_play()
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_property(flyer, "modulate:a", 0.0, 1.0)
|
tween.tween_property(flyer, "modulate:a", 0.0, 1.0)
|
||||||
tween.tween_callback(exit.emit.bind(true))
|
tween.tween_callback(exit.emit.bind(true))
|
||||||
elif GlobalConfig.DEBUG:
|
# elif GlobalConfig.DEBUG:
|
||||||
print("刮开进度:", progress)
|
# print("刮开进度:", progress)
|
||||||
|
@ -157,6 +157,7 @@ var communicating = false
|
|||||||
func _on_interacted() -> void:
|
func _on_interacted() -> void:
|
||||||
if interacting:
|
if interacting:
|
||||||
print("小手 interacting 锁定中")
|
print("小手 interacting 锁定中")
|
||||||
|
SceneManager.release_player()
|
||||||
return
|
return
|
||||||
interacting = true
|
interacting = true
|
||||||
interacted.emit()
|
interacted.emit()
|
||||||
@ -164,6 +165,7 @@ func _on_interacted() -> void:
|
|||||||
if tried_times == 1:
|
if tried_times == 1:
|
||||||
do_first_interact(false)
|
do_first_interact(false)
|
||||||
interacting = false
|
interacting = false
|
||||||
|
SceneManager.release_player()
|
||||||
return
|
return
|
||||||
if holding_prop != "":
|
if holding_prop != "":
|
||||||
# 手持物品时,交互直接给玩家物品
|
# 手持物品时,交互直接给玩家物品
|
||||||
@ -171,6 +173,7 @@ func _on_interacted() -> void:
|
|||||||
holding_prop = ""
|
holding_prop = ""
|
||||||
animated_sprite.play("小手_show")
|
animated_sprite.play("小手_show")
|
||||||
interacting = false
|
interacting = false
|
||||||
|
SceneManager.release_player()
|
||||||
return
|
return
|
||||||
|
|
||||||
if is_holding_cup:
|
if is_holding_cup:
|
||||||
@ -193,7 +196,7 @@ func _on_interacted() -> void:
|
|||||||
|
|
||||||
var key = SceneManager.get_current_prop(false)
|
var key = SceneManager.get_current_prop(false)
|
||||||
var interacted_success = false
|
var interacted_success = false
|
||||||
SceneManager.freeze_player(0)
|
SceneManager.freeze_player(0, 4)
|
||||||
|
|
||||||
# accept_tin_coin
|
# accept_tin_coin
|
||||||
if key == "prop_锡箔元宝":
|
if key == "prop_锡箔元宝":
|
||||||
@ -201,6 +204,8 @@ func _on_interacted() -> void:
|
|||||||
sfx_success.play()
|
sfx_success.play()
|
||||||
SceneManager.disable_prop_item("prop_锡箔元宝")
|
SceneManager.disable_prop_item("prop_锡箔元宝")
|
||||||
if id == 1:
|
if id == 1:
|
||||||
|
SceneManager.enable_prop_item_silently("prop_小鞋子1")
|
||||||
|
ArchiveManager.set_global_entry("c02_mouse_follow_player", true)
|
||||||
# 叠成纸杯电话
|
# 叠成纸杯电话
|
||||||
animated_sprite.play("小手_锡箔_hide")
|
animated_sprite.play("小手_锡箔_hide")
|
||||||
is_holding_cup = true
|
is_holding_cup = true
|
||||||
@ -208,7 +213,8 @@ func _on_interacted() -> void:
|
|||||||
await get_tree().create_timer(2).timeout
|
await get_tree().create_timer(2).timeout
|
||||||
# 稍等片刻再给小鞋子
|
# 稍等片刻再给小鞋子
|
||||||
SceneManager.enable_prop_item("prop_小鞋子1")
|
SceneManager.enable_prop_item("prop_小鞋子1")
|
||||||
ArchiveManager.set_global_entry("c02_mouse_follow_player", true)
|
await SceneManager.get_inspector().quit_and_hidden
|
||||||
|
SceneManager.pop_os_with_str("c02_锡箔换小鞋子")
|
||||||
var node = get_node("../自动跟随的老鼠") as Node2D
|
var node = get_node("../自动跟随的老鼠") as Node2D
|
||||||
if node:
|
if node:
|
||||||
node.visible = true
|
node.visible = true
|
||||||
|
@ -120,6 +120,7 @@ texture = ExtResource("10_47cqy")
|
|||||||
[node name="SignSnapper" type="Marker2D" parent="."]
|
[node name="SignSnapper" type="Marker2D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
script = ExtResource("15_lr23o")
|
script = ExtResource("15_lr23o")
|
||||||
|
release_player_on_arrived = false
|
||||||
delay_arrived = 0.1
|
delay_arrived = 0.1
|
||||||
action_on_arrived = 4
|
action_on_arrived = 4
|
||||||
delay_after_action = 0.4
|
delay_after_action = 0.4
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://cdf2qe8l7323i"]
|
[gd_scene load_steps=5 format=3 uid="uid://cdf2qe8l7323i"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_lpmq3"]
|
[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_lpmq3"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d1xr7g5huv5or" path="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png" id="2_eyynm"]
|
[ext_resource type="Texture2D" uid="uid://d1xr7g5huv5or" path="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png" id="2_eyynm"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="3_lpmq3"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop/inspect背景遮罩.png" id="4_l77sh"]
|
||||||
|
|
||||||
[node name="老鼠精画像" type="CanvasLayer"]
|
[node name="老鼠精画像" type="CanvasLayer"]
|
||||||
script = ExtResource("1_lpmq3")
|
script = ExtResource("1_lpmq3")
|
||||||
@ -13,3 +15,34 @@ anchor_bottom = 1.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
texture = ExtResource("2_eyynm")
|
texture = ExtResource("2_eyynm")
|
||||||
|
|
||||||
|
[node name="ContentInspector" parent="." instance=ExtResource("3_lpmq3")]
|
||||||
|
|
||||||
|
[node name="遮罩" type="TextureRect" parent="ContentInspector"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
texture = ExtResource("4_l77sh")
|
||||||
|
expand_mode = 5
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="ContentInspector/遮罩"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(100, 0)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -50.0
|
||||||
|
offset_top = -7.0
|
||||||
|
offset_right = 50.0
|
||||||
|
offset_bottom = 7.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
horizontal_alignment = 1
|
||||||
|
autowrap_mode = 3
|
||||||
|
@ -3,3 +3,4 @@ extends CanvasLayer
|
|||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
||||||
|
%Label.text = tr("c02_保卫科老鼠精").replace("<br>", "\n")
|
||||||
|
@ -2,7 +2,6 @@ extends Control
|
|||||||
|
|
||||||
# var main_scene := preload("res://scene/main.tscn") as PackedScene
|
# var main_scene := preload("res://scene/main.tscn") as PackedScene
|
||||||
|
|
||||||
@onready var settings = $Settings
|
|
||||||
@onready var animation_player = $AnimationPlayer as AnimationPlayer
|
@onready var animation_player = $AnimationPlayer as AnimationPlayer
|
||||||
@onready var animation_root = $AnimationRoot as Control
|
@onready var animation_root = $AnimationRoot as Control
|
||||||
@onready var sfx = %Sfx as Sfx
|
@onready var sfx = %Sfx as Sfx
|
||||||
@ -60,8 +59,7 @@ func _on_resume_pressed():
|
|||||||
|
|
||||||
|
|
||||||
func _enter_main_scene():
|
func _enter_main_scene():
|
||||||
# get_tree().change_scene_to_packed.call_deferred(main_scene)
|
SceneManager.enter_main_scene()
|
||||||
get_tree().change_scene_to_file.call_deferred("res://scene/main.tscn")
|
|
||||||
|
|
||||||
|
|
||||||
func _on_quit_pressed():
|
func _on_quit_pressed():
|
||||||
@ -78,6 +76,3 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
animation_player.stop()
|
animation_player.stop()
|
||||||
animation_root.visible = false
|
animation_root.visible = false
|
||||||
animation_finished = true
|
animation_finished = true
|
||||||
else:
|
|
||||||
# 设置菜单
|
|
||||||
settings.visible = true
|
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://c4ycvdsabi7lw"]
|
[gd_scene load_steps=11 format=3 uid="uid://c4ycvdsabi7lw"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b4rw4hk7ns4m8" path="res://scene/index_page.gd" id="1_c7y7r"]
|
[ext_resource type="Script" uid="uid://b4rw4hk7ns4m8" path="res://scene/index_page.gd" id="1_c7y7r"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bcc0bk34l5gbc" path="res://asset/art/ui/index_menu/菜单背景1.png" id="1_jxn4k"]
|
[ext_resource type="Texture2D" uid="uid://bcc0bk34l5gbc" path="res://asset/art/ui/index_menu/菜单背景1.png" id="1_jxn4k"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_te6ya"]
|
[ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_te6ya"]
|
||||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5oc6i"]
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5oc6i"]
|
||||||
[ext_resource type="PackedScene" uid="uid://beok2r6fgburn" path="res://scene/settings/settings.tscn" id="4_5m37n"]
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_8kiap"]
|
[sub_resource type="Animation" id="Animation_8kiap"]
|
||||||
resource_name = "default"
|
resource_name = "default"
|
||||||
@ -122,16 +121,3 @@ theme_override_styles/hover = SubResource("StyleBoxFlat_q8n5c")
|
|||||||
theme_override_styles/pressed = SubResource("StyleBoxFlat_scxsv")
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_scxsv")
|
||||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_vyh3d")
|
theme_override_styles/normal = SubResource("StyleBoxEmpty_vyh3d")
|
||||||
text = "index_退出游戏"
|
text = "index_退出游戏"
|
||||||
|
|
||||||
[node name="Settings" parent="." instance=ExtResource("4_5m37n")]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="Settings"]
|
|
||||||
z_index = -1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
color = Color(0, 0, 0, 0.862745)
|
|
||||||
|
@ -270,6 +270,10 @@ func _chechout_stage(s: int, play_sfx := true) -> void:
|
|||||||
if play_sfx:
|
if play_sfx:
|
||||||
sfx_close_lid.play()
|
sfx_close_lid.play()
|
||||||
2:
|
2:
|
||||||
|
if not ArchiveManager.get_global_value("c02_musicbox_has_opened"):
|
||||||
|
ArchiveManager.set_global_entry("c02_musicbox_has_opened", false)
|
||||||
|
SceneManager.pop_center_notification(tr("c02_s02_八音盒缺人偶"))
|
||||||
|
else:
|
||||||
SceneManager.pop_center_notification(tr("ui_use_prop"))
|
SceneManager.pop_center_notification(tr("ui_use_prop"))
|
||||||
box_opened.visible = true
|
box_opened.visible = true
|
||||||
d4.visible = false
|
d4.visible = false
|
||||||
@ -328,11 +332,11 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
func _on_pick_catty():
|
func _on_pick_catty():
|
||||||
if not SceneManager.has_prop("prop_小猫玩具的脑袋"):
|
if not SceneManager.has_prop("prop_小猫玩具的脑袋"):
|
||||||
return
|
return
|
||||||
var inspector = SceneManager.get_inspector()
|
|
||||||
# 将小猫头与身子合并
|
# 将小猫头与身子合并
|
||||||
SceneManager.disable_prop_item("prop_小猫玩具的脑袋")
|
SceneManager.disable_prop_item("prop_小猫玩具的脑袋")
|
||||||
SceneManager.disable_prop_item("prop_无头小猫玩具")
|
SceneManager.disable_prop_item("prop_无头小猫玩具")
|
||||||
SceneManager.enable_prop_item_silently("prop_小猫玩具完整")
|
SceneManager.enable_prop_item_silently("prop_小猫玩具完整")
|
||||||
|
var inspector = SceneManager.get_inspector()
|
||||||
await inspector.quit_and_hidden
|
await inspector.quit_and_hidden
|
||||||
var sprite = $"拼接小猫玩具"
|
var sprite = $"拼接小猫玩具"
|
||||||
sprite.visible = true
|
sprite.visible = true
|
||||||
@ -340,3 +344,6 @@ func _on_pick_catty():
|
|||||||
await sprite.animation_finished
|
await sprite.animation_finished
|
||||||
sprite.visible = false
|
sprite.visible = false
|
||||||
SceneManager.enable_prop_item("prop_小猫玩具完整")
|
SceneManager.enable_prop_item("prop_小猫玩具完整")
|
||||||
|
# 八音盒中看不到 os
|
||||||
|
# await inspector.quit_and_hidden
|
||||||
|
# SceneManager.pop_os_with_str(tr("c02_获得小猫玩具"))
|
@ -15,7 +15,6 @@ environment = ExtResource("9_jsof5")
|
|||||||
|
|
||||||
[node name="GroundLoader" parent="." instance=ExtResource("10_8rc5n")]
|
[node name="GroundLoader" parent="." instance=ExtResource("10_8rc5n")]
|
||||||
position = Vector2(1, 0)
|
position = Vector2(1, 0)
|
||||||
current_scene = "c01_s05"
|
|
||||||
entrance_portal = "right"
|
entrance_portal = "right"
|
||||||
|
|
||||||
[node name="PropInspector" parent="." instance=ExtResource("5_ux0rw")]
|
[node name="PropInspector" parent="." instance=ExtResource("5_ux0rw")]
|
||||||
|