第二章整体优化

This commit is contained in:
cakipaul 2025-08-14 01:15:39 +08:00
parent 82a9c1a35f
commit 799296fec6
20 changed files with 90 additions and 34 deletions

Binary file not shown.

View File

@ -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

View File

@ -322,7 +322,7 @@ c03_s07_绞肉机,看着像台碎肉机,,,,,
c03_s07_胖子游戏结束,张文开...文开...{br}方...小蝉...{br}绞肉机...,,,,, c03_s07_胖子游戏结束,张文开...文开...{br}方...小蝉...{br}绞肉机...,,,,,
c03_s08_囚室绳子,{br}这绳子绑的太结实了{br}我得找个东西割断它,,,,, c03_s08_囚室绳子,{br}这绳子绑的太结实了{br}我得找个东西割断它,,,,,
c03_s08_囚室醒过来,我这是到哪儿来了?,,,,, c03_s08_囚室醒过来,我这是到哪儿来了?,,,,,
c03_s08_囚室看到脚印,?又是脚印,,,,, c03_s08_囚室看到脚印,小蝉的脚印...更接近那里了...,,,,,
c03_s08_囚室桶,黏糊糊的半成品浆糊,里面还裹着一只死老鼠,,,,, c03_s08_囚室桶,黏糊糊的半成品浆糊,里面还裹着一只死老鼠,,,,,
c03_s08_囚室符纸,妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。,,,,, c03_s08_囚室符纸,妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。,,,,,
c03_s08_囚室偷听后,他们说的药方...是我父母写的那张...{br}当年到底...算了,先想办法出去吧,,,,, c03_s08_囚室偷听后,他们说的药方...是我父母写的那张...{br}当年到底...算了,先想办法出去吧,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
322 c03_s07_胖子游戏结束 张文开...文开...{br}方...小蝉...{br}绞肉机...
323 c03_s08_囚室绳子 ?!{br}这绳子绑的太结实了{br}我得找个东西割断它
324 c03_s08_囚室醒过来 我这是到哪儿来了?
325 c03_s08_囚室看到脚印 ?又是脚印 小蝉的脚印...更接近那里了...
326 c03_s08_囚室桶 黏糊糊的半成品浆糊,里面还裹着一只死老鼠
327 c03_s08_囚室符纸 妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。
328 c03_s08_囚室偷听后 他们说的药方...是我父母写的那张...{br}当年到底...算了,先想办法出去吧

View File

@ -406,7 +406,7 @@
# s08 囚室 # s08 囚室
{br}这绳子绑的太结实了{br}我得找个东西割断它 [ID:c03_s08_囚室绳子] {br}这绳子绑的太结实了{br}我得找个东西割断它 [ID:c03_s08_囚室绳子]
我这是到哪儿来了? [ID:c03_s08_囚室醒过来] 我这是到哪儿来了? [ID:c03_s08_囚室醒过来]
?又是脚印 [ID:c03_s08_囚室看到脚印] 小蝉的脚印...更接近那里了... [ID:c03_s08_囚室看到脚印]
黏糊糊的半成品浆糊,里面还裹着一只死老鼠 [ID:c03_s08_囚室桶] 黏糊糊的半成品浆糊,里面还裹着一只死老鼠 [ID:c03_s08_囚室桶]
妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。 [ID:c03_s08_囚室符纸] 妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。 [ID:c03_s08_囚室符纸]
他们说的药方...是我父母写的那张...{br}当年到底...算了,先想办法出去吧 [ID:c03_s08_囚室偷听后] 他们说的药方...是我父母写的那张...{br}当年到底...算了,先想办法出去吧 [ID:c03_s08_囚室偷听后]

View File

@ -127,8 +127,10 @@ func c03_final_choose_exit() -> void:
# 如果出公寓做过选择,此处就不出现选择 # 如果出公寓做过选择,此处就不出现选择
SceneManager.lock_player() SceneManager.lock_player()
SceneManager.black_transition(0.7, 14.0) SceneManager.black_transition(0.7, 14.0)
await Util.wait(2.0) await Util.wait(2.5)
AudioManager.play_sfx(stream_exit_by_choice) AudioManager.play_sfx(stream_exit_by_choice)
await Util.wait(10.5) await Util.wait(10.5)
SceneManager.unlock_player() SceneManager.unlock_player()
SceneManager.checkout_index_page() SceneManager.checkout_index_page()
# 防止继续执行下去
await Util.wait(2.0)

View File

