diff --git a/asset/art/gif/c02_小手/流血的洞.png b/asset/art/gif/c02_小手/流血的洞.png new file mode 100644 index 00000000..f227fa15 Binary files /dev/null and b/asset/art/gif/c02_小手/流血的洞.png differ diff --git a/asset/art/gif/c02_小手/流血的洞.png.import b/asset/art/gif/c02_小手/流血的洞.png.import new file mode 100644 index 00000000..3ee41d42 --- /dev/null +++ b/asset/art/gif/c02_小手/流血的洞.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mtwjy24fpmp6" +path="res://.godot/imported/流血的洞.png-a53e0995c71280d8306768eefbcc98a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/gif/c02_小手/流血的洞.png" +dest_files=["res://.godot/imported/流血的洞.png-a53e0995c71280d8306768eefbcc98a3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/gif/c03_瞎子新卧室/c03_瞎子新卧室_frames.tres b/asset/art/gif/c03_瞎子新卧室/c03_瞎子新卧室_frames.tres index cebc24ac..7cc8d15e 100644 --- a/asset/art/gif/c03_瞎子新卧室/c03_瞎子新卧室_frames.tres +++ b/asset/art/gif/c03_瞎子新卧室/c03_瞎子新卧室_frames.tres @@ -133,6 +133,26 @@ animations = [{ "speed": 5.0 }, { "frames": [{ +"duration": 6.0, +"texture": ExtResource("14_mgqqr") +}, { +"duration": 6.0, +"texture": ExtResource("15_vol74") +}, { +"duration": 6.0, +"texture": ExtResource("16_euwpl") +}, { +"duration": 6.0, +"texture": ExtResource("17_t2v0v") +}, { +"duration": 6.0, +"texture": ExtResource("18_5eyh2") +}], +"loop": true, +"name": &"小猫循环挠墙", +"speed": 30.0 +}, { +"frames": [{ "duration": 30.0, "texture": ExtResource("11_5xlyr") }, { @@ -172,7 +192,7 @@ animations = [{ "duration": 15.0, "texture": ExtResource("23_gvvdv") }], -"loop": false, +"loop": true, "name": &"小猫挠墙", "speed": 30.0 }, { diff --git a/asset/art/prop/c03/药纸.png b/asset/art/prop/c03/药纸.png new file mode 100644 index 00000000..136e4a5a Binary files /dev/null and b/asset/art/prop/c03/药纸.png differ diff --git a/asset/art/prop/c03/药纸.png.import b/asset/art/prop/c03/药纸.png.import new file mode 100644 index 00000000..ccac1cbd --- /dev/null +++ b/asset/art/prop/c03/药纸.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxgkncudoqrd" +path="res://.godot/imported/药纸.png-b290a4fbe8a5c2fa0ec5bde4e0cb7317.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/prop/c03/药纸.png" +dest_files=["res://.godot/imported/药纸.png-b290a4fbe8a5c2fa0ec5bde4e0cb7317.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png b/asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png new file mode 100644 index 00000000..d7129971 Binary files /dev/null and b/asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png differ diff --git a/asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png.import b/asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png.import new file mode 100644 index 00000000..fc55a8a4 --- /dev/null +++ b/asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5fk2san1lfmn" +path="res://.godot/imported/bg_保卫科_第二章.png-88842d2d29569bdc834e47425dacca6a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png" +dest_files=["res://.godot/imported/bg_保卫科_第二章.png-88842d2d29569bdc834e47425dacca6a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png b/asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png new file mode 100644 index 00000000..adcdaa5b Binary files /dev/null and b/asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png differ diff --git a/asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png.import b/asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png.import new file mode 100644 index 00000000..5b758566 --- /dev/null +++ b/asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wo86m2knrxu6" +path="res://.godot/imported/房间藤蔓_第二章.png-27ce1ff7aa7146d143e1059e1f5eedb4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png" +dest_files=["res://.godot/imported/房间藤蔓_第二章.png-27ce1ff7aa7146d143e1059e1f5eedb4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/scene/c03/引导纸人/指引纸人4歪头.png b/asset/art/scene/c03/引导纸人/指引纸人4歪头.png new file mode 100644 index 00000000..a16ebcd9 Binary files /dev/null and b/asset/art/scene/c03/引导纸人/指引纸人4歪头.png differ diff --git a/asset/art/scene/c03/引导纸人/指引纸人4歪头.png.import b/asset/art/scene/c03/引导纸人/指引纸人4歪头.png.import new file mode 100644 index 00000000..555beb14 --- /dev/null +++ b/asset/art/scene/c03/引导纸人/指引纸人4歪头.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7hh6cvkahswt" +path="res://.godot/imported/指引纸人4歪头.png-12a694b0b7f54d9d3c4b6bc8d1dd6bea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c03/引导纸人/指引纸人4歪头.png" +dest_files=["res://.godot/imported/指引纸人4歪头.png-12a694b0b7f54d9d3c4b6bc8d1dd6bea.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 41faa36d..82fcced8 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -159,6 +159,8 @@ 三枚纸制铜钱整齐排列,数量似乎有特殊含义 [ID:prop_3个纸铜钱_说明] 剪刀 [#texture=c03/缠着符咒的剪刀.png][#inspect=c03/ux_缠着符咒的剪刀.png] [ID:prop_剪刀] 普通的裁缝剪刀,刀身上缠绕着黄色的符纸 [ID:prop_剪刀_说明] +药纸 [#texture=c03/药纸.png] [ID:prop_药纸] +用牛皮做的药纸,上面沾着些粉尘 [ID:prop_药纸_说明] 药包 [#texture=c03/药包.png][#inspect=c03/ux_药包.png] [ID:prop_药包] 用牛皮纸包裹的药粉,竟散发着淡淡的香味 [ID:prop_药包_说明] 菜刀 [#texture=c03/菜刀.png][#inspect=c03/ux_菜刀.png] [ID:prop_菜刀] @@ -365,7 +367,7 @@ 和楼道里一样的洗头盆 [ID:c03_s03_洗头盆] 又是幻觉吗...{br}刚才灰衣服的男人在八音盒和照片里出现过{br}还有那个红色衣服的女孩...{br}难道说... [ID:c03_s03_演出结束] # 抓药游戏 -抓药需足数三文,另需药方与药引 [ID:c03_药车须知] +抓药需足数三文,另需药方、药纸与药引 [ID:c03_药车须知] 钱还没准备够...牌子上讲需要三文 [ID:c03_抓药铜钱不足] ...{br}铃铛声...{br}是我梦里那个铃铛声... [ID:c03_老板被吸走] # s04 李癞房间 @@ -424,7 +426,6 @@ 怎么突然出现这么多人?{br}要不跟过去看看?[ID:c03_李癞胖演出结束] # 小手 洞里有很浓的血腥味...[ID:c03_小手洞1] -呕,作孽啊...[ID:c03_小手洞2] => END ~ Notes_c04 diff --git a/scene/entity/closeup.tscn b/scene/entity/closeup.tscn index 83c3df32..8518a4ae 100644 --- a/scene/entity/closeup.tscn +++ b/scene/entity/closeup.tscn @@ -22,6 +22,7 @@ one_shot = false prop_key = "" prop_key2 = "" prop_key3 = "" +prop_key4 = "" [node name="SfxInvalid" type="AudioStreamPlayer" parent="."] bus = &"game_sfx" diff --git a/scene/entity/interactable.gd b/scene/entity/interactable.gd index 378aad64..d5183d15 100644 --- a/scene/entity/interactable.gd +++ b/scene/entity/interactable.gd @@ -44,6 +44,7 @@ signal sign_mark_offset_updated var prop_key := "" var prop_key2 := "" var prop_key3 := "" +var prop_key4 := "" @onready var sfx_invalid = $SfxInvalid as Sfx @onready var sfx_success = $SfxSuccess as Sfx @@ -140,19 +141,20 @@ var interact_mutex = Mutex.new() func is_key_matched(key) -> bool: return ( # prop_key 皆空,则表示不需要匹配 - (not prop_key and not prop_key2 and not prop_key3) + (not prop_key and not prop_key2 and not prop_key3 and not prop_key4) or ( # 只要有一个 prop_key 匹配即可 (prop_key and key == prop_key) or (prop_key2 and key == prop_key2) or (prop_key3 and key == prop_key3) + or (prop_key4 and key == prop_key4) ) ) func check_if_disable_prop(key) -> void: # prop_key 若空, 则表示不需要匹配, 也就不需要 disable 当前道具 - if not disable_prop_after_interacted or (not prop_key and not prop_key2 and not prop_key3): + if not disable_prop_after_interacted or (not prop_key and not prop_key2 and not prop_key3 and not prop_key4): return if key: SceneManager.disable_prop_item(key) @@ -229,6 +231,12 @@ func _get_property_list() -> Array[Dictionary]: "type": TYPE_STRING, "hint": PROPERTY_HINT_ENUM_SUGGESTION, "hint_string": ",".join(items), + }, + { + "name": "prop_key4", + "type": TYPE_STRING, + "hint": PROPERTY_HINT_ENUM_SUGGESTION, + "hint_string": ",".join(items), } ] @@ -240,6 +248,8 @@ func _get(property: StringName) -> Variant: return prop_key2 elif property == "prop_key3": return prop_key3 + elif property == "prop_key4": + return prop_key4 return null @@ -253,4 +263,7 @@ func _set(property: StringName, value: Variant) -> bool: elif property == "prop_key3": prop_key3 = value return true + elif property == "prop_key4": + prop_key4 = value + return true return false diff --git a/scene/entity/interactable.tscn b/scene/entity/interactable.tscn index 149c5a00..ae04c515 100644 --- a/scene/entity/interactable.tscn +++ b/scene/entity/interactable.tscn @@ -22,6 +22,7 @@ matched_sign_texture = ExtResource("4_njk43") prop_key = "" prop_key2 = "" prop_key3 = "" +prop_key4 = "" [node name="SfxInvalid" type="AudioStreamPlayer" parent="."] stream = ExtResource("4_n1rbo") diff --git a/scene/ground/scene/animation_root.gd b/scene/ground/scene/animation_root.gd index 370ca3b0..d0a79d9c 100644 --- a/scene/ground/scene/animation_root.gd +++ b/scene/ground/scene/animation_root.gd @@ -344,6 +344,9 @@ func _find_props(props: Dictionary, node: Node) -> void: if child.prop_key3 != &"": props[child.prop_key3] = true print("Find Interactable2D prop3: " + child.prop_key3) + if child.prop_key4 != &"": + props[child.prop_key4] = true + print("Find Interactable2D prop4: " + child.prop_key4) elif child is Pickable2D: if child.prop_key != &"" and not child.as_important_item: props[child.prop_key] = true diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 649c0240..31f95cc2 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1353,6 +1353,7 @@ texture_scale = 0.5 [node name="Pro胖子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"] position = Vector2(511, 27) +scale = Vector2(0.95, 0.95) sprite_frames = ExtResource("66_deuom") animation = &"胖子_撕寻人启事" script = ExtResource("67_h2lyo") @@ -1380,6 +1381,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="Pro李氏" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"] position = Vector2(460, 32) +scale = Vector2(0.95, 0.95) sprite_frames = ExtResource("66_deuom") animation = &"李氏_看向右边呼吸" autoplay = "李氏_看向右边呼吸" @@ -1396,6 +1398,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="Pro癞子" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D浆糊"] position = Vector2(592, 32) +scale = Vector2(0.95, 0.95) sprite_frames = ExtResource("66_deuom") animation = &"辫子癞子_侧面呼吸" autoplay = "辫子癞子_侧面呼吸" @@ -1638,7 +1641,7 @@ range_item_cull_mask = 4 texture = SubResource("GradientTexture2D_plfv5") [node name="MainPlayer" parent="Ground" index="5"] -position = Vector2(2236, 93) +position = Vector2(913, 93) player_movement_rect = Rect2(17, -158, 2233, 316) facing_direction = Vector2(-1, -1) diff --git a/scene/ground/scene/c02/s04_保卫科.gd b/scene/ground/scene/c02/s04_保卫科.gd index f0579f0e..9a6d23b0 100644 --- a/scene/ground/scene/c02/s04_保卫科.gd +++ b/scene/ground/scene/c02/s04_保卫科.gd @@ -38,6 +38,10 @@ func _on_ground_ready() -> void: if ambush进门看到小蝉.played: 小蝉写字.visible = false + # 第二章之后关闭 closeup折锡纸 + if EventManager.get_chapter_stage() >= 3: + closeup折锡纸.enabled = false + func _on_closeup_tin_coin_exited(arg = null): if arg == true: diff --git a/scene/ground/scene/c02/s04_保卫科.tscn b/scene/ground/scene/c02/s04_保卫科.tscn index bfd100b3..c0bd8e00 100644 --- a/scene/ground/scene/c02/s04_保卫科.tscn +++ b/scene/ground/scene/c02/s04_保卫科.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=27 format=3 uid="uid://bivc5cdap370p"] +[gd_scene load_steps=30 format=3 uid="uid://bivc5cdap370p"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2jej0"] [ext_resource type="Script" uid="uid://dmhh4g47bdxxy" path="res://scene/ground/scene/c02/s04_保卫科.gd" id="2_jyere"] @@ -26,6 +26,9 @@ [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="23_8qoej"] [ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="23_cq2m4"] [ext_resource type="Texture2D" uid="uid://dri8e2lyx6wg4" path="res://asset/art/scene/c02/s04_保卫科/e_老鼠精_第二章.png" id="23_vppvs"] +[ext_resource type="Texture2D" uid="uid://c5fk2san1lfmn" path="res://asset/art/scene/c02/s04_保卫科/bg_保卫科_第二章.png" id="26_6bni3"] +[ext_resource type="Texture2D" uid="uid://wo86m2knrxu6" path="res://asset/art/scene/c02/s04_保卫科/房间藤蔓_第二章.png" id="27_8gu7y"] +[ext_resource type="Texture2D" uid="uid://mtwjy24fpmp6" path="res://asset/art/gif/c02_小手/流血的洞.png" id="27_dygjd"] [node name="S04" type="Node2D"] @@ -148,25 +151,13 @@ updater_ease_duration = 0.0 updater_stages = Array[int]([0, 1, 2]) metadata/_custom_type_script = "uid://0wjaho6qkg6s" -[node name="Note小手洞" parent="Ground/DeployLayer" index="11" instance=ExtResource("23_8qoej")] -title_filter = "c03" -note_key = "c03_小手洞1" - -[node name="EventBinder" type="Node" parent="Ground/DeployLayer/Note小手洞"] -script = ExtResource("23_cq2m4") -updater_event = &"current_chapter_stage" -updater_mode = "shower" -updater_ease_duration = 0.0 -updater_stage_mode = "exclude" -updater_stages = Array[int]([0, 1, 2]) -metadata/_custom_type_script = "uid://0wjaho6qkg6s" - -[node name="小蝉写字" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"] +[node name="小蝉写字" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"] position = Vector2(351, 51) sprite_frames = ExtResource("20_47ju4") animation = &"c00_头套小婵_write" -[node name="老鼠精_第二章" type="Sprite2D" parent="Ground/DeployLayer" index="13"] +[node name="老鼠精_第二章" type="Sprite2D" parent="Ground/DeployLayer" index="12"] +self_modulate = Color(0.493545, 0.493546, 0.493546, 1) position = Vector2(207.5, -40.5) texture = ExtResource("23_vppvs") @@ -178,6 +169,31 @@ updater_ease_duration = 0.0 updater_stages = Array[int]([3, 4, 5, 6]) metadata/_custom_type_script = "uid://0wjaho6qkg6s" +[node name="背景图" type="Sprite2D" parent="Ground/DeployLayer/老鼠精_第二章"] +z_index = -1 +position = Vector2(-160.5, -77.5) +texture = ExtResource("26_6bni3") +centered = false + +[node name="背景藤蔓" type="Sprite2D" parent="Ground/DeployLayer/老鼠精_第二章"] +z_index = -1 +position = Vector2(-165.5, -142.5) +texture = ExtResource("27_8gu7y") +centered = false +flip_h = true + +[node name="背景血手洞" type="Sprite2D" parent="Ground/DeployLayer/老鼠精_第二章"] +z_index = 1 +position = Vector2(67.5, 4.5) +texture = ExtResource("27_dygjd") +centered = false +flip_h = true + +[node name="Note小手洞" parent="Ground/DeployLayer/老鼠精_第二章" instance=ExtResource("23_8qoej")] +position = Vector2(88.5, 28.5) +title_filter = "c03" +note_key = "c03_小手洞1" + [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(447, 98) player_movement_rect = Rect2(66, -158, 429, 316) @@ -193,7 +209,7 @@ points = PackedVector2Array(66, 150, 495, 150) [node name="DirectionalLight2D" parent="Ground" index="8"] visible = false -energy = 0.9 +energy = 0.8 blend_mode = 1 [editable path="Ground"] diff --git a/scene/ground/scene/c02/s06_二楼.tscn b/scene/ground/scene/c02/s06_二楼.tscn index 2fc26316..7cd946fd 100644 --- a/scene/ground/scene/c02/s06_二楼.tscn +++ b/scene/ground/scene/c02/s06_二楼.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=73 format=3 uid="uid://cootarwb44vvh"] +[gd_scene load_steps=76 format=3 uid="uid://cootarwb44vvh"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qkymk"] [ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_二楼.gd" id="2_4dg6u"] @@ -26,12 +26,14 @@ [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="11_2rktm"] [ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="11_owxx3"] [ext_resource type="PackedScene" uid="uid://cjx7o685ox8c1" path="res://scene/little_game/弹珠游戏/弹珠游戏.tscn" id="12_intre"] +[ext_resource type="Texture2D" uid="uid://c7hh6cvkahswt" path="res://asset/art/scene/c03/引导纸人/指引纸人4歪头.png" id="12_jxvkc"] [ext_resource type="SpriteFrames" uid="uid://cee76qwjhw268" path="res://asset/art/gif/c03_二楼/c03_二楼_frames.tres" id="12_sqio2"] [ext_resource type="SpriteFrames" uid="uid://c218xrr85jdc7" path="res://asset/art/gif/c03_小小小蝶上楼道/c03_小小小蝶上楼道_frames.tres" id="13_6iuix"] [ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="14_7x2h6"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="14_k01ve"] [ext_resource type="AudioStream" uid="uid://oya48ab6e3ye" path="res://asset/audio/sfx/旧版/child/小孩从远到近跑步.ogg" id="14_lipxo"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="14_och2w"] +[ext_resource type="AudioStream" uid="uid://dxx5lu2j88c7x" path="res://asset/audio/sfx/交互/第二章/sfx_s03_咔嚓转头.ogg" id="14_p6bap"] [ext_resource type="SpriteFrames" uid="uid://b0icyhxpj16tv" path="res://asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres" id="15_k01ve"] [ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="15_tw31y"] [ext_resource type="Texture2D" uid="uid://1pr32tkx4ttl" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_煤油灯座.png" id="16_osg51"] @@ -808,6 +810,20 @@ _data = { &"疯子撞墙": SubResource("Animation_p6da7") } +[sub_resource type="SpriteFrames" id="SpriteFrames_p6bap"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("10_sqio2") +}, { +"duration": 1.0, +"texture": ExtResource("12_jxvkc") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + [sub_resource type="AtlasTexture" id="AtlasTexture_chbaa"] atlas = ExtResource("10_6iuix") region = Rect2(0, 0, 6, 14) @@ -992,10 +1008,9 @@ updater_stage_mode = "exclude" updater_stages = Array[int]([0, 1, 2]) metadata/_custom_type_script = "uid://0wjaho6qkg6s" -[node name="左侧纸人" type="Sprite2D" parent="Ground/DeployLayer" index="6"] -visible = false -position = Vector2(36, 35) -texture = ExtResource("10_sqio2") +[node name="左侧纸人" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="6"] +position = Vector2(86, 31) +sprite_frames = SubResource("SpriteFrames_p6bap") [node name="Event2D疯子跑开" type="Node2D" parent="Ground/DeployLayer" index="7"] position = Vector2(105, 2) @@ -1007,6 +1022,12 @@ pre_event_mode = "hide" pre_event_stages = Array[int]([0]) metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" +[node name="Sfx纸人咔嚓转头" type="AudioStreamPlayer" parent="Ground/DeployLayer/Event2D疯子跑开"] +stream = ExtResource("14_p6bap") +bus = &"game_sfx" +script = ExtResource("4_2e08x") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="Pro疯子慌张跑开" parent="Ground/DeployLayer/Event2D疯子跑开" instance=ExtResource("10_p6da7")] position = Vector2(102, 22) sprite_frames = ExtResource("12_sqio2") @@ -1452,7 +1473,7 @@ energy = 0.15 texture = ExtResource("11_2rktm") [node name="MainPlayer" parent="Ground" index="5"] -position = Vector2(63, 95) +position = Vector2(49, 98) catty_light_energy = 0.5 player_movement_rect = Rect2(26, -158, 874, 316) facing_direction = Vector2(1, 0) diff --git a/scene/ground/scene/c02/s07_二楼内侧楼道.gd b/scene/ground/scene/c02/s07_二楼内侧楼道.gd index bc478406..1ab88638 100644 --- a/scene/ground/scene/c02/s07_二楼内侧楼道.gd +++ b/scene/ground/scene/c02/s07_二楼内侧楼道.gd @@ -19,15 +19,10 @@ var hand func _on_ground_ready() -> void: flyer = $"../DeployLayer/Closeup刮海报" hand = $"../DeployLayer/小手讨东西" - # 只有第一章启用 - if EventManager.get_chapter_stage() <= 2: - if data.flyer_shaven: - take_off_flyer(true) - else: - flyer.exit.connect(_on_flyer_exit) + if data.flyer_shaven: + take_off_flyer(true) else: - flyer.hide() - hand.hide() + flyer.exit.connect(_on_flyer_exit) func _on_flyer_exit(arg): diff --git a/scene/ground/scene/c02/s07_二楼内侧楼道.tscn b/scene/ground/scene/c02/s07_二楼内侧楼道.tscn index bb695a3e..0b6a9b97 100644 --- a/scene/ground/scene/c02/s07_二楼内侧楼道.tscn +++ b/scene/ground/scene/c02/s07_二楼内侧楼道.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=3 uid="uid://t4xjt774ngwh"] +[gd_scene load_steps=20 format=3 uid="uid://t4xjt774ngwh"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_oao56"] [ext_resource type="Script" uid="uid://cnjdxjni5v3cs" path="res://scene/ground/scene/c02/s07_二楼内侧楼道.gd" id="2_t0s64"] @@ -19,8 +19,6 @@ [ext_resource type="Texture2D" uid="uid://0x7cl2cmcs6l" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕2.png" id="16_uggte"] [ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="17_uggte"] [ext_resource type="Texture2D" uid="uid://dcot0rove27rd" path="res://asset/art/scene/c02/s08_瞎子卧室/e_粘鼠板.png" id="18_e4bwj"] -[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="20_4anfx"] -[ext_resource type="Texture2D" uid="uid://cawpq7rnho5px" path="res://asset/art/gif/c02_小手/洞.png" id="20_wkpn4"] [node name="S07" type="Node2D"] @@ -113,21 +111,6 @@ texture = ExtResource("18_e4bwj") sign_mark_offset = Vector2(0, -9.34) prop_key = "prop_粘鼠板" -[node name="Note小手洞" parent="Ground/DeployLayer" index="10" instance=ExtResource("13_s75vl")] -position = Vector2(294, -7) -texture = ExtResource("20_wkpn4") -title_filter = "c03" -note_key = "c03_小手洞2" - -[node name="EventBinder" type="Node" parent="Ground/DeployLayer/Note小手洞"] -script = ExtResource("20_4anfx") -updater_event = &"current_chapter_stage" -updater_mode = "shower" -updater_ease_duration = 0.0 -updater_stage_mode = "exclude" -updater_stages = Array[int]([0, 1, 2]) -metadata/_custom_type_script = "uid://0wjaho6qkg6s" - [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(41, 98) player_movement_rect = Rect2(37, -158, 573, 316) diff --git a/scene/ground/scene/c03/s02_瞎子新卧室.gd b/scene/ground/scene/c03/s02_瞎子新卧室.gd index 92577736..7df2dcb6 100644 --- a/scene/ground/scene/c03/s02_瞎子新卧室.gd +++ b/scene/ground/scene/c03/s02_瞎子新卧室.gd @@ -76,7 +76,11 @@ func scratching_cat_interacted() -> void: # 蹲下 ~ 起立 SceneManager.lock_player() $"../DeployLayer/Ambush小猫挠墙/小猫挠墙".play("小猫挠墙") + # 隐藏床交互,稍后启用 + var bed = $"../DeployLayer/Note小蝉的床" as Note2D + bed.enabled = false await Util.wait(3.5) # 自动隐藏 EventManager.set_stage("c03_invite_xchan_supper", 3) - SceneManager.unlock_player() \ No newline at end of file + SceneManager.unlock_player() + bed.enabled = true \ No newline at end of file diff --git a/scene/ground/scene/c03/s02_瞎子新卧室.tscn b/scene/ground/scene/c03/s02_瞎子新卧室.tscn index e8d1fdb6..693918ac 100644 --- a/scene/ground/scene/c03/s02_瞎子新卧室.tscn +++ b/scene/ground/scene/c03/s02_瞎子新卧室.tscn @@ -149,7 +149,7 @@ width = 600 height = 300 [node name="S02" type="Node2D"] -metadata/_edit_horizontal_guides_ = [-627.0] +metadata/_edit_horizontal_guides_ = [-627.0, 95.0] [node name="Ground" parent="." instance=ExtResource("1_jad6f")] scene_name = "c03_s02" @@ -237,7 +237,7 @@ updater_stages = Array[int]([0, 1]) metadata/_custom_type_script = "uid://0wjaho6qkg6s" [node name="Pickable邀请信" parent="Ground/DeployLayer" index="7" instance=ExtResource("13_v3seo")] -position = Vector2(454, 42) +position = Vector2(429, 29) texture = ExtResource("13_yl4ee") as_important_item = true sign_mark_offset = Vector2(0, -4) @@ -366,8 +366,9 @@ texture = SubResource("GradientTexture2D_5cqb4") [node name="Pickable李癞钥匙" parent="Ground/DeployLayer" index="13" instance=ExtResource("13_v3seo")] unique_name_in_owner = true -visible = false -position = Vector2(506, 69) +position = Vector2(499, 78) +sign_mark_offset = Vector2(0, -2.42) +collision_width_and_x = Vector2(42.79, 0) prop_key = "prop_1015钥匙" [node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Pickable李癞钥匙"] @@ -404,8 +405,9 @@ metadata/_custom_type_script = "uid://0wjaho6qkg6s" [node name="小猫挠墙" type="AnimatedSprite2D" parent="Ground/DeployLayer/Ambush小猫挠墙"] position = Vector2(9, 17) sprite_frames = ExtResource("10_2hv3f") -animation = &"小猫呼吸" -autoplay = "小猫呼吸" +animation = &"小猫循环挠墙" +autoplay = "小猫循环挠墙" +frame_progress = 0.270454 [node name="SignSnapper" type="Marker2D" parent="Ground/DeployLayer/Ambush小猫挠墙"] position = Vector2(8, 11) diff --git a/scene/ground/script/c02/s00_煤油灯.tscn b/scene/ground/script/c02/s00_煤油灯.tscn index eb93f35f..59a0d25f 100644 --- a/scene/ground/script/c02/s00_煤油灯.tscn +++ b/scene/ground/script/c02/s00_煤油灯.tscn @@ -41,6 +41,7 @@ mute_when_interacted = true prop_key = "prop_火柴" prop_key2 = "" prop_key3 = "" +prop_key4 = "" [node name="SfxInvalid" type="AudioStreamPlayer" parent="."] stream = ExtResource("9_l338h") diff --git a/scene/ground/script/c02/s06_event_2d疯子跑开.gd b/scene/ground/script/c02/s06_event_2d疯子跑开.gd index 7b475d63..cf7d95fc 100644 --- a/scene/ground/script/c02/s06_event_2d疯子跑开.gd +++ b/scene/ground/script/c02/s06_event_2d疯子跑开.gd @@ -16,6 +16,7 @@ func _on_global_stage_updated(e: StringName, s: int): func _on_ground_ready(_ground: Ground2D): + paperman = $"../左侧纸人" var ambush = $"Ambush疯子慌张跑开" as Ambush2D if stage == 0: # 重置 ambush @@ -35,7 +36,7 @@ func _on_ambush_triggered() -> void: SceneManager.unlock_player() -var paperman_x = 24 +var paperman:AnimatedSprite2D func _on_pre_stage_updated(): @@ -44,9 +45,20 @@ func _on_pre_stage_updated(): func _on_stage_updated(): if stage == 1: - $"../左侧纸人".visible = true + paperman.visible = true + if ArchiveManager.get_global_value("c03_s06_paperman_knocked"): + paperman.frame = 1 + $"../portal_left".before_pre_transport_wait.connect(_on_left_poortal_interacted) # 显示纸人的时候阻塞通道 # $"../portal_left".enabled = false else: $"../左侧纸人".visible = false # $"../portal_left".enabled = true + + +func _on_left_poortal_interacted()-> void: + # 0 正常; 1 歪头 + if not ArchiveManager.get_global_value("c03_s06_paperman_knocked"): + ArchiveManager.set_global_entry("c03_s06_paperman_knocked", true) + $"Sfx纸人咔嚓转头".global_play() + paperman.frame = 1 \ No newline at end of file diff --git a/scene/ground/script/c02/小手讨东西.gd b/scene/ground/script/c02/小手讨东西.gd index e7dc5e15..82491878 100644 --- a/scene/ground/script/c02/小手讨东西.gd +++ b/scene/ground/script/c02/小手讨东西.gd @@ -17,7 +17,8 @@ signal interact_start @onready var sfx_invalid = $SfxInvalid as Sfx @onready var sfx_success = $SfxSuccess as Sfx -@onready var sfx_bgm = $SfxBgm as AudioStreamPlayer +@onready var sfx_bgm_c02 = $SfxBgmC02 as Sfx +@onready var sfx_bgm_c03 = $SfxBgmC03 as Sfx @onready var sign_mark = %Sign as Sign @onready var sign_snapper = %SignSnapper as SignSnapper @onready var area2d = %Area2D as Area2D @@ -60,11 +61,15 @@ var icount: int: sign_mark.sprite2d.texture = matched_sign_texture var coin: Pickable2D - +var sfx_bgm: Sfx func _ready() -> void: if Engine.is_editor_hint(): return + if EventManager.get_chapter_stage() <= 2: + sfx_bgm = sfx_bgm_c02 + else: + sfx_bgm = sfx_bgm_c03 # sign_mark.interacted.connect(_on_interacted) sign_snapper.arrived.connect(_on_interacted) sign_mark.cancel.connect(_on_cancel) diff --git a/scene/ground/script/c02/小手讨东西.tscn b/scene/ground/script/c02/小手讨东西.tscn index 84cdac8d..95ecf556 100644 --- a/scene/ground/script/c02/小手讨东西.tscn +++ b/scene/ground/script/c02/小手讨东西.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://xovlfee503a4"] +[gd_scene load_steps=20 format=3 uid="uid://xovlfee503a4"] [ext_resource type="Texture2D" uid="uid://cawpq7rnho5px" path="res://asset/art/gif/c02_小手/洞.png" id="1_47cqy"] [ext_resource type="Script" uid="uid://my5xqi3bkka6" path="res://scene/ground/script/c02/小手讨东西.gd" id="1_n7thl"] @@ -14,6 +14,7 @@ [ext_resource type="SpriteFrames" uid="uid://b6nvwset1hwbv" path="res://asset/art/gif/c02_小手/c02_小手_frames.tres" id="9_yatcw"] [ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/旧版/c02/撞到柜子.ogg" id="10_0tuif"] [ext_resource type="Texture2D" uid="uid://2mjipesnigcr" path="res://asset/art/prop/c02/锡箔元宝.png" id="10_47cqy"] +[ext_resource type="AudioStream" uid="uid://wt7jlambh6y" path="res://asset/audio/peiyin/c03/c03_棺材怪_3.ogg" id="10_n2hq3"] [ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="12_6lwlv"] [ext_resource type="Script" uid="uid://cnt01hiw52bmn" path="res://scene/entity/ux/sign_snapper.gd" id="15_lr23o"] @@ -46,8 +47,16 @@ bus = &"game_sfx" script = ExtResource("7_7dftu") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" -[node name="SfxBgm" type="AudioStreamPlayer" parent="."] +[node name="SfxBgmC02" type="AudioStreamPlayer" parent="."] stream = ExtResource("9_7dftu") +volume_db = -10.0 +bus = &"game_sfx" +script = ExtResource("7_7dftu") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="SfxBgmC03" type="AudioStreamPlayer" parent="."] +stream = ExtResource("10_n2hq3") +volume_db = -10.0 bus = &"game_sfx" script = ExtResource("7_7dftu") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" diff --git a/scene/ground/script/c03/s02_event_2d偷听陆仁小蝶对话后.gd b/scene/ground/script/c03/s02_event_2d偷听陆仁小蝶对话后.gd index 77ca43a7..a3ecd51c 100644 --- a/scene/ground/script/c03/s02_event_2d偷听陆仁小蝶对话后.gd +++ b/scene/ground/script/c03/s02_event_2d偷听陆仁小蝶对话后.gd @@ -40,6 +40,7 @@ func _on_ground_ready(_ground: Ground2D): # Part1: 上半段对话1&抽烟 DialogueManager.show_dialogue_balloon(c03_dialogue, "c03_s02_邀请小蝉与瞎子对话1") + # TODO 此处播放咳嗽动画 the_blind.play("瞎子_抽烟") await DialogueManager.dialogue_ended if the_blind.animation == "瞎子_抽烟": diff --git a/scene/ground/script/c03/s03_刮海报_理发店.tscn b/scene/ground/script/c03/s03_刮海报_理发店.tscn index 7c51d707..47054d75 100644 --- a/scene/ground/script/c03/s03_刮海报_理发店.tscn +++ b/scene/ground/script/c03/s03_刮海报_理发店.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=28 format=3 uid="uid://dohvkxfdmcrw4"] +[gd_scene load_steps=29 format=3 uid="uid://dohvkxfdmcrw4"] [ext_resource type="Script" uid="uid://d31fc1bolhwlf" path="res://scene/ground/script/c02/刮海报.gd" id="1_pdoaa"] [ext_resource type="Script" uid="uid://bagqdqsd0b4fy" path="res://scene/ground/script/c03/鬼母子游戏.gd" id="2_86fqw"] @@ -17,9 +17,8 @@ [ext_resource type="Texture2D" uid="uid://dc1yq5hnho25q" path="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/4正.png" id="12_b7rxv"] [ext_resource type="SpriteFrames" uid="uid://cmvr3lbwe3h7p" path="res://asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres" id="14_s7g11"] [ext_resource type="PackedScene" uid="uid://bkk1rxx36ghrl" path="res://scene/entity/ux/hover_light_click_area.tscn" id="15_3uuyc"] -[ext_resource type="Texture2D" uid="uid://cstd74y5811u3" path="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/l_舌头.png" id="17_682sk"] +[ext_resource type="Texture2D" uid="uid://cxgkncudoqrd" path="res://asset/art/prop/c03/药纸.png" id="16_5s8gu"] [ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="17_dhl8m"] -[ext_resource type="Texture2D" uid="uid://csu41qqgeqqhl" path="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/e_舌头.png" id="19_puk8y"] [ext_resource type="Texture2D" uid="uid://d2ynca8tib6r7" path="res://asset/art/scene/c03/s03_瞎子理发店/鬼母子神/海报.png" id="22_puk8y"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6jvn1"] @@ -47,6 +46,15 @@ height = 115.7 radius = 21.7 height = 91.8 +[sub_resource type="Gradient" id="Gradient_puk8y"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 1, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_b7rxv"] +gradient = SubResource("Gradient_puk8y") +width = 128 +height = 48 + [node name="c03_barber_shave_flyer" type="CanvasLayer"] layer = 5 script = ExtResource("1_pdoaa") @@ -152,40 +160,38 @@ range_item_cull_mask = 128 texture = SubResource("GradientTexture2D_go12c") [node name="倒塌" type="AnimatedSprite2D" parent="鬼母子游戏"] -visible = false sprite_frames = ExtResource("14_s7g11") animation = &"鬼母子神" +frame = 2 +frame_progress = 1.0 centered = false [node name="Props" type="Node2D" parent="鬼母子游戏/倒塌"] -visible = false -[node name="纸舌头" parent="鬼母子游戏/倒塌/Props" instance=ExtResource("15_3uuyc")] +[node name="药纸" parent="鬼母子游戏/倒塌/Props" instance=ExtResource("15_3uuyc")] unique_name_in_owner = true position = Vector2(255, 248) -[node name="Sprite2D" type="Sprite2D" parent="鬼母子游戏/倒塌/Props/纸舌头"] -position = Vector2(-40, 0) -texture = ExtResource("19_puk8y") -centered = false +[node name="Sprite2D" type="Sprite2D" parent="鬼母子游戏/倒塌/Props/药纸"] +light_mask = 2 +scale = Vector2(0.7, 0.3) +texture = ExtResource("16_5s8gu") -[node name="PointLight2D" type="PointLight2D" parent="鬼母子游戏/倒塌/Props/纸舌头"] -position = Vector2(7, 7) +[node name="PointLight2D" type="PointLight2D" parent="鬼母子游戏/倒塌/Props/药纸"] +light_mask = 0 +position = Vector2(1, 5) +energy = 0.6 range_layer_max = 10 -texture = ExtResource("17_682sk") +range_item_cull_mask = 2 +texture = SubResource("GradientTexture2D_b7rxv") -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="鬼母子游戏/倒塌/Props/纸舌头"] -visible = false -position = Vector2(7, 6) -polygon = PackedVector2Array(-49, -10, -49, -2.8, -38, 3.2, -38, 5.1, 5.1, 3, 13.1, 3, 18.1, 9, 28.8, 9, 32, 5.8, 32, 4.2, 39.4, 1, 41.4, 1, 42.4, -1.6, 36, -7, 36, -8.8, 26, -9.9) - -[node name="EventBinder" type="Node" parent="鬼母子游戏/倒塌/Props/纸舌头"] +[node name="EventBinder" type="Node" parent="鬼母子游戏/倒塌/Props/药纸"] script = ExtResource("17_dhl8m") -updater_event = &"c03_hariti_tongue" +updater_event = &"c03_hariti_drug_paper" updater_mode = "shower" updater_ease_duration = 0.0 updater_stages = Array[int]([0]) -trigger_event = &"c03_hariti_tongue" +trigger_event = &"c03_hariti_drug_paper" trigger_mode = "interacted" metadata/_custom_type_script = "uid://0wjaho6qkg6s" diff --git a/scene/ground/script/c03/鬼母子游戏.gd b/scene/ground/script/c03/鬼母子游戏.gd index a138fbf5..03f61528 100644 --- a/scene/ground/script/c03/鬼母子游戏.gd +++ b/scene/ground/script/c03/鬼母子游戏.gd @@ -27,7 +27,7 @@ var success_states: Array = [2, 1, 3, 0] func _ready() -> void: EventManager.stage_updated.connect(_on_stage_updated) $"../Draggable纸钱".picked.connect(GlobalFunctor.c03_get_paper_coin) - $"倒塌/Props/纸舌头".interacted.connect(SceneManager.enable_prop_item.bind("prop_纸舌头")) + $"倒塌/Props/药纸".interacted.connect(SceneManager.enable_prop_item.bind("prop_药纸")) $"../刮刮乐".visible = true var shaven = ArchiveManager.get_global_value("c03_barber_shave_flyer")