From b87dea61c31dede0628d6a93fbe1730ed6a27c76 Mon Sep 17 00:00:00 2001 From: cakipaul Date: Fri, 20 Jun 2025 19:36:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=9B=92=E5=AD=90=E7=8C=AB?= =?UTF-8?q?=E6=B8=B8=E6=88=8F+=E7=9E=8E=E5=AD=90=E5=8D=A7=E5=AE=A4?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../art/gif/c02_盒子猫/c02_盒子猫_frames.tres | 20 +- .../scene/c02/s04_保卫科/e_老鼠画像横板.png | Bin 0 -> 3167 bytes .../c02/s04_保卫科/e_老鼠画像横板.png.import | 34 +++ .../scene/c02/s04_保卫科/ux_老鼠画像特写.png | Bin 0 -> 79611 bytes .../c02/s04_保卫科/ux_老鼠画像特写.png.import | 34 +++ .../art/scene/c02/s08_瞎子卧室/e_墙上纸张.png | Bin 2927 -> 217 bytes .../c02/s08_瞎子卧室/e_墙上纸张_blood.png | Bin 0 -> 272 bytes .../s08_瞎子卧室/e_墙上纸张_blood.png.import | 34 +++ .../c02/s08_瞎子卧室/e_墙上纸张_boxcat.png | Bin 0 -> 280 bytes .../s08_瞎子卧室/e_墙上纸张_boxcat.png.import | 34 +++ .../bg_一楼楼道(粉笔画).png | Bin 0 -> 6421 bytes .../bg_一楼楼道(粉笔画).png.import | 34 +++ asset/dialogue/item_description.csv | 5 +- asset/dialogue/item_description.dialogue | 4 +- config/animation/entity_sprite_frames.tres | 18 +- scene/ground/ground_loader.gd | 1 + scene/ground/scene/c02/s03_animation.gd | 22 +- scene/ground/scene/c02/s03_院子.tscn | 85 ++++--- scene/ground/scene/c02/s04_保卫科.tscn | 6 +- scene/ground/scene/c02/s08_animation.gd | 42 +++- scene/ground/scene/c02/s08_瞎子卧室.tscn | 93 +++++++- scene/ground/scene/c02/s12_animation.gd | 21 +- scene/ground/scene/c02/s12_盒子猫.tscn | 3 +- scene/ground/scene/c02/s13_animation.gd | 37 ++- scene/ground/scene/c02/s13_盒子猫二楼.tscn | 57 +++-- .../ground/scene/c02/s14_盒子猫二楼内侧.tscn | 10 +- .../ground/scene/c02/s15_盒子猫一楼内侧.tscn | 19 +- .../ground/scene/c02/s16_盒子猫三楼内侧.tscn | 8 +- scene/ground/scene/c02/s17_盒子猫三楼.tscn | 8 +- scene/ground/scene/c02/s18_animation.gd | 17 ++ scene/ground/scene/c02/s18_animation.gd.uid | 1 + scene/ground/scene/c02/s18_盒子猫一楼.tscn | 70 ++++++ scene/ground/script/c02/s08_画特写.tscn | 20 ++ scene/ground/script/c02/盒子猫canvas_layer.gd | 45 +++- .../ground/script/c02/盒子猫canvas_layer.tscn | 83 ++++++- scene/ground/script/c02/老鼠精画像.tscn | 30 +-- scene/ground/script/c02/追猫猪头怪.gd | 223 ++++++++++++++---- scene/ground/script/c02/追猫猪头怪.tscn | 4 +- 38 files changed, 904 insertions(+), 218 deletions(-) create mode 100644 asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png create mode 100644 asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png.import create mode 100644 asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png create mode 100644 asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png.import create mode 100644 asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png create mode 100644 asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png.import create mode 100644 asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_boxcat.png create mode 100644 asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_boxcat.png.import create mode 100644 asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png create mode 100644 asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png.import create mode 100644 scene/ground/scene/c02/s18_animation.gd create mode 100644 scene/ground/scene/c02/s18_animation.gd.uid create mode 100644 scene/ground/scene/c02/s18_盒子猫一楼.tscn create mode 100644 scene/ground/script/c02/s08_画特写.tscn diff --git a/asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres b/asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres index 430a49c7..c41b338c 100644 --- a/asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres +++ b/asset/art/gif/c02_盒子猫/c02_盒子猫_frames.tres @@ -213,33 +213,33 @@ animations = [{ "speed": 30.0 }, { "frames": [{ -"duration": 6.0, +"duration": 1.0, "texture": ExtResource("25_ty3yp") }, { -"duration": 6.0, +"duration": 1.0, "texture": ExtResource("26_x3isd") }, { -"duration": 6.0, +"duration": 1.0, "texture": ExtResource("27_hwoj5") }, { -"duration": 6.0, +"duration": 1.0, "texture": ExtResource("28_n6lou") }, { -"duration": 6.0, +"duration": 1.0, "texture": ExtResource("29_6p0ya") }, { -"duration": 6.0, +"duration": 1.0, "texture": ExtResource("30_uxs1n") }, { -"duration": 6.0, +"duration": 1.0, "texture": ExtResource("31_rdknj") }, { -"duration": 6.0, +"duration": 1.0, "texture": ExtResource("32_c28wc") }], -"loop": false, +"loop": true, "name": &"猪头怪走路", -"speed": 30.0 +"speed": 5.0 }, { "frames": [{ "duration": 6.0, diff --git a/asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png b/asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b1177be8be2d43b6371b962747941d61dc25dc GIT binary patch literal 3167 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 FV1nY7Gi3k( literal 0 HcmV?d00001 diff --git a/asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png.import b/asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png.import new file mode 100644 index 00000000..7f652855 --- /dev/null +++ b/asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://v6q6ao6fiqm1" +path="res://.godot/imported/e_老鼠画像横板.png-8a76220ba2bd471be83a15a7a523bd66.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png" +dest_files=["res://.godot/imported/e_老鼠画像横板.png-8a76220ba2bd471be83a15a7a523bd66.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_保卫科/ux_老鼠画像特写.png b/asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png new file mode 100644 index 0000000000000000000000000000000000000000..bf0e4569bf8a768db764003a52db50afeb873c51 GIT binary patch literal 79611 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 &zj6_s$Gp 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 literal 0 HcmV?d00001 diff --git a/asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png.import b/asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png.import new file mode 100644 index 00000000..6169e62c --- /dev/null +++ b/asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1xr7g5huv5or" +path="res://.godot/imported/ux_老鼠画像特写.png-2cde5d57d18ad26389a54b7fa4b7cebc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png" +dest_files=["res://.godot/imported/ux_老鼠画像特写.png-2cde5d57d18ad26389a54b7fa4b7cebc.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/s08_瞎子卧室/e_墙上纸张.png b/asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png index 98c5f32b8842dcaed83a7da11135b62757da2b78..eeb655cbf8e5d28aa01375a657f4779292c61c1e 100644 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~g!3HGv?z=Y!NO2Z;L>4nJa0`PlBg3pY5@VMw7b^N%0&fFtMwQ+{3{df{ff?ncpqc^xii{iW%TN9 QptBe}UHx3vIVCg!06wi(r~m)} literal 2927 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 diff --git a/asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png b/asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e8cbf825079549d2dad0f219a86843dad294a5 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~g!3HGv?z=Y!NO2Z;L>4nJa0`PlBg3pY5t+!rBWKJY|TO z!CDr1*x&5t&7bw(&i5Q)a@g(_q*Hdg_s+ZiK89m^HtDz~B|6#Yv{zqjJH^wwsGv&D zHi*%k<(bOKRwL#_nV6EWxii4PiYlC+Fx+(#+9iIkA&ZRELP@?5Bz5x U)V!vV2k09HPgg&ebxsLQ0Jl4Dq5uE@ literal 0 HcmV?d00001 diff --git a/asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png.import b/asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png.import new file mode 100644 index 00000000..53bf8f30 --- /dev/null +++ b/asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8sv81cw7mcn4" +path="res://.godot/imported/e_墙上纸张_blood.png-a16cd8e2f7a6f90b4ea7789b6f8f87bb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png" +dest_files=["res://.godot/imported/e_墙上纸张_blood.png-a16cd8e2f7a6f90b4ea7789b6f8f87bb.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/s08_瞎子卧室/e_墙上纸张_boxcat.png b/asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_boxcat.png new file mode 100644 index 0000000000000000000000000000000000000000..f61ca0f4c98c3af88a803306b4d59bacbcf7324c GIT binary patch literal 280 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 z在这种楼里挺常见的,,,,, c02_十几年前的报纸,十几年前的报纸,,,,, c02_院子_算命摊位,算命的摊位?,,,,, +c02_院子_要下雨,好像要下雨了?,,,,, c02_保卫科花名册os,芦昌公寓居民登记簿,黄国栋记。,,,,, c02_一楼楼道被挡住,被挡住了,,,,, c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」
咦,这口诀是谁教我的来着...,,,,, +c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,, c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,, c02_火灾等待准备,还没准备好点火呢,,,,, 小猫玩具发光,嗯?玩具在发光,,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 3240be63..615e5c0a 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -26,6 +26,7 @@ 重要物品已更新(按 B 打开背包) [ID:ui_important_item_update] 点击图标可切换道具(或按 Z/C) [ID:ui_switch_prop] 按住 Shift 奔跑 [ID:ui_press_shift] +按住 S 躲藏 [ID:ui_boxcat_press_s] 点击选择信件碎片,方向键移动,按 E 旋转 [ID:input_拼凑信件] 获得 [ID:ui_获得] @@ -159,17 +160,18 @@ 十几年前的报纸 [ID:c02_十几年前的报纸] # c02 院子 算命的摊位? [ID:c02_院子_算命摊位] +好像要下雨了? [ID:c02_院子_要下雨] # c02 保卫科 芦昌公寓居民登记簿,黄国栋记。 [ID:c02_保卫科花名册os] # c02 内侧楼道 被挡住了 [ID:c02_一楼楼道被挡住] # 瞎子卧室 「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」
咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图] +这画上的脚印和刚刚看到的一样。 [ID:c02_瞎子卧室_血脚印] 院长房间里也有一个类似的十字架。[ID:c02_瞎子卧室_十字架] # c02 火灾 还没准备好点火呢 [ID:c02_火灾等待准备] 嗯?玩具在发光 [ID:小猫玩具发光] 没时间浪费了!想想办法救出小蝉... [ID:c02_点火前阻止右移] -# c02 => END diff --git a/config/animation/entity_sprite_frames.tres b/config/animation/entity_sprite_frames.tres index 9c89fd2f..85ca31c8 100644 --- a/config/animation/entity_sprite_frames.tres +++ b/config/animation/entity_sprite_frames.tres @@ -1,4 +1,4 @@ -[gd_resource type="SpriteFrames" load_steps=810 format=3 uid="uid://b7fhheih1hbvf"] +[gd_resource type="SpriteFrames" load_steps=806 format=3 uid="uid://b7fhheih1hbvf"] [ext_resource type="Texture2D" uid="uid://bpqrd6vo3j17m" path="res://asset/art/animation/c00_吕萍_记笔记_right/吕萍-拿本子记录1.png" id="1_6sdvl"] [ext_resource type="Texture2D" uid="uid://dvq64espa37lx" path="res://asset/art/animation/c00_吕萍_idle_left/zhhx1.png" id="1_ekv0l"] @@ -755,9 +755,7 @@ [ext_resource type="Texture2D" uid="uid://iqgnednnykdr" path="res://asset/art/animation/c02_吕萍_钻出/0.png" id="605_v8kdt"] [ext_resource type="Texture2D" uid="uid://cgnn3ohqr52uf" path="res://asset/art/gif/c02_盒子猫/盒子猫呼吸/0.png" id="720_u1ns1"] [ext_resource type="Texture2D" uid="uid://bn1v0rbsayjuf" path="res://asset/art/gif/c02_盒子猫/盒子猫呼吸/1.png" id="721_i6nr0"] -[ext_resource type="Texture2D" uid="uid://cgft6wepygo84" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/0.png" id="722_143ox"] [ext_resource type="Texture2D" uid="uid://55rmstkju630" path="res://asset/art/gif/c02_盒子猫/盒子猫走路/0.png" id="722_kk2bf"] -[ext_resource type="Texture2D" uid="uid://bdbp0kc0v4gbw" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/1.png" id="723_2vft2"] [ext_resource type="Texture2D" uid="uid://b2dt0032711li" path="res://asset/art/gif/c02_盒子猫/盒子猫走路/1.png" id="723_7otbe"] [ext_resource type="Texture2D" uid="uid://b7ewg60u7s2d" path="res://asset/art/gif/c02_盒子猫/盒子猫走路/2.png" id="724_pq372"] [ext_resource type="Texture2D" uid="uid://ca00x7jqj8fjy" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/2.png" id="724_pwc7e"] @@ -773,8 +771,6 @@ [ext_resource type="Texture2D" uid="uid://f8nq6xbuwiw0" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/7.png" id="729_h6bhr"] [ext_resource type="Texture2D" uid="uid://csj5jede3wryh" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/8.png" id="730_dlxoy"] [ext_resource type="Texture2D" uid="uid://cand6orv3g28w" path="res://asset/art/gif/c02_盒子猫/盒子猫停止躲藏/盒子猫出盒子2.png" id="730_karh2"] -[ext_resource type="Texture2D" uid="uid://b3piexlfdu7cc" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/0.png" id="731_oibw0"] -[ext_resource type="Texture2D" uid="uid://bedsecuscfsu7" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/1.png" id="732_cmym6"] [ext_resource type="Texture2D" uid="uid://1mtlgg1y5530" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/2.png" id="733_4rlhx"] [ext_resource type="Texture2D" uid="uid://dqmjk8do1yyao" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/3.png" id="734_chy64"] [ext_resource type="Texture2D" uid="uid://dnfn5wd7wxem7" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/4.png" id="735_mliv3"] @@ -3486,12 +3482,6 @@ animations = [{ }, { "frames": [{ "duration": 1.0, -"texture": ExtResource("722_143ox") -}, { -"duration": 1.0, -"texture": ExtResource("723_2vft2") -}, { -"duration": 1.0, "texture": ExtResource("724_pwc7e") }, { "duration": 1.0, @@ -3518,12 +3508,6 @@ animations = [{ }, { "frames": [{ "duration": 1.0, -"texture": ExtResource("731_oibw0") -}, { -"duration": 1.0, -"texture": ExtResource("732_cmym6") -}, { -"duration": 1.0, "texture": ExtResource("733_4rlhx") }, { "duration": 1.0, diff --git a/scene/ground/ground_loader.gd b/scene/ground/ground_loader.gd index 5d3e2aa3..82df854f 100644 --- a/scene/ground/ground_loader.gd +++ b/scene/ground/ground_loader.gd @@ -48,6 +48,7 @@ static var GROUND_SCENE_PATH_DICT = { "c02_s15": "res://scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn", "c02_s16": "res://scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn", "c02_s17": "res://scene/ground/scene/c02/s17_盒子猫三楼.tscn", + "c02_s18": "res://scene/ground/scene/c02/s18_盒子猫一楼.tscn", } func _ready() -> void: diff --git a/scene/ground/scene/c02/s03_animation.gd b/scene/ground/scene/c02/s03_animation.gd index b2dd3c7b..831a997d 100644 --- a/scene/ground/scene/c02/s03_animation.gd +++ b/scene/ground/scene/c02/s03_animation.gd @@ -128,8 +128,28 @@ func _on_gate_interacted() -> void: func shocking_lighting() -> void: + var root = $"../DeployLayer/闷雷_纸人闪现" as Node2D + var normal_ppl = root.get_node("排队常人") as Sprite2D + var paper_ppl = root.get_node("排队纸人") as Sprite2D + var light = root.get_node("PointLight2D") as PointLight2D + root.visible = true + normal_ppl.modulate.a = 0 + paper_ppl.modulate.a = 0 + light.energy = 0 + var sfx = $"Sfx闷雷" + var tween = create_tween() + tween.tween_property(light, "energy", 7.0, 0.1) + tween.tween_property(light, "energy", 4.0, 0.02) + tween.parallel().tween_property(normal_ppl, "modulate:a", 1.0, 0.03) + tween.tween_property(light, "energy", 8.0, 0.01) + tween.tween_property(light, "energy", 3.0, 0.02) + tween.tween_property(light, "energy", 7.0, 0.01) + tween.parallel().tween_property(paper_ppl, "modulate:a", 1.0, 0.03) + tween.tween_property(light, "energy", 0.0, 0.1) + tween.tween_callback(root.hide) # 纸人闪现 惊悚闪电 闷雷声缓缓而来 - $"Sfx闷雷".play() + tween.tween_interval(2.0) + tween.tween_callback(sfx.play) # TODO diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index c6b00a3e..930c9403 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=74 format=3 uid="uid://djc2uaefhmu7"] +[gd_scene load_steps=76 format=3 uid="uid://djc2uaefhmu7"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0dylx"] [ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_animation.gd" id="2_dt5aj"] @@ -246,6 +246,15 @@ fill = 1 fill_from = Vector2(0.5, 0.465812) fill_to = Vector2(1, 1) +[sub_resource type="Gradient" id="Gradient_vddfx"] +offsets = PackedFloat32Array(0.00475436, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_3nako"] +gradient = SubResource("Gradient_vddfx") +width = 1000 +height = 300 + [sub_resource type="RectangleShape2D" id="RectangleShape2D_er6ob"] resource_local_to_scene = true size = Vector2(40, 70) @@ -372,11 +381,6 @@ sprite_frames = ExtResource("4_gd6xp") animation = &"小婵晃脚掉鞋" autoplay = "一楼二楼外侧楼道拼接-晃脚动画" -[node name="楼梯" type="Sprite2D" parent="Ground/BGSprite2D" index="1"] -z_index = 10 -position = Vector2(1388, 1) -texture = ExtResource("10_ud2jg") - [node name="portal_left" parent="Ground/DeployLayer" index="0"] position = Vector2(25, 11) target_scene = "c02_s02" @@ -502,29 +506,42 @@ z_index = 15 position = Vector2(1964, -209) [node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="8"] +visible = false [node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")] position = Vector2(1353, 33) hook_method = "shocking_lighting" [node name="排队常人" type="Sprite2D" parent="Ground/DeployLayer/闷雷_纸人闪现"] -z_index = 20 +light_mask = 5 +z_index = 30 position = Vector2(1227.5, -119) texture = ExtResource("18_crgo6") centered = false [node name="排队纸人" type="Sprite2D" parent="Ground/DeployLayer/闷雷_纸人闪现"] -z_index = 20 +light_mask = 5 +z_index = 30 position = Vector2(1227.5, -119) texture = ExtResource("19_vddfx") centered = false -[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="9"] +[node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/闷雷_纸人闪现"] +position = Vector2(1411, 12) +range_layer_max = 2 +range_item_cull_mask = 4 +texture = SubResource("GradientTexture2D_3nako") + +[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="9" instance=ExtResource("25_iyaiw")] +position = Vector2(1611, 46) +hook_os_key = "c02_院子_要下雨" + +[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="10"] modulate = Color(1, 1, 1, 0) position = Vector2(1189, 0) texture = ExtResource("6_d7h4s") -[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="10" instance=ExtResource("7_em2ma")] +[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="11" instance=ExtResource("7_em2ma")] position = Vector2(809, 75) sign_mark_offset = Vector2(0, -16.88) enabled = false @@ -535,8 +552,9 @@ position = Vector2(0, -7) scale = Vector2(0.15, 0.15) texture = ExtResource("8_plfv5") -[node name="Interactable铁门" parent="Ground/DeployLayer" index="11" instance=ExtResource("8_xt8j0")] -position = Vector2(1212, 28) +[node name="Interactable铁门" parent="Ground/DeployLayer" index="12" instance=ExtResource("8_xt8j0")] +light_mask = 5 +position = Vector2(1222, 28) texture = ExtResource("7_gd6xp") interacted_texture = ExtResource("9_liq0c") prop_key = "prop_老虎钳" @@ -552,7 +570,7 @@ collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Wall"] shape = SubResource("RectangleShape2D_mdix7") -[node name="Note算命摊位" parent="Ground/DeployLayer" index="12" instance=ExtResource("6_t48d1")] +[node name="Note算命摊位" parent="Ground/DeployLayer" index="13" instance=ExtResource("6_t48d1")] position = Vector2(725, 45) note_key = "c02_院子_算命摊位" @@ -560,13 +578,13 @@ note_key = "c02_院子_算命摊位" position = Vector2(0, 18) texture = ExtResource("6_1tart") -[node name="煤油灯" parent="Ground/DeployLayer" index="13" instance=ExtResource("10_jme4f")] +[node name="煤油灯" parent="Ground/DeployLayer" index="14" instance=ExtResource("10_jme4f")] position = Vector2(290, 1) gaslight_energy = 1.5 gaslight_ground_energy = 0.7 mute_when_interacted = false -[node name="煤油灯2" parent="Ground/DeployLayer" index="14" instance=ExtResource("10_jme4f")] +[node name="煤油灯2" parent="Ground/DeployLayer" index="15" instance=ExtResource("10_jme4f")] position = Vector2(610, 1) gaslight_texture = ExtResource("11_g0qhj") ground_light_texture = ExtResource("12_ni5ro") @@ -574,7 +592,7 @@ gaslight_energy = 1.5 gaslight_ground_energy = 0.7 mute_when_interacted = false -[node name="煤油灯3" parent="Ground/DeployLayer" index="15" instance=ExtResource("10_jme4f")] +[node name="煤油灯3" parent="Ground/DeployLayer" index="16" instance=ExtResource("10_jme4f")] position = Vector2(857, 1) gaslight_texture = ExtResource("13_hw832") ground_light_texture = ExtResource("14_7pq5y") @@ -582,44 +600,45 @@ gaslight_energy = 1.5 gaslight_ground_energy = 0.7 mute_when_interacted = false -[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="16"] +[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="17"] self_modulate = Color(0.739288, 0.739288, 0.739288, 1) light_mask = 5 z_index = 10 position = Vector2(2062, 60) texture = ExtResource("21_4n8vm") -[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="17"] +[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="18"] +light_mask = 5 z_index = 10 position = Vector2(1025, 27) texture = ExtResource("22_3y5s5") -[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="18" instance=ExtResource("23_81juy")] +[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="19" instance=ExtResource("23_81juy")] position = Vector2(466, 3) packed_scene = ExtResource("24_0o4rt") -[node name="Closeup井" parent="Ground/DeployLayer" index="19" instance=ExtResource("23_81juy")] +[node name="Closeup井" parent="Ground/DeployLayer" index="20" instance=ExtResource("23_81juy")] z_index = 6 position = Vector2(2063, 50) packed_scene = ExtResource("26_yy4fp") -[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="20" instance=ExtResource("25_iyaiw")] +[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="21" instance=ExtResource("25_iyaiw")] position = Vector2(1319, 40) hook_method = "shocking_lighting" -[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="21" instance=ExtResource("25_iyaiw")] -position = Vector2(1791, 8) +[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="22" instance=ExtResource("25_iyaiw")] +position = Vector2(1836, 7) trigger_mode = "interact" one_shot = false hook_method = "eavesdrop" -[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="22"] +[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="23"] position = Vector2(1835, -16) sprite_frames = SubResource("SpriteFrames_0o4rt") autoplay = "default" frame_progress = 0.643855 -[node name="Npc井边疯子" parent="Ground/DeployLayer" index="23" instance=ExtResource("35_plfv5")] +[node name="Npc井边疯子" parent="Ground/DeployLayer" index="24" instance=ExtResource("35_plfv5")] z_index = 10 position = Vector2(2037, 67) sprite_frames = SubResource("SpriteFrames_kyfht") @@ -645,7 +664,7 @@ position = Vector2(-11, -3) shape = SubResource("RectangleShape2D_bbhbr") disabled = true -[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="24"] +[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="25"] visible = false position = Vector2(2154, 60) @@ -710,7 +729,7 @@ collision_mask = 0 shape = SubResource("RectangleShape2D_d7h4s") disabled = true -[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="25"] +[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="26"] visible = false [node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"] @@ -881,7 +900,7 @@ offset_bottom = -23.0 [node name="CollisionShape2D" parent="Ground/DeployLayer/火灾/Ambush等待的小蝉/Area2D" index="0"] shape = SubResource("RectangleShape2D_em2ma") -[node name="Interactable柜子" parent="Ground/DeployLayer" index="26" instance=ExtResource("8_xt8j0")] +[node name="Interactable柜子" parent="Ground/DeployLayer" index="27" instance=ExtResource("8_xt8j0")] visible = false position = Vector2(1772, 48) texture = ExtResource("32_cpifc") @@ -897,7 +916,7 @@ animation = &"箱子着火" autoplay = "箱子着火" frame_progress = 0.453645 -[node name="最终跑路" type="RigidBody2D" parent="Ground/DeployLayer" index="27"] +[node name="最终跑路" type="RigidBody2D" parent="Ground/DeployLayer" index="28"] visible = false position = Vector2(2150, 30) collision_layer = 4 @@ -922,11 +941,17 @@ range_item_cull_mask = 4 texture = SubResource("GradientTexture2D_plfv5") [node name="MainPlayer" parent="Ground" index="4"] -position = Vector2(407, 93) +position = Vector2(1384, 101) [node name="BGParallaxLayer" parent="Ground/ParallaxForeground" index="0"] use_parent_material = true +[node name="楼梯" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"] +light_mask = 5 +z_index = 20 +position = Vector2(1393.5, 0) +texture = ExtResource("10_ud2jg") + [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] position = Vector2(-88, -7) scale = Vector2(1.08, 1.08) diff --git a/scene/ground/scene/c02/s04_保卫科.tscn b/scene/ground/scene/c02/s04_保卫科.tscn index b3c58727..d84d503a 100644 --- a/scene/ground/scene/c02/s04_保卫科.tscn +++ b/scene/ground/scene/c02/s04_保卫科.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://bivc5cdap370p"] +[gd_scene load_steps=20 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_animation.gd" id="2_jyere"] @@ -17,6 +17,7 @@ [ext_resource type="Texture2D" uid="uid://ch6uf4qi1i0h2" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕3.png" id="9_a43aq"] [ext_resource type="PackedScene" uid="uid://xovlfee503a4" path="res://scene/ground/script/c02/小手讨东西.tscn" id="10_a43aq"] [ext_resource type="Texture2D" uid="uid://dtmd13ktss5hk" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光5.png" id="10_svuj3"] +[ext_resource type="Texture2D" uid="uid://v6q6ao6fiqm1" path="res://asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png" id="11_ffvrp"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_gk1h4"] resource_local_to_scene = true @@ -82,7 +83,8 @@ position = Vector2(189, 15) packed_scene = ExtResource("7_fvlg0") [node name="Closeup老鼠精" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_66gue")] -position = Vector2(208, -32) +position = Vector2(207.5, -40.5) +texture = ExtResource("11_ffvrp") packed_scene = ExtResource("8_cm3g6") [node name="Closeup花名册" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_66gue")] diff --git a/scene/ground/scene/c02/s08_animation.gd b/scene/ground/scene/c02/s08_animation.gd index 4196baee..9722b64f 100644 --- a/scene/ground/scene/c02/s08_animation.gd +++ b/scene/ground/scene/c02/s08_animation.gd @@ -15,11 +15,17 @@ func _ready() -> void: var color_mask: ColorRect var ambush_eavesdrop: Ambush2D +var ambush_lookback: Ambush2D +var gaslight: Gaslight +var boxcat_portal: Portal2D func _on_ground_ready() -> void: color_mask = $"../BGSprite2D/ColorMask" ambush_eavesdrop = $"../DeployLayer/Ambush偷听" + ambush_lookback = $"../DeployLayer/Ambush回看洞口" + gaslight = $"../DeployLayer/灯座Sprite2D/煤油灯" + boxcat_portal = $"../DeployLayer/portal_1" # 0默认 1拿了麻将 2偷听结束 3已爬出 if data.hole_interacted_times >= 3: setup_rect_after_entered() @@ -27,9 +33,25 @@ func _on_ground_ready() -> void: color_mask.color.a = 1.0 # # 如果没有出隧道,则设置镜头右侧 limit + 500 # SceneManager.get_camera_marker().limit_right += 500 - - if ArchiveManager.get_global_value("c02_the_blind_room_unlocked"): + var looked_back = ambush_lookback.played + var boxcat_played = ArchiveManager.get_global_value("c02_the_blind_room_unlocked") + if gaslight.interacted_times > 0: + ambush_lookback.enabled = true + else: + gaslight.interacted.connect(func(): ambush_lookback.enabled = true) + if looked_back: + gaslight.enabled = false + gaslight.visible = false + if not boxcat_played: + boxcat_portal.enabled = true + boxcat_portal.get_node("PointLight2D2").enabled = true + boxcat_portal.get_node("Sprite2D").texture = preload("uid://efhwoqtn21d8") # e_墙上纸张_boxcat + $"../DeployLayer/Closeup画".enabled = false + if boxcat_played: $"../DeployLayer/portal_left".status = "opened" + # 玩过小猫游戏,画框内容更新 禁止再进入 + boxcat_portal.get_node("Sprite2D").texture = preload("uid://b8sv81cw7mcn4") # e_墙上纸张_blood + $"../DeployLayer/Note画上脚印".enabled = true var interacting = false: @@ -86,9 +108,8 @@ var room_camera_r_limit = 550 # 钻出隧道,进入房间 func enter_room() -> void: - var look_back_ambush = $"../DeployLayer/Ambush回看洞口" # 防止过程中 look back - look_back_ambush.enabled = false + ambush_lookback.enabled = false var player = SceneManager.get_player() as MainPlayer var player_x = 513.0 SceneManager.freeze_player(0) @@ -112,7 +133,6 @@ func enter_room() -> void: player.hide_sprite = false SceneManager.release_player() interacting = false - look_back_ambush.enabled = true func setup_rect_after_entered() -> void: @@ -153,6 +173,18 @@ func _on_shocked(): $"Sfx癞子对视惊吓".play() SceneManager.freeze_player(0, 11, true) SceneManager.get_player().animation_finished.connect(_on_shocked_finished, CONNECT_ONE_SHOT) + await create_tween().tween_interval(1.1).finished + # 熄火 + gaslight.enabled = false + gaslight.visible = false + # 启用 boxcat_portal + boxcat_portal.enabled = true + var light = boxcat_portal.get_node("PointLight2D2") as PointLight2D + boxcat_portal.get_node("Sprite2D").texture = preload("uid://efhwoqtn21d8") # e_墙上纸张_boxcat + light.enabled = true + light.energy = 0 + create_tween().tween_property(light, "energy", 0.6, 1.5) + $"../DeployLayer/Closeup画".enabled = false func _on_shocked_finished(): diff --git a/scene/ground/scene/c02/s08_瞎子卧室.tscn b/scene/ground/scene/c02/s08_瞎子卧室.tscn index 0b27f570..51d10f9b 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.tscn +++ b/scene/ground/scene/c02/s08_瞎子卧室.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=28 format=3 uid="uid://ce2vyyg2reg52"] +[gd_scene load_steps=34 format=3 uid="uid://ce2vyyg2reg52"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"] [ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"] @@ -10,10 +10,15 @@ [ext_resource type="Texture2D" uid="uid://b5pwb4fm46sad" path="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png" id="5_f6mma"] [ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_vjjde"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="7_j6ltr"] +[ext_resource type="Texture2D" uid="uid://dtyg0nugb2tnf" path="res://asset/art/ui/action_mark/UI探索.png" id="8_dkqw0"] +[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="10_a48k2"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="10_f6mma"] [ext_resource type="Texture2D" uid="uid://brdo2cpu6vcqd" path="res://asset/art/scene/c02/杂物/煤油灯 开灯.png" id="10_vjjde"] +[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="11_7w12o"] [ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="11_kwj7c"] +[ext_resource type="PackedScene" uid="uid://dd8dfoik0ig3y" path="res://scene/ground/script/c02/s08_画特写.tscn" id="11_mc126"] [ext_resource type="Texture2D" uid="uid://bgtxwxerl2dxh" path="res://asset/art/scene/c02/s08_瞎子卧室/十字架.png" id="11_t3h08"] +[ext_resource type="Texture2D" uid="uid://bcqcvohj7jy40" path="res://asset/art/scene/c02/杂物/煤油灯 关灯.png" id="11_u4psw"] [ext_resource type="Texture2D" uid="uid://bmid3iu2ch35o" path="res://asset/art/scene/c02/s08_瞎子卧室/八卦图.png" id="12_1ws4i"] [ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="13_t3h08"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="14_1ws4i"] @@ -64,6 +69,10 @@ _data = { &"RESET": SubResource("Animation_f6mma") } +[sub_resource type="RectangleShape2D" id="RectangleShape2D_a48k2"] +resource_local_to_scene = true +size = Vector2(5, 70) + [sub_resource type="RectangleShape2D" id="RectangleShape2D_kwj7c"] resource_local_to_scene = true size = Vector2(10, 70) @@ -153,20 +162,66 @@ position = Vector2(676, 63) matched_sign_texture = null [node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_1ws4i")] -position = Vector2(193, 34) +position = Vector2(214, 31) debug_note = "墙画:盒子猫" +enabled = false portal_name = "1" target_scene = "c02_s12" target_portal = "left" status = "opened" +default_sign_texture = ExtResource("8_dkqw0") +opened_sign_texture = ExtResource("8_dkqw0") matched_sign_texture = null [node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/portal_1"] show_behind_parent = true +light_mask = 33 position = Vector2(0, -47) texture = ExtResource("5_f6mma") -[node name="瞎子小蝉对话" type="Node2D" parent="Ground/DeployLayer" index="3"] +[node name="PointLight2D2" type="PointLight2D" parent="Ground/DeployLayer/portal_1"] +light_mask = 33 +position = Vector2(0, -47) +enabled = false +energy = 0.6 +range_item_cull_mask = 32 +texture = ExtResource("11_kwj7c") +texture_scale = 0.15 + +[node name="Closeup画" parent="Ground/DeployLayer" index="3" instance=ExtResource("10_a48k2")] +position = Vector2(214, -19) +packed_scene = ExtResource("11_mc126") + +[node name="Note画上脚印" parent="Ground/DeployLayer" index="4" instance=ExtResource("14_1ws4i")] +position = Vector2(214, -19) +enabled = false +title_filter = "c02" +note_key = "c02_瞎子卧室_血脚印" + +[node name="灯座Sprite2D" type="Sprite2D" parent="Ground/DeployLayer" index="5"] +position = Vector2(169, 18) +texture = ExtResource("11_u4psw") + +[node name="煤油灯" parent="Ground/DeployLayer/灯座Sprite2D" instance=ExtResource("11_7w12o")] +position = Vector2(0, 15) +animation_low_mode = true +hide_texture = true +gaslight_energy = 2.0 + +[node name="CollisionShape2D" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯/Area2D" index="0"] +shape = SubResource("RectangleShape2D_a48k2") + +[node name="PointLight2D" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="3"] +energy = 2.0 + +[node name="灯座" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="6"] +visible = false + +[node name="Sign" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="7"] +offset_top = -18.0 +offset_bottom = -18.0 + +[node name="瞎子小蝉对话" type="Node2D" parent="Ground/DeployLayer" index="6"] visible = false [node name="瞎子谈话" type="AnimatedSprite2D" parent="Ground/DeployLayer/瞎子小蝉对话"] @@ -193,7 +248,7 @@ energy = 1.5 texture = ExtResource("11_kwj7c") texture_scale = 1.5 -[node name="Ambush偷听" parent="Ground/DeployLayer" index="4" instance=ExtResource("10_f6mma")] +[node name="Ambush偷听" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_f6mma")] position = Vector2(571, 28) trigger_mode = "interact" one_shot = false @@ -208,7 +263,7 @@ offset_bottom = 5.0 [node name="CollisionShape2D" parent="Ground/DeployLayer/Ambush偷听/Area2D" index="0"] shape = SubResource("RectangleShape2D_kwj7c") -[node name="吕萍钻出" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="5"] +[node name="吕萍钻出" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="8"] visible = false position = Vector2(534, 0) sprite_frames = ExtResource("13_t3h08") @@ -216,33 +271,44 @@ animation = &"c02_吕萍_钻出" frame = 6 frame_progress = 1.0 -[node name="癞子偷窥" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="6"] +[node name="癞子偷窥" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="9"] visible = false position = Vector2(569, 56) sprite_frames = ExtResource("13_t3h08") animation = &"c02_王癞子_蹲着呼吸" autoplay = "c02_王癞子_蹲着呼吸" -[node name="Ambush回看洞口" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_f6mma")] +[node name="Ambush回看洞口" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_f6mma")] position = Vector2(522, 31) +enabled = false trigger_mode = "interact" hook_method = "look_back_hole" -[node name="Note十字架" parent="Ground/DeployLayer" index="8" instance=ExtResource("14_1ws4i")] -position = Vector2(322, -10) -texture = ExtResource("11_t3h08") +[node name="Note十字架" parent="Ground/DeployLayer" index="11" instance=ExtResource("14_1ws4i")] +position = Vector2(329, -3) sign_mark_offset = Vector2(0, -13.89) title_filter = "c02" note_key = "c02_瞎子卧室_十字架" -[node name="Note八卦图" parent="Ground/DeployLayer" index="9" instance=ExtResource("14_1ws4i")] +[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Note十字架"] +show_behind_parent = true +position = Vector2(0, -3) +scale = Vector2(0.5, 0.5) +texture = ExtResource("11_t3h08") + +[node name="Note八卦图" parent="Ground/DeployLayer" index="12" instance=ExtResource("14_1ws4i")] position = Vector2(144, -14) -texture = ExtResource("12_1ws4i") sign_mark_offset = Vector2(0, -10.86) title_filter = "c02" note_key = "c02_瞎子卧室_八卦图" -[node name="Pickable粘鼠板" parent="Ground/DeployLayer" index="10" instance=ExtResource("17_5fx68")] +[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Note八卦图"] +show_behind_parent = true +position = Vector2(0, -2) +scale = Vector2(0.5, 0.5) +texture = ExtResource("12_1ws4i") + +[node name="Pickable粘鼠板" parent="Ground/DeployLayer" index="13" instance=ExtResource("17_5fx68")] position = Vector2(105, 70) texture = ExtResource("18_dkqw0") sign_mark_offset = Vector2(0, -9.34) @@ -292,4 +358,5 @@ energy = 0.9 blend_mode = 1 [editable path="Ground"] +[editable path="Ground/DeployLayer/灯座Sprite2D/煤油灯"] [editable path="Ground/DeployLayer/Ambush偷听"] diff --git a/scene/ground/scene/c02/s12_animation.gd b/scene/ground/scene/c02/s12_animation.gd index b79fc201..56da3f78 100644 --- a/scene/ground/scene/c02/s12_animation.gd +++ b/scene/ground/scene/c02/s12_animation.gd @@ -18,19 +18,24 @@ func _on_ground_ready() -> void: func _intro(): - SceneManager.freeze_player(0) + SceneManager.lock_player() # var player = SceneManager.get_player() as MainPlayer var player = %MainPlayer as MainPlayer player.hide_sprite = true player.position.x = 231.0 player.set_facing_direction(Vector2.RIGHT) - var duration = $"../盒子猫CanvasLayer".show_cat_duration - await get_tree().create_timer(duration).timeout var anim = $"../DeployLayer/小猫初始动画" as AnimatedSprite2D - anim.play() - var camera = SceneManager.get_camera_marker() - create_tween().tween_property(camera, "force_offset", Vector2.ZERO, 1.0) - await anim.animation_finished + if not ArchiveManager.get_global_value("c02_boxcat_skip_intro"): + var layer = $"../盒子猫CanvasLayer" + layer.disable_crawl = true + var duration = layer.show_cat_duration + await get_tree().create_timer(duration).timeout + anim.play() + var camera = SceneManager.get_camera_marker() + create_tween().tween_property(camera, "force_offset", Vector2.ZERO, 1.0) + await anim.animation_finished + layer.disable_crawl = false anim.visible = false player.hide_sprite = false - SceneManager.release_player() + SceneManager.unlock_player() + SceneManager.pop_center_notification(tr("ui_boxcat_press_s")) diff --git a/scene/ground/scene/c02/s12_盒子猫.tscn b/scene/ground/scene/c02/s12_盒子猫.tscn index d8365772..6a91b016 100644 --- a/scene/ground/scene/c02/s12_盒子猫.tscn +++ b/scene/ground/scene/c02/s12_盒子猫.tscn @@ -10,6 +10,7 @@ [node name="Ground" parent="." instance=ExtResource("1_ngo77")] scene_name = "c02_s12" +display_hud = false player_y = 87 footstep_type = "盒子猫" @@ -19,7 +20,7 @@ oneshot_animation = "" [node name="BGSprite2D" parent="Ground" index="1"] texture = ExtResource("3_oskpk") -offset = Vector2(0, -102) +offset = Vector2(0, -103.7) [node name="portal_left" parent="Ground/DeployLayer" index="0"] position = Vector2(152, 56) diff --git a/scene/ground/scene/c02/s13_animation.gd b/scene/ground/scene/c02/s13_animation.gd index f2e981d8..940ad25f 100644 --- a/scene/ground/scene/c02/s13_animation.gd +++ b/scene/ground/scene/c02/s13_animation.gd @@ -17,9 +17,40 @@ func _on_ground_ready() -> void: pass -func final_show(): +func knock_light_door(): + var knock_stream = preload("uid://7of24bqow07e") + var player = SceneManager.get_player() + # 一直循环下去 + for _i in range(100): + SceneManager.freeze_player(0, 6) + await get_tree().create_timer(0.6).timeout + # 被抓时打断 + if not player.visible or player.hide_sprite: + _outtro_show() + break + AudioManager.play_sfx(knock_stream) + await get_tree().create_timer(0.2).timeout + # 被抓时打断 + if not player.visible or player.hide_sprite: + _outtro_show() + break + AudioManager.play_sfx(knock_stream) + await get_tree().create_timer(0.2).timeout + # 被抓时打断 + if not player.visible or player.hide_sprite: + _outtro_show() + break + + +# 收尾演出 +func _outtro_show(): + $"../DeployLayer/Ambush终点光芒互动".enabled = false + # 禁止猪头怪动画播放结束后重开游戏 + $"../DeployLayer/追猫猪头怪_传送".allow_restart_game = false + $"Sfx结尾演出".play() + await get_tree().create_timer(8.0).timeout + $"../盒子猫CanvasLayer".show_footprint() # 盒子猫逃脱成功/被抓走,游戏结束,解锁瞎子卧室门 - $"Sfx开锁声".play() + await get_tree().create_timer(10.0).timeout ArchiveManager.set_global_entry("c02_the_blind_room_unlocked", true) - await get_tree().create_timer(1.0).timeout SceneManager.get_ground_loader().transition_to_scene("c02_s08", "1") diff --git a/scene/ground/scene/c02/s13_盒子猫二楼.tscn b/scene/ground/scene/c02/s13_盒子猫二楼.tscn index 75d87065..b86bd8ad 100644 --- a/scene/ground/scene/c02/s13_盒子猫二楼.tscn +++ b/scene/ground/scene/c02/s13_盒子猫二楼.tscn @@ -1,14 +1,12 @@ -[gd_scene load_steps=13 format=3 uid="uid://bvjutch6jex0v"] +[gd_scene load_steps=11 format=3 uid="uid://bvjutch6jex0v"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_71lma"] [ext_resource type="Script" uid="uid://28ujp27cbdh2" path="res://scene/ground/scene/c02/s13_animation.gd" id="2_w5nqu"] [ext_resource type="AudioStream" uid="uid://ccng5y2fip6mc" path="res://asset/audio/sfx/UI/开锁声.mp3" id="3_g6cxj"] [ext_resource type="Texture2D" uid="uid://dweafdywxenu6" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼楼道.png" id="3_miykx"] -[ext_resource type="Texture2D" uid="uid://b3ootg88b63rb" path="res://asset/art/scene/c02/旧版/s13_院子诡异版/fg_楼梯调色后.png" id="4_4adgb"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_yywsi"] -[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="5_gge8e"] [ext_resource type="Texture2D" uid="uid://csrfyvaufo1wb" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/l_瞎子理发店光.png" id="6_gge8e"] -[ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="7_g6cxj"] +[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_yywsi"] [ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="7_u2fv1"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="9_yywsi"] [ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="10_kmk38"] @@ -17,6 +15,7 @@ [node name="Ground" parent="." instance=ExtResource("1_71lma")] scene_name = "c02_s13" +display_hud = false player_y = 85 footstep_type = "盒子猫" @@ -24,7 +23,7 @@ footstep_type = "盒子猫" script = ExtResource("2_w5nqu") oneshot_animation = "" -[node name="Sfx开锁声" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] +[node name="Sfx结尾演出" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] stream = ExtResource("3_g6cxj") bus = &"game_sfx" script = ExtResource("4_yywsi") @@ -40,55 +39,62 @@ target_scene = "c02_s14" target_portal = "left" [node name="portal_right" parent="Ground/DeployLayer" index="1"] -position = Vector2(776, 55) +position = Vector2(853, 56) +target_scene = "c02_s18" +target_portal = "right" + +[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("6_yywsi")] +position = Vector2(779, 56) +portal_name = "1" target_scene = "c02_s17" target_portal = "right" -[node name="NotePortal" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_gge8e")] -position = Vector2(853, 6) -note_sign_texture = ExtResource("7_g6cxj") -note_key = "notes_无法通过" - [node name="终点光芒" type="Sprite2D" parent="Ground/DeployLayer" index="3"] -modulate = Color(1, 1, 1, 0.34902) -position = Vector2(226, 11) +position = Vector2(226, 14) texture = ExtResource("6_gge8e") -[node name="Ambush猫咪敲门互动" parent="Ground/DeployLayer" index="4" instance=ExtResource("9_yywsi")] +[node name="Ambush终点光芒互动" parent="Ground/DeployLayer" index="4" instance=ExtResource("9_yywsi")] +position = Vector2(214, 11) +trigger_mode = "interact" +one_shot = false +hook_method = "knock_light_door" + +[node name="Ambush猫咪敲门互动" parent="Ground/DeployLayer" index="5" instance=ExtResource("9_yywsi")] position = Vector2(103, 6) trigger_mode = "interact" one_shot = false freeze_time = 1.5 global_method = "c02_cat_play_with_door" -[node name="Ambush猫咪敲门互动2" parent="Ground/DeployLayer" index="5" instance=ExtResource("9_yywsi")] +[node name="Ambush猫咪敲门互动2" parent="Ground/DeployLayer" index="6" instance=ExtResource("9_yywsi")] position = Vector2(539, 6) trigger_mode = "interact" one_shot = false freeze_time = 1.5 global_method = "c02_cat_play_with_door" -[node name="Ambush猫咪敲门互动3" parent="Ground/DeployLayer" index="6" instance=ExtResource("9_yywsi")] +[node name="Ambush猫咪敲门互动3" parent="Ground/DeployLayer" index="7" instance=ExtResource("9_yywsi")] position = Vector2(663, 5) trigger_mode = "interact" one_shot = false freeze_time = 1.5 global_method = "c02_cat_play_with_door" -[node name="追猫猪头怪" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_kmk38")] -position = Vector2(642, 17) +[node name="追猫猪头怪_左侧" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_kmk38")] +position = Vector2(269, 88) +transfer_mode = false -[node name="追猫猪头怪2" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_kmk38")] -position = Vector2(154, 18) +[node name="追猫猪头怪_右侧" parent="Ground/DeployLayer" index="9" instance=ExtResource("10_kmk38")] +position = Vector2(608, 82) +transfer_mode = false + +[node name="追猫猪头怪_传送" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_kmk38")] +position = Vector2(984, 76) [node name="MainPlayer" parent="Ground" index="4"] position = Vector2(41, 73) character = "盒子猫" -[node name="楼梯" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"] -position = Vector2(1267, -4) -texture = ExtResource("4_4adgb") - [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] position = Vector2(-1, -16) scale = Vector2(1.05, 1.05) @@ -96,6 +102,9 @@ scale = Vector2(1.05, 1.05) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(37, 150, 870, 150) +[node name="DirectionalLight2D" parent="Ground" index="8"] +blend_mode = 1 + [node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("7_u2fv1")] visible = false diff --git a/scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn b/scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn index b84b459c..fbe46a56 100644 --- a/scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn +++ b/scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn @@ -1,15 +1,17 @@ -[gd_scene load_steps=6 format=3 uid="uid://d0p4x5st2r315"] +[gd_scene load_steps=7 format=3 uid="uid://d0p4x5st2r315"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_cr1hi"] [ext_resource type="Script" uid="uid://bjisuntcem2lv" path="res://scene/ground/scene/c02/s14_animation.gd" id="2_o47bv"] [ext_resource type="Texture2D" uid="uid://y0e47513ca22" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼内侧楼道(粉笔画).png" id="3_cr1hi"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_o47bv"] [ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_cr1hi"] +[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="5_o47bv"] [node name="S14" type="Node2D"] [node name="Ground" parent="." instance=ExtResource("1_cr1hi")] scene_name = "c02_s14" +display_hud = false player_y = 85 footstep_type = "盒子猫" @@ -37,6 +39,9 @@ portal_name = "1" target_scene = "c02_s16" target_portal = "right" +[node name="追猫猪头怪" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_o47bv")] +position = Vector2(193, 79) + [node name="MainPlayer" parent="Ground" index="4"] position = Vector2(41, 73) character = "盒子猫" @@ -44,6 +49,9 @@ character = "盒子猫" [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(101, 150, 660, 150) +[node name="DirectionalLight2D" parent="Ground" index="8"] +blend_mode = 1 + [node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("5_cr1hi")] visible = false diff --git a/scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn b/scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn index b5dba00a..cdc8c638 100644 --- a/scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn +++ b/scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn @@ -1,16 +1,16 @@ -[gd_scene load_steps=7 format=3 uid="uid://b21p53g42j2nt"] +[gd_scene load_steps=6 format=3 uid="uid://b21p53g42j2nt"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qxg0l"] [ext_resource type="Script" uid="uid://ebaq235h32fd" path="res://scene/ground/scene/c02/s15_animation.gd" id="2_etqjj"] [ext_resource type="Texture2D" uid="uid://c4eb71kdnqy3y" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼内侧楼道(粉笔画).png" id="3_qxg0l"] -[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="4_etqjj"] [ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_isic3"] -[ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="5_qxg0l"] +[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_etqjj"] [node name="S15" type="Node2D"] [node name="Ground" parent="." instance=ExtResource("1_qxg0l")] scene_name = "c02_s15" +display_hud = false player_y = 85 footstep_type = "盒子猫" @@ -23,17 +23,17 @@ texture = ExtResource("3_qxg0l") offset = Vector2(0, -102) [node name="portal_left" parent="Ground/DeployLayer" index="0"] -position = Vector2(160, 57) +position = Vector2(367, 58) +target_scene = "c02_s18" +target_portal = "left" [node name="portal_right" parent="Ground/DeployLayer" index="1"] position = Vector2(496, 57) target_scene = "c02_s14" target_portal = "right" -[node name="NotePortal" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_etqjj")] -position = Vector2(366, 10) -note_sign_texture = ExtResource("5_qxg0l") -note_key = "notes_无法通过" +[node name="追猫猪头怪" parent="Ground/DeployLayer" index="2" instance=ExtResource("6_etqjj")] +position = Vector2(76, 85) [node name="MainPlayer" parent="Ground" index="4"] position = Vector2(64, 73) @@ -46,6 +46,9 @@ position = Vector2(-1, -15) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(125, 150, 660, 150) +[node name="DirectionalLight2D" parent="Ground" index="8"] +blend_mode = 1 + [node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("5_isic3")] visible = false diff --git a/scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn b/scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn index 99114fd2..f0c996f0 100644 --- a/scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn +++ b/scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=7 format=3 uid="uid://22hc3oe8t0id"] +[gd_scene load_steps=8 format=3 uid="uid://22hc3oe8t0id"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_umyae"] [ext_resource type="Script" uid="uid://dx2w5v1erjyls" path="res://scene/ground/scene/c02/s16_animation.gd" id="2_tmnwc"] @@ -6,6 +6,7 @@ [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_qkv3g"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_qkv3g"] [ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_tmnwc"] +[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_fjtlb"] [node name="S16" type="Node2D"] @@ -44,6 +45,8 @@ one_shot = false freeze_time = 1.5 global_method = "c02_cat_play_with_door" +[node name="追猫猪头怪" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_fjtlb")] + [node name="MainPlayer" parent="Ground" index="4"] position = Vector2(235, 73) character = "盒子猫" @@ -55,6 +58,9 @@ position = Vector2(3584, -7) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(37, 150, 655, 150) +[node name="DirectionalLight2D" parent="Ground" index="8"] +blend_mode = 1 + [node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("5_tmnwc")] visible = false diff --git a/scene/ground/scene/c02/s17_盒子猫三楼.tscn b/scene/ground/scene/c02/s17_盒子猫三楼.tscn index 6aef09f7..c60db54c 100644 --- a/scene/ground/scene/c02/s17_盒子猫三楼.tscn +++ b/scene/ground/scene/c02/s17_盒子猫三楼.tscn @@ -12,6 +12,7 @@ [node name="Ground" parent="." instance=ExtResource("1_e436a")] scene_name = "c02_s17" +display_hud = false player_y = 85 footstep_type = "盒子猫" @@ -29,9 +30,9 @@ target_scene = "c02_s16" target_portal = "1" [node name="portal_right" parent="Ground/DeployLayer" index="1"] -position = Vector2(853, 56) +position = Vector2(852, 57) target_scene = "c02_s13" -target_portal = "right" +target_portal = "1" [node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_e436a")] position = Vector2(662, 57) @@ -66,6 +67,9 @@ position = Vector2(3584, -7) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(37, 150, 860, 150) +[node name="DirectionalLight2D" parent="Ground" index="8"] +blend_mode = 1 + [node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("4_n3bxc")] visible = false diff --git a/scene/ground/scene/c02/s18_animation.gd b/scene/ground/scene/c02/s18_animation.gd new file mode 100644 index 00000000..6abbcac0 --- /dev/null +++ b/scene/ground/scene/c02/s18_animation.gd @@ -0,0 +1,17 @@ +@tool +extends AnimationRoot + + +# 覆盖该方法 +func _default_data() -> Dictionary: + return {} + + +func _ready() -> void: + super._ready() + if Engine.is_editor_hint(): + return + + +func _on_ground_ready() -> void: + pass \ No newline at end of file diff --git a/scene/ground/scene/c02/s18_animation.gd.uid b/scene/ground/scene/c02/s18_animation.gd.uid new file mode 100644 index 00000000..7214820c --- /dev/null +++ b/scene/ground/scene/c02/s18_animation.gd.uid @@ -0,0 +1 @@ +uid://b3mak700k2qwt diff --git a/scene/ground/scene/c02/s18_盒子猫一楼.tscn b/scene/ground/scene/c02/s18_盒子猫一楼.tscn new file mode 100644 index 00000000..166d24d4 --- /dev/null +++ b/scene/ground/scene/c02/s18_盒子猫一楼.tscn @@ -0,0 +1,70 @@ +[gd_scene load_steps=7 format=3 uid="uid://d27gv3pbkn4b8"] + +[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_4bsvj"] +[ext_resource type="Script" uid="uid://b3mak700k2qwt" path="res://scene/ground/scene/c02/s18_animation.gd" id="2_4bsvj"] +[ext_resource type="Texture2D" uid="uid://ttocw3erg8jv" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png" id="3_owpnf"] +[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_emyx1"] +[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_xoyld"] +[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="7_8eo7o"] + +[node name="S18" type="Node2D"] + +[node name="Ground" parent="." instance=ExtResource("1_4bsvj")] +scene_name = "c02_s18" +display_hud = false +player_y = 85 +footstep_type = "盒子猫" + +[node name="AnimationPlayer" parent="Ground" index="0"] +script = ExtResource("2_4bsvj") +oneshot_animation = "" + +[node name="BGSprite2D" parent="Ground" index="1"] +texture = ExtResource("3_owpnf") +offset = Vector2(0, -102) + +[node name="portal_left" parent="Ground/DeployLayer" index="0"] +position = Vector2(32, 56) +target_scene = "c02_s15" +target_portal = "left" + +[node name="portal_right" parent="Ground/DeployLayer" index="1"] +position = Vector2(776, 55) +target_scene = "c02_s13" +target_portal = "right" + +[node name="Ambush猫咪敲门互动" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_emyx1")] +position = Vector2(661, 6) +trigger_mode = "interact" +one_shot = false +freeze_time = 1.5 +global_method = "c02_cat_play_with_door" + +[node name="Ambush猫咪敲门互动2" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_emyx1")] +position = Vector2(104, 6) +trigger_mode = "interact" +one_shot = false +freeze_time = 1.5 +global_method = "c02_cat_play_with_door" + +[node name="追猫猪头怪" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_xoyld")] +position = Vector2(-18, 74) + +[node name="MainPlayer" parent="Ground" index="4"] +position = Vector2(235, 73) +character = "盒子猫" +facing_direction = Vector2(1, 0) + +[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] +position = Vector2(3584, -7) + +[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] +points = PackedVector2Array(37, 150, 860, 150) + +[node name="DirectionalLight2D" parent="Ground" index="8"] +blend_mode = 1 + +[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("7_8eo7o")] +visible = false + +[editable path="Ground"] diff --git a/scene/ground/script/c02/s08_画特写.tscn b/scene/ground/script/c02/s08_画特写.tscn new file mode 100644 index 00000000..e2c96512 --- /dev/null +++ b/scene/ground/script/c02/s08_画特写.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://dd8dfoik0ig3y"] + +[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_jgyts"] +[ext_resource type="Texture2D" uid="uid://d1seskftkw08q" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_特写.png" id="2_jo6o1"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop/特写通用遮罩.png" id="3_myoho"] + +[node name="s08_画特写" type="CanvasLayer"] +script = ExtResource("1_jgyts") + +[node name="TextureRect" type="TextureRect" parent="."] +offset_right = 40.0 +offset_bottom = 40.0 +texture = ExtResource("2_jo6o1") + +[node name="遮罩" type="TextureRect" parent="."] +offset_left = -35.0 +offset_top = -3.0 +offset_right = 585.0 +offset_bottom = 313.0 +texture = ExtResource("3_myoho") diff --git a/scene/ground/script/c02/盒子猫canvas_layer.gd b/scene/ground/script/c02/盒子猫canvas_layer.gd index 23b8c730..20bd85ee 100644 --- a/scene/ground/script/c02/盒子猫canvas_layer.gd +++ b/scene/ground/script/c02/盒子猫canvas_layer.gd @@ -1,9 +1,14 @@ extends CanvasLayer +@export var disable_crawl := false: + set(val): + disable_crawl = val + if disable_crawl and is_node_ready(): + down_pressing = false @export var show_cat := false -@export var show_cat_duration := 3.0 +@export var show_cat_duration := 6.0 -@onready var cat := $TextureCat as TextureRect +@onready var cat_fg := $TextureCat as TextureRect func _ready(): @@ -14,10 +19,15 @@ func _ready(): var camera = SceneManager.get_camera_marker() camera.limit_left -= 100 camera.limit_right += 100 - if show_cat: - create_tween().tween_property(cat, "modulate:a", 0.0, show_cat_duration) + camera.limit_top -= 50 + # camera.limit_bottom += 50 + if show_cat and not ArchiveManager.get_global_value("c02_boxcat_skip_intro"): + cat_fg.visible = true + var tween = create_tween() + tween.tween_interval(2.5) + tween.tween_property(cat_fg, "modulate:a", 0.0, show_cat_duration - 3) else: - cat.visible = false + cat_fg.visible = false var down_pressing = false: @@ -26,6 +36,7 @@ var down_pressing = false: down_pressing = val _try_toggle_crawl() +# 用来判断盒子猫是否在下蹲状态 var crawling = false: set(val): crawling = val @@ -57,7 +68,23 @@ func _try_toggle_crawl(): func _unhandled_input(event: InputEvent) -> void: - if event.is_action_pressed("down") and not down_pressing: - down_pressing = true - elif event.is_action_released("down") and down_pressing: - down_pressing = false + if disable_crawl: + return + if event.is_action_pressed("down"): + get_viewport().set_input_as_handled() + if not down_pressing: + down_pressing = true + elif event.is_action_released("down"): + get_viewport().set_input_as_handled() + if down_pressing: + down_pressing = false + + +func show_footprint(): + $TextureFootprint.show() + var frame = $TextureFrame + frame.modulate.a = 0.0 + frame.visible = true + var tween = create_tween() + tween.tween_interval(2.0) + tween.tween_property(frame, "modulate:a", 1.0, 4.0) diff --git a/scene/ground/script/c02/盒子猫canvas_layer.tscn b/scene/ground/script/c02/盒子猫canvas_layer.tscn index 2794e843..1c49a4ec 100644 --- a/scene/ground/script/c02/盒子猫canvas_layer.tscn +++ b/scene/ground/script/c02/盒子猫canvas_layer.tscn @@ -1,8 +1,13 @@ -[gd_scene load_steps=4 format=3 uid="uid://khwxm5qbfj3k"] +[gd_scene load_steps=9 format=3 uid="uid://khwxm5qbfj3k"] [ext_resource type="Texture2D" uid="uid://xhksp8eu3jqy" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_镂空.png" id="1_tgkyo"] [ext_resource type="Script" uid="uid://ngb7wh7mqo0c" path="res://scene/ground/script/c02/盒子猫canvas_layer.gd" id="1_ygosu"] [ext_resource type="Texture2D" uid="uid://d3es8r30qvxdl" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_盒子猫初始特写.png" id="3_ygosu"] +[ext_resource type="Texture2D" uid="uid://tcjm158n8hnw" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/小脚脚印.png" id="4_bc5tk"] +[ext_resource type="Texture2D" uid="uid://ccfbubistf0ov" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_镂空_纸.png" id="5_l6g3a"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop/特写通用遮罩.png" id="6_aeggu"] +[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="6_qw0v6"] +[ext_resource type="Texture2D" uid="uid://dx3i8mchgux1d" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_纸张.png" id="6_rxlkc"] [node name="盒子猫CanvasLayer" type="CanvasLayer"] layer = 0 @@ -19,6 +24,8 @@ texture = ExtResource("1_tgkyo") stretch_mode = 4 [node name="TextureCat" type="TextureRect" parent="."] +visible = false +light_mask = 17 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -26,3 +33,77 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 texture = ExtResource("3_ygosu") + +[node name="遮罩" type="TextureRect" parent="TextureCat"] +layout_mode = 0 +offset_left = -35.0 +offset_top = -3.0 +offset_right = 585.0 +offset_bottom = 313.0 +texture = ExtResource("6_aeggu") + +[node name="TextureFrame" type="TextureRect" parent="."] +visible = false +light_mask = 17 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -50.5 +offset_top = -68.5 +offset_right = 50.5 +offset_bottom = 68.5 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("5_l6g3a") + +[node name="TexturePaper" type="TextureRect" parent="TextureFrame"] +modulate = Color(1, 1, 1, 0.329412) +light_mask = 17 +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -171.0 +offset_top = -98.0 +offset_right = 153.0 +offset_bottom = 105.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("6_rxlkc") + +[node name="遮罩" type="TextureRect" parent="TextureFrame"] +layout_mode = 0 +offset_left = -35.0 +offset_top = -3.0 +offset_right = 585.0 +offset_bottom = 313.0 +texture = ExtResource("6_aeggu") + +[node name="TextureFootprint" type="TextureRect" parent="."] +visible = false +light_mask = 49 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -50.5 +offset_top = -68.5 +offset_right = 50.5 +offset_bottom = 68.5 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("4_bc5tk") + +[node name="PointLight2D" type="PointLight2D" parent="TextureFootprint"] +light_mask = 33 +position = Vector2(45.5, 72.5) +range_item_cull_mask = 32 +texture = ExtResource("6_qw0v6") diff --git a/scene/ground/script/c02/老鼠精画像.tscn b/scene/ground/script/c02/老鼠精画像.tscn index 30be63dc..c953f314 100644 --- a/scene/ground/script/c02/老鼠精画像.tscn +++ b/scene/ground/script/c02/老鼠精画像.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=4 format=3 uid="uid://cdf2qe8l7323i"] +[gd_scene load_steps=3 format=3 uid="uid://cdf2qe8l7323i"] [ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_lpmq3"] -[ext_resource type="Texture2D" uid="uid://cypvxj1vsl5yk" path="res://asset/art/scene/c02/s04_保卫科/花名册/bg_花名册桌面.png" id="2_l77sh"] -[ext_resource type="Texture2D" uid="uid://sx3i3lkt2vfd" path="res://asset/art/scene/c02/s04_保卫科/花名册/花名册封皮.png" id="3_sdpps"] +[ext_resource type="Texture2D" uid="uid://d1xr7g5huv5or" path="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png" id="2_eyynm"] [node name="老鼠精画像" type="CanvasLayer"] script = ExtResource("1_lpmq3") @@ -13,27 +12,4 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("2_l77sh") - -[node name="TextureButton" type="TextureButton" parent="."] -visible = false -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -62.5 -offset_top = -81.5 -offset_right = 62.5 -offset_bottom = 81.5 -grow_horizontal = 2 -grow_vertical = 2 -texture_normal = ExtResource("3_sdpps") - -[node name="Label" type="Label" parent="."] -offset_left = 225.0 -offset_top = 149.0 -offset_right = 345.0 -offset_bottom = 179.0 -theme_override_font_sizes/font_size = 24 -text = "老鼠精画像" +texture = ExtResource("2_eyynm") diff --git a/scene/ground/script/c02/追猫猪头怪.gd b/scene/ground/script/c02/追猫猪头怪.gd index 425c4025..343bb2af 100644 --- a/scene/ground/script/c02/追猫猪头怪.gd +++ b/scene/ground/script/c02/追猫猪头怪.gd @@ -1,35 +1,113 @@ extends Node2D -@export var enabled := true -# 追击开始距离 -@export var start_distance := 400 -# 追击开始方位(左/右) -@export var from_left := true -# 追击速度 -@export var speed := 30 +# transfer_mode 意味着检测 portal_key,然后显示 +@export var transfer_mode := true # 脚步声周期时间 -@export var footstep_wait_time := 0.7 +@export var footstep_wait_time := 0.5 +# 追击速度 +@export var speed := 50 +# 转身范围,超过这个范围/在这个范围内不 hidden 都会转身 +@export var trun_back_detact_x := 150 +# 抓取范围,优先 catch_front 播放 猪头怪抓盒子猫 +# 其次 catch_nearby 播放 猪头怪抓盒子猫后段 +@export var catch_front_x_range := Vector2(55 - 3, 55 + 3) +@export var catch_nearby_x_range := Vector2(-10, 55) +# 观测范围,在观测范围内进入盒子仍旧会被抓 +@export var watching_x := 180 -@onready var sfx_footstep = $SfxFootstep as Sfx +# 允许被抓后重开游戏 +var allow_restart_game := true -var footstep_timer +@onready var sfx_footstep = $SfxFootstep as Sfx2D +@onready var sprite2d = $AnimatedSprite2D as AnimatedSprite2D + +# 检测到猫钻进盒子的过程 +var cat_hiding_detacted = false +var footstep_timer := Timer.new() +var player +var camera +var catty_canvas_layer + +# 运动&检测, 初始为 false +var move_and_detact = false: + set(val): + move_and_detact = val + toggle_footstep_sfx(move_and_detact) + if val and is_node_ready(): + sprite2d.play("猪头怪走路") + # 启用的瞬间先执行检测 + _physics_process(0.0) func _ready() -> void: - var player = SceneManager.get_player() - # 高度对齐 + SceneManager.get_ground().ready.connect(_on_ground_ready) + # 抓盒子猫后,传送回初始场景,跳过其 intro 过程(从纸面逐渐进入黑板粉笔空间) + ArchiveManager.archive.set_global_entry("c02_boxcat_skip_intro", true) + + +func _on_ground_ready(): + player = SceneManager.get_player() + camera = SceneManager.get_camera_marker() + catty_canvas_layer = SceneManager.get_ground().get_node("盒子猫CanvasLayer") + var archive = ArchiveManager.archive as AssembledArchive + var portal = archive.entrance_portal + var chasing_started = ArchiveManager.get_global_value("c02_boxcat_chasing_started", false) + if archive.current_scene == "c02_s13": + # 开始追逐后,禁用二楼两只 + if chasing_started and not transfer_mode: + queue_free() + return + elif not chasing_started: + if transfer_mode: + queue_free() + return + if portal == "left" and name != &"追猫猪头怪_左侧": + queue_free() + return + if portal != "left" and name != &"追猫猪头怪_右侧": + queue_free() + return + # c02_s13 开始追逐; call_deferred 延时设置 + ArchiveManager.archive.set_global_entry.call_deferred( + "c02_boxcat_chasing_started", true + ) + elif not chasing_started: + # 如果没有开始追逐,且不是 13 号场景(二楼),则销毁 + queue_free() + return + # TODO 高度对齐 position.y = player.position.y # 脚步声 timer - footstep_timer = Timer.new() + footstep_timer.one_shot = false footstep_timer.autostart = false footstep_timer.wait_time = footstep_wait_time - add_child(footstep_timer) footstep_timer.timeout.connect(_on_footstep_timer_timeout) + add_child(footstep_timer) + if transfer_mode: + visible = false + var portal_node = ( + SceneManager.get_ground().get_node("DeployLayer/portal_" + portal) as Portal2D + ) + global_position.x = portal_node.global_position.x + # 禁用传送过来的 portal 3s + _disable_portal_a_few_seconds(portal_node) + # 3 秒后传送 + get_tree().create_timer(1.0).timeout.connect(_do_transfer) + if GlobalConfig.DEBUG: + print("猪头怪 Transfer to: " + portal) + else: + move_and_detact = true + + +var footstep_count := 0 func _on_footstep_timer_timeout() -> void: sfx_footstep.play() - # shake camera + footstep_count += 1 + if footstep_count % 2 == 0: + # shake camera + camera.shake_camera(4.0, 5.0) # 启用/禁用脚步声 @@ -40,57 +118,102 @@ func toggle_footstep_sfx(play := true): footstep_timer.stop() -var move_tween: Tween +# 禁用传送过来的 portal 3s +func _disable_portal_a_few_seconds(portal_node: Portal2D): + portal_node.enabled = false + await create_tween().tween_interval(3.0).finished + portal_node.enabled = true -# 开始追击 -func start_chasing() -> void: - toggle_footstep_sfx(true) - # 初始位置与方向 - - -# 停止追击 -func stop_chasing() -> void: - toggle_footstep_sfx(false) +func _do_transfer(): + if player.global_position.x > global_position.x: + _toggle_flip_h() + modulate.a = 0.0 + visible = true + var tween = create_tween() + tween.tween_property(self, "modulate:a", 1.0, 2.0) + await tween.finished + move_and_detact = true # 转身追击 func turn_back(): + move_and_detact = false # 呼吸一帧,然后转身 - pass + sprite2d.play("猪头怪呼吸") + await sprite2d.animation_looped + _toggle_flip_h() + move_and_detact = true -# 正在抓取 -var catching = false -# 检测到猫钻进盒子的过程 -var cat_hiding_detacted = false - -var catch_x_range = Vector2(5, 10) +func _toggle_flip_h(): + sprite2d.flip_h = !sprite2d.flip_h + sprite2d.offset.x = -sprite2d.offset.x -func detact_pos(player_pos: Vector2): - if catching: +# 抓小猫 +func do_catch(front: bool): + move_and_detact = false + SceneManager.freeze_player(0) + # 抓小猫时 lock palyer + SceneManager.lock_player() + # 呼吸一帧,然后抓取 + sprite2d.play("猪头怪呼吸") + await sprite2d.animation_looped + player.hide_sprite = true + if front: + # 优先 catch_front 播放 猪头怪抓盒子猫 + sprite2d.play("猪头怪抓盒子猫") + else: + # 其次 catch_nearby 播放 猪头怪抓盒子猫后段 + sprite2d.play("猪头怪抓盒子猫后段") + # TODO 音效 + SceneManager.pop_debug_dialog_info("音效", "抓取过程。 从捡小猫开始=" + str(front)) + await sprite2d.animation_finished + # 等待动画播放后秒,再检查是否允许重开游戏 + if allow_restart_game: + SceneManager.get_ground_loader().transition_to_scene("c02_s12", "left") + + +func _physics_process(delta: float) -> void: + if not move_and_detact: return - var signed_x_diff = (player_pos.x - position.x) * sign(position.x) + var player_pos = player.global_position - # 检查是否需要转身 + # 玩家到猪头怪面前的距离(有符号) + var signed_x_diff = player_pos.x - global_position.x + # 默认向左, flip_h 后向右 + if not sprite2d.flip_h: + signed_x_diff *= -1 - # 检查盒子猫状态 - cat_hiding_detacted = true - # 如果离开一定范围,重置 catch_box_cat - cat_hiding_detacted = false + # 猫是否在盒子里 + var is_cat_hideen = catty_canvas_layer.crawling + + # 检查隐藏小猫,在观测范围内进入盒子仍旧会被抓 + if signed_x_diff < 0 or signed_x_diff > watching_x: + # 如果离开一定范围,重置 cat_hiding_detacted + cat_hiding_detacted = false + else: + cat_hiding_detacted = cat_hiding_detacted or not is_cat_hideen # 检查是否抓取 - if cat_hiding_detacted and is_in_range(signed_x_diff, catch_x_range): - catching = true + if cat_hiding_detacted or not is_cat_hideen: + if signed_x_diff > catch_front_x_range.x and signed_x_diff < catch_front_x_range.y: + # 优先 catch_front 播放 猪头怪抓盒子猫 + do_catch(true) + return + elif signed_x_diff > catch_nearby_x_range.x and signed_x_diff < catch_nearby_x_range.y: + # 其次 catch_nearby 播放 猪头怪抓盒子猫后段 + do_catch(false) + return - if not catching: + # 检查是否需要转身,超过这个范围/在这个范围内不 hidden 都会转身 + if signed_x_diff < 0 and trun_back_detact_x < -signed_x_diff: + turn_back() return - # 如果距离近,先走到对应位置,然后使用 猪头怪抓盒子猫 - # 距离近,使用 猪头怪抓盒子猫后段 直接抓取 - - - -func is_in_range(x: float, x_range: Vector2) -> bool: - return x > x_range.x and x < x_range.y + # 更新追击位置 + var mov_delta = speed * delta + if not sprite2d.flip_h: + mov_delta *= -1 + global_position.x += mov_delta diff --git a/scene/ground/script/c02/追猫猪头怪.tscn b/scene/ground/script/c02/追猫猪头怪.tscn index 3b2bce26..d4eabeb1 100644 --- a/scene/ground/script/c02/追猫猪头怪.tscn +++ b/scene/ground/script/c02/追猫猪头怪.tscn @@ -19,12 +19,10 @@ max_distance = 600.0 attenuation = 1.7411 bus = &"game_sfx" script = ExtResource("2_35vtd") -loop_round_time = null -debug_play = null metadata/_custom_type_script = "uid://wapo47a1oddf" [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] z_index = 20 sprite_frames = ExtResource("4_3sbui") animation = &"猪头怪呼吸" -autoplay = "猪头怪呼吸" +offset = Vector2(-29, -68)