@ -900,11 +900,12 @@ metadata/_custom_type_script = "uid://cphfob11f7atx"
[node name="Interactable抓药道具" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板" instance=ExtResource("8_xt8j0")] [node name="Interactable抓药道具" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板" instance=ExtResource("8_xt8j0")]
position = Vector2(1058, 30) position = Vector2(1058, 30)
action_key = 3 action_key = 3
one_shot_max_times = 3 one_shot_max_times = 4
disable_prop_after_interacted = true disable_prop_after_interacted = true
prop_key = "prop_3个纸铜钱" prop_key = "prop_3个纸铜钱"
prop_key2 = "prop_药方" prop_key2 = "prop_药方"
prop_key3 = "prop_辫子" prop_key3 = "prop_辫子"
prop_key4 = "prop_药纸"
[node name="Closeup抓药游戏" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板" instance=ExtResource("23_81juy")] [node name="Closeup抓药游戏" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板" instance=ExtResource("23_81juy")]
position = Vector2(1058, 30) position = Vector2(1058, 30)
@ -1388,6 +1389,11 @@ move_configs = Array[Dictionary]([{
debug_mov_animation = "胖子_走路" debug_mov_animation = "胖子_走路"
metadata/_custom_type_script = "uid://cphfob11f7atx" 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浆糊"] [node name="Pro李氏" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"]
position = Vector2(460, 32) position = Vector2(460, 32)
scale = Vector2(0.95, 0.95) scale = Vector2(0.95, 0.95)
@ -1405,6 +1411,11 @@ move_configs = Array[Dictionary]([{
debug_mov_animation = "李氏_走路_右" debug_mov_animation = "李氏_走路_右"
metadata/_custom_type_script = "uid://cphfob11f7atx" 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浆糊"] [node name="Pro癞子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"]
position = Vector2(592, 32) position = Vector2(592, 32)
scale = Vector2(0.95, 0.95) scale = Vector2(0.95, 0.95)
@ -1422,6 +1433,11 @@ move_configs = Array[Dictionary]([{
debug_mov_animation = "辫子癞子_走路_右" debug_mov_animation = "辫子癞子_走路_右"
metadata/_custom_type_script = "uid://cphfob11f7atx" 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"] [node name="Event2D第二章结束井边演出" type="Node2D" parent="Ground/DeployLayer" index="38"]
position = Vector2(2100, 0) position = Vector2(2100, 0)
script = ExtResource("72_18q2p") script = ExtResource("72_18q2p")

View File

@ -133,7 +133,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx"
[node name="Npc癞子" parent="Ground/DeployLayer/Event2D癞子剪辫子/Pro癞子" instance=ExtResource("15_pkhgt")] [node name="Npc癞子" parent="Ground/DeployLayer/Event2D癞子剪辫子/Pro癞子" instance=ExtResource("15_pkhgt")]
position = Vector2(0, 28) position = Vector2(0, 28)
enabled = false enabled = false
hook_character_name = "癞子" hook_character_name = "王守义"
[node name="Pro瞎子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D癞子剪辫子"] [node name="Pro瞎子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D癞子剪辫子"]
position = Vector2(349, 44) 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")] [node name="Npc瞎子" parent="Ground/DeployLayer/Event2D癞子剪辫子/Pro瞎子" instance=ExtResource("15_pkhgt")]
position = Vector2(5, 0) position = Vector2(5, 0)
enabled = false enabled = false
hook_character_name = "瞎子" hook_character_name = "方启钊"
[node name="Pro陆仁" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D癞子剪辫子"] [node name="Pro陆仁" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D癞子剪辫子"]
position = Vector2(297, 37) position = Vector2(297, 37)

View File

@ -46,6 +46,9 @@ func _on_ground_ready() -> void:
counter.global_position.x = counter_x counter.global_position.x = counter_x
after_counter_moved() after_counter_moved()
if ArchiveManager.get_global_value("c03_s06_hit_show_ready_to_play"):
$"../DeployLayer/Closeup柜子后的洞".display()
var pushing_counter = false: var pushing_counter = false:
set(value): set(value):

View File

@ -57,7 +57,11 @@ func _check_first_enter() -> void:
player.set_facing_direction(Vector2.LEFT) player.set_facing_direction(Vector2.LEFT)
# c02_吕萍_背靠呼吸 # c02_吕萍_背靠呼吸
player.player_action(20, false) 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_吕萍_背靠起身 # c02_吕萍_背靠起身
await player.player_action(19, true) await player.player_action(19, true)
await SceneManager.pop_os_with_str("c03_s08_囚室醒过来") await SceneManager.pop_os_with_str("c03_s08_囚室醒过来")

View File

@ -541,7 +541,7 @@ texture = ExtResource("15_rcrkk")
position = Vector2(39, 9) position = Vector2(39, 9)
stream = SubResource("AudioStreamInteractive_qkb2a") stream = SubResource("AudioStreamInteractive_qkb2a")
volume_db = -5.0 volume_db = -5.0
max_distance = 700.0 max_distance = 800.0
attenuation = 3.0 attenuation = 3.0
bus = &"game_sfx" bus = &"game_sfx"
script = ExtResource("10_htuhx") script = ExtResource("10_htuhx")

View File

@ -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="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="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://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"] [sub_resource type="Animation" id="Animation_v1flc"]
length = 0.001 length = 0.001
@ -812,6 +812,7 @@ metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Sfx2D棺材怪切刀" type="AudioStreamPlayer" parent="Ground/CanvasLayer/胖子游戏棺材怪"] [node name="Sfx2D棺材怪切刀" type="AudioStreamPlayer" parent="Ground/CanvasLayer/胖子游戏棺材怪"]
stream = ExtResource("30_v1flc") stream = ExtResource("30_v1flc")
volume_db = 5.0
bus = &"game_sfx" bus = &"game_sfx"
script = ExtResource("4_60xwi") script = ExtResource("4_60xwi")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m" metadata/_custom_type_script = "uid://rq6w1vuhuq1m"

View File

@ -22,14 +22,14 @@ func _on_global_stage_updated(e: StringName, s: int):
func _on_ground_ready(_ground: Ground2D): func _on_ground_ready(_ground: Ground2D):
interactable.interacted.connect(_boss_interacted) interactable.interacted.connect(_boss_interacted)
interactable.interact_mismatch_failed.connect(_boss_interacted.bind(false)) interactable.interact_mismatch_failed.connect(_boss_interacted.bind(false))
if interactable.interacted_times >= 3: if interactable.interacted_times >= 4:
closeup.enabled = true closeup.enabled = true
boss_sprite.hide() boss_sprite.hide()
func _boss_interacted(valid := true) -> void: func _boss_interacted(valid := true) -> void:
if valid: if valid:
if interactable.interacted_times >= 3: if interactable.interacted_times >= 4:
SceneManager.lock_player() SceneManager.lock_player()
boss_sprite.play("抓药游戏_老板做药") boss_sprite.play("抓药游戏_老板做药")
var camera = SceneManager.get_camera_marker() var camera = SceneManager.get_camera_marker()

View File

@ -110,9 +110,7 @@ func _braid_cutting_show() -> void:
$AnimationPlayer.play("light_and_canvas_flipping") $AnimationPlayer.play("light_and_canvas_flipping")
await Util.wait(1.5) await Util.wait(1.5)
DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_s03_理发店演出1") DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_s03_理发店演出1")
var tween = create_tween() create_tween().tween_property(glass_mask, "modulate:a", 1.0, 0.5)
tween.tween_interval(1.0)
tween.tween_property(glass_mask, "modulate:a", 1.0, 1.0)
await DialogueManager.dialogue_ended await DialogueManager.dialogue_ended
SceneManager.black_transition(0.7, 0.5) SceneManager.black_transition(0.7, 0.5)
await Util.wait(1.0) await Util.wait(1.0)

View File

@ -39,8 +39,7 @@ func _display_label(id: int) -> void:
label = $"求舌头/RichTextLabel" label = $"求舌头/RichTextLabel"
elif id == 1: elif id == 1:
label = $"求药/RichTextLabel" label = $"求药/RichTextLabel"
EventManager.set_stage_if_greater("handnote_c03_prop_drug", 1) $"Sfx诡异的哑巴音效".play(4.0)
$"Sfx诡异的哑巴音效".play()
label.show() label.show()
label.modulate.a = 0.0 label.modulate.a = 0.0
var tween = create_tween() var tween = create_tween()

View File

@ -163,6 +163,7 @@ stretch_mode = 5
[node name="Sfx诡异的哑巴音效" type="AudioStreamPlayer" parent="."] [node name="Sfx诡异的哑巴音效" type="AudioStreamPlayer" parent="."]
stream = ExtResource("4_f8b80") stream = ExtResource("4_f8b80")
volume_db = -5.0
bus = &"game_sfx" bus = &"game_sfx"
script = ExtResource("4_vcv6g") script = ExtResource("4_vcv6g")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m" metadata/_custom_type_script = "uid://rq6w1vuhuq1m"

View File

@ -22,6 +22,8 @@ func _on_drug_spec_interacted() -> void:
# 拿药方后,启动 drug game # 拿药方后,启动 drug game
EventManager.set_stage("c03_drug_game", 1) EventManager.set_stage("c03_drug_game", 1)
SceneManager.enable_prop_item("prop_药方", true) SceneManager.enable_prop_item("prop_药方", true)
EventManager.set_stage_if_greater("handnote_c03_prop_drug", 1)
func _on_pic_interacted() -> void: func _on_pic_interacted() -> void:
if pic.freezing: if pic.freezing:

View File

@ -26,6 +26,8 @@ func _ready() -> void:
hover_handle.interacted.connect(func(): hover_handle.interacted.connect(func():
_on_prop_picked("prop_刀把") _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: 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) (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) 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 await SceneManager.get_inspector().quit_and_hidden
# TODO _show()
SceneManager.pop_debug_dialog_info("美术&音效", "背后响起画外音「偷东西?」; 被胖子打晕演出")
await Util.wait(0.5)
Util.shake_layer(self, 2.0, 0.5, 4.0) func _show() -> void:
await Util.wait(2.0) await Util.wait(1.0)
$"Sfx胖子靠近".play() Util.shake_layer(self, 2.0, 0.5, 4.0)
# 画面抖动变红,玩家被打晕,画面变黑 $"Sfx胖子靠近".play()
$AnimationPlayer.play("bleeding_red") DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_s06_被胖子打晕", [GlobalConfig.DIALOG_IGNORE_INPUT])
Util.shake_layer(self, 1.0) await Util.wait(3.0)
# 拉长黑幕时长 $"Sfx被击中耳鸣".global_play()
SceneManager.black_transition(2.0, 3.0) # 画面抖动变红,玩家被打晕,画面变黑
await Util.wait(2.0) $AnimationPlayer.play("bleeding_red")
DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_s06_被胖子打晕") Util.shake_layer(self, 2.5)
await Util.wait(3.0) # 拉长黑幕时长
$"Sfx被击中耳鸣".global_play() SceneManager.black_transition(2.0, 6.0)
SceneManager.get_ground_loader().transition_to_scene("c03_s08", "1") 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")

View File

@ -33,6 +33,8 @@ func _fatty_game_finished_show() -> void:
monster.show() monster.show()
monster.play("砍桌子") monster.play("砍桌子")
var sfx_monster = $"../棺材怪切肉/Sfx棺材怪切肉" as Sfx2D var sfx_monster = $"../棺材怪切肉/Sfx棺材怪切肉" as Sfx2D
# 剁肉_诡异
sfx_monster.stream = preload("uid://b5cjl0a4iw1kd")
# 小孩笑声 # 小孩笑声
var sfx_laugh = $"Sfx2D小蝉笑声" var sfx_laugh = $"Sfx2D小蝉笑声"
var tween = create_tween() var tween = create_tween()

View File

@ -77,6 +77,7 @@ func _unhandled_input(event: InputEvent) -> void:
get_viewport().set_input_as_handled() get_viewport().set_input_as_handled()
if prop == "prop_刀把": if prop == "prop_刀把":
knife_state = 2 knife_state = 2
%"胶水".hide()
%"刀有柄".show() %"刀有柄".show()
SceneManager.disable_prop_item_temp("prop_刀把") SceneManager.disable_prop_item_temp("prop_刀把")
hover_knife.freezing = false hover_knife.freezing = false

View File

@ -89,14 +89,14 @@ texture = ExtResource("11_ok7al")
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
light_mask = 4 light_mask = 4
position = Vector2(33, -18) position = Vector2(30, -17)
texture = ExtResource("13_i378g") texture = ExtResource("13_i378g")
[node name="刀有柄" type="Sprite2D" parent="Hover刀"] [node name="刀有柄" type="Sprite2D" parent="Hover刀"]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
light_mask = 4 light_mask = 4
position = Vector2(32, -23) position = Vector2(31, -21)
texture = ExtResource("13_ld65o") texture = ExtResource("13_ld65o")
[node name="PointLight2D" type="PointLight2D" parent="Hover刀"] [node name="PointLight2D" type="PointLight2D" parent="Hover刀"]
@ -117,6 +117,8 @@ modulate = Color(1, 1, 1, 0)
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = 1.0
offset_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
mouse_filter = 1 mouse_filter = 1