This commit is contained in:
bbd_pc 2025-08-06 01:37:15 +08:00
parent f1450a8a6c
commit 4e9a5b8ef3
8 changed files with 40 additions and 25 deletions

View File

@ -390,4 +390,4 @@ func runtime_has(key: String) -> bool:
func runtime_remove(key: String) -> void:
_runtime_global_dictionary.erase(key)
_runtime_global_dictionary.erase(key)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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偷听"]

View File

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