Merge branch 'demo'

This commit is contained in:
cakipaul 2025-07-09 12:47:14 +08:00
commit 664c8b2138
69 changed files with 1121 additions and 61 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://knvqa6pirc8b"
path="res://.godot/imported/0.png-90c9963ebe8a58cdeefb0a8514d177ba.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/0.png"
dest_files=["res://.godot/imported/0.png-90c9963ebe8a58cdeefb0a8514d177ba.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

@ -0,0 +1,105 @@
[gd_resource type="SpriteFrames" load_steps=21 format=3 uid="uid://c80mjx2sll6mg"]
[ext_resource type="Texture2D" uid="uid://l5m0dxqh661c" path="res://asset/art/gif/c01_鬼差/鬼差的特写/0.png" id="1_g8hkm"]
[ext_resource type="Texture2D" uid="uid://doq2suheyh4uw" path="res://asset/art/gif/c01_鬼差/鬼差的特写/1.png" id="2_8xx5t"]
[ext_resource type="Texture2D" uid="uid://o6lqt1auh7ut" path="res://asset/art/gif/c01_鬼差/鬼差的特写/2.png" id="3_f7dbp"]
[ext_resource type="Texture2D" uid="uid://cugkc77qmq0cv" path="res://asset/art/gif/c01_鬼差/鬼差的特写/3.png" id="4_nmph1"]
[ext_resource type="Texture2D" uid="uid://bn4cjiix38co3" path="res://asset/art/gif/c01_鬼差/鬼差的特写无光效/0.png" id="9_tk41f"]
[ext_resource type="Texture2D" uid="uid://bcxs7d1meg25e" path="res://asset/art/gif/c01_鬼差/鬼差的特写无光效/1.png" id="10_dojsh"]
[ext_resource type="Texture2D" uid="uid://la23bnfgeyvr" path="res://asset/art/gif/c01_鬼差/鬼差的特写无光效/2.png" id="11_4saon"]
[ext_resource type="Texture2D" uid="uid://dtfyr4tyv4i38" path="res://asset/art/gif/c01_鬼差/鬼差的特写无光效/3.png" id="12_uludi"]
[ext_resource type="Texture2D" uid="uid://b5maefox83vsm" path="res://asset/art/gif/c01_鬼差/鬼差飘移动画/1.png" id="13_6qe6v"]
[ext_resource type="Texture2D" uid="uid://bbmblgnelt7w5" path="res://asset/art/gif/c01_鬼差/鬼差眼部光效/0.png" id="13_38dqp"]
[ext_resource type="Texture2D" uid="uid://uxg56hgg4xrw" path="res://asset/art/gif/c01_鬼差/鬼差眼部光效/1.png" id="14_dv8kr"]
[ext_resource type="Texture2D" uid="uid://dtk5pkujg80u8" path="res://asset/art/gif/c01_鬼差/鬼差飘移动画/2.png" id="14_v87kj"]
[ext_resource type="Texture2D" uid="uid://bsifg5mmovb5l" path="res://asset/art/gif/c01_鬼差/鬼差飘移动画/3.png" id="15_aprx1"]
[ext_resource type="Texture2D" uid="uid://bkhyw3jilo6oq" path="res://asset/art/gif/c01_鬼差/鬼差眼部光效/2.png" id="15_b5w3k"]
[ext_resource type="Texture2D" uid="uid://bb3arh1gra3ll" path="res://asset/art/gif/c01_鬼差/鬼差眼部光效/3.png" id="16_5ear6"]
[ext_resource type="Texture2D" uid="uid://c6vi56nvtvuyq" path="res://asset/art/gif/c01_鬼差/鬼差飘移动画/4.png" id="16_310q4"]
[ext_resource type="Texture2D" uid="uid://bl1kxu5x1xbkl" path="res://asset/art/gif/c01_鬼差/鬼差飘移动画/5.png" id="17_3df0b"]
[ext_resource type="Texture2D" uid="uid://dcretju7dnagx" path="res://asset/art/gif/c01_鬼差/鬼差飘移动画/6.png" id="18_831og"]
[ext_resource type="Texture2D" uid="uid://os6w4hlbhlqu" path="res://asset/art/gif/c01_鬼差/鬼差飘移动画/7.png" id="19_b5tro"]
[ext_resource type="Texture2D" uid="uid://doxkckn4s5jly" path="res://asset/art/gif/c01_鬼差/鬼差飘移动画/8.png" id="20_5wagb"]
[resource]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_g8hkm")
}, {
"duration": 1.0,
"texture": ExtResource("2_8xx5t")
}, {
"duration": 1.0,
"texture": ExtResource("3_f7dbp")
}, {
"duration": 1.0,
"texture": ExtResource("4_nmph1")
}],
"loop": true,
"name": &"鬼差的特写",
"speed": 5.0
}, {
"frames": [{
"duration": 6.0,
"texture": ExtResource("9_tk41f")
}, {
"duration": 6.0,
"texture": ExtResource("10_dojsh")
}, {
"duration": 6.0,
"texture": ExtResource("11_4saon")
}, {
"duration": 6.0,
"texture": ExtResource("12_uludi")
}],
"loop": true,
"name": &"鬼差的特写无光效",
"speed": 30.0
}, {
"frames": [{
"duration": 6.0,
"texture": ExtResource("13_38dqp")
}, {
"duration": 6.0,
"texture": ExtResource("14_dv8kr")
}, {
"duration": 6.0,
"texture": ExtResource("15_b5w3k")
}, {
"duration": 6.0,
"texture": ExtResource("16_5ear6")
}],
"loop": true,
"name": &"鬼差眼部光效",
"speed": 30.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("13_6qe6v")
}, {
"duration": 1.0,
"texture": ExtResource("14_v87kj")
}, {
"duration": 1.0,
"texture": ExtResource("15_aprx1")
}, {
"duration": 1.0,
"texture": ExtResource("16_310q4")
}, {
"duration": 1.0,
"texture": ExtResource("17_3df0b")
}, {
"duration": 1.0,
"texture": ExtResource("18_831og")
}, {
"duration": 1.0,
"texture": ExtResource("19_b5tro")
}, {
"duration": 1.0,
"texture": ExtResource("20_5wagb")
}],
"loop": true,
"name": &"鬼差飘移动画",
"speed": 5.0
}]

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

