From 3ae63f2000194b9a1cd99a5e04ecf9cb1263767e Mon Sep 17 00:00:00 2001 From: cakipaul Date: Mon, 23 Jun 2025 17:01:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=AC=AC=E4=B8=80=E7=AB=A0?= =?UTF-8?q?=E8=B0=A2=E5=B9=95=E6=BC=94=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gif/c02_谢幕演出/c02_谢幕演出_frames.tres | 10 +- asset/dialogue/item_description.csv | 1 + asset/dialogue/item_description.dialogue | 1 + manager/config_manager/global_config.gd | 12 +- manager/scene/global_functor.gd | 4 +- manager/scene/scene_manager.gd | 14 ++ scene/{shading => effect}/fog.gd | 0 scene/{shading => effect}/fog.gd.uid | 0 scene/{shading => effect}/fog.tscn | 2 +- scene/{shading => effect}/ghost.gdshader | 0 scene/{shading => effect}/ghost.gdshader.uid | 0 scene/{shading => effect}/ghost.tscn | 2 +- scene/{shading => effect}/shading_layer.gd | 0 .../{shading => effect}/shading_layer.gd.uid | 0 scene/{shading => effect}/shading_layer.tscn | 4 +- scene/{shading => effect}/smoke.png | Bin scene/{shading => effect}/smoke.png.import | 6 +- scene/{shading => effect}/smoke.tscn | 2 +- scene/effect/黑手.gd | 21 +++ scene/effect/黑手.gd.uid | 1 + scene/effect/黑手.tscn | 141 ++++++++++++++++++ scene/entity/hd_entity.gd | 124 --------------- scene/entity/hd_entity.gd.uid | 1 - scene/entity/hd_entity.tscn | 39 ----- scene/ground/ground.tscn | 25 +--- scene/ground/ground_loader.tscn | 43 +----- scene/ground/scene/c01/s05_animation.gd | 1 + scene/ground/scene/c01/s05_院长房间.tscn | 9 +- .../ground/scene/c01/s06_孤儿院长廊围墙.tscn | 2 +- scene/ground/scene/c01/s07_书店外.tscn | 2 +- scene/ground/scene/c01/s09_公寓楼外.tscn | 4 +- scene/ground/scene/c01/s12_书店外_诡异版.tscn | 4 +- scene/ground/scene/c02/s03_animation.gd | 13 +- scene/ground/scene/c02/s03_院子.tscn | 4 +- scene/ground/script/c02/敲门游戏.gd | 8 +- 35 files changed, 230 insertions(+), 270 deletions(-) rename scene/{shading => effect}/fog.gd (100%) rename scene/{shading => effect}/fog.gd.uid (100%) rename scene/{shading => effect}/fog.tscn (99%) rename scene/{shading => effect}/ghost.gdshader (100%) rename scene/{shading => effect}/ghost.gdshader.uid (100%) rename scene/{shading => effect}/ghost.tscn (97%) rename scene/{shading => effect}/shading_layer.gd (100%) rename scene/{shading => effect}/shading_layer.gd.uid (100%) rename scene/{shading => effect}/shading_layer.tscn (99%) rename scene/{shading => effect}/smoke.png (100%) rename scene/{shading => effect}/smoke.png.import (73%) rename scene/{shading => effect}/smoke.tscn (96%) create mode 100644 scene/effect/黑手.gd create mode 100644 scene/effect/黑手.gd.uid create mode 100644 scene/effect/黑手.tscn delete mode 100644 scene/entity/hd_entity.gd delete mode 100644 scene/entity/hd_entity.gd.uid delete mode 100644 scene/entity/hd_entity.tscn diff --git a/asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres b/asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres index dbc019de..823998d7 100644 --- a/asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres +++ b/asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres @@ -3178,21 +3178,21 @@ animations = [{ "speed": 30.0 }, { "frames": [{ -"duration": 1.0, +"duration": 6.0, "texture": ExtResource("767_juprk") }, { -"duration": 1.0, +"duration": 6.0, "texture": ExtResource("768_pramq") }, { -"duration": 1.0, +"duration": 6.0, "texture": ExtResource("769_rrudt") }, { -"duration": 1.0, +"duration": 6.0, "texture": ExtResource("770_t8u5r") }], "loop": false, "name": &"小蝶擦火柴蹲下起身", -"speed": 5.0 +"speed": 30.0 }, { "frames": [{ "duration": 6.0, diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index a9c880f0..b907696b 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -28,6 +28,7 @@ ui_auto_saved,自动保存成功,,,,,Auto save successful ui_press_e,按 E 与场景互动,,,,,Press E to interact ui_press_q_to_exit,按 Q 可退出,,,,, ui_use_prop,按 E 使用道具,,,,,Press E to use prop +ui_right_click_prop,右键点击可检阅道具,,,,, ui_left_mouse_shave,按住鼠标拖拽可刮开海报,,,,, ui_important_item_update,重要物品已更新(按 B 打开背包),,,,, ui_switch_prop,点击图标可切换道具(或按 Z/C),,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index ea379139..c29a4cc3 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -23,6 +23,7 @@ 按 E 与场景互动 [ID:ui_press_e] 按 Q 可退出 [ID:ui_press_q_to_exit] 按 E 使用道具 [ID:ui_use_prop] +右键点击可检阅道具 [ID:ui_right_click_prop] 按住鼠标拖拽可刮开海报 [ID:ui_left_mouse_shave] 重要物品已更新(按 B 打开背包) [ID:ui_important_item_update] 点击图标可切换道具(或按 Z/C) [ID:ui_switch_prop] diff --git a/manager/config_manager/global_config.gd b/manager/config_manager/global_config.gd index 320dbaab..9f4f5d2a 100644 --- a/manager/config_manager/global_config.gd +++ b/manager/config_manager/global_config.gd @@ -7,16 +7,26 @@ const DEBUG = true const RES_FILE_FORMAT = ".tres" ## layers +# 设置 const CANVAS_LAYER_SETTINGS = 30 +# bag const CANVAS_LAYER_BAG = 25 +# dialog const CANVAS_LAYER_DIALOG = 23 +# main 场景的 UI 层(prop hud、上下mask、notification) const CANVAS_LAYER_UI = 22 +# 道具 inspector(prop/local) const CANVAS_LAYER_PROP_INSPECTOR = 20 +# ground loader 转场等 mask 层 const CANVAS_LAYER_GROUND_MASK = 14 +# 特殊全屏效果(无 shading) +const CANVAS_LAYER_EFFECT = 5 +# 全屏 shading const CANVAS_LAYER_SHADING = 10 +# 小游戏 const CANVAS_LAYER_LITTLE_GAME = 5 +# 前景层 const CANVAS_LAYER_FG = 2 -const CANVAS_LAYER_HD_ENTITY = 1 const DIALOG_IGNORE_INPUT = "ignore_input" diff --git a/manager/scene/global_functor.gd b/manager/scene/global_functor.gd index fd5c8f5c..d02a1e40 100644 --- a/manager/scene/global_functor.gd +++ b/manager/scene/global_functor.gd @@ -36,7 +36,7 @@ func c02_fire_count_down_try_start(): return c02_fire_count_down_timer = Timer.new() c02_fire_count_down_timer.autostart = true - c02_fire_count_down_timer.wait_time = 60 + c02_fire_count_down_timer.wait_time = 10 c02_fire_count_down_timer.one_shot = false c02_fire_count_down_timer.timeout.connect(_on_c02_fire_count_down_timeout) add_child(c02_fire_count_down_timer) @@ -54,6 +54,8 @@ func _on_c02_fire_count_down_timeout(): # c02_9小蝉_游戏失败效果 var sfx = preload("uid://chebys30sd8ee") AudioManager.play_sfx(sfx) + await get_tree().create_timer(1.0).timeout + SceneManager.show_black_hand(true, 0.5) await get_tree().create_timer(3.0).timeout SceneManager.get_ground_loader().transition_to_scene("c02_s03", "4") # TODO 音效 diff --git a/manager/scene/scene_manager.gd b/manager/scene/scene_manager.gd index b1373f19..3dee458c 100644 --- a/manager/scene/scene_manager.gd +++ b/manager/scene/scene_manager.gd @@ -22,6 +22,7 @@ func _ready(): func get_ground_loader() -> GroundLoader: return get_node_or_null("/root/Main/GroundLoader") as GroundLoader + # restart scene in debug launch... func is_restarting() -> bool: var ground = get_ground() @@ -354,3 +355,16 @@ func show_bag(): func quit_game(): ArchiveManager.save_all() get_tree().quit() + + +###### Effects + +# 黑手 +var black_hand_scene = preload("uid://d2ftpqvtvl00h") + + +func show_black_hand(play_sfx := true, queue_free_delay := 0.0): + var hand = black_hand_scene.instantiate() + hand.name = "BlackHand" + get_tree().current_scene.add_child(hand) + hand.run_effect(play_sfx, queue_free_delay) diff --git a/scene/shading/fog.gd b/scene/effect/fog.gd similarity index 100% rename from scene/shading/fog.gd rename to scene/effect/fog.gd diff --git a/scene/shading/fog.gd.uid b/scene/effect/fog.gd.uid similarity index 100% rename from scene/shading/fog.gd.uid rename to scene/effect/fog.gd.uid diff --git a/scene/shading/fog.tscn b/scene/effect/fog.tscn similarity index 99% rename from scene/shading/fog.tscn rename to scene/effect/fog.tscn index 087eec5c..ff2d8a0e 100644 --- a/scene/shading/fog.tscn +++ b/scene/effect/fog.tscn @@ -25,7 +25,7 @@ [ext_resource type="Texture2D" uid="uid://dy488fl2ijtb4" path="res://asset/art/ui/inverted_point_light_masks/021.png" id="23_t66ls"] [ext_resource type="Texture2D" uid="uid://bo2ee2uhsp6l2" path="res://asset/art/ui/inverted_point_light_masks/022.png" id="24_1ylis"] [ext_resource type="Texture2D" uid="uid://gxl7kkkkq5vd" path="res://asset/art/ui/inverted_point_light_masks/023.png" id="25_dvr6b"] -[ext_resource type="Script" uid="uid://dts3vcdacsvh" path="res://scene/shading/fog.gd" id="26_wm1nd"] +[ext_resource type="Script" uid="uid://dts3vcdacsvh" path="res://scene/effect/fog.gd" id="26_wm1nd"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_jw18h"] noise_type = 2 diff --git a/scene/shading/ghost.gdshader b/scene/effect/ghost.gdshader similarity index 100% rename from scene/shading/ghost.gdshader rename to scene/effect/ghost.gdshader diff --git a/scene/shading/ghost.gdshader.uid b/scene/effect/ghost.gdshader.uid similarity index 100% rename from scene/shading/ghost.gdshader.uid rename to scene/effect/ghost.gdshader.uid diff --git a/scene/shading/ghost.tscn b/scene/effect/ghost.tscn similarity index 97% rename from scene/shading/ghost.tscn rename to scene/effect/ghost.tscn index 9df1a02e..c75d3488 100644 --- a/scene/shading/ghost.tscn +++ b/scene/effect/ghost.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=8 format=3 uid="uid://h0s5ms7r7d8g"] -[ext_resource type="Shader" uid="uid://cr3jq30n7muy4" path="res://scene/shading/ghost.gdshader" id="1_n4q4i"] +[ext_resource type="Shader" uid="uid://cr3jq30n7muy4" path="res://scene/effect/ghost.gdshader" id="1_n4q4i"] [ext_resource type="Texture2D" uid="uid://bc64s5xfysrc3" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_夜晚.png" id="4_lap87"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_fv2fx"] diff --git a/scene/shading/shading_layer.gd b/scene/effect/shading_layer.gd similarity index 100% rename from scene/shading/shading_layer.gd rename to scene/effect/shading_layer.gd diff --git a/scene/shading/shading_layer.gd.uid b/scene/effect/shading_layer.gd.uid similarity index 100% rename from scene/shading/shading_layer.gd.uid rename to scene/effect/shading_layer.gd.uid diff --git a/scene/shading/shading_layer.tscn b/scene/effect/shading_layer.tscn similarity index 99% rename from scene/shading/shading_layer.tscn rename to scene/effect/shading_layer.tscn index 4546a7a3..bd7609b4 100644 --- a/scene/shading/shading_layer.tscn +++ b/scene/effect/shading_layer.tscn @@ -1,13 +1,13 @@ [gd_scene load_steps=43 format=3 uid="uid://3gk1gxwanw24"] -[ext_resource type="Script" uid="uid://lxjflxn04684" path="res://scene/shading/shading_layer.gd" id="1_6w7er"] +[ext_resource type="Script" uid="uid://lxjflxn04684" path="res://scene/effect/shading_layer.gd" id="1_6w7er"] [ext_resource type="Shader" uid="uid://do181iuabeoom" path="res://asset/shader/vignette.gdshader" id="1_akp6k"] [ext_resource type="Texture2D" uid="uid://dibfvlmarlkg6" path="res://asset/art/scene/c02/旧版/s01_街道/bg_公寓入口.png" id="2_r3a31"] [ext_resource type="Shader" uid="uid://bg7cjm3cust3p" path="res://asset/shader/glitcheffect.gdshader" id="3_qjv5u"] [ext_resource type="Shader" uid="uid://cwuxtdwmhahhp" path="res://asset/shader/palette.gdshader" id="4_n5nu8"] [ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="4_sglhm"] [ext_resource type="Texture2D" uid="uid://36k1j0qw66tm" path="res://asset/shader/palette/bloodmoon21-1x.png" id="5_ios50"] -[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="7_7084x"] +[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="7_7084x"] [ext_resource type="Material" uid="uid://7wllwmfkfvsb" path="res://asset/shader/cloud.tres" id="7_cmfij"] [ext_resource type="Shader" uid="uid://3lssj7jwlhxl" path="res://asset/shader/chromatic_abberation.gdshader" id="8_b0unx"] [ext_resource type="Texture2D" uid="uid://bmlhwa80lywa3" path="res://asset/art/ui/inverted_point_light_masks/000.png" id="8_v5h2g"] diff --git a/scene/shading/smoke.png b/scene/effect/smoke.png similarity index 100% rename from scene/shading/smoke.png rename to scene/effect/smoke.png diff --git a/scene/shading/smoke.png.import b/scene/effect/smoke.png.import similarity index 73% rename from scene/shading/smoke.png.import rename to scene/effect/smoke.png.import index b95a6634..68070c43 100644 --- a/scene/shading/smoke.png.import +++ b/scene/effect/smoke.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bhl1b5ren8emk" -path="res://.godot/imported/smoke.png-6594d98b9f388075486a8864d514070c.ctex" +path="res://.godot/imported/smoke.png-d6fe8f3d722987ede5ddae176417a3ab.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://scene/shading/smoke.png" -dest_files=["res://.godot/imported/smoke.png-6594d98b9f388075486a8864d514070c.ctex"] +source_file="res://scene/effect/smoke.png" +dest_files=["res://.godot/imported/smoke.png-d6fe8f3d722987ede5ddae176417a3ab.ctex"] [params] diff --git a/scene/shading/smoke.tscn b/scene/effect/smoke.tscn similarity index 96% rename from scene/shading/smoke.tscn rename to scene/effect/smoke.tscn index 7b957fb9..c05d99d1 100644 --- a/scene/shading/smoke.tscn +++ b/scene/effect/smoke.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=5 format=3 uid="uid://bwce0niymxrou"] -[ext_resource type="Texture2D" uid="uid://bhl1b5ren8emk" path="res://scene/shading/smoke.png" id="1_705e3"] +[ext_resource type="Texture2D" uid="uid://bhl1b5ren8emk" path="res://scene/effect/smoke.png" id="1_705e3"] [sub_resource type="Curve" id="Curve_r8ddf"] _limits = [-2.0, 2.0, -1.0, 1.0] diff --git a/scene/effect/黑手.gd b/scene/effect/黑手.gd new file mode 100644 index 00000000..be792dbe --- /dev/null +++ b/scene/effect/黑手.gd @@ -0,0 +1,21 @@ +extends CanvasLayer + + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_EFFECT + + +func run_effect(play_sfx := true, queue_free_delay := 0.0): + if not is_node_ready(): + await ready + var aplayer = $AnimationPlayer as AnimationPlayer + aplayer.play("双手捂屏幕") + if play_sfx: + $"Sfx捂手音效".play() + aplayer.animation_finished.connect(_on_animation_finished.bind(queue_free_delay)) + + +func _on_animation_finished(_a, queue_free_delay): + if queue_free_delay > 0: + await get_tree().create_timer(queue_free_delay).timeout + queue_free() diff --git a/scene/effect/黑手.gd.uid b/scene/effect/黑手.gd.uid new file mode 100644 index 00000000..73b05465 --- /dev/null +++ b/scene/effect/黑手.gd.uid @@ -0,0 +1 @@ +uid://bd0ev6tgqlx3r diff --git a/scene/effect/黑手.tscn b/scene/effect/黑手.tscn new file mode 100644 index 00000000..1c382ecf --- /dev/null +++ b/scene/effect/黑手.tscn @@ -0,0 +1,141 @@ +[gd_scene load_steps=9 format=3 uid="uid://d2ftpqvtvl00h"] + +[ext_resource type="Texture2D" uid="uid://hv6bqkjw4clv" path="res://asset/art/scene/c02/结尾演出小蝶分镜特写/e_黑手左.png" id="1_mvq0r"] +[ext_resource type="Script" uid="uid://bd0ev6tgqlx3r" path="res://scene/effect/黑手.gd" id="1_oa0hm"] +[ext_resource type="Texture2D" uid="uid://coilus3pohj5j" path="res://asset/art/scene/c02/结尾演出小蝶分镜特写/e_黑手右.png" id="2_2evqm"] +[ext_resource type="AudioStream" uid="uid://b8sbtn3l37uh" path="res://asset/audio/sfx/旧版/c02/红屏.mp3" id="2_gd1dm"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_gy14l"] + +[sub_resource type="Animation" id="Animation_oa0hm"] +resource_name = "双手捂屏幕" +length = 3.0 +step = 0.02 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("黑手左:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = false +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1, 2.8), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(-131, 253), Vector2(9, 217), Vector2(86, 191), Vector2(288, 132)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("黑手右:position") +tracks/1/interp = 2 +tracks/1/loop_wrap = false +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1.02, 2.8), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(694, 244), Vector2(554, 216), Vector2(418, 190), Vector2(291, 132)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("黑手左:scale") +tracks/2/interp = 2 +tracks/2/loop_wrap = false +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.9, 2.3, 2.8), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(0.8, 0.8), Vector2(1.2, 1.2), Vector2(2, 2), Vector2(2.5, 2.5)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("黑手右:scale") +tracks/3/interp = 2 +tracks/3/loop_wrap = false +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.9, 2.3, 2.8), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(0.8, 0.8), Vector2(1.2, 1.2), Vector2(2, 2), Vector2(2.5, 2.5)] +} + +[sub_resource type="Animation" id="Animation_gd1dm"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("黑手左:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-131, 253)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("黑手右:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(694, 244)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("黑手左:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("黑手右:scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_43ipm"] +_data = { +&"RESET": SubResource("Animation_gd1dm"), +&"双手捂屏幕": SubResource("Animation_oa0hm") +} + +[node name="黑手Effect" type="CanvasLayer"] +script = ExtResource("1_oa0hm") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_43ipm") +} + +[node name="Sfx捂手音效" type="AudioStreamPlayer" parent="."] +stream = ExtResource("2_gd1dm") +bus = &"game_sfx" +script = ExtResource("3_gy14l") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="黑手左" type="Sprite2D" parent="."] +position = Vector2(-131, 253) +texture = ExtResource("1_mvq0r") +offset = Vector2(150, 0) + +[node name="黑手右" type="Sprite2D" parent="."] +position = Vector2(694, 244) +texture = ExtResource("2_2evqm") +offset = Vector2(-150, 0) diff --git a/scene/entity/hd_entity.gd b/scene/entity/hd_entity.gd deleted file mode 100644 index 1f1d866f..00000000 --- a/scene/entity/hd_entity.gd +++ /dev/null @@ -1,124 +0,0 @@ -@tool -extends Node2D - -signal sign_mark_offset_updated - -# sign_mark 节点在 ready 时会直接读取 -@export var sign_mark_offset := Vector2.ZERO: - set(val): - sign_mark_offset = val - sign_mark_offset_updated.emit(val) -@export var reload := false: - set(val): - _reload() - reload = false -@export var sprite_name := "name": - set(val): - if sprite_name and sprite_name != val: - _remove_sprite(sprite_name) - sprite_name = val - _reload() -@export var texture: Texture2D: - set(val): - texture = val - _reload() -@export var sprite_scale := 1.0: - set(val): - sprite_scale = val - _update_sprite_transform(true) -@export var sprite_ref: Sprite2D - -const RATIO = 4.0 - -@onready var sign_mark = %Sign as Sign -@onready var area2d = %Area2D as Area2D - - -func _ready() -> void: - _reload() - set_notify_transform(true) - # set_notify_local_transform(true) - item_rect_changed.connect(_update_sprite_transform) - if Engine.is_editor_hint(): - return - area2d.body_entered.connect(_reset) - area2d.body_exited.connect(_on_cancel) - sign_mark.interacted.connect(_on_interacted) - sign_mark.cancel.connect(_on_cancel) - - -func _notification(what: int) -> void: - if what == NOTIFICATION_TRANSFORM_CHANGED: - if not is_node_ready(): - await ready - _update_sprite_transform() - - -func _reload(): - if not texture or not sprite_name: - return - var layer = _get_hd_layer() - if not layer: - return - sprite_ref = layer.get_node_or_null(sprite_name) as Sprite2D - if not sprite_ref: - sprite_ref = Sprite2D.new() - layer.add_child(sprite_ref) - sprite_ref.owner = layer - sprite_ref.name = sprite_name - sprite_ref.texture = texture - sprite_ref.z_index = 0 - sprite_ref.centered = true - sprite_ref.visible = true - _update_sprite_transform() - - -func _remove_sprite(sprite_node_name): - if sprite_ref: - sprite_ref.queue_free() - sprite_ref = null - if not sprite_name: - return - var layer = _get_hd_layer() - if layer: - var sprite = layer.get_node_or_null(sprite_node_name) - layer.remove_child(sprite) - sprite.queue_free() - - -func _get_hd_layer() -> CanvasLayer: - return get_node_or_null("../../SubViewportContainer/SubViewport/HdLayer") as CanvasLayer - - -func _update_sprite_transform(update_scale := false): - if not sprite_ref: - return - sprite_ref.global_position = global_position * RATIO - if update_scale: - sprite_ref.scale = Vector2(sprite_scale, sprite_scale) - - -var interacted = false -var cancel_time = 0.0 - - -func _on_interacted() -> void: - if Time.get_ticks_msec() - cancel_time < 700: - return - if interacted: - _on_cancel() - return - interacted = true - SceneManager.get_camera_marker().tween_zoom(1.8) - SceneManager.focus_node(self) - # DialogueManager.show_dialogue_balloon(dialog, "diyizhang_01_03_mimi3") - - -func _on_cancel(_body = null): - SceneManager.focus_player_and_reset_zoom() - interacted = false - cancel_time = Time.get_ticks_msec() - - -func _reset(_body): - interacted = false diff --git a/scene/entity/hd_entity.gd.uid b/scene/entity/hd_entity.gd.uid deleted file mode 100644 index e34e79c9..00000000 --- a/scene/entity/hd_entity.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c5hjtm0kn3ig3 diff --git a/scene/entity/hd_entity.tscn b/scene/entity/hd_entity.tscn deleted file mode 100644 index 60274f7a..00000000 --- a/scene/entity/hd_entity.tscn +++ /dev/null @@ -1,39 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://bj4ufua0b0k34"] - -[ext_resource type="Script" uid="uid://c5hjtm0kn3ig3" path="res://scene/entity/hd_entity.gd" id="1_fp2a8"] -[ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_eiqig"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5dpvj"] -[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="3_jupnr"] -[ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_oxpta"] - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_gffp4"] -resource_local_to_scene = true -size = Vector2(20, 70) - -[node name="HdEntity" type="Marker2D"] -script = ExtResource("1_fp2a8") - -[node name="Sfx" type="AudioStreamPlayer" parent="."] -unique_name_in_owner = true -stream = ExtResource("2_eiqig") -bus = &"game_sfx" -script = ExtResource("3_5dpvj") - -[node name="Sign" parent="." instance=ExtResource("3_jupnr")] -unique_name_in_owner = true - -[node name="PointLight2D" type="PointLight2D" parent="."] -unique_name_in_owner = true -position = Vector2(0, -35) -scale = Vector2(0.2, 0.2) -energy = 0.0 -texture = ExtResource("3_oxpta") -texture_scale = 0.5 - -[node name="Area2D" type="Area2D" parent="."] -unique_name_in_owner = true -collision_layer = 0 - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] -unique_name_in_owner = true -shape = SubResource("RectangleShape2D_gffp4") diff --git a/scene/ground/ground.tscn b/scene/ground/ground.tscn index d9d60dbb..b0dd7954 100644 --- a/scene/ground/ground.tscn +++ b/scene/ground/ground.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://dayyx4jerj7io"] +[gd_scene load_steps=8 format=3 uid="uid://dayyx4jerj7io"] [ext_resource type="Script" uid="uid://bee4ot74k4wg2" path="res://scene/ground/ground.gd" id="1_0vrlo"] [ext_resource type="PackedScene" uid="uid://cjhw5ecygrqty" path="res://scene/player/main_player.tscn" id="3_atha7"] @@ -6,13 +6,6 @@ [ext_resource type="PackedScene" uid="uid://cqkeegrcdjyg4" path="res://scene/ground/camera/camera_focus_marker.tscn" id="4_mgk0a"] [ext_resource type="Script" uid="uid://dpnny2y808k71" path="res://config/audio/random_audio_stream_player.gd" id="5_7mb2q"] -[sub_resource type="GDScript" id="GDScript_qxugl"] -script/source = "extends CanvasLayer - -func _ready() -> void: - layer = GlobalConfig.CANVAS_LAYER_HD_ENTITY -" - [sub_resource type="Gradient" id="Gradient_p7aaq"] colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1) @@ -72,22 +65,6 @@ offset = Vector2(0, -120) unique_name_in_owner = true points = PackedVector2Array(37, 150, 519, 150) -[node name="SubViewportContainer" type="SubViewportContainer" parent="."] -offset_right = 2256.0 -offset_bottom = 1268.0 -scale = Vector2(0.25, 0.25) -mouse_filter = 2 - -[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"] -transparent_bg = true -handle_input_locally = false -canvas_item_default_texture_filter = 0 -size = Vector2i(2256, 1268) -render_target_update_mode = 4 - -[node name="HdLayer" type="CanvasLayer" parent="SubViewportContainer/SubViewport"] -script = SubResource("GDScript_qxugl") - [node name="DirectionalLight2D" type="DirectionalLight2D" parent="."] unique_name_in_owner = true blend_mode = 2 diff --git a/scene/ground/ground_loader.tscn b/scene/ground/ground_loader.tscn index 477e7c15..30263bbd 100644 --- a/scene/ground/ground_loader.tscn +++ b/scene/ground/ground_loader.tscn @@ -1,38 +1,6 @@ -[gd_scene load_steps=9 format=3 uid="uid://clxgkj80yin2"] +[gd_scene load_steps=2 format=3 uid="uid://clxgkj80yin2"] [ext_resource type="Script" uid="uid://ec4w1mj0g6hw" path="res://scene/ground/ground_loader.gd" id="1_6mjre"] -[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="2_o1iiq"] -[ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="3_5t7s3"] -[ext_resource type="Texture2D" uid="uid://dol25yn3fixim" path="res://asset/art/fog_mask.png" id="4_o1iiq"] - -[sub_resource type="FastNoiseLite" id="FastNoiseLite_e16yg"] -noise_type = 2 -fractal_type = 2 - -[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_gvcke"] -width = 1600 -height = 400 -seamless = true -seamless_blend_skirt = 0.25 -noise = SubResource("FastNoiseLite_e16yg") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_j5cou"] -resource_local_to_scene = true -shader = ExtResource("3_5t7s3") -shader_parameter/noise = SubResource("NoiseTexture2D_gvcke") -shader_parameter/grey_level = 0.6 -shader_parameter/speed = 0.5 - -[sub_resource type="SpriteFrames" id="SpriteFrames_fx3fv"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("4_o1iiq") -}], -"loop": false, -"name": &"default", -"speed": 5.0 -}] [node name="GroundLoader" type="Node2D"] script = ExtResource("1_6mjre") @@ -67,12 +35,3 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 color = Color(0, 0, 0, 0) - -[node name="Fog" parent="MaskLayer" instance=ExtResource("2_o1iiq")] -visible = false -z_index = 5 -material = SubResource("ShaderMaterial_j5cou") -position = Vector2(330, -48) -sprite_frames = SubResource("SpriteFrames_fx3fv") -animation = &"default" -frame = 0 diff --git a/scene/ground/scene/c01/s05_animation.gd b/scene/ground/scene/c01/s05_animation.gd index abf8997e..fe380b1b 100644 --- a/scene/ground/scene/c01/s05_animation.gd +++ b/scene/ground/scene/c01/s05_animation.gd @@ -105,6 +105,7 @@ func _on_paper_interacted(): right_door.holding = false await SceneManager.get_inspector().quit_and_hidden $"捡起纸片后开门声".play() + SceneManager.pop_center_notification(tr("ui_right_click_prop")) # 钢琴音效,每次按下播放不同音符 diff --git a/scene/ground/scene/c01/s05_院长房间.tscn b/scene/ground/scene/c01/s05_院长房间.tscn index fc6da6b5..ee443bb0 100644 --- a/scene/ground/scene/c01/s05_院长房间.tscn +++ b/scene/ground/scene/c01/s05_院长房间.tscn @@ -825,14 +825,7 @@ position = Vector2(21, 39) texture = ExtResource("3_vmr0f") offset = Vector2(0, 0) -[node name="SubViewportContainer" parent="Ground" index="7"] -offset_top = -2.0 -offset_bottom = 1266.0 - -[node name="HdLayer" parent="Ground/SubViewportContainer/SubViewport" index="0"] -layer = -1 - -[node name="DirectionalLight2D" parent="Ground" index="8"] +[node name="DirectionalLight2D" parent="Ground" index="7"] rotation = -0.000622023 energy = 0.3 blend_mode = 1 diff --git a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn index 05dff610..41860c03 100644 --- a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn +++ b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn @@ -24,7 +24,7 @@ [ext_resource type="AudioStream" uid="uid://cwq0jaa708tf1" path="res://asset/audio/sfx/环境音/序章/02_孤儿院走廊_秋千声音.wav" id="12_huyl5"] [ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="12_idjp0"] [ext_resource type="AudioStream" uid="uid://mfu0btujldql" path="res://asset/audio/sfx/环境音/序章/02_孤儿院走廊_跷跷板声音.wav" id="13_phmvd"] -[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="14_d5def"] +[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="14_d5def"] [ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="15_22a7a"] [ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="15_q7j0p"] [ext_resource type="AudioStream" uid="uid://bv7std2s8bb0p" path="res://asset/audio/sfx/环境音/序章/童谣.wav" id="15_qq2uh"] diff --git a/scene/ground/scene/c01/s07_书店外.tscn b/scene/ground/scene/c01/s07_书店外.tscn index 9481b18e..bfd8cdd4 100644 --- a/scene/ground/scene/c01/s07_书店外.tscn +++ b/scene/ground/scene/c01/s07_书店外.tscn @@ -6,7 +6,7 @@ [ext_resource type="Texture2D" uid="uid://bbuskt4kwkwpl" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_黄昏.png" id="3_l7171"] [ext_resource type="AudioStream" uid="uid://cxwvfeuq4o71o" path="res://asset/audio/sfx/环境音/序章/03_书店外黄昏.wav" id="3_na2nu"] [ext_resource type="Texture2D" uid="uid://dklacql2hdtwv" path="res://asset/art/scene/c01/s07_书店外/e_装饰 书店外黄昏.png" id="4_8do8y"] -[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="4_62isb"] +[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="4_62isb"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_c7jb6"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_ulvsd"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="5_3pha1"] diff --git a/scene/ground/scene/c01/s09_公寓楼外.tscn b/scene/ground/scene/c01/s09_公寓楼外.tscn index 5c740aa2..da22f927 100644 --- a/scene/ground/scene/c01/s09_公寓楼外.tscn +++ b/scene/ground/scene/c01/s09_公寓楼外.tscn @@ -7,12 +7,12 @@ [ext_resource type="Texture2D" uid="uid://gpwul4tcu43h" path="res://asset/art/scene/c01/s09_公寓楼外/bg_黄包车裁剪场景.png" id="3_828bq"] [ext_resource type="AudioStream" uid="uid://cyy88bgsvf3e2" path="res://asset/audio/sfx/环境音/序章/06_公寓楼道_花枯萎.wav" id="3_b5sdk"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_3f7n1"] -[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/shading/ghost.tscn" id="4_wqm5r"] +[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/effect/ghost.tscn" id="4_wqm5r"] [ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="5_hy0mc"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_pssh2"] [ext_resource type="AudioStream" uid="uid://c1orqd7uxh8iu" path="res://asset/audio/sfx/环境音/序章/05_诡异通用_2.wav" id="6_lrqbi"] [ext_resource type="Texture2D" uid="uid://dol25yn3fixim" path="res://asset/art/fog_mask.png" id="7_828bq"] -[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="7_wrhtk"] +[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="7_wrhtk"] [ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="8_0ohlv"] [ext_resource type="SpriteFrames" uid="uid://c2peyi2l65h47" path="res://asset/art/gif/c01_公寓外街道/c01_公寓外街道_frames.tres" id="10_0ohlv"] [ext_resource type="Script" uid="uid://dxq5c05ab7uyu" path="res://scene/ground/script/c01/s00_ghost_footstep.gd" id="11_6w7lv"] diff --git a/scene/ground/scene/c01/s12_书店外_诡异版.tscn b/scene/ground/scene/c01/s12_书店外_诡异版.tscn index 1ea7bc77..39bbf0c1 100644 --- a/scene/ground/scene/c01/s12_书店外_诡异版.tscn +++ b/scene/ground/scene/c01/s12_书店外_诡异版.tscn @@ -11,7 +11,7 @@ [ext_resource type="PackedScene" uid="uid://svvlohuicvhf" path="res://scene/entity/ambient/light.tscn" id="5_kywnm"] [ext_resource type="PackedScene" uid="uid://dnbutraty2285" path="res://scene/entity/partical/particals_ash_vertical.tscn" id="6_mfjjt"] [ext_resource type="PackedScene" uid="uid://ci34db7xool2n" path="res://scene/ground/script/c01/s01_书店外_自动枯萎的花朵.tscn" id="7_aq8vg"] -[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/shading/ghost.tscn" id="8_gk0gq"] +[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/effect/ghost.tscn" id="8_gk0gq"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="9_nqlku"] [ext_resource type="Script" uid="uid://dxq5c05ab7uyu" path="res://scene/ground/script/c01/s00_ghost_footstep.gd" id="10_1tspp"] [ext_resource type="PackedScene" uid="uid://cn1ypquvs07wx" path="res://scene/ground/script/c01/s12_飘动的寻人启事.tscn" id="11_pwu7i"] @@ -21,7 +21,7 @@ [ext_resource type="SpriteFrames" uid="uid://db7m3aks5w65j" path="res://asset/art/gif/c01_书店外街道_夜晚小孩害怕/c01_书店外街道_夜晚小孩害怕_frames.tres" id="14_7jjl5"] [ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="14_ct084"] [ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="14_guu7t"] -[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="15_pvvjq"] +[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="15_pvvjq"] [ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="16_guu7t"] [ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="17_nta2f"] [ext_resource type="Texture2D" uid="uid://5byh65ppidsu" path="res://asset/art/scene/c01/s07_书店外/书店外街道夜晚 参考.png" id="18_0xa0c"] diff --git a/scene/ground/scene/c02/s03_animation.gd b/scene/ground/scene/c02/s03_animation.gd index b1ddea22..fd54cd30 100644 --- a/scene/ground/scene/c02/s03_animation.gd +++ b/scene/ground/scene/c02/s03_animation.gd @@ -79,9 +79,6 @@ func _on_ground_ready() -> void: # 奠字 + 纸钱 $"../DeployLayer/新背景_奠".visible = true - bully_layer = $"../DeployLayer/霸凌" - burning_layer = $"../DeployLayer/火灾" - small_shoe = $"../DeployLayer/Pickable小鞋子" as Pickable2D if ArchiveManager.get_global_value("c02_madman_interacted", false) and not data.camera_played: @@ -109,6 +106,8 @@ func _on_ground_ready() -> void: elif data.camera_played: small_shoe.enabled = true + bully_layer = $"../DeployLayer/霸凌" + burning_layer = $"../DeployLayer/火灾" if ArchiveManager.get_global_value("c02_ball_game_stage", 0) >= 3: _setup_bully_or_burning(true) @@ -178,7 +177,11 @@ func eavesdrop() -> void: ArchiveManager.set_global_entry("c02_eavesdrop_finished", true) -func _setup_bully_or_burning(reenter_scene:=false): +func _setup_bully_or_burning(reenter_scene := false): + if not ArchiveManager.get_global_value("c02_eavesdrop_finished"): + # 弹珠游戏结束后就开始霸凌,此时禁止偷听。第一章结束后(火灾结束),第二章再偷听 + $"../DeployLayer/Ambush偷听对话".enabled = false + eavesdrop_window.visible = false if ArchiveManager.get_global_value("c02_burning_end"): # 火灾演出完全结束 burning_layer.visible = false @@ -226,6 +229,7 @@ func bully_ambush(): sdf2d.finished.connect(func(): sdf2d.volume_db -= 5, CONNECT_ONE_SHOT) await animation_finished + func bully_end(): SceneManager.release_player() # #TODO 小猫玩具微亮 @@ -280,7 +284,6 @@ func _on_counter_interacted(): SceneManager.release_player() - func run_away(): SceneManager.pop_debug_dialog_info("美术", "牵手跑开") var player = SceneManager.get_player() diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index ec6c1b9c..e002f9ee 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1022,9 +1022,9 @@ position = Vector2(-88, -7) scale = Vector2(1.08, 1.08) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] -points = PackedVector2Array(37, 150, 2350, 150) +points = PackedVector2Array(37, 150, 2250, 150) -[node name="DirectionalLight2D" parent="Ground" index="8"] +[node name="DirectionalLight2D" parent="Ground" index="7"] visible = false energy = 0.6 blend_mode = 1 diff --git a/scene/ground/script/c02/敲门游戏.gd b/scene/ground/script/c02/敲门游戏.gd index 471a0f1c..93caa802 100644 --- a/scene/ground/script/c02/敲门游戏.gd +++ b/scene/ground/script/c02/敲门游戏.gd @@ -21,10 +21,10 @@ func _ready() -> void: DialogueManager.show_dialogue_balloon(dialogue, "c02_s03_敲门游戏intro") await DialogueManager.dialogue_ended if ( - # 未偷听,或已敲门成功,则禁用 - not ArchiveManager.get_global_value("c02_eavesdrop_finished", false) - or ArchiveManager.get_global_value("c02_meat_dropping", false) - or ArchiveManager.get_global_value("c02_meat_given", false) + # not ArchiveManager.get_global_value("c02_eavesdrop_finished", false) or + # ArchiveManager.get_global_value("c02_meat_dropping", false) or + # 敲门成功,则禁用 + ArchiveManager.get_global_value("c02_meat_given", false) ): button.disabled = true else: