draggable 优化;铺设理发店流程(鬼母子神、照镜子)

This commit is contained in:
cakipaul 2025-07-09 18:22:38 +08:00
parent 9fe9fac76e
commit e6bbef09bc
52 changed files with 802 additions and 231 deletions

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://0p78wjtm30rm" uid="uid://0p78wjtm30rm"
path="res://.godot/imported/理发店剪贴画报.png-f1c9f5ebcf15538ef9c9a5303e912cad.ctex" path="res://.godot/imported/e_理发店剪贴画报.png-06eaddd7f9cd644f90bcd5b985bb4d25.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/理发店剪贴画报.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/e_理发店剪贴画报.png"
dest_files=["res://.godot/imported/理发店剪贴画报.png-f1c9f5ebcf15538ef9c9a5303e912cad.ctex"] dest_files=["res://.godot/imported/e_理发店剪贴画报.png-06eaddd7f9cd644f90bcd5b985bb4d25.ctex"]
[params] [params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dhw3jiog3mqqs" uid="uid://dhw3jiog3mqqs"
path="res://.godot/imported/右侧1.png-01508c2e461be91d3bc0c96e376fc6dd.ctex" path="res://.godot/imported/1右.png-3cbc55d685810a64c0b0833b412c789d.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/右侧1.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/1右.png"
dest_files=["res://.godot/imported/右侧1.png-01508c2e461be91d3bc0c96e376fc6dd.ctex"] dest_files=["res://.godot/imported/1右.png-3cbc55d685810a64c0b0833b412c789d.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://d05isvkasl8cv" uid="uid://d05isvkasl8cv"
path="res://.godot/imported/左侧1.png-ac9fe790dc34147717c59efce1c0fbd2.ctex" path="res://.godot/imported/1左.png-957b882ae284c850cceab7719d1ca23e.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/左侧1.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/1左.png"
dest_files=["res://.godot/imported/左侧1.png-ac9fe790dc34147717c59efce1c0fbd2.ctex"] dest_files=["res://.godot/imported/1左.png-957b882ae284c850cceab7719d1ca23e.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://c3jw8crtdvkg7" uid="uid://c3jw8crtdvkg7"
path="res://.godot/imported/右侧2.png-d99c588d4f86f7a2d7ca1742aa353d56.ctex" path="res://.godot/imported/2右.png-6f5926372443b2cb1e6924a35317d2a2.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/右侧2.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/2右.png"
dest_files=["res://.godot/imported/右侧2.png-d99c588d4f86f7a2d7ca1742aa353d56.ctex"] dest_files=["res://.godot/imported/2右.png-6f5926372443b2cb1e6924a35317d2a2.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cfowo1bf0h736" uid="uid://cfowo1bf0h736"
path="res://.godot/imported/左侧2.png-8731907ae38b6cbd8e9cca153a47ddda.ctex" path="res://.godot/imported/2左.png-d68bda2503ac19d249b8ba423c44e0ad.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/左侧2.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/2左.png"
dest_files=["res://.godot/imported/左侧2.png-8731907ae38b6cbd8e9cca153a47ddda.ctex"] dest_files=["res://.godot/imported/2左.png-d68bda2503ac19d249b8ba423c44e0ad.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://d4nu7b6aeuah4" uid="uid://d4nu7b6aeuah4"
path="res://.godot/imported/右侧3.png-00b9a609f12d414c7269c34fb0e29657.ctex" path="res://.godot/imported/3右.png-7f3382d8ac48b4894b4ba28e12d98874.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/右侧3.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/3右.png"
dest_files=["res://.godot/imported/右侧3.png-00b9a609f12d414c7269c34fb0e29657.ctex"] dest_files=["res://.godot/imported/3右.png-7f3382d8ac48b4894b4ba28e12d98874.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bgk1b8o1uenry" uid="uid://bgk1b8o1uenry"
path="res://.godot/imported/左侧3.png-0d831ddd13b66df817cef2c5ad4c56cc.ctex" path="res://.godot/imported/3左.png-3ac171a78dfc02914bed56a899b29f2c.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/左侧3.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/3左.png"
dest_files=["res://.godot/imported/左侧3.png-0d831ddd13b66df817cef2c5ad4c56cc.ctex"] dest_files=["res://.godot/imported/3左.png-3ac171a78dfc02914bed56a899b29f2c.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://c3ot6fxj8wj7u" uid="uid://c3ot6fxj8wj7u"
path="res://.godot/imported/右侧4.png-766f40208df97e8d83ef947e5572fd62.ctex" path="res://.godot/imported/4右.png-9963d1f7c14b23f793dfdb7c69801cb9.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/右侧4.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/4右.png"
dest_files=["res://.godot/imported/右侧4.png-766f40208df97e8d83ef947e5572fd62.ctex"] dest_files=["res://.godot/imported/4右.png-9963d1f7c14b23f793dfdb7c69801cb9.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://eafqitah2ybv" uid="uid://eafqitah2ybv"
path="res://.godot/imported/左侧4.png-0d164df7f174d832f71cdea2d7cd263e.ctex" path="res://.godot/imported/4左.png-9613efe48243b655c415d8f9e977eabc.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/左侧4.png" source_file="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/4左.png"
dest_files=["res://.godot/imported/左侧4.png-0d164df7f174d832f71cdea2d7cd263e.ctex"] dest_files=["res://.godot/imported/4左.png-9613efe48243b655c415d8f9e977eabc.ctex"]
[params] [params]

View File

@ -77,7 +77,7 @@ prop_小鞋子1,小鞋子(一),,,[#texture=c02/小鞋子1.png],,Small Shoe (
prop_小鞋子1_说明,尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓,,,,,"Extremely small, bound-foot shoes for young girls. The pointed shape resembles a bird's head, with curved wooden soles like a bow" prop_小鞋子1_说明,尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓,,,,,"Extremely small, bound-foot shoes for young girls. The pointed shape resembles a bird's head, with curved wooden soles like a bow"
prop_小鞋子2,小鞋子(二),,,[#texture=c02/小鞋子2.png],,Small Shoe (II) prop_小鞋子2,小鞋子(二),,,[#texture=c02/小鞋子2.png],,Small Shoe (II)
prop_小鞋子2_说明,尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓,,,,,"Extremely small, bound-foot shoes for young girls. The pointed shape resembles a bird's head, with curved wooden soles like a bow" prop_小鞋子2_说明,尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓,,,,,"Extremely small, bound-foot shoes for young girls. The pointed shape resembles a bird's head, with curved wooden soles like a bow"
prop_麻将,麻将,,,[#texture=c02/麻将.png],,Mahjong Tile prop_麻将,麻将(一),,,[#texture=c02/麻将.png],,Mahjong Tile
prop_麻将_说明,这块麻将上雕着一朵圆形的花,,,,,This mahjong tile has a circular flower carved on it prop_麻将_说明,这块麻将上雕着一朵圆形的花,,,,,This mahjong tile has a circular flower carved on it
prop_奇怪的肉,奇怪的肉,,,[#texture=c02/奇怪的肉.png],,Strange Meat prop_奇怪的肉,奇怪的肉,,,[#texture=c02/奇怪的肉.png],,Strange Meat
prop_奇怪的肉_说明,这块肉脂肪黄黄的...,,,,,This meat has yellowish fat... prop_奇怪的肉_说明,这块肉脂肪黄黄的...,,,,,This meat has yellowish fat...
@ -88,6 +88,8 @@ prop_木头人偶_说明,略显粗糙的木头玩偶,能依稀辨认出是个
prop_粘鼠板,粘鼠板,,,[#texture=c02/粘鼠板特写.png],,Sticky Trap prop_粘鼠板,粘鼠板,,,[#texture=c02/粘鼠板特写.png],,Sticky Trap
prop_粘鼠板_说明,自制的捕鼠工具,纸上面有黏黏的浆糊,,,,,Homemade mouse trap with sticky paste on paper prop_粘鼠板_说明,自制的捕鼠工具,纸上面有黏黏的浆糊,,,,,Homemade mouse trap with sticky paste on paper
prop_一把香,一把香,,,[#texture=c02/一把香.png],,Bundle of Incense prop_一把香,一把香,,,[#texture=c02/一把香.png],,Bundle of Incense
prop_1015钥匙,1015钥匙,,,[#texture=c02/1012钥匙物品.png],,
prop_麻将2,麻将(二),,,[#texture=c02/麻将.png],,
prop_2014钥匙,2014钥匙,,,[#texture=c02/1012钥匙物品.png],,Key 2014 prop_2014钥匙,2014钥匙,,,[#texture=c02/1012钥匙物品.png],,Key 2014
prop_重要物品示例,重要物品示例,,,[#texture=c01/银元.png],,Important Item Example prop_重要物品示例,重要物品示例,,,[#texture=c01/银元.png],,Important Item Example
prop_1012钥匙,1012钥匙,,,[#texture=c02/1012钥匙物品.png][#inspect=c02/1012钥匙.png],,Key 1012 prop_1012钥匙,1012钥匙,,,[#texture=c02/1012钥匙物品.png][#inspect=c02/1012钥匙.png],,Key 1012
@ -196,3 +198,7 @@ c02_demo公告,以上是《衔蝶》demo的全部内容啦感谢你抽出宝
c03_s01_走近3012,3012号房应该就是我小时候住的地方,,,,,"Room 3012, this should be where I lived as a child" c03_s01_走近3012,3012号房应该就是我小时候住的地方,,,,,"Room 3012, this should be where I lived as a child"
c03_s01_门口看病牌子,义诊,,,,,Free Medical Consultation c03_s01_门口看病牌子,义诊,,,,,Free Medical Consultation
c03_s01_偷听完3012,......,,,,,..... c03_s01_偷听完3012,......,,,,,.....
c03_s02_note_key_coverer,太暗了看不清,,,,,
c03_s02_未点灯,?打不开,,,,,
c03_s02_通风管道,?打不开,,,,,
c03_s02_小蝉的床,小蝉的床,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
77 prop_小鞋子1_说明 尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓 Extremely small, bound-foot shoes for young girls. The pointed shape resembles a bird's head, with curved wooden soles like a bow
78 prop_小鞋子2 小鞋子(二) [#texture=c02/小鞋子2.png] Small Shoe (II)
79 prop_小鞋子2_说明 尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓 Extremely small, bound-foot shoes for young girls. The pointed shape resembles a bird's head, with curved wooden soles like a bow
80 prop_麻将 麻将 麻将(一) [#texture=c02/麻将.png] Mahjong Tile
81 prop_麻将_说明 这块麻将上雕着一朵圆形的花 This mahjong tile has a circular flower carved on it
82 prop_奇怪的肉 奇怪的肉 [#texture=c02/奇怪的肉.png] Strange Meat
83 prop_奇怪的肉_说明 这块肉脂肪黄黄的... This meat has yellowish fat...
88 prop_粘鼠板 粘鼠板 [#texture=c02/粘鼠板特写.png] Sticky Trap
89 prop_粘鼠板_说明 自制的捕鼠工具,纸上面有黏黏的浆糊 Homemade mouse trap with sticky paste on paper
90 prop_一把香 一把香 [#texture=c02/一把香.png] Bundle of Incense
91 prop_1015钥匙 1015钥匙 [#texture=c02/1012钥匙物品.png]
92 prop_麻将2 麻将(二) [#texture=c02/麻将.png]
93 prop_2014钥匙 2014钥匙 [#texture=c02/1012钥匙物品.png] Key 2014
94 prop_重要物品示例 重要物品示例 [#texture=c01/银元.png] Important Item Example
95 prop_1012钥匙 1012钥匙 [#texture=c02/1012钥匙物品.png][#inspect=c02/1012钥匙.png] Key 1012
198 c03_s01_走近3012 3012号房,应该就是我小时候住的地方 Room 3012, this should be where I lived as a child
199 c03_s01_门口看病牌子 义诊 Free Medical Consultation
200 c03_s01_偷听完3012 ...... .....
201 c03_s02_note_key_coverer 太暗了看不清
202 c03_s02_未点灯 ?打不开
203 c03_s02_通风管道 ?打不开
204 c03_s02_小蝉的床 小蝉的床

View File

@ -97,7 +97,7 @@
尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓[ID:prop_小鞋子1_说明] 尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓[ID:prop_小鞋子1_说明]
小鞋子(二)[#texture=c02/小鞋子2.png] [ID:prop_小鞋子2] 小鞋子(二)[#texture=c02/小鞋子2.png] [ID:prop_小鞋子2]
尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓[ID:prop_小鞋子2_说明] 尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓[ID:prop_小鞋子2_说明]
麻将 [#texture=c02/麻将.png] [ID:prop_麻将] 麻将(一) [#texture=c02/麻将.png] [ID:prop_麻将]
这块麻将上雕着一朵圆形的花[ID:prop_麻将_说明] 这块麻将上雕着一朵圆形的花[ID:prop_麻将_说明]
#新鲜的肉 [#texture=c02/新鲜的肉.png] [ID:prop_新鲜的肉] #新鲜的肉 [#texture=c02/新鲜的肉.png] [ID:prop_新鲜的肉]
奇怪的肉 [#texture=c02/奇怪的肉.png] [ID:prop_奇怪的肉] 奇怪的肉 [#texture=c02/奇怪的肉.png] [ID:prop_奇怪的肉]
@ -114,6 +114,7 @@
#c03 #c03
1015钥匙 [#texture=c02/1012钥匙物品.png] [ID:prop_1015钥匙] 1015钥匙 [#texture=c02/1012钥匙物品.png] [ID:prop_1015钥匙]
麻将(二) [#texture=c02/麻将.png] [ID:prop_麻将2]
@ -279,10 +280,18 @@
义诊 [ID:c03_s01_门口看病牌子] 义诊 [ID:c03_s01_门口看病牌子]
...... [ID:c03_s01_偷听完3012] ...... [ID:c03_s01_偷听完3012]
#奇怪...里面应该有人在的...{br}要不先去小蝉家看看吧 #奇怪...里面应该有人在的...{br}要不先去小蝉家看看吧
# s02 # c03_s02 瞎子新卧室
# s03 太暗了看不清[ID:c03_s02_note_key_coverer]
# s04 ?打不开[ID:c03_s02_未点灯]
# s05 ?打不开[ID:c03_s02_通风管道]
小蝉的床 [ID:c03_s02_小蝉的床]
# s03 瞎子理发店
# s04 李癞房间
# s05 肉铺
# s06 胖子卧室
# s07 屠宰间
# s08 囚室
# s09 棺材房
=> END => END
~ Notes_c04 ~ Notes_c04

View File

@ -67,50 +67,6 @@ Remove-Item -Recurse -Force '{temp_dir}'"
[preset.1] [preset.1]
name="Web"
platform="Web"
runnable=true
advanced_options=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../export_h5/xiandie/index.html"
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
variant/thread_support=false
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell=""
html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/ensure_cross_origin_isolation_headers=true
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=0
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color(0, 0, 0, 1)
[preset.2]
name="macOS" name="macOS"
platform="macOS" platform="macOS"
runnable=true runnable=true
@ -129,7 +85,7 @@ encrypt_pck=false
encrypt_directory=false encrypt_directory=false
script_export_mode=2 script_export_mode=2
[preset.2.options] [preset.1.options]
export/distribution_type=1 export/distribution_type=1
binary_format/architecture="universal" binary_format/architecture="universal"
@ -362,3 +318,265 @@ open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\") kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\"" rm -rf \"{temp_dir}\""
[preset.2]
name="iOS"
platform="iOS"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../xiandie_ios/xiandie_ios.ipa"
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.2.options]
custom_template/debug=""
custom_template/release=""
architectures/arm64=true
application/app_store_team_id="com.baobaoding"
application/export_method_debug=2
application/code_sign_identity_debug=""
application/code_sign_identity_release=""
application/provisioning_profile_specifier_debug=""
application/provisioning_profile_specifier_release=""
application/export_method_release=0
application/targeted_device_family=2
application/bundle_identifier="com.baobaoding.xiandie"
application/signature=""
application/short_version="0.2.0"
application/version="0.2.0"
application/min_ios_version="14.0"
application/additional_plist_content=""
application/icon_interpolation=4
application/export_project_only=false
application/delete_old_export_files_unconditionally=false
entitlements/increased_memory_limit=false
entitlements/game_center=false
entitlements/push_notifications="Disabled"
entitlements/additional=""
capabilities/access_wifi=false
capabilities/performance_gaming_tier=false
capabilities/performance_a12=false
capabilities/additional=PackedStringArray()
user_data/accessible_from_files_app=false
user_data/accessible_from_itunes_sharing=false
privacy/camera_usage_description=""
privacy/camera_usage_description_localized={}
privacy/microphone_usage_description=""
privacy/microphone_usage_description_localized={}
privacy/photolibrary_usage_description=""
privacy/photolibrary_usage_description_localized={}
privacy/file_timestamp_access_reasons=3
privacy/system_boot_time_access_reasons=1
privacy/disk_space_access_reasons=3
privacy/active_keyboard_access_reasons=0
privacy/user_defaults_access_reasons=0
privacy/tracking_enabled=false
privacy/tracking_domains=PackedStringArray()
privacy/collected_data/name/collected=false
privacy/collected_data/name/linked_to_user=false
privacy/collected_data/name/used_for_tracking=false
privacy/collected_data/name/collection_purposes=0
privacy/collected_data/email_address/collected=false
privacy/collected_data/email_address/linked_to_user=false
privacy/collected_data/email_address/used_for_tracking=false
privacy/collected_data/email_address/collection_purposes=0
privacy/collected_data/phone_number/collected=false
privacy/collected_data/phone_number/linked_to_user=false
privacy/collected_data/phone_number/used_for_tracking=false
privacy/collected_data/phone_number/collection_purposes=0
privacy/collected_data/physical_address/collected=false
privacy/collected_data/physical_address/linked_to_user=false
privacy/collected_data/physical_address/used_for_tracking=false
privacy/collected_data/physical_address/collection_purposes=0
privacy/collected_data/other_contact_info/collected=false
privacy/collected_data/other_contact_info/linked_to_user=false
privacy/collected_data/other_contact_info/used_for_tracking=false
privacy/collected_data/other_contact_info/collection_purposes=0
privacy/collected_data/health/collected=false
privacy/collected_data/health/linked_to_user=false
privacy/collected_data/health/used_for_tracking=false
privacy/collected_data/health/collection_purposes=0
privacy/collected_data/fitness/collected=false
privacy/collected_data/fitness/linked_to_user=false
privacy/collected_data/fitness/used_for_tracking=false
privacy/collected_data/fitness/collection_purposes=0
privacy/collected_data/payment_info/collected=false
privacy/collected_data/payment_info/linked_to_user=false
privacy/collected_data/payment_info/used_for_tracking=false
privacy/collected_data/payment_info/collection_purposes=0
privacy/collected_data/credit_info/collected=false
privacy/collected_data/credit_info/linked_to_user=false
privacy/collected_data/credit_info/used_for_tracking=false
privacy/collected_data/credit_info/collection_purposes=0
privacy/collected_data/other_financial_info/collected=false
privacy/collected_data/other_financial_info/linked_to_user=false
privacy/collected_data/other_financial_info/used_for_tracking=false
privacy/collected_data/other_financial_info/collection_purposes=0
privacy/collected_data/precise_location/collected=false
privacy/collected_data/precise_location/linked_to_user=false
privacy/collected_data/precise_location/used_for_tracking=false
privacy/collected_data/precise_location/collection_purposes=0
privacy/collected_data/coarse_location/collected=false
privacy/collected_data/coarse_location/linked_to_user=false
privacy/collected_data/coarse_location/used_for_tracking=false
privacy/collected_data/coarse_location/collection_purposes=0
privacy/collected_data/sensitive_info/collected=false
privacy/collected_data/sensitive_info/linked_to_user=false
privacy/collected_data/sensitive_info/used_for_tracking=false
privacy/collected_data/sensitive_info/collection_purposes=0
privacy/collected_data/contacts/collected=false
privacy/collected_data/contacts/linked_to_user=false
privacy/collected_data/contacts/used_for_tracking=false
privacy/collected_data/contacts/collection_purposes=0
privacy/collected_data/emails_or_text_messages/collected=false
privacy/collected_data/emails_or_text_messages/linked_to_user=false
privacy/collected_data/emails_or_text_messages/used_for_tracking=false
privacy/collected_data/emails_or_text_messages/collection_purposes=0
privacy/collected_data/photos_or_videos/collected=false
privacy/collected_data/photos_or_videos/linked_to_user=false
privacy/collected_data/photos_or_videos/used_for_tracking=false
privacy/collected_data/photos_or_videos/collection_purposes=0
privacy/collected_data/audio_data/collected=false
privacy/collected_data/audio_data/linked_to_user=false
privacy/collected_data/audio_data/used_for_tracking=false
privacy/collected_data/audio_data/collection_purposes=0
privacy/collected_data/gameplay_content/collected=false
privacy/collected_data/gameplay_content/linked_to_user=false
privacy/collected_data/gameplay_content/used_for_tracking=false
privacy/collected_data/gameplay_content/collection_purposes=0
privacy/collected_data/customer_support/collected=false
privacy/collected_data/customer_support/linked_to_user=false
privacy/collected_data/customer_support/used_for_tracking=false
privacy/collected_data/customer_support/collection_purposes=0
privacy/collected_data/other_user_content/collected=false
privacy/collected_data/other_user_content/linked_to_user=false
privacy/collected_data/other_user_content/used_for_tracking=false
privacy/collected_data/other_user_content/collection_purposes=0
privacy/collected_data/browsing_history/collected=false
privacy/collected_data/browsing_history/linked_to_user=false
privacy/collected_data/browsing_history/used_for_tracking=false
privacy/collected_data/browsing_history/collection_purposes=0
privacy/collected_data/search_hhistory/collected=false
privacy/collected_data/search_hhistory/linked_to_user=false
privacy/collected_data/search_hhistory/used_for_tracking=false
privacy/collected_data/search_hhistory/collection_purposes=0
privacy/collected_data/user_id/collected=false
privacy/collected_data/user_id/linked_to_user=false
privacy/collected_data/user_id/used_for_tracking=false
privacy/collected_data/user_id/collection_purposes=0
privacy/collected_data/device_id/collected=false
privacy/collected_data/device_id/linked_to_user=false
privacy/collected_data/device_id/used_for_tracking=false
privacy/collected_data/device_id/collection_purposes=0
privacy/collected_data/purchase_history/collected=false
privacy/collected_data/purchase_history/linked_to_user=false
privacy/collected_data/purchase_history/used_for_tracking=false
privacy/collected_data/purchase_history/collection_purposes=0
privacy/collected_data/product_interaction/collected=false
privacy/collected_data/product_interaction/linked_to_user=false
privacy/collected_data/product_interaction/used_for_tracking=false
privacy/collected_data/product_interaction/collection_purposes=0
privacy/collected_data/advertising_data/collected=false
privacy/collected_data/advertising_data/linked_to_user=false
privacy/collected_data/advertising_data/used_for_tracking=false
privacy/collected_data/advertising_data/collection_purposes=0
privacy/collected_data/other_usage_data/collected=false
privacy/collected_data/other_usage_data/linked_to_user=false
privacy/collected_data/other_usage_data/used_for_tracking=false
privacy/collected_data/other_usage_data/collection_purposes=0
privacy/collected_data/crash_data/collected=false
privacy/collected_data/crash_data/linked_to_user=false
privacy/collected_data/crash_data/used_for_tracking=false
privacy/collected_data/crash_data/collection_purposes=0
privacy/collected_data/performance_data/collected=false
privacy/collected_data/performance_data/linked_to_user=false
privacy/collected_data/performance_data/used_for_tracking=false
privacy/collected_data/performance_data/collection_purposes=0
privacy/collected_data/other_diagnostic_data/collected=false
privacy/collected_data/other_diagnostic_data/linked_to_user=false
privacy/collected_data/other_diagnostic_data/used_for_tracking=false
privacy/collected_data/other_diagnostic_data/collection_purposes=0
privacy/collected_data/environment_scanning/collected=false
privacy/collected_data/environment_scanning/linked_to_user=false
privacy/collected_data/environment_scanning/used_for_tracking=false
privacy/collected_data/environment_scanning/collection_purposes=0
privacy/collected_data/hands/collected=false
privacy/collected_data/hands/linked_to_user=false
privacy/collected_data/hands/used_for_tracking=false
privacy/collected_data/hands/collection_purposes=0
privacy/collected_data/head/collected=false
privacy/collected_data/head/linked_to_user=false
privacy/collected_data/head/used_for_tracking=false
privacy/collected_data/head/collection_purposes=0
privacy/collected_data/other_data_types/collected=false
privacy/collected_data/other_data_types/linked_to_user=false
privacy/collected_data/other_data_types/used_for_tracking=false
privacy/collected_data/other_data_types/collection_purposes=0
icons/icon_1024x1024="uid://dgllr7ej7rnuq"
icons/icon_1024x1024_dark=""
icons/icon_1024x1024_tinted=""
icons/settings_58x58=""
icons/settings_58x58_dark=""
icons/settings_58x58_tinted=""
icons/settings_87x87=""
icons/settings_87x87_dark=""
icons/settings_87x87_tinted=""
icons/notification_40x40=""
icons/notification_40x40_dark=""
icons/notification_40x40_tinted=""
icons/notification_60x60=""
icons/notification_60x60_dark=""
icons/notification_60x60_tinted=""
icons/notification_76x76=""
icons/notification_76x76_dark=""
icons/notification_76x76_tinted=""
icons/notification_114x114=""
icons/notification_114x114_dark=""
icons/notification_114x114_tinted=""
icons/spotlight_80x80=""
icons/spotlight_80x80_dark=""
icons/spotlight_80x80_tinted=""
icons/spotlight_120x120=""
icons/spotlight_120x120_dark=""
icons/spotlight_120x120_tinted=""
icons/iphone_120x120=""
icons/iphone_120x120_dark=""
icons/iphone_120x120_tinted=""
icons/iphone_180x180=""
icons/iphone_180x180_dark=""
icons/iphone_180x180_tinted=""
icons/ipad_167x167=""
icons/ipad_167x167_dark=""
icons/ipad_167x167_tinted=""
icons/ipad_152x152=""
icons/ipad_152x152_dark=""
icons/ipad_152x152_tinted=""
icons/ios_128x128=""
icons/ios_128x128_dark=""
icons/ios_128x128_tinted=""
icons/ios_192x192=""
icons/ios_192x192_dark=""
icons/ios_192x192_tinted=""
icons/ios_136x136=""
icons/ios_136x136_dark=""
icons/ios_136x136_tinted=""
icons/app_store_1024x1024="uid://cxgwspjv16j7m"
icons/app_store_1024x1024_dark=""
icons/app_store_1024x1024_tinted=""
storyboard/image_scale_mode=0
storyboard/custom_image@2x=""
storyboard/custom_image@3x=""
storyboard/use_custom_bg_color=false
storyboard/custom_bg_color=Color(0, 0, 0, 1)

View File

@ -56,8 +56,8 @@ func _unhandled_input(event: InputEvent) -> void:
quit_closeup_on_escape quit_closeup_on_escape
and (event.is_action_pressed("cancel") or event.is_action_pressed("escape")) and (event.is_action_pressed("cancel") or event.is_action_pressed("escape"))
): ):
_exit()
get_viewport().set_input_as_handled() get_viewport().set_input_as_handled()
_exit()
# 在有特写界面时,阻塞 interact 输入 # 在有特写界面时,阻塞 interact 输入
elif event.is_action_pressed("interact"): elif event.is_action_pressed("interact"):
get_viewport().set_input_as_handled() get_viewport().set_input_as_handled()

View File

@ -43,13 +43,15 @@ signal sign_mark_offset_updated
dialogue_res = dialogue_c06 dialogue_res = dialogue_c06
if is_node_ready() and Engine.is_editor_hint(): if is_node_ready() and Engine.is_editor_hint():
notify_property_list_changed() notify_property_list_changed()
var note_key := "" @export var note_sign_texture: Texture2D
@export var note_key_coverer := ""
@export_enum("c01", "c02", "c03", "c04", "c05", "c06") var title_filter := "c01": @export_enum("c01", "c02", "c03", "c04", "c05", "c06") var title_filter := "c01":
set(val): set(val):
title_filter = val title_filter = val
if is_node_ready() and Engine.is_editor_hint(): if is_node_ready() and Engine.is_editor_hint():
notify_property_list_changed() notify_property_list_changed()
@export var note_sign_texture: Texture2D var note_key := ""
# 覆盖 note_key, 从 index=0 开始
@onready var sign_mark = %Sign as Sign @onready var sign_mark = %Sign as Sign
@onready var area2d = %Area2D as Area2D @onready var area2d = %Area2D as Area2D
@ -95,29 +97,32 @@ func _visibility_changed():
func _on_interacted() -> void: func _on_interacted() -> void:
if not note_key: var key = note_key
if note_key_coverer:
key = note_key_coverer
if not key:
printerr("Note key is not set") printerr("Note key is not set")
return return
icount += 1 icount += 1
%Sfx.play() %Sfx.play()
match mode: match mode:
"os": "os":
_show_os() _show_os(key)
"ballon": "ballon":
var _res = dialogue_res var _res = dialogue_res
var title = note_key var title = key
# items 条目特殊处理,不使用标题 # items 条目特殊处理,不使用标题
if dialogue == "items": if dialogue == "items":
title = "start" title = "start"
var content = tr(note_key).replace("{br}", "\n") var content = tr(key).replace("{br}", "\n")
var text = "~ " + title + "\n" + content + "\n=> END" var text = "~ " + title + "\n" + content + "\n=> END"
_res = DialogueManager.create_resource_from_text(text) as DialogueResource _res = DialogueManager.create_resource_from_text(text) as DialogueResource
_show_balloon(_res, title) _show_balloon(_res, title)
read_note.emit() read_note.emit()
func _show_os(): func _show_os(key):
SceneManager.pop_os_with_str(note_key) SceneManager.pop_os_with_str(key)
SceneManager.player_action(action) SceneManager.player_action(action)

View File

@ -3,8 +3,10 @@ extends TextureRect
signal shaven(progress: float) signal shaven(progress: float)
@export var brush_width := 9
# points inside radius 9 circle(必须>5) # points inside radius 9 circle(必须>5)
var brush_points := generate_brush_points(9) var brush_points
var area_size := Vector2.ZERO var area_size := Vector2.ZERO
var image: Image var image: Image
# bit_mask is the bottom # bit_mask is the bottom
@ -13,6 +15,7 @@ var total_pixels := 0.0
func _ready() -> void: func _ready() -> void:
brush_points = generate_brush_points(brush_width)
if not texture: if not texture:
printerr("texture not found") printerr("texture not found")
return return

View File

@ -27,5 +27,6 @@ offset_bottom = 120.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
texture = SubResource("ImageTexture_6r70v") texture = SubResource("ImageTexture_6r70v")
stretch_mode = 4 stretch_mode = 3
script = ExtResource("1_dja3c") script = ExtResource("1_dja3c")
brush_width = null

View File

@ -124,12 +124,12 @@ func _save_debug_archive_json() -> void:
var debug_archive_dict = { var debug_archive_dict = {
"global": { "global":
{
"enabled_items": {}, "enabled_items": {},
"player_x": 30.0, "player_x": 30.0,
}, },
"ground": { "ground": {}
}
} }
@ -355,6 +355,29 @@ var func_line_id := -1
var region_start_id := -1 var region_start_id := -1
var region_end_id := -1 var region_end_id := -1
# var footstep_audio_player: AudioStreamPlayer
# var directional_light_2d: DirectionalLight2D
# var player_line_2d: Line2D
# var fg_sprite_2d: Sprite2D
# var parallax_foreground: ParallaxBackground
# var camera_focus_marker: Camera2D
# var main_player: CharacterBody2D
# var deploy_layer: Node2D
# var bg_sprite_2d: Sprite2D
# var player_reenter_lock: Node
var _auto_ref_ignored_list = [
"footstep_audio_player",
"directional_light_2d",
"player_line_2d",
"fg_sprite_2d",
"parallax_foreground",
"camera_focus_marker",
"main_player",
"deploy_layer",
"bg_sprite_2d",
"player_reenter_lock"
]
# #region node_reference # #region node_reference
# #endregion # #endregion
@ -433,10 +456,13 @@ func _parse_node(
# 只读取 unique 标记过的节点; node.unique_name_in_owner 参数不可靠,需要实际检查 # 只读取 unique 标记过的节点; node.unique_name_in_owner 参数不可靠,需要实际检查
return return
var var_name = node.name.to_snake_case() var var_name = node.name.to_snake_case()
if existing_vars.has(var_name): if existing_vars.has(var_name) or _auto_ref_ignored_list.has(var_name):
return return
created_vars.append(var_name) created_vars.append(var_name)
code_lines.insert(region_start_id + 1, "var " + var_name + ": " + str(node.get_class())) var node_class_name = node.get_script().get_global_name()
if not node_class_name:
node_class_name = node.get_class()
code_lines.insert(region_start_id + 1, "var " + var_name + ": " + str(node_class_name))
func_line_id += 1 func_line_id += 1
var path = self.get_path_to(node).get_concatenated_names() var path = self.get_path_to(node).get_concatenated_names()
# closeup花名册 = $"../DeployLayer/Closeup花名册" # closeup花名册 = $"../DeployLayer/Closeup花名册"

View File

@ -31,8 +31,6 @@ func _on_ground_ready() -> void:
# 1: 牵手跑结束; 2: 谢幕演出结束 # 1: 牵手跑结束; 2: 谢幕演出结束
EventManager.get_stage(&"c02_burning_end_stage") == 1 EventManager.get_stage(&"c02_burning_end_stage") == 1
): ):
# 禁止再回到瞎子卧室
ArchiveManager.set_global_entry(&"c02_the_blind_room_unlocked", false)
# 第一章火灾结束,尾声演出 # 第一章火灾结束,尾声演出
_c02_final_show.call_deferred() _c02_final_show.call_deferred()
else: else:
@ -57,9 +55,16 @@ func _on_ground_ready() -> void:
closeup_ball = $"../DeployLayer/Closeup弹珠游戏" as Closeup2D closeup_ball = $"../DeployLayer/Closeup弹珠游戏" as Closeup2D
var the_blind_bedroom_portal = $"../DeployLayer/portal_1" as Portal2D var the_blind_bedroom_portal = $"../DeployLayer/portal_1" as Portal2D
# 第二章及以后,通往瞎子新卧室 # 第二章之前
if ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked") and EventManager.get_chapter_stage() < 3: if ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked") and EventManager.get_chapter_stage() < 3:
the_blind_bedroom_portal.status = "opened" the_blind_bedroom_portal.status = "opened"
if EventManager.get_chapter_stage() >= 3:
# 第二章,不通往瞎子新卧室,而是先去理发店
$"../DeployLayer/portal_2".enabled = true
the_blind_bedroom_portal.enabled = false
the_blind_bedroom_portal.target_scene = "c02_s06"
the_blind_bedroom_portal.target_portal = "1"
ball_game_boys_ambush = $"../DeployLayer/Ambush三男孩" ball_game_boys_ambush = $"../DeployLayer/Ambush三男孩"

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=67 format=3 uid="uid://cootarwb44vvh"] [gd_scene load_steps=66 format=3 uid="uid://cootarwb44vvh"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qkymk"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qkymk"]
[ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_二楼.gd" id="2_4dg6u"] [ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_二楼.gd" id="2_4dg6u"]
@ -16,7 +16,6 @@
[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="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="10_0k27j"]
[ext_resource type="Texture2D" uid="uid://bp84w8keuelyj" path="res://asset/art/scene/c02/s10_空房间/e_蜡烛-sheet.png" id="10_6iuix"] [ext_resource type="Texture2D" uid="uid://bp84w8keuelyj" path="res://asset/art/scene/c02/s10_空房间/e_蜡烛-sheet.png" id="10_6iuix"]
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="10_h3h1a"] [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"]
@ -949,7 +948,9 @@ position = Vector2(222, 14)
debug_note = "瞎子理发店" debug_note = "瞎子理发店"
enabled = false enabled = false
portal_name = "2" portal_name = "2"
target_scene = "c03_s01" target_scene = "c03_s03"
target_portal = "left"
status = "opened"
[node name="portal_3" parent="Ground/DeployLayer" index="4" instance=ExtResource("4_haidv")] [node name="portal_3" parent="Ground/DeployLayer" index="4" instance=ExtResource("4_haidv")]
position = Vector2(798, 17) position = Vector2(798, 17)
@ -959,27 +960,7 @@ portal_name = "3"
target_scene = "c03_s01" target_scene = "c03_s01"
target_portal = "right" target_portal = "right"
[node name="portal_5" parent="Ground/DeployLayer" index="5" instance=ExtResource("4_haidv")] [node name="楼梯蜡烛" type="Node2D" parent="Ground/DeployLayer" index="5"]
position = Vector2(108, 14)
debug_note = "瞎子新卧室
"
enabled = false
portal_name = "5"
target_scene = "c03_s02"
target_portal = "left"
status = "opened"
prop_key = "prop_不存在的钥匙"
[node name="EventBinder开门" type="Node" parent="Ground/DeployLayer/portal_5"]
script = ExtResource("10_0k27j")
memo = "current_chapter_stage!=1|2 时,启用: [_5]
"
updater_event = &"current_chapter_stage"
updater_stage_mode = "exclude"
updater_stages = Array[int]([1, 2])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="楼梯蜡烛" type="Node2D" parent="Ground/DeployLayer" index="6"]
[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛"] [node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛"]
position = Vector2(777.8, -48.2) position = Vector2(777.8, -48.2)
@ -1037,7 +1018,7 @@ position = Vector2(0, 12.8172)
sprite_frames = SubResource("SpriteFrames_lipxo") sprite_frames = SubResource("SpriteFrames_lipxo")
autoplay = "default" autoplay = "default"
[node name="Pro小小蝶上楼" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_p6da7")] [node name="Pro小小蝶上楼" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_p6da7")]
position = Vector2(953, 30) position = Vector2(953, 30)
sprite_frames = ExtResource("13_6iuix") sprite_frames = ExtResource("13_6iuix")
animation = &"小小小蝶动画(跑)" animation = &"小小小蝶动画(跑)"
@ -1061,7 +1042,7 @@ bus = &"game_sfx"
script = ExtResource("14_7x2h6") script = ExtResource("14_7x2h6")
metadata/_custom_type_script = "uid://wapo47a1oddf" metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Note楼梯杂物堆" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_h3h1a")] [node name="Note楼梯杂物堆" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_h3h1a")]
position = Vector2(801, -77) position = Vector2(801, -77)
texture = ExtResource("7_v3hjg") texture = ExtResource("7_v3hjg")
sign_mark_offset = Vector2(0, 1.47) sign_mark_offset = Vector2(0, 1.47)
@ -1074,7 +1055,7 @@ sign_mark_offset = Vector2(0, 1.47)
[node name="CollisionShape2D" parent="Ground/DeployLayer/Note楼梯杂物堆/Area2D" index="0"] [node name="CollisionShape2D" parent="Ground/DeployLayer/Note楼梯杂物堆/Area2D" index="0"]
shape = SubResource("RectangleShape2D_2rktm") shape = SubResource("RectangleShape2D_2rktm")
[node name="煤油灯" parent="Ground/DeployLayer" index="9" instance=ExtResource("5_3p5ta")] [node name="煤油灯" parent="Ground/DeployLayer" index="8" 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
@ -1086,7 +1067,7 @@ shape = SubResource("RectangleShape2D_lh55k")
position = Vector2(0, 15) position = Vector2(0, 15)
texture = ExtResource("8_7x2h6") texture = ExtResource("8_7x2h6")
[node name="煤油灯2" type="Sprite2D" parent="Ground/DeployLayer" index="10"] [node name="煤油灯2" type="Sprite2D" parent="Ground/DeployLayer" index="9"]
position = Vector2(321, 1) position = Vector2(321, 1)
texture = ExtResource("16_osg51") texture = ExtResource("16_osg51")
@ -1111,7 +1092,7 @@ blend_mode = 2
range_item_cull_mask = 4 range_item_cull_mask = 4
texture = ExtResource("21_2rktm") texture = ExtResource("21_2rktm")
[node name="Interactable老鼠洞" parent="Ground/DeployLayer" index="11" instance=ExtResource("7_0d746")] [node name="Interactable老鼠洞" parent="Ground/DeployLayer" index="10" instance=ExtResource("7_0d746")]
position = Vector2(618, 50) position = Vector2(618, 50)
enabled = false enabled = false
collision_width_and_x = Vector2(60, 0) collision_width_and_x = Vector2(60, 0)
@ -1127,19 +1108,19 @@ shape = SubResource("RectangleShape2D_7kxvk")
radius = 20.0 radius = 20.0
walk_to_edge = true walk_to_edge = true
[node name="小老鼠拖鞋子" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"] [node name="小老鼠拖鞋子" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
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="13" instance=ExtResource("9_58d45")] [node name="自动跟随的老鼠" parent="Ground/DeployLayer" index="12" 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="14" instance=ExtResource("10_p6da7")] [node name="疯子撞墙" parent="Ground/DeployLayer" index="13" 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")
@ -1164,7 +1145,7 @@ loop = true
loop_round_time = 0.8 loop_round_time = 0.8
metadata/_custom_type_script = "uid://wapo47a1oddf" metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Ambush三男孩" parent="Ground/DeployLayer" index="15" instance=ExtResource("14_k01ve")] [node name="Ambush三男孩" parent="Ground/DeployLayer" index="14" instance=ExtResource("14_k01ve")]
visible = false visible = false
position = Vector2(167, 38) position = Vector2(167, 38)
enabled = false enabled = false
@ -1181,23 +1162,23 @@ autoplay = "f3"
frame = 6 frame = 6
frame_progress = 0.121203 frame_progress = 0.121203
[node name="Closeup弹珠游戏" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_owxx3")] [node name="Closeup弹珠游戏" parent="Ground/DeployLayer" index="15" 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
[node name="Closeup水盆" parent="Ground/DeployLayer" index="17" instance=ExtResource("11_owxx3")] [node name="Closeup水盆" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_owxx3")]
position = Vector2(289, 16) position = Vector2(289, 16)
packed_scene = ExtResource("16_p6da7") packed_scene = ExtResource("16_p6da7")
first_interact_os_key = "c02_二楼水盆" first_interact_os_key = "c02_二楼水盆"
[node name="Closeup谢幕演出" parent="Ground/DeployLayer" index="18" instance=ExtResource("11_owxx3")] [node name="Closeup谢幕演出" parent="Ground/DeployLayer" index="17" instance=ExtResource("11_owxx3")]
position = Vector2(518, -272) position = Vector2(518, -272)
packed_scene = ExtResource("25_m28ab") packed_scene = ExtResource("25_m28ab")
quit_closeup_on_escape = false quit_closeup_on_escape = false
action_key = 3 action_key = 3
[node name="c02_final" type="Node2D" parent="Ground/DeployLayer" index="19"] [node name="c02_final" type="Node2D" parent="Ground/DeployLayer" index="18"]
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")]
@ -1299,18 +1280,18 @@ color = Color(0.895506, 0.638359, 0.208885, 1)
energy = 0.0 energy = 0.0
texture = SubResource("GradientTexture2D_0k27j") texture = SubResource("GradientTexture2D_0k27j")
[node name="Ambush小蝉偷看" parent="Ground/DeployLayer" index="20" instance=ExtResource("14_k01ve")] [node name="Ambush小蝉偷看" parent="Ground/DeployLayer" index="19" instance=ExtResource("14_k01ve")]
position = Vector2(553, -5) position = Vector2(553, -5)
texture = ExtResource("37_osg51") texture = ExtResource("37_osg51")
collision_width_and_x = Vector2(150, 0) collision_width_and_x = Vector2(150, 0)
hook_method = "glimpse_hide_out" hook_method = "glimpse_hide_out"
[node name="Event_小猫纸条" type="Node2D" parent="Ground/DeployLayer" index="21"] [node name="Event_小猫纸条" type="Node2D" parent="Ground/DeployLayer" index="20"]
position = Vector2(164, 42) position = Vector2(164, 42)
script = ExtResource("35_h3h1a") script = ExtResource("35_h3h1a")
pre_event_name = &"c02_ball_game_stage" pre_event_name = &"c02_ball_game_stage"
pre_event_stages = Array[int]([3]) pre_event_stages = Array[int]([3])
event_memo = "当前置事件[c02_ball_game_stage=0]显示该节点" event_memo = "当前置事件[c02_ball_game_stage=3:游戏结束_小猫纸片]显示该节点"
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event_小猫纸条"] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event_小猫纸条"]
@ -1326,16 +1307,16 @@ content_centered = true
texture_cover = ExtResource("37_rjlld") texture_cover = ExtResource("37_rjlld")
content_key = "c02_小猫纸条" content_key = "c02_小猫纸条"
[node name="Ambush解锁二楼地图" parent="Ground/DeployLayer" index="22" instance=ExtResource("14_k01ve")] [node name="Ambush解锁二楼地图" parent="Ground/DeployLayer" index="21" instance=ExtResource("14_k01ve")]
position = Vector2(748, 47) position = Vector2(748, 47)
hook_method = "unlock_2floor_map" hook_method = "unlock_2floor_map"
[node name="Event2D_xchan_run_away" type="Node2D" parent="Ground/DeployLayer" index="23"] [node name="Event2D_xchan_run_away" type="Node2D" parent="Ground/DeployLayer" index="22"]
position = Vector2(9, -4) position = Vector2(9, -4)
script = ExtResource("39_t5e0j") script = ExtResource("39_t5e0j")
event_name = &"c02_2f_xchan_run_away" event_name = &"c02_2f_xchan_run_away"
event_stages = Array[int]([1]) event_stages = Array[int]([1])
event_memo = "当事件[c02_2f_xchan_run_away=0]时显示该节点" event_memo = "当事件[c02_2f_xchan_run_away=1]时显示该节点"
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Ambush走到尽头后小蝉跑" parent="Ground/DeployLayer/Event2D_xchan_run_away" instance=ExtResource("14_k01ve")] [node name="Ambush走到尽头后小蝉跑" parent="Ground/DeployLayer/Event2D_xchan_run_away" instance=ExtResource("14_k01ve")]
@ -1357,7 +1338,7 @@ move_configs = Array[Dictionary]([{
}]) }])
debug_mov_animation = "c00_头套小婵_run" debug_mov_animation = "c00_头套小婵_run"
[node name="Event2D偷听陆仁对话后" type="Node2D" parent="Ground/DeployLayer" index="24"] [node name="Event2D偷听陆仁对话后" type="Node2D" parent="Ground/DeployLayer" index="23"]
script = ExtResource("46_sqio2") script = ExtResource("46_sqio2")
event_name = &"c03_invite_xchan_supper" event_name = &"c03_invite_xchan_supper"
event_stages = Array[int]([2]) event_stages = Array[int]([2])

View File

@ -136,6 +136,7 @@ enabled = false
mode = "ballon" mode = "ballon"
dialogue = "c02" dialogue = "c02"
note_sign_texture = ExtResource("8_to1d1") note_sign_texture = ExtResource("8_to1d1")
note_key_coverer = null
note_key = "c02_钻入隧道询问" note_key = "c02_钻入隧道询问"
[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="3"] [node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="3"]
@ -217,6 +218,7 @@ texture = ExtResource("12_27dvh")
[node name="煤油灯" parent="Ground/DeployLayer" index="12" instance=ExtResource("13_27dvh")] [node name="煤油灯" parent="Ground/DeployLayer" index="12" instance=ExtResource("13_27dvh")]
position = Vector2(373, -13.8031) position = Vector2(373, -13.8031)
sprite_scale = null
gaslight_energy = 2.0 gaslight_energy = 2.0
gaslight_ground_energy = 2.0 gaslight_ground_energy = 2.0
mute_when_interacted = false mute_when_interacted = false

View File

@ -14,13 +14,31 @@ func _ready() -> void:
#region node_reference #region node_reference
var : Gaslight
var note小蝉的床: Note2D
var note通风管道: Note2D
var note八卦图: Note2D
var note十字架: Note2D
#endregion #endregion
# 读取设置变量名 # 读取设置变量名
func _setup_node_reference() -> void: func _setup_node_reference() -> void:
pass = $"../DeployLayer/煤油灯"
note小蝉的床 = $"../DeployLayer/Note小蝉的床"
note通风管道 = $"../DeployLayer/Note通风管道"
note八卦图 = $"../DeployLayer/Note八卦图"
note十字架 = $"../DeployLayer/Note十字架"
func _on_ground_ready() -> void: func _on_ground_ready() -> void:
pass if .interacted_times == 0:
_set_notes_coverer("c03_s02_note_key_coverer")
.lighted.connect(_set_notes_coverer.bind(""), CONNECT_ONE_SHOT)
func _set_notes_coverer(coverer: String) -> void:
note小蝉的床.note_key_coverer = coverer
note通风管道.note_key_coverer = coverer
note八卦图.note_key_coverer = coverer
note十字架.note_key_coverer = coverer

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=17 format=3 uid="uid://ctwy1ubhm68la"] [gd_scene load_steps=20 format=3 uid="uid://ctwy1ubhm68la"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_jad6f"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_jad6f"]
[ext_resource type="Script" uid="uid://tk4wg0i4payx" path="res://scene/ground/scene/c03/s02_瞎子新卧室.gd" id="2_y504i"] [ext_resource type="Script" uid="uid://tk4wg0i4payx" path="res://scene/ground/scene/c03/s02_瞎子新卧室.gd" id="2_y504i"]
@ -6,12 +6,15 @@
[ext_resource type="Texture2D" uid="uid://vc2hn6t5bedg" path="res://asset/art/scene/c03/s02_瞎子新卧室/bg_瞎子新卧室.png" id="4_hehhg"] [ext_resource type="Texture2D" uid="uid://vc2hn6t5bedg" path="res://asset/art/scene/c03/s02_瞎子新卧室/bg_瞎子新卧室.png" id="4_hehhg"]
[ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_xifhb"] [ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_xifhb"]
[ext_resource type="Texture2D" uid="uid://bgtxwxerl2dxh" path="res://asset/art/scene/c02/s08_瞎子卧室/十字架.png" id="6_hehhg"] [ext_resource type="Texture2D" uid="uid://bgtxwxerl2dxh" path="res://asset/art/scene/c02/s08_瞎子卧室/十字架.png" id="6_hehhg"]
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_jad6f"]
[ext_resource type="Texture2D" uid="uid://bmid3iu2ch35o" path="res://asset/art/scene/c02/s08_瞎子卧室/八卦图.png" id="7_u55tr"] [ext_resource type="Texture2D" uid="uid://bmid3iu2ch35o" path="res://asset/art/scene/c02/s08_瞎子卧室/八卦图.png" id="7_u55tr"]
[ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="8_hehhg"] [ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="8_hehhg"]
[ext_resource type="Script" uid="uid://n56a07gyjq1u" path="res://scene/ground/script/c03/s02_event_2d偷听陆仁小蝶对话后.gd" id="8_pixqd"] [ext_resource type="Script" uid="uid://n56a07gyjq1u" path="res://scene/ground/script/c03/s02_event_2d偷听陆仁小蝶对话后.gd" id="8_pixqd"]
[ext_resource type="SpriteFrames" uid="uid://div8kcn7gu78r" path="res://asset/art/gif/c03_小蝶询问瞎子/c03_小蝶询问瞎子_frames.tres" id="10_2hv3f"] [ext_resource type="SpriteFrames" uid="uid://div8kcn7gu78r" path="res://asset/art/gif/c03_小蝶询问瞎子/c03_小蝶询问瞎子_frames.tres" id="10_2hv3f"]
[ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="10_jad6f"] [ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="10_jad6f"]
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="10_kchgf"]
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="10_v3seo"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="10_v3seo"]
[ext_resource type="Texture2D" uid="uid://bcqcvohj7jy40" path="res://asset/art/scene/c02/杂物/煤油灯 关灯.png" id="11_crt0l"]
[sub_resource type="Animation" id="Animation_k01ve"] [sub_resource type="Animation" id="Animation_k01ve"]
length = 0.001 length = 0.001
@ -145,15 +148,23 @@ position = Vector2(264.5, 69)
texture = ExtResource("5_xifhb") texture = ExtResource("5_xifhb")
[node name="portal_left" parent="Ground/DeployLayer" index="0"] [node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(67, 13) position = Vector2(17, 20)
target_scene = "c02_s06" target_scene = "c03_s03"
target_portal = "5" target_portal = "right"
status = "opened"
[node name="portal_right" parent="Ground/DeployLayer" index="1"] [node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(873, 15) position = Vector2(873, 15)
[node name="Note十字架" parent="Ground/DeployLayer" index="2" instance=ExtResource("10_v3seo")] [node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("6_jad6f")]
position = Vector2(67, 19)
enabled = false
portal_name = "1"
target_scene = "c02_s06"
target_portal = "1"
status = "opened"
[node name="Note十字架" parent="Ground/DeployLayer" index="3" instance=ExtResource("10_v3seo")]
unique_name_in_owner = true
position = Vector2(329, -3) position = Vector2(329, -3)
sign_mark_offset = Vector2(0, -13.89) sign_mark_offset = Vector2(0, -13.89)
title_filter = "c02" title_filter = "c02"
@ -165,7 +176,8 @@ position = Vector2(0, -3)
scale = Vector2(0.5, 0.5) scale = Vector2(0.5, 0.5)
texture = ExtResource("6_hehhg") texture = ExtResource("6_hehhg")
[node name="Note八卦图" parent="Ground/DeployLayer" index="3" instance=ExtResource("10_v3seo")] [node name="Note八卦图" parent="Ground/DeployLayer" index="4" instance=ExtResource("10_v3seo")]
unique_name_in_owner = true
position = Vector2(144, -14) position = Vector2(144, -14)
sign_mark_offset = Vector2(0, -10.86) sign_mark_offset = Vector2(0, -10.86)
title_filter = "c02" title_filter = "c02"
@ -177,7 +189,32 @@ position = Vector2(0, -2)
scale = Vector2(0.5, 0.5) scale = Vector2(0.5, 0.5)
texture = ExtResource("7_u55tr") texture = ExtResource("7_u55tr")
[node name="Event2D偷听陆仁对话后" type="Node2D" parent="Ground/DeployLayer" index="4"] [node name="Note通风管道" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_v3seo")]
unique_name_in_owner = true
position = Vector2(510, 23)
sign_mark_offset = Vector2(0, -80.86)
title_filter = "c03"
note_key = "c03_s02_通风管道"
[node name="Note小蝉的床" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_v3seo")]
unique_name_in_owner = true
position = Vector2(478, 49)
title_filter = "c03"
note_key = "c03_s02_小蝉的床"
[node name="煤油灯" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_kchgf")]
unique_name_in_owner = true
position = Vector2(167, 31)
sprite_scale = 0.33
hide_texture = true
sign_mark_offset = Vector2(0, -18.4)
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/煤油灯"]
show_behind_parent = true
position = Vector2(0, -15)
texture = ExtResource("11_crt0l")
[node name="Event2D偷听陆仁对话后" type="Node2D" parent="Ground/DeployLayer" index="8"]
script = ExtResource("8_pixqd") script = ExtResource("8_pixqd")
event_name = &"c03_invite_xchan_supper" event_name = &"c03_invite_xchan_supper"
event_stages = Array[int]([1]) event_stages = Array[int]([1])
@ -203,7 +240,7 @@ action_configs = Array[Dictionary]([{
[node name="MainPlayer" parent="Ground" index="5"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95) position = Vector2(63, 95)
catty_light_energy = 0.5 catty_light_energy = 0.5
player_movement_rect = Rect2(26, -158, 483, 316) player_movement_rect = Rect2(17, -158, 492, 316)
facing_direction = Vector2(1, 0) facing_direction = Vector2(1, 0)
[node name="CameraFocusMarker" parent="Ground" index="6"] [node name="CameraFocusMarker" parent="Ground" index="6"]
@ -221,7 +258,7 @@ position = Vector2(0, -5)
scale = Vector2(1.1, 1.1) scale = Vector2(1.1, 1.1)
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(26, 150, 509, 150) points = PackedVector2Array(17, 150, 509, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"] [node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false visible = false

View File

@ -14,13 +14,22 @@ func _ready() -> void:
#region node_reference #region node_reference
var closeup刮海报_理发店: Closeup2D
var closeup镜子特写: Closeup2D
#endregion #endregion
# 读取设置变量名 # 读取设置变量名
func _setup_node_reference() -> void: func _setup_node_reference() -> void:
pass closeup刮海报_理发店 = $"../DeployLayer/Closeup刮海报_理发店"
closeup镜子特写 = $"../DeployLayer/Closeup镜子特写"
func _on_ground_ready() -> void: func _on_ground_ready() -> void:
pass closeup刮海报_理发店.exit.connect(_check_if_flyer_shaven)
_check_if_flyer_shaven()
func _check_if_flyer_shaven(_arg = null):
if ArchiveManager.get_global_value("c03_s03_flyer_shaven"):
closeup刮海报_理发店.texture = null

View File

@ -1,10 +1,14 @@
[gd_scene load_steps=10 format=3 uid="uid://bsqt2c061fmin"] [gd_scene load_steps=14 format=3 uid="uid://bsqt2c061fmin"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_40yjl"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_40yjl"]
[ext_resource type="Script" uid="uid://cim5bqm2nayls" path="res://scene/ground/scene/c03/s03_瞎子理发店.gd" id="2_irgvj"] [ext_resource type="Script" uid="uid://cim5bqm2nayls" path="res://scene/ground/scene/c03/s03_瞎子理发店.gd" id="2_irgvj"]
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_d40x1"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_d40x1"]
[ext_resource type="Texture2D" uid="uid://lglbxvvwsybj" path="res://asset/art/scene/c03/s03_瞎子理发店/bg_瞎子理发店.png" id="4_40yjl"] [ext_resource type="Texture2D" uid="uid://lglbxvvwsybj" path="res://asset/art/scene/c03/s03_瞎子理发店/bg_瞎子理发店.png" id="4_40yjl"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="5_d40x1"]
[ext_resource type="Texture2D" uid="uid://7ujobcsjdm4r" path="res://asset/art/scene/c03/s03_瞎子理发店/fg_理发店前景.png" id="5_irgvj"] [ext_resource type="Texture2D" uid="uid://7ujobcsjdm4r" path="res://asset/art/scene/c03/s03_瞎子理发店/fg_理发店前景.png" id="5_irgvj"]
[ext_resource type="PackedScene" uid="uid://bnoqhovb0wjem" path="res://scene/ground/script/c03/s03_closeup镜子特写.tscn" id="6_j7tjd"]
[ext_resource type="Texture2D" uid="uid://0p78wjtm30rm" path="res://asset/art/scene/c03/s03_瞎子理发店/e_理发店剪贴画报.png" id="7_dcuy3"]
[ext_resource type="PackedScene" uid="uid://dohvkxfdmcrw4" path="res://scene/ground/script/c03/s03_刮海报_理发店.tscn" id="8_xtr6o"]
[sub_resource type="Animation" id="Animation_k01ve"] [sub_resource type="Animation" id="Animation_k01ve"]
length = 0.001 length = 0.001
@ -133,17 +137,31 @@ texture = ExtResource("4_40yjl")
offset = Vector2(0, -158) offset = Vector2(0, -158)
[node name="portal_left" parent="Ground/DeployLayer" index="0"] [node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(34, 8) position = Vector2(80, 23)
target_scene = "c02_s07" target_scene = "c02_s06"
target_portal = "1" target_portal = "2"
status = "opened"
[node name="portal_right" parent="Ground/DeployLayer" index="1"] [node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(873, 15) position = Vector2(538, 33)
target_scene = "c03_s02"
target_portal = "left"
[node name="Closeup镜子特写" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_d40x1")]
unique_name_in_owner = true
position = Vector2(236, 11)
packed_scene = ExtResource("6_j7tjd")
[node name="Closeup刮海报_理发店" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_d40x1")]
unique_name_in_owner = true
position = Vector2(462, 5)
texture = ExtResource("7_dcuy3")
packed_scene = ExtResource("8_xtr6o")
[node name="MainPlayer" parent="Ground" index="5"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(34, 98) position = Vector2(34, 98)
catty_light_energy = 0.5 catty_light_energy = 0.5
player_movement_rect = Rect2(35, -158, 496, 316) player_movement_rect = Rect2(35, -158, 506, 316)
facing_direction = Vector2(1, 0) facing_direction = Vector2(1, 0)
[node name="CameraFocusMarker" parent="Ground" index="6"] [node name="CameraFocusMarker" parent="Ground" index="6"]
@ -158,7 +176,7 @@ texture = ExtResource("5_irgvj")
offset = Vector2(0, -11) offset = Vector2(0, -11)
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(35, 151, 531, 151) points = PackedVector2Array(35, 151, 541, 151)
[node name="DirectionalLight2D" parent="Ground" index="8"] [node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false visible = false

View File

@ -5,6 +5,11 @@ class_name Gaslight extends Interactable2D
# 点燃信号 # 点燃信号
signal lighted signal lighted
@export var sprite_scale := 0.4:
set(val):
sprite_scale = val
if is_node_ready():
light_sprite2d.scale = Vector2(sprite_scale, sprite_scale)
# 中低位点火 # 中低位点火
@export var animation_low_mode := false @export var animation_low_mode := false
@export var hide_texture := false: @export var hide_texture := false:
@ -52,6 +57,7 @@ signal lighted
func _ready() -> void: func _ready() -> void:
super._ready() super._ready()
light_sprite2d.scale = Vector2(sprite_scale, sprite_scale)
point_light_ground.position.y = ground_height_offset point_light_ground.position.y = ground_height_offset
place_sprite2d.visible = not hide_texture place_sprite2d.visible = not hide_texture

View File

@ -1,6 +1,10 @@
extends CanvasLayer extends CanvasLayer
signal exit signal exit(success: bool)
signal shaven_fulfilled
@export var exit_on_shaven_fulfilled := true
@export var required_ratio := 0.6
@onready var flyer = $"刮刮乐" @onready var flyer = $"刮刮乐"
@onready var sfx = $"Sfx撕海报" @onready var sfx = $"Sfx撕海报"
@ -10,6 +14,8 @@ func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
flyer.shaven.connect(_on_shaven) flyer.shaven.connect(_on_shaven)
SceneManager.pop_center_notification("ui_left_mouse_shave") SceneManager.pop_center_notification("ui_left_mouse_shave")
if exit_on_shaven_fulfilled:
shaven_fulfilled.connect(exit.emit.bind(true))
var exiting = false var exiting = false
@ -18,12 +24,12 @@ var exiting = false
func _on_shaven(progress: float): func _on_shaven(progress: float):
if exiting: if exiting:
return return
if progress >= 0.6: if progress >= required_ratio:
exiting = true exiting = true
print("刮开 60% 以上!") print("刮开 %s 以上!" % required_ratio)
sfx.global_play() 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(shaven_fulfilled.emit)
# elif GlobalConfig.DEBUG: # elif GlobalConfig.DEBUG:
# print("刮开进度:", progress) # print("刮开进度:", progress)

View File

@ -54,4 +54,4 @@ offset_top = 0.0
offset_right = 79.0 offset_right = 79.0
offset_bottom = 0.0 offset_bottom = 0.0
texture = SubResource("ImageTexture_ro3vo") texture = SubResource("ImageTexture_ro3vo")
stretch_mode = 5 brush_width = 9

View File

@ -65,7 +65,7 @@ offset_top = -116.0
offset_right = 103.0 offset_right = 103.0
offset_bottom = 124.0 offset_bottom = 124.0
texture = SubResource("ImageTexture_04k84") texture = SubResource("ImageTexture_04k84")
stretch_mode = 5 brush_width = 9
[node name="Sfx撕海报" type="AudioStreamPlayer" parent="."] [node name="Sfx撕海报" type="AudioStreamPlayer" parent="."]
stream = ExtResource("5_xjg44") stream = ExtResource("5_xjg44")

View File

@ -18,6 +18,8 @@ func _on_global_stage_updated(e: StringName, s: int):
func _on_ground_ready(ground: Ground2D): func _on_ground_ready(ground: Ground2D):
# 邀请小蝉晚饭 # 邀请小蝉晚饭
if stage == 1: if stage == 1:
SceneManager.lock_player()
SceneManager.get_player().set_facing_direction(Vector2.RIGHT)
var the_blind = $"瞎子抽烟" as AnimatedSprite2D var the_blind = $"瞎子抽烟" as AnimatedSprite2D
the_blind.play("瞎子_抽烟") the_blind.play("瞎子_抽烟")
await the_blind.animation_finished await the_blind.animation_finished
@ -25,6 +27,7 @@ func _on_ground_ready(ground: Ground2D):
await the_blind.animation_finished await the_blind.animation_finished
# 邀请成功 # 邀请成功
EventManager.set_stage(event_name, 2) EventManager.set_stage(event_name, 2)
SceneManager.unlock_player()
func _on_pre_stage_updated(): func _on_pre_stage_updated():

View File

@ -0,0 +1,19 @@
extends CanvasLayer
@onready var bg = $BG as TextureRect
@onready var rope_with_mahjong = $"Draggable2D麻绳" as Draggable2D
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
var mahjong_picked = ArchiveManager.get_global_value("c03_s03_mahjong_picked")
if mahjong_picked:
rope_with_mahjong.queue_free()
else:
rope_with_mahjong.picked.connect(_on_btn_pressed, CONNECT_ONE_SHOT)
func _on_btn_pressed(_arg):
ArchiveManager.set_global_entry("c03_s03_mahjong_picked", true)
SceneManager.enable_prop_item("prop_麻将2")
rope_with_mahjong.queue_free()

View File

@ -0,0 +1 @@
uid://xyswrst2qvnv

View File

@ -0,0 +1,35 @@
[gd_scene load_steps=6 format=3 uid="uid://bnoqhovb0wjem"]
[ext_resource type="Script" uid="uid://xyswrst2qvnv" path="res://scene/ground/script/c03/s03_closeup镜子特写.gd" id="1_l7eke"]
[ext_resource type="Texture2D" uid="uid://cv43fc0yphoyh" path="res://asset/art/scene/c03/s03_瞎子理发店/ux_镜子特写_脸.png" id="2_h11vl"]
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_x88e4"]
[ext_resource type="PackedScene" uid="uid://bg7oictr1wgex" path="res://scene/little_game/general/draggable.tscn" id="4_pmhbo"]
[ext_resource type="Texture2D" uid="uid://dri7gy7janvim" path="res://asset/art/scene/c03/s03_瞎子理发店/ux_镜子特写_红绳麻将.png" id="5_l7eke"]
[node name="Closeup镜子特写" type="CanvasLayer"]
script = ExtResource("1_l7eke")
[node name="BG" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_h11vl")
[node name="遮罩" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("2_x88e4")
[node name="Draggable2D麻绳" parent="." instance=ExtResource("4_pmhbo")]
position = Vector2(122, 78)
act_as_button = true
texture = ExtResource("5_l7eke")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Draggable2D麻绳"]
polygon = PackedVector2Array(5, -83.5, -4, -83.5, -4, 36.5, -9.8, 36.5, -13.8, 40.5, -15, 40.5, -15, 79.6, -14.5, 79.9, -13.7, 79, -13.1, 83.5, -2.8, 83.5, -4, 81, -4, 80.3, 14.2, 78.5, 15, 78.5, 15, 37.4, 7, 36.6, 7, -79.7, 5, -80.8)

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,75 @@
extends Node2D
# 游戏暂停
var freezing := true:
set(val):
freezing = val
for i in range(1, 5):
get_node("kid" + str(i)).freezing = val
var _state_map = ["", "", "", ""]
# 0背 1右 2正 3左
var states = [0, 0, 0, 0]:
set(val):
if not val or len(val) != 4:
val = [0, 0, 0, 0]
states = val
ArchiveManager.set_global_entry("c03_s03_hariti_states", states)
# 正 右 左 背
var success_states: Array = [2, 2, 3, 0]
func _ready() -> void:
$"../刮刮乐".visible = true
var shaven = ArchiveManager.get_global_value("c03_s03_flyer_shaven")
states = ArchiveManager.get_global_value("c03_s03_hariti_states", [])
if shaven:
_on_shaven_fulfilled()
else:
get_parent().shaven_fulfilled.connect(_on_shaven_fulfilled)
get_parent().shaven_fulfilled.connect(
ArchiveManager.set_global_entry.bind("c03_s03_flyer_shaven", true)
)
for i in range(1, 5):
get_node("kid" + str(i)).picked.connect(_on_picked.bind(i))
_setup_state()
func _on_shaven_fulfilled():
get_node("../刮刮乐").queue_free()
freezing = false
var texture_dir = "res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/"
func _on_picked(node, id):
var kid_state = wrapi(states[id - 1] + 1, 0, 4)
states[id - 1] = kid_state
var texture_path = texture_dir + str(id) + _state_map[kid_state] + ".png"
node.texture = load(texture_path)
if not _check_success():
$SfxFlip.play()
elif not freezing:
$SfxSuccess.play()
freezing = true
print("鬼母子神游戏成功!")
func _setup_state():
for i in range(1, 5):
var kid = get_node("kid" + str(i)) as Draggable2D
var kid_state = states[i - 1]
var texture_path = texture_dir + str(i) + _state_map[kid_state] + ".png"
kid.texture = load(texture_path)
func _check_success() -> bool:
return success_states == states
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("cancel") or event.is_action_pressed("escape"):
get_viewport().set_input_as_handled()
get_parent().exit.emit(_check_success())

View File

@ -0,0 +1 @@
uid://bagqdqsd0b4fy

View File

@ -11,7 +11,6 @@ signal dropped(node: Draggable2D)
@export var act_as_button := false @export var act_as_button := false
# z +1 when picked (-1 when dropped) # z +1 when picked (-1 when dropped)
# @export var z_up_on_picked := true # @export var z_up_on_picked := true
@export var item_name = ""
@export var sprite_offset := Vector2(0, 0): @export var sprite_offset := Vector2(0, 0):
set(val): set(val):
sprite_offset = val sprite_offset = val
@ -41,7 +40,8 @@ func _ready() -> void:
sprite.offset = sprite_offset sprite.offset = sprite_offset
if Engine.is_editor_hint(): if Engine.is_editor_hint():
return return
_toggle_outline(false) # 初始化隐藏白边
sprite.material.set("shader_parameter/thickness", 0.0)
mouse_entered.connect(_on_mouse_entered) mouse_entered.connect(_on_mouse_entered)
mouse_exited.connect(_on_mouse_exited) mouse_exited.connect(_on_mouse_exited)
@ -59,7 +59,7 @@ static var pending_enter_callables := [] as Array[Callable]
func is_focused() -> bool: func is_focused() -> bool:
return current_focusing_item == item_name return current_focusing_item == name
func _on_mouse_entered() -> bool: func _on_mouse_entered() -> bool:
@ -73,7 +73,7 @@ func _on_mouse_entered() -> bool:
if not pending_enter_callables.has(_on_mouse_entered): if not pending_enter_callables.has(_on_mouse_entered):
pending_enter_callables.append(_on_mouse_entered) pending_enter_callables.append(_on_mouse_entered)
return false return false
current_focusing_item = item_name current_focusing_item = name
_toggle_outline(true) _toggle_outline(true)
return true return true
@ -126,7 +126,7 @@ func _try_pick() -> void:
var tween = create_tween() var tween = create_tween()
tween.tween_property(sprite.material, "shader_parameter/alpha_ratio", 1.0, 0.15) tween.tween_property(sprite.material, "shader_parameter/alpha_ratio", 1.0, 0.15)
return return
if current_focusing_item != item_name: if current_focusing_item != name:
return return
# reset rotation # reset rotation
rotation = 0 rotation = 0

View File

@ -1,21 +0,0 @@
extends Node2D
@onready var d1 = $Draggable2D1 as Draggable2D
@onready var d2 = $Draggable2D2 as Draggable2D
@onready var d3 = $Draggable2D3 as Draggable2D
@onready var d4 = $Draggable2D4 as Draggable2D
@onready var b1 = $Button1 as Button
@onready var b2 = $Button2 as Button
@onready var b3 = $Button3 as Button
@onready var b4 = $Button4 as Button
func _ready() -> void:
b1.mouse_entered.connect(_on_mouse_entered.bind(1))
b2.mouse_entered.connect(_on_mouse_entered.bind(2))
b3.mouse_entered.connect(_on_mouse_entered.bind(3))
b4.mouse_entered.connect(_on_mouse_entered.bind(4))
func _on_mouse_entered(id: int):
print(id)

View File

@ -1 +0,0 @@
uid://b8iwlrrq3ctuy

View File

@ -1 +0,0 @@
extends Node2D

View File

@ -1 +0,0 @@
uid://3p40cd3bp3ta

View File

@ -15,19 +15,19 @@ var audio_auto = preload("res://asset/audio/sfx/game/八音盒/自走八音盒.m
@onready var side_handle = $All/SideHandle as AnimatedSprite2D @onready var side_handle = $All/SideHandle as AnimatedSprite2D
@onready var pic = $"All/Draggable照片" as Draggable2D @onready var pic = $"All/Draggable照片" as Draggable2D
@onready var d1 = $"All/OpenedBox/Panel/Draggable2D1" as Draggable2D @onready var d1 = $"All/OpenedBox/Panel/panel_父亲" as Draggable2D
@onready var d2 = $"All/OpenedBox/Panel/Draggable2D2" as Draggable2D @onready var d2 = $"All/OpenedBox/Panel/panel_母亲" as Draggable2D
@onready var d3 = $"All/OpenedBox/Panel/Draggable2D3" as Draggable2D @onready var d3 = $"All/OpenedBox/Panel/panel_小小蝶" as Draggable2D
@onready var d4 = $"All/OpenedBox/Panel/Draggable2D4" as Draggable2D @onready var d4 = $"All/OpenedBox/Panel/panel_小蝉" as Draggable2D
@onready var s0 = $"All/OpenedBox/Panel/Marker2D1" as Marker2D @onready var s0 = $"All/OpenedBox/Panel/Marker2D1" as Marker2D
@onready var s1 = $"All/OpenedBox/Panel/Marker2D2" as Marker2D @onready var s1 = $"All/OpenedBox/Panel/Marker2D2" as Marker2D
@onready var s2 = $"All/OpenedBox/Panel/Marker2D3" as Marker2D @onready var s2 = $"All/OpenedBox/Panel/Marker2D3" as Marker2D
@onready var s3 = $"All/OpenedBox/Panel/Marker2D4" as Marker2D @onready var s3 = $"All/OpenedBox/Panel/Marker2D4" as Marker2D
@onready var danzhu = $"All/Drawer/Draggable1" as Draggable2D @onready var danzhu = $"All/Drawer/drawer_弹珠" as Draggable2D
@onready var xiaomao = $"All/Drawer/Draggable2" as Draggable2D @onready var xiaomao = $"All/Drawer/drawer_小猫身子" as Draggable2D
@onready var xiaochan = $"All/Drawer/Draggable3" as Draggable2D @onready var xiaochan = $"All/Drawer/drawer_小蝉" as Draggable2D
var slots: PackedVector2Array = [] var slots: PackedVector2Array = []
var draggables: Array[Draggable2D] = [] var draggables: Array[Draggable2D] = []

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=47 format=3 uid="uid://beleib3mmu0af"] [gd_scene load_steps=46 format=3 uid="uid://beleib3mmu0af"]
[ext_resource type="Texture2D" uid="uid://2xbl572hv2qf" path="res://asset/art/little_game/八音盒/背景.png" id="1_j0wst"] [ext_resource type="Texture2D" uid="uid://2xbl572hv2qf" path="res://asset/art/little_game/八音盒/背景.png" id="1_j0wst"]
[ext_resource type="Script" uid="uid://bian8ga7cet8k" path="res://scene/little_game/八音盒/八音盒.gd" id="2_opptd"] [ext_resource type="Script" uid="uid://bian8ga7cet8k" path="res://scene/little_game/八音盒/八音盒.gd" id="2_opptd"]
@ -18,7 +18,6 @@
[ext_resource type="Texture2D" uid="uid://cxdsucu5wi464" path="res://asset/art/little_game/八音盒/插销动画/插销-8.png" id="10_j5b7e"] [ext_resource type="Texture2D" uid="uid://cxdsucu5wi464" path="res://asset/art/little_game/八音盒/插销动画/插销-8.png" id="10_j5b7e"]
[ext_resource type="Texture2D" uid="uid://d0mw5ohdf5ncj" path="res://asset/art/little_game/八音盒/插销动画/插销-9.png" id="11_rg33s"] [ext_resource type="Texture2D" uid="uid://d0mw5ohdf5ncj" path="res://asset/art/little_game/八音盒/插销动画/插销-9.png" id="11_rg33s"]
[ext_resource type="PackedScene" uid="uid://dry6mhv6x0ppl" path="res://scene/little_game/gadget/wheel.tscn" id="15_obian"] [ext_resource type="PackedScene" uid="uid://dry6mhv6x0ppl" path="res://scene/little_game/gadget/wheel.tscn" id="15_obian"]
[ext_resource type="Script" uid="uid://3p40cd3bp3ta" path="res://scene/little_game/八音盒/panel.gd" id="16_8vbnc"]
[ext_resource type="SpriteFrames" uid="uid://drst7gokusjgi" path="res://asset/art/gif/c02_八音盒/c02_八音盒_frames.tres" id="16_50eha"] [ext_resource type="SpriteFrames" uid="uid://drst7gokusjgi" path="res://asset/art/gif/c02_八音盒/c02_八音盒_frames.tres" id="16_50eha"]
[ext_resource type="Texture2D" uid="uid://dthnevvjj3i5f" path="res://asset/art/little_game/八音盒/新版贴图/八音盒打开.png" id="16_dtoml"] [ext_resource type="Texture2D" uid="uid://dthnevvjj3i5f" path="res://asset/art/little_game/八音盒/新版贴图/八音盒打开.png" id="16_dtoml"]
[ext_resource type="PackedScene" uid="uid://bg7oictr1wgex" path="res://scene/little_game/general/draggable.tscn" id="16_h88gi"] [ext_resource type="PackedScene" uid="uid://bg7oictr1wgex" path="res://scene/little_game/general/draggable.tscn" id="16_h88gi"]
@ -189,7 +188,6 @@ centered = false
visible = false visible = false
position = Vector2(277, 194.5) position = Vector2(277, 194.5)
act_as_button = true act_as_button = true
item_name = "盒子"
sprite_offset = Vector2(3, -35) sprite_offset = Vector2(3, -35)
texture = ExtResource("22_rdaqv") texture = ExtResource("22_rdaqv")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
@ -206,52 +204,47 @@ centered = false
[node name="Panel" type="Node2D" parent="All/OpenedBox"] [node name="Panel" type="Node2D" parent="All/OpenedBox"]
y_sort_enabled = true y_sort_enabled = true
position = Vector2(68.5, -38) position = Vector2(68.5, -38)
script = ExtResource("16_8vbnc")
[node name="Draggable2D1" parent="All/OpenedBox/Panel" instance=ExtResource("16_h88gi")] [node name="panel_父亲" parent="All/OpenedBox/Panel" instance=ExtResource("16_h88gi")]
position = Vector2(180, 196) position = Vector2(180, 196)
rotation = 1.11169 rotation = 1.11169
item_name = "父"
sprite_offset = Vector2(3, -35) sprite_offset = Vector2(3, -35)
texture = ExtResource("17_gm7pw") texture = ExtResource("17_gm7pw")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/OpenedBox/Panel/Draggable2D1"] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/OpenedBox/Panel/panel_父亲"]
position = Vector2(3.20175, -33.5559) position = Vector2(3.20175, -33.5559)
polygon = PackedVector2Array(2.5, -45.5, -8.5, -45.5, -9.3, -44.5, -11.9, -44.5, -9.5, -31.1, -9.5, -30.4, -15.2, -25.5, -17.1, -25.5, -18.5, -19.2, -18.5, -3.9, -14.5, -0.700001, -13.5, 33.3, -14.5, 34.8, -14.5, 41.7, -7.7, 45.5, 4.3, 45.5, 6.3, 43.5, 8.1, 43.5, 9.5, 37.7, 9.5, 35.7, 5.8, 32, 6.3, 31.5, 8.7, 31.5, 7.5, 16.5, 7.5, -5.5, 13.8, -5.5, 18.5, -15.9, 18.5, -26.8, 16.2, -27.8, 9.5, -22.5, 9.5, -20.5, 8.6, -20.5, 3.1, -28.8, 6.5, -38.1, 6.5, -42.5) polygon = PackedVector2Array(2.5, -45.5, -8.5, -45.5, -9.3, -44.5, -11.9, -44.5, -9.5, -31.1, -9.5, -30.4, -15.2, -25.5, -17.1, -25.5, -18.5, -19.2, -18.5, -3.9, -14.5, -0.700001, -13.5, 33.3, -14.5, 34.8, -14.5, 41.7, -7.7, 45.5, 4.3, 45.5, 6.3, 43.5, 8.1, 43.5, 9.5, 37.7, 9.5, 35.7, 5.8, 32, 6.3, 31.5, 8.7, 31.5, 7.5, 16.5, 7.5, -5.5, 13.8, -5.5, 18.5, -15.9, 18.5, -26.8, 16.2, -27.8, 9.5, -22.5, 9.5, -20.5, 8.6, -20.5, 3.1, -28.8, 6.5, -38.1, 6.5, -42.5)
[node name="Draggable2D2" parent="All/OpenedBox/Panel" instance=ExtResource("16_h88gi")] [node name="panel_母亲" parent="All/OpenedBox/Panel" instance=ExtResource("16_h88gi")]
position = Vector2(286.5, 197) position = Vector2(286.5, 197)
rotation = 1.58777 rotation = 1.58777
item_name = "母"
sprite_offset = Vector2(1, -34) sprite_offset = Vector2(1, -34)
texture = ExtResource("18_8vbnc") texture = ExtResource("18_8vbnc")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/OpenedBox/Panel/Draggable2D2"] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/OpenedBox/Panel/panel_母亲"]
position = Vector2(1.42264, -34.029) position = Vector2(1.42264, -34.029)
polygon = PackedVector2Array(11.5, -41.9, 2, -45.5, -5.5, -45.5, -9.4, -40.5, -12.1, -40.5, -10.5, -34.5, -10.5, -31.5, -6, -27.9, -10.3, -23.5, -12.3, -23.5, -12.5, -21.9, -12.5, -7.8, -10.9, -3.5, -12.5, 9.4, -12.5, 29.3, -9.5, 32.3, -12.5, 34.4, -12.5, 41.7, -5.7, 45.5, 6.3, 45.5, 8.3, 43.5, 10.1, 43.5, 11.5, 37.7, 11.5, 35.7, 8, 32.2, 10.2, 30.5, 12.5, 30.5, 12.5, 28.1, 8.5, -2.5, 8.5, -3.6, 12.2, -6.5, 12.5, -19.6, 5.4, -29.3, 11.5, -37.9) polygon = PackedVector2Array(11.5, -41.9, 2, -45.5, -5.5, -45.5, -9.4, -40.5, -12.1, -40.5, -10.5, -34.5, -10.5, -31.5, -6, -27.9, -10.3, -23.5, -12.3, -23.5, -12.5, -21.9, -12.5, -7.8, -10.9, -3.5, -12.5, 9.4, -12.5, 29.3, -9.5, 32.3, -12.5, 34.4, -12.5, 41.7, -5.7, 45.5, 6.3, 45.5, 8.3, 43.5, 10.1, 43.5, 11.5, 37.7, 11.5, 35.7, 8, 32.2, 10.2, 30.5, 12.5, 30.5, 12.5, 28.1, 8.5, -2.5, 8.5, -3.6, 12.2, -6.5, 12.5, -19.6, 5.4, -29.3, 11.5, -37.9)
[node name="Draggable2D3" parent="All/OpenedBox/Panel" instance=ExtResource("16_h88gi")] [node name="panel_小小蝶" parent="All/OpenedBox/Panel" instance=ExtResource("16_h88gi")]
position = Vector2(354, 169) position = Vector2(354, 169)
rotation = -1.26607 rotation = -1.26607
item_name = "蝶"
sprite_offset = Vector2(1, -23) sprite_offset = Vector2(1, -23)
texture = ExtResource("19_858bj") texture = ExtResource("19_858bj")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/OpenedBox/Panel/Draggable2D3"] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/OpenedBox/Panel/panel_小小蝶"]
position = Vector2(1.18075, -22.9097) position = Vector2(1.18075, -22.9097)
polygon = PackedVector2Array(9.5, -23.1, 4.6, -26.3, 2.5, -25.2, 2.5, -24, -6.6, -24, -8.6, -21, -10.5, -21, -10.5, -18.8, -9.5, -15, -9.5, -8.9, -6.5, -6.9, -10.5, -2.8, -10.5, 16, -7.4, 18.3, -10, 20, -10.5, 29.5, -8.5, 31, -8.5, 32, 6.3, 32, 8.3, 30, 10.5, 30, 10.5, 27.6, 7, 17.3, 8.6, 15, 10.5, 15, 10.5, 13, 7.2, -9, 9.5, -20.8) polygon = PackedVector2Array(9.5, -23.1, 4.6, -26.3, 2.5, -25.2, 2.5, -24, -6.6, -24, -8.6, -21, -10.5, -21, -10.5, -18.8, -9.5, -15, -9.5, -8.9, -6.5, -6.9, -10.5, -2.8, -10.5, 16, -7.4, 18.3, -10, 20, -10.5, 29.5, -8.5, 31, -8.5, 32, 6.3, 32, 8.3, 30, 10.5, 30, 10.5, 27.6, 7, 17.3, 8.6, 15, 10.5, 15, 10.5, 13, 7.2, -9, 9.5, -20.8)
[node name="Draggable2D4" parent="All/OpenedBox/Panel" instance=ExtResource("16_h88gi")] [node name="panel_小蝉" parent="All/OpenedBox/Panel" instance=ExtResource("16_h88gi")]
position = Vector2(310, 173) position = Vector2(310, 173)
rotation = -1.14307 rotation = -1.14307
item_name = "蝉"
sprite_offset = Vector2(-4, -23) sprite_offset = Vector2(-4, -23)
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/OpenedBox/Panel/Draggable2D4"] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/OpenedBox/Panel/panel_小蝉"]
position = Vector2(-4.7032, -24.7816) position = Vector2(-4.7032, -24.7816)
polygon = PackedVector2Array(12, -29.6, -2.9, -33, -5, -33, -5, -31.3, -7, -30.2, -7, -25.3, -1.3, -17.7, -15, -5.9, -15, -3.2, -11.8, 0, -7.3, 0, -3.9, -2.8, -5, 1.8, -5, 6.7, -1, 12, -1, 17.9, -5.7, 21, -8, 21, -8, 29, -4, 32, -4, 33, 10.8, 33, 12.8, 31, 14.6, 31, 16, 25.2, 16, 22.8, 9, 18.8, 9, 15.8, 9.8, 15, 11.8, 15, 12.8, 7, 14.9, 7, 11, -3.5, 11, -8.4, 16, -17.5, 16, -27.3, 15.5, -29, 12, -29) polygon = PackedVector2Array(12, -29.6, -2.9, -33, -5, -33, -5, -31.3, -7, -30.2, -7, -25.3, -1.3, -17.7, -15, -5.9, -15, -3.2, -11.8, 0, -7.3, 0, -3.9, -2.8, -5, 1.8, -5, 6.7, -1, 12, -1, 17.9, -5.7, 21, -8, 21, -8, 29, -4, 32, -4, 33, 10.8, 33, 12.8, 31, 14.6, 31, 16, 25.2, 16, 22.8, 9, 18.8, 9, 15.8, 9.8, 15, 11.8, 15, 12.8, 7, 14.9, 7, 11, -3.5, 11, -8.4, 16, -17.5, 16, -27.3, 15.5, -29, 12, -29)
@ -276,7 +269,6 @@ centered = false
[node name="Draggable抽屉" parent="All/BrokenBox" instance=ExtResource("16_h88gi")] [node name="Draggable抽屉" parent="All/BrokenBox" instance=ExtResource("16_h88gi")]
position = Vector2(350, 210) position = Vector2(350, 210)
act_as_button = true act_as_button = true
item_name = "抽屉"
texture = ExtResource("28_b3w8p") texture = ExtResource("28_b3w8p")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
@ -287,7 +279,6 @@ shape = SubResource("RectangleShape2D_cbhp3")
[node name="Draggable照片" parent="All" instance=ExtResource("16_h88gi")] [node name="Draggable照片" parent="All" instance=ExtResource("16_h88gi")]
position = Vector2(241, 71) position = Vector2(241, 71)
act_as_button = true act_as_button = true
item_name = "prop_撕下的照片上"
texture = ExtResource("19_cbhp3") texture = ExtResource("19_cbhp3")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
@ -304,37 +295,34 @@ position = Vector2(-26.5, -3)
texture = ExtResource("29_hder7") texture = ExtResource("29_hder7")
centered = false centered = false
[node name="Draggable1" parent="All/Drawer" instance=ExtResource("16_h88gi")] [node name="drawer_弹珠" parent="All/Drawer" instance=ExtResource("16_h88gi")]
position = Vector2(128.5, 135) position = Vector2(128.5, 135)
act_as_button = true act_as_button = true
item_name = "prop_弹珠"
texture = ExtResource("30_tgpfj") texture = ExtResource("30_tgpfj")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
[node name="CollisionShape2D" type="CollisionShape2D" parent="All/Drawer/Draggable1"] [node name="CollisionShape2D" type="CollisionShape2D" parent="All/Drawer/drawer_弹珠"]
position = Vector2(1, 7.62939e-06) position = Vector2(1, 7.62939e-06)
shape = SubResource("CircleShape2D_wq2wm") shape = SubResource("CircleShape2D_wq2wm")
[node name="Draggable2" parent="All/Drawer" instance=ExtResource("16_h88gi")] [node name="drawer_小猫身子" parent="All/Drawer" instance=ExtResource("16_h88gi")]
position = Vector2(249.5, 143) position = Vector2(249.5, 143)
rotation = -0.254158 rotation = -0.254158
act_as_button = true act_as_button = true
item_name = "prop_无头小猫玩具"
texture = ExtResource("31_wq2wm") texture = ExtResource("31_wq2wm")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/Drawer/Draggable2"] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/Drawer/drawer_小猫身子"]
polygon = PackedVector2Array(5.5, -37.9, 3, -36.8, 3, -35.8, 1, -34.7, 1, -30.5, 2.2, -29.6, 1.2, -28.1, -4.2, -33.5, -6.8, -33.5, -10, -30.3, -10, -27.5, -12.7, -25.5, -14.2, -25.5, -15, -31.5, -15, -35.5, -24.3, -31.5, -26.3, -31.5, -27.4, -29, -24, -25.7, -24, -23.3, -24.8, -22.5, -26.6, -22.5, -27.5, -18.8, -35, -26.3, -35, -28.5, -43.8, -28.5, -52.8, -19.5, -54.7, -19.5, -56.7, -7.5, -58.1, -7.5, -57, 10.6, -57, 16.1, -53, 22.1, -53, 24.5, -44, 31.4, -44, 33.5, -31.1, 33.5, -27, 40.1, -27, 42.3, -19, 43.2, -19, 44.5, 10.1, 44.5, 15.5, 35.8, 18.8, 36.5, 22.9, 36.5, 26.8, 43.5, 42.8, 43.5, 45.8, 40.5, 49.1, 40.5, 55.1, 31.5, 57.4, 31.5, 48, -20.9, 48, -22.3, 38, -32.3, 38, -34.5, 28.4, -34.5, 27, -28.7, 27, -25.6, 25.4, -24.6, 23, -26.5, 23, -27.8, 20.5, -28.9, 17.4, -25.9) polygon = PackedVector2Array(5.5, -37.9, 3, -36.8, 3, -35.8, 1, -34.7, 1, -30.5, 2.2, -29.6, 1.2, -28.1, -4.2, -33.5, -6.8, -33.5, -10, -30.3, -10, -27.5, -12.7, -25.5, -14.2, -25.5, -15, -31.5, -15, -35.5, -24.3, -31.5, -26.3, -31.5, -27.4, -29, -24, -25.7, -24, -23.3, -24.8, -22.5, -26.6, -22.5, -27.5, -18.8, -35, -26.3, -35, -28.5, -43.8, -28.5, -52.8, -19.5, -54.7, -19.5, -56.7, -7.5, -58.1, -7.5, -57, 10.6, -57, 16.1, -53, 22.1, -53, 24.5, -44, 31.4, -44, 33.5, -31.1, 33.5, -27, 40.1, -27, 42.3, -19, 43.2, -19, 44.5, 10.1, 44.5, 15.5, 35.8, 18.8, 36.5, 22.9, 36.5, 26.8, 43.5, 42.8, 43.5, 45.8, 40.5, 49.1, 40.5, 55.1, 31.5, 57.4, 31.5, 48, -20.9, 48, -22.3, 38, -32.3, 38, -34.5, 28.4, -34.5, 27, -28.7, 27, -25.6, 25.4, -24.6, 23, -26.5, 23, -27.8, 20.5, -28.9, 17.4, -25.9)
[node name="Draggable3" parent="All/Drawer" instance=ExtResource("16_h88gi")] [node name="drawer_小蝉" parent="All/Drawer" instance=ExtResource("16_h88gi")]
position = Vector2(368.5, 175) position = Vector2(368.5, 175)
rotation = 0.330288 rotation = 0.330288
act_as_button = true act_as_button = true
item_name = "prop_木头人偶"
texture = ExtResource("32_sg8mt") texture = ExtResource("32_sg8mt")
limit_rect = Rect2(150, 150, 220, 70) limit_rect = Rect2(150, 150, 220, 70)
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/Drawer/Draggable3"] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/Drawer/drawer_小蝉"]
position = Vector2(-1.99999, 0.999999) position = Vector2(-1.99999, 0.999999)
polygon = PackedVector2Array(-11, -44.2, -11, -42.1, -14, -40.1, -14, -34.4, -9, -26.4, -9, -23.8, -5.6, -22.1, -12, -14.8, -12, -14.2, -27.6, -4, -29.2, -4, -30.3, -1.9, -27.1, 3, -20.5, 3, -8.7, -3.4, -11, 6.8, -11, 11.7, -5, 18.8, -5, 29, -12.7, 35, -15, 35, -15, 43.8, -11, 47.8, -11, 49.3, -2.4, 53, 6.8, 53, 15.7, 45, 18, 45, 18, 36, 13, 32, 13, 30, 8, 30, 8, 25.6, 10, 23, 11.7, 23, 13.7, 12, 15.6, 12, 11.5, -3, 12, -9.9, 12, -15.4, 19, -25, 21, -25, 21, -34.8, 16.8, -39, 13.8, -39, 12, -35.7, 12, -41.8) polygon = PackedVector2Array(-11, -44.2, -11, -42.1, -14, -40.1, -14, -34.4, -9, -26.4, -9, -23.8, -5.6, -22.1, -12, -14.8, -12, -14.2, -27.6, -4, -29.2, -4, -30.3, -1.9, -27.1, 3, -20.5, 3, -8.7, -3.4, -11, 6.8, -11, 11.7, -5, 18.8, -5, 29, -12.7, 35, -15, 35, -15, 43.8, -11, 47.8, -11, 49.3, -2.4, 53, 6.8, 53, 15.7, 45, 18, 45, 18, 36, 13, 32, 13, 30, 8, 30, 8, 25.6, 10, 23, 11.7, 23, 13.7, 12, 15.6, 12, 11.5, -3, 12, -9.9, 12, -15.4, 19, -25, 21, -25, 21, -34.8, 16.8, -39, 13.8, -39, 12, -35.7, 12, -41.8)