diff --git a/asset/audio/sfx/交互/第二章/sfx_刀落下.ogg b/asset/audio/sfx/交互/第二章/sfx_刀落下.ogg new file mode 100644 index 00000000..15912eaa 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..23f9be11 --- /dev/null +++ b/asset/audio/sfx/交互/第二章/sfx_刀落下.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cwivh1kekjm02" +path="res://.godot/imported/sfx_刀落下.ogg-b1992787cc95a84fcb5462522ec241ba.oggvorbisstr" + +[deps] + +source_file="res://asset/audio/sfx/交互/第二章/sfx_刀落下.ogg" +dest_files=["res://.godot/imported/sfx_刀落下.ogg-b1992787cc95a84fcb5462522ec241ba.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 90427163..ceebfb1b 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -322,7 +322,7 @@ c03_s07_绞肉机,看着像台碎肉机,,,,, c03_s07_胖子游戏结束,张文开...文开...{br}方...小蝉...{br}绞肉机...,,,,, c03_s08_囚室绳子,?!{br}这绳子绑的太结实了{br}我得找个东西割断它,,,,, c03_s08_囚室醒过来,我这是到哪儿来了?,,,,, -c03_s08_囚室看到脚印,?又是脚印,,,,, +c03_s08_囚室看到脚印,小蝉的脚印...更接近那里了...,,,,, c03_s08_囚室桶,黏糊糊的半成品浆糊,里面还裹着一只死老鼠,,,,, c03_s08_囚室符纸,妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。,,,,, c03_s08_囚室偷听后,他们说的药方...是我父母写的那张...{br}当年到底...算了,先想办法出去吧,,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 5a103b9c..92bc74c3 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -406,7 +406,7 @@ # s08 囚室 ?!{br}这绳子绑的太结实了{br}我得找个东西割断它 [ID:c03_s08_囚室绳子] 我这是到哪儿来了? [ID:c03_s08_囚室醒过来] -?又是脚印 [ID:c03_s08_囚室看到脚印] +小蝉的脚印...更接近那里了... [ID:c03_s08_囚室看到脚印] 黏糊糊的半成品浆糊,里面还裹着一只死老鼠 [ID:c03_s08_囚室桶] 妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。 [ID:c03_s08_囚室符纸] 他们说的药方...是我父母写的那张...{br}当年到底...算了,先想办法出去吧 [ID:c03_s08_囚室偷听后] diff --git a/manager/scene/global_functor.gd b/manager/scene/global_functor.gd index 095789ec..79272d9d 100644 --- a/manager/scene/global_functor.gd +++ b/manager/scene/global_functor.gd @@ -127,8 +127,10 @@ func c03_final_choose_exit() -> void: # 如果出公寓做过选择,此处就不出现选择 SceneManager.lock_player() SceneManager.black_transition(0.7, 14.0) - await Util.wait(2.0) + await Util.wait(2.5) AudioManager.play_sfx(stream_exit_by_choice) await Util.wait(10.5) SceneManager.unlock_player() SceneManager.checkout_index_page() + # 防止继续执行下去 + await Util.wait(2.0) diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 33967ba6..18f7566c 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -900,11 +900,12 @@ metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="Interactable抓药道具" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板" instance=ExtResource("8_xt8j0")] position = Vector2(1058, 30) action_key = 3 -one_shot_max_times = 3 +one_shot_max_times = 4 disable_prop_after_interacted = true prop_key = "prop_3个纸铜钱" prop_key2 = "prop_药方" prop_key3 = "prop_辫子" +prop_key4 = "prop_药纸" [node name="Closeup抓药游戏" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板" instance=ExtResource("23_81juy")] position = Vector2(1058, 30) @@ -1388,6 +1389,11 @@ move_configs = Array[Dictionary]([{ debug_mov_animation = "胖子_走路" metadata/_custom_type_script = "uid://cphfob11f7atx" +[node name="Npc张文开" parent="Ground/DeployLayer/Event2D浆糊/Pro胖子" instance=ExtResource("35_plfv5")] +position = Vector2(-5.26316, 9.47369) +enabled = false +hook_character_name = "张文开" + [node name="Pro李氏" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"] position = Vector2(460, 32) scale = Vector2(0.95, 0.95) @@ -1405,6 +1411,11 @@ move_configs = Array[Dictionary]([{ debug_mov_animation = "李氏_走路_右" metadata/_custom_type_script = "uid://cphfob11f7atx" +[node name="Npc李兰" parent="Ground/DeployLayer/Event2D浆糊/Pro李氏" instance=ExtResource("35_plfv5")] +position = Vector2(3.15785, 13.6842) +enabled = false +hook_character_name = "李兰" + [node name="Pro癞子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"] position = Vector2(592, 32) scale = Vector2(0.95, 0.95) @@ -1422,6 +1433,11 @@ move_configs = Array[Dictionary]([{ debug_mov_animation = "辫子癞子_走路_右" metadata/_custom_type_script = "uid://cphfob11f7atx" +[node name="Npc王守义" parent="Ground/DeployLayer/Event2D浆糊/Pro癞子" instance=ExtResource("35_plfv5")] +position = Vector2(-5.26316, 6.31579) +enabled = false +hook_character_name = "王守义" + [node name="Event2D第二章结束井边演出" type="Node2D" parent="Ground/DeployLayer" index="38"] position = Vector2(2100, 0) script = ExtResource("72_18q2p") diff --git a/scene/ground/scene/c03/s03_瞎子理发店.tscn b/scene/ground/scene/c03/s03_瞎子理发店.tscn index 4cd7a071..d1d212df 100644 --- a/scene/ground/scene/c03/s03_瞎子理发店.tscn +++ b/scene/ground/scene/c03/s03_瞎子理发店.tscn @@ -133,7 +133,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="Npc癞子" parent="Ground/DeployLayer/Event2D癞子剪辫子/Pro癞子" instance=ExtResource("15_pkhgt")] position = Vector2(0, 28) enabled = false -hook_character_name = "癞子" +hook_character_name = "王守义" [node name="Pro瞎子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D癞子剪辫子"] position = Vector2(349, 44) @@ -154,7 +154,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="Npc瞎子" parent="Ground/DeployLayer/Event2D癞子剪辫子/Pro瞎子" instance=ExtResource("15_pkhgt")] position = Vector2(5, 0) enabled = false -hook_character_name = "瞎子" +hook_character_name = "方启钊" [node name="Pro陆仁" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D癞子剪辫子"] position = Vector2(297, 37) diff --git a/scene/ground/scene/c03/s06_胖子卧室.gd b/scene/ground/scene/c03/s06_胖子卧室.gd index 8d6a2405..078daeb5 100644 --- a/scene/ground/scene/c03/s06_胖子卧室.gd +++ b/scene/ground/scene/c03/s06_胖子卧室.gd @@ -46,6 +46,9 @@ func _on_ground_ready() -> void: counter.global_position.x = counter_x after_counter_moved() + if ArchiveManager.get_global_value("c03_s06_hit_show_ready_to_play"): + $"../DeployLayer/Closeup柜子后的洞".display() + var pushing_counter = false: set(value): diff --git a/scene/ground/scene/c03/s08_囚室.gd b/scene/ground/scene/c03/s08_囚室.gd index c0636b0d..c635bff9 100644 --- a/scene/ground/scene/c03/s08_囚室.gd +++ b/scene/ground/scene/c03/s08_囚室.gd @@ -57,7 +57,11 @@ func _check_first_enter() -> void: player.set_facing_direction(Vector2.LEFT) # c02_吕萍_背靠呼吸 player.player_action(20, false) - await Util.wait(3.0) + # 刚被打则多等,否则少等 + if ArchiveManager.runtime_get("c03_s06_hit_show"): + await Util.wait(8.0) + else: + await Util.wait(4.0) # c02_吕萍_背靠起身 await player.player_action(19, true) await SceneManager.pop_os_with_str("c03_s08_囚室醒过来") diff --git a/scene/ground/scene/c03/s09_棺材房.tscn b/scene/ground/scene/c03/s09_棺材房.tscn index 5b35d8d3..5f4ae736 100644 --- a/scene/ground/scene/c03/s09_棺材房.tscn +++ b/scene/ground/scene/c03/s09_棺材房.tscn @@ -541,7 +541,7 @@ texture = ExtResource("15_rcrkk") position = Vector2(39, 9) stream = SubResource("AudioStreamInteractive_qkb2a") volume_db = -5.0 -max_distance = 700.0 +max_distance = 800.0 attenuation = 3.0 bus = &"game_sfx" script = ExtResource("10_htuhx") diff --git a/scene/ground/scene/c03/s10_胖子游戏1.tscn b/scene/ground/scene/c03/s10_胖子游戏1.tscn index b3aca7e1..6009ee88 100644 --- a/scene/ground/scene/c03/s10_胖子游戏1.tscn +++ b/scene/ground/scene/c03/s10_胖子游戏1.tscn @@ -32,7 +32,7 @@ [ext_resource type="SpriteFrames" uid="uid://dy8b8dmgv3mdd" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第二段/c03_胖子游戏第二段_frames.tres" id="21_4bvrv"] [ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="22_v1flc"] [ext_resource type="AudioStream" uid="uid://s1ogxxkfscc6" path="res://asset/audio/sfx/交互/第二章/棺材怪脚步.ogg" id="28_v1flc"] -[ext_resource type="AudioStream" uid="uid://b5cjl0a4iw1kd" path="res://asset/audio/sfx/交互/第二章/剁肉_诡异.ogg" id="30_v1flc"] +[ext_resource type="AudioStream" uid="uid://cwivh1kekjm02" path="res://asset/audio/sfx/交互/第二章/sfx_刀落下.ogg" id="30_v1flc"] [sub_resource type="Animation" id="Animation_v1flc"] length = 0.001 @@ -812,6 +812,7 @@ metadata/_custom_type_script = "uid://wapo47a1oddf" [node name="Sfx2D棺材怪切刀" type="AudioStreamPlayer" parent="Ground/CanvasLayer/胖子游戏棺材怪"] stream = ExtResource("30_v1flc") +volume_db = 5.0 bus = &"game_sfx" script = ExtResource("4_60xwi") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" diff --git a/scene/ground/script/c02/s03_event_2d抓药游戏.gd b/scene/ground/script/c02/s03_event_2d抓药游戏.gd index 964984fe..fe9a5509 100644 --- a/scene/ground/script/c02/s03_event_2d抓药游戏.gd +++ b/scene/ground/script/c02/s03_event_2d抓药游戏.gd @@ -22,14 +22,14 @@ func _on_global_stage_updated(e: StringName, s: int): func _on_ground_ready(_ground: Ground2D): interactable.interacted.connect(_boss_interacted) interactable.interact_mismatch_failed.connect(_boss_interacted.bind(false)) - if interactable.interacted_times >= 3: + if interactable.interacted_times >= 4: closeup.enabled = true boss_sprite.hide() func _boss_interacted(valid := true) -> void: if valid: - if interactable.interacted_times >= 3: + if interactable.interacted_times >= 4: SceneManager.lock_player() boss_sprite.play("抓药游戏_老板做药") var camera = SceneManager.get_camera_marker() diff --git a/scene/ground/script/c03/s03_closeup癞子纸人.gd b/scene/ground/script/c03/s03_closeup癞子纸人.gd index 61bb6af2..f3a17767 100644 --- a/scene/ground/script/c03/s03_closeup癞子纸人.gd +++ b/scene/ground/script/c03/s03_closeup癞子纸人.gd @@ -110,9 +110,7 @@ func _braid_cutting_show() -> void: $AnimationPlayer.play("light_and_canvas_flipping") await Util.wait(1.5) DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_s03_理发店演出1") - var tween = create_tween() - tween.tween_interval(1.0) - tween.tween_property(glass_mask, "modulate:a", 1.0, 1.0) + create_tween().tween_property(glass_mask, "modulate:a", 1.0, 0.5) await DialogueManager.dialogue_ended SceneManager.black_transition(0.7, 0.5) await Util.wait(1.0) diff --git a/scene/ground/script/c03/s04_closeup李氏纸人.gd b/scene/ground/script/c03/s04_closeup李氏纸人.gd index 27203bc4..74e15bce 100644 --- a/scene/ground/script/c03/s04_closeup李氏纸人.gd +++ b/scene/ground/script/c03/s04_closeup李氏纸人.gd @@ -39,8 +39,7 @@ func _display_label(id: int) -> void: label = $"求舌头/RichTextLabel" elif id == 1: label = $"求药/RichTextLabel" - EventManager.set_stage_if_greater("handnote_c03_prop_drug", 1) - $"Sfx诡异的哑巴音效".play() + $"Sfx诡异的哑巴音效".play(4.0) label.show() label.modulate.a = 0.0 var tween = create_tween() diff --git a/scene/ground/script/c03/s04_closeup李氏纸人.tscn b/scene/ground/script/c03/s04_closeup李氏纸人.tscn index 98e6fb69..0cdc88bf 100644 --- a/scene/ground/script/c03/s04_closeup李氏纸人.tscn +++ b/scene/ground/script/c03/s04_closeup李氏纸人.tscn @@ -163,6 +163,7 @@ stretch_mode = 5 [node name="Sfx诡异的哑巴音效" type="AudioStreamPlayer" parent="."] stream = ExtResource("4_f8b80") +volume_db = -5.0 bus = &"game_sfx" script = ExtResource("4_vcv6g") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" diff --git a/scene/ground/script/c03/s04_closeup柜子.gd b/scene/ground/script/c03/s04_closeup柜子.gd index c557484a..88ce8bb9 100644 --- a/scene/ground/script/c03/s04_closeup柜子.gd +++ b/scene/ground/script/c03/s04_closeup柜子.gd @@ -22,6 +22,8 @@ func _on_drug_spec_interacted() -> void: # 拿药方后,启动 drug game EventManager.set_stage("c03_drug_game", 1) SceneManager.enable_prop_item("prop_药方", true) + EventManager.set_stage_if_greater("handnote_c03_prop_drug", 1) + func _on_pic_interacted() -> void: if pic.freezing: diff --git a/scene/ground/script/c03/s06_closeup柜子后的洞.gd b/scene/ground/script/c03/s06_closeup柜子后的洞.gd index e6bf4480..ecadb5bf 100644 --- a/scene/ground/script/c03/s06_closeup柜子后的洞.gd +++ b/scene/ground/script/c03/s06_closeup柜子后的洞.gd @@ -26,6 +26,8 @@ func _ready() -> void: hover_handle.interacted.connect(func(): _on_prop_picked("prop_刀把") ) + if ArchiveManager.get_global_value("c03_s06_hit_show_ready_to_play"): + _show() func _on_prop_picked(prop_key: String) -> void: @@ -35,20 +37,24 @@ func _on_prop_picked(prop_key: String) -> void: (prop_key == "prop_3012钥匙" and EventManager.get_stage(&"c03_s06_hole_knife_handle") > 0) or (prop_key == "prop_刀把" and EventManager.get_stage(&"c03_s06_hole_key") > 0) ): + ArchiveManager.set_global_entry("c03_s06_hit_show_ready_to_play", true) await SceneManager.get_inspector().quit_and_hidden - # TODO - SceneManager.pop_debug_dialog_info("美术&音效", "背后响起画外音「偷东西?」; 被胖子打晕演出") - await Util.wait(0.5) - Util.shake_layer(self, 2.0, 0.5, 4.0) - await Util.wait(2.0) - $"Sfx胖子靠近".play() - # 画面抖动变红,玩家被打晕,画面变黑 - $AnimationPlayer.play("bleeding_red") - Util.shake_layer(self, 1.0) - # 拉长黑幕时长 - SceneManager.black_transition(2.0, 3.0) - await Util.wait(2.0) - DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_s06_被胖子打晕") - await Util.wait(3.0) - $"Sfx被击中耳鸣".global_play() - SceneManager.get_ground_loader().transition_to_scene("c03_s08", "1") + _show() + + +func _show() -> void: + await Util.wait(1.0) + Util.shake_layer(self, 2.0, 0.5, 4.0) + $"Sfx胖子靠近".play() + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_s06_被胖子打晕", [GlobalConfig.DIALOG_IGNORE_INPUT]) + await Util.wait(3.0) + $"Sfx被击中耳鸣".global_play() + # 画面抖动变红,玩家被打晕,画面变黑 + $AnimationPlayer.play("bleeding_red") + Util.shake_layer(self, 2.5) + # 拉长黑幕时长 + SceneManager.black_transition(2.0, 6.0) + await Util.wait(2.5) + ArchiveManager.set_global_entry("c03_s06_hit_show_ready_to_play", false) + ArchiveManager.runtime_set("c03_s06_hit_show", true) + SceneManager.get_ground_loader().transition_to_scene("c03_s08", "1") diff --git a/scene/ground/script/c03/s07_event胖子游戏结束演出.gd b/scene/ground/script/c03/s07_event胖子游戏结束演出.gd index 12fdaeb5..adc213ab 100644 --- a/scene/ground/script/c03/s07_event胖子游戏结束演出.gd +++ b/scene/ground/script/c03/s07_event胖子游戏结束演出.gd @@ -33,6 +33,8 @@ func _fatty_game_finished_show() -> void: monster.show() monster.play("砍桌子") var sfx_monster = $"../棺材怪切肉/Sfx棺材怪切肉" as Sfx2D + # 剁肉_诡异 + sfx_monster.stream = preload("uid://b5cjl0a4iw1kd") # 小孩笑声 var sfx_laugh = $"Sfx2D小蝉笑声" var tween = create_tween() diff --git a/scene/ground/script/c03/s09_closeup棺材特写.gd b/scene/ground/script/c03/s09_closeup棺材特写.gd index d4e8d572..34c44b8a 100644 --- a/scene/ground/script/c03/s09_closeup棺材特写.gd +++ b/scene/ground/script/c03/s09_closeup棺材特写.gd @@ -77,6 +77,7 @@ func _unhandled_input(event: InputEvent) -> void: get_viewport().set_input_as_handled() if prop == "prop_刀把": knife_state = 2 + %"胶水".hide() %"刀有柄".show() SceneManager.disable_prop_item_temp("prop_刀把") hover_knife.freezing = false diff --git a/scene/ground/script/c03/s09_closeup棺材特写.tscn b/scene/ground/script/c03/s09_closeup棺材特写.tscn index fcf380b3..5255a1ef 100644 --- a/scene/ground/script/c03/s09_closeup棺材特写.tscn +++ b/scene/ground/script/c03/s09_closeup棺材特写.tscn @@ -89,14 +89,14 @@ texture = ExtResource("11_ok7al") unique_name_in_owner = true visible = false light_mask = 4 -position = Vector2(33, -18) +position = Vector2(30, -17) texture = ExtResource("13_i378g") [node name="刀有柄" type="Sprite2D" parent="Hover刀"] unique_name_in_owner = true visible = false light_mask = 4 -position = Vector2(32, -23) +position = Vector2(31, -21) texture = ExtResource("13_ld65o") [node name="PointLight2D" type="PointLight2D" parent="Hover刀"] @@ -117,6 +117,8 @@ modulate = Color(1, 1, 1, 0) anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_top = 1.0 +offset_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 1