From 4e9a5b8ef3d1b51bb916ccc726e27a95c342cd70 Mon Sep 17 00:00:00 2001 From: bbd_pc Date: Wed, 6 Aug 2025 01:37:15 +0800 Subject: [PATCH] hotfix --- manager/archive_manager/archive_manager.gd | 2 +- manager/archive_manager/savings_panel.gd | 2 ++ manager/event_manager/event_binder.gd | 15 ++++----- manager/scene/global_functor.gd | 2 +- manager/scene/scene_manager.gd | 3 +- scene/ground/scene/c02/s03_院子.tscn | 1 - scene/ground/scene/c02/s08_瞎子卧室.tscn | 31 +++++++++++++------ scene/ground/script/c02/盒子猫canvas_layer.gd | 9 +++--- 8 files changed, 40 insertions(+), 25 deletions(-) diff --git a/manager/archive_manager/archive_manager.gd b/manager/archive_manager/archive_manager.gd index 8705854d..5b223aed 100644 --- a/manager/archive_manager/archive_manager.gd +++ b/manager/archive_manager/archive_manager.gd @@ -390,4 +390,4 @@ func runtime_has(key: String) -> bool: func runtime_remove(key: String) -> void: - _runtime_global_dictionary.erase(key) \ No newline at end of file + _runtime_global_dictionary.erase(key) diff --git a/manager/archive_manager/savings_panel.gd b/manager/archive_manager/savings_panel.gd index 3955f175..df681026 100644 --- a/manager/archive_manager/savings_panel.gd +++ b/manager/archive_manager/savings_panel.gd @@ -156,6 +156,8 @@ func _refresh_archive_list() -> void: # Create UI items for each manual archive var sorted_ids = manual_archives.keys() sorted_ids.sort() + # 倒序展示 + sorted_ids.reverse() for id in sorted_ids: var data = manual_archives[id] diff --git a/manager/event_manager/event_binder.gd b/manager/event_manager/event_binder.gd index d37a6366..e8afc365 100644 --- a/manager/event_manager/event_binder.gd +++ b/manager/event_manager/event_binder.gd @@ -64,8 +64,6 @@ class_name EventBinder extends Node var memo := "" @export_tool_button("auto memo") var auto_memo = _auto_memo -var _local_updater_event_stage := 0 - func _ready() -> void: if Engine.is_editor_hint(): @@ -76,17 +74,21 @@ func _ready() -> void: if not parent: printerr("[EventBinder] bind_enable is true but parent is null. path: %s" % get_path()) return - _local_updater_event_stage = EventManager.get_stage(updater_event) - if GlobalConfig.DEBUG: - print(updater_event, " updater stage:", _local_updater_event_stage) - _update_binding_state(_local_updater_event_stage) EventManager.stage_updated.connect(_on_global_stage_updated) + # 等待 parent ready,再执行 update 操作 + parent.ready.connect(_update_parent, CONNECT_ONE_SHOT) if not trigger_event.is_empty(): # connect trigger_mode signal if trigger_mode != "none": parent.connect(trigger_mode, _on_happened) +func _update_parent() -> void: + if GlobalConfig.DEBUG: + prints(get_parent().name, updater_event, "updater stage:", EventManager.get_stage(updater_event)) + _update_binding_state(EventManager.get_stage(updater_event)) + + func _on_happened(_arg1 = null, _arg2 = null) -> void: if trigger_set_stage_if_greater: var updated = EventManager.set_stage_if_greater(trigger_event, trigger_stage) @@ -103,7 +105,6 @@ func _on_happened(_arg1 = null, _arg2 = null) -> void: func _on_global_stage_updated(e: StringName, s: int): if e == updater_event: - _local_updater_event_stage = s _update_binding_state(s) diff --git a/manager/scene/global_functor.gd b/manager/scene/global_functor.gd index 06469f27..c720de2d 100644 --- a/manager/scene/global_functor.gd +++ b/manager/scene/global_functor.gd @@ -5,6 +5,7 @@ var dialogue_c02 = preload("res://asset/dialogue/c02.dialogue") func _ready() -> void: process_mode = Node.PROCESS_MODE_PAUSABLE + SceneManager.main_scene_quitted.connect(c02_fire_count_down_stop) # called from dialogue @@ -129,4 +130,3 @@ func c03_final_choose_exit() -> void: await Util.wait(8.5) SceneManager.unlock_player() SceneManager.checkout_index_page() - diff --git a/manager/scene/scene_manager.gd b/manager/scene/scene_manager.gd index 5278c78d..f624827d 100644 --- a/manager/scene/scene_manager.gd +++ b/manager/scene/scene_manager.gd @@ -8,6 +8,7 @@ enum VIBE { } signal pause_counter_updated +signal main_scene_quitted # 从 ground loader 控制该信号 # 建议使用 CONNECT_ONE_SHOT 来连接 ground ready 与 start 等信号 @@ -354,7 +355,6 @@ func pop_chapter_notification(id: int) -> void: ### 切换场景 - func checkout_index_page(transition := true) -> void: # 保存后,渐隐切换场景 ArchiveManager.save_all() @@ -369,6 +369,7 @@ func checkout_index_page(transition := true) -> void: _jump_back_to_index_and_quit_main() else: _jump_back_to_index_and_quit_main() + main_scene_quitted.emit() var packed_index_page := preload("uid://c4ycvdsabi7lw") diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 99cc2b9f..f6cb0092 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1225,7 +1225,6 @@ prop_key = "prop_浆糊" [node name="EventBinder" type="Node" parent="Ground/DeployLayer/Pickable浆糊"] script = ExtResource("12_2b6vx") updater_event = &"current_chapter_stage" -updater_mode = "shower" updater_ease_duration = 0.0 updater_stages = Array[int]([3]) metadata/_custom_type_script = "uid://0wjaho6qkg6s" diff --git a/scene/ground/scene/c02/s08_瞎子卧室.tscn b/scene/ground/scene/c02/s08_瞎子卧室.tscn index 12735cd5..2e5ce517 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.tscn +++ b/scene/ground/scene/c02/s08_瞎子卧室.tscn @@ -1,18 +1,11 @@ -[gd_scene load_steps=38 format=3 uid="uid://ce2vyyg2reg52"] +[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_瞎子卧室.gd" id="2_m4uw8"] -[ext_resource type="Texture2D" uid="uid://v3sj36aijq5b" path="res://asset/art/scene/c03/s04_瞎子新卧室/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="Texture2D" uid="uid://v3sj36aijq5b" path="res://asset/art/scene/c02/s08_瞎子卧室/bg_瞎子卧室.png" id="3_iares"] [ext_resource type="AudioStream" uid="uid://b2mudqvq1dmng" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里1.ogg" id="3_nnqdd"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_t3h08"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_1ws4i"] -[ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c03/s04_瞎子新卧室/瞎子卧室前景.png" id="4_gx8oy"] -[ext_resource type="AudioStream" uid="uid://dk3e1w3n2snur" path="res://asset/audio/sfx/旧版/c02/纸人出现.mp3" id="5_0qeqe"] -[ext_resource type="Texture2D" uid="uid://b5pwb4fm46sad" path="res://asset/art/scene/c03/s04_瞎子新卧室/e_墙上纸张.png" id="5_f6mma"] -[ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c03/s04_瞎子新卧室/e_床板.png" id="5_vjjde"] -[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.mp3" id="6_nnqdd"] [ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="4_gx8oy"] [ext_resource type="AudioStream" uid="uid://dk3e1w3n2snur" path="res://asset/audio/sfx/旧版/c02/纸人出现.ogg" id="5_0qeqe"] [ext_resource type="Texture2D" uid="uid://b5pwb4fm46sad" path="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png" id="5_f6mma"] @@ -27,9 +20,10 @@ [ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="11_7w12o"] [ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="11_kwj7c"] [ext_resource type="PackedScene" uid="uid://dd8dfoik0ig3y" path="res://scene/ground/script/c02/s08_画特写.tscn" id="11_mc126"] -[ext_resource type="Texture2D" uid="uid://bgtxwxerl2dxh" path="res://asset/art/scene/c03/s04_瞎子新卧室/十字架.png" id="11_t3h08"] +[ext_resource type="Texture2D" uid="uid://bgtxwxerl2dxh" path="res://asset/art/scene/c02/s08_瞎子卧室/十字架.png" id="11_t3h08"] [ext_resource type="Texture2D" uid="uid://bcqcvohj7jy40" path="res://asset/art/scene/c02/杂物/煤油灯 关灯.png" id="11_u4psw"] -[ext_resource type="Texture2D" uid="uid://bmid3iu2ch35o" path="res://asset/art/scene/c03/s04_瞎子新卧室/八卦图.png" id="12_1ws4i"] +[ext_resource type="Texture2D" uid="uid://bmid3iu2ch35o" path="res://asset/art/scene/c02/s08_瞎子卧室/八卦图.png" id="12_1ws4i"] +[ext_resource type="AudioStream" uid="uid://dqdjxy04ge0r5" path="res://asset/audio/sfx/旧版/c02/场景转场.ogg" id="12_quq80"] [ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="13_t3h08"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="14_1ws4i"] [ext_resource type="PackedScene" uid="uid://cxv7vdgwb8lqb" path="res://scene/ground/script/c02/s08_画特写2.tscn" id="16_nub1x"] @@ -80,6 +74,10 @@ _data = { &"RESET": SubResource("Animation_f6mma") } +[sub_resource type="RectangleShape2D" id="RectangleShape2D_nnqdd"] +resource_local_to_scene = true +size = Vector2(30, 130) + [sub_resource type="RectangleShape2D" id="RectangleShape2D_a48k2"] resource_local_to_scene = true size = Vector2(20, 70) @@ -186,6 +184,18 @@ status = "opened" default_sign_texture = ExtResource("8_dkqw0") opened_sign_texture = ExtResource("8_dkqw0") +[node name="SfxOpen" parent="Ground/DeployLayer/portal_1" index="1"] +stream = ExtResource("12_quq80") + +[node name="SfxEnter" parent="Ground/DeployLayer/portal_1" index="2"] +stream = ExtResource("12_quq80") + +[node name="CollisionShape2D" parent="Ground/DeployLayer/portal_1/Area2D" index="0"] +shape = SubResource("RectangleShape2D_nnqdd") + +[node name="SignSnapper" parent="Ground/DeployLayer/portal_1" index="7"] +action_on_arrived = 4 + [node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/portal_1"] show_behind_parent = true light_mask = 33 @@ -388,5 +398,6 @@ energy = 0.9 blend_mode = 1 [editable path="Ground"] +[editable path="Ground/DeployLayer/portal_1"] [editable path="Ground/DeployLayer/灯座Sprite2D/煤油灯"] [editable path="Ground/DeployLayer/Ambush偷听"] diff --git a/scene/ground/script/c02/盒子猫canvas_layer.gd b/scene/ground/script/c02/盒子猫canvas_layer.gd index fc588f79..e90b49ac 100644 --- a/scene/ground/script/c02/盒子猫canvas_layer.gd +++ b/scene/ground/script/c02/盒子猫canvas_layer.gd @@ -17,10 +17,11 @@ func _ready(): await get_parent().ready # 盒子猫镜头左右各增加边框宽度 var camera = SceneManager.get_camera_marker() - camera.limit_left -= 100 - camera.limit_right += 100 - camera.limit_top -= 50 - # camera.limit_bottom += 50 + var rect: Rect2i = camera.default_camera_rect + rect.position.x -= 100 + rect.size.x += 200 + # rect.position.y -= 50 + camera.apply_limits(rect) if show_cat and not ArchiveManager.get_global_value(&"c02_boxcat_skip_intro"): cat_fg.visible = true var tween = create_tween()