麻将游戏粗流程

This commit is contained in:
cakipaul 2025-07-09 23:04:08 +08:00
parent 72b5036026
commit 1dd6d4fe83
68 changed files with 1249 additions and 148 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2ectbek7vksi"
path="res://.godot/imported/三条1.png-8bf0cf7022375f14a66fa3a279e05592.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三条1.png"
dest_files=["res://.godot/imported/三条1.png-8bf0cf7022375f14a66fa3a279e05592.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ca5j182ppemi3"
path="res://.godot/imported/三条2.png-a2626fadfb1e1db09c90dea5b8e116f3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三条2.png"
dest_files=["res://.godot/imported/三条2.png-a2626fadfb1e1db09c90dea5b8e116f3.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cd6d3xjx5o6gg"
path="res://.godot/imported/三条3.png-1a94006389bc73b73b91ef87392019bc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三条3.png"
dest_files=["res://.godot/imported/三条3.png-1a94006389bc73b73b91ef87392019bc.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bl20arldcd04c"
path="res://.godot/imported/三条4.png-ba375ee2c04f48d353515b3451ac99bc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三条4.png"
dest_files=["res://.godot/imported/三条4.png-ba375ee2c04f48d353515b3451ac99bc.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtkl36brvsget"
path="res://.godot/imported/三条5.png-d5d54133d11d3fa1fda741a738814abb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三条5.png"
dest_files=["res://.godot/imported/三条5.png-d5d54133d11d3fa1fda741a738814abb.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2pypf81rgqkw"
path="res://.godot/imported/三筒.png-1893c4bc3ef2fba2461d0d6f129efbc4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三筒.png"
dest_files=["res://.godot/imported/三筒.png-1893c4bc3ef2fba2461d0d6f129efbc4.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dis6qtf1hvop2"
path="res://.godot/imported/九筒1.png-18236f0184e73de56fa7c07fd8818803.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/九筒1.png"
dest_files=["res://.godot/imported/九筒1.png-18236f0184e73de56fa7c07fd8818803.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://2chok0puqbuu"
path="res://.godot/imported/九筒2.png-bc89e55e11457820e525987a48cfde7f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/九筒2.png"
dest_files=["res://.godot/imported/九筒2.png-bc89e55e11457820e525987a48cfde7f.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://doxc87cp3e8i4"
path="res://.godot/imported/二筒.png-c48f3a526784d4f72753e2e62f1a3d7b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/二筒.png"
dest_files=["res://.godot/imported/二筒.png-c48f3a526784d4f72753e2e62f1a3d7b.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bo4hrg3sqpoou"
path="res://.godot/imported/伍万1.png-4ec9f2f118ccecacb8103660b3409172.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/伍万1.png"
dest_files=["res://.godot/imported/伍万1.png-4ec9f2f118ccecacb8103660b3409172.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://e86x6j8wu7sw"
path="res://.godot/imported/伍万2.png-e6d795d16b5afc137412be0ba118773a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/伍万2.png"
dest_files=["res://.godot/imported/伍万2.png-e6d795d16b5afc137412be0ba118773a.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://q4vs78ohnnhw"
path="res://.godot/imported/伍万3.png-1bdc2d22c71c4accd4ee226af0345b7a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/伍万3.png"
dest_files=["res://.godot/imported/伍万3.png-1bdc2d22c71c4accd4ee226af0345b7a.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dduhqah1p81tb"
path="res://.godot/imported/初始一条.png-f556cab87a55b9207307ab657693cc82.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/初始一条.png"
dest_files=["res://.godot/imported/初始一条.png-f556cab87a55b9207307ab657693cc82.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dwyk0e1c2eg37"
path="res://.godot/imported/初始一筒.png-94ba9aeb4dffdef4eeae26fcc6b015f7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/初始一筒.png"
dest_files=["res://.godot/imported/初始一筒.png-94ba9aeb4dffdef4eeae26fcc6b015f7.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://y15vgb2gq2r3"
path="res://.godot/imported/手.png-824abd59d1049b2c07fed905271aadeb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/手.png"
dest_files=["res://.godot/imported/手.png-824abd59d1049b2c07fed905271aadeb.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bsqp5gfgplgrv"
path="res://.godot/imported/麻将整理游戏视觉引导光影.png-c63027b59ffe98e11f7d14b1d692ac4f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/麻将整理游戏视觉引导光影.png"
dest_files=["res://.godot/imported/麻将整理游戏视觉引导光影.png-c63027b59ffe98e11f7d14b1d692ac4f.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bfu6ogd0q2eu0"
path="res://.godot/imported/麻将游戏地板背景.png-de2e1115a374a411d6e29b38d3bf257f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/麻将游戏地板背景.png"
dest_files=["res://.godot/imported/麻将游戏地板背景.png-de2e1115a374a411d6e29b38d3bf257f.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://tdo5xxovhljp"
path="res://.godot/imported/麻将游戏桌面背景.png-07a7179fd185c7e00d91bd7da90af0d0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/麻将游戏桌面背景.png"
dest_files=["res://.godot/imported/麻将游戏桌面背景.png-07a7179fd185c7e00d91bd7da90af0d0.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://6q05kftuxauv"
path="res://.godot/imported/麻将游戏盒子特写.png-8c647e52694ba8c079268c2c85a12280.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/麻将游戏盒子特写.png"
dest_files=["res://.godot/imported/麻将游戏盒子特写.png-8c647e52694ba8c079268c2c85a12280.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/chipsHandle6.ogg-1babda97ca02e2958c86b31dab56
[params]
loop=false
loop_offset=0
bpm=0
loop_offset=0.0
bpm=0.0
beat_count=0
bar_beats=4

View File

@ -11,6 +11,8 @@ c02_ball_game_stage: 0:初始化 1:寻找弹珠_老虎钳可以换弹珠 2:给
~ EventStage_c03
c03_s01_meat_put: 0:初始化 1:已放肉
c03_invite_xchan_supper: 0:初始化 1:已偷听_需邀请 2:已完成邀请
c03_before_mahjong_game: 0:初始化 1:粘舌头和刀把 2:给药 4:准备好进入游戏
c03_mahjong_game: 0::麻将理牌 1:麻将出千 2:麻将结束 3:演出结束
=> END
~ EventStage_c04

View File

@ -1,4 +1,5 @@
keys,zh_CN,_character,_notes,_tags,zh_SH,en
prop_下半部的舌头,下半部的舌头,,,[#texture=c03/ux_下半部的舌头.png],,
index_新游戏,新游戏,,,,,New Game
index_继续游戏,继续游戏,,,,,Continue
index_退出游戏,退出游戏,,,,,Exit Game
@ -87,17 +88,17 @@ prop_木头人偶,木头人偶,,,[#texture=c02/小蝉人偶.png],,Wooden Doll
prop_木头人偶_说明,略显粗糙的木头玩偶,能依稀辨认出是个小女孩的模样,,,,,"A somewhat crude wooden doll, vaguely recognizable as a little girl"
prop_粘鼠板,粘鼠板,,,[#texture=c02/粘鼠板特写.png],,Sticky Trap
prop_粘鼠板_说明,自制的捕鼠工具,纸上面有黏黏的浆糊,,,,,Homemade mouse trap with sticky paste on paper
prop_一把香,一把香,,,[#texture=c03/一把香.png],,Bundle of Incense
prop_麻将2,麻将(二),,,[#texture=c03/麻将2.png],,
prop_一碗浆糊,一碗浆糊,,,[#texture=c03/ux_一碗浆糊.png],,
prop_下半部的舌头,下半部的舌头,,,[#texture=c03/ux_下半部的舌头.png],,
prop_刀把,刀把,,,[#texture=c03/ux_刀把.png],,
prop_剪下的辫子,剪下的辫子,,,[#texture=c03/ux_剪下的辫子.png],,
prop_沾血的纸条,沾血的纸条,,,[#texture=c03/ux_沾血的纸条.png],,
prop_纸铜钱1,纸铜钱1,,,[#texture=c03/ux_纸铜钱1.png],,
prop_剪刀,剪刀,,,[#texture=c03/ux_缠着符咒的剪刀.png],,
prop_药包,药包,,,[#texture=c03/ux_药包.png],,
prop_菜刀,菜刀,,,[#texture=c03/ux_菜刀.png],,
prop_一把香,一把香,,,[#texture=c03/一把香.png][#inspect=c03/一把香.png],,Bundle of Incense
prop_麻将2,麻将(二),,,[#texture=c03/麻将2.png][#inspect=c03/ux_麻将2.png],,
prop_一碗浆糊,一碗浆糊,,,[#texture=c03/一碗浆糊.png][#inspect=c03/ux_一碗浆糊.png],,
prop_纸舌头,纸舌头,,,[#texture=c03/下半部的舌头.png][#inspect=c03/ux_下半部的舌头.png],,
prop_刀把,刀把,,,[#texture=c03/刀把.png][#inspect=c03/ux_刀把.png],,
prop_剪下的辫子,剪下的辫子,,,[#texture=c03/剪下的辫子.png][#inspect=c03/ux_剪下的辫子.png],,
prop_沾血的纸条,沾血的纸条,,,[#texture=c03/沾血的纸条.png][#inspect=c03/ux_沾血的纸条.png],,
prop_纸铜钱1,纸铜钱1,,,[#texture=c03/纸铜钱1.png][#inspect=c03/ux_纸铜钱1.png],,
prop_剪刀,剪刀,,,[#texture=c03/缠着符咒的剪刀.png][#inspect=c03/ux_缠着符咒的剪刀.png],,
prop_药包,药包,,,[#texture=c03/药包.png][#inspect=c03/ux_药包.png],,
prop_菜刀,菜刀,,,[#texture=c03/菜刀.png][#inspect=c03/ux_菜刀.png],,
prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,Director's Letter
prop_院长的信_说明,小萍:{br}你现下境况如何?{br}你虽离开浦育院已久,但我始终没有忘记为你祈祷。{br}愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。{br}你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。{br}若有闲暇,欢迎你回浦育院看看。{br}院长童玉君{br}民国二十一年十月十五日{br}公寓地址 芦昌路26弄3号,,,,,"Xiao Ping:{br}How are you faring now?{br}Though you left Puyu Orphanage long ago, I have never forgotten to pray for you.{br}May God bless you to walk the path of true enlightenment. I believe this was also your father's earnest wish when he entrusted you to my care.{br}Now that you are grown, regardless of whatever reasons your parents had for separating from you, you deserve the right to know the truth. I have attached the apartment address to this letter, though I know little beyond this.{br}If you have time, you are welcome to visit Puyu Orphanage.{br}Director Tong Yujun{br}October 15th, Year 21 of the Republic{br}Apartment Address: No. 3, Lane 26, Luchang Road"
prop_船票,船票,,,[#texture=c02/船票.png],,Boat Ticket
@ -203,3 +204,5 @@ c03_s02_note_key_coverer,太暗了看不清,,,,,
c03_s02_未点灯,?打不开,,,,,
c03_s02_通风管道,?打不开,,,,,
c03_s02_小蝉的床,小蝉的床,,,,,
c03_s03_获得剪刀纸舌头,?✂️纸人,,,,,
c03_s03_洗头盆,?洗头盆,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
2 prop_下半部的舌头 下半部的舌头 [#texture=c03/ux_下半部的舌头.png]
3 index_新游戏 新游戏 New Game
4 index_继续游戏 继续游戏 Continue
5 index_退出游戏 退出游戏 Exit Game
88 prop_木头人偶_说明 略显粗糙的木头玩偶,能依稀辨认出是个小女孩的模样 A somewhat crude wooden doll, vaguely recognizable as a little girl
89 prop_粘鼠板 粘鼠板 [#texture=c02/粘鼠板特写.png] Sticky Trap
90 prop_粘鼠板_说明 自制的捕鼠工具,纸上面有黏黏的浆糊 Homemade mouse trap with sticky paste on paper
91 prop_一把香 一把香 [#texture=c03/一把香.png] [#texture=c03/一把香.png][#inspect=c03/一把香.png] Bundle of Incense
92 prop_麻将2 麻将(二) [#texture=c03/麻将2.png] [#texture=c03/麻将2.png][#inspect=c03/ux_麻将2.png]
93 prop_一碗浆糊 一碗浆糊 [#texture=c03/ux_一碗浆糊.png] [#texture=c03/一碗浆糊.png][#inspect=c03/ux_一碗浆糊.png]
94 prop_下半部的舌头 prop_纸舌头 下半部的舌头 纸舌头 [#texture=c03/ux_下半部的舌头.png] [#texture=c03/下半部的舌头.png][#inspect=c03/ux_下半部的舌头.png]
95 prop_刀把 刀把 [#texture=c03/ux_刀把.png] [#texture=c03/刀把.png][#inspect=c03/ux_刀把.png]
96 prop_剪下的辫子 剪下的辫子 [#texture=c03/ux_剪下的辫子.png] [#texture=c03/剪下的辫子.png][#inspect=c03/ux_剪下的辫子.png]
97 prop_沾血的纸条 沾血的纸条 [#texture=c03/ux_沾血的纸条.png] [#texture=c03/沾血的纸条.png][#inspect=c03/ux_沾血的纸条.png]
98 prop_纸铜钱1 纸铜钱1 [#texture=c03/ux_纸铜钱1.png] [#texture=c03/纸铜钱1.png][#inspect=c03/ux_纸铜钱1.png]
99 prop_剪刀 剪刀 [#texture=c03/ux_缠着符咒的剪刀.png] [#texture=c03/缠着符咒的剪刀.png][#inspect=c03/ux_缠着符咒的剪刀.png]
100 prop_药包 药包 [#texture=c03/ux_药包.png] [#texture=c03/药包.png][#inspect=c03/ux_药包.png]
101 prop_菜刀 菜刀 [#texture=c03/ux_菜刀.png] [#texture=c03/菜刀.png][#inspect=c03/ux_菜刀.png]
102 prop_院长的信 院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png] Director's Letter
103 prop_院长的信_说明 小萍:{br}你现下境况如何?{br}你虽离开浦育院已久,但我始终没有忘记为你祈祷。{br}愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。{br}你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。{br}若有闲暇,欢迎你回浦育院看看。{br}院长童玉君{br}民国二十一年十月十五日{br}公寓地址 芦昌路26弄3号 Xiao Ping:{br}How are you faring now?{br}Though you left Puyu Orphanage long ago, I have never forgotten to pray for you.{br}May God bless you to walk the path of true enlightenment. I believe this was also your father's earnest wish when he entrusted you to my care.{br}Now that you are grown, regardless of whatever reasons your parents had for separating from you, you deserve the right to know the truth. I have attached the apartment address to this letter, though I know little beyond this.{br}If you have time, you are welcome to visit Puyu Orphanage.{br}Director Tong Yujun{br}October 15th, Year 21 of the Republic{br}Apartment Address: No. 3, Lane 26, Luchang Road
104 prop_船票 船票 [#texture=c02/船票.png] Boat Ticket
204 c03_s02_未点灯 ?打不开
205 c03_s02_通风管道 ?打不开
206 c03_s02_小蝉的床 小蝉的床
207 c03_s03_获得剪刀纸舌头 ?✂️纸人
208 c03_s03_洗头盆 ?洗头盆

View File

@ -284,6 +284,9 @@
?打不开[ID:c03_s02_通风管道]
小蝉的床 [ID:c03_s02_小蝉的床]
# s03 瞎子理发店
?✂️纸人 [ID:c03_s03_获得剪刀纸舌头]
?洗头盆 [ID:c03_s03_洗头盆]
# s04 李癞房间
# s05 肉铺
# s06 胖子卧室

View File

@ -11,7 +11,7 @@ class_name EventBinder extends Node
updater_event = val
if is_node_ready() and Engine.is_editor_hint():
_auto_memo()
@export_enum("enabler", "shower") var updater_mode := "enabler":
@export_enum("enabler", "shower", "opener") var updater_mode := "enabler":
set(val):
if updater_mode != val:
updater_mode = val
@ -123,6 +123,9 @@ func _update_binding_state(stage: int):
# check updater_mode
if updater_mode == "enabler":
parent.enabled = updater_status
elif updater_mode == "opener":
# open portal
parent.status = "opened" if updater_status else "locked"
elif updater_mode == "shower":
_toggle_parent_visibility_with_ease(parent, updater_status)
@ -171,7 +174,14 @@ func _auto_memo() -> void:
memo_str += "=" if updater_stage_mode == "include" else "!="
var stages = await EventManager.map_event_stages(updater_event, updater_stages)
memo_str += "[" + "|".join(stages) + "] 时,"
memo_str += "显示" if updater_mode == "shower" else "启用"
if updater_mode == "shower":
memo_str += "显示"
elif updater_mode == "enabler":
memo_str += "启用"
elif updater_mode == "opener":
memo_str += "打开"
else:
printerr("[EventBinder] _auto_memo updater_mode not recognized:", updater_mode)
memo_str += ": [" + parent_name + "]\n"
if trigger_event != "" and trigger_mode != "none":
memo_str += "[" + parent_name + "] " + trigger_mode + " 时: "
@ -184,6 +194,6 @@ func _auto_memo() -> void:
for line in existing_lines:
if line.begins_with("#"):
kept_lines.append(line)
memo = "\n".join(kept_lines)
memo = "\n".join(kept_lines)
memo += "\n" if kept_lines else ""
memo += memo_str
memo += memo_str

View File

@ -171,9 +171,9 @@ func checkout_prop_inventory(character: String) -> void:
printerr("checkout_prop_inventory: PropHud node not found")
func get_current_prop(must_selected: bool) -> String:
func get_current_prop() -> String:
var prop_hud = get_prop_hud()
if prop_hud and (not must_selected or prop_hud.selected):
if prop_hud:
return prop_hud.inventory.current_item_key()
return ""

View File

@ -94,7 +94,7 @@ func _check_character_runtime_status():
_play_animation()
return
# 如果当前是 prop_小猫玩具完整 ,尝试点亮玩家的灯效;否则无需点亮
if SceneManager.get_current_prop(false) == "prop_小猫玩具完整":
if SceneManager.get_current_prop() == "prop_小猫玩具完整":
set_catty_light(true)
else:
set_catty_light(false)

View File

@ -52,9 +52,10 @@ func _exit(arg = null):
func _unhandled_input(event: InputEvent) -> void:
if not current_child:
return
if quit_closeup_on_cancel and event.is_action_pressed("cancel"):
if event.is_action_pressed("cancel"):
get_viewport().set_input_as_handled()
_exit()
if quit_closeup_on_cancel:
_exit()
# 在有特写界面时,阻塞 interact 输入
elif event.is_action_pressed("interact"):
get_viewport().set_input_as_handled()

View File

@ -109,7 +109,7 @@ func _on_entered(_body = null) -> void:
func _reset_sign_testure_to_prop():
var key = SceneManager.get_current_prop(false)
var key = SceneManager.get_current_prop()
_set_sign_texture_to_prop(key)
@ -166,7 +166,7 @@ func _on_interacted() -> void:
if one_shot and interacted_times >= one_shot_max_times:
interact_mutex.unlock()
return
var key = SceneManager.get_current_prop(false)
var key = SceneManager.get_current_prop()
if not is_key_matched(key):
if not mute_when_invalid:
sfx_invalid.play()

View File

@ -171,7 +171,7 @@ func _on_interacted() -> void:
interact_mutex.lock()
if status == "locked":
# 检查是否有钥匙,尝试打开
var key = SceneManager.get_current_prop(false)
var key = SceneManager.get_current_prop()
if prop_key and key == prop_key:
sfx_open.global_play()
status = "opened"
@ -220,7 +220,7 @@ func _reset(_body):
_check_sign_mark_and_texture()
activated = true
if status == "locked":
var key = SceneManager.get_current_prop(false)
var key = SceneManager.get_current_prop()
if key:
_set_sign_texture_to_prop(key)
var prop_hud = SceneManager.get_prop_hud() as PropHud

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=81 format=3 uid="uid://djc2uaefhmu7"]
[gd_scene load_steps=82 format=3 uid="uid://djc2uaefhmu7"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0dylx"]
[ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_院子.gd" id="2_dt5aj"]
@ -30,6 +30,7 @@
[ext_resource type="Texture2D" uid="uid://0x7cl2cmcs6l" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕2.png" id="11_g0qhj"]
[ext_resource type="Script" uid="uid://3p6e8f385kow" path="res://scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd" id="11_lq23y"]
[ext_resource type="SpriteFrames" uid="uid://di43shn22n5ph" path="res://asset/art/gif/c00_通用动作/c00_通用动作_frames.tres" id="11_o1qbs"]
[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="12_2b6vx"]
[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://dqd645v3k4yar" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_诡异纸人.png" id="19_vddfx"]
@ -334,15 +335,62 @@ target_portal = "right"
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(2286, 16)
[node name="Ambush保卫科旁边os" parent="Ground/DeployLayer" index="2" instance=ExtResource("25_iyaiw")]
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_00b7a")]
position = Vector2(200, 10)
debug_note = "1012保卫科"
portal_name = "1"
target_scene = "c02_s04"
target_portal = "left"
status = "opened"
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_00b7a")]
position = Vector2(928, 7)
debug_note = "一楼内侧过道
"
portal_name = "2"
target_scene = "c02_s05"
target_portal = "left"
[node name="portal_3" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_00b7a")]
position = Vector2(1704, 14)
debug_note = "空房间 1014"
portal_name = "3"
target_scene = "c02_s10"
target_portal = "left"
status = "opened"
[node name="portal_4" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")]
position = Vector2(1876, 49)
debug_note = "霸凌传送点"
portal_name = "4"
[node name="portal_5" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_00b7a")]
position = Vector2(1937, 18)
debug_note = "李氏癞子房间"
portal_name = "5"
target_scene = "c03_s04"
target_portal = "1"
status = "locked"
[node name="EventBinder" type="Node" parent="Ground/DeployLayer/portal_5"]
script = ExtResource("12_2b6vx")
memo = "c03_before_mahjong_game=[1:粘舌头和刀把|2:给药|3:3|4:准备好进入游戏] 时,打开: [_5]
"
updater_event = &"c03_before_mahjong_game"
updater_mode = "opener"
updater_stages = Array[int]([1, 2, 3, 4])
metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="Ambush保卫科旁边os" parent="Ground/DeployLayer" index="7" instance=ExtResource("25_iyaiw")]
position = Vector2(138, 47)
hook_os_key = "c02_院子_保卫科旁"
[node name="Event2D_xchan_run_after_got_pliers" type="Node2D" parent="Ground/DeployLayer" index="3"]
[node name="Event2D_xchan_run_after_got_pliers" type="Node2D" parent="Ground/DeployLayer" index="8"]
position = Vector2(0, -1)
script = ExtResource("11_lq23y")
event_name = &"c02_got_pliers"
event_stages = Array[int]([1])
event_memo = "当事件[c02_got_pliers=1]时显示该节点"
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Ambush老虎钳后小蝉跑" parent="Ground/DeployLayer/Event2D_xchan_run_after_got_pliers" instance=ExtResource("25_iyaiw")]
@ -364,45 +412,16 @@ move_configs = Array[Dictionary]([{
}])
debug_mov_animation = "c00_头套小婵_run"
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="9"]
modulate = Color(1, 1, 1, 0)
position = Vector2(1189, 0)
texture = ExtResource("6_d7h4s")
[node name="禁火等墙面文字" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
[node name="禁火等墙面文字" type="Sprite2D" parent="Ground/DeployLayer" index="10"]
position = Vector2(955, 5)
texture = ExtResource("10_3nako")
[node name="portal_1" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_00b7a")]
position = Vector2(200, 10)
debug_note = "1012保卫科"
portal_name = "1"
target_scene = "c02_s04"
target_portal = "left"
status = "opened"
[node name="portal_2" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_00b7a")]
position = Vector2(928, 7)
debug_note = "一楼内侧过道
"
portal_name = "2"
target_scene = "c02_s05"
target_portal = "left"
[node name="portal_3" parent="Ground/DeployLayer" index="8" instance=ExtResource("5_00b7a")]
position = Vector2(1704, 14)
debug_note = "空房间 1014"
portal_name = "3"
target_scene = "c02_s10"
target_portal = "left"
status = "opened"
[node name="portal_4" parent="Ground/DeployLayer" index="9" instance=ExtResource("5_00b7a")]
position = Vector2(1876, 49)
debug_note = "霸凌传送点"
portal_name = "4"
[node name="Note血迹" parent="Ground/DeployLayer" index="10" instance=ExtResource("6_t48d1")]
[node name="Note血迹" parent="Ground/DeployLayer" index="11" instance=ExtResource("6_t48d1")]
position = Vector2(523, 78)
title_filter = "c02"
note_key = "c02_s03_干掉的血迹"
@ -414,7 +433,7 @@ position = Vector2(132, 10)
sprite_frames = ExtResource("4_gd6xp")
animation = &"肉铺门口血迹"
[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="11"]
[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="12"]
[node name="灯笼" type="Sprite2D" parent="Ground/DeployLayer/灯笼"]
position = Vector2(1644, -86)
@ -464,7 +483,7 @@ energy = 0.7
texture = SubResource("GradientTexture2D_kyfht")
texture_scale = 2.2
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="12"]
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="13"]
visible = false
[node name="地上纸钱" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"]
@ -499,7 +518,7 @@ position = Vector2(898, -162)
z_index = 15
position = Vector2(1964, -209)
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="13"]
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="14"]
visible = false
[node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")]
@ -526,11 +545,11 @@ range_layer_max = 2
range_item_cull_mask = 4
texture = SubResource("GradientTexture2D_3nako")
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="14" instance=ExtResource("25_iyaiw")]
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="15" instance=ExtResource("25_iyaiw")]
position = Vector2(1611, 46)
hook_os_key = "c02_院子_要下雨"
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="15" instance=ExtResource("7_em2ma")]
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="16" instance=ExtResource("7_em2ma")]
position = Vector2(809, 75)
sign_mark_offset = Vector2(0, -16.88)
enabled = false
@ -541,7 +560,7 @@ position = Vector2(0, -7)
scale = Vector2(0.15, 0.15)
texture = ExtResource("8_plfv5")
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="16"]
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="17"]
position = Vector2(800, -173)
script = ExtResource("26_o1qbs")
event_name = &"c02_madman_interacted_stage"
@ -556,7 +575,7 @@ bus = &"game_sfx"
script = ExtResource("54_o1qbs")
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Interactable铁门" parent="Ground/DeployLayer" index="17" instance=ExtResource("8_xt8j0")]
[node name="Interactable铁门" parent="Ground/DeployLayer" index="18" instance=ExtResource("8_xt8j0")]
light_mask = 5
position = Vector2(1222, 28)
texture = ExtResource("7_gd6xp")
@ -576,7 +595,7 @@ collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Wall"]
shape = SubResource("RectangleShape2D_mdix7")
[node name="Note算命摊位" parent="Ground/DeployLayer" index="18" instance=ExtResource("6_t48d1")]
[node name="Note算命摊位" parent="Ground/DeployLayer" index="19" instance=ExtResource("6_t48d1")]
position = Vector2(725, 45)
note_key = "c02_院子_算命摊位"
@ -584,7 +603,7 @@ note_key = "c02_院子_算命摊位"
position = Vector2(0, 18)
texture = ExtResource("6_1tart")
[node name="煤油灯" type="Sprite2D" parent="Ground/DeployLayer" index="19"]
[node name="煤油灯" type="Sprite2D" parent="Ground/DeployLayer" index="20"]
position = Vector2(293, 13)
texture = ExtResource("32_df1yo")
@ -602,7 +621,7 @@ energy = 2.0
blend_mode = 2
texture = ExtResource("11_g0qhj")
[node name="煤油灯2" type="Sprite2D" parent="Ground/DeployLayer" index="20"]
[node name="煤油灯2" type="Sprite2D" parent="Ground/DeployLayer" index="21"]
position = Vector2(605, 13)
texture = ExtResource("32_df1yo")
@ -620,7 +639,7 @@ energy = 2.0
blend_mode = 2
texture = ExtResource("34_jhod7")
[node name="煤油灯3" type="Sprite2D" parent="Ground/DeployLayer" index="21"]
[node name="煤油灯3" type="Sprite2D" parent="Ground/DeployLayer" index="22"]
position = Vector2(854, 13)
texture = ExtResource("32_df1yo")
@ -638,47 +657,47 @@ energy = 2.0
blend_mode = 2
texture = ExtResource("35_o1qbs")
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="22"]
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="23"]
self_modulate = Color(0.739288, 0.739288, 0.739288, 1)
light_mask = 5
z_index = 10
position = Vector2(2062, 60)
texture = ExtResource("21_4n8vm")
[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="23"]
[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="24"]
light_mask = 5
z_index = 10
position = Vector2(1025, 27)
texture = ExtResource("22_3y5s5")
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="24" instance=ExtResource("23_81juy")]
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="25" instance=ExtResource("23_81juy")]
position = Vector2(466, 3)
packed_scene = ExtResource("24_0o4rt")
collision_width_and_x = Vector2(40, 0)
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="25" instance=ExtResource("25_iyaiw")]
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="26" instance=ExtResource("25_iyaiw")]
position = Vector2(1319, 40)
hook_method = "shocking_lighting"
[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="26" instance=ExtResource("25_iyaiw")]
[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="27" instance=ExtResource("25_iyaiw")]
position = Vector2(1836, 7)
trigger_mode = "interact"
one_shot = false
hook_method = "eavesdrop"
[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="27"]
[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="28"]
position = Vector2(1835, -16)
sprite_frames = SubResource("SpriteFrames_0o4rt")
autoplay = "default"
frame_progress = 0.643855
[node name="Closeup井" parent="Ground/DeployLayer" index="28" instance=ExtResource("23_81juy")]
[node name="Closeup井" parent="Ground/DeployLayer" index="29" instance=ExtResource("23_81juy")]
z_index = 6
position = Vector2(2063, 50)
packed_scene = ExtResource("26_yy4fp")
action_key = 3
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="29" instance=ExtResource("35_plfv5")]
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="30" instance=ExtResource("35_plfv5")]
z_index = 10
position = Vector2(2037, 67)
sprite_frames = ExtResource("4_gd6xp")
@ -692,7 +711,7 @@ sign_x_offset = -2.0
collision_width_and_x = Vector2(37.08, 0)
dialogue_title = "c02_井边疯子对话"
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="30"]
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="31"]
visible = false
position = Vector2(2154, 60)
@ -755,7 +774,7 @@ collision_mask = 0
shape = SubResource("RectangleShape2D_d7h4s")
disabled = true
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="31"]
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="32"]
visible = false
[node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"]
@ -997,7 +1016,7 @@ script = ExtResource("54_o1qbs")
loop = true
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Interactable柜子" parent="Ground/DeployLayer" index="32" instance=ExtResource("8_xt8j0")]
[node name="Interactable柜子" parent="Ground/DeployLayer" index="33" instance=ExtResource("8_xt8j0")]
visible = false
position = Vector2(1772, 48)
texture = ExtResource("32_cpifc")
@ -1013,7 +1032,7 @@ animation = &"箱子着火"
autoplay = "箱子着火"
frame_progress = 0.453645
[node name="Note柜子可放置区域" parent="Ground/DeployLayer" index="33" instance=ExtResource("6_t48d1")]
[node name="Note柜子可放置区域" parent="Ground/DeployLayer" index="34" instance=ExtResource("6_t48d1")]
position = Vector2(1771, 39)
title_filter = "c02"
note_key = "c02_柜子可放置区域"

View File

@ -150,7 +150,13 @@ portal_name = "1"
target_scene = "c02_s07"
target_portal = "right"
[node name="Npc疯子" parent="Ground/DeployLayer" index="3" instance=ExtResource("9_8t4w6")]
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("4_tueh3")]
position = Vector2(107, 23)
debug_note = "通往佛堂"
portal_name = "2"
status = "locked"
[node name="Npc疯子" parent="Ground/DeployLayer" index="4" instance=ExtResource("9_8t4w6")]
light_mask = 7
position = Vector2(177, 37)
sprite_frames = ExtResource("7_mrltr")
@ -167,20 +173,20 @@ energy = 0.8
range_item_cull_mask = 2
texture = SubResource("GradientTexture2D_2yvhw")
[node name="Ambush杂物堆" parent="Ground/DeployLayer" index="4" instance=ExtResource("8_rcuxq")]
[node name="Ambush杂物堆" parent="Ground/DeployLayer" index="5" instance=ExtResource("8_rcuxq")]
position = Vector2(177, 50)
enabled = false
trigger_mode = "interact"
hook_method = "wood_puppet"
[node name="Closeup拿人偶后记忆闪回" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_2yvhw")]
[node name="Closeup拿人偶后记忆闪回" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_2yvhw")]
position = Vector2(-108, -168)
packed_scene = ExtResource("10_7mq0m")
quit_closeup_on_cancel = false
action_key = 3
first_interact_os_key = "c02_一楼戏台"
[node name="火苗" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="6"]
[node name="火苗" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="7"]
light_mask = 5
position = Vector2(239, 52)
scale = Vector2(0.4, 0.4)
@ -213,26 +219,26 @@ energy = 1.5
range_item_cull_mask = 4
texture = ExtResource("8_mrltr")
[node name="Closeup戏台" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_2yvhw")]
[node name="Closeup戏台" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_2yvhw")]
position = Vector2(305, -249)
packed_scene = ExtResource("11_2yvhw")
first_interact_os_key = "c02_一楼戏台"
[node name="Note一楼内侧通道" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_8t4w6")]
[node name="Note一楼内侧通道" parent="Ground/DeployLayer" index="9" instance=ExtResource("10_8t4w6")]
position = Vector2(394, 26)
title_filter = "c02"
note_key = "c02_一楼楼道被挡住"
[node name="Note垃圾通道" parent="Ground/DeployLayer" index="9" instance=ExtResource("10_8t4w6")]
[node name="Note垃圾通道" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_8t4w6")]
position = Vector2(660, -1)
title_filter = "c02"
note_key = "c02_描述垃圾通道"
[node name="打开的垃圾桶盖" type="Sprite2D" parent="Ground/DeployLayer" index="10"]
[node name="打开的垃圾桶盖" type="Sprite2D" parent="Ground/DeployLayer" index="11"]
position = Vector2(660, 8)
texture = ExtResource("15_s2g5k")
[node name="Interactable粘鼠板" parent="Ground/DeployLayer" index="11" instance=ExtResource("13_uj0pt")]
[node name="Interactable粘鼠板" parent="Ground/DeployLayer" index="12" instance=ExtResource("13_uj0pt")]
position = Vector2(604, 81)
first_interact_os_key = "c02_一楼粘鼠板"
disable_prop_after_interacted = true
@ -261,19 +267,19 @@ visible = false
title_filter = "c02"
note_key = "c02_一楼死老鼠"
[node name="Ambush老鼠叼肉" parent="Ground/DeployLayer" index="12" instance=ExtResource("8_rcuxq")]
[node name="Ambush老鼠叼肉" parent="Ground/DeployLayer" index="13" instance=ExtResource("8_rcuxq")]
position = Vector2(585, 80)
enabled = false
one_shot = false
hook_method = "mouse_pick_meat"
[node name="老鼠叼肉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="13"]
[node name="老鼠叼肉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="14"]
visible = false
position = Vector2(687, 69)
sprite_frames = ExtResource("17_bk7rf")
animation = &"奇怪的肉被拖进去动画"
[node name="Pickable掉落的肉" parent="Ground/DeployLayer" index="14" instance=ExtResource("17_aofps")]
[node name="Pickable掉落的肉" parent="Ground/DeployLayer" index="15" instance=ExtResource("17_aofps")]
visible = false
position = Vector2(668, 85)
texture = ExtResource("18_bk7rf")
@ -282,13 +288,13 @@ enabled = false
collision_width_and_x = Vector2(43.96, 0)
prop_key = "prop_奇怪的肉"
[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="15"]
[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="16"]
self_modulate = Color(0.611765, 0.611765, 0.611765, 1)
position = Vector2(627.8, 79.6172)
sprite_frames = SubResource("SpriteFrames_heq1x")
autoplay = "default"
[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer" index="16"]
[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer" index="17"]
position = Vector2(627.8, 66.8)
color = Color(0.999971, 0.912551, 0.842208, 1)
energy = 1.2
@ -296,7 +302,7 @@ blend_mode = 2
texture = ExtResource("22_laquj")
texture_scale = 0.3
[node name="Ambush小蝉消失" parent="Ground/DeployLayer" index="17" instance=ExtResource("8_rcuxq")]
[node name="Ambush小蝉消失" parent="Ground/DeployLayer" index="18" instance=ExtResource("8_rcuxq")]
visible = false
visibility_layer = 5
position = Vector2(394, 53)
@ -311,7 +317,7 @@ autoplay = "小蝉背对呼吸帧"
frame = 5
flip_h = true
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="18"]
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="19"]
position = Vector2(92, 38)
script = ExtResource("23_4c54f")
event_name = &"c02_madman_interacted_stage"
@ -327,9 +333,9 @@ script = ExtResource("25_4k6pw")
loop = true
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="DizzyShader" parent="Ground/DeployLayer" index="19" instance=ExtResource("29_74b3r")]
[node name="DizzyShader" parent="Ground/DeployLayer" index="20" instance=ExtResource("29_74b3r")]
[node name="Ambush更新一楼地图" parent="Ground/DeployLayer" index="20" instance=ExtResource("8_rcuxq")]
[node name="Ambush更新一楼地图" parent="Ground/DeployLayer" index="21" instance=ExtResource("8_rcuxq")]
position = Vector2(528, 57)
hook_method = "update_1l_map"

View File

@ -129,7 +129,7 @@ func boys_ball_game() -> void:
SceneManager.unlock_player()
elif stage == 1 or stage == 2:
SceneManager.lock_player()
if stage == 1 and SceneManager.get_current_prop(false) != "prop_弹珠":
if stage == 1 and SceneManager.get_current_prop() != "prop_弹珠":
var hud = SceneManager.get_prop_hud() as PropHud
hud.on_toggle_invalid_prop()
DialogueManager.show_dialogue_balloon(dialogue_c02, "c02_s05_三男孩弹珠游戏2")

View File

@ -14,22 +14,24 @@ func _ready() -> void:
#region node_reference
var closeup刮海报_理发店: Closeup2D
var Closeup刮海报_鬼母子: Closeup2D
var closeup镜子特写: Closeup2D
#endregion
# 读取设置变量名
func _setup_node_reference() -> void:
closeup刮海报_理发店 = $"../DeployLayer/Closeup刮海报_理发店"
Closeup刮海报_鬼母子 = $"../DeployLayer/Closeup刮海报_鬼母子"
closeup镜子特写 = $"../DeployLayer/Closeup镜子特写"
func _on_ground_ready() -> void:
closeup刮海报_理发店.exit.connect(_check_if_flyer_shaven)
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
func _check_if_flyer_shaven(_arg = false):
if ArchiveManager.get_global_value("刮海报_理发店"):
Closeup刮海报_鬼母子.texture = null
if _arg:
SceneManager.pop_os_with_str("c03_s03_获得剪刀纸舌头")

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=3 uid="uid://bsqt2c061fmin"]
[gd_scene load_steps=18 format=3 uid="uid://bsqt2c061fmin"]
[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"]
@ -9,6 +9,10 @@
[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"]
[ext_resource type="PackedScene" uid="uid://d320nw5yrmvjo" path="res://scene/ground/script/c03/s03_closeup癞子纸人.tscn" id="9_4imwu"]
[ext_resource type="Texture2D" uid="uid://bv5vcrdqwtlm3" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子纸人.png" id="9_bdtls"]
[ext_resource type="Texture2D" uid="uid://ckboywu6sjcpc" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子纸人头套.png" id="10_1pu6f"]
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="11_1pu6f"]
[sub_resource type="Animation" id="Animation_k01ve"]
length = 0.001
@ -152,12 +156,29 @@ 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")]
[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="Closeup癞子纸人" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_d40x1")]
unique_name_in_owner = true
position = Vector2(236, 11)
packed_scene = ExtResource("9_4imwu")
[node name="癞子纸人" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
position = Vector2(343, 48)
texture = ExtResource("9_bdtls")
[node name="癞子纸人头套" type="Sprite2D" parent="Ground/DeployLayer/癞子纸人"]
position = Vector2(1, -23)
texture = ExtResource("10_1pu6f")
[node name="Note洗头盆" parent="Ground/DeployLayer" index="6" instance=ExtResource("11_1pu6f")]
position = Vector2(501, 46)
title_filter = "c03"
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(34, 98)
catty_light_energy = 0.5

View File

@ -1,10 +1,13 @@
[gd_scene load_steps=10 format=3 uid="uid://c7c88hg2cl1j7"]
[gd_scene load_steps=13 format=3 uid="uid://c7c88hg2cl1j7"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_byh4s"]
[ext_resource type="Script" uid="uid://byw2swgt783oa" path="res://scene/ground/scene/c03/s04_李癞房间.gd" id="2_vjibx"]
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_4efpk"]
[ext_resource type="Texture2D" uid="uid://08xrgv7s4m4b" path="res://asset/art/scene/c03/s04_李癞房间/bg_癞子房间.png" id="4_byh4s"]
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="5_4efpk"]
[ext_resource type="Texture2D" uid="uid://bdtccpvbl7e7b" path="res://asset/art/scene/c03/s04_李癞房间/fg_李癞房间前景.png" id="5_vjibx"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="6_dbkw8"]
[ext_resource type="PackedScene" uid="uid://n75766ui6udi" path="res://scene/ground/script/c03/s04_closeup麻将游戏.tscn" id="7_jmyby"]
[sub_resource type="Animation" id="Animation_k01ve"]
length = 0.001
@ -132,12 +135,20 @@ texture = ExtResource("4_byh4s")
offset = Vector2(0, -158)
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(34, 8)
position = Vector2(18, 29)
target_scene = "c02_s07"
target_portal = "1"
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(873, 15)
position = Vector2(632, 30)
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_4efpk")]
position = Vector2(632, 30)
debug_note = "通往院子"
portal_name = "1"
[node name="Closeup麻将游戏" parent="Ground/DeployLayer" index="3" instance=ExtResource("6_dbkw8")]
packed_scene = ExtResource("7_jmyby")
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95)

View File

@ -133,12 +133,12 @@ texture = ExtResource("4_fusj3")
offset = Vector2(0, -158)
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(34, 8)
position = Vector2(79, 23)
target_scene = "c02_s07"
target_portal = "1"
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(873, 15)
position = Vector2(533, 26)
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95)
@ -158,7 +158,7 @@ texture = ExtResource("5_i2s3v")
offset = Vector2(0, -143)
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(37, 149, 522, 149)
points = PackedVector2Array(37, 149, 539, 149)
[node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false

View File

@ -84,7 +84,7 @@ func _on_mismatch():
if scene == "c02_s02" or scene == "c02_s03":
SceneManager.pop_os_with_str("c02_陈旧的煤油灯")
# 如果有道具,则提示玩家可以使用道具
elif SceneManager.get_current_prop(false):
elif SceneManager.get_current_prop():
SceneManager.pop_center_notification("ui_switch_prop")

View File

@ -9,10 +9,10 @@ signal shaven_fulfilled
@onready var flyer = $"刮刮乐"
@onready var sfx = $"Sfx撕海报"
var shaven = ArchiveManager.get_global_value(name)
var shaven = false
func _ready() -> void:
shaven = ArchiveManager.get_global_value(name, false)
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
if shaven:
flyer.queue_free()

View File

@ -185,7 +185,7 @@ func _on_interacted() -> void:
else:
_quit_communicating()
else:
var key = SceneManager.get_current_prop(false)
var key = SceneManager.get_current_prop()
var interacted_success = false
SceneManager.lock_player(0, 4)
# accept_tin_coin

View File

@ -0,0 +1,17 @@
extends CanvasLayer
@onready var bg = $BG as TextureRect
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
if SceneManager.has_prop("prop_剪刀"):
SceneManager.pop_center_notification("ui_center_notify_use_prop")
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("interact"):
get_viewport().set_input_as_handled()
if SceneManager.get_current_prop() == "prop_剪刀":
pass
else:
SceneManager.get_prop_hud().on_toggle_invalid_prop()

View File

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

View File

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://d320nw5yrmvjo"]
[ext_resource type="Script" uid="uid://de2smnt2my047" path="res://scene/ground/script/c03/s03_closeup癞子纸人.gd" id="1_6n6qt"]
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_uenj0"]
[ext_resource type="Texture2D" uid="uid://bv5vcrdqwtlm3" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子纸人.png" id="2_xao0c"]
[node name="Closeup癞子纸人" type="CanvasLayer"]
script = ExtResource("1_6n6qt")
[node name="BG" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
texture = ExtResource("2_xao0c")
[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_uenj0")

View File

@ -0,0 +1,114 @@
extends CanvasLayer
@onready var bg = $BG as TextureRect
var mahjongs = {
"三条1": preload("uid://b2ectbek7vksi"),
"三条2": preload("uid://ca5j182ppemi3"),
"三条3": preload("uid://cd6d3xjx5o6gg"),
"三条4": preload("uid://bl20arldcd04c"),
"三条5": preload("uid://dtkl36brvsget"),
"三筒": preload("uid://b2pypf81rgqkw"),
"九筒1": preload("uid://dis6qtf1hvop2"),
"九筒2": preload("uid://2chok0puqbuu"),
"二筒": preload("uid://doxc87cp3e8i4"),
"伍万1": preload("uid://bo4hrg3sqpoou"),
"伍万2": preload("uid://e86x6j8wu7sw"),
"伍万3": preload("uid://q4vs78ohnnhw"),
"一条": preload("uid://dduhqah1p81tb"),
"一筒": preload("uid://dwyk0e1c2eg37")
}
@onready var box_init_btn = %"0"
@onready var box_mahjongs_btn: Array[TextureButton] = [%"1", %"2", %"3", %"4", %"5", %"6", %"7", %"8", %"9", %"10", %"11"]
@onready var hand_mahjongs_btn: Array[TextureButton] = [%"12", %"13", %"14"]
@onready var hand_mahjongs = []
@onready var box_mahjongs = []
var freezing = true
var success = false
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
box_init_btn.pressed.connect(_start_game)
box_init_btn.mouse_entered.connect(_toggle_activation_modulate.bind(box_init_btn, true))
box_init_btn.mouse_exited.connect(_toggle_activation_modulate.bind(box_init_btn, false))
for b in box_mahjongs_btn:
b.mouse_entered.connect(_toggel_hover.bind(b, true))
b.mouse_exited.connect(_toggel_hover.bind(b, false))
b.pressed.connect(_on_btn_pressed.bind(b))
for b in hand_mahjongs_btn:
b.mouse_entered.connect(_toggel_hover.bind(b, true))
b.mouse_exited.connect(_toggel_hover.bind(b, false))
b.pressed.connect(_on_btn_pressed.bind(b))
_toggle_activation_for_all(false)
func _start_game() -> void:
$SfxStart.play()
%"14".visible = true
box_init_btn.queue_free()
freezing = false
func _toggel_hover(btn: TextureButton, hovering: bool) -> void:
if freezing:
return
if activated_btn and btn == activated_btn:
return
_toggle_activation_modulate(btn, hovering)
var activated_btn: TextureButton
func _on_btn_pressed(btn: TextureButton) -> void:
if freezing:
return
if btn != activated_btn:
if activated_btn:
_exchange_texture(btn, activated_btn)
_toggle_activation_modulate(btn, false)
_toggle_activation_modulate(activated_btn, false)
activated_btn = null
else:
$SfxSelect.play()
_toggle_activation_modulate(btn, true)
activated_btn = btn
else:
$SfxSelect.play()
_toggle_activation_modulate(btn, false)
activated_btn = null
_check_if_success()
func _exchange_texture(btn1: TextureButton, btn2: TextureButton) -> void:
if btn1 and btn2:
$SfxSwitch.play()
var texture = btn1.texture_normal
btn1.texture_normal = btn2.texture_normal
btn2.texture_normal = texture
func _toggle_activation_modulate(btn: TextureButton, activated: bool) -> void:
if null == btn:
return
if activated:
btn.modulate = Color.WHITE
else:
btn.modulate = Color.GRAY
func _toggle_activation_for_all(activated: bool) -> void:
if box_init_btn:
_toggle_activation_modulate(box_init_btn, activated)
for b in box_mahjongs_btn:
_toggle_activation_modulate(b, activated)
for b in hand_mahjongs_btn:
_toggle_activation_modulate(b, activated)
func _check_if_success() -> void:
if success:
$SfxSuccess.play()
freezing = true

View File

@ -0,0 +1 @@
uid://5r8bu30xpb6m

View File

@ -0,0 +1,237 @@
[gd_scene load_steps=19 format=3 uid="uid://n75766ui6udi"]
[ext_resource type="Script" uid="uid://5r8bu30xpb6m" path="res://scene/ground/script/c03/s04_closeup麻将游戏.gd" id="1_npctd"]
[ext_resource type="AudioStream" uid="uid://cj2wd18uh67sc" path="res://asset/audio/effect/casino/chipLay2.ogg" id="2_oafpr"]
[ext_resource type="AudioStream" uid="uid://bki553kyllb1k" path="res://asset/audio/effect/casino/chipsHandle4.ogg" id="2_oarv7"]
[ext_resource type="Texture2D" uid="uid://6q05kftuxauv" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/麻将游戏盒子特写.png" id="3_f6p4s"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_oarv7"]
[ext_resource type="Texture2D" uid="uid://b2ectbek7vksi" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三条1.png" id="4_axqt4"]
[ext_resource type="AudioStream" uid="uid://cyh1ynixo2li" path="res://asset/audio/effect/casino/chipLay3.ogg" id="4_ta1cv"]
[ext_resource type="Texture2D" uid="uid://ca5j182ppemi3" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三条2.png" id="5_ib3cx"]
[ext_resource type="AudioStream" uid="uid://dxh48r32lm7p2" path="res://asset/audio/effect/casino/chipsHandle5.ogg" id="5_ivruk"]
[ext_resource type="Texture2D" uid="uid://bl20arldcd04c" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三条4.png" id="6_fwi83"]
[ext_resource type="Texture2D" uid="uid://dis6qtf1hvop2" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/九筒1.png" id="7_f6p4s"]
[ext_resource type="Texture2D" uid="uid://y15vgb2gq2r3" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/手.png" id="7_rp00l"]
[ext_resource type="Texture2D" uid="uid://tdo5xxovhljp" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/麻将游戏桌面背景.png" id="7_ta1cv"]
[ext_resource type="Texture2D" uid="uid://b2pypf81rgqkw" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/三筒.png" id="8_ib3cx"]
[ext_resource type="Texture2D" uid="uid://bo4hrg3sqpoou" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/伍万1.png" id="9_axqt4"]
[ext_resource type="Texture2D" uid="uid://bsqp5gfgplgrv" path="res://asset/art/scene/c03/s04_李癞房间/麻将游戏整理/麻将整理游戏视觉引导光影.png" id="16_ivruk"]
[sub_resource type="Gradient" id="Gradient_oarv7"]
offsets = PackedFloat32Array(1)
colors = PackedColorArray(1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_ta1cv"]
gradient = SubResource("Gradient_oarv7")
width = 30
height = 30
[node name="Closeup麻将游戏" type="CanvasLayer"]
script = ExtResource("1_npctd")
[node name="SfxStart" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_oarv7")
bus = &"game_sfx"
script = ExtResource("3_oarv7")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxSelect" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_oafpr")
bus = &"game_sfx"
script = ExtResource("3_oarv7")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxSwitch" type="AudioStreamPlayer" parent="."]
stream = ExtResource("4_ta1cv")
bus = &"game_sfx"
script = ExtResource("3_oarv7")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxSuccess" type="AudioStreamPlayer" parent="."]
stream = ExtResource("5_ivruk")
bus = &"game_sfx"
script = ExtResource("3_oarv7")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BG" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
texture = ExtResource("7_ta1cv")
[node name="Box" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
texture = ExtResource("3_f6p4s")
[node name="Right" type="GridContainer" parent="Box"]
layout_mode = 0
offset_left = 287.0
offset_top = 193.0
offset_right = 351.0
offset_bottom = 247.0
theme_override_constants/h_separation = 2
theme_override_constants/v_separation = 3
columns = 3
[node name="1" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 14)
layout_mode = 2
texture_normal = ExtResource("6_fwi83")
ignore_texture_size = true
[node name="PointLight2D" type="PointLight2D" parent="Box/Right/1"]
position = Vector2(12, 7)
energy = 0.2
range_layer_min = 1
range_layer_max = 1
texture = SubResource("GradientTexture2D_ta1cv")
[node name="2" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 14)
layout_mode = 2
texture_normal = ExtResource("6_fwi83")
ignore_texture_size = true
[node name="3" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 14)
layout_mode = 2
texture_normal = ExtResource("6_fwi83")
ignore_texture_size = true
[node name="4" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 14)
layout_mode = 2
texture_normal = ExtResource("7_f6p4s")
ignore_texture_size = true
[node name="5" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 14)
layout_mode = 2
texture_normal = ExtResource("6_fwi83")
ignore_texture_size = true
[node name="6" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 14)
layout_mode = 2
texture_normal = ExtResource("6_fwi83")
ignore_texture_size = true
[node name="7" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 20)
layout_mode = 2
texture_normal = ExtResource("6_fwi83")
ignore_texture_size = true
[node name="8" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 20)
layout_mode = 2
texture_normal = ExtResource("6_fwi83")
ignore_texture_size = true
[node name="9" type="TextureButton" parent="Box/Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 20)
layout_mode = 2
texture_normal = ExtResource("6_fwi83")
ignore_texture_size = true
[node name="Left" type="GridContainer" parent="Box"]
layout_mode = 0
offset_left = 241.0
offset_top = 227.0
offset_right = 286.0
offset_bottom = 247.0
theme_override_constants/h_separation = 1
theme_override_constants/v_separation = 0
columns = 2
[node name="10" type="TextureButton" parent="Box/Left"]
unique_name_in_owner = true
layout_mode = 2
texture_normal = ExtResource("4_axqt4")
[node name="11" type="TextureButton" parent="Box/Left"]
unique_name_in_owner = true
layout_mode = 2
texture_normal = ExtResource("5_ib3cx")
[node name="0" type="TextureButton" parent="Box"]
unique_name_in_owner = true
layout_mode = 2
offset_left = 319.0
offset_top = 214.0
offset_right = 341.0
offset_bottom = 234.0
texture_normal = ExtResource("8_ib3cx")
[node name="Hand" type="TextureRect" parent="."]
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -207.0
offset_top = -156.0
offset_right = -95.0
offset_bottom = -9.0
grow_horizontal = 2
grow_vertical = 0
mouse_filter = 0
texture = ExtResource("7_rp00l")
stretch_mode = 3
[node name="12" type="TextureButton" parent="Hand"]
unique_name_in_owner = true
layout_mode = 0
offset_left = 43.0
offset_top = 58.0
offset_right = 65.0
offset_bottom = 78.0
rotation = 1.26235
texture_normal = ExtResource("9_axqt4")
[node name="13" type="TextureButton" parent="Hand"]
unique_name_in_owner = true
layout_mode = 0
offset_left = 66.0
offset_top = 70.0
offset_right = 88.0
offset_bottom = 90.0
rotation = 0.943099
texture_normal = ExtResource("9_axqt4")
[node name="14" type="TextureButton" parent="Hand"]
unique_name_in_owner = true
visible = false
layout_mode = 0
offset_left = 42.0
offset_top = 86.0
offset_right = 64.0
offset_bottom = 106.0
rotation = 0.691136
texture_normal = ExtResource("9_axqt4")
[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("16_ivruk")

View File

@ -22,7 +22,7 @@ var success_states: Array = [2, 1, 3, 0]
func _ready() -> void:
$"../刮刮乐".visible = true
var shaven = ArchiveManager.get_global_value("c03_s03_flyer_shaven")
var shaven = ArchiveManager.get_global_value("刮海报_理发店")
states = ArchiveManager.get_global_value("c03_s03_hariti_states", [])
_setup_state()
if _check_success():
@ -32,9 +32,6 @@ func _ready() -> void:
_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))
@ -84,4 +81,4 @@ func _check_success() -> bool:
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("cancel"):
get_viewport().set_input_as_handled()
get_parent().exit.emit(_check_success())
get_parent().exit.emit()

View File

@ -317,7 +317,7 @@ func _unhandled_input(event: InputEvent) -> void:
get_viewport().set_input_as_handled()
# 尝试使用道具
var hud = SceneManager.get_prop_hud() as PropHud
var key = SceneManager.get_current_prop(false)
var key = SceneManager.get_current_prop()
if key == "prop_木头人偶":
SceneManager.disable_prop_item(key)
_chechout_stage(2)

View File

@ -266,7 +266,7 @@ func _unhandled_input(event: InputEvent) -> void:
if round_id == -1:
# intro 阶段,给出弹珠
var hud = SceneManager.get_prop_hud() as PropHud
if SceneManager.get_current_prop(false) != "prop_弹珠":
if SceneManager.get_current_prop() != "prop_弹珠":
hud.on_toggle_invalid_prop()
else:
intro_finished()

View File

@ -18,17 +18,7 @@ signal current_item_changed(prop_key: String)
inventory.current_item_changed.connect(_emit_changed)
@export_group("UI-UX")
@export var display_time := 2.5 # 不包含渐入渐出(约 0.6s)的时长
@export var locked := false:
set(value):
locked = value
if value:
selected = false
@export var selected := true:
set(value):
if selected != value:
selected = value
_emit_changed()
@export var locked := false
@onready var sfx_click = %SfxClick as Sfx
@onready var sfx_inspect = %SfxInspect as Sfx
@onready var sfx_new_prop = %SfxNewProp as Sfx
@ -68,10 +58,7 @@ var listening_hotkey = true
func _emit_changed(prop_key := ""):
if not selected:
current_item_changed.emit("")
else:
current_item_changed.emit(prop_key)
current_item_changed.emit(prop_key)
func _ready() -> void:
@ -283,8 +270,7 @@ func on_left_pressed() -> void:
if locked:
return
sfx_click.play()
if inventory.index_wrap_add(-1):
selected = true
inventory.index_wrap_add(-1)
_update_prop_display_with_texture()
_tween_container(true)
_mouse_moved_on_listening()
@ -294,8 +280,7 @@ func on_right_pressed() -> void:
if locked:
return
sfx_click.play()
if inventory.index_wrap_add(1):
selected = true
inventory.index_wrap_add(1)
_update_prop_display_with_texture()
_tween_container(false)
_mouse_moved_on_listening()
@ -345,7 +330,6 @@ func _on_prop_pressed(id := 0) -> void:
print("PropHUD Panel pressed.")
focus_mode = FOCUS_ALL
grab_focus()
selected = true
if id >= 0:
inventory.current_index = id
_update_prop_display_with_texture()