interactable prop4; 保卫科第二章差异化;纸人歪头; 其他细化

This commit is contained in:
cakipaul 2025-08-12 17:53:31 +08:00
parent f1ae4be855
commit 781232b621
31 changed files with 361 additions and 90 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

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

View File

@ -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
}, {

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

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

View File

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

View File

@ -22,6 +22,7 @@ one_shot = false
prop_key = ""
prop_key2 = ""
prop_key3 = ""
prop_key4 = ""
[node name="SfxInvalid" type="AudioStreamPlayer" parent="."]
bus = &"game_sfx"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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()
SceneManager.unlock_player()
bed.enabled = true

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 == "瞎子_抽烟":

View File

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

View File

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