View File

@ -0,0 +1,14 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://c75i5l0iu0ebo"
path="res://.godot/imported/鬼差的特写.gif-3885cf4fb394c0c37d64a55a7113592e.tres"
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写.gif"
dest_files=["res://.godot/imported/鬼差的特写.gif-3885cf4fb394c0c37d64a55a7113592e.tres"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://l5m0dxqh661c"
path="res://.godot/imported/0.png-819746f852345151c89ce92aeff81bf0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写/0.png"
dest_files=["res://.godot/imported/0.png-819746f852345151c89ce92aeff81bf0.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: 92 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://doq2suheyh4uw"
path="res://.godot/imported/1.png-1ad14cb174a69daccd60ed20ad703e01.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写/1.png"
dest_files=["res://.godot/imported/1.png-1ad14cb174a69daccd60ed20ad703e01.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: 93 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://o6lqt1auh7ut"
path="res://.godot/imported/2.png-cdf66fc9304a08e653291a93dbad0c45.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写/2.png"
dest_files=["res://.godot/imported/2.png-cdf66fc9304a08e653291a93dbad0c45.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: 91 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cugkc77qmq0cv"
path="res://.godot/imported/3.png-fccd3c12318b537968d8d7a0766c90df.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写/3.png"
dest_files=["res://.godot/imported/3.png-fccd3c12318b537968d8d7a0766c90df.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

@ -0,0 +1,14 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://cd5atsh04gqy8"
path="res://.godot/imported/鬼差的特写效果.gif-410135f899e1eda154e26a73bae5d83e.tres"
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写效果.gif"
dest_files=["res://.godot/imported/鬼差的特写效果.gif-410135f899e1eda154e26a73bae5d83e.tres"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

View File

@ -0,0 +1,14 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://c62rdeswwpdwj"
path="res://.godot/imported/鬼差的特写无光效.gif-70c8a6e8039f15b77f84c9facf8b20cd.tres"
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写无光效.gif"
dest_files=["res://.godot/imported/鬼差的特写无光效.gif-70c8a6e8039f15b77f84c9facf8b20cd.tres"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bn4cjiix38co3"
path="res://.godot/imported/0.png-5f1572645a636f7da7ca3cc132ef7bc0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写无光效/0.png"
dest_files=["res://.godot/imported/0.png-5f1572645a636f7da7ca3cc132ef7bc0.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: 86 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bcxs7d1meg25e"
path="res://.godot/imported/1.png-5cc9d7f7f08a472f75372591af7d81c2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写无光效/1.png"
dest_files=["res://.godot/imported/1.png-5cc9d7f7f08a472f75372591af7d81c2.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: 87 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://la23bnfgeyvr"
path="res://.godot/imported/2.png-d8e803cb3652dd90a499d8aff71168fa.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写无光效/2.png"
dest_files=["res://.godot/imported/2.png-d8e803cb3652dd90a499d8aff71168fa.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: 86 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtfyr4tyv4i38"
path="res://.godot/imported/3.png-2f1a8f1cc8a7896fe46b269b6cddc646.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差的特写无光效/3.png"
dest_files=["res://.godot/imported/3.png-2f1a8f1cc8a7896fe46b269b6cddc646.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: 62 KiB

View File

@ -0,0 +1,14 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://b2o8rjy4psxlx"
path="res://.godot/imported/鬼差眼部光效.gif-3575f0cc9f32fa3331a26b810ebd4f60.tres"
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差眼部光效.gif"
dest_files=["res://.godot/imported/鬼差眼部光效.gif-3575f0cc9f32fa3331a26b810ebd4f60.tres"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bbmblgnelt7w5"
path="res://.godot/imported/0.png-e5aab640659865326af43e191b678b10.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差眼部光效/0.png"
dest_files=["res://.godot/imported/0.png-e5aab640659865326af43e191b678b10.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: 22 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://uxg56hgg4xrw"
path="res://.godot/imported/1.png-fbc31fcadf82cd143e4114d25fc5e3c2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差眼部光效/1.png"
dest_files=["res://.godot/imported/1.png-fbc31fcadf82cd143e4114d25fc5e3c2.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: 21 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bkhyw3jilo6oq"
path="res://.godot/imported/2.png-8906d011edb98ace5625e167f9712a45.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差眼部光效/2.png"
dest_files=["res://.godot/imported/2.png-8906d011edb98ace5625e167f9712a45.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: 21 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bb3arh1gra3ll"
path="res://.godot/imported/3.png-9b57bc6b2ee3b837c2003904de562763.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差眼部光效/3.png"
dest_files=["res://.godot/imported/3.png-9b57bc6b2ee3b837c2003904de562763.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: 5.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5maefox83vsm"
path="res://.godot/imported/1.png-b70ab687334c62a5b96d2a6f0b954ed1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差飘移动画/1.png"
dest_files=["res://.godot/imported/1.png-b70ab687334c62a5b96d2a6f0b954ed1.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.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtk5pkujg80u8"
path="res://.godot/imported/2.png-7c9a2528ab927f6221623732e4214f12.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差飘移动画/2.png"
dest_files=["res://.godot/imported/2.png-7c9a2528ab927f6221623732e4214f12.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.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bsifg5mmovb5l"
path="res://.godot/imported/3.png-ec28f6ef49b0ad7e51fc585c6a0f9553.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差飘移动画/3.png"
dest_files=["res://.godot/imported/3.png-ec28f6ef49b0ad7e51fc585c6a0f9553.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.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c6vi56nvtvuyq"
path="res://.godot/imported/4.png-deed05c01c9301695c9ba18d3e7b6cc2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差飘移动画/4.png"
dest_files=["res://.godot/imported/4.png-deed05c01c9301695c9ba18d3e7b6cc2.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: 5.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bl1kxu5x1xbkl"
path="res://.godot/imported/5.png-00c6d2dd275c35e5628df1d6738d4080.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差飘移动画/5.png"
dest_files=["res://.godot/imported/5.png-00c6d2dd275c35e5628df1d6738d4080.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.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dcretju7dnagx"
path="res://.godot/imported/6.png-4a99045c5607d17439a575df6c949bc9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差飘移动画/6.png"
dest_files=["res://.godot/imported/6.png-4a99045c5607d17439a575df6c949bc9.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.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://os6w4hlbhlqu"
path="res://.godot/imported/7.png-0a75978d5cbfa2da1722d1903b68dad3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差飘移动画/7.png"
dest_files=["res://.godot/imported/7.png-0a75978d5cbfa2da1722d1903b68dad3.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.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://doxkckn4s5jly"
path="res://.godot/imported/8.png-7c5fed9ece89be9306f83b6d32e340ac.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c01_鬼差/鬼差飘移动画/8.png"
dest_files=["res://.godot/imported/8.png-7c5fed9ece89be9306f83b6d32e340ac.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: 78 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://das1io27w71us"
path="res://.godot/imported/ux_鬼差特写参考.png-9d9b7e0f7dd168134add233e113b1ffd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c01/s10_公寓过道/ux_鬼差特写参考.png"
dest_files=["res://.godot/imported/ux_鬼差特写参考.png-9d9b7e0f7dd168134add233e113b1ffd.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: 8.9 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b856op2pgvkbv"
path="res://.godot/imported/ux_鬼差笼子.png-465fe2a85d0adabddecc6c8f69139281.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c01/s10_公寓过道/ux_鬼差笼子.png"
dest_files=["res://.godot/imported/ux_鬼差笼子.png-465fe2a85d0adabddecc6c8f69139281.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: 18 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfh7riig4cnpa"
path="res://.godot/imported/ux_鬼差背景.png-07a98f4ab51a2fa3c37e20a8c158d884.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c01/s10_公寓过道/ux_鬼差背景.png"
dest_files=["res://.godot/imported/ux_鬼差背景.png-07a98f4ab51a2fa3c37e20a8c158d884.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

@ -1,4 +1,5 @@
keys,zh_CN,_character,_notes,_tags,zh_SH,en keys,zh_CN,_character,_notes,_tags,zh_SH,en
prop_小猫玩具完整,小猫玩具,,,[#texture=c02/新小猫全身.png],,Cat Toy
index_新游戏,新游戏,,,,,New Game index_新游戏,新游戏,,,,,New Game
index_继续游戏,继续游戏,,,,,Continue index_继续游戏,继续游戏,,,,,Continue
index_退出游戏,退出游戏,,,,,Exit Game index_退出游戏,退出游戏,,,,,Exit Game
@ -40,7 +41,8 @@ ui_press_shift,按住 Shift 奔跑,,,,,Hold Shift to run
ui_boxcat_press_s,按住 S 躲藏,,,,,Hold S to hide ui_boxcat_press_s,按住 S 躲藏,,,,,Hold S to hide
input_拼凑信件,点击选择信件碎片方向键移动E 旋碎片转Q 退出,,,,,"Click to select letter fragments, arrow keys to move, E to rotate, Q to exit" input_拼凑信件,点击选择信件碎片方向键移动E 旋碎片转Q 退出,,,,,"Click to select letter fragments, arrow keys to move, E to rotate, Q to exit"
input_书架游戏,点击书本可选中或交换Q 退出,,,,,"Click books to select or swap, Q to exit" input_书架游戏,点击书本可选中或交换Q 退出,,,,,"Click books to select or swap, Q to exit"
ui_获得,获得,,,,,Obtained ui_获得道具,获得道具,,,,,"Item Obtained"
ui_获得重要物品,重要物品,,,,,"Important Item"
ui_退出,退出,,,,,Exit ui_退出,退出,,,,,Exit
ui_阅读,阅读,,,,,Read ui_阅读,阅读,,,,,Read
ui_检阅,检阅,,,,,Examine ui_检阅,检阅,,,,,Examine
@ -64,7 +66,7 @@ prop_小猫玩具的脑袋,小猫玩具的脑袋,,,[#texture=c02/新小猫头.pn
prop_小猫玩具的脑袋_说明,某个玩具的部件,有些眼熟,,,,,"Part of some toy, looks familiar" prop_小猫玩具的脑袋_说明,某个玩具的部件,有些眼熟,,,,,"Part of some toy, looks familiar"
prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png],,Headless Cat Toy prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png],,Headless Cat Toy
prop_无头小猫玩具_说明,没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练,,,,,"A headless cat doll with crooked, unskilled stitching" prop_无头小猫玩具_说明,没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练,,,,,"A headless cat doll with crooked, unskilled stitching"
prop_小猫玩具完整,小猫玩具,,,[#texture=c02/新小猫全身.png],,Cat Toy 小猫玩具 [ID:],小猫玩具 [ID:],,,[#texture=c02/新小猫全身.png],,
prop_小猫玩具完整_说明,这个玩具看久了有些眼熟,,,,,This toy looks familiar after staring at it for a while prop_小猫玩具完整_说明,这个玩具看久了有些眼熟,,,,,This toy looks familiar after staring at it for a while
prop_撕下的照片上,撕下的照片(上),,,[#texture=c02/照片_上.png],,Torn Photo (Upper) prop_撕下的照片上,撕下的照片(上),,,[#texture=c02/照片_上.png],,Torn Photo (Upper)
prop_撕下的照片上_说明,女儿生辰纪念 于 民国元年,,,,,"Daughter's Birthday Memorial, Year 1 of the Republic" prop_撕下的照片上_说明,女儿生辰纪念 于 民国元年,,,,,"Daughter's Birthday Memorial, Year 1 of the Republic"
@ -187,7 +189,7 @@ c02_小蝉盒子特写,我会在盒子里一直陪着你 :3,,,,,I'll stay with y
c02_小蝉恨他们,我恨他们!,,,,,I hate them! c02_小蝉恨他们,我恨他们!,,,,,I hate them!
c02_火灾等待准备,还没准备好点火呢,,,,,Not ready to start the fire yet c02_火灾等待准备,还没准备好点火呢,,,,,Not ready to start the fire yet
c02_霸凌救小蝉开始,啊!我得想办法帮帮她...,,,,,Ah! I need to find a way to help her... c02_霸凌救小蝉开始,啊!我得想办法帮帮她...,,,,,Ah! I need to find a way to help her...
c02_点火前阻止右移,没时间浪费了,我得点个火引走这些小孩,,,,,"There's no time to waste! I have to light a fire to scare these kids away." c02_点火前阻止右移,没时间浪费了,我得点个火引走这些小孩,,,,,There's no time to waste! I have to light a fire to scare these kids away.
c02_看到小蝉上楼,,,,,,?! c02_看到小蝉上楼,,,,,,?!
c02_看到杂物堆消失,楼梯口的杂物消失了...,,,,,The clutter at the stairway has disappeared... c02_看到杂物堆消失,楼梯口的杂物消失了...,,,,,The clutter at the stairway has disappeared...
c02_demo感谢试玩,感谢试玩,,,,,Thank you for playing c02_demo感谢试玩,感谢试玩,,,,,Thank you for playing

1 keys zh_CN _character _notes _tags zh_SH en
2 prop_小猫玩具完整 小猫玩具 [#texture=c02/新小猫全身.png] Cat Toy
3 index_新游戏 新游戏 New Game
4 index_继续游戏 继续游戏 Continue
5 index_退出游戏 退出游戏 Exit Game
41 ui_boxcat_press_s 按住 S 躲藏 Hold S to hide
42 input_拼凑信件 点击选择信件碎片,方向键移动,E 旋碎片转,Q 退出 Click to select letter fragments, arrow keys to move, E to rotate, Q to exit
43 input_书架游戏 点击书本可选中或交换,Q 退出 Click books to select or swap, Q to exit
44 ui_获得 ui_获得道具 获得 获得道具 Obtained Item Obtained
45 ui_获得重要物品 重要物品 Important Item
46 ui_退出 退出 Exit
47 ui_阅读 阅读 Read
48 ui_检阅 检阅 Examine
66 prop_小猫玩具的脑袋_说明 某个玩具的部件,有些眼熟 Part of some toy, looks familiar
67 prop_无头小猫玩具 无头小猫玩具 [#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png] Headless Cat Toy
68 prop_无头小猫玩具_说明 没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练 A headless cat doll with crooked, unskilled stitching
69 prop_小猫玩具完整 小猫玩具 [ID:] 小猫玩具 小猫玩具 [ID:] [#texture=c02/新小猫全身.png] Cat Toy
70 prop_小猫玩具完整_说明 这个玩具看久了有些眼熟 This toy looks familiar after staring at it for a while
71 prop_撕下的照片上 撕下的照片(上) [#texture=c02/照片_上.png] Torn Photo (Upper)
72 prop_撕下的照片上_说明 女儿生辰纪念 于 民国元年 Daughter's Birthday Memorial, Year 1 of the Republic
189 c02_小蝉恨他们 我恨他们! I hate them!
190 c02_火灾等待准备 还没准备好点火呢 Not ready to start the fire yet
191 c02_霸凌救小蝉开始 啊!我得想办法帮帮她... Ah! I need to find a way to help her...
192 c02_点火前阻止右移 没时间浪费了,我得点个火引走这些小孩 There's no time to waste! I have to light a fire to scare these kids away.
193 c02_看到小蝉上楼 ?! ?!
194 c02_看到杂物堆消失 楼梯口的杂物消失了... The clutter at the stairway has disappeared...
195 c02_demo感谢试玩 感谢试玩 Thank you for playing

View File

@ -50,7 +50,8 @@
点击选择信件碎片方向键移动E 旋碎片转Q 退出 [ID:input_拼凑信件] 点击选择信件碎片方向键移动E 旋碎片转Q 退出 [ID:input_拼凑信件]
点击书本可选中或交换Q 退出 [ID:input_书架游戏] 点击书本可选中或交换Q 退出 [ID:input_书架游戏]
获得 [ID:ui_获得] 获得道具 [ID:ui_获得道具]
重要物品 [ID:ui_获得重要物品]
退出 [ID:ui_退出] 退出 [ID:ui_退出]
阅读 [ID:ui_阅读] 阅读 [ID:ui_阅读]
检阅 [ID:ui_检阅] 检阅 [ID:ui_检阅]
@ -84,7 +85,7 @@
某个玩具的部件,有些眼熟[ID:prop_小猫玩具的脑袋_说明] 某个玩具的部件,有些眼熟[ID:prop_小猫玩具的脑袋_说明]
无头小猫玩具 [#texture=c02/新小猫身体.png] [#inspect=c02/新小猫身体_特写.png] [ID:prop_无头小猫玩具] 无头小猫玩具 [#texture=c02/新小猫身体.png] [#inspect=c02/新小猫身体_特写.png] [ID:prop_无头小猫玩具]
没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练 [ID:prop_无头小猫玩具_说明] 没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练 [ID:prop_无头小猫玩具_说明]
小猫玩具 [#texture=c02/新小猫全身.png] [ID:prop_小猫玩具完整] 小猫玩具 [#texture=c02/新小猫全身.png] [ID:]
这个玩具看久了有些眼熟[ID:prop_小猫玩具完整_说明] 这个玩具看久了有些眼熟[ID:prop_小猫玩具完整_说明]
撕下的照片(上) [#texture=c02/照片_上.png] [ID:prop_撕下的照片上] 撕下的照片(上) [#texture=c02/照片_上.png] [ID:prop_撕下的照片上]
女儿生辰纪念 于 民国元年 [ID:prop_撕下的照片上_说明] 女儿生辰纪念 于 民国元年 [ID:prop_撕下的照片上_说明]

32
scene/effect/ghost.gd Normal file
View File

@ -0,0 +1,32 @@
extends Sprite2D
@export var display_sprite := true
@onready var ghost_sprite = $"鬼差" as AnimatedSprite2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if not display_sprite:
ghost_sprite.hide()
else:
ghost_sprite.modulate.a = 0.5
tween_modulate()
var hiding = false
func tween_modulate() -> void:
if hiding:
return
var tween = create_tween()
var rand_mod = randf_range(0.4, 0.8)
tween.tween_property(ghost_sprite, "modulate:a", rand_mod, 0.5)
tween.tween_callback(tween_modulate)
func esae_hide_ghost() -> void:
hiding = true
var tween = create_tween()
tween.tween_property(ghost_sprite, "modulate:a", 0.0, 1.0)

View File

@ -0,0 +1 @@
uid://2uv6vhcq84am

View File

@ -1,7 +1,10 @@
[gd_scene load_steps=8 format=3 uid="uid://h0s5ms7r7d8g"] [gd_scene load_steps=11 format=3 uid="uid://h0s5ms7r7d8g"]
[ext_resource type="Shader" uid="uid://cr3jq30n7muy4" path="res://scene/effect/ghost.gdshader" id="1_n4q4i"] [ext_resource type="Shader" uid="uid://cr3jq30n7muy4" path="res://scene/effect/ghost.gdshader" id="1_n4q4i"]
[ext_resource type="Script" uid="uid://2uv6vhcq84am" path="res://scene/effect/ghost.gd" id="2_n01ru"]
[ext_resource type="SpriteFrames" uid="uid://c80mjx2sll6mg" path="res://asset/art/gif/c01_鬼差/c01_鬼差_frames.tres" id="3_6t4m0"]
[ext_resource type="Texture2D" uid="uid://bc64s5xfysrc3" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_夜晚.png" id="4_lap87"] [ext_resource type="Texture2D" uid="uid://bc64s5xfysrc3" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_夜晚.png" id="4_lap87"]
[ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="4_n01ru"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fv2fx"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_fv2fx"]
shader = ExtResource("1_n4q4i") shader = ExtResource("1_n4q4i")
@ -29,18 +32,34 @@ height = 400
material = SubResource("ShaderMaterial_fv2fx") material = SubResource("ShaderMaterial_fv2fx")
position = Vector2(135, 129) position = Vector2(135, 129)
texture = SubResource("GradientTexture2D_v3bi5") texture = SubResource("GradientTexture2D_v3bi5")
script = ExtResource("2_n01ru")
[node name="BackBufferCopy" type="BackBufferCopy" parent="."] [node name="BackBufferCopy" type="BackBufferCopy" parent="."]
visible = false visible = false
copy_mode = 2 copy_mode = 2
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="背景" type="Sprite2D" parent="."]
visible = false visible = false
show_behind_parent = true show_behind_parent = true
position = Vector2(-254, -10) position = Vector2(-254, -10)
texture = ExtResource("4_lap87") texture = ExtResource("4_lap87")
[node name="Sprite2D2" type="Sprite2D" parent="."] [node name="阴暗" type="Sprite2D" parent="."]
modulate = Color(0, 0, 0, 0.435294) modulate = Color(0, 0, 0, 0.435294)
position = Vector2(-1966, -4) position = Vector2(-1966, -4)
texture = SubResource("GradientTexture2D_1ykr3") texture = SubResource("GradientTexture2D_1ykr3")
[node name="鬼差" type="AnimatedSprite2D" parent="."]
position = Vector2(-68, -52)
sprite_frames = ExtResource("3_6t4m0")
animation = &"鬼差飘移动画"
autoplay = "鬼差飘移动画"
frame_progress = 0.594265
[node name="PointLight2D" type="PointLight2D" parent="鬼差"]
visible = false
position = Vector2(60, 45)
color = Color(0.933326, 4.81308e-06, 9.62615e-07, 1)
energy = 1.5
texture = ExtResource("4_n01ru")
texture_scale = 0.7

View File

@ -345,7 +345,7 @@ func _find_props(props: Dictionary, node: Node) -> void:
props[child.prop_key3] = true props[child.prop_key3] = true
print("Find Interactable2D prop3: " + child.prop_key3) print("Find Interactable2D prop3: " + child.prop_key3)
elif child is Pickable2D: elif child is Pickable2D:
if child.prop_key != &"": if child.prop_key != &"" and not child.as_important_item:
props[child.prop_key] = true props[child.prop_key] = true
print("Find Pickable2D prop: " + child.prop_key) print("Find Pickable2D prop: " + child.prop_key)
_find_props(props, child) _find_props(props, child)

View File

@ -148,6 +148,7 @@ focus_node = NodePath("../Ghost")
visible = false visible = false
z_index = 10 z_index = 10
position = Vector2(-119, 13) position = Vector2(-119, 13)
display_sprite = false
[node name="Ambush玩家擦肩而过" parent="Ground/DeployLayer/Ghost" instance=ExtResource("5_pssh2")] [node name="Ambush玩家擦肩而过" parent="Ground/DeployLayer/Ghost" instance=ExtResource("5_pssh2")]
position = Vector2(96, 20) position = Vector2(96, 20)

View File

@ -79,7 +79,7 @@ func _ghost_appear_sfx():
func _on_interactable_bowl_interacted() -> void: func _on_interactable_bowl_interacted() -> void:
SceneManager.freeze_player(0) SceneManager.lock_player()
# ⼩男孩询问吕萍银元从哪⾥弄来的 # ⼩男孩询问吕萍银元从哪⾥弄来的
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来之前对话") DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来之前对话")
await DialogueManager.dialogue_ended await DialogueManager.dialogue_ended
@ -93,15 +93,15 @@ func _on_interactable_bowl_interacted() -> void:
kid.play("夜晚举腿小孩杂耍到害怕过渡") kid.play("夜晚举腿小孩杂耍到害怕过渡")
_ghost_appear_sfx() _ghost_appear_sfx()
await Util.wait(1) await Util.wait(1)
SceneManager.get_player().set_facing_direction(Vector2.LEFT)
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了") DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了")
var tween = create_tween() var tween = create_tween()
var camera = SceneManager.get_camera_marker() as CameraFocusMarker var camera = SceneManager.get_camera_marker() as CameraFocusMarker
tween.tween_interval(1.5) tween.tween_interval(0.5)
tween.tween_property(camera, "force_offset", Vector2(-100, 0), 2.0) tween.tween_property(camera, "force_offset", Vector2(-100, 0), 2.0)
SceneManager.get_player().set_facing_direction(Vector2.LEFT) tween.tween_interval(1.0)
await DialogueManager.dialogue_ended tween.tween_callback(SceneManager.unlock_player)
SceneManager.release_player() tween.tween_interval(1.0)
tween = create_tween()
tween.tween_property(camera, "force_offset", Vector2(0, 0), 2.0) tween.tween_property(camera, "force_offset", Vector2(0, 0), 2.0)
@ -135,7 +135,7 @@ func _setup_catching_game():
func player_been_catched(transition := true) -> void: func player_been_catched(transition := true) -> void:
$"Bgm鬼差追逐".stop(1.5) $"Bgm鬼差追逐".stop(1.5)
$"Sfx鬼差擦肩而过".play() $"Sfx鬼差擦肩而过".play()
SceneManager.freeze_player(0) SceneManager.lock_player()
if ghost_move_tween: if ghost_move_tween:
ghost_move_tween.kill() ghost_move_tween.kill()
ghost.get_node("脚步声2D").pause_loop() ghost.get_node("脚步声2D").pause_loop()
@ -150,14 +150,18 @@ func player_been_catched(transition := true) -> void:
await SceneManager.toggle_ground_mask(true).finished await SceneManager.toggle_ground_mask(true).finished
# 恢复花朵 # 恢复花朵
flower.reset_all_blooming() flower.reset_all_blooming()
# reset player and ghost position
ghost.global_position.x = ghost_start_x + 100.0
SceneManager.get_player().global_position.x = player_start_x
await SceneManager.toggle_ground_mask(false).finished await SceneManager.toggle_ground_mask(false).finished
# reset player and ghost position else:
ghost.global_position.x = ghost_start_x + 100.0 # reset player and ghost position
SceneManager.get_player().global_position.x = player_start_x ghost.global_position.x = ghost_start_x + 100.0
SceneManager.get_player().global_position.x = player_start_x
_ghost_appear_sfx() _ghost_appear_sfx()
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了") DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_鬼差来了")
await DialogueManager.dialogue_ended await DialogueManager.dialogue_ended
SceneManager.release_player() SceneManager.unlock_player()
ghost_move_tween = create_tween() ghost_move_tween = create_tween()
ghost_move_tween.tween_property(ghost, "global_position", Vector2(2500, 0), 40.0).as_relative() ghost_move_tween.tween_property(ghost, "global_position", Vector2(2500, 0), 40.0).as_relative()

View File

@ -83,8 +83,8 @@ func _on_ground_ready() -> void:
counter.enabled = false counter.enabled = false
else: else:
# 空柜子 x 坐标 # 空柜子 x 坐标
var counter_x = ArchiveManager.get_global_value(&"c02_counter_x", default_counter_x) var counter_x = float(ArchiveManager.get_global_value(&"c02_counter_x", default_counter_x))
if counter_x < 0: if counter_x <= 0:
counter_x = default_counter_x counter_x = default_counter_x
counter.interacted.connect(_on_counter_interacted) counter.interacted.connect(_on_counter_interacted)
counter.global_position.x = counter_x counter.global_position.x = counter_x
@ -206,12 +206,14 @@ func after_counter_moved():
func _on_pick_catty_head() -> void: func _on_pick_catty_head() -> void:
if SceneManager.has_prop("prop_无头小猫玩具"): if SceneManager.has_prop("prop_无头小猫玩具"):
print("拼接小猫玩具...")
SceneManager.lock_player() SceneManager.lock_player()
var inspector = SceneManager.get_inspector() var inspector = SceneManager.get_inspector()
await inspector.quit_and_hidden await inspector.quit_and_hidden
# 将小猫头与身子合并 # 将小猫头与身子合并
SceneManager.disable_prop_item("prop_小猫玩具的脑袋") SceneManager.disable_prop_item("prop_小猫玩具的脑袋")
SceneManager.disable_prop_item("prop_无头小猫玩具") SceneManager.disable_prop_item("prop_无头小猫玩具")
SceneManager.enable_prop_item_silently("prop_小猫玩具完整")
var sprite = $"../DeployLayer/拼接小猫玩具" var sprite = $"../DeployLayer/拼接小猫玩具"
sprite.visible = true sprite.visible = true
sprite.play() sprite.play()

View File

@ -18,6 +18,9 @@ func _on_ground_ready() -> void:
func knock_light_door(): func knock_light_door():
var layer = $"../盒子猫CanvasLayer"
layer.disable_crawl = true
$"../DeployLayer/Ambush终点光芒互动".enabled = false
var knock_stream = preload("uid://6q5qi1qon35r") var knock_stream = preload("uid://6q5qi1qon35r")
var player = SceneManager.get_player() var player = SceneManager.get_player()
# 禁止猪头怪动画播放结束后重开游戏 # 禁止猪头怪动画播放结束后重开游戏
@ -40,7 +43,6 @@ func knock_light_door():
# 收尾演出 # 收尾演出
func _outtro_show(): func _outtro_show():
$"../DeployLayer/Ambush终点光芒互动".enabled = false
$"Sfx结尾演出".play() $"Sfx结尾演出".play()
await Util.wait(8.0) await Util.wait(8.0)
$"../盒子猫CanvasLayer".show_footprint() $"../盒子猫CanvasLayer".show_footprint()

View File

@ -1,38 +1,28 @@
[gd_scene load_steps=13 format=3 uid="uid://bf6oxxe2e6vxj"] [gd_scene load_steps=15 format=3 uid="uid://bf6oxxe2e6vxj"]
[ext_resource type="Script" uid="uid://bgffnekpvw8pu" path="res://scene/ground/script/c01/s10_鬼差探头.gd" id="1_pvnth"] [ext_resource type="Script" uid="uid://bgffnekpvw8pu" path="res://scene/ground/script/c01/s10_鬼差探头.gd" id="1_pvnth"]
[ext_resource type="Texture2D" uid="uid://dsyb81xacsbc8" path="res://asset/art/scene/c01/s03_旧版序章/ux_背景gaise.png" id="2_r4vbv"] [ext_resource type="Texture2D" uid="uid://cfh7riig4cnpa" path="res://asset/art/scene/c01/s10_公寓过道/ux_鬼差背景.png" id="2_k54st"]
[ext_resource type="Texture2D" uid="uid://bqawq75la061h" path="res://asset/art/scene/c01/s03_旧版序章/ux_鬼差脸gaise.png" id="3_dxjux"] [ext_resource type="SpriteFrames" uid="uid://c80mjx2sll6mg" path="res://asset/art/gif/c01_鬼差/c01_鬼差_frames.tres" id="3_rn65a"]
[ext_resource type="Texture2D" uid="uid://bvxa5gejmlk4o" path="res://asset/art/scene/c01/s03_旧版序章/e_柱子有红纹gaise.png" id="4_beln2"] [ext_resource type="Texture2D" uid="uid://bbmblgnelt7w5" path="res://asset/art/gif/c01_鬼差/鬼差眼部光效/0.png" id="4_bpuqk"]
[ext_resource type="Texture2D" uid="uid://b856op2pgvkbv" path="res://asset/art/scene/c01/s10_公寓过道/ux_鬼差笼子.png" id="5_3fvsh"]
[ext_resource type="AudioStream" uid="uid://cjyodjgrthtm" path="res://asset/audio/sfx/交互/序章/06_公寓楼道_鬼差偷看.wav" id="5_c13qq"] [ext_resource type="AudioStream" uid="uid://cjyodjgrthtm" path="res://asset/audio/sfx/交互/序章/06_公寓楼道_鬼差偷看.wav" id="5_c13qq"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="5_ug335"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="5_ug335"]
[ext_resource type="AudioStream" uid="uid://b8rg7adnnkjll" path="res://asset/audio/BGM/戏曲声.wav" id="7_72vl6"] [ext_resource type="AudioStream" uid="uid://b8rg7adnnkjll" path="res://asset/audio/BGM/戏曲声.wav" id="7_72vl6"]
[ext_resource type="AudioStream" uid="uid://bi6gm533oqsa" path="res://asset/audio/BGM/街道背景音.wav" id="8_vputk"] [ext_resource type="AudioStream" uid="uid://bi6gm533oqsa" path="res://asset/audio/BGM/街道背景音.wav" id="8_vputk"]
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="10_k54st"]
[sub_resource type="Animation" id="Animation_ug335"] [sub_resource type="Animation" id="Animation_ug335"]
length = 0.001 length = 0.001
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("脸与眼:position") tracks/0/path = NodePath("Sfx:volume_db")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 0,
"values": [Vector2(-67, -10)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sfx:volume_db")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-40.0] "values": [-40.0]
} }
@ -42,7 +32,7 @@ length = 8.0
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("脸与眼:position") tracks/0/path = NodePath("face_root:position")
tracks/0/interp = 2 tracks/0/interp = 2
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
@ -103,21 +93,26 @@ libraries = {
} }
[node name="背景" type="Sprite2D" parent="."] [node name="背景" type="Sprite2D" parent="."]
position = Vector2(-136, -7) position = Vector2(-8, -18)
scale = Vector2(1.4, 1.4) texture = ExtResource("2_k54st")
texture = ExtResource("2_r4vbv")
centered = false centered = false
[node name="脸与眼" type="Sprite2D" parent="."] [node name="face_root" type="Node2D" parent="."]
position = Vector2(-67, -10) position = Vector2(-87, -5)
texture = ExtResource("3_dxjux")
centered = false [node name="脸与眼" type="AnimatedSprite2D" parent="face_root"]
position = Vector2(359, 122)
sprite_frames = ExtResource("3_rn65a")
animation = &"鬼差的特写"
autoplay = "鬼差的特写"
[node name="PointLight2D" type="PointLight2D" parent="face_root/脸与眼"]
visible = false
texture = ExtResource("4_bpuqk")
[node name="柱子" type="Sprite2D" parent="."] [node name="柱子" type="Sprite2D" parent="."]
modulate = Color(0.0531032, 0.896804, 1, 1) position = Vector2(38, 41)
position = Vector2(22, -3) texture = ExtResource("5_3fvsh")
scale = Vector2(1.0601, 1.38482)
texture = ExtResource("4_beln2")
centered = false centered = false
[node name="Sfx" type="AudioStreamPlayer" parent="."] [node name="Sfx" type="AudioStreamPlayer" parent="."]
@ -132,3 +127,12 @@ stream = SubResource("AudioStreamSynchronized_k54st")
bus = &"game_sfx" bus = &"game_sfx"
script = ExtResource("5_ug335") script = ExtResource("5_ug335")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m" metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="TextureRect" 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("10_k54st")

View File

@ -325,7 +325,7 @@ func _on_prop_inspected(id := 0) -> void:
prop_key = inventory.current_item_key() prop_key = inventory.current_item_key()
if prop_key: if prop_key:
sfx_inspect.play() sfx_inspect.play()
inspect_item(prop_key, true) inspect_item(prop_key, false)
func _on_prop_pressed(id := 0) -> void: func _on_prop_pressed(id := 0) -> void:
@ -469,11 +469,12 @@ func enable_important_item(prop_key: String, display_inspector: bool) -> void:
inventory.enable_important_item(prop_key) inventory.enable_important_item(prop_key)
SceneManager.pop_notification("ui_notify_important_item_update") SceneManager.pop_notification("ui_notify_important_item_update")
if display_inspector: if display_inspector:
inspect_item(prop_key) inspect_item(prop_key, true, true)
func enable_prop_item(prop_key: String, inspect := true) -> void: func enable_prop_item(prop_key: String, inspect := true) -> void:
if not inventory or not prop_key: if not inventory or not prop_key:
printerr("PropHUD Enable prop item: No inventory or prop_key provided.")
return return
if not items_dict.has(prop_key): if not items_dict.has(prop_key):
push_error("PropItem not found! key=" + prop_key) push_error("PropItem not found! key=" + prop_key)
@ -489,7 +490,7 @@ func enable_prop_item(prop_key: String, inspect := true) -> void:
inspect_item(prop_key) inspect_item(prop_key)
func inspect_item(prop_key: String, display_words_only := false): func inspect_item(prop_key: String, display_obtained := true, as_important_item := false):
var inspector = SceneManager.get_inspector() var inspector = SceneManager.get_inspector()
if inspector: if inspector:
var texture_path = items_dict[prop_key].texture_path var texture_path = items_dict[prop_key].texture_path
@ -497,13 +498,21 @@ func inspect_item(prop_key: String, display_words_only := false):
# 是否有独立的 inspect 图片 # 是否有独立的 inspect 图片
if inspect_path: if inspect_path:
var texture = load(inspect_path) as Texture2D var texture = load(inspect_path) as Texture2D
inspector.pop_prop_inspection(prop_key, texture, false, display_words_only) inspector.pop_prop_inspection(
prop_key, texture, false, display_obtained, as_important_item
)
else: else:
var texture = cached_inventory_textures.get(prop_key) var texture = cached_inventory_textures.get(prop_key)
if not texture: if not texture:
texture = load(texture_path) as Texture2D texture = load(texture_path) as Texture2D
cached_inventory_textures[prop_key] = texture if texture:
inspector.pop_prop_inspection(prop_key, texture, true, display_words_only) cached_inventory_textures[prop_key] = texture
else:
printerr("prophud inspect_item invalid texture_path:", texture_path)
return
inspector.pop_prop_inspection(
prop_key, texture, true, display_obtained, as_important_item
)
func disable_prop_item(prop_key: String) -> void: func disable_prop_item(prop_key: String) -> void:

View File

@ -128,7 +128,11 @@ var balloon
func pop_prop_inspection( func pop_prop_inspection(
prop_key: String, cover_texture: Texture2D, use_default_bg: bool, display_words_only: bool prop_key: String,
cover_texture: Texture2D,
use_default_bg: bool,
display_obtained: bool,
as_important_item: bool
): ):
if not cover_texture: if not cover_texture:
push_error("PropInspector: cover_texture is not set") push_error("PropInspector: cover_texture is not set")
@ -155,10 +159,12 @@ func pop_prop_inspection(
# 显示道具获得提示 # 显示道具获得提示
if prop_key: if prop_key:
var obtain_str = tr("ui_获得")
var prop_title = tr(prop_key) var prop_title = tr(prop_key)
var text = "~ title\n" var text = "~ title\n"
if not display_words_only: if display_obtained:
var obtain_str = tr("ui_获得道具")
if as_important_item:
obtain_str = tr("ui_获得重要物品")
text += obtain_str + ": " + prop_title + "[#item]\n" text += obtain_str + ": " + prop_title + "[#item]\n"
# 道具的一句话说明 # 道具的一句话说明
var original_word_lines = tr(prop_key + "_说明").replace("{br}", "\n").split("\n") var original_word_lines = tr(prop_key + "_说明").replace("{br}", "\n").split("\n")