diff --git a/README.md b/README.md index abe64ed5..a7892d85 100644 --- a/README.md +++ b/README.md @@ -107,3 +107,17 @@ GroundLoader 加载/切换 Ground 时,分为上下两段转场: 每个场景都有一份 GroundArchive 存档,通过 ArchiveManager.archive.ground_archive() 可以获得。 current_scene 是通过 GroundLoader 加载的,在 ground loader 加载 ground 时,会先更新 archive 的 current scene,然后加载 ground。 + + +# 重大更新日志(功能) + +- Sign 触发机制,图标位置管理 +- GroundArchive:场景内 namespace 隔离,内部需要保证节点名 unique +- 基础节点:Inspectable,Ambush,Note,Interactable,Closeup,Npc +- PropHud 切换与点击展示 +- SignSnapper 拉动机制 +- ReenterLock 机制 +- Vibe Sfx & Manager +- 转场 process 机制优化:暂停 & sfx 等保持运行 +- EventManager 控制事件,使用 Event2D 控制绑定关系 +- Vibe Control 控制氛围情绪音乐 \ No newline at end of file diff --git a/asset/art/scene/c01/s08_书店/l_打光.png b/asset/art/scene/c01/s08_书店/l_打光.png old mode 100755 new mode 100644 index cf47fe27..3b0cf715 Binary files a/asset/art/scene/c01/s08_书店/l_打光.png and b/asset/art/scene/c01/s08_书店/l_打光.png differ diff --git a/asset/art/scene/c01/s09_黄包车长场景/动画字幕/动画字幕-09.png b/asset/art/scene/c01/s09_黄包车长场景/动画字幕/动画字幕-09.png index 87c91d21..c8bfba01 100644 Binary files a/asset/art/scene/c01/s09_黄包车长场景/动画字幕/动画字幕-09.png and b/asset/art/scene/c01/s09_黄包车长场景/动画字幕/动画字幕-09.png differ diff --git a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-25.png b/asset/art/ui/bag/UI显示相关-25.png similarity index 100% rename from asset/art/ui/prop_and_bag/重要物品/UI显示相关-25.png rename to asset/art/ui/bag/UI显示相关-25.png diff --git a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-25.png.import b/asset/art/ui/bag/UI显示相关-25.png.import similarity index 67% rename from asset/art/ui/prop_and_bag/重要物品/UI显示相关-25.png.import rename to asset/art/ui/bag/UI显示相关-25.png.import index b3491021..7fc6793d 100644 --- a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-25.png.import +++ b/asset/art/ui/bag/UI显示相关-25.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c8gdny0iewwl2" -path="res://.godot/imported/UI显示相关-25.png-0ec1750b98ccd8275203986cc2d3256e.ctex" +path="res://.godot/imported/UI显示相关-25.png-83e4a3548aa8c6e221e5e10c325e6697.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/重要物品/UI显示相关-25.png" -dest_files=["res://.godot/imported/UI显示相关-25.png-0ec1750b98ccd8275203986cc2d3256e.ctex"] +source_file="res://asset/art/ui/bag/UI显示相关-25.png" +dest_files=["res://.godot/imported/UI显示相关-25.png-83e4a3548aa8c6e221e5e10c325e6697.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-28.png b/asset/art/ui/bag/UI显示相关-28.png similarity index 100% rename from asset/art/ui/prop_and_bag/重要物品/UI显示相关-28.png rename to asset/art/ui/bag/UI显示相关-28.png diff --git a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-28.png.import b/asset/art/ui/bag/UI显示相关-28.png.import similarity index 67% rename from asset/art/ui/prop_and_bag/重要物品/UI显示相关-28.png.import rename to asset/art/ui/bag/UI显示相关-28.png.import index 84671d9f..3cdeeb53 100644 --- a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-28.png.import +++ b/asset/art/ui/bag/UI显示相关-28.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://b10njg374yi6n" -path="res://.godot/imported/UI显示相关-28.png-acb9b415b30745e1597105427c9cba78.ctex" +path="res://.godot/imported/UI显示相关-28.png-322ab301deb18fae3cef431753fd61c1.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/重要物品/UI显示相关-28.png" -dest_files=["res://.godot/imported/UI显示相关-28.png-acb9b415b30745e1597105427c9cba78.ctex"] +source_file="res://asset/art/ui/bag/UI显示相关-28.png" +dest_files=["res://.godot/imported/UI显示相关-28.png-322ab301deb18fae3cef431753fd61c1.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-25.png b/asset/art/ui/bag/重要物品ui-25.png similarity index 100% rename from asset/art/ui/prop_and_bag/重要物品/重要物品ui-25.png rename to asset/art/ui/bag/重要物品ui-25.png diff --git a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-25.png.import b/asset/art/ui/bag/重要物品ui-25.png.import similarity index 67% rename from asset/art/ui/prop_and_bag/重要物品/重要物品ui-25.png.import rename to asset/art/ui/bag/重要物品ui-25.png.import index 1f5feb8c..e09175d5 100644 --- a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-25.png.import +++ b/asset/art/ui/bag/重要物品ui-25.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://1ky8heqxctnf" -path="res://.godot/imported/重要物品ui-25.png-407ffd8f3f56be214021fd258f380b89.ctex" +path="res://.godot/imported/重要物品ui-25.png-d0369d713aea68aa8dfbfe0167f247df.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/重要物品/重要物品ui-25.png" -dest_files=["res://.godot/imported/重要物品ui-25.png-407ffd8f3f56be214021fd258f380b89.ctex"] +source_file="res://asset/art/ui/bag/重要物品ui-25.png" +dest_files=["res://.godot/imported/重要物品ui-25.png-d0369d713aea68aa8dfbfe0167f247df.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-26.png b/asset/art/ui/bag/重要物品ui-26.png similarity index 100% rename from asset/art/ui/prop_and_bag/重要物品/重要物品ui-26.png rename to asset/art/ui/bag/重要物品ui-26.png diff --git a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-26.png.import b/asset/art/ui/bag/重要物品ui-26.png.import similarity index 67% rename from asset/art/ui/prop_and_bag/重要物品/重要物品ui-26.png.import rename to asset/art/ui/bag/重要物品ui-26.png.import index 2ab0bdff..d344e671 100644 --- a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-26.png.import +++ b/asset/art/ui/bag/重要物品ui-26.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c8lmwf2at5g3u" -path="res://.godot/imported/重要物品ui-26.png-2fde379a811eae74a756263b14c24af0.ctex" +path="res://.godot/imported/重要物品ui-26.png-96c27bd0aac67d6ca8323a20cd22a4a3.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/重要物品/重要物品ui-26.png" -dest_files=["res://.godot/imported/重要物品ui-26.png-2fde379a811eae74a756263b14c24af0.ctex"] +source_file="res://asset/art/ui/bag/重要物品ui-26.png" +dest_files=["res://.godot/imported/重要物品ui-26.png-96c27bd0aac67d6ca8323a20cd22a4a3.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-27.png b/asset/art/ui/bag/重要物品ui-27.png similarity index 100% rename from asset/art/ui/prop_and_bag/重要物品/重要物品ui-27.png rename to asset/art/ui/bag/重要物品ui-27.png diff --git a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-27.png.import b/asset/art/ui/bag/重要物品ui-27.png.import similarity index 67% rename from asset/art/ui/prop_and_bag/重要物品/重要物品ui-27.png.import rename to asset/art/ui/bag/重要物品ui-27.png.import index 5750001f..88f6f9d7 100644 --- a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-27.png.import +++ b/asset/art/ui/bag/重要物品ui-27.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c1l5royi6w0cm" -path="res://.godot/imported/重要物品ui-27.png-883293e09ea707222341de684f31a112.ctex" +path="res://.godot/imported/重要物品ui-27.png-6792f6d4b6de739866d869f9758ca28b.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/重要物品/重要物品ui-27.png" -dest_files=["res://.godot/imported/重要物品ui-27.png-883293e09ea707222341de684f31a112.ctex"] +source_file="res://asset/art/ui/bag/重要物品ui-27.png" +dest_files=["res://.godot/imported/重要物品ui-27.png-6792f6d4b6de739866d869f9758ca28b.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-28.png b/asset/art/ui/bag/重要物品ui-28.png similarity index 100% rename from asset/art/ui/prop_and_bag/重要物品/重要物品ui-28.png rename to asset/art/ui/bag/重要物品ui-28.png diff --git a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-28.png.import b/asset/art/ui/bag/重要物品ui-28.png.import similarity index 67% rename from asset/art/ui/prop_and_bag/重要物品/重要物品ui-28.png.import rename to asset/art/ui/bag/重要物品ui-28.png.import index fec0cd5f..2614fed9 100644 --- a/asset/art/ui/prop_and_bag/重要物品/重要物品ui-28.png.import +++ b/asset/art/ui/bag/重要物品ui-28.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bhjynxasn03jv" -path="res://.godot/imported/重要物品ui-28.png-4ca35ed6f768d32ef4f0f4da9e61b1c0.ctex" +path="res://.godot/imported/重要物品ui-28.png-0a92db9e41967a3c3b13be0f16f066a2.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/重要物品/重要物品ui-28.png" -dest_files=["res://.godot/imported/重要物品ui-28.png-4ca35ed6f768d32ef4f0f4da9e61b1c0.ctex"] +source_file="res://asset/art/ui/bag/重要物品ui-28.png" +dest_files=["res://.godot/imported/重要物品ui-28.png-0a92db9e41967a3c3b13be0f16f066a2.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/特写通用遮罩.png b/asset/art/ui/inspect/inspect特写通用遮罩.png similarity index 100% rename from asset/art/ui/prop_and_bag/特写通用遮罩.png rename to asset/art/ui/inspect/inspect特写通用遮罩.png diff --git a/asset/art/ui/prop_and_bag/特写通用遮罩.png.import b/asset/art/ui/inspect/inspect特写通用遮罩.png.import similarity index 67% rename from asset/art/ui/prop_and_bag/特写通用遮罩.png.import rename to asset/art/ui/inspect/inspect特写通用遮罩.png.import index 29ef6960..ece5fc58 100644 --- a/asset/art/ui/prop_and_bag/特写通用遮罩.png.import +++ b/asset/art/ui/inspect/inspect特写通用遮罩.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cbql1i4hblmt1" -path="res://.godot/imported/特写通用遮罩.png-2ddfd83815d8ba406d36dfa56db4c3bf.ctex" +path="res://.godot/imported/inspect特写通用遮罩.png-d71efbdf6a70d5f61869c92fccad6650.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" -dest_files=["res://.godot/imported/特写通用遮罩.png-2ddfd83815d8ba406d36dfa56db4c3bf.ctex"] +source_file="res://asset/art/ui/inspect/inspect特写通用遮罩.png" +dest_files=["res://.godot/imported/inspect特写通用遮罩.png-d71efbdf6a70d5f61869c92fccad6650.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/inspect背景遮罩.png b/asset/art/ui/inspect/inspect背景遮罩.png similarity index 100% rename from asset/art/ui/prop_and_bag/inspect背景遮罩.png rename to asset/art/ui/inspect/inspect背景遮罩.png diff --git a/asset/art/ui/prop_and_bag/inspect背景遮罩.png.import b/asset/art/ui/inspect/inspect背景遮罩.png.import similarity index 68% rename from asset/art/ui/prop_and_bag/inspect背景遮罩.png.import rename to asset/art/ui/inspect/inspect背景遮罩.png.import index 5c02b5ba..a1596d2f 100644 --- a/asset/art/ui/prop_and_bag/inspect背景遮罩.png.import +++ b/asset/art/ui/inspect/inspect背景遮罩.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://f186lvt5y2ql" -path="res://.godot/imported/inspect背景遮罩.png-12d01888bf81d435dd86406a8439f755.ctex" +path="res://.godot/imported/inspect背景遮罩.png-6487c5cc89abd54d3577e6cfd1f5c07e.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" -dest_files=["res://.godot/imported/inspect背景遮罩.png-12d01888bf81d435dd86406a8439f755.ctex"] +source_file="res://asset/art/ui/inspect/inspect背景遮罩.png" +dest_files=["res://.godot/imported/inspect背景遮罩.png-6487c5cc89abd54d3577e6cfd1f5c07e.ctex"] [params] diff --git a/asset/art/ui/integrated_view/书签mask.png b/asset/art/ui/integrated_view/书签mask.png new file mode 100644 index 00000000..10097bd5 Binary files /dev/null and b/asset/art/ui/integrated_view/书签mask.png differ diff --git a/asset/art/ui/integrated_view/书签mask.png.import b/asset/art/ui/integrated_view/书签mask.png.import new file mode 100644 index 00000000..7458e38f --- /dev/null +++ b/asset/art/ui/integrated_view/书签mask.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://di3sb0mvertwu" +path="res://.godot/imported/书签mask.png-bc2c5c5e2ba8cb9a6ae77d50bef909c7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/integrated_view/书签mask.png" +dest_files=["res://.godot/imported/书签mask.png-bc2c5c5e2ba8cb9a6ae77d50bef909c7.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 diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-29.png b/asset/art/ui/note/线索笔记内容-29.png similarity index 100% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-29.png rename to asset/art/ui/note/线索笔记内容-29.png diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-29.png.import b/asset/art/ui/note/线索笔记内容-29.png.import similarity index 66% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-29.png.import rename to asset/art/ui/note/线索笔记内容-29.png.import index 98045971..afb325dd 100644 --- a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-29.png.import +++ b/asset/art/ui/note/线索笔记内容-29.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bv57eyqs03k4y" -path="res://.godot/imported/线索笔记内容-29.png-3126a7d0a4da9080aebb9dfade55bf16.ctex" +path="res://.godot/imported/线索笔记内容-29.png-95fd43b7ca9099c75bffffa603ae6aa5.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-29.png" -dest_files=["res://.godot/imported/线索笔记内容-29.png-3126a7d0a4da9080aebb9dfade55bf16.ctex"] +source_file="res://asset/art/ui/note/线索笔记内容-29.png" +dest_files=["res://.godot/imported/线索笔记内容-29.png-95fd43b7ca9099c75bffffa603ae6aa5.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-30.png b/asset/art/ui/note/线索笔记内容-30.png similarity index 100% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-30.png rename to asset/art/ui/note/线索笔记内容-30.png diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-30.png.import b/asset/art/ui/note/线索笔记内容-30.png.import similarity index 66% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-30.png.import rename to asset/art/ui/note/线索笔记内容-30.png.import index e60232ad..e491cb3d 100644 --- a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-30.png.import +++ b/asset/art/ui/note/线索笔记内容-30.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://blub5hsn6iqit" -path="res://.godot/imported/线索笔记内容-30.png-74e04710cf5e7e59f2b1dc2475b441a9.ctex" +path="res://.godot/imported/线索笔记内容-30.png-ef097285280ae7bdb089673a8192d47f.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-30.png" -dest_files=["res://.godot/imported/线索笔记内容-30.png-74e04710cf5e7e59f2b1dc2475b441a9.ctex"] +source_file="res://asset/art/ui/note/线索笔记内容-30.png" +dest_files=["res://.godot/imported/线索笔记内容-30.png-ef097285280ae7bdb089673a8192d47f.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-31.png b/asset/art/ui/note/线索笔记内容-31.png similarity index 100% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-31.png rename to asset/art/ui/note/线索笔记内容-31.png diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-31.png.import b/asset/art/ui/note/线索笔记内容-31.png.import similarity index 66% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-31.png.import rename to asset/art/ui/note/线索笔记内容-31.png.import index bf57476c..debf8b1d 100644 --- a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-31.png.import +++ b/asset/art/ui/note/线索笔记内容-31.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://beltvxcu7pumi" -path="res://.godot/imported/线索笔记内容-31.png-c1b46d1bdf1c06dec7883c73002e812a.ctex" +path="res://.godot/imported/线索笔记内容-31.png-38ff27035789ae736b9130cb69e87171.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-31.png" -dest_files=["res://.godot/imported/线索笔记内容-31.png-c1b46d1bdf1c06dec7883c73002e812a.ctex"] +source_file="res://asset/art/ui/note/线索笔记内容-31.png" +dest_files=["res://.godot/imported/线索笔记内容-31.png-38ff27035789ae736b9130cb69e87171.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-32.png b/asset/art/ui/note/线索笔记内容-32.png similarity index 100% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-32.png rename to asset/art/ui/note/线索笔记内容-32.png diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-32.png.import b/asset/art/ui/note/线索笔记内容-32.png.import similarity index 66% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-32.png.import rename to asset/art/ui/note/线索笔记内容-32.png.import index 1bc2d688..c43b479f 100644 --- a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-32.png.import +++ b/asset/art/ui/note/线索笔记内容-32.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://db1k1t1lc34ut" -path="res://.godot/imported/线索笔记内容-32.png-90bd9eaa335210cd65e0ad4ab01a6d77.ctex" +path="res://.godot/imported/线索笔记内容-32.png-374901b769b8a2ab0cdbb847132d8b84.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-32.png" -dest_files=["res://.godot/imported/线索笔记内容-32.png-90bd9eaa335210cd65e0ad4ab01a6d77.ctex"] +source_file="res://asset/art/ui/note/线索笔记内容-32.png" +dest_files=["res://.godot/imported/线索笔记内容-32.png-374901b769b8a2ab0cdbb847132d8b84.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-34.png b/asset/art/ui/note/线索笔记内容-34.png similarity index 100% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-34.png rename to asset/art/ui/note/线索笔记内容-34.png diff --git a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-34.png.import b/asset/art/ui/note/线索笔记内容-34.png.import similarity index 66% rename from asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-34.png.import rename to asset/art/ui/note/线索笔记内容-34.png.import index 61095b28..bbea4d2e 100644 --- a/asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-34.png.import +++ b/asset/art/ui/note/线索笔记内容-34.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://ldh387gluo1t" -path="res://.godot/imported/线索笔记内容-34.png-04a726a3a1a0051f7a21104308cf2fcd.ctex" +path="res://.godot/imported/线索笔记内容-34.png-20678480317ddc66546336dad2cc741c.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/线索笔记内容/线索笔记内容-34.png" -dest_files=["res://.godot/imported/线索笔记内容-34.png-04a726a3a1a0051f7a21104308cf2fcd.ctex"] +source_file="res://asset/art/ui/note/线索笔记内容-34.png" +dest_files=["res://.godot/imported/线索笔记内容-34.png-20678480317ddc66546336dad2cc741c.ctex"] [params] diff --git a/asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png b/asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png deleted file mode 100644 index 39efa541..00000000 Binary files a/asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png and /dev/null differ diff --git a/asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png.import b/asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png.import deleted file mode 100644 index f011a6b3..00000000 --- a/asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dwgxa5j6602vv" -path="res://.godot/imported/inspect文本衬底蒙版.png-1da8974099d619e860c7c3eea08bc047.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png" -dest_files=["res://.godot/imported/inspect文本衬底蒙版.png-1da8974099d619e860c7c3eea08bc047.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 diff --git a/asset/art/ui/prop_and_bag/小蝶笔记.png b/asset/art/ui/prop_and_bag/小蝶笔记.png deleted file mode 100755 index 8c233b75..00000000 Binary files a/asset/art/ui/prop_and_bag/小蝶笔记.png and /dev/null differ diff --git a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-26.png.import b/asset/art/ui/prop_and_bag/重要物品/UI显示相关-26.png.import deleted file mode 100644 index 528b3137..00000000 --- a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-26.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://d11ljcou6mnhj" -path="res://.godot/imported/UI显示相关-26.png-bcc92c79f06762a2003be721672da3ea.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://asset/art/ui/prop_and_bag/重要物品/UI显示相关-26.png" -dest_files=["res://.godot/imported/UI显示相关-26.png-bcc92c79f06762a2003be721672da3ea.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 diff --git a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-27.png.import b/asset/art/ui/prop_and_bag/重要物品/UI显示相关-27.png.import deleted file mode 100644 index 364a5f3d..00000000 --- a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-27.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dqepyp4248e38" -path="res://.godot/imported/UI显示相关-27.png-d3721a15a619ca69729ac58200e4c4af.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://asset/art/ui/prop_and_bag/重要物品/UI显示相关-27.png" -dest_files=["res://.godot/imported/UI显示相关-27.png-d3721a15a619ca69729ac58200e4c4af.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 diff --git a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-29.png.import b/asset/art/ui/prop_and_bag/重要物品/UI显示相关-29.png.import deleted file mode 100644 index ba5544d8..00000000 --- a/asset/art/ui/prop_and_bag/重要物品/UI显示相关-29.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://0qrjkar4mwb2" -path="res://.godot/imported/UI显示相关-29.png-32ab066335997ec9fc38a4ae99d5c617.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://asset/art/ui/prop_and_bag/重要物品/UI显示相关-29.png" -dest_files=["res://.godot/imported/UI显示相关-29.png-32ab066335997ec9fc38a4ae99d5c617.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 diff --git a/asset/art/ui/style_box/ui_gallery_item.png b/asset/art/ui/style_box/ui_memory_item.png similarity index 100% rename from asset/art/ui/style_box/ui_gallery_item.png rename to asset/art/ui/style_box/ui_memory_item.png diff --git a/asset/art/ui/style_box/ui_gallery_item.png.import b/asset/art/ui/style_box/ui_memory_item.png.import similarity index 69% rename from asset/art/ui/style_box/ui_gallery_item.png.import rename to asset/art/ui/style_box/ui_memory_item.png.import index f4661516..c4a797d4 100644 --- a/asset/art/ui/style_box/ui_gallery_item.png.import +++ b/asset/art/ui/style_box/ui_memory_item.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bcwffsdtv8vq8" -path="res://.godot/imported/ui_gallery_item.png-45c2c6ede02b01fad4850965d9c07c65.ctex" +path="res://.godot/imported/ui_memory_item.png-10bd2acfa3f979a6013060432df1579c.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/style_box/ui_gallery_item.png" -dest_files=["res://.godot/imported/ui_gallery_item.png-45c2c6ede02b01fad4850965d9c07c65.ctex"] +source_file="res://asset/art/ui/style_box/ui_memory_item.png" +dest_files=["res://.godot/imported/ui_memory_item.png-10bd2acfa3f979a6013060432df1579c.ctex"] [params] diff --git a/asset/art/ui/ux_panel/书签 1.png b/asset/art/ui/ux_panel/书签 1.png new file mode 100644 index 00000000..06683fab Binary files /dev/null and b/asset/art/ui/ux_panel/书签 1.png differ diff --git a/asset/art/ui/ux_panel/书签 1.png.import b/asset/art/ui/ux_panel/书签 1.png.import new file mode 100644 index 00000000..89fac59f --- /dev/null +++ b/asset/art/ui/ux_panel/书签 1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bypfs3nrknkuo" +path="res://.godot/imported/书签 1.png-4fd69b4dc8997e761cfaad1870d8f56a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/书签 1.png" +dest_files=["res://.godot/imported/书签 1.png-4fd69b4dc8997e761cfaad1870d8f56a.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 diff --git a/asset/art/ui/ux_panel/书签 2.png b/asset/art/ui/ux_panel/书签 2.png new file mode 100644 index 00000000..0f66e21f Binary files /dev/null and b/asset/art/ui/ux_panel/书签 2.png differ diff --git a/asset/art/ui/ux_panel/书签 2.png.import b/asset/art/ui/ux_panel/书签 2.png.import new file mode 100644 index 00000000..b7d8bdf2 --- /dev/null +++ b/asset/art/ui/ux_panel/书签 2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdt7v108hlkqw" +path="res://.godot/imported/书签 2.png-96a2eed597c4c905f0ca625e6944438b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/书签 2.png" +dest_files=["res://.godot/imported/书签 2.png-96a2eed597c4c905f0ca625e6944438b.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 diff --git a/asset/art/ui/ux_panel/书签 3.png b/asset/art/ui/ux_panel/书签 3.png new file mode 100644 index 00000000..e41bacbb Binary files /dev/null and b/asset/art/ui/ux_panel/书签 3.png differ diff --git a/asset/art/ui/ux_panel/书签 3.png.import b/asset/art/ui/ux_panel/书签 3.png.import new file mode 100644 index 00000000..c9b9a0f2 --- /dev/null +++ b/asset/art/ui/ux_panel/书签 3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://demhcu581v80o" +path="res://.godot/imported/书签 3.png-37dec8f827f7c72b1b95c59d261e47a0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/书签 3.png" +dest_files=["res://.godot/imported/书签 3.png-37dec8f827f7c72b1b95c59d261e47a0.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 diff --git a/asset/art/ui/ux_panel/书签.png b/asset/art/ui/ux_panel/书签.png new file mode 100644 index 00000000..35c09c06 Binary files /dev/null and b/asset/art/ui/ux_panel/书签.png differ diff --git a/asset/art/ui/ux_panel/书签.png.import b/asset/art/ui/ux_panel/书签.png.import new file mode 100644 index 00000000..13406857 --- /dev/null +++ b/asset/art/ui/ux_panel/书签.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7b13hgknyh1a" +path="res://.godot/imported/书签.png-24c724214900c1a8ab023cc7fdcc35e9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/书签.png" +dest_files=["res://.godot/imported/书签.png-24c724214900c1a8ab023cc7fdcc35e9.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 diff --git a/asset/art/ui/ux_panel/书签mask.png b/asset/art/ui/ux_panel/书签mask.png new file mode 100644 index 00000000..223fdccb Binary files /dev/null and b/asset/art/ui/ux_panel/书签mask.png differ diff --git a/asset/art/ui/ux_panel/书签mask.png.import b/asset/art/ui/ux_panel/书签mask.png.import new file mode 100644 index 00000000..094a6339 --- /dev/null +++ b/asset/art/ui/ux_panel/书签mask.png.import @@ -0,0 +1,16 @@ +[remap] + +importer="bitmap" +type="BitMap" +uid="uid://dmt14und7wyh6" +path="res://.godot/imported/书签mask.png-e67dcea64ffaed84aeb461ad3b017365.res" + +[deps] + +source_file="res://asset/art/ui/ux_panel/书签mask.png" +dest_files=["res://.godot/imported/书签mask.png-e67dcea64ffaed84aeb461ad3b017365.res"] + +[params] + +create_from=1 +threshold=0.5 diff --git a/asset/art/ui/ux_panel/信封.png b/asset/art/ui/ux_panel/信封.png new file mode 100644 index 00000000..d733e36f Binary files /dev/null and b/asset/art/ui/ux_panel/信封.png differ diff --git a/asset/art/ui/ux_panel/信封.png.import b/asset/art/ui/ux_panel/信封.png.import new file mode 100644 index 00000000..5b399680 --- /dev/null +++ b/asset/art/ui/ux_panel/信封.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://daq8qp6klyy11" +path="res://.godot/imported/信封.png-832ce9308bf98818cccbfd4d757ca169.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/信封.png" +dest_files=["res://.godot/imported/信封.png-832ce9308bf98818cccbfd4d757ca169.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 diff --git a/asset/art/ui/ux_panel/信纸.png b/asset/art/ui/ux_panel/信纸.png new file mode 100644 index 00000000..df24194b Binary files /dev/null and b/asset/art/ui/ux_panel/信纸.png differ diff --git a/asset/art/ui/ux_panel/信纸.png.import b/asset/art/ui/ux_panel/信纸.png.import new file mode 100644 index 00000000..668b0afc --- /dev/null +++ b/asset/art/ui/ux_panel/信纸.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbpqrtdkij8dn" +path="res://.godot/imported/信纸.png-1cf451e8e6e61dd33409a3321519bdbc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/信纸.png" +dest_files=["res://.godot/imported/信纸.png-1cf451e8e6e61dd33409a3321519bdbc.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 diff --git a/asset/art/ui/ux_panel/包.png b/asset/art/ui/ux_panel/包.png new file mode 100644 index 00000000..26355263 Binary files /dev/null and b/asset/art/ui/ux_panel/包.png differ diff --git a/asset/art/ui/ux_panel/包.png.import b/asset/art/ui/ux_panel/包.png.import new file mode 100644 index 00000000..6efd7e49 --- /dev/null +++ b/asset/art/ui/ux_panel/包.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2pev62he8rol" +path="res://.godot/imported/包.png-f3927530a6a60f817f07f321085a8688.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/包.png" +dest_files=["res://.godot/imported/包.png-f3927530a6a60f817f07f321085a8688.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 diff --git a/asset/art/ui/ux_panel/完整背景.png b/asset/art/ui/ux_panel/完整背景.png new file mode 100644 index 00000000..406be809 Binary files /dev/null and b/asset/art/ui/ux_panel/完整背景.png differ diff --git a/asset/art/ui/ux_panel/完整背景.png.import b/asset/art/ui/ux_panel/完整背景.png.import new file mode 100644 index 00000000..a8d84081 --- /dev/null +++ b/asset/art/ui/ux_panel/完整背景.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bi7l47cit2xs" +path="res://.godot/imported/完整背景.png-7c1679f362fdb252c978fa502ccb4112.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/完整背景.png" +dest_files=["res://.godot/imported/完整背景.png-7c1679f362fdb252c978fa502ccb4112.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 diff --git a/asset/art/ui/ux_panel/小蝶笔记.png b/asset/art/ui/ux_panel/小蝶笔记.png new file mode 100644 index 00000000..b1e56f9b Binary files /dev/null and b/asset/art/ui/ux_panel/小蝶笔记.png differ diff --git a/asset/art/ui/prop_and_bag/小蝶笔记.png.import b/asset/art/ui/ux_panel/小蝶笔记.png.import similarity index 69% rename from asset/art/ui/prop_and_bag/小蝶笔记.png.import rename to asset/art/ui/ux_panel/小蝶笔记.png.import index f7e5312b..37d12a12 100644 --- a/asset/art/ui/prop_and_bag/小蝶笔记.png.import +++ b/asset/art/ui/ux_panel/小蝶笔记.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dsj3l0baqg1g7" -path="res://.godot/imported/小蝶笔记.png-693accd9e1df896b5877648cbebf165b.ctex" +path="res://.godot/imported/小蝶笔记.png-436826d495a1aa0c78ac1cf26efeb454.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/ui/prop_and_bag/小蝶笔记.png" -dest_files=["res://.godot/imported/小蝶笔记.png-693accd9e1df896b5877648cbebf165b.ctex"] +source_file="res://asset/art/ui/ux_panel/小蝶笔记.png" +dest_files=["res://.godot/imported/小蝶笔记.png-436826d495a1aa0c78ac1cf26efeb454.ctex"] [params] diff --git a/asset/art/ui/ux_panel/手.png b/asset/art/ui/ux_panel/手.png new file mode 100644 index 00000000..b878a323 Binary files /dev/null and b/asset/art/ui/ux_panel/手.png differ diff --git a/asset/art/ui/ux_panel/手.png.import b/asset/art/ui/ux_panel/手.png.import new file mode 100644 index 00000000..39b2f414 --- /dev/null +++ b/asset/art/ui/ux_panel/手.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2bqxg280f1jm" +path="res://.godot/imported/手.png-4ad20a102db0d1f7a60b1370a600074b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/手.png" +dest_files=["res://.godot/imported/手.png-4ad20a102db0d1f7a60b1370a600074b.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 diff --git a/asset/art/ui/ux_panel/报纸.png b/asset/art/ui/ux_panel/报纸.png new file mode 100644 index 00000000..97f2722b Binary files /dev/null and b/asset/art/ui/ux_panel/报纸.png differ diff --git a/asset/art/ui/ux_panel/报纸.png.import b/asset/art/ui/ux_panel/报纸.png.import new file mode 100644 index 00000000..ca9c8673 --- /dev/null +++ b/asset/art/ui/ux_panel/报纸.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cubodis41ijdu" +path="res://.godot/imported/报纸.png-7b435ea6f4d5fbdac46b27ddf8c592d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/报纸.png" +dest_files=["res://.godot/imported/报纸.png-7b435ea6f4d5fbdac46b27ddf8c592d5.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 diff --git a/asset/art/ui/ux_panel/有投影的包.png b/asset/art/ui/ux_panel/有投影的包.png new file mode 100644 index 00000000..5b283996 Binary files /dev/null and b/asset/art/ui/ux_panel/有投影的包.png differ diff --git a/asset/art/ui/ux_panel/有投影的包.png.import b/asset/art/ui/ux_panel/有投影的包.png.import new file mode 100644 index 00000000..b7d2731e --- /dev/null +++ b/asset/art/ui/ux_panel/有投影的包.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7a032nvoh7nq" +path="res://.godot/imported/有投影的包.png-4bc3d94f8fdb837ca65e55b61f2157b5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/有投影的包.png" +dest_files=["res://.godot/imported/有投影的包.png-4bc3d94f8fdb837ca65e55b61f2157b5.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 diff --git a/asset/art/ui/ux_panel/眼镜盒.png b/asset/art/ui/ux_panel/眼镜盒.png new file mode 100644 index 00000000..ba8f1eb1 Binary files /dev/null and b/asset/art/ui/ux_panel/眼镜盒.png differ diff --git a/asset/art/ui/ux_panel/眼镜盒.png.import b/asset/art/ui/ux_panel/眼镜盒.png.import new file mode 100644 index 00000000..ab4a9ee0 --- /dev/null +++ b/asset/art/ui/ux_panel/眼镜盒.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dctpodedndcuk" +path="res://.godot/imported/眼镜盒.png-b803dde1ba91ac3c6a1d04ab0954cc45.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/眼镜盒.png" +dest_files=["res://.godot/imported/眼镜盒.png-b803dde1ba91ac3c6a1d04ab0954cc45.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 diff --git a/asset/art/ui/ux_panel/笔.png b/asset/art/ui/ux_panel/笔.png new file mode 100644 index 00000000..83118731 Binary files /dev/null and b/asset/art/ui/ux_panel/笔.png differ diff --git a/asset/art/ui/ux_panel/笔.png.import b/asset/art/ui/ux_panel/笔.png.import new file mode 100644 index 00000000..32acfeef --- /dev/null +++ b/asset/art/ui/ux_panel/笔.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tjnihdc4hrqq" +path="res://.godot/imported/笔.png-a6894a78f109d03e0637872786a1e725.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/笔.png" +dest_files=["res://.godot/imported/笔.png-a6894a78f109d03e0637872786a1e725.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 diff --git a/asset/art/ui/ux_panel/笔记本.png b/asset/art/ui/ux_panel/笔记本.png new file mode 100644 index 00000000..916f40db Binary files /dev/null and b/asset/art/ui/ux_panel/笔记本.png differ diff --git a/asset/art/ui/ux_panel/笔记本.png.import b/asset/art/ui/ux_panel/笔记本.png.import new file mode 100644 index 00000000..c22e8a26 --- /dev/null +++ b/asset/art/ui/ux_panel/笔记本.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1gilnschwbdg" +path="res://.godot/imported/笔记本.png-28a9f40c8ba1ecc613ac22de1e030803.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/笔记本.png" +dest_files=["res://.godot/imported/笔记本.png-28a9f40c8ba1ecc613ac22de1e030803.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 diff --git a/asset/art/ui/ux_panel/背景.png b/asset/art/ui/ux_panel/背景.png new file mode 100644 index 00000000..135eb99c Binary files /dev/null and b/asset/art/ui/ux_panel/背景.png differ diff --git a/asset/art/ui/ux_panel/背景.png.import b/asset/art/ui/ux_panel/背景.png.import new file mode 100644 index 00000000..98cd5166 --- /dev/null +++ b/asset/art/ui/ux_panel/背景.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xtjqf3k3btej" +path="res://.godot/imported/背景.png-cfc1d1bedc8191efa1dffa37ad9eddba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/背景.png" +dest_files=["res://.godot/imported/背景.png-cfc1d1bedc8191efa1dffa37ad9eddba.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 diff --git a/asset/art/ui/ux_panel/背景眼镜.png b/asset/art/ui/ux_panel/背景眼镜.png new file mode 100644 index 00000000..fd5701bc Binary files /dev/null and b/asset/art/ui/ux_panel/背景眼镜.png differ diff --git a/asset/art/ui/ux_panel/背景眼镜.png.import b/asset/art/ui/ux_panel/背景眼镜.png.import new file mode 100644 index 00000000..8aa35045 --- /dev/null +++ b/asset/art/ui/ux_panel/背景眼镜.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5t6ttoeq6hu8" +path="res://.godot/imported/背景眼镜.png-95568eca6fc2a7c19721617573138277.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/背景眼镜.png" +dest_files=["res://.godot/imported/背景眼镜.png-95568eca6fc2a7c19721617573138277.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 diff --git a/asset/art/ui/ux_panel/船票.png b/asset/art/ui/ux_panel/船票.png new file mode 100644 index 00000000..0b79e05f Binary files /dev/null and b/asset/art/ui/ux_panel/船票.png differ diff --git a/asset/art/ui/ux_panel/船票.png.import b/asset/art/ui/ux_panel/船票.png.import new file mode 100644 index 00000000..52304f35 --- /dev/null +++ b/asset/art/ui/ux_panel/船票.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5lhknod5posb" +path="res://.godot/imported/船票.png-cda7ea76be6f8cbdeb8314a12d85caeb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/ui/ux_panel/船票.png" +dest_files=["res://.godot/imported/船票.png-cda7ea76be6f8cbdeb8314a12d85caeb.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 diff --git a/asset/audio/sfx/交互/角色/sfx_哼歌.ogg b/asset/audio/sfx/交互/角色/sfx_哼歌.ogg new file mode 100644 index 00000000..3cbe1d59 Binary files /dev/null and b/asset/audio/sfx/交互/角色/sfx_哼歌.ogg differ diff --git a/asset/audio/sfx/交互/角色/sfx_哼歌.ogg.import b/asset/audio/sfx/交互/角色/sfx_哼歌.ogg.import new file mode 100644 index 00000000..1f1b801c --- /dev/null +++ b/asset/audio/sfx/交互/角色/sfx_哼歌.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bhaws2ungqaf5" +path="res://.godot/imported/sfx_哼歌.ogg-96ef73fb9fbe448c092025e1c0d413ed.oggvorbisstr" + +[deps] + +source_file="res://asset/audio/sfx/交互/角色/sfx_哼歌.ogg" +dest_files=["res://.godot/imported/sfx_哼歌.ogg-96ef73fb9fbe448c092025e1c0d413ed.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav b/asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav new file mode 100644 index 00000000..c9de47ea Binary files /dev/null and b/asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav differ diff --git a/asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav.import b/asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav.import new file mode 100644 index 00000000..18f7234c --- /dev/null +++ b/asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b3b4a6nm8557i" +path="res://.godot/imported/衔蝶_主菜单music剪辑人声版.wav-fde4ebb8341918b52f6eead5d36926b1.sample" + +[deps] + +source_file="res://asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav" +dest_files=["res://.godot/imported/衔蝶_主菜单music剪辑人声版.wav-fde4ebb8341918b52f6eead5d36926b1.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/dialogue/inspect_content.csv b/asset/dialogue/inspect_content.csv index c2827a5b..8c413975 100644 --- a/asset/dialogue/inspect_content.csv +++ b/asset/dialogue/inspect_content.csv @@ -25,5 +25,5 @@ c02_保卫科花名册3,二零一二 张文开,,, c02_保卫科花名册4,二零一三 方启钊 方小蝉,,, c02_保卫科花名册5,三零一二(看不清),,, c02_保卫科花名册6,三零一三(看不清),,, -c02_保卫科花名册7,墙里有脏东西!,,, -c02_保卫科花名册8,把我的鞋子拿给老鼠,引开那个疯男人!,,, +c02_保卫科花名册7,把我的鞋子拿给老鼠,老鼠会引开那个疯男人,,, +c02_保卫科花名册8,不要相信墙里的东西!,,, diff --git a/asset/dialogue/inspect_content.dialogue b/asset/dialogue/inspect_content.dialogue index 1776179b..ae347911 100644 --- a/asset/dialogue/inspect_content.dialogue +++ b/asset/dialogue/inspect_content.dialogue @@ -39,7 +39,8 @@ 三零一二(看不清) [ID:c02_保卫科花名册5] 三零一三(看不清) [ID:c02_保卫科花名册6] -墙里有脏东西! [ID:c02_保卫科花名册7] -把我的鞋子拿给老鼠,引开那个疯男人! [ID:c02_保卫科花名册8] +把我的鞋子拿给老鼠,老鼠会引开那个疯男人 [ID:c02_保卫科花名册7] +不要相信墙里的东西! [ID:c02_保卫科花名册8] => END + diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 1f1ee4b9..8f17ab91 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -12,9 +12,15 @@ setting_画册,画册(G),,,,, notes_干掉的血迹,干掉的血迹,,,,, c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,, prop_奇怪的肉_说明,,,,,, +bag_tab_日志,笔记,,,,, index_新游戏,新游戏,,,,,New Game index_继续游戏,继续游戏,,,,,Resume index_退出游戏,退出游戏,,,,,Exit +ux_panel_继续,继续,,,,, +ux_panel_笔记,笔记,,,,, +ux_panel_设置,设置,,,,, +ux_panel_返回主菜单,返回主菜单,,,,, +ux_panel_退出,退出,,,,, setting_总音量,总音量,,,,,Main Volume setting_音效音量,音效音量,,,,,SFX Volume setting_对话音量,对话音量,,,,,Dialogue Volume @@ -27,7 +33,8 @@ setting_退出,保存并退出,,,,,Save & Exit setting_日志,笔记(B),,,,,Open the Log setting_记忆,记忆(G),,,,, ui_秒,秒,,,,,S -bag_tab_日志,笔记,,,,, +bag_tab_笔记,线索,,,,, +bag_tab_物品,物件,,,,, bag_tab_记忆,记忆,,,,, ui_saved_all,已保存所有数据,,,,,All the data have been saved ui_new_archive,已创建新存档,,,,,A new archive has been created diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index fac5663a..7c58e0bd 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -4,6 +4,12 @@ 继续游戏[ID:index_继续游戏] 退出游戏[ID:index_退出游戏] +继续 [ID:ux_panel_继续] +笔记 [ID:ux_panel_笔记] +设置 [ID:ux_panel_设置] +返回主菜单 [ID:ux_panel_返回主菜单] +退出 [ID:ux_panel_退出] + 总音量[ID:setting_总音量] 音效音量[ID:setting_音效音量] 对话音量[ID:setting_对话音量] @@ -17,7 +23,9 @@ 记忆(G)[ID:setting_记忆] 秒 [ID:ui_秒] -笔记[ID:bag_tab_日志] + +线索[ID:bag_tab_笔记] +物件[ID:bag_tab_物品] 记忆[ID:bag_tab_记忆] 已保存所有数据 [ID:ui_saved_all] @@ -221,7 +229,7 @@ 没时间浪费了!想想办法救出小蝉... [ID:c02_点火前阻止右移] => END -~ Gallery +~ Memory 偷听对话[ID:g_偷听对话] 疯子看井[ID:g_疯子看井] => END diff --git a/config/animation/entity_sprite_frames.tres b/config/animation/entity_sprite_frames.tres index 1478fdb1..72b1f446 100644 --- a/config/animation/entity_sprite_frames.tres +++ b/config/animation/entity_sprite_frames.tres @@ -1433,7 +1433,7 @@ animations = [{ "duration": 1.0, "texture": ExtResource("24_ri043") }], -"loop": true, +"loop": false, "name": &"c00_吕萍_记笔记_right", "speed": 8.0 }, { diff --git a/config/default_theme.tres b/config/default_theme.tres index ffca224a..3933f90f 100644 --- a/config/default_theme.tres +++ b/config/default_theme.tres @@ -130,12 +130,7 @@ Button/styles/pressed = SubResource("StyleBoxFlat_d5rks") OptionButton/font_sizes/font_size = 10 PanelContainer/styles/panel = SubResource("StyleBoxTexture_5sc16") PopupMenu/font_sizes/font_size = 16 -bag_button/base_type = &"Button" -bag_button/styles/diabled = null -bag_button/styles/focus = null -bag_button/styles/hover = null -bag_button/styles/normal = null -bag_button/styles/pressed = null +bag_tab_btn/base_type = &"TextureButton" empty_panel_container/base_type = &"PanelContainer" empty_panel_container/styles/panel = SubResource("StyleBoxEmpty_ujvfm") main_menu_button/base_type = &"Button" diff --git a/config/event/game_event.gd b/config/event/game_event.gd deleted file mode 100644 index 653bf280..00000000 --- a/config/event/game_event.gd +++ /dev/null @@ -1,20 +0,0 @@ -class_name GameEvent extends Resource - -# * 事件&剧情管理器: player / release / debug 事件,触发者:玩家/系统(系统触发意味着进入 CG) -# * 事件定义:「通变之谓事」 -# * 事件发送机制:玩家进行特定操作后,发送事件进度(开始(注意到),尝试&进度,完成:成功or失败) -# * 发送内容 -# * 时间点:玩家现实时间(系统时间),游戏时长(时间戳),章节剧情时间点(事件编号) -# * 地点:场景编号,位置坐标 -# * 实体:道具/NPC/部署点 -# * 激发器类型:地图区域(手动部署) / 玩家特定操作(自动发送)/ 实体信号(监听玩家特定操作/状态变化) -# * 事件订阅机制:订阅开始/进度/成功/失败,触发特定响应 -# * 消费器能力:执行 CG(锁定/无锁定,剧本/特效) / 执行实体变化脚本(赠送/消耗/状态变化) -# * 保存与加载 -@export var packed_time: PackedTime -@export var ground: String -@export var ground_position: Vector2 -@export var entity: String -@export var entity_action: String -@export var need_to_save := false -@export var extra_data = {} diff --git a/config/event/game_event.gd.uid b/config/event/game_event.gd.uid deleted file mode 100644 index 59f3d4f7..00000000 --- a/config/event/game_event.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cupmim4vss864 diff --git a/config/event/game_event_matcher.gd b/config/event/game_event_matcher.gd deleted file mode 100644 index fa59f506..00000000 --- a/config/event/game_event_matcher.gd +++ /dev/null @@ -1,40 +0,0 @@ -class_name GameEventMatcher extends Resource - -# match event under certain conditions - -# regex matcher, "[chapter]_[section]", * means any -# e.g. 3_* means any section in chapter 3 -# empty means any ground -@export var grounds: Array[String] -# can't be empty -@export var entity: String -# empty means any action -@export var entity_actions: Array[String] - - -# check if the event matches the conditions -func match(event: GameEvent) -> bool: - if !entity or entity != event.entity: - return false - if entity_actions.size() > 0 and !entity_actions.has(event.entity_action): - return false - if grounds.size() > 0: - var chapter := str(event.packed_time.chapter) - var section := str(event.packed_time.section) - var matched := false - for ground_matcher in grounds: - # regex match - var parts = ground_matcher.split("_") - if parts.size() != 2: - continue - var chapter_matcher = parts[0].strip_edges() - var section_matcher = parts[1].strip_edges() - if ( - (chapter_matcher == "*" or chapter_matcher == chapter) - and (section_matcher == "*" or section_matcher == section) - ): - matched = true - break - if !matched: - return false - return true diff --git a/config/gallery_item_theme.tres b/config/gallery_item_theme.tres deleted file mode 100644 index 94702973..00000000 --- a/config/gallery_item_theme.tres +++ /dev/null @@ -1,58 +0,0 @@ -[gd_resource type="Theme" load_steps=14 format=3 uid="uid://ro8r1wa1bvua"] - -[ext_resource type="Texture2D" uid="uid://bcwffsdtv8vq8" path="res://asset/art/ui/style_box/ui_gallery_item.png" id="1_yv50c"] -[ext_resource type="FontFile" uid="uid://dr8bp6p7byb37" path="res://asset/font/字体/方正楷体简体.TTF" id="2_i3fde"] - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_f06v1"] -texture = ExtResource("1_yv50c") -modulate_color = Color(0.892756, 0.892756, 0.892756, 1) - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_r77y1"] -texture = ExtResource("1_yv50c") -modulate_color = Color(0.783523, 0.783523, 0.783523, 1) - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_508w1"] -texture = ExtResource("1_yv50c") -modulate_color = Color(0, 0, 0, 1) - -[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_adjiu"] -load_path = "res://.godot/imported/ui_gallery_item.png-45c2c6ede02b01fad4850965d9c07c65.ctex" - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_vsh8q"] -texture = SubResource("CompressedTexture2D_adjiu") - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_aypwd"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_yv50c"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_i3fde"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_drjmf"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8mlms"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ai6wi"] - -[resource] -default_font = ExtResource("2_i3fde") -default_font_size = 9 -Button/colors/font_color = Color(0, 0, 0, 1) -Button/styles/focus = SubResource("StyleBoxTexture_f06v1") -Button/styles/hover = SubResource("StyleBoxTexture_r77y1") -Button/styles/normal = SubResource("StyleBoxTexture_508w1") -Button/styles/pressed = SubResource("StyleBoxTexture_vsh8q") -Label/colors/font_color = Color(0, 0, 0, 1) -Label/constants/line_spacing = 1 -Label/font_sizes/font_size = 8 -PanelContainer/styles/panel = SubResource("StyleBoxEmpty_aypwd") -tab_btn/base_type = &"Button" -tab_btn/colors/font_color = Color(0, 0, 0, 1) -tab_btn/colors/font_disabled_color = Color(0, 0, 0, 1) -tab_btn/colors/font_focus_color = Color(0, 0, 0, 1) -tab_btn/colors/font_hover_color = Color(0, 0, 0, 1) -tab_btn/colors/font_pressed_color = Color(0, 0, 0, 1) -tab_btn/styles/disabled = SubResource("StyleBoxEmpty_yv50c") -tab_btn/styles/focus = SubResource("StyleBoxEmpty_i3fde") -tab_btn/styles/hover = SubResource("StyleBoxEmpty_drjmf") -tab_btn/styles/normal = SubResource("StyleBoxEmpty_8mlms") -tab_btn/styles/pressed = SubResource("StyleBoxEmpty_ai6wi") diff --git a/config/memory_item_theme.tres b/config/memory_item_theme.tres new file mode 100644 index 00000000..17d73bfa --- /dev/null +++ b/config/memory_item_theme.tres @@ -0,0 +1,34 @@ +[gd_resource type="Theme" load_steps=8 format=3 uid="uid://ro8r1wa1bvua"] + +[ext_resource type="Texture2D" uid="uid://bcwffsdtv8vq8" path="res://asset/art/ui/style_box/ui_memory_item.png" id="1_chall"] +[ext_resource type="FontFile" uid="uid://dr8bp6p7byb37" path="res://asset/font/字体/方正楷体简体.TTF" id="2_kwgh2"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_f06v1"] +texture = ExtResource("1_chall") +modulate_color = Color(0.892756, 0.892756, 0.892756, 1) + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_r77y1"] +texture = ExtResource("1_chall") +modulate_color = Color(0.783523, 0.783523, 0.783523, 1) + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_508w1"] +texture = ExtResource("1_chall") +modulate_color = Color(0, 0, 0, 1) + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_vsh8q"] +texture = ExtResource("1_chall") + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_aypwd"] + +[resource] +default_font = ExtResource("2_kwgh2") +default_font_size = 9 +Button/colors/font_color = Color(0, 0, 0, 1) +Button/styles/focus = SubResource("StyleBoxTexture_f06v1") +Button/styles/hover = SubResource("StyleBoxTexture_r77y1") +Button/styles/normal = SubResource("StyleBoxTexture_508w1") +Button/styles/pressed = SubResource("StyleBoxTexture_vsh8q") +Label/colors/font_color = Color(0, 0, 0, 1) +Label/constants/line_spacing = 1 +Label/font_sizes/font_size = 8 +PanelContainer/styles/panel = SubResource("StyleBoxEmpty_aypwd") diff --git a/manager/archive_manager/archive_manager.gd b/manager/archive_manager/archive_manager.gd index 8076d04b..f5e9953f 100644 --- a/manager/archive_manager/archive_manager.gd +++ b/manager/archive_manager/archive_manager.gd @@ -14,7 +14,7 @@ static var user_root_dir := "user://data/" # must end with "/" static var archive_dir := "user://data/archives/" static var archive_prefix := "save" -const CURRENT_VERSION = 2 +const CURRENT_VERSION = 3 var archives := {} var autosave_timer := Timer.new() diff --git a/manager/archive_manager/assembled_archive.gd b/manager/archive_manager/assembled_archive.gd index 750afb12..509b4336 100644 --- a/manager/archive_manager/assembled_archive.gd +++ b/manager/archive_manager/assembled_archive.gd @@ -3,8 +3,8 @@ class_name AssembledArchive extends Resource @export var version: int #存档版本 @export var archive_id := 0 # TODO: 注意设置游戏起点 -@export var entrance_portal := "left" -@export var current_scene := "c01_s05": +@export var entrance_portal := &"left" +@export var current_scene := &"c01_s05": set(val): current_scene = val if val and val.length() != 7: @@ -32,11 +32,13 @@ class_name AssembledArchive extends Resource @export var created_time := "2024-12-24 00:00:00" # 全局参数 -@export var global_data_dict := {} +@export var global_data_dict := {} as Dictionary[StringName, Variant] # 不同场景的地面物品状态存档 -@export var ground_archives = {} +@export var ground_archives := {} as Dictionary[StringName, GroundArchive] # # true 为匿名,false 非匿名 -# @export var npc_anonymous_states = {} +@export var npc_anonymous_states := {} as Dictionary[StringName, bool] +# event 发生状态 +@export var event_stage := {} as Dictionary[StringName, int] # 玩家跑步锁定状态,默认为 true @export var player_running_locked := true # prop hud 显示道具 diff --git a/manager/audio_manager/audio_manager.tscn b/manager/audio_manager/audio_manager.tscn index 5d1d7b12..af8265a0 100644 --- a/manager/audio_manager/audio_manager.tscn +++ b/manager/audio_manager/audio_manager.tscn @@ -3,4 +3,5 @@ [ext_resource type="Script" uid="uid://dwae8qisko2qp" path="res://manager/audio_manager/audio_manager.gd" id="1_8y63p"] [node name="AudioManager" type="Node"] +process_mode = 3 script = ExtResource("1_8y63p") diff --git a/manager/config_manager/global_config.gd b/manager/config_manager/global_config.gd index 8c48d1b4..85b0bb81 100644 --- a/manager/config_manager/global_config.gd +++ b/manager/config_manager/global_config.gd @@ -9,13 +9,11 @@ const RES_FILE_FORMAT = ".tres" ## layers # 设置 const CANVAS_LAYER_SETTINGS = 30 -# bag -const CANVAS_LAYER_BAG = 25 +# note +const CANVAS_LAYER_NOTE = 25 # dialog const CANVAS_LAYER_DIALOG = 24 -# gallery -const CANVAS_LAYER_GALLERY_CARD = 23 -const CANVAS_LAYER_GALLERY = 22 +const CANVAS_LAYER_UX_PANEL = 22 # main 场景的 UI 层(prop hud、上下mask、notification) const CANVAS_LAYER_UI = 21 # 道具 inspector(prop/local) diff --git a/manager/event_manager/event2d.gd b/manager/event_manager/event2d.gd new file mode 100644 index 00000000..199b9bbb --- /dev/null +++ b/manager/event_manager/event2d.gd @@ -0,0 +1,41 @@ +extends Node2D +class_name Event2D + +# 前置依赖事件,为空时意味着无前置事件 +@export var pre_event: String +# 当前事件 +@export var event: String + +var prev_stage := 0 +var stage := 0 + + +func _ready() -> void: + stage = EventManager.get_stage(event) + if pre_event: + prev_stage = EventManager.get_stage(pre_event) + SceneManager.ground_ready.connect(_on_ground_ready) + EventManager.stage_updated.connect(_on_global_stage_updated) + + +func _on_global_stage_updated(e: StringName, s: int): + if e == pre_event: + prev_stage = s + print("[Event2D] Pre-event stage updated: %s, stage: %s" % [pre_event, prev_stage]) + _on_pre_stage_updated() + elif e == event: + stage = s + print("[Event2D] Event stage updated: %s, stage: %s" % [event, stage]) + _on_stage_updated() + + +func _on_ground_ready(ground: Ground2D): + pass + + +func _on_pre_stage_updated(): + pass + + +func _on_stage_updated(): + pass diff --git a/config/event/game_event_matcher.gd.uid b/manager/event_manager/event2d.gd.uid similarity index 100% rename from config/event/game_event_matcher.gd.uid rename to manager/event_manager/event2d.gd.uid diff --git a/manager/event_manager/event_manager.gd b/manager/event_manager/event_manager.gd index 5315d13b..25beb21c 100644 --- a/manager/event_manager/event_manager.gd +++ b/manager/event_manager/event_manager.gd @@ -1,45 +1,45 @@ extends Node -# # 事件注册表 -# # { entity: [MatcherConsumer] } -# var _event_registry: Dictionary = {} +signal stage_updated(event_name: StringName, stage: int) -# class MatcherConsumer: -# extends RefCounted -# var matcher: GameEventMatcher -# var consumer: Callable - -# func _init(m: GameEventMatcher, c: Callable) -> void: -# self.matcher = m -# self.consumer = c +func get_stage(event_name: StringName) -> int: + if not ArchiveManager.archive or ArchiveManager.archive.event_stage == null: + printerr("[EventManager] Archive or event_stage is null.") + return 0 + var val = ArchiveManager.archive.event_stage.get(event_name, 0) + return val -# # 注册事件 -# func register_event_matcher(event_matcher: GameEventMatcher, consumer: Callable) -> void: -# if !event_matcher.entity: -# return -# var matcher_consumer = MatcherConsumer.new(event_matcher, consumer) -# if event_matcher.entity not in _event_registry: -# _event_registry[event_matcher.entity] = [] -# _event_registry[event_matcher.entity].append(matcher_consumer) +# default 为 0,首次更新为 1 +func set_stage(event_name: StringName, stage := 1) -> void: + if not ArchiveManager.archive or ArchiveManager.archive.event_stage == null: + printerr("[EventManager] Archive or event_stage is null.") + return + ArchiveManager.archive.event_stage[event_name] = stage + # print before emit + print("[EventManager] Stage updated: %s, stage: %s" % [event_name, stage]) + stage_updated.emit(event_name, stage) + # 如果是 handnote_stage,玩家进行记笔记动作 + if event_name == "handnote_stage" and SceneManager.get_player().character.begins_with("吕萍"): + SceneManager.freeze_player(1.0, 16, true) -# # 触发事件 -# func trigger_event(event: GameEvent) -> void: -# if event.entity not in _event_registry: -# return -# for matcher_consumer in _event_registry[event.entity]: -# # matcher_consumer = matcher_consumer as MatcherConsumer -# if matcher_consumer._matcher.match(event): -# matcher_consumer._consumer.call(event) -# if event.need_to_save: -# _save_event(event) +# 仅在设置的 stage > 当前 stage 时更新,相等或小于时不更新 +func set_stage_if_greater(event_name: StringName, stage := 1) -> void: + var current_stage = get_stage(event_name) + if stage > current_stage: + set_stage(event_name, stage) -# func _save_event(event) -> void: -# # 保存事件 -# pass +# stage 最大 99999 +func next_staged(event_name: StringName, stage_max := 99999) -> void: + var current_stage = get_stage(event_name) + if current_stage < stage_max: + set_stage(event_name, current_stage + 1) + + +##### 其他事件 ##### func prop_interacted(e_name, prop_key, interacted_times) -> void: diff --git a/manager/scene/scene_manager.gd b/manager/scene/scene_manager.gd index 4c63361f..9e6b69ff 100644 --- a/manager/scene/scene_manager.gd +++ b/manager/scene/scene_manager.gd @@ -7,7 +7,11 @@ enum VIBE { TOUCHING, } -@export var first_entered = true +# 从 ground loader 控制该信号 +signal ground_ready(ground: Ground2D) +signal ground_start(ground: Ground2D) + +var first_entered = true func _ready(): @@ -79,7 +83,7 @@ func get_lock() -> PlayerReenterLock: func lock_player(duration := 0.0, action := 3, auto_quit := false): get_lock().lock_all(duration) if action != 3: - # 先 freeze 再 action,否则会重置 action + # 先 freeze 再 action,否则会重置 action player_action(action, auto_quit) @@ -325,18 +329,34 @@ func enter_main_scene(): get_tree().paused = false -var prop_bag_scene = preload("res://scene/prop/prop_bag.tscn") +#### UX: settings; panel: note, bag, memory #### + +var panel_scene = preload("uid://ddlwnsccsmr8u") + + +func show_panel(): + get_tree().current_scene.add_child(panel_scene.instantiate()) + + +var note_scene = preload("uid://cy7wrrsm8e04f") + + +func show_note(): + get_tree().current_scene.add_child(note_scene.instantiate()) + + +var bag_scene = preload("uid://b6gbolo1o7wdf") func show_bag(): - get_tree().current_scene.add_child(prop_bag_scene.instantiate()) + get_tree().current_scene.add_child(bag_scene.instantiate()) -var gallery_scene = preload("uid://gfkdh8pqhixn") +var memory_scene = preload("uid://gfkdh8pqhixn") -func show_gallery(): - get_tree().current_scene.add_child(gallery_scene.instantiate()) +func show_memory(): + get_tree().current_scene.add_child(memory_scene.instantiate()) var settings_scene = preload("uid://beok2r6fgburn") @@ -346,12 +366,13 @@ func show_settings(): get_tree().current_scene.add_child(settings_scene.instantiate()) -#### 游戏场景树暂停计数器,设置、gallery、bag 等菜单都会导致 pause +#### 游戏场景树暂停计数器,设置、memory、bag 等菜单都会导致 pause var pause_counter := 0 func toggle_pause_counter(plus := true): pause_counter += 1 if plus else -1 + print("SceneTree pause_counter: ", pause_counter) get_tree().paused = pause_counter > 0 diff --git a/project.godot b/project.godot index 2104e06b..a0b716c7 100644 --- a/project.godot +++ b/project.godot @@ -199,9 +199,19 @@ space={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) ] } -gallery={ +memory={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"key_label":0,"unicode":103,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":77,"key_label":0,"unicode":109,"location":0,"echo":false,"script":null) +] +} +note={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":78,"key_label":0,"unicode":110,"location":0,"echo":false,"script":null) +] +} +panel={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":80,"key_label":0,"unicode":112,"location":0,"echo":false,"script":null) ] } diff --git a/scene/character/main_player.tscn b/scene/character/main_player.tscn index 028e8e14..aec9d652 100644 --- a/scene/character/main_player.tscn +++ b/scene/character/main_player.tscn @@ -52,6 +52,7 @@ energy = 1.2 range_item_cull_mask = 15 shadow_enabled = true texture = SubResource("GradientTexture2D_gk3xo") +texture_scale = 0.5 height = 10.0 [node name="CattyPointLight2D" type="PointLight2D" parent="."] diff --git a/scene/character/player_animation_config.gd b/scene/character/player_animation_config.gd index af111da9..598282d9 100644 --- a/scene/character/player_animation_config.gd +++ b/scene/character/player_animation_config.gd @@ -47,6 +47,8 @@ var ANIMATION_CONFIG = { 14: [&"c00_吕萍_起立", Vector2.ONE, Vector2(20, -94.0)], # 吕萍低头看小猫 15: [&"c00_吕萍_起立", Vector2.ONE, Vector2(20, -94.0)], + # c00_吕萍_记笔记_right + 16: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c00_吕萍_记笔记_right"], }, "吕萍爬行": { diff --git a/scene/entity/audio/bgm_control.gd b/scene/entity/audio/bgm_control.gd index da1e81ce..4f078c13 100644 --- a/scene/entity/audio/bgm_control.gd +++ b/scene/entity/audio/bgm_control.gd @@ -6,6 +6,7 @@ class_name BgmControl extends Node @export var db := 0.0 @export var stop_ease_duration := 3.0 + func _ready() -> void: if not bgm_title: printerr("[BgmControl] no title fond!") @@ -16,9 +17,10 @@ func _ready() -> void: printerr("bgm_stream is null, please check the BGM settings.") return AudioManager.loop_bgm_music(bgm_title, bgm_stream, db) - -func stop(): + + +func stop(duration := stop_ease_duration): if bgm_title: - AudioManager.stop_bgm_music(bgm_title, stop_ease_duration) + AudioManager.stop_bgm_music(bgm_title, duration) else: printerr("[BgmControl] stop err, no title fond!") diff --git a/scene/entity/closeup.tscn b/scene/entity/closeup.tscn index 83c3df32..062565df 100644 --- a/scene/entity/closeup.tscn +++ b/scene/entity/closeup.tscn @@ -24,10 +24,12 @@ prop_key2 = "" prop_key3 = "" [node name="SfxInvalid" type="AudioStreamPlayer" parent="."] +process_mode = 1 bus = &"game_sfx" script = ExtResource("5_dnubm") [node name="SfxSuccess" type="AudioStreamPlayer" parent="."] +process_mode = 1 bus = &"game_sfx" script = ExtResource("5_dnubm") diff --git a/scene/entity/inspectable.tscn b/scene/entity/inspectable.tscn index ee5fe7f1..a68b5187 100644 --- a/scene/entity/inspectable.tscn +++ b/scene/entity/inspectable.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=3 uid="uid://ci5anaxsa1apl"] +[gd_scene load_steps=11 format=3 uid="uid://ci5anaxsa1apl"] [ext_resource type="Script" uid="uid://cihyb26hjma4i" path="res://scene/entity/inspectable.gd" id="1_85el0"] [ext_resource type="Texture2D" uid="uid://c0rw25jl762a1" path="res://asset/art/ui/action_mark/UI眼睛.png" id="2_3pauf"] @@ -6,9 +6,8 @@ [ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_o562w"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_q18ff"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_do8tr"] -[ext_resource type="Texture2D" uid="uid://dwgxa5j6602vv" path="res://asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png" id="6_q18ff"] [ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="7_ianbs"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="7_xawjo"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="7_xawjo"] [ext_resource type="Script" uid="uid://cnt01hiw52bmn" path="res://scene/entity/ux/sign_snapper.gd" id="10_mtbvd"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_4fuic"] @@ -23,6 +22,7 @@ content_key = "" [node name="Sfx" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true +process_mode = 1 stream = ExtResource("3_3ldx7") bus = &"game_sfx" script = ExtResource("3_q18ff") @@ -103,7 +103,7 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 -texture = ExtResource("6_q18ff") +texture = ExtResource("7_xawjo") [node name="MarginContainer" type="MarginContainer" parent="InspectLayer/Root"] layout_mode = 2 diff --git a/scene/entity/interactable.tscn b/scene/entity/interactable.tscn index a5804275..6a1f5bd0 100644 --- a/scene/entity/interactable.tscn +++ b/scene/entity/interactable.tscn @@ -24,12 +24,14 @@ prop_key2 = "" prop_key3 = "" [node name="SfxInvalid" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("4_n1rbo") bus = &"game_sfx" script = ExtResource("6_l2kr5") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="SfxSuccess" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("5_exp6m") bus = &"game_sfx" script = ExtResource("6_l2kr5") diff --git a/scene/entity/note.tscn b/scene/entity/note.tscn index e10fe14e..6eaaf7e1 100644 --- a/scene/entity/note.tscn +++ b/scene/entity/note.tscn @@ -18,6 +18,7 @@ note_key = "" [node name="Sfx" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true +process_mode = 1 stream = ExtResource("3_y3pwa") bus = &"game_sfx" script = ExtResource("4_ycvi5") diff --git a/scene/entity/npc.tscn b/scene/entity/npc.tscn index bb8765c6..ec8724b0 100644 --- a/scene/entity/npc.tscn +++ b/scene/entity/npc.tscn @@ -133,6 +133,7 @@ dialogue_title = "" [node name="Sfx" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true +process_mode = 1 stream = ExtResource("3_7lwt5") bus = &"game_sfx" script = ExtResource("4_j5svs") diff --git a/scene/entity/pickable.tscn b/scene/entity/pickable.tscn index 30d8be46..b85ea54c 100644 --- a/scene/entity/pickable.tscn +++ b/scene/entity/pickable.tscn @@ -17,6 +17,7 @@ prop_key = "" [node name="Sfx" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true +process_mode = 1 stream = ExtResource("3_dxdbj") bus = &"game_sfx" script = ExtResource("3_1h8r3") diff --git a/scene/entity/portal.tscn b/scene/entity/portal.tscn index 4572a63c..c6c206d1 100644 --- a/scene/entity/portal.tscn +++ b/scene/entity/portal.tscn @@ -30,24 +30,28 @@ prop_key = "" [node name="SfxDefault" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true +process_mode = 1 stream = ExtResource("6_1sj6c") bus = &"game_sfx" script = ExtResource("6_bxihn") [node name="SfxOpen" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true +process_mode = 1 stream = ExtResource("5_l48hy") bus = &"game_sfx" script = ExtResource("6_bxihn") [node name="SfxEnter" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true +process_mode = 1 stream = ExtResource("6_p48ld") bus = &"game_sfx" script = ExtResource("6_bxihn") [node name="SfxLocked" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true +process_mode = 1 stream = ExtResource("7_bjcty") bus = &"game_sfx" script = ExtResource("6_bxihn") diff --git a/scene/gallery/gallery.gd b/scene/gallery/gallery.gd deleted file mode 100644 index 1c53a34e..00000000 --- a/scene/gallery/gallery.gd +++ /dev/null @@ -1,32 +0,0 @@ -extends CanvasLayer - - -func _ready() -> void: - layer = GlobalConfig.CANVAS_LAYER_GALLERY - SceneManager.toggle_pause_counter(true) - %OpenSfx.play() - %"物品".pressed.connect(_on_tab_pressed) - - -func _on_tab_pressed(): - SceneManager.toggle_pause_counter(false) - SceneManager.show_bag() - queue_free() - - -func _unhandled_input(event: InputEvent) -> void: - # gallery 界面阻塞所有输入事件,除了 escape - get_viewport().set_input_as_handled() - if ( - event.is_action_pressed("escape") - or event.is_action_pressed("cancel") - or event.is_action_pressed("gallery") - ): - SceneManager.toggle_pause_counter(false) - var close_stream = preload("res://asset/audio/sfx/交互/收起背包.wav") - AudioManager.play_sfx(close_stream) - queue_free() - elif event.is_action_pressed("bag"): - SceneManager.show_bag() - SceneManager.toggle_pause_counter(false) - queue_free() diff --git a/scene/gallery/gallery.tscn b/scene/gallery/gallery.tscn deleted file mode 100644 index 4579ad30..00000000 --- a/scene/gallery/gallery.tscn +++ /dev/null @@ -1,167 +0,0 @@ -[gd_scene load_steps=9 format=3 uid="uid://gfkdh8pqhixn"] - -[ext_resource type="Script" uid="uid://bt86ajx7nwnk3" path="res://scene/gallery/gallery.gd" id="1_mpm8n"] -[ext_resource type="AudioStream" uid="uid://dyjifofhdx25w" path="res://asset/audio/sfx/交互/打开背包.wav" id="2_kfxav"] -[ext_resource type="PackedScene" uid="uid://du6jt6ae5ulvy" path="res://scene/gallery/gallery_item.tscn" id="2_m3ngl"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_cntvv"] -[ext_resource type="PackedScene" uid="uid://ckd26q67hm7j0" path="res://scene/gallery/clips/clip1_偷听.tscn" id="3_ymhcd"] -[ext_resource type="Theme" uid="uid://ro8r1wa1bvua" path="res://config/gallery_item_theme.tres" id="4_bk3xr"] -[ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/prop_and_bag/小蝶笔记.png" id="4_cntvv"] -[ext_resource type="PackedScene" uid="uid://da4rposvvqo3d" path="res://scene/gallery/clips/clip2_疯子看井.tscn" id="7_cntvv"] - -[node name="Gallery" type="CanvasLayer"] -process_mode = 3 -script = ExtResource("1_mpm8n") - -[node name="OpenSfx" type="AudioStreamPlayer" parent="."] -unique_name_in_owner = true -stream = ExtResource("2_kfxav") -bus = &"game_sfx" -script = ExtResource("3_cntvv") -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 -theme = ExtResource("4_bk3xr") -texture = ExtResource("4_cntvv") -expand_mode = 5 -stretch_mode = 5 - -[node name="Control" type="Control" parent="BG"] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 26.0 -offset_top = -7.0 -offset_right = 26.0 -offset_bottom = 41.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="物品" type="Button" parent="BG/Control"] -unique_name_in_owner = true -z_index = 200 -layout_mode = 0 -offset_left = 92.0 -offset_top = 43.0 -offset_right = 142.0 -offset_bottom = 83.0 -theme = ExtResource("4_bk3xr") -theme_type_variation = &"tab_btn" -text = "bag_tab_日志" -flat = true - -[node name="回忆" type="Button" parent="BG/Control"] -layout_mode = 0 -offset_left = 137.0 -offset_top = 42.0 -offset_right = 187.0 -offset_bottom = 82.0 -theme = ExtResource("4_bk3xr") -theme_type_variation = &"tab_btn" -disabled = true -text = "bag_tab_记忆" -flat = true - -[node name="GridContainer" type="GridContainer" parent="BG/Control"] -z_index = 10 -layout_mode = 2 -offset_left = 90.0 -offset_top = 73.0 -offset_right = 244.0 -offset_bottom = 293.0 -columns = 2 - -[node name="GalleryItem" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("3_ymhcd") -title = "g_偷听对话" - -[node name="GalleryItem2" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("7_cntvv") -title = "g_疯子看井" - -[node name="GalleryItem3" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("3_ymhcd") -title = "g_偷听对话" - -[node name="GalleryItem4" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("7_cntvv") -title = "g_疯子看井" - -[node name="GalleryItem5" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("3_ymhcd") -title = "g_偷听对话" - -[node name="GalleryItem6" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("7_cntvv") -title = "g_疯子看井" - -[node name="GalleryItem7" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("3_ymhcd") -title = "g_偷听对话" - -[node name="GalleryItem8" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("7_cntvv") -title = "g_疯子看井" - -[node name="GridContainer2" type="GridContainer" parent="BG/Control"] -z_index = 10 -layout_mode = 2 -offset_left = 268.0 -offset_top = 74.0 -offset_right = 422.0 -offset_bottom = 294.0 -columns = 2 - -[node name="GalleryItem" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("3_ymhcd") -title = "g_偷听对话" - -[node name="GalleryItem2" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("7_cntvv") -title = "g_疯子看井" - -[node name="GalleryItem3" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("3_ymhcd") -title = "g_偷听对话" - -[node name="GalleryItem4" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("7_cntvv") -title = "g_疯子看井" - -[node name="GalleryItem5" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("3_ymhcd") -title = "g_偷听对话" - -[node name="GalleryItem6" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("7_cntvv") -title = "g_疯子看井" - -[node name="GalleryItem7" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("3_ymhcd") -title = "g_偷听对话" - -[node name="GalleryItem8" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] -layout_mode = 2 -packed_scene = ExtResource("7_cntvv") -title = "g_疯子看井" diff --git a/scene/ground/ground_loader.gd b/scene/ground/ground_loader.gd index e9a0232a..1b543fbf 100644 --- a/scene/ground/ground_loader.gd +++ b/scene/ground/ground_loader.gd @@ -121,36 +121,36 @@ func transition_to_scene( # 转场效果,在 _load_ground_node 之前播放 var tween = toggle_mask(true, mask_color, wait_time) tween.tween_callback(_do_transition.call_deferred.bind(scene_name)) - tween.tween_callback(_hide_mask_with_frozen_ground.bind(mask_color, wait_time)) + _allow_ground_start = false + # 等到 toggle_mask 结束,再重置 freeze 状态 + toggle_mask(false, mask_color, wait_time).tween_callback( + func(): _allow_ground_start = true + ) else: + _allow_ground_start = true _do_transition.call_deferred(scene_name) else: print("Scene not found: " + scene_name) var _frozen_start_time_ms: int -var _freeze_ground_required := false: +var _allow_ground_start := false: set(val): - _freeze_ground_required = val + _allow_ground_start = val if ground: if val: - print("GroundLoader _freeze_ground_required: frozen") - ground.process_mode = Node.PROCESS_MODE_DISABLED - _frozen_start_time_ms = Time.get_ticks_msec() - else: - ground.process_mode = Node.PROCESS_MODE_INHERIT - print( - "GroundLoader _freeze_ground_required: unfrozen. frozen duration(ms):", - Time.get_ticks_msec() - _frozen_start_time_ms - ) - - -func _hide_mask_with_frozen_ground(mask_color: Color, wait_time: float): - # 锁定 ground 状态 - _freeze_ground_required = true - toggle_mask(false, mask_color, wait_time).tween_callback( - func(): _freeze_ground_required = false - ) + if ground.process_mode != Node.PROCESS_MODE_INHERIT: + # ground_start 信号 + SceneManager.ground_start.emit(ground) + ground.process_mode = Node.PROCESS_MODE_INHERIT + print( + "GroundLoader _allow_ground_start: unfrozen. frozen duration(ms):", + Time.get_ticks_msec() - _frozen_start_time_ms + ) + # else: + # print("GroundLoader _allow_ground_start: frozen") + # ground.process_mode = Node.PROCESS_MODE_DISABLED + # _frozen_start_time_ms = Time.get_ticks_msec() func _update_archive(): @@ -170,10 +170,13 @@ func _do_transition(scene_name: String) -> void: # 因为 ground 在 enter_tree 时会用到 SceneManager 的方法 # 其中间接用到了 GroundLoader 的 ground ground = _load_ground_node(scene_name) - if _freeze_ground_required: + if not _allow_ground_start: ground.process_mode = Node.PROCESS_MODE_DISABLED - print("GroundLoader _freeze_ground_required: frozen (delayed)") + print("GroundLoader not _allow_ground_start: frozen (delayed)") _frozen_start_time_ms = Time.get_ticks_msec() + else: + # 如果不阻塞,直接 ground_start 信号 + SceneManager.ground_start.emit(ground) _add_ground() # 预先加载邻居场景 _post_transition() @@ -182,6 +185,7 @@ func _do_transition(scene_name: String) -> void: func _add_ground(): + ground.ready.connect(SceneManager.ground_ready.emit.bind(ground)) add_child(ground) ground.name = "Ground" if not Engine.is_editor_hint(): diff --git a/scene/ground/scene/c01/s05_animation.gd b/scene/ground/scene/c01/s05_院长房间.gd similarity index 100% rename from scene/ground/scene/c01/s05_animation.gd rename to scene/ground/scene/c01/s05_院长房间.gd diff --git a/scene/ground/scene/c01/s05_animation.gd.uid b/scene/ground/scene/c01/s05_院长房间.gd.uid similarity index 100% rename from scene/ground/scene/c01/s05_animation.gd.uid rename to scene/ground/scene/c01/s05_院长房间.gd.uid diff --git a/scene/ground/scene/c01/s05_院长房间.tscn b/scene/ground/scene/c01/s05_院长房间.tscn index 47d2835a..4647a877 100644 --- a/scene/ground/scene/c01/s05_院长房间.tscn +++ b/scene/ground/scene/c01/s05_院长房间.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=37 format=3 uid="uid://dlx5xxbg53rb8"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ff4yb"] -[ext_resource type="Script" uid="uid://q2qgg85xa6ie" path="res://scene/ground/scene/c01/s05_animation.gd" id="2_j5oim"] +[ext_resource type="Script" uid="uid://q2qgg85xa6ie" path="res://scene/ground/scene/c01/s05_院长房间.gd" id="2_j5oim"] [ext_resource type="Texture2D" uid="uid://i04jx0je6bq2" path="res://asset/art/scene/c01/s05_院长房间/bg_房间背景.png" id="3_3r1q2"] [ext_resource type="AudioStream" uid="uid://cbciw1yg7uc8t" path="res://asset/audio/sfx/环境音/序章/01_院长房间_屋外钟声.wav" id="3_6ir3d"] [ext_resource type="Texture2D" uid="uid://ds8xteyjjrqoy" path="res://asset/art/scene/c01/s05_院长房间/全局参考.png" id="3_7u4bh"] @@ -258,7 +258,7 @@ tracks/18/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [-20.0] +"values": [-10.0] } tracks/19/type = "value" tracks/19/imported = false @@ -272,10 +272,22 @@ tracks/19/keys = { "update": 0, "values": [Color(1, 1, 1, 1)] } +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("BGSprite2D/Sfx2D座钟滴答:volume_db") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} [sub_resource type="Animation" id="Animation_7k2c8"] resource_name = "intro" -length = 24.0 +length = 25.0 capture_included = true tracks/0/type = "value" tracks/0/imported = false @@ -284,7 +296,7 @@ tracks/0/path = NodePath("Intro:visible") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 18.4333), +"times": PackedFloat32Array(0, 19.5), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] @@ -296,7 +308,7 @@ tracks/1/path = NodePath("Intro:modulate") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0, 15.5333, 18.4333), +"times": PackedFloat32Array(0, 16.6, 19.5), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] @@ -308,7 +320,7 @@ tracks/2/path = NodePath("MainPlayer:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(17.7333), +"times": PackedFloat32Array(18.8), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(87, 88)] @@ -320,7 +332,7 @@ tracks/3/path = NodePath("DeployLayer/小小蝶看书:visible") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { -"times": PackedFloat32Array(0, 23.8667), +"times": PackedFloat32Array(0, 24.9334), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] @@ -332,7 +344,7 @@ tracks/4/path = NodePath("DeployLayer/小小蝶看书:frame") tracks/4/interp = 1 tracks/4/loop_wrap = false tracks/4/keys = { -"times": PackedFloat32Array(18.4, 23.8667), +"times": PackedFloat32Array(19.4667, 24.9334), "transitions": PackedFloat32Array(1, 1), "update": 2, "values": [0, 16] @@ -344,7 +356,7 @@ tracks/5/path = NodePath("AnimationPlayer") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { -"times": PackedFloat32Array(0, 1.93333, 19.1), +"times": PackedFloat32Array(0, 3, 20.1667), "transitions": PackedFloat32Array(1, 1, 1), "values": [{ "args": [], @@ -364,7 +376,7 @@ tracks/6/path = NodePath("Intro") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { -"times": PackedFloat32Array(18.5667), +"times": PackedFloat32Array(19.6334), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -378,7 +390,7 @@ tracks/7/path = NodePath("AnimationPlayer/下床与铃声音效:playing") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { -"times": PackedFloat32Array(21.7667), +"times": PackedFloat32Array(22.8334), "transitions": PackedFloat32Array(1), "update": 1, "values": [true] @@ -390,7 +402,7 @@ tracks/8/path = NodePath("MainPlayer:hide_sprite") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { -"times": PackedFloat32Array(0, 23.8667), +"times": PackedFloat32Array(0, 24.9334), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] @@ -419,6 +431,18 @@ tracks/10/keys = { "update": 0, "values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] } +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("BGSprite2D/Sfx2D座钟滴答:volume_db") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0, 2.56667), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [-50.0, 0.0] +} [sub_resource type="Animation" id="Animation_il8ov"] resource_name = "使用鸡毛掸子" @@ -653,18 +677,21 @@ data = { oneshot_animation = "intro" [node name="intro_audio_player" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] +process_mode = 1 stream = ExtResource("3_sluu3") -volume_db = -20.0 +volume_db = -10.0 bus = &"game_sfx" script = ExtResource("4_1jor4") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="piano_player" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"] +process_mode = 1 bus = &"game_sfx" script = ExtResource("4_1jor4") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="扶正相框" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +process_mode = 1 stream = ExtResource("3_jk3np") volume_db = -6.933 bus = &"game_sfx" @@ -672,6 +699,7 @@ script = ExtResource("4_1jor4") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="捡起纸片后开门声" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"] +process_mode = 1 stream = ExtResource("5_1jor4") volume_db = -2.0 bus = &"game_sfx" @@ -679,23 +707,24 @@ script = ExtResource("4_1jor4") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="下床与铃声音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="4"] +process_mode = 1 stream = SubResource("AudioStreamSynchronized_sluu3") bus = &"game_sfx" script = ExtResource("4_1jor4") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" -[node name="BGSprite2D" parent="Ground" index="1"] +[node name="BGSprite2D" parent="Ground" index="2"] position = Vector2(23, -115) scale = Vector2(0.333, 0.333) texture = ExtResource("3_3r1q2") [node name="Sfx2D座钟滴答" type="AudioStreamPlayer2D" parent="Ground/BGSprite2D" index="0"] +process_mode = 1 position = Vector2(939.94, 372.372) scale = Vector2(3.003, 3.003) stream = ExtResource("5_sluu3") autoplay = true -max_distance = 600.0 -attenuation = 3.0 +max_distance = 1000.0 bus = &"game_sfx" script = ExtResource("10_kyds0") loop = true @@ -814,7 +843,7 @@ texture = ExtResource("17_qqw2v") texture_scale = 0.33 height = 50.0 -[node name="MainPlayer" parent="Ground" index="4"] +[node name="MainPlayer" parent="Ground" index="5"] position = Vector2(26, 88) enable_light = false character = "小小蝶" @@ -828,7 +857,7 @@ position = Vector2(21, 39) texture = ExtResource("3_vmr0f") offset = Vector2(0, 0) -[node name="DirectionalLight2D" parent="Ground" index="7"] +[node name="DirectionalLight2D" parent="Ground" index="8"] rotation = -0.000622023 energy = 0.3 blend_mode = 1 diff --git a/scene/ground/scene/c01/s06_animation.gd b/scene/ground/scene/c01/s06_孤儿院长廊围墙.gd similarity index 100% rename from scene/ground/scene/c01/s06_animation.gd rename to scene/ground/scene/c01/s06_孤儿院长廊围墙.gd diff --git a/scene/ground/scene/c01/s06_animation.gd.uid b/scene/ground/scene/c01/s06_孤儿院长廊围墙.gd.uid similarity index 100% rename from scene/ground/scene/c01/s06_animation.gd.uid rename to scene/ground/scene/c01/s06_孤儿院长廊围墙.gd.uid diff --git a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn index a5060884..6a3abd69 100644 --- a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn +++ b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=43 format=3 uid="uid://bx16c8nn32f40"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_bitx7"] -[ext_resource type="Script" uid="uid://don6fobmq0h6x" path="res://scene/ground/scene/c01/s06_animation.gd" id="2_fkfhi"] +[ext_resource type="Script" uid="uid://don6fobmq0h6x" path="res://scene/ground/scene/c01/s06_孤儿院长廊围墙.gd" id="2_fkfhi"] [ext_resource type="SpriteFrames" uid="uid://cc0ea1he2nfc2" path="res://asset/art/gif/c01_孤儿院长廊/c01_孤儿院长廊_frames.tres" id="2_l4axy"] [ext_resource type="Texture2D" uid="uid://bptk6i6rnolir" path="res://asset/art/scene/c01/s06_孤儿院长廊围墙/bg_院子长背景.png" id="2_ow3ya"] [ext_resource type="AudioStream" uid="uid://23ubtujgsk62" path="res://asset/audio/sfx/交互/序章/02_孤儿院走廊_桌椅撞倒.wav" id="3_lgina"] @@ -152,6 +152,7 @@ script = ExtResource("2_fkfhi") oneshot_animation = "" [node name="桌椅撞倒音效" type="AudioStreamPlayer2D" parent="Ground/AnimationPlayer" index="0"] +process_mode = 1 position = Vector2(2750, 56) stream = ExtResource("3_lgina") volume_db = -2.971 @@ -161,6 +162,7 @@ script = ExtResource("4_qq2uh") metadata/_custom_type_script = "uid://wapo47a1oddf" [node name="走廊Sfx2d" type="AudioStreamPlayer2D" parent="Ground/AnimationPlayer" index="1"] +process_mode = 1 position = Vector2(490, 36) stream = ExtResource("5_6mww0") autoplay = true @@ -169,6 +171,7 @@ script = ExtResource("4_qq2uh") loop = true [node name="Sfx猫鼠游戏" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +process_mode = 1 stream = SubResource("AudioStreamInteractive_af0pm") volume_db = -17.0 bus = &"game_sfx" @@ -241,6 +244,7 @@ sprite_frames = ExtResource("2_l4axy") animation = &"秋千" [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/秋千"] +process_mode = 1 stream = ExtResource("12_huyl5") autoplay = true max_distance = 300.0 @@ -250,6 +254,7 @@ loop = true metadata/_custom_type_script = "uid://wapo47a1oddf" [node name="Sfx2D童谣" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/秋千"] +process_mode = 1 position = Vector2(1, 7) stream = ExtResource("15_qq2uh") volume_db = -15.0 @@ -267,6 +272,7 @@ sprite_frames = ExtResource("2_l4axy") animation = &"跷跷板" [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/跷跷板"] +process_mode = 1 position = Vector2(-117, -1) stream = ExtResource("13_phmvd") autoplay = true diff --git a/scene/ground/scene/c01/s07_animation.gd b/scene/ground/scene/c01/s07_书店外.gd similarity index 100% rename from scene/ground/scene/c01/s07_animation.gd rename to scene/ground/scene/c01/s07_书店外.gd diff --git a/scene/ground/scene/c01/s07_animation.gd.uid b/scene/ground/scene/c01/s07_书店外.gd.uid similarity index 100% rename from scene/ground/scene/c01/s07_animation.gd.uid rename to scene/ground/scene/c01/s07_书店外.gd.uid diff --git a/scene/ground/scene/c01/s07_书店外.tscn b/scene/ground/scene/c01/s07_书店外.tscn index 74b36dc6..1ba2d93a 100644 --- a/scene/ground/scene/c01/s07_书店外.tscn +++ b/scene/ground/scene/c01/s07_书店外.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=29 format=3 uid="uid://ds2iyfndwamiy"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2vqpo"] -[ext_resource type="Script" uid="uid://1bq3lbv6of1v" path="res://scene/ground/scene/c01/s07_animation.gd" id="2_dhaq4"] +[ext_resource type="Script" uid="uid://1bq3lbv6of1v" path="res://scene/ground/scene/c01/s07_书店外.gd" id="2_dhaq4"] [ext_resource type="AudioStream" uid="uid://qku3yk82g364" path="res://asset/audio/sfx/交互/标题出现音效.wav" id="3_c7jb6"] [ext_resource type="Texture2D" uid="uid://bbuskt4kwkwpl" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_黄昏.png" id="3_l7171"] [ext_resource type="AudioStream" uid="uid://cxwvfeuq4o71o" path="res://asset/audio/sfx/环境音/序章/03_书店外黄昏.wav" id="3_na2nu"] diff --git a/scene/ground/scene/c01/s08_animation.gd b/scene/ground/scene/c01/s08_书店.gd similarity index 94% rename from scene/ground/scene/c01/s08_animation.gd rename to scene/ground/scene/c01/s08_书店.gd index a25ce75e..e98ebf93 100644 --- a/scene/ground/scene/c01/s08_animation.gd +++ b/scene/ground/scene/c01/s08_书店.gd @@ -52,7 +52,7 @@ func _on_ground_ready() -> void: counter.interacted.connect(assign_tasks, CONNECT_ONE_SHOT) ladder.enabled = false envolope_table.enabled = false - envelope_game_success = ArchiveManager.archive.get_global_value("envelope_game_success") + envelope_game_success = ArchiveManager.archive.get_global_value(&"envelope_game_success") if envelope_game_success: envolope_table.enabled = false else: @@ -62,7 +62,7 @@ func _on_ground_ready() -> void: envolope_table.prop_key2 = "" envolope_table.interacted.connect(_on_envolope_table_interacted) # 书架工作 - shelf_game_success = ArchiveManager.archive.get_global_value("c01_shelf_game_success") + shelf_game_success = ArchiveManager.archive.get_global_value(&"c01_shelf_game_success") if shelf_game_success: _setup_weird_bookstore() else: @@ -131,7 +131,7 @@ func _on_shelf_game_exiting() -> void: var fall_off func _on_shelf_game_success() -> void: - ArchiveManager.archive.set_global_entry("c01_shelf_game_success", true) + ArchiveManager.archive.set_global_entry(&"c01_shelf_game_success", true) shelf_game_success = true _setup_weird_bookstore() var player = SceneManager.get_player() as MainPlayer @@ -163,6 +163,8 @@ func _setup_weird_bookstore() -> void: # 切换背景音效 $"环境音".stop() $"诡异环境音".play() + # 光变红 + $"../AmbientLayer/PointLight2D".color = Color.html("#ff2719") coin.enabled = true ladder.enabled = false @@ -191,7 +193,7 @@ func _on_envelope_game_success() -> void: SceneManager.release_player() envolope_table.enabled = false create_tween().tween_property(mask, "color:a", 0.0, 1.0).from(1.0) - ArchiveManager.archive.set_global_entry("envelope_game_success", true) + ArchiveManager.archive.set_global_entry(&"envelope_game_success", true) envelope_game_success = true _check_portal() diff --git a/scene/ground/scene/c01/s08_animation.gd.uid b/scene/ground/scene/c01/s08_书店.gd.uid similarity index 100% rename from scene/ground/scene/c01/s08_animation.gd.uid rename to scene/ground/scene/c01/s08_书店.gd.uid diff --git a/scene/ground/scene/c01/s08_书店.tscn b/scene/ground/scene/c01/s08_书店.tscn index c3bb566c..8b1e8b94 100644 --- a/scene/ground/scene/c01/s08_书店.tscn +++ b/scene/ground/scene/c01/s08_书店.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=22 format=3 uid="uid://cwu4dhayra8pg"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_b3cca"] -[ext_resource type="Script" uid="uid://6q2pfbqsw10t" path="res://scene/ground/scene/c01/s08_animation.gd" id="2_0lque"] +[ext_resource type="Script" uid="uid://6q2pfbqsw10t" path="res://scene/ground/scene/c01/s08_书店.gd" id="2_0lque"] [ext_resource type="AudioStream" uid="uid://d31pxjnnvqdpn" path="res://asset/audio/sfx/环境音/序章/04_书店内.wav" id="3_0x288"] [ext_resource type="Texture2D" uid="uid://coo8sw8yigii6" path="res://asset/art/scene/c01/s08_书店/bg_书店.png" id="3_322m4"] [ext_resource type="AudioStream" uid="uid://vygcjwgo1j4a" path="res://asset/audio/sfx/环境音/序章/04_书店内_奶奶写字.wav" id="4_5j1ov"] @@ -163,11 +163,7 @@ scatter_on_start = true [node name="Interactable报纸柜台" parent="Ground/DeployLayer" index="6" instance=ExtResource("7_fue0t")] position = Vector2(135, 49) -[node name="SfxInvalid" parent="Ground/DeployLayer/Interactable报纸柜台" index="0"] -process_mode = 1 - [node name="SfxSuccess" parent="Ground/DeployLayer/Interactable报纸柜台" index="1"] -process_mode = 1 stream = null [node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable报纸柜台/Area2D" index="0"] @@ -195,8 +191,7 @@ sprite_frames = ExtResource("8_hunwx") animation = &"小小蝶坠落" [node name="PointLight2D" type="PointLight2D" parent="Ground/AmbientLayer" index="0"] -position = Vector2(-148, 39) -color = Color(0.993775, 0.83578, 0.525594, 1) +position = Vector2(-31, 20) energy = 0.4 texture = ExtResource("9_i4dqp") offset = Vector2(317, 0) diff --git a/scene/ground/scene/c01/s09_animation.gd b/scene/ground/scene/c01/s09_公寓楼外.gd similarity index 100% rename from scene/ground/scene/c01/s09_animation.gd rename to scene/ground/scene/c01/s09_公寓楼外.gd diff --git a/scene/ground/scene/c01/s09_animation.gd.uid b/scene/ground/scene/c01/s09_公寓楼外.gd.uid similarity index 100% rename from scene/ground/scene/c01/s09_animation.gd.uid rename to scene/ground/scene/c01/s09_公寓楼外.gd.uid diff --git a/scene/ground/scene/c01/s09_公寓楼外.tscn b/scene/ground/scene/c01/s09_公寓楼外.tscn index 17be696e..4f3ac543 100644 --- a/scene/ground/scene/c01/s09_公寓楼外.tscn +++ b/scene/ground/scene/c01/s09_公寓楼外.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=30 format=3 uid="uid://c777lv8mjojcw"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_mrwu5"] -[ext_resource type="Script" uid="uid://c7rvvsuf18ykn" path="res://scene/ground/scene/c01/s09_animation.gd" id="2_u053j"] +[ext_resource type="Script" uid="uid://c7rvvsuf18ykn" path="res://scene/ground/scene/c01/s09_公寓楼外.gd" id="2_u053j"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="3_4myxt"] [ext_resource type="PackedScene" uid="uid://b68oedsmd0tof" path="res://scene/ground/script/c01/s01_公寓外_自动枯萎的花朵.tscn" id="3_52pqy"] [ext_resource type="Texture2D" uid="uid://gpwul4tcu43h" path="res://asset/art/scene/c01/s09_公寓楼外/bg_黄包车裁剪场景.png" id="3_828bq"] diff --git a/scene/ground/scene/c01/s10_animation.gd b/scene/ground/scene/c01/s10_公寓楼道.gd similarity index 100% rename from scene/ground/scene/c01/s10_animation.gd rename to scene/ground/scene/c01/s10_公寓楼道.gd diff --git a/scene/ground/scene/c01/s10_animation.gd.uid b/scene/ground/scene/c01/s10_公寓楼道.gd.uid similarity index 100% rename from scene/ground/scene/c01/s10_animation.gd.uid rename to scene/ground/scene/c01/s10_公寓楼道.gd.uid diff --git a/scene/ground/scene/c01/s10_公寓楼道.tscn b/scene/ground/scene/c01/s10_公寓楼道.tscn index c4f957f6..72e8cc92 100644 --- a/scene/ground/scene/c01/s10_公寓楼道.tscn +++ b/scene/ground/scene/c01/s10_公寓楼道.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=11 format=3 uid="uid://be57l2o3vxxtm"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_hhs2q"] -[ext_resource type="Script" uid="uid://cu74s33qyiax7" path="res://scene/ground/scene/c01/s10_animation.gd" id="2_4kx83"] +[ext_resource type="Script" uid="uid://cu74s33qyiax7" path="res://scene/ground/scene/c01/s10_公寓楼道.gd" id="2_4kx83"] [ext_resource type="AudioStream" uid="uid://d2sdgkatyat7i" path="res://asset/audio/sfx/环境音/序章/06_公寓楼道.wav" id="3_6prdo"] [ext_resource type="Texture2D" uid="uid://clsj2fcth8ts3" path="res://asset/art/scene/c01/s10_公寓过道/bg_过道夜晚.png" id="3_slkid"] [ext_resource type="SpriteFrames" uid="uid://dtwl5tgu7f4k5" path="res://asset/art/gif/c01_公寓过道/c01_公寓过道_frames.tres" id="4_bhb7e"] diff --git a/scene/ground/scene/c01/s11_animation.gd b/scene/ground/scene/c01/s11_黄包车演出.gd similarity index 100% rename from scene/ground/scene/c01/s11_animation.gd rename to scene/ground/scene/c01/s11_黄包车演出.gd diff --git a/scene/ground/scene/c01/s11_animation.gd.uid b/scene/ground/scene/c01/s11_黄包车演出.gd.uid similarity index 100% rename from scene/ground/scene/c01/s11_animation.gd.uid rename to scene/ground/scene/c01/s11_黄包车演出.gd.uid diff --git a/scene/ground/scene/c01/s11_黄包车演出.tscn b/scene/ground/scene/c01/s11_黄包车演出.tscn index f4cdf09b..de6aed48 100644 --- a/scene/ground/scene/c01/s11_黄包车演出.tscn +++ b/scene/ground/scene/c01/s11_黄包车演出.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=32 format=3 uid="uid://coiumaaenimbc"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_1sveo"] -[ext_resource type="Script" uid="uid://dcn7u7v3fsscj" path="res://scene/ground/scene/c01/s11_animation.gd" id="2_espm6"] +[ext_resource type="Script" uid="uid://dcn7u7v3fsscj" path="res://scene/ground/scene/c01/s11_黄包车演出.gd" id="2_espm6"] [ext_resource type="Texture2D" uid="uid://cjllurf1ouxf" path="res://asset/art/scene/c01/s04_旧版序章/fg_前景1.png" id="3_fduds"] [ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="3_hnnuc"] [ext_resource type="AudioStream" uid="uid://qu38tv548jhj" path="res://asset/audio/sfx/旧版/c01/拉黄包车_loop.wav" id="3_ummkx"] diff --git a/scene/ground/scene/c01/s12_animation.gd b/scene/ground/scene/c01/s12_书店外_诡异版.gd similarity index 100% rename from scene/ground/scene/c01/s12_animation.gd rename to scene/ground/scene/c01/s12_书店外_诡异版.gd diff --git a/scene/ground/scene/c01/s12_animation.gd.uid b/scene/ground/scene/c01/s12_书店外_诡异版.gd.uid similarity index 100% rename from scene/ground/scene/c01/s12_animation.gd.uid rename to scene/ground/scene/c01/s12_书店外_诡异版.gd.uid diff --git a/scene/ground/scene/c01/s12_书店外_诡异版.tscn b/scene/ground/scene/c01/s12_书店外_诡异版.tscn index ec1de5f5..d82e64ba 100644 --- a/scene/ground/scene/c01/s12_书店外_诡异版.tscn +++ b/scene/ground/scene/c01/s12_书店外_诡异版.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=34 format=3 uid="uid://bol5hl68pbpgq"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_llw14"] -[ext_resource type="Script" uid="uid://bh4h0e158t1oj" path="res://scene/ground/scene/c01/s12_animation.gd" id="2_krdvw"] +[ext_resource type="Script" uid="uid://bh4h0e158t1oj" path="res://scene/ground/scene/c01/s12_书店外_诡异版.gd" id="2_krdvw"] [ext_resource type="Texture2D" uid="uid://bc64s5xfysrc3" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_夜晚.png" id="3_npdxo"] [ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="3_p7n7n"] [ext_resource type="Texture2D" uid="uid://ctukk7c8xo4uc" path="res://asset/art/scene/c01/s07_书店外/e_装饰 书店外夜晚.png" id="4_c1x3p"] diff --git a/scene/ground/scene/c02/s01_animation.gd b/scene/ground/scene/c02/s01_公寓门口.gd similarity index 86% rename from scene/ground/scene/c02/s01_animation.gd rename to scene/ground/scene/c02/s01_公寓门口.gd index fa948485..f1d8856a 100644 --- a/scene/ground/scene/c02/s01_animation.gd +++ b/scene/ground/scene/c02/s01_公寓门口.gd @@ -21,7 +21,8 @@ func _ready() -> void: func _on_ground_ready() -> void: SceneManager.pop_os_with_str("c02_s01_下黄包车") - + await SceneManager.get_player().os_finished + EventManager.set_stage_if_greater("handnote_stage", 1) # func _give_letter() -> void: # set_data("received_letter", true) diff --git a/scene/ground/scene/c02/s01_animation.gd.uid b/scene/ground/scene/c02/s01_公寓门口.gd.uid similarity index 100% rename from scene/ground/scene/c02/s01_animation.gd.uid rename to scene/ground/scene/c02/s01_公寓门口.gd.uid diff --git a/scene/ground/scene/c02/s01_公寓门口.tscn b/scene/ground/scene/c02/s01_公寓门口.tscn index 384e10cf..0cd870e0 100644 --- a/scene/ground/scene/c02/s01_公寓门口.tscn +++ b/scene/ground/scene/c02/s01_公寓门口.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://bbs7yy5aofw1v"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_c4tdi"] -[ext_resource type="Script" uid="uid://jkselt4d5q4r" path="res://scene/ground/scene/c02/s01_animation.gd" id="2_jfumy"] +[ext_resource type="Script" uid="uid://jkselt4d5q4r" path="res://scene/ground/scene/c02/s01_公寓门口.gd" id="2_jfumy"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_bhi7l"] [ext_resource type="Texture2D" uid="uid://d05pqud4yoxx3" path="res://asset/art/scene/c02/s01_公寓门口/bg_公寓门口.png" id="5_j2ctx"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="6_bhi7l"] @@ -28,7 +28,7 @@ script = ExtResource("3_bhi7l") autoplay_group = &"c02_楼道1" metadata/_custom_type_script = "uid://cpejxlfni6n52" -[node name="BGSprite2D" parent="Ground" index="1"] +[node name="BGSprite2D" parent="Ground" index="2"] texture = ExtResource("5_j2ctx") [node name="portal_left" parent="Ground/DeployLayer" index="0"] @@ -54,13 +54,13 @@ first_interact_os_key = "c02_s01_寻人启事" texture_cover = ExtResource("9_bhi7l") content_key = "c02_寻人启事_残破" -[node name="MainPlayer" parent="Ground" index="4"] +[node name="MainPlayer" parent="Ground" index="5"] position = Vector2(78, 98) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(37, 150, 720, 150) -[node name="DirectionalLight2D" parent="Ground" index="7"] +[node name="DirectionalLight2D" parent="Ground" index="8"] energy = 0.6 blend_mode = 1 diff --git a/scene/ground/scene/c02/s02_animation.gd b/scene/ground/scene/c02/s02_过道.gd similarity index 95% rename from scene/ground/scene/c02/s02_animation.gd rename to scene/ground/scene/c02/s02_过道.gd index cbc5aaf7..89d1910a 100644 --- a/scene/ground/scene/c02/s02_animation.gd +++ b/scene/ground/scene/c02/s02_过道.gd @@ -28,7 +28,7 @@ func _on_ground_ready() -> void: else: _oneshot_wind.call_deferred() paper_man = $"../DeployLayer/Ambush纸人" - if 5 <= ArchiveManager.get_global_value("c02_musicbox_stage", 0): + if 5 <= ArchiveManager.get_global_value(&"c02_musicbox_stage", 0): _display_paper_man(false) else: paper_man.get_node("wall/CollisionShape2D").disabled = true @@ -104,7 +104,7 @@ func _on_blink_finished(blink_sprite): func _on_music_box_exited(_arg): - if 5 <= ArchiveManager.get_global_value("c02_musicbox_stage"): + if 5 <= ArchiveManager.get_global_value(&"c02_musicbox_stage"): _display_paper_man(false) # _display_paper_man(true) @@ -130,7 +130,7 @@ func check_if_show_shoes(): # 不论是否推出,都需要 enable 调整为 false $"../DeployLayer/Ambush推小鞋子".enabled = false # 检查是否显示鞋子 - if not ArchiveManager.get_global_value("c02_s02_mouse_push_shoe1", false): + if not ArchiveManager.get_global_value(&"c02_s02_mouse_push_shoe1", false): return var interactable = $"../DeployLayer/Interactable小鞋子" if interactable.interacted_times > 0: diff --git a/scene/ground/scene/c02/s02_animation.gd.uid b/scene/ground/scene/c02/s02_过道.gd.uid similarity index 100% rename from scene/ground/scene/c02/s02_animation.gd.uid rename to scene/ground/scene/c02/s02_过道.gd.uid diff --git a/scene/ground/scene/c02/s02_过道.tscn b/scene/ground/scene/c02/s02_过道.tscn index 4456b16c..fc82a0ff 100644 --- a/scene/ground/scene/c02/s02_过道.tscn +++ b/scene/ground/scene/c02/s02_过道.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=31 format=3 uid="uid://brck77w81fhvc"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_wrr6r"] -[ext_resource type="Script" uid="uid://bfrgnmde3hjn0" path="res://scene/ground/scene/c02/s02_animation.gd" id="2_5p8ev"] +[ext_resource type="Script" uid="uid://bfrgnmde3hjn0" path="res://scene/ground/scene/c02/s02_过道.gd" id="2_5p8ev"] [ext_resource type="PackedScene" uid="uid://byj234hen4btr" path="res://scene/entity/audio/sfx.tscn" id="3_fvldj"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="3_fy0o1"] [ext_resource type="Texture2D" uid="uid://5428j51dwarc" path="res://asset/art/scene/c02/s02_大门过道/bg_过道背景.png" id="3_gjwum"] @@ -65,7 +65,9 @@ data = { oneshot_animation = "" [node name="冷飕飕Sfx" parent="Ground/AnimationPlayer" index="0" instance=ExtResource("3_fvldj")] +process_mode = 1 stream = ExtResource("4_36l5t") +volume_db = -10.0 mode = "交互与效果音" [node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="1"] @@ -157,6 +159,7 @@ shape = SubResource("RectangleShape2D_mjnwv") disabled = true [node name="Sfx" type="AudioStreamPlayer" parent="Ground/DeployLayer/Ambush纸人"] +process_mode = 1 stream = ExtResource("11_u68d7") bus = &"game_sfx" script = ExtResource("14_jg8g0") @@ -226,7 +229,7 @@ position = Vector2(0, 11) texture = ExtResource("22_jg8g0") [node name="Ambush小蝉闪现" parent="Ground/DeployLayer" index="19" instance=ExtResource("8_52as8")] -position = Vector2(97, 49) +position = Vector2(388, 47) hook_method = "xiaochan_disappear" [node name="小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer/Ambush小蝉闪现"] diff --git a/scene/ground/scene/c02/s03_animation.gd b/scene/ground/scene/c02/s03_院子.gd similarity index 83% rename from scene/ground/scene/c02/s03_animation.gd rename to scene/ground/scene/c02/s03_院子.gd index 013673d8..e23a3773 100644 --- a/scene/ground/scene/c02/s03_animation.gd +++ b/scene/ground/scene/c02/s03_院子.gd @@ -6,9 +6,7 @@ var gate: Interactable2D # 覆盖该方法 func _default_data() -> Dictionary: - return { - "camera_played": false, - } + return {} func _ready() -> void: @@ -36,33 +34,28 @@ func _on_ground_ready() -> void: gate.interacted.connect(_on_gate_interacted) eavesdrop_window = $"../DeployLayer/李氏赖子房间人影" - if ArchiveManager.get_global_value("c02_eavesdrop_finished"): + if ArchiveManager.get_global_value(&"c02_eavesdrop_finished"): $"../DeployLayer/Ambush偷听对话".enabled = false eavesdrop_window.visible = false - # 小蝉消失 - var xiaochan = $"../DeployLayer/Ambush小蝉消失" as Ambush2D - if xiaochan.played: - xiaochan.visible = false - $"../DeployLayer/Closeup敲门游戏".exit.connect(_on_knock_exit) counter = $"../DeployLayer/Interactable柜子" as Interactable2D counter.interacted.connect(_on_counter_interacted) - if ArchiveManager.get_global_value("c02_counter_pushed_out"): + if ArchiveManager.get_global_value(&"c02_counter_pushed_out"): counter.visible = true - if not ArchiveManager.get_global_value("c02_burning"): + if not ArchiveManager.get_global_value(&"c02_burning"): # 点燃前 counter.enabled = true - elif ArchiveManager.get_global_value("c02_burning_end"): + elif EventManager.get_stage(&"c02_burning_end") == 2: # 离开后 counter.visible = false var new_bg = $"../DeployLayer/火灾背景" # 点燃后~离开前 if ( - ArchiveManager.get_global_value("c02_burning") - and not ArchiveManager.get_global_value("c02_burning_end") + ArchiveManager.get_global_value(&"c02_burning") + and not EventManager.get_stage(&"c02_burning_end") == 2 ): new_bg.modulate.a = 1.0 # 火灾开始后,无需 enable @@ -73,9 +66,9 @@ func _on_ground_ready() -> void: madman_npc = $"../DeployLayer/Npc井边疯子" # c02_madman_hitwall 之后, c02_ball_game_stage==3(游戏结束) 之前;同时 eavesdrop_finished if ( - ArchiveManager.get_global_value("c02_madman_hitwall") - and ArchiveManager.get_global_value("c02_ball_game_stage", 0) < 3 - and ArchiveManager.get_global_value("c02_eavesdrop_finished") + ArchiveManager.get_global_value(&"c02_madman_hitwall") + and ArchiveManager.get_global_value(&"c02_ball_game_stage", 0) < 3 + and ArchiveManager.get_global_value(&"c02_eavesdrop_finished") ): madman_npc.visible = true madman_npc.get_node("StaticBody2D/CollisionShape2D").disabled = false @@ -83,13 +76,14 @@ func _on_ground_ready() -> void: madman_npc.visible = false madman_npc.get_node("StaticBody2D/CollisionShape2D").disabled = true - if ArchiveManager.get_global_value("c02_the_blind_room_unlocked"): + if ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked"): # 奠字 + 纸钱 $"../DeployLayer/新背景_奠".visible = true small_shoe = $"../DeployLayer/Pickable小鞋子" as Pickable2D - if ArchiveManager.get_global_value("c02_madman_interacted", false) and not data.camera_played: + # 1: 交互; 2:已掉落 + if EventManager.get_stage("c02_madman_interacted") == 1: SceneManager.lock_player(0) # 等待转场 await get_tree().create_timer(1.0).timeout @@ -112,21 +106,15 @@ func _on_ground_ready() -> void: $"../BGSprite2D/无头小蝶".play() $"../CameraFocusMarker".limit_top -= 1000 SceneManager.pop_debug_dialog_info("美术", "小鞋子掉落") - elif data.camera_played: + elif EventManager.get_stage("c02_madman_interacted") == 2: small_shoe.enabled = true bully_layer = $"../DeployLayer/霸凌" burning_layer = $"../DeployLayer/火灾" - if ArchiveManager.get_global_value("c02_ball_game_stage", 0) >= 3: + if ArchiveManager.get_global_value(&"c02_ball_game_stage", 0) >= 3: _setup_bully_or_burning(true) -func xiaochan_disappear(): - var xc = $"../DeployLayer/Ambush小蝉消失/ProSprite" as AnimatedSprite2D - xc.play("小蝉背对转头") - create_tween().tween_property(xc, "modulate:a", 0.0, 2.2) - - func drop_shoe(progress: float, y1: float, y2: float): var t = ease(progress, 4.0) small_shoe.position.y = lerp(y1, y2, t) @@ -135,19 +123,20 @@ func drop_shoe(progress: float, y1: float, y2: float): func cg_end() -> void: SceneManager.unlock_player() # SceneManager.enable_prop_item("prop_小鞋子2") - set_data("camera_played", true) + EventManager.set_stage("c02_madman_interacted", 2) $"../CameraFocusMarker".limit_top += 1000 create_tween().tween_property(fg, "modulate:a", 1.0, 1.5) func _on_gate_failed() -> void: - if not ArchiveManager.get_global_value("c02_open_gate_first_failed"): - ArchiveManager.set_global_entry("c02_open_gate_first_failed", true) + if not ArchiveManager.get_global_value(&"c02_open_gate_first_failed"): + ArchiveManager.set_global_entry(&"c02_open_gate_first_failed", true) SceneManager.pop_os_with_str("c02_s03_铁门") func _on_gate_interacted() -> void: gate.get_node("Wall/CollisionShape2D").disabled = true + EventManager.set_stage_if_greater("handnote_stage", 3) func _on_knock_exit(arg): @@ -194,31 +183,31 @@ func eavesdrop() -> void: eavesdrop_window.visible = false await get_tree().create_timer(1.0).timeout SceneManager.player_action(14, true) - ArchiveManager.set_global_entry("c02_eavesdrop_finished", true) + ArchiveManager.set_global_entry(&"c02_eavesdrop_finished", true) await get_tree().create_timer(1.5).timeout SceneManager.unlock_player() func _setup_bully_or_burning(reenter_scene := false): - if not ArchiveManager.get_global_value("c02_eavesdrop_finished"): + if not ArchiveManager.get_global_value(&"c02_eavesdrop_finished"): # 弹珠游戏结束后就开始霸凌,此时禁止偷听。第一章结束后(火灾结束),第二章再偷听 $"../DeployLayer/Ambush偷听对话".enabled = false eavesdrop_window.visible = false - if ArchiveManager.get_global_value("c02_burning_end"): + if EventManager.get_stage(&"c02_burning_end") == 2: # 火灾演出完全结束 burning_layer.visible = false bully_layer.visible = false bully_layer.get_node("Ambush点火游戏阻挡右移").enabled = false bully_layer.get_node("wall/CollisionShape2D").disabled = true return - if not ArchiveManager.get_global_value("c02_burning", false): + if not ArchiveManager.get_global_value(&"c02_burning", false): bully_layer.get_node("Ambush点火游戏阻挡右移").enabled = true bully_layer.get_node("wall/CollisionShape2D").disabled = false burning_layer.visible = false bully_layer.visible = true # 霸凌童谣直接播放 $"../DeployLayer/霸凌/f1/Sfx2D霸凌童谣".play() - if not ArchiveManager.get_global_value("c02_ready_to_fire"): + if not ArchiveManager.get_global_value(&"c02_ready_to_fire"): bully_layer.get_node("Ambush霸凌").enabled = true else: GlobalFunctor.c02_fire_count_down_try_start() @@ -262,7 +251,7 @@ func bully_end(): # SceneManager.pop_debug_dialog_info("美术", "手中小猫玩具微亮") SceneManager.pop_os_with_str("c02_霸凌救小蝉开始") # 准备好点火 - ArchiveManager.set_global_entry("c02_ready_to_fire", true) + ArchiveManager.set_global_entry(&"c02_ready_to_fire", true) GlobalFunctor.c02_fire_count_down_try_start() @@ -280,18 +269,18 @@ func block_right_move(): func _on_counter_interacted(): - # if not ArchiveManager.get_global_value("c02_eavesdrop_finished"): + # if not ArchiveManager.get_global_value(&"c02_eavesdrop_finished"): # SceneManager.pop_os_with_str("c02_点火前偷听对话") # return - if not ArchiveManager.get_global_value("c02_ready_to_fire"): + if not ArchiveManager.get_global_value(&"c02_ready_to_fire"): SceneManager.pop_os_with_str("c02_火灾等待准备") return counter.enabled = false - if not ArchiveManager.get_global_value("c02_burning"): + if not ArchiveManager.get_global_value(&"c02_burning"): GlobalFunctor.c02_fire_count_down_stop() # 6: 低位点火 SceneManager.freeze_player(0, 6) - ArchiveManager.set_global_entry("c02_burning", true) + ArchiveManager.set_global_entry(&"c02_burning", true) var new_bg = $"../DeployLayer/火灾背景" var light = $"../DirectionalLight2D" # var moon_light = $"../AmbientLayer/PointLight2D" @@ -334,4 +323,6 @@ func run_away(): var tween = create_tween() tween.tween_property(node, "global_position:x", 20.0, 18.0) await tween.finished + # 1: 牵手跑结束; 2: 谢幕演出结束 + EventManager.set_stage(&"c02_burning_end", 1) SceneManager.get_ground_loader().transition_to_scene("c02_s06", "right") diff --git a/scene/ground/scene/c02/s03_animation.gd.uid b/scene/ground/scene/c02/s03_院子.gd.uid similarity index 100% rename from scene/ground/scene/c02/s03_animation.gd.uid rename to scene/ground/scene/c02/s03_院子.gd.uid diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 53169379..42435490 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1,13 +1,14 @@ -[gd_scene load_steps=78 format=3 uid="uid://djc2uaefhmu7"] +[gd_scene load_steps=80 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_animation.gd" id="2_dt5aj"] +[ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_院子.gd" id="2_dt5aj"] [ext_resource type="Texture2D" uid="uid://b3odt4ojsvu5n" path="res://asset/art/scene/c02/s03_公寓一楼院子/bg_一楼.png" id="3_sqv8l"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="4_gd6xp"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ygnci"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="5_00b7a"] [ext_resource type="Texture2D" uid="uid://f8yjp5ggr8qw" path="res://asset/art/scene/c02/s03_公寓一楼院子/算卦布.png" id="6_1tart"] [ext_resource type="Texture2D" uid="uid://0uh6qaalhqju" path="res://asset/art/scene/c02/s11_一楼火灾/总背景/bg_院子1楼火灾.png" id="6_d7h4s"] +[ext_resource type="AudioStream" uid="uid://bhaws2ungqaf5" path="res://asset/audio/sfx/交互/角色/sfx_哼歌.ogg" id="6_jhod7"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="6_lq23y"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="6_t48d1"] [ext_resource type="AudioStream" uid="uid://civuwccn6v6yk" path="res://asset/audio/sfx/交互/第一章/sfx_闷雷声.wav" id="6_vddfx"] @@ -39,6 +40,7 @@ [ext_resource type="PackedScene" uid="uid://bxpexbk7f3rax" path="res://scene/ground/script/c02/敲门游戏.tscn" id="24_0o4rt"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="25_iyaiw"] [ext_resource type="Texture2D" uid="uid://bcji0qu0u6yo0" path="res://asset/art/scene/c02/s03_公寓一楼院子/李氏癞子窗户/李氏癞子窗户人影.png" id="26_mmgys"] +[ext_resource type="Script" uid="uid://jarjchqsx4u1" path="res://scene/ground/script/c02/event小蝉哼歌.gd" id="26_o1qbs"] [ext_resource type="PackedScene" uid="uid://drq7ul1eikypv" path="res://scene/ground/script/c02/井特写.tscn" id="26_yy4fp"] [ext_resource type="Texture2D" uid="uid://cq65jye47jbxw" path="res://asset/art/scene/c02/s03_公寓一楼院子/李氏癞子窗户/李氏癞子窗户人影2.png" id="27_7ey5t"] [ext_resource type="Texture2D" uid="uid://cuno8okh8ytw2" path="res://asset/art/scene/c02/s10_空房间/柜子.png" id="32_cpifc"] @@ -301,7 +303,15 @@ bus = &"game_sfx" script = ExtResource("4_ygnci") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" -[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="2"] +[node name="Sfx小蝉哼歌" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +process_mode = 1 +stream = ExtResource("6_jhod7") +volume_db = 16.0 +bus = &"game_sfx" +script = ExtResource("4_ygnci") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="3"] script = ExtResource("6_lq23y") autoplay_group = &"c02_楼道2" metadata/_custom_type_script = "uid://cpejxlfni6n52" @@ -381,17 +391,7 @@ position = Vector2(132, 10) sprite_frames = ExtResource("4_gd6xp") animation = &"肉铺门口血迹" -[node name="Ambush小蝉消失" parent="Ground/DeployLayer" index="9" instance=ExtResource("25_iyaiw")] -position = Vector2(274, 64) -hook_method = "xiaochan_disappear" - -[node name="ProSprite" parent="Ground/DeployLayer/Ambush小蝉消失" instance=ExtResource("33_ycojw")] -position = Vector2(211, -7) -sprite_frames = ExtResource("4_gd6xp") -animation = &"小蝉背对转头" -autoplay = "小蝉背对呼吸帧" - -[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="10"] +[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="9"] [node name="灯笼" type="Sprite2D" parent="Ground/DeployLayer/灯笼"] position = Vector2(1644, -86) @@ -438,7 +438,7 @@ color = Color(1, 0.0980392, 0, 1) energy = 0.7 texture = SubResource("GradientTexture2D_kyfht") -[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="11"] +[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="10"] visible = false [node name="地上纸钱" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"] @@ -473,7 +473,7 @@ position = Vector2(898, -162) z_index = 15 position = Vector2(1964, -209) -[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="12"] +[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="11"] visible = false [node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")] @@ -500,11 +500,11 @@ range_layer_max = 2 range_item_cull_mask = 4 texture = SubResource("GradientTexture2D_3nako") -[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="13" instance=ExtResource("25_iyaiw")] +[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="12" instance=ExtResource("25_iyaiw")] position = Vector2(1611, 46) hook_os_key = "c02_院子_要下雨" -[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("7_em2ma")] +[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="13" instance=ExtResource("7_em2ma")] position = Vector2(809, 75) sign_mark_offset = Vector2(0, -16.88) enabled = false @@ -515,6 +515,22 @@ position = Vector2(0, -7) scale = Vector2(0.15, 0.15) texture = ExtResource("8_plfv5") +[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="14"] +position = Vector2(800, -173) +script = ExtResource("26_o1qbs") +event = "c02_madman_interacted" +metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" + +[node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D小蝉哼歌"] +process_mode = 1 +position = Vector2(-2, -1) +stream = ExtResource("6_jhod7") +volume_db = 16.0 +max_distance = 1000.0 +bus = &"game_sfx" +script = ExtResource("54_o1qbs") +metadata/_custom_type_script = "uid://wapo47a1oddf" + [node name="Interactable铁门" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_xt8j0")] light_mask = 5 position = Vector2(1222, 28) @@ -524,12 +540,6 @@ action_key = 3 interacted_texture = ExtResource("9_liq0c") prop_key = "prop_老虎钳" -[node name="SfxInvalid" parent="Ground/DeployLayer/Interactable铁门" index="0"] -process_mode = 1 - -[node name="SfxSuccess" parent="Ground/DeployLayer/Interactable铁门" index="1"] -process_mode = 1 - [node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Area2D" index="0"] shape = SubResource("RectangleShape2D_er6ob") diff --git a/scene/ground/scene/c02/s04_animation.gd b/scene/ground/scene/c02/s04_保卫科.gd similarity index 90% rename from scene/ground/scene/c02/s04_animation.gd rename to scene/ground/scene/c02/s04_保卫科.gd index 1d5b3dd5..2e0fa984 100644 --- a/scene/ground/scene/c02/s04_animation.gd +++ b/scene/ground/scene/c02/s04_保卫科.gd @@ -19,7 +19,7 @@ var little_hand func _on_ground_ready() -> void: closeup_tin_coin = $"../DeployLayer/Closeup折锡纸" as Closeup2D - if not ArchiveManager.get_global_value("c02_tin_coin_taken"): + if not ArchiveManager.get_global_value(&"c02_tin_coin_taken"): closeup_tin_coin.exit.connect(_on_closeup_tin_coin_exited) little_hand = $"../DeployLayer/小手讨东西" @@ -43,7 +43,7 @@ func _on_little_hand_first_interacted() -> void: func _on_closeup_tin_coin_exited(arg = null): if arg == true: - ArchiveManager.set_global_entry("c02_tin_coin_taken", true) + ArchiveManager.set_global_entry(&"c02_tin_coin_taken", true) SceneManager.enable_prop_item_silently("prop_锡箔元宝") await get_tree().create_timer(0.5).timeout SceneManager.enable_prop_item("prop_锡箔元宝") diff --git a/scene/ground/scene/c02/s04_animation.gd.uid b/scene/ground/scene/c02/s04_保卫科.gd.uid similarity index 100% rename from scene/ground/scene/c02/s04_animation.gd.uid rename to scene/ground/scene/c02/s04_保卫科.gd.uid diff --git a/scene/ground/scene/c02/s04_保卫科.tscn b/scene/ground/scene/c02/s04_保卫科.tscn index d69631fb..229c6271 100644 --- a/scene/ground/scene/c02/s04_保卫科.tscn +++ b/scene/ground/scene/c02/s04_保卫科.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=21 format=3 uid="uid://bivc5cdap370p"] +[gd_scene load_steps=24 format=3 uid="uid://bivc5cdap370p"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2jej0"] -[ext_resource type="Script" uid="uid://dmhh4g47bdxxy" path="res://scene/ground/scene/c02/s04_animation.gd" id="2_jyere"] +[ext_resource type="Script" uid="uid://dmhh4g47bdxxy" path="res://scene/ground/scene/c02/s04_保卫科.gd" id="2_jyere"] [ext_resource type="Texture2D" uid="uid://7jvg2flkapj3" path="res://asset/art/scene/c02/s04_保卫科/bg_保卫科.png" id="3_66gue"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ffvrp"] [ext_resource type="SpriteFrames" uid="uid://c2sjavnptjn" path="res://asset/art/gif/c02_保卫科/c02_保卫科_frames.tres" id="4_svuj3"] @@ -19,6 +19,9 @@ [ext_resource type="PackedScene" uid="uid://xovlfee503a4" path="res://scene/ground/script/c02/小手讨东西.tscn" id="10_a43aq"] [ext_resource type="Texture2D" uid="uid://dtmd13ktss5hk" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光5.png" id="10_svuj3"] [ext_resource type="Texture2D" uid="uid://v6q6ao6fiqm1" path="res://asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png" id="11_ffvrp"] +[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/inspectable.tscn" id="19_k74x7"] +[ext_resource type="Texture2D" uid="uid://day38kany2gmr" path="res://asset/art/scene/c02/小蝉寻人启事/e_寻人启事完整.png" id="20_g8amr"] +[ext_resource type="Texture2D" uid="uid://ce3d785v5lxg2" path="res://asset/art/scene/c02/小蝉寻人启事/ux_寻人启事完整.png" id="21_cq2m4"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_gk1h4"] resource_local_to_scene = true @@ -40,6 +43,7 @@ data = { oneshot_animation = "" [node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] +process_mode = 1 stream = ExtResource("5_xy3nq") bus = &"game_sfx" script = ExtResource("4_ffvrp") @@ -102,6 +106,12 @@ hide_texture = true gaslight_texture = ExtResource("9_a43aq") ground_light_texture = ExtResource("10_svuj3") +[node name="SfxInvalid" parent="Ground/DeployLayer/煤油灯" index="0"] +process_mode = 1 + +[node name="SfxSuccess" parent="Ground/DeployLayer/煤油灯" index="1"] +process_mode = 1 + [node name="CollisionShape2D" parent="Ground/DeployLayer/煤油灯/Area2D" index="0"] shape = SubResource("RectangleShape2D_gk1h4") @@ -121,6 +131,12 @@ offset_bottom = -19.0 [node name="小手讨东西" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_a43aq")] position = Vector2(295, -6) +[node name="Local寻人启事" parent="Ground/DeployLayer" index="8" instance=ExtResource("19_k74x7")] +position = Vector2(116, -1) +texture = ExtResource("20_g8amr") +texture_cover = ExtResource("21_cq2m4") +content_key = "c02_寻人启事_完整" + [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(447, 98) facing_direction = Vector2(-1, 0) diff --git a/scene/ground/scene/c02/s05_animation.gd b/scene/ground/scene/c02/s05_一楼内侧楼道.gd similarity index 66% rename from scene/ground/scene/c02/s05_animation.gd rename to scene/ground/scene/c02/s05_一楼内侧楼道.gd index 89989c90..fe1e5f78 100644 --- a/scene/ground/scene/c02/s05_animation.gd +++ b/scene/ground/scene/c02/s05_一楼内侧楼道.gd @@ -18,7 +18,7 @@ var pick_meat_amush_allowed = false func _on_ground_ready() -> void: # 粘鼠游戏 - if ArchiveManager.get_global_value("c02_meat_dropping"): + if ArchiveManager.get_global_value(&"c02_meat_dropping"): # 肉掉落,检查粘鼠板是否启用 if $"../DeployLayer/Interactable粘鼠板".interacted_times > 0: if not $"../DeployLayer/Pickable掉落的肉".picked: @@ -27,19 +27,23 @@ func _on_ground_ready() -> void: sprite.play() else: $"../DeployLayer/Interactable粘鼠板/粘鼠死亡".visible = true - ArchiveManager.set_global_entry("c02_meat_given", true) + ArchiveManager.set_global_entry(&"c02_meat_given", true) else: pick_meat_amush_allowed = true - if ArchiveManager.get_global_value("c02_meat_given"): + if ArchiveManager.get_global_value(&"c02_meat_given"): $"../DeployLayer/Pickable掉落的肉".enabled = true + var xiaochan = $"../DeployLayer/Ambush小蝉消失" as Ambush2D var madman = $"../DeployLayer/Npc疯子" as Npc2D madman.interacted.connect(_on_madman_interacted) - - if ArchiveManager.get_global_value("c02_madman_hitwall", false): + if ArchiveManager.get_global_value(&"c02_madman_hitwall", false): madman.queue_free() # 疯子消失后启用杂物堆 $"../DeployLayer/Ambush杂物堆".enabled = true + # 杂物堆前,首次交互时显示小蝉 + if not xiaochan.played: + xiaochan.enabled = true + xiaochan.visible = true # 老鼠叼肉 ambush @@ -49,7 +53,7 @@ func mouse_pick_meat() -> void: pick_meat_amush_allowed = false SceneManager.freeze_player(2.0) # 标记为已掉落 - ArchiveManager.set_global_entry("c02_meat_dropping", false) + ArchiveManager.set_global_entry(&"c02_meat_dropping", false) var sprite = $"../DeployLayer/老鼠叼肉" sprite.visible = true sprite.play() @@ -58,13 +62,19 @@ func mouse_pick_meat() -> void: func _on_madman_interacted() -> void: - if ArchiveManager.get_global_value("c02_madman_interacted"): + if EventManager.get_stage("c02_madman_interacted") > 0: return - ArchiveManager.set_global_entry("c02_madman_interacted", true) await DialogueManager.dialogue_ended + EventManager.set_stage("c02_madman_interacted", 1) SceneManager.pop_os_with_str(tr("c02_一楼疯子互动后")) +func xiaochan_disappear(): + var xc = $"../DeployLayer/Ambush小蝉消失/ProSprite" as AnimatedSprite2D + xc.play("小蝉背对转头") + create_tween().tween_property(xc, "modulate:a", 0.0, 2.2) + + func wood_puppet() -> void: SceneManager.enable_prop_item("prop_木头人偶") diff --git a/scene/ground/scene/c02/s05_animation.gd.uid b/scene/ground/scene/c02/s05_一楼内侧楼道.gd.uid similarity index 100% rename from scene/ground/scene/c02/s05_animation.gd.uid rename to scene/ground/scene/c02/s05_一楼内侧楼道.gd.uid diff --git a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn index bbd29404..2dd5f4ba 100644 --- a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn +++ b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=35 format=3 uid="uid://cp8d3ag5nbjq0"] +[gd_scene load_steps=39 format=3 uid="uid://cp8d3ag5nbjq0"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_6w6et"] -[ext_resource type="Script" uid="uid://dydpmjpcvt3v1" path="res://scene/ground/scene/c02/s05_animation.gd" id="2_70lf6"] +[ext_resource type="Script" uid="uid://dydpmjpcvt3v1" path="res://scene/ground/scene/c02/s05_一楼内侧楼道.gd" id="2_70lf6"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_laquj"] [ext_resource type="Texture2D" uid="uid://dbtepltemtmy2" path="res://asset/art/scene/c02/s05_一楼内侧楼道/bg_楼道背景.png" id="3_rcuxq"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_tueh3"] @@ -21,7 +21,11 @@ [ext_resource type="SpriteFrames" uid="uid://cvwdqa8gyqj4g" path="res://asset/art/gif/c02_老鼠拖肉/c02_老鼠拖肉_frames.tres" id="17_bk7rf"] [ext_resource type="Texture2D" uid="uid://d1etd7hr23rir" path="res://asset/art/scene/c02/s05_一楼内侧楼道/e_掉落的肉.png" id="18_bk7rf"] [ext_resource type="Texture2D" uid="uid://bp84w8keuelyj" path="res://asset/art/scene/c02/s10_空房间/e_蜡烛-sheet.png" id="21_heq1x"] +[ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="22_heq1x"] [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="22_laquj"] +[ext_resource type="Script" uid="uid://jarjchqsx4u1" path="res://scene/ground/script/c02/event小蝉哼歌.gd" id="23_4c54f"] +[ext_resource type="AudioStream" uid="uid://bhaws2ungqaf5" path="res://asset/audio/sfx/交互/角色/sfx_哼歌.ogg" id="24_7mq0m"] +[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="25_4k6pw"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_n48fn"] @@ -115,7 +119,7 @@ script = ExtResource("3_laquj") autoplay_group = &"c02_楼道1" metadata/_custom_type_script = "uid://cpejxlfni6n52" -[node name="BGSprite2D" parent="Ground" index="1"] +[node name="BGSprite2D" parent="Ground" index="2"] light_mask = 5 scale = Vector2(0.5, 0.5) texture = ExtResource("3_rcuxq") @@ -270,9 +274,42 @@ energy = 1.2 texture = ExtResource("22_laquj") texture_scale = 0.3 -[node name="MainPlayer" parent="Ground" index="4"] +[node name="Ambush小蝉消失" parent="Ground/DeployLayer" index="16" instance=ExtResource("8_rcuxq")] +visible = false +position = Vector2(464, 56) +enabled = false +hook_method = "xiaochan_disappear" + +[node name="ProSprite" parent="Ground/DeployLayer/Ambush小蝉消失" instance=ExtResource("22_heq1x")] +position = Vector2(-270, 7) +sprite_frames = ExtResource("7_mrltr") +animation = &"小蝉背对呼吸帧" +autoplay = "小蝉背对呼吸帧" +flip_h = true + +[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="17"] +position = Vector2(92, 38) +script = ExtResource("23_4c54f") +event = "c02_madman_interacted" +metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" + +[node name="Sfx2D小蝉哼歌" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D小蝉哼歌"] +process_mode = 1 +position = Vector2(-103, -11) +stream = ExtResource("24_7mq0m") +volume_db = 16.0 +max_distance = 1000.0 +bus = &"game_sfx" +script = ExtResource("25_4k6pw") +loop = true +metadata/_custom_type_script = "uid://wapo47a1oddf" + +[node name="MainPlayer" parent="Ground" index="5"] position = Vector2(41, 98) +[node name="AudioListener2D" type="AudioListener2D" parent="Ground/MainPlayer" index="6"] +current = true + [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] position = Vector2(45, -9) scale = Vector2(1.1, 1.1) @@ -281,7 +318,7 @@ texture = ExtResource("8_tueh3") [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(37, 150, 700, 150) -[node name="DirectionalLight2D" parent="Ground" index="7"] +[node name="DirectionalLight2D" parent="Ground" index="8"] visible = false energy = 0.9 blend_mode = 1 diff --git a/scene/ground/scene/c02/s06_animation.gd b/scene/ground/scene/c02/s06_二楼.gd similarity index 84% rename from scene/ground/scene/c02/s06_animation.gd rename to scene/ground/scene/c02/s06_二楼.gd index b6701be7..54f5eebc 100644 --- a/scene/ground/scene/c02/s06_animation.gd +++ b/scene/ground/scene/c02/s06_二楼.gd @@ -21,9 +21,11 @@ var c02_final_layer func _on_ground_ready() -> void: c02_final_layer = $"../DeployLayer/c02_final" + if ( - ArchiveManager.get_global_value("c02_burning") - and not ArchiveManager.get_global_value("c02_burning_end") + ArchiveManager.get_global_value(&"c02_burning") + # 1: 牵手跑结束; 2: 谢幕演出结束 + and EventManager.get_stage(&"c02_burning_end") == 1 ): # 第一章火灾结束,尾声演出 _c02_final_show.call_deferred() @@ -50,14 +52,14 @@ func _on_ground_ready() -> void: closeup_ball = $"../DeployLayer/Closeup弹珠游戏" as Closeup2D - if ArchiveManager.get_global_value("c02_the_blind_room_unlocked"): + if ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked"): $"../DeployLayer/portal_1".status = "opened" ball_game_boys_ambush = $"../DeployLayer/Ambush三男孩" # 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束 if ( - ArchiveManager.get_global_value("c02_the_blind_room_unlocked", false) - and ArchiveManager.get_global_value("c02_ball_game_stage", 0) < 3 + ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked", false) + and ArchiveManager.get_global_value(&"c02_ball_game_stage", 0) < 3 ): # 进入瞎子卧室后,可开始弹珠游戏 ball_game_boys_ambush.enabled = true @@ -85,11 +87,11 @@ func _on_mice_hole_interacted(): if mice_hole.interacted_times >= 2: # 触发疯子撞墙,疯子在一楼内侧过道中消失 - ArchiveManager.set_global_entry("c02_madman_hitwall", true) - ArchiveManager.set_global_entry("c02_s02_mouse_push_shoe1", true) + ArchiveManager.set_global_entry(&"c02_madman_hitwall", true) + ArchiveManager.set_global_entry(&"c02_s02_mouse_push_shoe1", true) # 老鼠散开并不再跟随 - ArchiveManager.set_global_entry("c02_mouse_follow_player", false) + ArchiveManager.set_global_entry(&"c02_mouse_follow_player", false) $"../DeployLayer/自动跟随的老鼠".flush_right_and_disable() var sprite = $"../DeployLayer/疯子撞墙" @@ -102,10 +104,10 @@ func _on_mice_hole_interacted(): func boys_ball_game() -> void: # 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束 - var stage = ArchiveManager.get_global_value("c02_ball_game_stage", 0) + var stage = ArchiveManager.get_global_value(&"c02_ball_game_stage", 0) if stage == 0: - ArchiveManager.set_global_entry("c02_ball_game_stage", 1) - ArchiveManager.set_global_entry("c02_pliers_to_ball", true) + ArchiveManager.set_global_entry(&"c02_ball_game_stage", 1) + ArchiveManager.set_global_entry(&"c02_pliers_to_ball", true) SceneManager.freeze_player(0) DialogueManager.show_dialogue_balloon(dialogue_c02, "c02_s05_三男孩弹珠游戏1") await DialogueManager.dialogue_ended @@ -170,4 +172,6 @@ func _on_exit_final_show(_arg): await animation_finished c02_final_layer.queue_free() SceneManager.release_player() - ArchiveManager.set_global_entry("c02_burning_end", true) + # 1: 牵手跑结束; 2: 谢幕演出结束 + EventManager.set_stage(&"c02_burning_end", 2) + EventManager.set_stage_if_greater("handnote_stage", 5) diff --git a/scene/ground/scene/c02/s06_animation.gd.uid b/scene/ground/scene/c02/s06_二楼.gd.uid similarity index 100% rename from scene/ground/scene/c02/s06_animation.gd.uid rename to scene/ground/scene/c02/s06_二楼.gd.uid diff --git a/scene/ground/scene/c02/s06_二楼.tscn b/scene/ground/scene/c02/s06_二楼.tscn index f5bf2850..63a6e425 100644 --- a/scene/ground/scene/c02/s06_二楼.tscn +++ b/scene/ground/scene/c02/s06_二楼.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=52 format=3 uid="uid://cootarwb44vvh"] +[gd_scene load_steps=49 format=3 uid="uid://cootarwb44vvh"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qkymk"] -[ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_animation.gd" id="2_4dg6u"] +[ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_二楼.gd" id="2_4dg6u"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_h3h1a"] [ext_resource type="Texture2D" uid="uid://6ol2om68cd1q" path="res://asset/art/scene/c02/s06_二楼楼道/bg_背景.png" id="3_och2w"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_2e08x"] @@ -34,9 +34,6 @@ [ext_resource type="AudioStream" uid="uid://bxp3f263aaqkp" path="res://asset/audio/sfx/脚步/02_室外_1.wav" id="29_tqnu8"] [ext_resource type="AudioStream" uid="uid://d3h0xe0qtai18" path="res://asset/audio/sfx/脚步/02_室外_2.wav" id="30_r7b2r"] [ext_resource type="AudioStream" uid="uid://dwa7xdvg5o0i" path="res://asset/audio/sfx/脚步/02_室外_3.wav" id="31_rpn6g"] -[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/inspectable.tscn" id="32_4ndyv"] -[ext_resource type="Texture2D" uid="uid://day38kany2gmr" path="res://asset/art/scene/c02/小蝉寻人启事/e_寻人启事完整.png" id="33_h3h1a"] -[ext_resource type="Texture2D" uid="uid://ce3d785v5lxg2" path="res://asset/art/scene/c02/小蝉寻人启事/ux_寻人启事完整.png" id="34_3u30v"] [ext_resource type="Texture2D" uid="uid://ca3km2f6ncrqo" path="res://asset/art/scene/c02/s06_二楼楼道/e_小蝉偷看.png" id="37_osg51"] [sub_resource type="Animation" id="Animation_k01ve"] @@ -972,12 +969,6 @@ disable_prop_after_interacted = true prop_key = "prop_小鞋子1" prop_key2 = "prop_小鞋子2" -[node name="SfxInvalid" parent="Ground/DeployLayer/Interactable老鼠洞" index="0"] -process_mode = 1 - -[node name="SfxSuccess" parent="Ground/DeployLayer/Interactable老鼠洞" index="1"] -process_mode = 1 - [node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable老鼠洞/Area2D" index="0"] shape = SubResource("RectangleShape2D_7kxvk") @@ -1159,13 +1150,7 @@ color = Color(0.895506, 0.638359, 0.208885, 1) energy = 0.0 texture = SubResource("GradientTexture2D_p6da7") -[node name="Local寻人启事" parent="Ground/DeployLayer" index="18" instance=ExtResource("32_4ndyv")] -position = Vector2(749, -2) -texture = ExtResource("33_h3h1a") -texture_cover = ExtResource("34_3u30v") -content_key = "c02_寻人启事_完整" - -[node name="Ambush小蝉偷看" parent="Ground/DeployLayer" index="19" instance=ExtResource("14_k01ve")] +[node name="Ambush小蝉偷看" parent="Ground/DeployLayer" index="18" instance=ExtResource("14_k01ve")] position = Vector2(553, -5) texture = ExtResource("37_osg51") collision_width_and_x = Vector2(150, 0) diff --git a/scene/ground/scene/c02/s07_animation.gd b/scene/ground/scene/c02/s07_二楼内侧楼道.gd similarity index 94% rename from scene/ground/scene/c02/s07_animation.gd rename to scene/ground/scene/c02/s07_二楼内侧楼道.gd index 150f95c2..2f5b7f87 100644 --- a/scene/ground/scene/c02/s07_animation.gd +++ b/scene/ground/scene/c02/s07_二楼内侧楼道.gd @@ -28,6 +28,7 @@ func _on_flyer_exit(arg): if arg: set_data("flyer_shaven", true) take_off_flyer() + EventManager.set_stage_if_greater("handnote_stage", 2) func take_off_flyer(immediatelly = false): diff --git a/scene/ground/scene/c02/s07_animation.gd.uid b/scene/ground/scene/c02/s07_二楼内侧楼道.gd.uid similarity index 100% rename from scene/ground/scene/c02/s07_animation.gd.uid rename to scene/ground/scene/c02/s07_二楼内侧楼道.gd.uid diff --git a/scene/ground/scene/c02/s07_二楼内侧楼道.tscn b/scene/ground/scene/c02/s07_二楼内侧楼道.tscn index a1497b1c..6aaf6ac2 100644 --- a/scene/ground/scene/c02/s07_二楼内侧楼道.tscn +++ b/scene/ground/scene/c02/s07_二楼内侧楼道.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=15 format=3 uid="uid://t4xjt774ngwh"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_oao56"] -[ext_resource type="Script" uid="uid://cnjdxjni5v3cs" path="res://scene/ground/scene/c02/s07_animation.gd" id="2_t0s64"] +[ext_resource type="Script" uid="uid://cnjdxjni5v3cs" path="res://scene/ground/scene/c02/s07_二楼内侧楼道.gd" id="2_t0s64"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_geise"] [ext_resource type="Texture2D" uid="uid://u7rp66mboqq4" path="res://asset/art/scene/c02/s07_二楼内侧楼道/bg_背景.png" id="3_t0s64"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_5krke"] diff --git a/scene/ground/scene/c02/s08_animation.gd b/scene/ground/scene/c02/s08_瞎子卧室.gd similarity index 98% rename from scene/ground/scene/c02/s08_animation.gd rename to scene/ground/scene/c02/s08_瞎子卧室.gd index d7efafdc..2a4307eb 100644 --- a/scene/ground/scene/c02/s08_animation.gd +++ b/scene/ground/scene/c02/s08_瞎子卧室.gd @@ -37,7 +37,7 @@ func _on_ground_ready() -> void: # # 如果没有出隧道,则设置镜头右侧 limit + 500 # SceneManager.get_camera_marker().limit_right += 500 var looked_back = ambush_lookback.played - var boxcat_played = ArchiveManager.get_global_value("c02_the_blind_room_unlocked") + var boxcat_played = ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked") if gaslight.interacted_times > 0: ambush_lookback.enabled = true else: diff --git a/scene/ground/scene/c02/s08_animation.gd.uid b/scene/ground/scene/c02/s08_瞎子卧室.gd.uid similarity index 100% rename from scene/ground/scene/c02/s08_animation.gd.uid rename to scene/ground/scene/c02/s08_瞎子卧室.gd.uid diff --git a/scene/ground/scene/c02/s08_瞎子卧室.tscn b/scene/ground/scene/c02/s08_瞎子卧室.tscn index 263e98ea..852678e9 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.tscn +++ b/scene/ground/scene/c02/s08_瞎子卧室.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=40 format=3 uid="uid://ce2vyyg2reg52"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"] -[ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"] +[ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_瞎子卧室.gd" id="2_m4uw8"] [ext_resource type="Texture2D" uid="uid://v3sj36aijq5b" path="res://asset/art/scene/c02/s08_瞎子卧室/bg_瞎子卧室.png" id="3_iares"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_quq80"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_t3h08"] diff --git a/scene/ground/scene/c02/s09_animation.gd b/scene/ground/scene/c02/s09_裂缝.gd similarity index 94% rename from scene/ground/scene/c02/s09_animation.gd rename to scene/ground/scene/c02/s09_裂缝.gd index bdc60f3b..624e6812 100644 --- a/scene/ground/scene/c02/s09_animation.gd +++ b/scene/ground/scene/c02/s09_裂缝.gd @@ -23,11 +23,11 @@ func _on_ground_ready() -> void: eye_light.energy = 0 var counter = $"../DeployLayer/空房间残留物/柜子" # counter 默认在 s10 中 x 为 364.0 - if ArchiveManager.get_global_value("c02_counter_pushed_out"): + if ArchiveManager.get_global_value(&"c02_counter_pushed_out"): counter.queue_free() else: var default_counter_x = 364.0 - var counter_x = ArchiveManager.get_global_value("c02_counter_x", default_counter_x) + var counter_x = ArchiveManager.get_global_value(&"c02_counter_x", default_counter_x) var diff = counter_x - default_counter_x counter.position.x += diff # rope_range diff --git a/scene/ground/scene/c02/s09_animation.gd.uid b/scene/ground/scene/c02/s09_裂缝.gd.uid similarity index 100% rename from scene/ground/scene/c02/s09_animation.gd.uid rename to scene/ground/scene/c02/s09_裂缝.gd.uid diff --git a/scene/ground/scene/c02/s09_裂缝.tscn b/scene/ground/scene/c02/s09_裂缝.tscn index 35590a79..af67b5cd 100644 --- a/scene/ground/scene/c02/s09_裂缝.tscn +++ b/scene/ground/scene/c02/s09_裂缝.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=56 format=4 uid="uid://ryups1dnwdto"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_o0m5w"] -[ext_resource type="Script" uid="uid://beqnywn1dlnax" path="res://scene/ground/scene/c02/s09_animation.gd" id="2_34a6f"] +[ext_resource type="Script" uid="uid://beqnywn1dlnax" path="res://scene/ground/scene/c02/s09_裂缝.gd" id="2_34a6f"] [ext_resource type="AudioStream" uid="uid://lel6wpfs2424" path="res://asset/audio/sfx/环境音/第一章/09_裂缝空间_地下通道.wav" id="3_qjenp"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_qjenp"] [ext_resource type="Shader" uid="uid://dyc16avypkkct" path="res://scene/ground/script/c02/s09_裂缝麻绳.gdshader" id="5_0fmdd"] diff --git a/scene/ground/scene/c02/s10_animation.gd b/scene/ground/scene/c02/s10_空房间.gd similarity index 91% rename from scene/ground/scene/c02/s10_animation.gd rename to scene/ground/scene/c02/s10_空房间.gd index 5cac659c..3e0dc99c 100644 --- a/scene/ground/scene/c02/s10_animation.gd +++ b/scene/ground/scene/c02/s10_空房间.gd @@ -39,7 +39,7 @@ func _on_ground_ready() -> void: portal_note = $"../DeployLayer/Note进入隧道询问" # 进过瞎子卧室后,通道关闭 - if ArchiveManager.get_global_value("c02_the_blind_room_unlocked"): + if ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked"): # 遮挡的空房间 $"../BGSprite2D".texture = preload("uid://ba57knu57jp3u") @@ -61,13 +61,13 @@ func _on_ground_ready() -> void: else: xiao_chan_interactable.interacted.connect(_on_xiao_chan_interacted) - counter_pushed_out = ArchiveManager.get_global_value("c02_counter_pushed_out") + counter_pushed_out = ArchiveManager.get_global_value(&"c02_counter_pushed_out") if counter_pushed_out: counter.visible = false counter.enabled = false else: # 空柜子 x 坐标 - var counter_x = ArchiveManager.get_global_value("c02_counter_x", default_counter_x) + var counter_x = ArchiveManager.get_global_value(&"c02_counter_x", default_counter_x) counter.interacted.connect(_on_counter_interacted) counter.global_position.x = counter_x after_counter_moved() @@ -112,7 +112,7 @@ func _on_pick_wood_puppet() -> void: func _on_leave_room(): if pushing_counter: counter_pushed_out = true - ArchiveManager.set_global_entry("c02_counter_pushed_out", true) + ArchiveManager.set_global_entry(&"c02_counter_pushed_out", true) SceneManager.pop_debug_dialog_info("美术", "玩家将箱子推出房间") @@ -145,7 +145,7 @@ func _on_counter_interacted(): func on_player_moved_counter(global_pos: Vector2): var x = global_pos.x + player_pull_offset_x - ArchiveManager.set_global_entry("c02_counter_x", x) + ArchiveManager.set_global_entry(&"c02_counter_x", x) counter.global_position.x = x after_counter_moved() @@ -168,7 +168,7 @@ func after_counter_moved(): return catty_head.enabled = true # 进过瞎子卧室后,通道关闭 - var entered = ArchiveManager.get_global_value("c02_the_blind_room_unlocked", false) + var entered = ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked", false) if not entered and catty_head.picked: portal_note.enabled = true @@ -190,5 +190,5 @@ func _on_pick_catty_head() -> void: await SceneManager.get_inspector().quit_and_hidden SceneManager.pop_os_with_str(tr("c02_获得小猫玩具")) # 进过瞎子卧室后,通道关闭 - if not ArchiveManager.get_global_value("c02_the_blind_room_unlocked"): + if not ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked"): portal_note.enabled = true diff --git a/scene/ground/scene/c02/s10_animation.gd.uid b/scene/ground/scene/c02/s10_空房间.gd.uid similarity index 100% rename from scene/ground/scene/c02/s10_animation.gd.uid rename to scene/ground/scene/c02/s10_空房间.gd.uid diff --git a/scene/ground/scene/c02/s10_空房间.tscn b/scene/ground/scene/c02/s10_空房间.tscn index da74ffbf..d18ccafc 100644 --- a/scene/ground/scene/c02/s10_空房间.tscn +++ b/scene/ground/scene/c02/s10_空房间.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=25 format=3 uid="uid://dny21yhtuteap"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_w7j0m"] -[ext_resource type="Script" uid="uid://dkkey7qillk15" path="res://scene/ground/scene/c02/s10_animation.gd" id="2_egtqi"] +[ext_resource type="Script" uid="uid://dkkey7qillk15" path="res://scene/ground/scene/c02/s10_空房间.gd" id="2_egtqi"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_kqj5r"] [ext_resource type="Texture2D" uid="uid://molvyfyy63ik" path="res://asset/art/scene/c02/s10_空房间/bg_空房间.png" id="3_ox8et"] [ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="5_ylhfc"] @@ -13,7 +13,7 @@ [ext_resource type="Texture2D" uid="uid://cdsq0ylmgtfq0" path="res://asset/art/prop/c02/小蝉人偶.png" id="12_27dvh"] [ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="13_27dvh"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="14_3ftnp"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="14_e24j0"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="14_e24j0"] [ext_resource type="SpriteFrames" uid="uid://cwes55ajc3rd4" path="res://asset/art/gif/c02_空房间/c02_空房间_frames.tres" id="15_2j5dr"] [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="15_e24j0"] [ext_resource type="Texture2D" uid="uid://bp84w8keuelyj" path="res://asset/art/scene/c02/s10_空房间/e_蜡烛-sheet.png" id="15_kqj5r"] diff --git a/scene/ground/scene/c02/s11_animation.gd b/scene/ground/scene/c02/s11_一楼火灾.gd similarity index 100% rename from scene/ground/scene/c02/s11_animation.gd rename to scene/ground/scene/c02/s11_一楼火灾.gd diff --git a/scene/ground/scene/c02/s11_animation.gd.uid b/scene/ground/scene/c02/s11_一楼火灾.gd.uid similarity index 100% rename from scene/ground/scene/c02/s11_animation.gd.uid rename to scene/ground/scene/c02/s11_一楼火灾.gd.uid diff --git a/scene/ground/scene/c02/s11_一楼火灾.tscn b/scene/ground/scene/c02/s11_一楼火灾.tscn index 47b6c27e..8fde2860 100644 --- a/scene/ground/scene/c02/s11_一楼火灾.tscn +++ b/scene/ground/scene/c02/s11_一楼火灾.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=16 format=3 uid="uid://dq41rvwl5hyrk"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_j6dox"] -[ext_resource type="Script" uid="uid://ckgadkphs64ha" path="res://scene/ground/scene/c02/s11_animation.gd" id="2_dbjgm"] +[ext_resource type="Script" uid="uid://ckgadkphs64ha" path="res://scene/ground/scene/c02/s11_一楼火灾.gd" id="2_dbjgm"] [ext_resource type="Texture2D" uid="uid://0uh6qaalhqju" path="res://asset/art/scene/c02/s11_一楼火灾/总背景/bg_院子1楼火灾.png" id="3_rhopa"] [ext_resource type="Texture2D" uid="uid://bufvhpw8xvgo8" path="res://asset/art/scene/c02/s11_一楼火灾/总背景/e_门.png" id="4_7srvq"] [ext_resource type="SpriteFrames" uid="uid://d23vigq1lv3dq" path="res://asset/art/gif/c02_一楼火灾/c02_一楼火灾_frames.tres" id="6_a8lqj"] diff --git a/scene/ground/scene/c02/s12_animation.gd b/scene/ground/scene/c02/s12_盒子猫.gd similarity index 94% rename from scene/ground/scene/c02/s12_animation.gd rename to scene/ground/scene/c02/s12_盒子猫.gd index cb9fae47..b195e055 100644 --- a/scene/ground/scene/c02/s12_animation.gd +++ b/scene/ground/scene/c02/s12_盒子猫.gd @@ -25,7 +25,7 @@ func _intro(): player.position.x = 231.0 player.set_facing_direction(Vector2.RIGHT) var anim = $"../DeployLayer/小猫初始动画" as AnimatedSprite2D - if not ArchiveManager.get_global_value("c02_boxcat_skip_intro"): + if not ArchiveManager.get_global_value(&"c02_boxcat_skip_intro"): var layer = $"../盒子猫CanvasLayer" layer.disable_crawl = true var duration = layer.show_cat_duration diff --git a/scene/ground/scene/c02/s12_animation.gd.uid b/scene/ground/scene/c02/s12_盒子猫.gd.uid similarity index 100% rename from scene/ground/scene/c02/s12_animation.gd.uid rename to scene/ground/scene/c02/s12_盒子猫.gd.uid diff --git a/scene/ground/scene/c02/s12_盒子猫.tscn b/scene/ground/scene/c02/s12_盒子猫.tscn index 5871361a..3c3a7267 100644 --- a/scene/ground/scene/c02/s12_盒子猫.tscn +++ b/scene/ground/scene/c02/s12_盒子猫.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://da4cuf2i3nwpj"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ngo77"] -[ext_resource type="Script" uid="uid://cyd1xo106unfk" path="res://scene/ground/scene/c02/s12_animation.gd" id="2_7ah3n"] +[ext_resource type="Script" uid="uid://cyd1xo106unfk" path="res://scene/ground/scene/c02/s12_盒子猫.gd" id="2_7ah3n"] [ext_resource type="AudioStream" uid="uid://bma77k6n4hwle" path="res://asset/audio/sfx/交互/第一章/sfx_猫猫钻盒子.wav" id="3_72mc1"] [ext_resource type="Texture2D" uid="uid://yn00uls1kvn3" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_初始.png" id="3_oskpk"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_r3hvb"] diff --git a/scene/ground/scene/c02/s13_animation.gd b/scene/ground/scene/c02/s13_盒子猫二楼.gd similarity index 94% rename from scene/ground/scene/c02/s13_animation.gd rename to scene/ground/scene/c02/s13_盒子猫二楼.gd index c30ac08b..ca62fcd3 100644 --- a/scene/ground/scene/c02/s13_animation.gd +++ b/scene/ground/scene/c02/s13_盒子猫二楼.gd @@ -47,5 +47,5 @@ func _outtro_show(): $"Sfx脚印".play() # 盒子猫逃脱成功/被抓走,游戏结束,解锁瞎子卧室门 await get_tree().create_timer(10.0).timeout - ArchiveManager.set_global_entry("c02_the_blind_room_unlocked", true) + ArchiveManager.set_global_entry(&"c02_the_blind_room_unlocked", true) SceneManager.get_ground_loader().transition_to_scene("c02_s08", "1") diff --git a/scene/ground/scene/c02/s13_animation.gd.uid b/scene/ground/scene/c02/s13_盒子猫二楼.gd.uid similarity index 100% rename from scene/ground/scene/c02/s13_animation.gd.uid rename to scene/ground/scene/c02/s13_盒子猫二楼.gd.uid diff --git a/scene/ground/scene/c02/s13_盒子猫二楼.tscn b/scene/ground/scene/c02/s13_盒子猫二楼.tscn index 9343ca18..8ebe1a93 100644 --- a/scene/ground/scene/c02/s13_盒子猫二楼.tscn +++ b/scene/ground/scene/c02/s13_盒子猫二楼.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=13 format=3 uid="uid://bvjutch6jex0v"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_71lma"] -[ext_resource type="Script" uid="uid://28ujp27cbdh2" path="res://scene/ground/scene/c02/s13_animation.gd" id="2_w5nqu"] +[ext_resource type="Script" uid="uid://28ujp27cbdh2" path="res://scene/ground/scene/c02/s13_盒子猫二楼.gd" id="2_w5nqu"] [ext_resource type="Texture2D" uid="uid://dweafdywxenu6" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼楼道.png" id="3_miykx"] [ext_resource type="AudioStream" uid="uid://ddii8wvvsifa7" path="res://asset/audio/sfx/交互/第一章/sfx_猫结尾演出.wav" id="3_yywsi"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_yywsi"] diff --git a/scene/ground/scene/c02/s14_animation.gd b/scene/ground/scene/c02/s14_盒子猫二楼内侧.gd similarity index 100% rename from scene/ground/scene/c02/s14_animation.gd rename to scene/ground/scene/c02/s14_盒子猫二楼内侧.gd diff --git a/scene/ground/scene/c02/s14_animation.gd.uid b/scene/ground/scene/c02/s14_盒子猫二楼内侧.gd.uid similarity index 100% rename from scene/ground/scene/c02/s14_animation.gd.uid rename to scene/ground/scene/c02/s14_盒子猫二楼内侧.gd.uid diff --git a/scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn b/scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn index 65d4247f..8a99d8ef 100644 --- a/scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn +++ b/scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=8 format=3 uid="uid://d0p4x5st2r315"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_cr1hi"] -[ext_resource type="Script" uid="uid://bjisuntcem2lv" path="res://scene/ground/scene/c02/s14_animation.gd" id="2_o47bv"] +[ext_resource type="Script" uid="uid://bjisuntcem2lv" path="res://scene/ground/scene/c02/s14_盒子猫二楼内侧.gd" id="2_o47bv"] [ext_resource type="Texture2D" uid="uid://y0e47513ca22" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼内侧楼道(粉笔画).png" id="3_cr1hi"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_idisw"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_o47bv"] diff --git a/scene/ground/scene/c02/s15_animation.gd b/scene/ground/scene/c02/s15_盒子猫一楼内侧.gd similarity index 100% rename from scene/ground/scene/c02/s15_animation.gd rename to scene/ground/scene/c02/s15_盒子猫一楼内侧.gd diff --git a/scene/ground/scene/c02/s15_animation.gd.uid b/scene/ground/scene/c02/s15_盒子猫一楼内侧.gd.uid similarity index 100% rename from scene/ground/scene/c02/s15_animation.gd.uid rename to scene/ground/scene/c02/s15_盒子猫一楼内侧.gd.uid diff --git a/scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn b/scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn index 83e5eb86..fff978e4 100644 --- a/scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn +++ b/scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=7 format=3 uid="uid://b21p53g42j2nt"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qxg0l"] -[ext_resource type="Script" uid="uid://ebaq235h32fd" path="res://scene/ground/scene/c02/s15_animation.gd" id="2_etqjj"] +[ext_resource type="Script" uid="uid://ebaq235h32fd" path="res://scene/ground/scene/c02/s15_盒子猫一楼内侧.gd" id="2_etqjj"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_etqjj"] [ext_resource type="Texture2D" uid="uid://c4eb71kdnqy3y" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼内侧楼道(粉笔画).png" id="3_qxg0l"] [ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_isic3"] diff --git a/scene/ground/scene/c02/s16_animation.gd b/scene/ground/scene/c02/s16_盒子猫三楼内侧.gd similarity index 100% rename from scene/ground/scene/c02/s16_animation.gd rename to scene/ground/scene/c02/s16_盒子猫三楼内侧.gd diff --git a/scene/ground/scene/c02/s16_animation.gd.uid b/scene/ground/scene/c02/s16_盒子猫三楼内侧.gd.uid similarity index 100% rename from scene/ground/scene/c02/s16_animation.gd.uid rename to scene/ground/scene/c02/s16_盒子猫三楼内侧.gd.uid diff --git a/scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn b/scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn index 5a428b5c..b0d16f2e 100644 --- a/scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn +++ b/scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://22hc3oe8t0id"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_umyae"] -[ext_resource type="Script" uid="uid://dx2w5v1erjyls" path="res://scene/ground/scene/c02/s16_animation.gd" id="2_tmnwc"] +[ext_resource type="Script" uid="uid://dx2w5v1erjyls" path="res://scene/ground/scene/c02/s16_盒子猫三楼内侧.gd" id="2_tmnwc"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_r8qm5"] [ext_resource type="Texture2D" uid="uid://by4ymjhnma8c6" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_三楼内侧楼道(粉笔画).png" id="3_tmnwc"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_qkv3g"] diff --git a/scene/ground/scene/c02/s17_animation.gd b/scene/ground/scene/c02/s17_盒子猫三楼.gd similarity index 100% rename from scene/ground/scene/c02/s17_animation.gd rename to scene/ground/scene/c02/s17_盒子猫三楼.gd diff --git a/scene/ground/scene/c02/s17_animation.gd.uid b/scene/ground/scene/c02/s17_盒子猫三楼.gd.uid similarity index 100% rename from scene/ground/scene/c02/s17_animation.gd.uid rename to scene/ground/scene/c02/s17_盒子猫三楼.gd.uid diff --git a/scene/ground/scene/c02/s17_盒子猫三楼.tscn b/scene/ground/scene/c02/s17_盒子猫三楼.tscn index f74b16ad..3fb8f440 100644 --- a/scene/ground/scene/c02/s17_盒子猫三楼.tscn +++ b/scene/ground/scene/c02/s17_盒子猫三楼.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://cbr6gbgrl2wb1"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_e436a"] -[ext_resource type="Script" uid="uid://bkkhxiyblu2lo" path="res://scene/ground/scene/c02/s17_animation.gd" id="2_e436a"] +[ext_resource type="Script" uid="uid://bkkhxiyblu2lo" path="res://scene/ground/scene/c02/s17_盒子猫三楼.gd" id="2_e436a"] [ext_resource type="Texture2D" uid="uid://iyeqjguyrhog" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_三楼楼道(粉笔画).png" id="3_e436a"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_uua76"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_e436a"] diff --git a/scene/ground/scene/c02/s18_animation.gd b/scene/ground/scene/c02/s18_盒子猫一楼.gd similarity index 100% rename from scene/ground/scene/c02/s18_animation.gd rename to scene/ground/scene/c02/s18_盒子猫一楼.gd diff --git a/scene/ground/scene/c02/s18_animation.gd.uid b/scene/ground/scene/c02/s18_盒子猫一楼.gd.uid similarity index 100% rename from scene/ground/scene/c02/s18_animation.gd.uid rename to scene/ground/scene/c02/s18_盒子猫一楼.gd.uid diff --git a/scene/ground/scene/c02/s18_盒子猫一楼.tscn b/scene/ground/scene/c02/s18_盒子猫一楼.tscn index 688b87fe..564ea03c 100644 --- a/scene/ground/scene/c02/s18_盒子猫一楼.tscn +++ b/scene/ground/scene/c02/s18_盒子猫一楼.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=8 format=3 uid="uid://d27gv3pbkn4b8"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_4bsvj"] -[ext_resource type="Script" uid="uid://b3mak700k2qwt" path="res://scene/ground/scene/c02/s18_animation.gd" id="2_4bsvj"] +[ext_resource type="Script" uid="uid://b3mak700k2qwt" path="res://scene/ground/scene/c02/s18_盒子猫一楼.gd" id="2_4bsvj"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_4bsvj"] [ext_resource type="Texture2D" uid="uid://ttocw3erg8jv" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png" id="3_owpnf"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_emyx1"] diff --git a/scene/ground/script/c02/event小蝉哼歌.gd b/scene/ground/script/c02/event小蝉哼歌.gd new file mode 100644 index 00000000..7f21ea9e --- /dev/null +++ b/scene/ground/script/c02/event小蝉哼歌.gd @@ -0,0 +1,26 @@ +extends Event2D + +# var prev_stage := 0 +# var stage := 0 + + +func _ready() -> void: + super._ready() + + +func _on_global_stage_updated(e: StringName, s: int): + super._on_global_stage_updated(e, s) + + +func _on_ground_ready(ground: Ground2D): + _on_stage_updated() + + +func _on_pre_stage_updated(): + pass + + +func _on_stage_updated(): + # 1 阶段播放 2阶段结束 + if stage == 1: + $"Sfx2D小蝉哼歌".play.call_deferred() \ No newline at end of file diff --git a/scene/ground/script/c02/event小蝉哼歌.gd.uid b/scene/ground/script/c02/event小蝉哼歌.gd.uid new file mode 100644 index 00000000..169b8eb3 --- /dev/null +++ b/scene/ground/script/c02/event小蝉哼歌.gd.uid @@ -0,0 +1 @@ +uid://jarjchqsx4u1 diff --git a/scene/ground/script/c02/s00_煤油灯.gd b/scene/ground/script/c02/s00_煤油灯.gd index 20d65868..51656de6 100644 --- a/scene/ground/script/c02/s00_煤油灯.gd +++ b/scene/ground/script/c02/s00_煤油灯.gd @@ -71,8 +71,8 @@ func _ready() -> void: func _on_mismatch(): - if not ArchiveManager.get_global_value("c02_gaslight_first_failed"): - ArchiveManager.set_global_entry("c02_gaslight_first_failed", true) + if not ArchiveManager.get_global_value(&"c02_gaslight_first_failed"): + ArchiveManager.set_global_entry(&"c02_gaslight_first_failed", true) var scene = ArchiveManager.archive.current_scene if scene == "c02_s02" or scene == "c02_s03": SceneManager.pop_os_with_str(tr("c02_陈旧的煤油灯")) @@ -140,8 +140,8 @@ func _gaslight_interacted(): await get_tree().create_timer(1.0).timeout _switch_gaslight(true, true) lighted.emit() - if not ArchiveManager.get_global_value("c02_gaslight_first_lighted"): - ArchiveManager.set_global_entry("c02_gaslight_first_lighted", true) + if not ArchiveManager.get_global_value(&"c02_gaslight_first_lighted"): + ArchiveManager.set_global_entry(&"c02_gaslight_first_lighted", true) var scene = ArchiveManager.archive.current_scene if scene == "c02_s02" or scene == "c02_s03": await get_tree().create_timer(1.0).timeout diff --git a/scene/ground/script/c02/s00_跟随的老鼠.gd b/scene/ground/script/c02/s00_跟随的老鼠.gd index 06ae410e..9764cd64 100644 --- a/scene/ground/script/c02/s00_跟随的老鼠.gd +++ b/scene/ground/script/c02/s00_跟随的老鼠.gd @@ -41,7 +41,7 @@ func _ready() -> void: if Engine.is_editor_hint(): return # 自动跟随的老鼠 ~ c02_mouse_follow_player - visible = ArchiveManager.get_global_value("c02_mouse_follow_player", false) + visible = ArchiveManager.get_global_value(&"c02_mouse_follow_player", false) if visible: # 播放老鼠叫 sfx sfx.play() diff --git a/scene/ground/script/c02/s08_画特写.tscn b/scene/ground/script/c02/s08_画特写.tscn index 1b6a69d9..04e8fd0f 100644 --- a/scene/ground/script/c02/s08_画特写.tscn +++ b/scene/ground/script/c02/s08_画特写.tscn @@ -2,9 +2,9 @@ [ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_jgyts"] [ext_resource type="Texture2D" uid="uid://d1seskftkw08q" path="res://asset/art/scene/c02/s08_瞎子卧室/ux_盒子猫初次特写.png" id="2_jo6o1"] -[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" id="3_myoho"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="3_myoho"] [ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="4_4p6cc"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="5_i34yq"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="5_i34yq"] [node name="s08_画特写" type="CanvasLayer"] script = ExtResource("1_jgyts") @@ -24,6 +24,7 @@ texture = ExtResource("3_myoho") [node name="ContentInspector" parent="." instance=ExtResource("4_4p6cc")] [node name="遮罩" type="TextureRect" parent="ContentInspector"] +layout_mode = 0 offset_left = -35.0 offset_top = -3.0 offset_right = 585.0 diff --git a/scene/ground/script/c02/s08_画特写2.tscn b/scene/ground/script/c02/s08_画特写2.tscn index f7803fe4..94123db6 100644 --- a/scene/ground/script/c02/s08_画特写2.tscn +++ b/scene/ground/script/c02/s08_画特写2.tscn @@ -2,11 +2,11 @@ [ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_2sinf"] [ext_resource type="Texture2D" uid="uid://k6164drvkbg8" path="res://asset/art/scene/c02/s08_瞎子卧室/ux_盒子猫结束特写.png" id="2_qrck0"] -[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" id="3_7dv3t"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="3_7dv3t"] [ext_resource type="Texture2D" uid="uid://tcjm158n8hnw" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/小脚脚印.png" id="4_tja8r"] [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="5_75okh"] [ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="6_ybyuk"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="7_tja8r"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="7_tja8r"] [node name="s08_盒子猫初次特写" type="CanvasLayer"] script = ExtResource("1_2sinf") diff --git a/scene/ground/script/c02/刮海报_二楼内侧.tscn b/scene/ground/script/c02/刮海报_二楼内侧.tscn index 9a619614..aaab8f56 100644 --- a/scene/ground/script/c02/刮海报_二楼内侧.tscn +++ b/scene/ground/script/c02/刮海报_二楼内侧.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://ca5tpfxmeh5q8" path="res://asset/art/scene/c02/s07_二楼内侧楼道/ux_二楼过道内侧.png" id="2_auxb7"] [ext_resource type="AudioStream" uid="uid://bomvnle4oh1ol" path="res://asset/audio/sfx/交互/第一章/sfx_折纸.wav" id="2_vl1ak"] [ext_resource type="PackedScene" uid="uid://bvnclp341hxoh" path="res://scene/entity/ux/刮刮乐.tscn" id="3_auxb7"] -[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" id="3_phw8g"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="3_phw8g"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_ro3vo"] [sub_resource type="Image" id="Image_vl1ak"] diff --git a/scene/ground/script/c02/刮海报_过道.tscn b/scene/ground/script/c02/刮海报_过道.tscn index 0f8aee7f..0e485781 100644 --- a/scene/ground/script/c02/刮海报_过道.tscn +++ b/scene/ground/script/c02/刮海报_过道.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" uid="uid://d31fc1bolhwlf" path="res://scene/ground/script/c02/刮海报.gd" id="1_qroub"] [ext_resource type="Texture2D" uid="uid://du1gfsc8mp0q0" path="res://asset/art/scene/c02/s02_大门过道/ux_过道面板.png" id="2_5kq43"] -[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" id="3_5kq43"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="3_5kq43"] [ext_resource type="PackedScene" uid="uid://bvnclp341hxoh" path="res://scene/entity/ux/刮刮乐.tscn" id="3_qwopf"] [ext_resource type="AudioStream" uid="uid://bomvnle4oh1ol" path="res://asset/audio/sfx/交互/第一章/sfx_折纸.wav" id="5_xjg44"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="6_cffxi"] diff --git a/scene/ground/script/c02/小手讨东西.gd b/scene/ground/script/c02/小手讨东西.gd index efd020f9..d650e99e 100644 --- a/scene/ground/script/c02/小手讨东西.gd +++ b/scene/ground/script/c02/小手讨东西.gd @@ -205,7 +205,7 @@ func _on_interacted() -> void: SceneManager.disable_prop_item("prop_锡箔元宝") if id == 1: SceneManager.enable_prop_item_silently("prop_小鞋子1") - ArchiveManager.set_global_entry("c02_mouse_follow_player", true) + ArchiveManager.set_global_entry(&"c02_mouse_follow_player", true) # 叠成纸杯电话 animated_sprite.play("小手_锡箔_hide") is_holding_cup = true @@ -230,7 +230,7 @@ func _on_interacted() -> void: coin.visible = true # 是否允许老虎钳换弹珠 - var pliers_to_ball = ArchiveManager.get_global_value("c02_pliers_to_ball", false) + var pliers_to_ball = ArchiveManager.get_global_value(&"c02_pliers_to_ball", false) if id == 0 and key == "prop_老虎钳" and pliers_to_ball: interacted_success = true sfx_success.play() @@ -239,6 +239,8 @@ func _on_interacted() -> void: SceneManager.pop_debug_dialog_info("美术", "小手_老虎钳_hide + 小手_弹珠_show + 小手_弹珠_idle") await get_tree().create_timer(1.5).timeout holding_prop = "prop_弹珠" + EventManager.set_stage_if_greater("handnote_stage", 4) + elif id == 0 and key == "prop_弹珠" and not pliers_to_ball: interacted_success = true sfx_success.play() diff --git a/scene/ground/script/c02/小手讨东西.tscn b/scene/ground/script/c02/小手讨东西.tscn index 37f97c8e..9892f0fe 100644 --- a/scene/ground/script/c02/小手讨东西.tscn +++ b/scene/ground/script/c02/小手讨东西.tscn @@ -28,18 +28,21 @@ unmatched_sign_texture = ExtResource("4_0tuif") matched_sign_texture = ExtResource("5_n2hq3") [node name="SfxInvalid" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("6_lr23o") bus = &"game_sfx" script = ExtResource("7_7dftu") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="SfxSuccess" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("8_7dftu") bus = &"game_sfx" script = ExtResource("7_7dftu") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="SfxBgm" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("9_7dftu") bus = &"game_sfx" script = ExtResource("7_7dftu") @@ -109,7 +112,6 @@ sign_mark_offset = Vector2(0, -5) [node name="Pickable元宝" parent="." instance=ExtResource("12_6lwlv")] position = Vector2(44, 103) sign_mark_offset = Vector2(0, -20.95) -action_key = 4 prop_key = "prop_锡箔元宝" [node name="Sprite2D" type="Sprite2D" parent="Pickable元宝"] diff --git a/scene/ground/script/c02/戏台特写.tscn b/scene/ground/script/c02/戏台特写.tscn index 9169ab41..8be481d7 100644 --- a/scene/ground/script/c02/戏台特写.tscn +++ b/scene/ground/script/c02/戏台特写.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" uid="uid://baocsio2v7pme" path="res://scene/ground/script/c02/戏台特写.gd" id="1_eu5r2"] [ext_resource type="Texture2D" uid="uid://dhrl5mlivx108" path="res://asset/art/scene/c02/s05_一楼内侧楼道/ux_戏台特写(无道具).png" id="3_timwg"] -[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" id="4_ujm2t"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="4_ujm2t"] [node name="戏台特写" type="CanvasLayer"] script = ExtResource("1_eu5r2") diff --git a/scene/ground/script/c02/折锡纸.gd b/scene/ground/script/c02/折锡纸.gd index d9e426f9..d032202e 100644 --- a/scene/ground/script/c02/折锡纸.gd +++ b/scene/ground/script/c02/折锡纸.gd @@ -20,7 +20,7 @@ var current_texture = 0 func _ready() -> void: layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME - if ArchiveManager.get_global_value("c02_tin_coin_taken"): + if ArchiveManager.get_global_value(&"c02_tin_coin_taken"): replace_bg() button.visible = false # button.disabled = true diff --git a/scene/ground/script/c02/折锡纸.tscn b/scene/ground/script/c02/折锡纸.tscn index 36cf2f5c..9393729c 100644 --- a/scene/ground/script/c02/折锡纸.tscn +++ b/scene/ground/script/c02/折锡纸.tscn @@ -6,7 +6,7 @@ [ext_resource type="SpriteFrames" uid="uid://c2sjavnptjn" path="res://asset/art/gif/c02_保卫科/c02_保卫科_frames.tres" id="3_ckoix"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_ftr7c"] [ext_resource type="AudioStream" uid="uid://bomvnle4oh1ol" path="res://asset/audio/sfx/交互/第一章/sfx_折纸.wav" id="4_g2p6p"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="4_qu4ce"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="4_qu4ce"] [ext_resource type="Texture2D" uid="uid://bygsskp1cr0y8" path="res://asset/art/scene/c02/s04_保卫科/锡纸.png" id="4_uslgh"] [ext_resource type="Texture2D" uid="uid://dcubpjb5qgfl2" path="res://asset/art/scene/c02/s04_保卫科/锡纸_hover.png" id="5_6lb1j"] [ext_resource type="BitMap" uid="uid://cfu2y1q2ercd" path="res://asset/art/scene/c02/s04_保卫科/锡纸_mask.png" id="5_uslgh"] diff --git a/scene/ground/script/c02/敲门游戏.gd b/scene/ground/script/c02/敲门游戏.gd index dc351f0b..eede0b98 100644 --- a/scene/ground/script/c02/敲门游戏.gd +++ b/scene/ground/script/c02/敲门游戏.gd @@ -18,13 +18,13 @@ func _ready() -> void: button.pressed.connect(_on_button_pressed) fail_time = Time.get_ticks_msec() button.disabled = true - if not ArchiveManager.get_global_value("c02_meat_door_interacted", false): - ArchiveManager.set_global_entry("c02_meat_door_interacted", true) + if not ArchiveManager.get_global_value(&"c02_meat_door_interacted", false): + ArchiveManager.set_global_entry(&"c02_meat_door_interacted", true) DialogueManager.show_dialogue_balloon(dialogue, "c02_s03_敲门游戏intro") await DialogueManager.dialogue_ended - if ArchiveManager.get_global_value("c02_meat_given", false): - # not ArchiveManager.get_global_value("c02_eavesdrop_finished", false) or - # ArchiveManager.get_global_value("c02_meat_dropping", false) or + if ArchiveManager.get_global_value(&"c02_meat_given", false): + # not ArchiveManager.get_global_value(&"c02_eavesdrop_finished", false) or + # ArchiveManager.get_global_value(&"c02_meat_dropping", false) or # 敲门成功,则禁用 button.disabled = true else: @@ -55,7 +55,7 @@ func _on_button_pressed() -> void: knock_heavy_sfx.play() if current_id == 6: drop_meat_sfx.play() - ArchiveManager.set_global_entry("c02_meat_dropping", true) + ArchiveManager.set_global_entry(&"c02_meat_dropping", true) button.disabled = true # 肉落下的声音,然后自动退出界面 SceneManager.pop_debug_dialog_info("音效", "肉落下的声音(敲门游戏成功)") diff --git a/scene/ground/script/c02/水盆特写.gd b/scene/ground/script/c02/水盆特写.gd index eba34b3d..ac6f3111 100644 --- a/scene/ground/script/c02/水盆特写.gd +++ b/scene/ground/script/c02/水盆特写.gd @@ -12,7 +12,7 @@ var image: Image var show_childhood := false func _ready() -> void: # 第三章设置为启用 c03_meta_enabled - show_childhood = ArchiveManager.get_global_value("c03_meta_enabled", false) + show_childhood = ArchiveManager.get_global_value(&"c03_meta_enabled", false) layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME image = ripple.texture.get_image() shader.gui_input.connect(_shader_input) diff --git a/scene/ground/script/c02/火灾区域燃烧脚本.gd b/scene/ground/script/c02/火灾区域燃烧脚本.gd index 9edcb178..33a978b8 100644 --- a/scene/ground/script/c02/火灾区域燃烧脚本.gd +++ b/scene/ground/script/c02/火灾区域燃烧脚本.gd @@ -28,7 +28,7 @@ func recheck(): func _on_body_entered(_node = null) -> void: - if not ArchiveManager.get_global_value("c02_burning"): + if not ArchiveManager.get_global_value(&"c02_burning"): return visible = true if fade_in: diff --git a/scene/ground/script/c02/盒子猫canvas_layer.gd b/scene/ground/script/c02/盒子猫canvas_layer.gd index 49f2a2ca..2d88fcfe 100644 --- a/scene/ground/script/c02/盒子猫canvas_layer.gd +++ b/scene/ground/script/c02/盒子猫canvas_layer.gd @@ -21,7 +21,7 @@ func _ready(): camera.limit_right += 100 camera.limit_top -= 50 # camera.limit_bottom += 50 - if show_cat and not ArchiveManager.get_global_value("c02_boxcat_skip_intro"): + if show_cat and not ArchiveManager.get_global_value(&"c02_boxcat_skip_intro"): cat_fg.visible = true var tween = create_tween() tween.tween_interval(2.5) diff --git a/scene/ground/script/c02/盒子猫canvas_layer.tscn b/scene/ground/script/c02/盒子猫canvas_layer.tscn index e528e68e..5fb45b5d 100644 --- a/scene/ground/script/c02/盒子猫canvas_layer.tscn +++ b/scene/ground/script/c02/盒子猫canvas_layer.tscn @@ -8,7 +8,7 @@ [ext_resource type="AudioStream" uid="uid://7sjwgob6tsu4" path="res://asset/audio/sfx/交互/第一章/sfx_猫退出躲藏.wav" id="4_0rwiy"] [ext_resource type="Texture2D" uid="uid://tcjm158n8hnw" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/小脚脚印.png" id="4_bc5tk"] [ext_resource type="Texture2D" uid="uid://ccfbubistf0ov" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_镂空_纸.png" id="5_l6g3a"] -[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" id="6_aeggu"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="6_aeggu"] [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="6_qw0v6"] [ext_resource type="Texture2D" uid="uid://dx3i8mchgux1d" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_纸张.png" id="6_rxlkc"] diff --git a/scene/ground/script/c02/老鼠精画像.tscn b/scene/ground/script/c02/老鼠精画像.tscn index cd1ef17d..93dbb063 100644 --- a/scene/ground/script/c02/老鼠精画像.tscn +++ b/scene/ground/script/c02/老鼠精画像.tscn @@ -3,7 +3,7 @@ [ext_resource type="Script" uid="uid://dyk58stu5enia" path="res://scene/ground/script/c02/老鼠精画像.gd" id="1_l77sh"] [ext_resource type="Texture2D" uid="uid://d1xr7g5huv5or" path="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png" id="2_eyynm"] [ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="3_lpmq3"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="4_l77sh"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="4_l77sh"] [node name="老鼠精画像" type="CanvasLayer"] script = ExtResource("1_l77sh") diff --git a/scene/ground/script/c02/花名册.tscn b/scene/ground/script/c02/花名册.tscn index f6eadfb1..5338afca 100644 --- a/scene/ground/script/c02/花名册.tscn +++ b/scene/ground/script/c02/花名册.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://cypvxj1vsl5yk" path="res://asset/art/scene/c02/s04_保卫科/花名册/bg_花名册桌面.png" id="2_v047l"] [ext_resource type="Texture2D" uid="uid://sx3i3lkt2vfd" path="res://asset/art/scene/c02/s04_保卫科/花名册/花名册封皮.png" id="3_myeas"] [ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="4_1s4sv"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="4_myeas"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="4_myeas"] [node name="花名册" type="CanvasLayer"] script = ExtResource("1_jin3n") diff --git a/scene/ground/script/c02/追猫猪头怪.gd b/scene/ground/script/c02/追猫猪头怪.gd index 23c94d21..603ebd7f 100644 --- a/scene/ground/script/c02/追猫猪头怪.gd +++ b/scene/ground/script/c02/追猫猪头怪.gd @@ -42,7 +42,7 @@ var move_and_detact = false: func _ready() -> void: SceneManager.get_ground().ready.connect(_on_ground_ready) # 抓盒子猫后,传送回初始场景,跳过其 intro 过程(从纸面逐渐进入黑板粉笔空间) - ArchiveManager.archive.set_global_entry("c02_boxcat_skip_intro", true) + ArchiveManager.archive.set_global_entry(&"c02_boxcat_skip_intro", true) func _on_ground_ready(): @@ -51,7 +51,7 @@ func _on_ground_ready(): catty_canvas_layer = SceneManager.get_ground().get_node("盒子猫CanvasLayer") var archive = ArchiveManager.archive as AssembledArchive var portal = archive.entrance_portal - var chasing_started = ArchiveManager.get_global_value("c02_boxcat_chasing_started", false) + var chasing_started = ArchiveManager.get_global_value(&"c02_boxcat_chasing_started", false) if archive.current_scene == "c02_s13": # 开始追逐后,禁用二楼两只 if chasing_started and not transfer_mode: diff --git a/scene/index_page.gd b/scene/index_page.gd index 1c92e77a..7d1f9194 100644 --- a/scene/index_page.gd +++ b/scene/index_page.gd @@ -42,7 +42,7 @@ func _on_newgame_pressed(): sfx_click.global_play() # 覆盖使用 1 号存档 ArchiveManager.create_and_use_new_archive(1) - _enter_main_scene() + _enter_main_scene(true) func _on_resume_pressed(): @@ -58,8 +58,12 @@ func _on_resume_pressed(): _enter_main_scene() -func _enter_main_scene(): - $BgmControl.stop() +func _enter_main_scene(new_game := false): + # new game 时音量渐隐 + var duraion = 0.0 + if new_game: + duraion = 5.0 + $BgmControl.stop(duraion) SceneManager.enter_main_scene() @@ -77,3 +81,8 @@ func _unhandled_input(event: InputEvent) -> void: animation_player.stop() animation_root.visible = false animation_finished = true + else: + SceneManager.show_settings() + + + diff --git a/scene/index_page.tscn b/scene/index_page.tscn index 7503337c..ba29390b 100644 --- a/scene/index_page.tscn +++ b/scene/index_page.tscn @@ -5,7 +5,7 @@ [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_te6ya"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5oc6i"] [ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="4_5oc6i"] -[ext_resource type="AudioStream" uid="uid://brs150xgqnyd5" path="res://asset/audio/专用/衔蝶_主菜单music人声版.mp3" id="4_te6ya"] +[ext_resource type="AudioStream" uid="uid://b3b4a6nm8557i" path="res://asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav" id="5_5oc6i"] [sub_resource type="Animation" id="Animation_8kiap"] resource_name = "default" @@ -77,8 +77,7 @@ script = ExtResource("3_5oc6i") [node name="BgmControl" type="Node" parent="."] script = ExtResource("4_5oc6i") bgm_title = "index菜单主题曲" -bgm_stream = ExtResource("4_te6ya") -stop_ease_duration = 1.5 +bgm_stream = ExtResource("5_5oc6i") metadata/_custom_type_script = "uid://bbg4vopj4apl6" [node name="TextureRect" type="TextureRect" parent="."] @@ -123,6 +122,26 @@ theme_override_styles/pressed = SubResource("StyleBoxFlat_scxsv") theme_override_styles/normal = SubResource("StyleBoxEmpty_vyh3d") text = "index_继续游戏" +[node name="Settings" type="Button" parent="VBoxContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +theme_override_styles/focus = SubResource("StyleBoxEmpty_gu56a") +theme_override_styles/hover = SubResource("StyleBoxFlat_q8n5c") +theme_override_styles/pressed = SubResource("StyleBoxFlat_scxsv") +theme_override_styles/normal = SubResource("StyleBoxEmpty_vyh3d") +text = "index_继续游戏" + +[node name="Memory" type="Button" parent="VBoxContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +theme_override_styles/focus = SubResource("StyleBoxEmpty_gu56a") +theme_override_styles/hover = SubResource("StyleBoxFlat_q8n5c") +theme_override_styles/pressed = SubResource("StyleBoxFlat_scxsv") +theme_override_styles/normal = SubResource("StyleBoxEmpty_vyh3d") +text = "index_继续游戏" + [node name="Quit" type="Button" parent="VBoxContainer"] unique_name_in_owner = true layout_mode = 2 diff --git a/scene/little_game/八音盒/八音盒.gd b/scene/little_game/八音盒/八音盒.gd index 6747b5c2..4e78e6ee 100644 --- a/scene/little_game/八音盒/八音盒.gd +++ b/scene/little_game/八音盒/八音盒.gd @@ -45,7 +45,7 @@ var draggables: Array[Draggable2D] = [] var stage := 1: set(value): stage = value - ArchiveManager.set_global_entry("c02_musicbox_stage", value) + ArchiveManager.set_global_entry(&"c02_musicbox_stage", value) # 父,母,蝶,蝉 var playing_step_sec := 0.5 @@ -57,20 +57,20 @@ func _ready() -> void: if Engine.is_editor_hint(): return # 读取、配置参数 - stage = ArchiveManager.get_global_value("c02_musicbox_stage", 1) + stage = ArchiveManager.get_global_value(&"c02_musicbox_stage", 1) playing_step_sec = audio_manual.get_length() / playing_steps handle_wheel.rotated.connect(_on_wheel_rotated) box_closed.picked.connect(_on_box_picked) drawer_btn.picked.connect(_on_drawer_picked) - if ArchiveManager.get_global_value("c02_musicbox_pic_taken"): + if ArchiveManager.get_global_value(&"c02_musicbox_pic_taken"): pic.queue_free() - if ArchiveManager.get_global_value("c02_musicbox_danzhu_taken"): + if ArchiveManager.get_global_value(&"c02_musicbox_danzhu_taken"): danzhu.queue_free() - if ArchiveManager.get_global_value("c02_musicbox_xiaomao_taken"): + if ArchiveManager.get_global_value(&"c02_musicbox_xiaomao_taken"): xiaomao.queue_free() - if ArchiveManager.get_global_value("c02_musicbox_xiaochan_taken"): + if ArchiveManager.get_global_value(&"c02_musicbox_xiaochan_taken"): xiaochan.queue_free() pic.picked.connect(_on_prop_picked.bind("pic")) @@ -140,7 +140,7 @@ func _on_prop_picked(node: Draggable2D, archive_key: String): SceneManager.enable_prop_item(key) if key == "prop_无头小猫玩具": _on_pick_catty() - ArchiveManager.set_global_entry("c02_musicbox_" + archive_key + "_taken", true) + ArchiveManager.set_global_entry(&"c02_musicbox_" + archive_key + "_taken", true) func _on_picked(node: Draggable2D): @@ -270,8 +270,8 @@ func _chechout_stage(s: int, play_sfx := true) -> void: if play_sfx: sfx_close_lid.play() 2: - if not ArchiveManager.get_global_value("c02_musicbox_has_opened"): - ArchiveManager.set_global_entry("c02_musicbox_has_opened", false) + if not ArchiveManager.get_global_value(&"c02_musicbox_has_opened"): + ArchiveManager.set_global_entry(&"c02_musicbox_has_opened", false) SceneManager.pop_center_notification(tr("c02_s02_八音盒缺人偶")) else: SceneManager.pop_center_notification(tr("ui_use_prop")) diff --git a/scene/little_game/八音盒/八音盒.tscn b/scene/little_game/八音盒/八音盒.tscn index 2d654946..57285ce7 100644 --- a/scene/little_game/八音盒/八音盒.tscn +++ b/scene/little_game/八音盒/八音盒.tscn @@ -34,7 +34,7 @@ [ext_resource type="Texture2D" uid="uid://c07o1l2hs2ex5" path="res://asset/art/little_game/八音盒/新小猫身体.png" id="31_wq2wm"] [ext_resource type="Texture2D" uid="uid://b2jnocfgfr3io" path="res://asset/art/little_game/八音盒/小蝉人偶.png" id="32_sg8mt"] [ext_resource type="SpriteFrames" uid="uid://cwes55ajc3rd4" path="res://asset/art/gif/c02_空房间/c02_空房间_frames.tres" id="34_tgpfj"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="35_wq2wm"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="35_wq2wm"] [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="36_sg8mt"] [sub_resource type="Animation" id="Animation_j1llk"] diff --git a/scene/little_game/弹珠游戏/弹珠游戏.gd b/scene/little_game/弹珠游戏/弹珠游戏.gd index 1d2e46b1..3d616499 100644 --- a/scene/little_game/弹珠游戏/弹珠游戏.gd +++ b/scene/little_game/弹珠游戏/弹珠游戏.gd @@ -26,7 +26,7 @@ func _ready() -> void: layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME hand_pivot.modulate.a = 0 # 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束 - if ArchiveManager.get_global_value("c02_ball_game_stage", 0) == 2: + if ArchiveManager.get_global_value(&"c02_ball_game_stage", 0) == 2: # checkout_round(2) checkout_round(0) else: @@ -50,7 +50,7 @@ func intro_finished(): SceneManager.disable_prop_item("prop_弹珠") # 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束 # 放入弹珠,开始游戏 - ArchiveManager.set_global_entry("c02_ball_game_stage", 2) + ArchiveManager.set_global_entry(&"c02_ball_game_stage", 2) var ball = pivot.get_child(0) as RigidBody2D ball.angular_velocity = 20 animation_player.play("give_ball") @@ -242,7 +242,7 @@ func _on_hit_boundary(): func game_win() -> void: print("game_win 弹珠游戏胜利") # 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束 - ArchiveManager.set_global_entry("c02_ball_game_stage", 3) + ArchiveManager.set_global_entry(&"c02_ball_game_stage", 3) %"Sfx结尾小孩跑".play() # 弹珠雨 $BallsFalling.emitting = true diff --git a/scene/main.gd b/scene/main.gd index d71103d4..3653a079 100644 --- a/scene/main.gd +++ b/scene/main.gd @@ -14,14 +14,20 @@ func _ready() -> void: # settings.exited.connect(grab_focus) - func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("escape"): - SceneManager.show_settings() get_viewport().set_input_as_handled() + SceneManager.show_panel() + # SceneManager.show_settings() elif event.is_action_pressed("bag"): + get_viewport().set_input_as_handled() SceneManager.show_bag() + elif event.is_action_pressed("memory"): get_viewport().set_input_as_handled() - elif event.is_action_pressed("gallery"): - SceneManager.show_gallery() + SceneManager.show_memory() + elif event.is_action_pressed("note"): get_viewport().set_input_as_handled() + SceneManager.show_note() + elif event.is_action_pressed("panel"): + get_viewport().set_input_as_handled() + SceneManager.show_panel() diff --git a/scene/main.tscn b/scene/main.tscn index c402c90f..2b6d5227 100644 --- a/scene/main.tscn +++ b/scene/main.tscn @@ -1,9 +1,9 @@ [gd_scene load_steps=7 format=3 uid="uid://dygvcmykn02n8"] [ext_resource type="Script" uid="uid://jn2alpdl4eal" path="res://scene/main.gd" id="1_pks84"] -[ext_resource type="PackedScene" uid="uid://dc778gsjfr3ky" path="res://scene/prop/prop_hud.tscn" id="4_t7gb2"] +[ext_resource type="PackedScene" uid="uid://dc778gsjfr3ky" path="res://scene/ux/prop_hud.tscn" id="4_t7gb2"] [ext_resource type="PackedScene" uid="uid://5g07x6q7wwr1" path="res://scene/notification/notification.tscn" id="5_3gg5t"] -[ext_resource type="PackedScene" uid="uid://cekhj65axie0p" path="res://scene/prop/prop_inspector.tscn" id="5_ux0rw"] +[ext_resource type="PackedScene" uid="uid://cekhj65axie0p" path="res://scene/ux/prop_inspector.tscn" id="5_ux0rw"] [ext_resource type="Environment" uid="uid://c6ri8tn5qt6fe" path="res://scene/ground/environment.tres" id="9_jsof5"] [ext_resource type="PackedScene" uid="uid://clxgkj80yin2" path="res://scene/ground/ground_loader.tscn" id="10_8rc5n"] diff --git a/scene/prop/prop_bag.tscn b/scene/prop/prop_bag.tscn deleted file mode 100644 index 191e73d0..00000000 --- a/scene/prop/prop_bag.tscn +++ /dev/null @@ -1,138 +0,0 @@ -[gd_scene load_steps=9 format=3 uid="uid://b6gbolo1o7wdf"] - -[ext_resource type="Script" uid="uid://cg7wdaw03bovq" path="res://scene/prop/prop_bag.gd" id="1_f3hpu"] -[ext_resource type="Theme" uid="uid://ro8r1wa1bvua" path="res://config/gallery_item_theme.tres" id="1_rvhvk"] -[ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/prop_and_bag/小蝶笔记.png" id="2_3s314"] -[ext_resource type="AudioStream" uid="uid://dyjifofhdx25w" path="res://asset/audio/sfx/交互/打开背包.wav" id="2_xo6jf"] -[ext_resource type="PackedScene" uid="uid://wxd25ec3cqyy" path="res://scene/prop/prop_bag_button.tscn" id="3_wlvs1"] -[ext_resource type="Texture2D" uid="uid://dl214l7im21sf" path="res://asset/art/prop/c01/院长的信.png" id="4_wlvs1"] - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mnmsg"] -bg_color = Color(0.6, 0.6, 0.6, 0) - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wlvs1"] - -[node name="PropBag" type="CanvasLayer"] -process_mode = 3 -script = ExtResource("1_f3hpu") - -[node name="OpenBagSfx" type="AudioStreamPlayer" parent="."] -unique_name_in_owner = true -stream = ExtResource("2_xo6jf") - -[node name="Bag" type="Control" parent="."] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="TextureRect" type="TextureRect" parent="Bag"] -layout_mode = 1 -anchors_preset = 14 -anchor_top = 0.5 -anchor_right = 1.0 -anchor_bottom = 0.5 -offset_top = -120.0 -offset_bottom = 120.0 -grow_horizontal = 2 -grow_vertical = 2 -texture = ExtResource("2_3s314") -expand_mode = 5 -stretch_mode = 2 - -[node name="物品" type="Button" parent="Bag"] -z_index = 100 -layout_mode = 0 -offset_left = 112.0 -offset_top = 39.0 -offset_right = 162.0 -offset_bottom = 79.0 -theme = ExtResource("1_rvhvk") -theme_type_variation = &"tab_btn" -disabled = true -text = "bag_tab_日志" -flat = true - -[node name="回忆" type="Button" parent="Bag"] -unique_name_in_owner = true -z_index = 200 -layout_mode = 0 -offset_left = 157.0 -offset_top = 38.0 -offset_right = 207.0 -offset_bottom = 78.0 -theme = ExtResource("1_rvhvk") -theme_type_variation = &"tab_btn" -text = "bag_tab_记忆" -flat = true - -[node name="ScrollContainer" type="ScrollContainer" parent="Bag"] -custom_minimum_size = Vector2(120, 160) -layout_mode = 1 -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -139.0 -offset_top = -82.0 -offset_right = -19.0 -offset_bottom = 78.0 -grow_horizontal = 2 -grow_vertical = 2 -horizontal_scroll_mode = 0 - -[node name="ButtonsVBox" type="VBoxContainer" parent="Bag/ScrollContainer"] -unique_name_in_owner = true -layout_mode = 2 -size_flags_horizontal = 4 -size_flags_vertical = 0 - -[node name="Button" parent="Bag/ScrollContainer/ButtonsVBox" instance=ExtResource("3_wlvs1")] -layout_mode = 2 - -[node name="Button2" parent="Bag/ScrollContainer/ButtonsVBox" instance=ExtResource("3_wlvs1")] -layout_mode = 2 -text = "示例按钮" - -[node name="Button3" parent="Bag/ScrollContainer/ButtonsVBox" instance=ExtResource("3_wlvs1")] -layout_mode = 2 -text = "示例按钮" - -[node name="DisplayVBox" type="VBoxContainer" parent="Bag"] -layout_mode = 0 -offset_left = 300.0 -offset_top = 61.0 -offset_right = 440.0 -offset_bottom = 255.0 - -[node name="TextureRect" type="TextureRect" parent="Bag/DisplayVBox"] -unique_name_in_owner = true -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -size_flags_horizontal = 4 -size_flags_vertical = 0 -texture = ExtResource("4_wlvs1") -expand_mode = 5 -stretch_mode = 5 - -[node name="Content" type="TextEdit" parent="Bag/DisplayVBox"] -unique_name_in_owner = true -custom_minimum_size = Vector2(140, 90) -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 0 -theme_override_colors/font_readonly_color = Color(0.337438, 0.120804, 0.0401172, 1) -theme_override_font_sizes/font_size = 9 -theme_override_styles/normal = SubResource("StyleBoxFlat_mnmsg") -theme_override_styles/read_only = SubResource("StyleBoxEmpty_wlvs1") -text = "1 -2 -3 -4 -5" -editable = false -wrap_mode = 1 -scroll_smooth = true diff --git a/scene/prop/prop_bag_button.tscn b/scene/prop/prop_bag_button.tscn deleted file mode 100644 index 1cc440d6..00000000 --- a/scene/prop/prop_bag_button.tscn +++ /dev/null @@ -1,17 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://wxd25ec3cqyy"] - -[ext_resource type="Texture2D" uid="uid://1ky8heqxctnf" path="res://asset/art/ui/prop_and_bag/重要物品/重要物品ui-25.png" id="1_jf0g1"] - -[node name="Button" type="Button"] -custom_minimum_size = Vector2(100, 15) -theme_type_variation = &"FlatButton" -theme_override_colors/icon_hover_color = Color(1, 1, 1, 0.913725) -theme_override_colors/icon_pressed_color = Color(1, 1, 1, 1) -theme_override_colors/icon_focus_color = Color(1, 1, 1, 0.819608) -theme_override_colors/icon_normal_color = Color(1, 1, 1, 0.6) -theme_override_colors/font_color = Color(0, 0, 0, 1) -theme_override_constants/icon_max_width = 8 -text = "院长的信" -icon = ExtResource("1_jf0g1") -flat = true -clip_text = true diff --git a/scene/settings/settings.gd b/scene/settings/settings.gd index 59a549d4..b76a82e6 100644 --- a/scene/settings/settings.gd +++ b/scene/settings/settings.gd @@ -10,8 +10,6 @@ extends CanvasLayer @onready var top_box = %TopBox as CheckBox @onready var index_btn = %IndexBtn as Button @onready var exit_btn = %ExitBtn as Button -@onready var diary_btn = %DiaryBtn as Button -@onready var gallery_btn = %GalleryBtn as Button # 音量 DB 偏移 const sfx_db_offset := 6.0 @@ -71,12 +69,10 @@ func _ready(): # navigation exit_btn.pressed.connect(_on_exit_btn_pressed) index_btn.pressed.connect(_on_index_btn_pressed) - diary_btn.pressed.connect(_on_diary_btn_pressed) - gallery_btn.pressed.connect(_on_gallery_btn_pressed) # open $"Sfx打开".play() SceneManager.toggle_pause_counter(true) - diary_btn.grab_focus() + index_btn.grab_focus() func _on_master_bus_slider_value_changed(value: float) -> void: @@ -157,16 +153,6 @@ func _on_index_btn_pressed() -> void: exit_settings() -func _on_diary_btn_pressed() -> void: - SceneManager.show_bag() - exit_settings() - - -func _on_gallery_btn_pressed() -> void: - SceneManager.show_gallery() - exit_settings() - - func _unhandled_key_input(event: InputEvent) -> void: # settings 界面接受所有输入事件 get_viewport().set_input_as_handled() diff --git a/scene/settings/settings.tscn b/scene/settings/settings.tscn index 897768f4..41c4b5cc 100644 --- a/scene/settings/settings.tscn +++ b/scene/settings/settings.tscn @@ -11,6 +11,7 @@ layer = 30 script = ExtResource("1_7u4nq") [node name="Sfx打开" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("2_6hxkf") volume_db = -5.0 bus = &"game_sfx" @@ -18,6 +19,7 @@ script = ExtResource("3_kn03d") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx关闭" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("4_n2b1f") volume_db = -5.0 bus = &"game_sfx" @@ -68,7 +70,6 @@ custom_minimum_size = Vector2(100, 5) layout_mode = 2 focus_neighbor_bottom = NodePath("../../HBoxContainer2/HSliderSfxBus") focus_next = NodePath("../../HBoxContainer2/HSliderSfxBus") -focus_previous = NodePath("../../MarginContainer/HBoxContainer/GalleryBtn") max_value = 1.0 step = 0.01 value = 1.0 @@ -198,15 +199,16 @@ text = "setting_窗口置顶" layout_mode = 2 [node name="HBoxContainer3" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] +custom_minimum_size = Vector2(0, 35) layout_mode = 2 [node name="IndexBtn" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer3"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 6 +size_flags_vertical = 4 focus_neighbor_top = NodePath("../../GridContainer/FullscreenBox") focus_neighbor_right = NodePath("../ExitBtn") -focus_neighbor_bottom = NodePath("../../MarginContainer/HBoxContainer/DiaryBtn") focus_next = NodePath("../ExitBtn") focus_previous = NodePath("../../GridContainer/TopBox") text = "setting_主界面" @@ -215,41 +217,8 @@ text = "setting_主界面" unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 6 +size_flags_vertical = 4 focus_neighbor_left = NodePath("../IndexBtn") focus_neighbor_top = NodePath("../../GridContainer/TopBox") -focus_neighbor_bottom = NodePath("../../MarginContainer/HBoxContainer/GalleryBtn") -focus_next = NodePath("../../MarginContainer/HBoxContainer/DiaryBtn") focus_previous = NodePath("../IndexBtn") text = "setting_退出" - -[node name="HSeparator2" type="HSeparator" parent="PanelContainer/VBoxContainer"] -layout_mode = 2 - -[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer"] -layout_mode = 2 -theme_override_constants/margin_bottom = 4 - -[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer"] -layout_mode = 2 - -[node name="DiaryBtn" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer"] -unique_name_in_owner = true -custom_minimum_size = Vector2(100, 30) -layout_mode = 2 -size_flags_horizontal = 4 -focus_neighbor_top = NodePath("../../../HBoxContainer3/IndexBtn") -focus_neighbor_right = NodePath("../GalleryBtn") -focus_next = NodePath("../GalleryBtn") -focus_previous = NodePath("../../../HBoxContainer3/ExitBtn") -text = "setting_日志" - -[node name="GalleryBtn" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer"] -unique_name_in_owner = true -custom_minimum_size = Vector2(100, 30) -layout_mode = 2 -size_flags_horizontal = 4 -focus_neighbor_left = NodePath("../DiaryBtn") -focus_neighbor_top = NodePath("../../../HBoxContainer3/ExitBtn") -focus_next = NodePath("../../../HBoxContainer/HSliderMasterBus") -focus_previous = NodePath("../DiaryBtn") -text = "setting_记忆" diff --git a/scene/prop/prop_bag.gd b/scene/ux/bag/prop_bag.gd similarity index 76% rename from scene/prop/prop_bag.gd rename to scene/ux/bag/prop_bag.gd index 9368149e..de487afd 100644 --- a/scene/prop/prop_bag.gd +++ b/scene/ux/bag/prop_bag.gd @@ -1,22 +1,21 @@ extends CanvasLayer @onready var buttons_vbox = %ButtonsVBox as VBoxContainer +@onready var texture_bg = %TextureBG as TextureRect @onready var texture_rect = %TextureRect as TextureRect @onready var content_text_edit = %Content as TextEdit func _ready(): - layer = GlobalConfig.CANVAS_LAYER_BAG + layer = GlobalConfig.CANVAS_LAYER_UX_PANEL SceneManager.toggle_pause_counter(true) _load_item_buttons() - %OpenBagSfx.play() - %"回忆".pressed.connect(_on_tab_pressed) - - -func _on_tab_pressed(): - SceneManager.toggle_pause_counter(false) - SceneManager.show_gallery() - queue_free() + # fisplay first item + var hud = SceneManager.get_prop_hud() + if hud and hud.inventory.important_items.size() > 0: + _display_item(hud.inventory.important_items[0]) + else: + texture_bg.visible = false func _load_item_buttons() -> void: @@ -35,7 +34,7 @@ func _load_item_buttons() -> void: # prop keys var inventory = hud.inventory for prop_key in inventory.important_items: - var button = preload("res://scene/prop/prop_bag_button.tscn").instantiate() + var button = preload("uid://wxd25ec3cqyy").instantiate() button.text = tr(prop_key) button.pressed.connect(_display_item.bind(prop_key, button)) buttons_vbox.add_child(button) @@ -48,7 +47,7 @@ func _load_item_buttons() -> void: # # _display_item(inventory.important_items[0]) -func _display_item(prop_key, button): +func _display_item(prop_key, button = null): var hud = SceneManager.get_prop_hud() if not hud: printerr("PropHud node not found") @@ -56,7 +55,8 @@ func _display_item(prop_key, button): # 标记为已读:消除 icon + 写入 inventory if hud.inventory.unviewed_important_items.has(prop_key): hud.inventory.unviewed_important_items.erase(prop_key) - button.icon = null + if button: + button.icon = null # prop keys var item_data = hud.items_dict[prop_key] var content = hud.items_description_dict[prop_key] @@ -72,15 +72,9 @@ func _unhandled_input(event: InputEvent) -> void: or event.is_action_pressed("cancel") or event.is_action_pressed("escape") ): - var close_stream = preload("res://asset/audio/sfx/交互/收起背包.wav") - AudioManager.play_sfx(close_stream) - SceneManager.toggle_pause_counter(false) - queue_free() - elif event.is_action_pressed("gallery"): - SceneManager.show_gallery() - SceneManager.toggle_pause_counter(false) - queue_free() - - + quit() +func quit() -> void: + SceneManager.toggle_pause_counter(false) + queue_free() diff --git a/scene/prop/prop_bag.gd.uid b/scene/ux/bag/prop_bag.gd.uid similarity index 100% rename from scene/prop/prop_bag.gd.uid rename to scene/ux/bag/prop_bag.gd.uid diff --git a/scene/ux/bag/prop_bag.tscn b/scene/ux/bag/prop_bag.tscn new file mode 100644 index 00000000..b5b02c6a --- /dev/null +++ b/scene/ux/bag/prop_bag.tscn @@ -0,0 +1,157 @@ +[gd_scene load_steps=13 format=3 uid="uid://b6gbolo1o7wdf"] + +[ext_resource type="Script" uid="uid://cg7wdaw03bovq" path="res://scene/ux/bag/prop_bag.gd" id="1_f3hpu"] +[ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/ux_panel/小蝶笔记.png" id="2_3s314"] +[ext_resource type="PackedScene" uid="uid://wxd25ec3cqyy" path="res://scene/ux/bag/prop_bag_button.tscn" id="3_wlvs1"] +[ext_resource type="PackedScene" uid="uid://ut4a5gwb4naq" path="res://scene/ux/tabs.tscn" id="4_wojfr"] +[ext_resource type="Texture2D" uid="uid://bi7l47cit2xs" path="res://asset/art/ui/ux_panel/完整背景.png" id="6_grmx4"] +[ext_resource type="Texture2D" uid="uid://bhjynxasn03jv" path="res://asset/art/ui/bag/重要物品ui-28.png" id="7_j146j"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="7_tgqj6"] +[ext_resource type="Texture2D" uid="uid://bg77dh6ua3kfo" path="res://asset/art/prop/c01/院长的信物品.png" id="10_tgqj6"] +[ext_resource type="FontFile" uid="uid://dr8bp6p7byb37" path="res://asset/font/字体/方正楷体简体.TTF" id="11_4jvvd"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wojfr"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cdo4g"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_m6suv"] + +[node name="PropBag" type="CanvasLayer"] +process_mode = 3 +script = ExtResource("1_f3hpu") + +[node name="Bag" type="Panel" parent="."] +custom_minimum_size = Vector2(564, 240) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxEmpty_wojfr") + +[node name="BG" type="TextureRect" parent="Bag"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("6_grmx4") +expand_mode = 5 +stretch_mode = 5 + +[node name="TextureRect" type="TextureRect" parent="Bag/BG"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("7_tgqj6") + +[node name="Tabs" parent="Bag" node_paths=PackedStringArray("root") instance=ExtResource("4_wojfr")] +unique_name_in_owner = true +offset_left = 8.0 +offset_top = 11.0 +offset_right = 191.0 +offset_bottom = 51.0 +current_type = "物品" +root = NodePath("../..") + +[node name="Book" type="TextureRect" parent="Bag"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("2_3s314") +expand_mode = 5 +stretch_mode = 5 + +[node name="ScrollContainer" type="ScrollContainer" parent="Bag/Book"] +custom_minimum_size = Vector2(120, 160) +layout_mode = 2 +offset_left = 89.0 +offset_top = 59.0 +offset_right = 280.0 +offset_bottom = 261.0 +grow_horizontal = 2 +grow_vertical = 2 +horizontal_scroll_mode = 0 + +[node name="ButtonsVBox" type="VBoxContainer" parent="Bag/Book/ScrollContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 0 + +[node name="Button" parent="Bag/Book/ScrollContainer/ButtonsVBox" instance=ExtResource("3_wlvs1")] +layout_mode = 2 + +[node name="Button2" parent="Bag/Book/ScrollContainer/ButtonsVBox" instance=ExtResource("3_wlvs1")] +layout_mode = 2 +text = "示例按钮" + +[node name="Button3" parent="Bag/Book/ScrollContainer/ButtonsVBox" instance=ExtResource("3_wlvs1")] +layout_mode = 2 +text = "示例按钮" + +[node name="DisplayVBox" type="VBoxContainer" parent="Bag/Book"] +layout_mode = 2 +offset_left = 324.0 +offset_top = 49.0 +offset_right = 488.0 +offset_bottom = 273.0 +theme_override_constants/separation = 16 + +[node name="TextureBG" type="TextureRect" parent="Bag/Book/DisplayVBox"] +unique_name_in_owner = true +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +texture = ExtResource("7_j146j") +expand_mode = 1 + +[node name="TextureRect" type="TextureRect" parent="Bag/Book/DisplayVBox/TextureBG"] +unique_name_in_owner = true +custom_minimum_size = Vector2(100, 100) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +size_flags_vertical = 0 +texture = ExtResource("10_tgqj6") +expand_mode = 1 +stretch_mode = 5 + +[node name="Content" type="TextEdit" parent="Bag/Book/DisplayVBox"] +unique_name_in_owner = true +custom_minimum_size = Vector2(164, 90) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 0 +theme_override_colors/font_readonly_color = Color(0, 0, 0, 1) +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_constants/line_spacing = 1 +theme_override_fonts/font = ExtResource("11_4jvvd") +theme_override_font_sizes/font_size = 8 +theme_override_styles/normal = SubResource("StyleBoxEmpty_cdo4g") +theme_override_styles/read_only = SubResource("StyleBoxEmpty_m6suv") +text = "浦育院院长秦阳 +民国21年11月20日 +致吕萍: +你现下境况如何? +你虽离开浦育院已久,但我始终没有忘记为你祈祷。 +愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。 +你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。 +若有闲暇,欢迎你回浦育院看看。 +院长童玉君 +民国十九年十月十五日 +公寓地址 芦昌路26弄3号" +editable = false +wrap_mode = 1 +scroll_smooth = true diff --git a/scene/ux/bag/prop_bag_button.tscn b/scene/ux/bag/prop_bag_button.tscn new file mode 100644 index 00000000..5005b1f2 --- /dev/null +++ b/scene/ux/bag/prop_bag_button.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=4 format=3 uid="uid://wxd25ec3cqyy"] + +[ext_resource type="FontFile" uid="uid://dr8bp6p7byb37" path="res://asset/font/字体/方正楷体简体.TTF" id="1_5nv8m"] +[ext_resource type="Texture2D" uid="uid://1ky8heqxctnf" path="res://asset/art/ui/bag/重要物品ui-25.png" id="1_jf0g1"] +[ext_resource type="Texture2D" uid="uid://c1l5royi6w0cm" path="res://asset/art/ui/bag/重要物品ui-27.png" id="3_dck1d"] + +[node name="Button" type="Button"] +custom_minimum_size = Vector2(130, 26) +offset_right = 20.0 +offset_bottom = 20.0 +theme_type_variation = &"FlatButton" +theme_override_colors/icon_hover_color = Color(1, 1, 1, 0.913725) +theme_override_colors/icon_pressed_color = Color(1, 1, 1, 1) +theme_override_colors/icon_focus_color = Color(1, 1, 1, 0.819608) +theme_override_colors/icon_normal_color = Color(1, 1, 1, 0.6) +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_constants/icon_max_width = 8 +theme_override_fonts/font = ExtResource("1_5nv8m") +theme_override_font_sizes/font_size = 15 +toggle_mode = true +text = "院长的信" +icon = ExtResource("1_jf0g1") +flat = true +alignment = 0 +clip_text = true + +[node name="TextureRect" type="TextureRect" parent="."] +custom_minimum_size = Vector2(99, 10) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -3.0 +offset_top = 19.0 +offset_right = -34.0 +offset_bottom = 3.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_dck1d") +expand_mode = 1 +stretch_mode = 5 diff --git a/scene/gallery/clips/clip1.gd b/scene/ux/memory/clips/clip1.gd similarity index 100% rename from scene/gallery/clips/clip1.gd rename to scene/ux/memory/clips/clip1.gd diff --git a/scene/gallery/clips/clip1.gd.uid b/scene/ux/memory/clips/clip1.gd.uid similarity index 100% rename from scene/gallery/clips/clip1.gd.uid rename to scene/ux/memory/clips/clip1.gd.uid diff --git a/scene/gallery/clips/clip1_偷听.tscn b/scene/ux/memory/clips/clip1_偷听.tscn similarity index 98% rename from scene/gallery/clips/clip1_偷听.tscn rename to scene/ux/memory/clips/clip1_偷听.tscn index 5103a319..67b17b36 100644 --- a/scene/gallery/clips/clip1_偷听.tscn +++ b/scene/ux/memory/clips/clip1_偷听.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=12 format=3 uid="uid://ckd26q67hm7j0"] -[ext_resource type="Script" uid="uid://cykq6mvsahrog" path="res://scene/gallery/clips/clip1.gd" id="1_kxumr"] +[ext_resource type="Script" uid="uid://cykq6mvsahrog" path="res://scene/ux/memory/clips/clip1.gd" id="1_kxumr"] [ext_resource type="Texture2D" uid="uid://b3odt4ojsvu5n" path="res://asset/art/scene/c02/s03_公寓一楼院子/bg_一楼.png" id="2_qjtsy"] [ext_resource type="Shader" uid="uid://cwuxtdwmhahhp" path="res://asset/shader/palette.gdshader" id="2_t5ghu"] [ext_resource type="Texture2D" uid="uid://c2fs06jvtupi7" path="res://asset/shader/palette/warm-summer-1x.png" id="3_5a5os"] diff --git a/scene/gallery/clips/clip2.gd b/scene/ux/memory/clips/clip2.gd similarity index 100% rename from scene/gallery/clips/clip2.gd rename to scene/ux/memory/clips/clip2.gd diff --git a/scene/gallery/clips/clip2.gd.uid b/scene/ux/memory/clips/clip2.gd.uid similarity index 100% rename from scene/gallery/clips/clip2.gd.uid rename to scene/ux/memory/clips/clip2.gd.uid diff --git a/scene/gallery/clips/clip2_疯子看井.tscn b/scene/ux/memory/clips/clip2_疯子看井.tscn similarity index 99% rename from scene/gallery/clips/clip2_疯子看井.tscn rename to scene/ux/memory/clips/clip2_疯子看井.tscn index ab439b81..b03a93df 100644 --- a/scene/gallery/clips/clip2_疯子看井.tscn +++ b/scene/ux/memory/clips/clip2_疯子看井.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=14 format=3 uid="uid://da4rposvvqo3d"] -[ext_resource type="Script" uid="uid://b72o7pitx4dst" path="res://scene/gallery/clips/clip2.gd" id="1_3cva3"] +[ext_resource type="Script" uid="uid://b72o7pitx4dst" path="res://scene/ux/memory/clips/clip2.gd" id="1_3cva3"] [ext_resource type="Shader" uid="uid://cwuxtdwmhahhp" path="res://asset/shader/palette.gdshader" id="2_c3umb"] [ext_resource type="Texture2D" uid="uid://dk1h6bg7k2bkt" path="res://asset/shader/palette/purplemorning8-1x.png" id="3_2w0uy"] [ext_resource type="Texture2D" uid="uid://b3odt4ojsvu5n" path="res://asset/art/scene/c02/s03_公寓一楼院子/bg_一楼.png" id="4_dagyf"] diff --git a/scene/gallery/clips/clip_template.gd b/scene/ux/memory/clips/clip_template.gd similarity index 100% rename from scene/gallery/clips/clip_template.gd rename to scene/ux/memory/clips/clip_template.gd diff --git a/scene/gallery/clips/clip_template.gd.uid b/scene/ux/memory/clips/clip_template.gd.uid similarity index 100% rename from scene/gallery/clips/clip_template.gd.uid rename to scene/ux/memory/clips/clip_template.gd.uid diff --git a/scene/gallery/clips/clip_template.tscn b/scene/ux/memory/clips/clip_template.tscn similarity index 98% rename from scene/gallery/clips/clip_template.tscn rename to scene/ux/memory/clips/clip_template.tscn index b0139dde..80f8a7ef 100644 --- a/scene/gallery/clips/clip_template.tscn +++ b/scene/ux/memory/clips/clip_template.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=12 format=3 uid="uid://4yju7mbcmejw"] -[ext_resource type="Script" uid="uid://bvbtl3sp4pq1a" path="res://scene/gallery/clips/clip_template.gd" id="1_234wg"] +[ext_resource type="Script" uid="uid://bvbtl3sp4pq1a" path="res://scene/ux/memory/clips/clip_template.gd" id="1_234wg"] [ext_resource type="Texture2D" uid="uid://b3odt4ojsvu5n" path="res://asset/art/scene/c02/s03_公寓一楼院子/bg_一楼.png" id="2_bu61q"] [ext_resource type="Shader" uid="uid://cwuxtdwmhahhp" path="res://asset/shader/palette.gdshader" id="2_wd24l"] [ext_resource type="Texture2D" uid="uid://c2fs06jvtupi7" path="res://asset/shader/palette/warm-summer-1x.png" id="3_vrni0"] diff --git a/scene/ux/memory/memory.gd b/scene/ux/memory/memory.gd new file mode 100644 index 00000000..8d7de73c --- /dev/null +++ b/scene/ux/memory/memory.gd @@ -0,0 +1,22 @@ +extends CanvasLayer + + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_UX_PANEL + SceneManager.toggle_pause_counter(true) + + +func _unhandled_input(event: InputEvent) -> void: + # memory 界面阻塞所有输入事件,除了 escape + get_viewport().set_input_as_handled() + if ( + event.is_action_pressed("escape") + or event.is_action_pressed("cancel") + or event.is_action_pressed("memory") + ): + quit() + + +func quit() -> void: + SceneManager.toggle_pause_counter(false) + queue_free() diff --git a/scene/gallery/gallery.gd.uid b/scene/ux/memory/memory.gd.uid similarity index 100% rename from scene/gallery/gallery.gd.uid rename to scene/ux/memory/memory.gd.uid diff --git a/scene/ux/memory/memory.tscn b/scene/ux/memory/memory.tscn new file mode 100644 index 00000000..0d459022 --- /dev/null +++ b/scene/ux/memory/memory.tscn @@ -0,0 +1,168 @@ +[gd_scene load_steps=10 format=3 uid="uid://gfkdh8pqhixn"] + +[ext_resource type="Script" uid="uid://bt86ajx7nwnk3" path="res://scene/ux/memory/memory.gd" id="1_22dwm"] +[ext_resource type="Texture2D" uid="uid://bi7l47cit2xs" path="res://asset/art/ui/ux_panel/完整背景.png" id="2_mydtv"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="3_6dhhp"] +[ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/ux_panel/小蝶笔记.png" id="3_mydtv"] +[ext_resource type="PackedScene" uid="uid://du6jt6ae5ulvy" path="res://scene/ux/memory/memory_item.tscn" id="4_6dhhp"] +[ext_resource type="PackedScene" uid="uid://ut4a5gwb4naq" path="res://scene/ux/tabs.tscn" id="4_7f8pt"] +[ext_resource type="PackedScene" uid="uid://ckd26q67hm7j0" path="res://scene/ux/memory/clips/clip1_偷听.tscn" id="5_7f8pt"] +[ext_resource type="PackedScene" uid="uid://da4rposvvqo3d" path="res://scene/ux/memory/clips/clip2_疯子看井.tscn" id="6_dp1y4"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dp1y4"] + +[node name="Memory" type="CanvasLayer"] +process_mode = 3 +script = ExtResource("1_22dwm") + +[node name="Mem" type="Panel" parent="."] +custom_minimum_size = Vector2(564, 240) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxEmpty_dp1y4") + +[node name="BG" type="TextureRect" parent="Mem"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("2_mydtv") +expand_mode = 5 +stretch_mode = 5 + +[node name="TextureRect" type="TextureRect" parent="Mem/BG"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_6dhhp") + +[node name="Tabs" parent="Mem" node_paths=PackedStringArray("root") instance=ExtResource("4_7f8pt")] +unique_name_in_owner = true +offset_left = 8.0 +offset_top = 11.0 +offset_right = 191.0 +offset_bottom = 51.0 +current_type = "回忆" +root = NodePath("../..") + +[node name="Book" type="TextureRect" parent="Mem"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("3_mydtv") +expand_mode = 5 +stretch_mode = 5 + +[node name="GridContainer" type="GridContainer" parent="Mem"] +z_index = 10 +layout_mode = 2 +offset_left = 90.0 +offset_top = 56.0 +offset_right = 259.0 +offset_bottom = 276.0 +theme_override_constants/h_separation = 19 +theme_override_constants/v_separation = 7 +columns = 2 + +[node name="MemoryItem" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("5_7f8pt") +title = "g_偷听对话" + +[node name="MemoryItem2" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("6_dp1y4") +title = "g_疯子看井" + +[node name="MemoryItem3" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("5_7f8pt") +title = "g_偷听对话" + +[node name="MemoryItem4" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("6_dp1y4") +title = "g_疯子看井" + +[node name="MemoryItem5" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("5_7f8pt") +title = "g_偷听对话" + +[node name="MemoryItem6" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("6_dp1y4") +title = "g_疯子看井" + +[node name="MemoryItem7" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("5_7f8pt") +title = "g_偷听对话" + +[node name="MemoryItem8" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("6_dp1y4") +title = "g_疯子看井" + +[node name="GridContainer2" type="GridContainer" parent="Mem"] +z_index = 10 +layout_mode = 2 +offset_left = 320.0 +offset_top = 57.0 +offset_right = 489.0 +offset_bottom = 277.0 +theme_override_constants/h_separation = 19 +theme_override_constants/v_separation = 7 +columns = 2 + +[node name="MemoryItem" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("5_7f8pt") +title = "g_偷听对话" + +[node name="MemoryItem2" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("6_dp1y4") +title = "g_疯子看井" + +[node name="MemoryItem3" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("5_7f8pt") +title = "g_偷听对话" + +[node name="MemoryItem4" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("6_dp1y4") +title = "g_疯子看井" + +[node name="MemoryItem5" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("5_7f8pt") +title = "g_偷听对话" + +[node name="MemoryItem6" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("6_dp1y4") +title = "g_疯子看井" + +[node name="MemoryItem7" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("5_7f8pt") +title = "g_偷听对话" + +[node name="MemoryItem8" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")] +layout_mode = 2 +packed_scene = ExtResource("6_dp1y4") +title = "g_疯子看井" diff --git a/scene/gallery/gallery_item.gd b/scene/ux/memory/memory_item.gd similarity index 94% rename from scene/gallery/gallery_item.gd rename to scene/ux/memory/memory_item.gd index a1208812..2b1c8166 100644 --- a/scene/gallery/gallery_item.gd +++ b/scene/ux/memory/memory_item.gd @@ -1,5 +1,5 @@ @tool -class_name GalleryItem +class_name MemoryItem extends Container @export var packed_scene: PackedScene: @@ -24,7 +24,7 @@ extends Container func _ready() -> void: - display_layer.layer = GlobalConfig.CANVAS_LAYER_GALLERY_CARD + display_layer.layer = GlobalConfig.CANVAS_LAYER_UX_PANEL title_label.text = title _reload_scene() scene_btn.mouse_entered.connect(_on_toggle_hover.bind(true)) @@ -93,7 +93,7 @@ func _unhandled_input(event: InputEvent) -> void: if ( event.is_action_pressed("escape") or event.is_action_pressed("cancel") - or event.is_action_pressed("gallery") + or event.is_action_pressed("memory") ): _on_display_finished() get_viewport().set_input_as_handled() diff --git a/scene/gallery/gallery_item.gd.uid b/scene/ux/memory/memory_item.gd.uid similarity index 100% rename from scene/gallery/gallery_item.gd.uid rename to scene/ux/memory/memory_item.gd.uid diff --git a/scene/gallery/gallery_item.tscn b/scene/ux/memory/memory_item.tscn similarity index 87% rename from scene/gallery/gallery_item.tscn rename to scene/ux/memory/memory_item.tscn index c5592852..65b15efc 100644 --- a/scene/gallery/gallery_item.tscn +++ b/scene/ux/memory/memory_item.tscn @@ -1,10 +1,10 @@ [gd_scene load_steps=4 format=3 uid="uid://du6jt6ae5ulvy"] -[ext_resource type="Theme" uid="uid://ro8r1wa1bvua" path="res://config/gallery_item_theme.tres" id="1_2f468"] -[ext_resource type="Script" uid="uid://bk8ton7q8i6hb" path="res://scene/gallery/gallery_item.gd" id="1_2q576"] -[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" id="3_wb2ol"] +[ext_resource type="Theme" uid="uid://ro8r1wa1bvua" path="res://config/memory_item_theme.tres" id="1_2f468"] +[ext_resource type="Script" uid="uid://bk8ton7q8i6hb" path="res://scene/ux/memory/memory_item.gd" id="1_2q576"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="3_wb2ol"] -[node name="GalleryItem" type="PanelContainer"] +[node name="MemoryItem" type="PanelContainer"] offset_right = 75.0 offset_bottom = 46.0 mouse_filter = 1 diff --git a/scene/ux/note/ux_note.gd b/scene/ux/note/ux_note.gd new file mode 100644 index 00000000..c2276075 --- /dev/null +++ b/scene/ux/note/ux_note.gd @@ -0,0 +1,22 @@ +extends CanvasLayer + + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_UX_PANEL + SceneManager.toggle_pause_counter(true) + + +func _unhandled_input(event: InputEvent) -> void: + # note 界面接受所有输入事件 + get_viewport().set_input_as_handled() + if ( + event.is_action_pressed("note") + or event.is_action_pressed("cancel") + or event.is_action_pressed("escape") + ): + quit() + + +func quit() -> void: + SceneManager.toggle_pause_counter(false) + queue_free() diff --git a/scene/ux/note/ux_note.gd.uid b/scene/ux/note/ux_note.gd.uid new file mode 100644 index 00000000..6c6752e3 --- /dev/null +++ b/scene/ux/note/ux_note.gd.uid @@ -0,0 +1 @@ +uid://bkyg34xfhe60p diff --git a/scene/ux/note/ux_note.tscn b/scene/ux/note/ux_note.tscn new file mode 100644 index 00000000..927502f6 --- /dev/null +++ b/scene/ux/note/ux_note.tscn @@ -0,0 +1,163 @@ +[gd_scene load_steps=13 format=3 uid="uid://cy7wrrsm8e04f"] + +[ext_resource type="Script" uid="uid://bkyg34xfhe60p" path="res://scene/ux/note/ux_note.gd" id="1_e61yw"] +[ext_resource type="Texture2D" uid="uid://bi7l47cit2xs" path="res://asset/art/ui/ux_panel/完整背景.png" id="2_1ka1m"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="3_nk0pj"] +[ext_resource type="PackedScene" uid="uid://ut4a5gwb4naq" path="res://scene/ux/tabs.tscn" id="4_7vpan"] +[ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/ux_panel/小蝶笔记.png" id="5_d1cia"] +[ext_resource type="Texture2D" uid="uid://bv57eyqs03k4y" path="res://asset/art/ui/note/线索笔记内容-29.png" id="6_7vpan"] +[ext_resource type="Texture2D" uid="uid://blub5hsn6iqit" path="res://asset/art/ui/note/线索笔记内容-30.png" id="6_n8isc"] +[ext_resource type="Texture2D" uid="uid://beltvxcu7pumi" path="res://asset/art/ui/note/线索笔记内容-31.png" id="7_8rh03"] +[ext_resource type="Texture2D" uid="uid://ldh387gluo1t" path="res://asset/art/ui/note/线索笔记内容-34.png" id="7_d1cia"] +[ext_resource type="Texture2D" uid="uid://db1k1t1lc34ut" path="res://asset/art/ui/note/线索笔记内容-32.png" id="8_kiw8q"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_j3kdg"] + +[sub_resource type="GDScript" id="GDScript_7vpan"] +script/source = "extends Event2D + +# var prev_stage := 0 +# var stage := 0 + + +func _ready() -> void: + super._ready() + if stage > 0: + get_node(\"../TextureRect\" + str(stage)).visible = true + +func _on_global_stage_updated(e: StringName, s: int): + super._on_global_stage_updated(e, s) + + +func _on_ground_ready(ground: Ground2D): + pass + + +func _on_pre_stage_updated(): + pass + + +func _on_stage_updated(): + pass +" + +[node name="Note" type="CanvasLayer"] +process_mode = 3 +script = ExtResource("1_e61yw") + +[node name="Bag" type="Panel" parent="."] +custom_minimum_size = Vector2(564, 240) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxEmpty_j3kdg") + +[node name="BG" type="TextureRect" parent="Bag"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("2_1ka1m") +expand_mode = 5 +stretch_mode = 5 + +[node name="TextureRect" type="TextureRect" parent="Bag/BG"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("3_nk0pj") + +[node name="Book" type="TextureRect" parent="Bag"] +z_index = 1 +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("5_d1cia") +expand_mode = 5 +stretch_mode = 5 + +[node name="TextureRect1" type="TextureRect" parent="Bag/Book"] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("6_7vpan") +expand_mode = 1 + +[node name="TextureRect2" type="TextureRect" parent="Bag/Book"] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("6_n8isc") +expand_mode = 1 + +[node name="TextureRect3" type="TextureRect" parent="Bag/Book"] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("7_8rh03") +expand_mode = 1 + +[node name="TextureRect4" type="TextureRect" parent="Bag/Book"] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("8_kiw8q") +expand_mode = 1 + +[node name="TextureRect5" type="TextureRect" parent="Bag/Book"] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("7_d1cia") +expand_mode = 1 + +[node name="Event2D" type="Node2D" parent="Bag/Book"] +script = SubResource("GDScript_7vpan") +event = "handnote_stage" +metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" + +[node name="Tabs" parent="Bag" node_paths=PackedStringArray("root") instance=ExtResource("4_7vpan")] +unique_name_in_owner = true +offset_left = 8.0 +offset_top = 11.0 +offset_right = 191.0 +offset_bottom = 51.0 +root = NodePath("../..") diff --git a/scene/ux/panel/ux_panel.gd b/scene/ux/panel/ux_panel.gd new file mode 100644 index 00000000..2b09ec96 --- /dev/null +++ b/scene/ux/panel/ux_panel.gd @@ -0,0 +1,17 @@ +extends CanvasLayer + + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_UX_PANEL + SceneManager.toggle_pause_counter(true) + + +func _unhandled_input(event: InputEvent) -> void: + # panel 界面接受所有输入事件 + get_viewport().set_input_as_handled() + if ( + event.is_action_pressed("cancel") + or event.is_action_pressed("escape") + ): + SceneManager.toggle_pause_counter(false) + queue_free() diff --git a/scene/ux/panel/ux_panel.gd.uid b/scene/ux/panel/ux_panel.gd.uid new file mode 100644 index 00000000..45f790f3 --- /dev/null +++ b/scene/ux/panel/ux_panel.gd.uid @@ -0,0 +1 @@ +uid://bo0i4wlcgmax2 diff --git a/scene/ux/panel/ux_panel.tscn b/scene/ux/panel/ux_panel.tscn new file mode 100644 index 00000000..1907383f --- /dev/null +++ b/scene/ux/panel/ux_panel.tscn @@ -0,0 +1,96 @@ +[gd_scene load_steps=6 format=3 uid="uid://ddlwnsccsmr8u"] + +[ext_resource type="Script" uid="uid://bo0i4wlcgmax2" path="res://scene/ux/panel/ux_panel.gd" id="1_8dnsb"] +[ext_resource type="Texture2D" uid="uid://bi7l47cit2xs" path="res://asset/art/ui/ux_panel/完整背景.png" id="2_5mits"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/inspect/inspect特写通用遮罩.png" id="3_mns6r"] +[ext_resource type="FontFile" uid="uid://255whp7fuig5" path="res://asset/font/字体/三极行楷简体-粗.ttf" id="4_mns6r"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_nw7ig"] + +[node name="UxPanel" type="CanvasLayer"] +process_mode = 3 +script = ExtResource("1_8dnsb") + +[node name="Bag" type="Panel" parent="."] +custom_minimum_size = Vector2(564, 240) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxEmpty_nw7ig") + +[node name="BG" type="TextureRect" parent="Bag"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("2_5mits") +expand_mode = 5 +stretch_mode = 5 + +[node name="TextureRect" type="TextureRect" parent="Bag/BG"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_mns6r") + +[node name="继续" type="Button" parent="Bag"] +layout_mode = 0 +offset_left = 44.0 +offset_top = 88.0 +offset_right = 191.0 +offset_bottom = 122.0 +theme_override_fonts/font = ExtResource("4_mns6r") +theme_override_font_sizes/font_size = 26 +text = "ux_panel_继续" +flat = true + +[node name="笔记" type="Button" parent="Bag"] +layout_mode = 0 +offset_left = 123.0 +offset_top = 119.0 +offset_right = 270.0 +offset_bottom = 153.0 +theme_override_fonts/font = ExtResource("4_mns6r") +theme_override_font_sizes/font_size = 26 +text = "ux_panel_笔记" +flat = true + +[node name="设置" type="Button" parent="Bag"] +layout_mode = 0 +offset_left = 203.0 +offset_top = 107.0 +offset_right = 383.0 +offset_bottom = 147.0 +theme_override_fonts/font = ExtResource("4_mns6r") +theme_override_font_sizes/font_size = 26 +text = "ux_panel_设置" +flat = true + +[node name="返回主菜单" type="Button" parent="Bag"] +layout_mode = 0 +offset_left = 279.0 +offset_top = 161.0 +offset_right = 489.0 +offset_bottom = 195.0 +theme_override_fonts/font = ExtResource("4_mns6r") +theme_override_font_sizes/font_size = 26 +text = "ux_panel_返回主菜单" +flat = true + +[node name="退出" type="Button" parent="Bag"] +layout_mode = 0 +offset_left = 383.0 +offset_top = 124.0 +offset_right = 563.0 +offset_bottom = 164.0 +theme_override_fonts/font = ExtResource("4_mns6r") +theme_override_font_sizes/font_size = 26 +text = "ux_panel_退出" +flat = true diff --git a/scene/prop/prop_hud.gd b/scene/ux/prop_hud.gd similarity index 100% rename from scene/prop/prop_hud.gd rename to scene/ux/prop_hud.gd diff --git a/scene/prop/prop_hud.gd.uid b/scene/ux/prop_hud.gd.uid similarity index 100% rename from scene/prop/prop_hud.gd.uid rename to scene/ux/prop_hud.gd.uid diff --git a/scene/prop/prop_hud.tscn b/scene/ux/prop_hud.tscn similarity index 99% rename from scene/prop/prop_hud.tscn rename to scene/ux/prop_hud.tscn index ac041a65..1297cf05 100644 --- a/scene/prop/prop_hud.tscn +++ b/scene/ux/prop_hud.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=16 format=3 uid="uid://dc778gsjfr3ky"] -[ext_resource type="Script" uid="uid://ytrf63hbqa45" path="res://scene/prop/prop_hud.gd" id="1_bbv0a"] +[ext_resource type="Script" uid="uid://ytrf63hbqa45" path="res://scene/ux/prop_hud.gd" id="1_bbv0a"] [ext_resource type="Texture2D" uid="uid://dok08tovej18w" path="res://asset/art/ui/hud/normal_left.png" id="2_bjc2b"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_lom38"] [ext_resource type="AudioStream" uid="uid://bjh1761jeu3hy" path="res://asset/audio/sfx/交互/通用发现音效.wav" id="3_bn186"] @@ -11,7 +11,7 @@ [ext_resource type="Texture2D" uid="uid://0uwun1mo726u" path="res://asset/art/prop/c02/绳子物品.png" id="6_0m706"] [ext_resource type="Texture2D" uid="uid://c0gjes4a8ou3b" path="res://asset/art/ui/hud/select_mark.png" id="7_53yeo"] [ext_resource type="Texture2D" uid="uid://c1ogeaa836kry" path="res://asset/art/ui/hud/normal_right.png" id="10_vkaik"] -[ext_resource type="Script" uid="uid://cmpkidbjeue6p" path="res://scene/prop/test_hbox.gd" id="11_008sv"] +[ext_resource type="Script" uid="uid://cmpkidbjeue6p" path="res://scene/ux/test_hbox.gd" id="11_008sv"] [ext_resource type="Texture2D" uid="uid://d03la4d2swk0k" path="res://asset/art/ui/hud/pressed_right.png" id="11_a512b"] [ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="13_lom38"] diff --git a/scene/prop/prop_inspector.gd b/scene/ux/prop_inspector.gd similarity index 93% rename from scene/prop/prop_inspector.gd rename to scene/ux/prop_inspector.gd index 93573749..0af3ca65 100644 --- a/scene/prop/prop_inspector.gd +++ b/scene/ux/prop_inspector.gd @@ -1,7 +1,13 @@ @tool class_name PropInspector extends CanvasLayer -enum { STATUS_HIDDEN, STATUS_INSPECTING_PROP, STATUS_INSPECTING_COVER, STATUS_INSPECTING_NOTES } +enum { + STATUS_HIDDEN, + STATUS_HIDDING, + STATUS_INSPECTING_PROP, + STATUS_INSPECTING_COVER, + STATUS_INSPECTING_NOTES +} # must be connected to signal quit_and_hidden @@ -37,9 +43,12 @@ func _ready() -> void: func _hide(): + if status == STATUS_HIDDING: + SceneManager.unlock_player() + return if status == STATUS_HIDDEN: return - status = STATUS_HIDDEN + status = STATUS_HIDDING var tween = create_tween() tween.tween_property(origin_texture, "modulate:a", 0.0, 0.3) tween.parallel().tween_property(full_texture, "modulate:a", 0.0, 0.3) @@ -48,10 +57,11 @@ func _hide(): blinking_tween.stop() tween.parallel().tween_property(tip_label, "modulate:a", 0.0, 0.15) tween.tween_callback(_post_hide) - SceneManager.release_player() func _post_hide(): + status = STATUS_HIDDEN + SceneManager.unlock_player() origin_texture.texture = null full_texture.texture = null texture_cover = null @@ -85,6 +95,7 @@ func pop_standard_inspection( content_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_LEFT if status != STATUS_HIDDEN: _hide() + SceneManager.lock_player(0) status = STATUS_INSPECTING_COVER visible = true full_texture.texture = cover_texture @@ -97,7 +108,6 @@ func pop_standard_inspection( # # shrink back # content_label.size.x = 150 content_label.text = inspection_note.replace("
", "\n").strip_edges() - SceneManager.freeze_player(0) var tween = create_tween() tween.tween_property(full_texture, "modulate:a", 1.0, 0.15) tip_label.text = tip_cover @@ -110,11 +120,14 @@ var balloon func pop_prop_inspection( prop_key: String, cover_texture: Texture2D, use_default_bg: bool, display_words_only: bool ): - if status != STATUS_HIDDEN and status != STATUS_INSPECTING_PROP: - _hide() if not cover_texture: push_error("PropInspector: cover_texture is not set") return + # STATUS_INSPECTING_PROP 状态下不 hide,跳过重复 lock + if status != STATUS_HIDDEN and status != STATUS_INSPECTING_PROP: + _hide() + if status != STATUS_INSPECTING_PROP: + SceneManager.lock_player(0) status = STATUS_INSPECTING_PROP visible = true var tween = create_tween() @@ -151,7 +164,6 @@ func pop_prop_inspection( ) balloon = preload("res://scene/dialog/balloon.tscn").instantiate() DialogueManager.show_dialogue_balloon_scene(balloon, current_prop_res, "title") - SceneManager.freeze_player(0) func _on_inspecting_prop_words_ended(_res): diff --git a/scene/prop/prop_inspector.gd.uid b/scene/ux/prop_inspector.gd.uid similarity index 100% rename from scene/prop/prop_inspector.gd.uid rename to scene/ux/prop_inspector.gd.uid diff --git a/scene/prop/prop_inspector.tscn b/scene/ux/prop_inspector.tscn similarity index 96% rename from scene/prop/prop_inspector.tscn rename to scene/ux/prop_inspector.tscn index 8db4c95a..fcbae134 100644 --- a/scene/prop/prop_inspector.tscn +++ b/scene/ux/prop_inspector.tscn @@ -1,11 +1,12 @@ [gd_scene load_steps=5 format=3 uid="uid://cekhj65axie0p"] -[ext_resource type="Script" uid="uid://1xdb7s1nigv8" path="res://scene/prop/prop_inspector.gd" id="1_2wpwe"] -[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="2_j83lq"] +[ext_resource type="Script" uid="uid://1xdb7s1nigv8" path="res://scene/ux/prop_inspector.gd" id="1_2wpwe"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="2_j83lq"] [ext_resource type="Texture2D" uid="uid://cvgw2mxrlr6io" path="res://asset/art/scene/c02/旧版/s02_走道/ux_进门鼠疫海报yz.png" id="2_wr575"] [ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="4_opug5"] [node name="PropInspector" type="CanvasLayer"] +process_mode = 3 layer = 21 script = ExtResource("1_2wpwe") diff --git a/scene/prop/prop_inventory_resource.gd b/scene/ux/prop_inventory_resource.gd similarity index 100% rename from scene/prop/prop_inventory_resource.gd rename to scene/ux/prop_inventory_resource.gd diff --git a/scene/prop/prop_inventory_resource.gd.uid b/scene/ux/prop_inventory_resource.gd.uid similarity index 100% rename from scene/prop/prop_inventory_resource.gd.uid rename to scene/ux/prop_inventory_resource.gd.uid diff --git a/scene/prop/prop_item_resource.gd b/scene/ux/prop_item_resource.gd similarity index 100% rename from scene/prop/prop_item_resource.gd rename to scene/ux/prop_item_resource.gd diff --git a/scene/prop/prop_item_resource.gd.uid b/scene/ux/prop_item_resource.gd.uid similarity index 100% rename from scene/prop/prop_item_resource.gd.uid rename to scene/ux/prop_item_resource.gd.uid diff --git a/scene/ux/tabs.gd b/scene/ux/tabs.gd new file mode 100644 index 00000000..3a9f8fd7 --- /dev/null +++ b/scene/ux/tabs.gd @@ -0,0 +1,90 @@ +extends Control + +@export_enum("线索", "物品", "回忆") var current_type := "线索" +@export var root: CanvasLayer + +@onready var bag_btn = $"Bag" as TextureButton +@onready var note_btn = $"Note" as TextureButton +@onready var memory_btn = $"Mem" as TextureButton + +@onready var sfx_open = $"SfxOpen" as Sfx +@onready var sfx_close = $"SfxClose" as Sfx + + +func _ready() -> void: + sfx_open.play() + match current_type: + "线索": + note_btn.disabled = true + note_btn.mouse_default_cursor_shape = Control.CURSOR_ARROW + note_btn.modulate = Color.WHITE_SMOKE + note_btn.get_node("Label").set("theme_override_colors/font_color", Color.WHITE_SMOKE) + "物品": + bag_btn.disabled = true + bag_btn.mouse_default_cursor_shape = Control.CURSOR_ARROW + bag_btn.modulate = Color.WHITE_SMOKE + bag_btn.get_node("Label").set("theme_override_colors/font_color", Color.WHITE_SMOKE) + "回忆": + memory_btn.disabled = true + memory_btn.mouse_default_cursor_shape = Control.CURSOR_ARROW + memory_btn.modulate = Color.WHITE_SMOKE + memory_btn.get_node("Label").set("theme_override_colors/font_color", Color.WHITE_SMOKE) + if current_type != "物品": + bag_btn.pressed.connect(_on_tab_bag_pressed) + bag_btn.mouse_entered.connect(_toggle_hover.bind(true, bag_btn)) + bag_btn.mouse_exited.connect(_toggle_hover.bind(false, bag_btn)) + if current_type != "线索": + note_btn.pressed.connect(_on_tab_note_pressed) + note_btn.mouse_entered.connect(_toggle_hover.bind(true, note_btn)) + note_btn.mouse_exited.connect(_toggle_hover.bind(false, note_btn)) + if current_type != "回忆": + memory_btn.pressed.connect(_on_tab_memory_pressed) + memory_btn.mouse_entered.connect(_toggle_hover.bind(true, memory_btn)) + memory_btn.mouse_exited.connect(_toggle_hover.bind(false, memory_btn)) + + +func _toggle_hover(hover: bool, btn: TextureButton) -> void: + var label = btn.get_node("Label") + var tween = create_tween() + if hover: + # tween y -> -10px + tween.tween_property(btn, "position:y", -3.0, 0.2) + # label font color + tween.parallel().tween_property( + label, "theme_override_colors/font_color", Color.DARK_GRAY, 0.2 + ) + else: + # y -> 0 + tween.tween_property(btn, "position:y", 0.0, 0.2) + # label font color + tween.parallel().tween_property(label, "theme_override_colors/font_color", Color.BLACK, 0.2) + + +func _on_tab_note_pressed(): + if GlobalConfig.DEBUG: + print("Tab Note Pressed") + SceneManager.show_note() + root.quit() + + +func _on_tab_bag_pressed(): + if GlobalConfig.DEBUG: + print("Tab Bag Pressed") + SceneManager.show_bag() + root.quit() + + +func _on_tab_memory_pressed(): + if GlobalConfig.DEBUG: + print("Tab Mem Pressed") + SceneManager.show_memory() + root.quit() + + +func _exit_tree() -> void: + sfx_close.global_play() + +# func _unhandled_input(event: InputEvent) -> void: +# if event.is_action_pressed("memory") and current_type != "回忆": +# get_viewport().set_input_as_handled() +# SceneManager.show_memory() diff --git a/scene/ux/tabs.gd.uid b/scene/ux/tabs.gd.uid new file mode 100644 index 00000000..be531dad --- /dev/null +++ b/scene/ux/tabs.gd.uid @@ -0,0 +1 @@ +uid://cv0ngb45g2k66 diff --git a/scene/ux/tabs.tscn b/scene/ux/tabs.tscn new file mode 100644 index 00000000..c5b5763b --- /dev/null +++ b/scene/ux/tabs.tscn @@ -0,0 +1,122 @@ +[gd_scene load_steps=12 format=3 uid="uid://ut4a5gwb4naq"] + +[ext_resource type="Script" uid="uid://cv0ngb45g2k66" path="res://scene/ux/tabs.gd" id="1_2ekqi"] +[ext_resource type="Texture2D" uid="uid://bypfs3nrknkuo" path="res://asset/art/ui/ux_panel/书签 1.png" id="1_cg3qn"] +[ext_resource type="AudioStream" uid="uid://dyjifofhdx25w" path="res://asset/audio/sfx/交互/打开背包.wav" id="2_6kwyk"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="2_q0myv"] +[ext_resource type="FontFile" uid="uid://255whp7fuig5" path="res://asset/font/字体/三极行楷简体-粗.ttf" id="3_2ekqi"] +[ext_resource type="AudioStream" uid="uid://bghyinc16m1nx" path="res://asset/audio/sfx/交互/收起背包.wav" id="4_4g76p"] +[ext_resource type="Texture2D" uid="uid://cdt7v108hlkqw" path="res://asset/art/ui/ux_panel/书签 2.png" id="4_q0myv"] +[ext_resource type="Texture2D" uid="uid://demhcu581v80o" path="res://asset/art/ui/ux_panel/书签 3.png" id="5_6kwyk"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_82npn"] +atlas = ExtResource("1_cg3qn") +region = Rect2(0, 0, 60, 40) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tgqj6"] +atlas = ExtResource("4_q0myv") +region = Rect2(0, 0, 63, 40) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m6suv"] +atlas = ExtResource("5_6kwyk") +region = Rect2(0, 0, 60, 40) + +[node name="Tabs" type="Control"] +process_mode = 3 +layout_mode = 3 +anchors_preset = 0 +offset_right = 183.0 +offset_bottom = 40.0 +mouse_filter = 2 +script = ExtResource("1_2ekqi") + +[node name="SfxOpen" type="AudioStreamPlayer" parent="."] +process_mode = 1 +stream = ExtResource("2_6kwyk") +bus = &"game_sfx" +script = ExtResource("2_q0myv") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="SfxClose" type="AudioStreamPlayer" parent="."] +process_mode = 1 +stream = ExtResource("4_4g76p") +bus = &"game_sfx" +script = ExtResource("2_q0myv") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="Bag" type="TextureButton" parent="."] +layout_mode = 2 +offset_left = 58.0 +offset_right = 118.0 +offset_bottom = 40.0 +size_flags_horizontal = 4 +size_flags_vertical = 0 +mouse_default_cursor_shape = 2 +theme_type_variation = &"bag_tab_btn" +texture_normal = SubResource("AtlasTexture_82npn") + +[node name="Label" type="Label" parent="Bag"] +layout_mode = 0 +offset_left = 2.0 +offset_top = 2.0 +offset_right = 67.0 +offset_bottom = 16.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_fonts/font = ExtResource("3_2ekqi") +text = "bag_tab_物品" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Note" type="TextureButton" parent="."] +layout_mode = 2 +offset_left = 118.0 +offset_right = 181.0 +offset_bottom = 40.0 +size_flags_horizontal = 4 +size_flags_vertical = 0 +mouse_default_cursor_shape = 2 +theme_type_variation = &"bag_tab_btn" +texture_normal = SubResource("AtlasTexture_tgqj6") + +[node name="Label" type="Label" parent="Note"] +layout_mode = 0 +offset_left = 2.0 +offset_top = 2.0 +offset_right = 67.0 +offset_bottom = 16.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_fonts/font = ExtResource("3_2ekqi") +text = "bag_tab_笔记" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Mem" type="TextureButton" parent="."] +layout_mode = 2 +offset_left = 181.0 +offset_right = 241.0 +offset_bottom = 40.0 +size_flags_horizontal = 4 +size_flags_vertical = 0 +mouse_default_cursor_shape = 2 +theme_type_variation = &"bag_tab_btn" +texture_normal = SubResource("AtlasTexture_m6suv") + +[node name="Label" type="Label" parent="Mem"] +layout_mode = 0 +offset_left = -4.0 +offset_top = 2.0 +offset_right = 61.0 +offset_bottom = 16.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_fonts/font = ExtResource("3_2ekqi") +text = "bag_tab_记忆" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MouseCover" type="Control" parent="."] +custom_minimum_size = Vector2(200, 0) +anchors_preset = 0 +offset_left = 50.0 +offset_top = 21.0 +offset_right = 250.0 +offset_bottom = 61.0 diff --git a/scene/prop/test_hbox.gd b/scene/ux/test_hbox.gd similarity index 100% rename from scene/prop/test_hbox.gd rename to scene/ux/test_hbox.gd diff --git a/scene/prop/test_hbox.gd.uid b/scene/ux/test_hbox.gd.uid similarity index 100% rename from scene/prop/test_hbox.gd.uid rename to scene/ux/test_hbox.gd.uid diff --git a/script_templates/event_2d.gd b/script_templates/event_2d.gd new file mode 100644 index 00000000..75b51174 --- /dev/null +++ b/script_templates/event_2d.gd @@ -0,0 +1,24 @@ +extends Event2D + +# var prev_stage := 0 +# var stage := 0 + + +func _ready() -> void: + super._ready() + + +func _on_global_stage_updated(e: StringName, s: int): + super._on_global_stage_updated(e, s) + + +func _on_ground_ready(ground: Ground2D): + pass + + +func _on_pre_stage_updated(): + pass + + +func _on_stage_updated(): + pass diff --git a/script_templates/event_2d.gd.uid b/script_templates/event_2d.gd.uid new file mode 100644 index 00000000..066b8196 --- /dev/null +++ b/script_templates/event_2d.gd.uid @@ -0,0 +1 @@ +uid://bmxsei74o3pyw