From 4063434c26f31ee0ad3b769521241ef33d58fc45 Mon Sep 17 00:00:00 2001 From: cakipaul Date: Wed, 16 Jul 2025 16:01:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E5=AF=B9=E8=AF=9D=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=9B=E4=B9=A6=E5=BA=97=E6=91=94=E5=80=92=E5=90=8E?= =?UTF-8?q?=E5=9B=9E=E5=BF=86=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asset/dialogue/item_description.csv | 9 +++++---- asset/dialogue/item_description.dialogue | 9 +++++---- manager/config_manager/global_config.gd | 7 +++++-- scene/dialog/balloon.gd | 2 ++ scene/effect/dizzy_shader.gd | 2 +- scene/ground/scene/c01/s08_书店.gd | 17 ++++++++++------- scene/ground/scene/c01/s08_书店.tscn | 12 +++++++++++- 7 files changed, 39 insertions(+), 19 deletions(-) diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 940e973a..64f32b02 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -114,19 +114,20 @@ c01_s08_书店工钱,这个月的工钱还没拿。,,,,,I haven't collected this mem_偷听对话,偷听对话,,,,,Eavesdropping mem_疯子看井,疯子看井,,,,,Madman Guards Well c01_鸡毛掸子,这是鸡毛掸子吗?,,,,,Is this a feather duster? -c01_院长书桌,桌上放着一本《圣经》。{br}「得著生命的,將要失喪生命...」,,,,,There's a Bible on the desk.{br}'Whoever finds their life will lose it...' +c01_院长书桌,桌上放着一本《圣经》。{br}「凡要救自己生命的,必丧掉生命...」,,,,,"There's a Bible on the table.{br}'Whoever wants to save their life will lose it, but whoever loses their life for me will find it...'" c01_院长床,这本书已经看过了。{br}...那些句子是什么意思呢?,,,,,I've already read this book.{br}...What do those sentences mean? -c01_院长座钟,这西洋钟没坏的时候,走针会咔哒、咔哒地响...{br}停在未时一刻不动了。,,,,,"When this Western clock wasn't broken, the hands would tick and tock...{br}It's stopped at a quarter past one in the afternoon." +c01_院长座钟,咦?这西洋钟为什么倒着走?,,,,,Huh? Why is this Western clock running backwards? c01_倾斜的洋相片,哇啊,这张洋相片要掉下来了!{br}我得做点什么...,,,,,"Oh no, this Western photograph is about to fall!{br}I need to do something..." c01_摆正的洋相片,这是院长的儿子吗?,,,,,Is this the director's son? c01_s06_院长房间,这是院长的房间,,,,,This is the director's room c01_s06_小朋友房间,这是其他小朋友的房间,,,,,This is the other children's room c01_s06_熟悉的墙画,墙上的画看起来好熟悉。{br}过去问问看吧,没准他们几个知道些什么。,,,,,The painting on the wall looks so familiar.{br}Let me go ask them. Maybe they know something. -c01_s06_四小孩对话结束,怪人、花、门...{br}他在找什么东西,或是什么人?,,,,,"Strange man, flowers, door...{br}What is he looking for, or who?" +c01_s06_四小孩对话结束,怪人、花...{br}有时候真搞不懂他们在说些什么。,,,,,"Strange people, flowers...{br}Sometimes I really don't understand what they're talking about." c01_s07_钱碗,碗里只有一枚铜钱。,,,,,There's only one copper coin in the bowl. c01_s07_获得报纸,这是什么?,,,,,What is this? c01_s07_书店展柜,院长说,读一百本书,就可以成为无所不能的大人。{br}如果我再大一些,没准可以求店长把我留下,我会干很多活,也能吃苦...,,,,,"The director said that reading a hundred books would make me an all-capable adult.{br}If I were a bit older, maybe I could ask the shop owner to keep me. I'd work hard and endure hardship..." -c01_s08_书架游戏完成,这些书都被老鼠啃坏了,连木头架子都没放过。,,,,,"These books have all been gnawed by mice, even the wooden shelves weren't spared." +c01_s08_书架游戏完成,?!{br}刚才那是什么?,,,,,?!{br}What was that just now? +c01_s08_书架游戏恢复记忆,...{br}这是...我之前工作的地方。{br}...{br}现在老板不在了,我也该走了...,,,,,"...{br}This is... where I used to work.{br}...{br}Now that the boss is gone, I should leave too..." c01_s08_获得袁大头后,工钱还在老地方。,,,,,The wages are still in the usual place. c02_海报_剪辫子侦探,剪辫悬梁上侦探奇闻,,,,,Detective Tales of the Queue-Cutting Mystery c02_海报_戏法班,朱连魁全班戏法——「各有幻女...演技新奇」,,,,,Zhu Liankui's Magic Troupe—'Each with enchanting women... performances most novel' diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index ee862426..3d9003d2 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -168,9 +168,9 @@ ~ Notes_c01 # c01-s05 院长房间 这是鸡毛掸子吗? [ID:c01_鸡毛掸子] -桌上放着一本《圣经》。{br}「得著生命的,將要失喪生命...」 [ID:c01_院长书桌] +桌上放着一本《圣经》。{br}「凡要救自己生命的,必丧掉生命...」 [ID:c01_院长书桌] 这本书已经看过了。{br}...那些句子是什么意思呢? [ID:c01_院长床] -这西洋钟没坏的时候,走针会咔哒、咔哒地响...{br}停在未时一刻不动了。 [ID:c01_院长座钟] +咦?这西洋钟为什么倒着走? [ID:c01_院长座钟] 哇啊,这张洋相片要掉下来了!{br}我得做点什么... [ID:c01_倾斜的洋相片] 这是院长的儿子吗? [ID:c01_摆正的洋相片] # c01-s06 院子 @@ -178,13 +178,14 @@ 这是其他小朋友的房间 [ID:c01_s06_小朋友房间] # 院子里四个小孩交谈结束后 墙上的画看起来好熟悉。{br}过去问问看吧,没准他们几个知道些什么。 [ID:c01_s06_熟悉的墙画] -怪人、花、门...{br}他在找什么东西,或是什么人? [ID:c01_s06_四小孩对话结束] +怪人、花...{br}有时候真搞不懂他们在说些什么。 [ID:c01_s06_四小孩对话结束] # c01-s07 书店外 碗里只有一枚铜钱。 [ID:c01_s07_钱碗] 这是什么? [ID:c01_s07_获得报纸] 院长说,读一百本书,就可以成为无所不能的大人。{br}如果我再大一些,没准可以求店长把我留下,我会干很多活,也能吃苦... [ID:c01_s07_书店展柜] # c01-s08 书店 -这些书都被老鼠啃坏了,连木头架子都没放过。 [ID:c01_s08_书架游戏完成] +?!{br}刚才那是什么? [ID:c01_s08_书架游戏完成] +...{br}这是...我之前工作的地方。{br}...{br}现在老板不在了,我也该走了... [ID:c01_s08_书架游戏恢复记忆] 工钱还在老地方。 [ID:c01_s08_获得袁大头后] => END diff --git a/manager/config_manager/global_config.gd b/manager/config_manager/global_config.gd index 49e4c5d9..a51b395c 100644 --- a/manager/config_manager/global_config.gd +++ b/manager/config_manager/global_config.gd @@ -13,10 +13,11 @@ const RES_FILE_FORMAT = ".tres" const CANVAS_LAYER_SETTINGS = 30 # note const CANVAS_LAYER_NOTE = 25 -# dialog -const CANVAS_LAYER_DIALOG = 24 const CANVAS_LAYER_MEM_ITEM = 23 const CANVAS_LAYER_UX_PANEL = 22 +# dialog +const CANVAS_LAYER_DIALOG_MEM = 30 +const CANVAS_LAYER_DIALOG = 22 # main 场景的 UI 层(prop hud、上下mask、notification) const CANVAS_LAYER_UI = 21 # 道具 inspector(prop/local) @@ -33,6 +34,8 @@ const CANVAS_LAYER_LITTLE_GAME = 5 const CANVAS_LAYER_FG = 2 const DIALOG_IGNORE_INPUT = "ignore_input" +# memory layer: 30 +const DIALOG_MEM_LAYER = "mem_layer" const CHARACTER_COLOR_MAP = { "default": Color.LIGHT_SEA_GREEN, diff --git a/scene/dialog/balloon.gd b/scene/dialog/balloon.gd index 23f6d8fc..5ce541a3 100755 --- a/scene/dialog/balloon.gd +++ b/scene/dialog/balloon.gd @@ -153,6 +153,8 @@ func _notification(what: int) -> void: func start( dialogue_resource: DialogueResource, title: String, extra_game_states: Array = [] ) -> void: + if extra_game_states.has(GlobalConfig.DIALOG_MEM_LAYER): + pass temporary_game_states = [self] + extra_game_states is_waiting_for_input = false resource = dialogue_resource diff --git a/scene/effect/dizzy_shader.gd b/scene/effect/dizzy_shader.gd index cd151b8f..6de1a4d5 100644 --- a/scene/effect/dizzy_shader.gd +++ b/scene/effect/dizzy_shader.gd @@ -10,7 +10,7 @@ func _ready() -> void: var tween: Tween -func dizzy(duration := 3.5, intensity := 1.5): +func dizzy(duration := 3.5, intensity := 1.5) -> void: if duration < 0.6: return if tween and tween.is_valid(): diff --git a/scene/ground/scene/c01/s08_书店.gd b/scene/ground/scene/c01/s08_书店.gd index aab9f6e0..d1aad505 100644 --- a/scene/ground/scene/c01/s08_书店.gd +++ b/scene/ground/scene/c01/s08_书店.gd @@ -33,6 +33,7 @@ var shelf_game_success = false var envelope_game_success = false var manager var mice +var fall_off func _on_ground_ready() -> void: @@ -44,6 +45,7 @@ func _on_ground_ready() -> void: coin = $"../DeployLayer/Ambush银元" mice = $"../DeployLayer/自动跟随的老鼠" manager = $"../DeployLayer/老板" + fall_off = $"../DeployLayer/小小蝶坠落" # 首先放报纸,触发动画,领取任务 if counter.interacted_times > 0: ladder.enabled = true @@ -127,9 +129,6 @@ func _on_shelf_game_exiting() -> void: SceneManager.release_player() -var fall_off - - func _on_shelf_game_success() -> void: ArchiveManager.set_global_entry(&"c01_shelf_game_success", true) shelf_game_success = true @@ -143,7 +142,6 @@ func _on_shelf_game_success() -> void: # 相机抖动 SceneManager.get_camera_marker().shake_camera() # 播放小蝶从书架跌倒的动画 - fall_off = $"../DeployLayer/小小蝶坠落" fall_off.visible = true fall_off.play() fall_off.animation_finished.connect(_on_fall_off_finished) @@ -154,11 +152,16 @@ func _on_shelf_game_success() -> void: func _on_fall_off_finished() -> void: fall_off.visible = false + SceneManager.get_player().hide_sprite = false + await Util.wait(0.3) + await SceneManager.pop_os_with_str("c01_s08_书架游戏完成") + # 耳鸣与眩晕 + $"Sfx头痛耳鸣".play() + $"../DizzyShader".dizzy() + await Util.wait(2.5) + await SceneManager.pop_os_with_str("c01_s08_书架游戏恢复记忆") # 最后释放玩家 SceneManager.release_player() - SceneManager.get_player().hide_sprite = false - await Util.wait(1.2) - SceneManager.pop_os_with_str("c01_s08_书架游戏完成") func _setup_weird_bookstore() -> void: diff --git a/scene/ground/scene/c01/s08_书店.tscn b/scene/ground/scene/c01/s08_书店.tscn index b8cf3ca6..48f4c44a 100644 --- a/scene/ground/scene/c01/s08_书店.tscn +++ b/scene/ground/scene/c01/s08_书店.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=3 uid="uid://cwu4dhayra8pg"] +[gd_scene load_steps=23 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_书店.gd" id="2_0lque"] @@ -16,7 +16,9 @@ [ext_resource type="AudioStream" uid="uid://bnjyw5v85s6qe" path="res://asset/audio/sfx/交互/序章/04_书店内_主角摔倒.ogg" id="8_p6k3c"] [ext_resource type="Texture2D" uid="uid://bho8xal4ha50l" path="res://asset/art/scene/c01/s08_书店/l_打光.png" id="9_i4dqp"] [ext_resource type="AudioStream" uid="uid://cniawn37n8888" path="res://asset/audio/sfx/交互/序章/04_书店内_递交报纸.ogg" id="9_lfr41"] +[ext_resource type="AudioStream" uid="uid://b8sbtn3l37uh" path="res://asset/audio/sfx/旧版/c02/红屏.ogg" id="9_srknn"] [ext_resource type="Texture2D" uid="uid://bp4y3vujvsl7r" path="res://asset/art/scene/c01/s08_书店/fg_前景.png" id="10_4e3a1"] +[ext_resource type="PackedScene" uid="uid://decfqoe5v0y6n" path="res://scene/effect/dizzy_shader.tscn" id="18_wg16e"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_xqgjo"] @@ -81,6 +83,12 @@ bus = &"game_sfx" script = ExtResource("4_p6k3c") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" +[node name="Sfx头痛耳鸣" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="5"] +stream = ExtResource("9_srknn") +bus = &"game_sfx" +script = ExtResource("4_p6k3c") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="BGSprite2D" parent="Ground" index="2"] material = SubResource("ShaderMaterial_ddd5v") texture = ExtResource("3_322m4") @@ -198,6 +206,8 @@ points = PackedVector2Array(22, 150, 545, 150) energy = 0.0 blend_mode = 1 +[node name="DizzyShader" parent="Ground" instance=ExtResource("18_wg16e")] + [node name="参考" type="Sprite2D" parent="."] visible = false modulate = Color(1, 1, 1, 0.580392)