From 30ee263e9077eb6a48dc3186e9161f43a03cf8dd Mon Sep 17 00:00:00 2001 From: cakipaul Date: Mon, 28 Jul 2025 01:37:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9E=E8=82=89=E6=9C=BA=E6=BC=94=E5=87=BA?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=EF=BC=9B=E7=AC=AC=E4=BA=8C=E7=AB=A0=E7=BB=93?= =?UTF-8?q?=E5=B0=BE=E4=BA=95=E8=BE=B9=E6=BC=94=E5=87=BA=EF=BC=9B=E8=83=96?= =?UTF-8?q?=E5=AD=90=E6=B8=B8=E6=88=8F=EF=BC=9B=E6=9D=8E=E7=99=9E=E6=88=BF?= =?UTF-8?q?=E9=97=B4=E6=9F=9C=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../柜子特写/{药房.png => 药方.png} | Bin .../柜子特写/{药房.png.import => 药方.png.import} | 6 +- .../scene/c03/s07_屠宰间/绞肉机/手没影子.png | Bin 11089 -> 12447 bytes .../c03/s07_屠宰间/绞肉机/手(合并).png | Bin 10341 -> 12944 bytes ..._第二章结尾.ogg => amb_玩家主动选择离开游戏.ogg} | Bin .../amb_玩家主动选择离开游戏.ogg.import | 19 ++ .../环境音/第二章/amb_第二章结尾.ogg.import | 19 -- asset/dialogue/c02.dialogue | 2 +- asset/dialogue/c03.dialogue | 27 ++- asset/dialogue/event_stage.dialogue | 4 + asset/dialogue/item_description.dialogue | 1 + config/animation/entity_sprite_frames.tres | 19 +- config/audio/sfx/footstep_胖子游戏.tres | 9 + manager/scene/global_functor.gd | 30 +++ manager/scene/scene_manager.gd | 11 + scene/character/main_player.gd | 2 +- scene/character/player_animation_config.gd | 9 +- scene/entity/closeup.gd | 1 - scene/ground/ground.gd | 3 +- scene/ground/scene/c02/s03_院子.tscn | 23 +- scene/ground/scene/c03/s01_三楼.gd | 7 +- scene/ground/scene/c03/s01_三楼.tscn | 71 +++---- scene/ground/scene/c03/s04_李癞房间.tscn | 9 +- scene/ground/scene/c03/s05_肉铺.tscn | 6 - scene/ground/scene/c03/s07_屠宰间.gd | 19 +- scene/ground/scene/c03/s07_屠宰间.tscn | 30 ++- scene/ground/scene/c03/s08_囚室.tscn | 6 - scene/ground/scene/c03/s10_胖子游戏1.gd | 12 +- scene/ground/scene/c03/s10_胖子游戏1.tscn | 6 +- scene/ground/scene/c03/s11_胖子游戏2.gd | 5 +- scene/ground/scene/c03/s11_胖子游戏2.tscn | 7 +- scene/ground/scene/c03/s12_胖子游戏3.gd | 7 + scene/ground/scene/c03/s12_胖子游戏3.tscn | 8 +- .../c02/s03_event_2d第二章结束井边演出.gd | 58 +++++ .../c02/s03_event_2d第二章结束井边演出.gd.uid | 1 + .../script/c02/s03_event二章井边回忆.gd.uid | 1 - .../s01_event_2d偷听陆仁.gd} | 0 .../script/c03/s01_event_2d偷听陆仁.gd.uid | 1 + scene/ground/script/c03/s04_closeup柜子.gd | 10 + .../ground/script/c03/s04_closeup柜子.gd.uid | 1 + scene/ground/script/c03/s04_closeup柜子.tscn | 50 +++++ scene/ground/script/c03/s07_closeup绞肉机.gd | 68 +++++- .../ground/script/c03/s07_closeup绞肉机.tscn | 199 +++++++++++------- .../二章结尾回忆.gd} | 41 +++- .../二章结尾回忆.gd.uid} | 0 .../二章结尾回忆.tscn} | 80 ++++--- 46 files changed, 636 insertions(+), 252 deletions(-) rename asset/art/scene/c03/s04_李癞房间/柜子特写/{药房.png => 药方.png} (100%) rename asset/art/scene/c03/s04_李癞房间/柜子特写/{药房.png.import => 药方.png.import} (77%) rename asset/audio/sfx/环境音/{第二章/amb_第二章结尾.ogg => amb_玩家主动选择离开游戏.ogg} (100%) create mode 100644 asset/audio/sfx/环境音/amb_玩家主动选择离开游戏.ogg.import delete mode 100644 asset/audio/sfx/环境音/第二章/amb_第二章结尾.ogg.import create mode 100644 config/audio/sfx/footstep_胖子游戏.tres create mode 100644 scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd create mode 100644 scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd.uid delete mode 100644 scene/ground/script/c02/s03_event二章井边回忆.gd.uid rename scene/ground/script/{c02/s03_event二章井边回忆.gd => c03/s01_event_2d偷听陆仁.gd} (100%) create mode 100644 scene/ground/script/c03/s01_event_2d偷听陆仁.gd.uid create mode 100644 scene/ground/script/c03/s04_closeup柜子.gd create mode 100644 scene/ground/script/c03/s04_closeup柜子.gd.uid create mode 100644 scene/ground/script/c03/s04_closeup柜子.tscn rename scene/ground/script/{c02/s03_closeup二章井边回忆.gd => c03/二章结尾回忆.gd} (52%) rename scene/ground/script/{c02/s03_closeup二章井边回忆.gd.uid => c03/二章结尾回忆.gd.uid} (100%) rename scene/ground/script/{c02/s03_closeup二章井边回忆.tscn => c03/二章结尾回忆.tscn} (68%) diff --git a/asset/art/scene/c03/s04_李癞房间/柜子特写/药房.png b/asset/art/scene/c03/s04_李癞房间/柜子特写/药方.png similarity index 100% rename from asset/art/scene/c03/s04_李癞房间/柜子特写/药房.png rename to asset/art/scene/c03/s04_李癞房间/柜子特写/药方.png diff --git a/asset/art/scene/c03/s04_李癞房间/柜子特写/药房.png.import b/asset/art/scene/c03/s04_李癞房间/柜子特写/药方.png.import similarity index 77% rename from asset/art/scene/c03/s04_李癞房间/柜子特写/药房.png.import rename to asset/art/scene/c03/s04_李癞房间/柜子特写/药方.png.import index 4e86b8eb..08aa2106 100644 --- a/asset/art/scene/c03/s04_李癞房间/柜子特写/药房.png.import +++ b/asset/art/scene/c03/s04_李癞房间/柜子特写/药方.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cxaonpvi5g0xv" -path="res://.godot/imported/药房.png-55350a3c705d29fb1de2dfe982a85f89.ctex" +path="res://.godot/imported/药方.png-a3abfd63df96e3b027eda3642a38f285.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/scene/c03/s04_李癞房间/柜子特写/药房.png" -dest_files=["res://.godot/imported/药房.png-55350a3c705d29fb1de2dfe982a85f89.ctex"] +source_file="res://asset/art/scene/c03/s04_李癞房间/柜子特写/药方.png" +dest_files=["res://.godot/imported/药方.png-a3abfd63df96e3b027eda3642a38f285.ctex"] [params] diff --git a/asset/art/scene/c03/s07_屠宰间/绞肉机/手没影子.png b/asset/art/scene/c03/s07_屠宰间/绞肉机/手没影子.png index 70cb89d610142bea29066bbf7169958c445dc243..a9476ae5be0d8f27697aaac8c60ee585285d545c 100644 GIT binary patch literal 12447 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 literal 11089 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 Xh2Tv`>t+|M00000NkvXXu0mjf8NKII diff --git a/asset/art/scene/c03/s07_屠宰间/绞肉机/手(合并).png b/asset/art/scene/c03/s07_屠宰间/绞肉机/手(合并).png index e27f8c2399c7af4e8a1476231f14fca1b99c4ab0..3a9f2b8670a36b430014050c8c56332ee5d6f9aa 100644 GIT binary patch literal 12944 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 literal 10341 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 Dvkr}H diff --git a/asset/audio/sfx/环境音/第二章/amb_第二章结尾.ogg b/asset/audio/sfx/环境音/amb_玩家主动选择离开游戏.ogg similarity index 100% rename from asset/audio/sfx/环境音/第二章/amb_第二章结尾.ogg rename to asset/audio/sfx/环境音/amb_玩家主动选择离开游戏.ogg diff --git a/asset/audio/sfx/环境音/amb_玩家主动选择离开游戏.ogg.import b/asset/audio/sfx/环境音/amb_玩家主动选择离开游戏.ogg.import new file mode 100644 index 00000000..2762d314 --- /dev/null +++ b/asset/audio/sfx/环境音/amb_玩家主动选择离开游戏.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dlvxxvcx7ga3w" +path="res://.godot/imported/amb_玩家主动选择离开游戏.ogg-488bf805d9b3ffe36290d96d27c2b3d8.oggvorbisstr" + +[deps] + +source_file="res://asset/audio/sfx/环境音/amb_玩家主动选择离开游戏.ogg" +dest_files=["res://.godot/imported/amb_玩家主动选择离开游戏.ogg-488bf805d9b3ffe36290d96d27c2b3d8.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/asset/audio/sfx/环境音/第二章/amb_第二章结尾.ogg.import b/asset/audio/sfx/环境音/第二章/amb_第二章结尾.ogg.import deleted file mode 100644 index 0b90ff07..00000000 --- a/asset/audio/sfx/环境音/第二章/amb_第二章结尾.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://dlvxxvcx7ga3w" -path="res://.godot/imported/amb_第二章结尾.ogg-5b3e4bbb5af26683d4c49855c1c00d2d.oggvorbisstr" - -[deps] - -source_file="res://asset/audio/sfx/环境音/第二章/amb_第二章结尾.ogg" -dest_files=["res://.godot/imported/amb_第二章结尾.ogg-5b3e4bbb5af26683d4c49855c1c00d2d.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/asset/dialogue/c02.dialogue b/asset/dialogue/c02.dialogue index 229a3a5b..16f04d30 100644 --- a/asset/dialogue/c02.dialogue +++ b/asset/dialogue/c02.dialogue @@ -1,7 +1,7 @@ ~ c02_纸人互动_离开公寓 你要离开芦昌公寓吗? [ID:c02_纸人互动_离开公寓1] - 离开 [ID:c02_纸人互动_离开公寓2] - do SceneManager.checkout_index_page() + do GlobalFunctor.c02_exit_from_corridor() - 留下 [ID:c02_纸人互动_离开公寓3] => END diff --git a/asset/dialogue/c03.dialogue b/asset/dialogue/c03.dialogue index be4781ee..f277be0f 100644 --- a/asset/dialogue/c03.dialogue +++ b/asset/dialogue/c03.dialogue @@ -214,20 +214,32 @@ => END -~ c03_绞肉机回忆小蝶和小婵 +~ c03_绞肉机回忆小蝶和小婵1 小小蝶: 喏,侬的玻璃弹子,我帮侬拿回来了。 小蝉: 谢谢。 +=> END + +~ c03_绞肉机回忆小蝶和小婵2 小小蝶: 你的弹子老好看的,我从来没看到过这种样子的。 小蝉: ...侬要欢喜,我就送给侬。 +=> END + +~ c03_绞肉机回忆小蝶和小婵3 小小蝶: 谢谢侬,但是我(阿拉)爸不让我玩这个。 小小蝶: 他老是讲小姑娘要文一点,要有小姑娘的样子,其实...我玻璃弹子打的比他们好的多呢。 小小蝶: ...你(呐)爸爸呢? 小蝉: 嗯...他蛮好的。 小小蝶: 他管侬管的紧哇,是不是经常会的讲‘都是为了侬好’这种闲话啊? +=> END + +~ c03_绞肉机回忆小蝶和小婵4 小蝉: 有时候(辰光)会的,他蛮吓人的。 小蝉: 我、我不想惹(za)他不开心。 小小蝶: 还是当大人好。等我们长大了,就没人再讲咱们是一懂不懂的小朋友了。 小小蝶: 到那个时候,我欢喜撒就组撒、伐想组就伐组,彻底解放了! +=> END + +~ c03_绞肉机回忆小蝶和小婵5 小蝉: 真好啊。 小小蝶: 诶,我马上就要过生日了!侬想...咦,妈妈,侬哪能来了? 小小蝶: 那个,这是我刚刚认识的好朋友,她叫、她叫... @@ -241,14 +253,17 @@ 小蝉: 我要是还活着…就能拉你起来了 小蝶: 方小蝉?我好像…想起你是谁了… 小蝉: 嗯…那你可以…离开这里了吗? - 是否答应小蝉离开这里? - 是 # 黑屏播放结束音效后回到主菜单 - You chose option 1 -- 否 + do GlobalFunctor.c03_final_choose_exit() + => END +- 否 # 继续对白 - You chose option 2 - 小蝶: 你…为什么要…诶? +=> END + +~ c03_井边回忆_无选项 +小蝉: 我要是还活着…就能拉你起来了 +小蝶: 方小蝉?我好像…想起你是谁了… => END \ No newline at end of file diff --git a/asset/dialogue/event_stage.dialogue b/asset/dialogue/event_stage.dialogue index 32712065..20e429fd 100644 --- a/asset/dialogue/event_stage.dialogue +++ b/asset/dialogue/event_stage.dialogue @@ -28,6 +28,10 @@ c03_drug_game: 0:初始化 1:获得药方 2:获得药包 c03_prison_flyer: 0:初始化 1:刮开 # 囚室门锁 c03_prison_lock: 0:初始化 1:打开 +# 绞肉机 +c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束 +# 结尾井边演出 +c03_well_show: 0:初始化 1:准备演出 2:演出完成 => END ~ EventStage_c04 diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 4d8c21a9..db0b061e 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -67,6 +67,7 @@ 药材只能放到碗中或原处 [ID:ui_center_notify_c03放到碗中或原处] 从碗口处放入药材 [ID:ui_center_notify_c03碗口放入药材] 已准备好研磨 [ID:ui_center_notify_c03准备研磨] +缺少转轮,按 E 使用道具 [ID:ui_center_notify_c03绞肉机缺少转轮] 获得道具 [ID:ui_获得道具] diff --git a/config/animation/entity_sprite_frames.tres b/config/animation/entity_sprite_frames.tres index 8e078826..b737ef7a 100644 --- a/config/animation/entity_sprite_frames.tres +++ b/config/animation/entity_sprite_frames.tres @@ -3252,6 +3252,17 @@ animations = [{ "speed": 6.0 }, { "frames": [{ +"duration": 1.5, +"texture": ExtResource("561_absvs") +}, { +"duration": 1.5, +"texture": ExtResource("562_d128g") +}], +"loop": true, +"name": &"c02_吕萍_背靠呼吸", +"speed": 2.0 +}, { +"frames": [{ "duration": 1.0, "texture": ExtResource("561_absvs") }, { @@ -3303,7 +3314,7 @@ animations = [{ "duration": 1.0, "texture": ExtResource("577_y1k3y") }], -"loop": true, +"loop": false, "name": &"c02_吕萍_背靠起身", "speed": 6.0 }, { @@ -4655,7 +4666,7 @@ animations = [{ }], "loop": false, "name": &"c03_胖子游戏_掉下来", -"speed": 7.0 +"speed": 6.0 }, { "frames": [{ "duration": 1.0, @@ -4724,7 +4735,7 @@ animations = [{ }], "loop": true, "name": &"c03_胖子游戏_瘦子走", -"speed": 5.0 +"speed": 6.0 }, { "frames": [{ "duration": 1.0, @@ -4747,5 +4758,5 @@ animations = [{ }], "loop": true, "name": &"c03_胖子游戏_瘦子跑", -"speed": 5.0 +"speed": 6.0 }] diff --git a/config/audio/sfx/footstep_胖子游戏.tres b/config/audio/sfx/footstep_胖子游戏.tres new file mode 100644 index 00000000..919085d2 --- /dev/null +++ b/config/audio/sfx/footstep_胖子游戏.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="AudioStreamCollection" load_steps=4 format=3 uid="uid://iyo6a8rv35rq"] + +[ext_resource type="AudioStream" uid="uid://cg5sn4mdaxrqf" path="res://asset/audio/effect/footstep/footstep_grass_001.ogg" id="1_vboyp"] +[ext_resource type="AudioStream" uid="uid://cy3t548f0ojfp" path="res://asset/audio/effect/footstep/footstep_grass_000.ogg" id="2_evogo"] +[ext_resource type="Script" uid="uid://bgxi2pq6x5d88" path="res://config/audio/audio_stream_collection.gd" id="3_soveh"] + +[resource] +script = ExtResource("3_soveh") +audios = Array[AudioStream]([ExtResource("1_vboyp"), ExtResource("2_evogo")]) diff --git a/manager/scene/global_functor.gd b/manager/scene/global_functor.gd index ad0cfee5..06469f27 100644 --- a/manager/scene/global_functor.gd +++ b/manager/scene/global_functor.gd @@ -100,3 +100,33 @@ func c03_get_paper_coin(_node = null) -> bool: SceneManager.enable_prop_item("prop_3个纸铜钱") printerr("c03_get_paper_coin: stage should not be greater than 3, but got %d" % stage) return false + + +# amb_玩家主动选择离开游戏 8.46s +var stream_exit_by_choice = preload("uid://dlvxxvcx7ga3w") + +func c02_exit_from_corridor() -> void: + SceneManager.lock_player() + if not ArchiveManager.get_global_value("has_exited_by_player_choice"): + ArchiveManager.set_global_entry("has_exited_by_player_choice", true) + # 首次选择时,播放离开音效 + SceneManager.black_transition(0.7, 10.0) + # amb_玩家主动选择离开游戏 8.46s + AudioManager.play_sfx(stream_exit_by_choice) + await Util.wait(8.5) + SceneManager.unlock_player() + SceneManager.checkout_index_page() + + +func c03_final_choose_exit() -> void: + EventManager.set_stage_if_greater("c03_well_show", 2) + ArchiveManager.set_global_entry("has_exited_by_player_choice", true) + # 黑屏播放结束音效后回到主菜单 + # 如果出公寓做过选择,此处就不出现选择 + SceneManager.lock_player() + SceneManager.black_transition(0.7, 10.0) + AudioManager.play_sfx(stream_exit_by_choice) + await Util.wait(8.5) + SceneManager.unlock_player() + SceneManager.checkout_index_page() + diff --git a/manager/scene/scene_manager.gd b/manager/scene/scene_manager.gd index d48879a3..1490a27e 100644 --- a/manager/scene/scene_manager.gd +++ b/manager/scene/scene_manager.gd @@ -76,6 +76,17 @@ func get_player() -> MainPlayer: return null +func pause_and_hide_player_sprite(duration := 2.0) -> void: + var player = get_player() + if player: + player.toggle_pause_state(true) + player.hide_sprite = true + if duration > 0: + await Util.wait(duration) + player.hide_sprite = false + player.toggle_pause_state(false) + + func resettle_player(global_position_x: float, direction: Vector2) -> void: var player = get_player() if player: diff --git a/scene/character/main_player.gd b/scene/character/main_player.gd index a79a5b2e..b4da0865 100644 --- a/scene/character/main_player.gd +++ b/scene/character/main_player.gd @@ -45,7 +45,7 @@ signal animation_finished if is_node_ready(): _check_character_runtime_status() if val > 3: - freeze_player(1, val, true) + player_action(val, false) # 使用 new,方便在 editor 中刷新新值 var current_animation_config: Dictionary diff --git a/scene/character/player_animation_config.gd b/scene/character/player_animation_config.gd index 29595ebf..5310d77a 100644 --- a/scene/character/player_animation_config.gd +++ b/scene/character/player_animation_config.gd @@ -51,6 +51,9 @@ var ANIMATION_CONFIG = { 16: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c00_吕萍_记笔记_right"], 17: [&"", Vector2.ONE, Vector2(0, -50.0), &"c02_吕萍_头痛蹲下_左", &"c02_吕萍_头痛蹲下_右"], 18: [&"", Vector2.ONE, Vector2(-37, -24.0), &"", &"c03_吕萍_被吓到摔倒"], + # 第二章井边站起来 + 19: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身", &""], + 20: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠呼吸", &""], }, "吕萍爬行": { @@ -187,11 +190,11 @@ var ANIMATION_CONFIG = { "胖子游戏": { "scale": Vector2(1, 1), - "speed_walking": 55.0, + "speed_walking": 70.0, "can_run": true, - "speed_runnig": 100.0, + "speed_runnig": 110.0, "walk_footstep": 0.5, - "run_footstep": 7.0 / 9.0 / 2.0, + "run_footstep": 0.5, "os_height": 70.0, "light_height": 20.0, # 如果使用 auto,就会自动以最低点为基准 diff --git a/scene/entity/closeup.gd b/scene/entity/closeup.gd index 28293835..2baccf39 100644 --- a/scene/entity/closeup.gd +++ b/scene/entity/closeup.gd @@ -27,7 +27,6 @@ func hold_cancel_before_exit() -> void: _holding_cancel_before_exit = true - # 可以直接调用 func display() -> void: if current_child: diff --git a/scene/ground/ground.gd b/scene/ground/ground.gd index 63edaa2a..ed9b6622 100644 --- a/scene/ground/ground.gd +++ b/scene/ground/ground.gd @@ -13,6 +13,7 @@ const FOOTSTEP_AUDIO = { "室外": preload("res://config/audio/sfx/footstep_室外.tres"), "crawling": preload("res://config/audio/sfx/footstep_crawling.tres"), "盒子猫": preload("res://config/audio/sfx/footstep_meow.tres"), + "胖子游戏": preload("res://config/audio/sfx/footstep_胖子游戏.tres"), } # Exports @@ -33,7 +34,7 @@ var default_portal := "left" if is_node_ready(): reset_player_y() @export_group("Sound") -@export_enum("none", "ghost", "硬地面", "室外", "crawling", "盒子猫") var footstep_type: String = "硬地面": +@export_enum("none", "ghost", "硬地面", "室外", "crawling", "盒子猫", "胖子游戏") var footstep_type: String = "硬地面": set(val): footstep_type = val if is_node_ready(): diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index ecec6d8e..b4c7c3b9 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=100 format=3 uid="uid://djc2uaefhmu7"] +[gd_scene load_steps=99 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_院子.gd" id="2_dt5aj"] @@ -72,8 +72,7 @@ [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="65_rgrem"] [ext_resource type="SpriteFrames" uid="uid://vadgcpixpkj1" path="res://asset/art/gif/c03_一楼胖李癞/c03_一楼胖李癞_frames.tres" id="66_deuom"] [ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="67_h2lyo"] -[ext_resource type="Script" uid="uid://c6bdubwu8phvc" path="res://scene/ground/script/c02/s03_event二章井边回忆.gd" id="72_18q2p"] -[ext_resource type="PackedScene" uid="uid://y6em3na3d05d" path="res://scene/ground/script/c02/s03_closeup二章井边回忆.tscn" id="73_lt8c0"] +[ext_resource type="Script" uid="uid://cts4fvgir2lur" path="res://scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd" id="72_18q2p"] [sub_resource type="Animation" id="Animation_rt2lh"] length = 0.001 @@ -1288,13 +1287,19 @@ move_configs = Array[Dictionary]([{ debug_mov_animation = "辫子癞子_走路_右" metadata/_custom_type_script = "uid://cphfob11f7atx" -[node name="Event二章井边回忆" type="Node2D" parent="Ground/DeployLayer" index="38"] +[node name="Event2D第二章结束井边演出" type="Node2D" parent="Ground/DeployLayer" index="38"] +position = Vector2(2100, 0) script = ExtResource("72_18q2p") +event_name = &"c03_well_show" +event_stages = Array[int]([1]) metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" -[node name="Closeup二章井边回忆" parent="Ground/DeployLayer/Event二章井边回忆" instance=ExtResource("23_81juy")] -packed_scene = ExtResource("73_lt8c0") -quit_closeup_on_cancel = false +[node name="Pro小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D第二章结束井边演出"] +position = Vector2(88, 54) +sprite_frames = ExtResource("39_rnk1v") +animation = &"小婵呼吸" +script = ExtResource("67_h2lyo") +metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="PointLight2D" type="PointLight2D" parent="Ground/AmbientLayer" index="0"] light_mask = 4 @@ -1305,9 +1310,9 @@ range_item_cull_mask = 4 texture = SubResource("GradientTexture2D_plfv5") [node name="MainPlayer" parent="Ground" index="5"] -position = Vector2(2128, 93) +position = Vector2(2236, 93) player_movement_rect = Rect2(17, -158, 2233, 316) -facing_direction = Vector2(1, 0) +facing_direction = Vector2(-1, -1) [node name="CameraFocusMarker" parent="Ground" index="6"] limit_right = 2380 diff --git a/scene/ground/scene/c03/s01_三楼.gd b/scene/ground/scene/c03/s01_三楼.gd index 471030f6..b38db26f 100644 --- a/scene/ground/scene/c03/s01_三楼.gd +++ b/scene/ground/scene/c03/s01_三楼.gd @@ -34,8 +34,9 @@ func eavesdrop_luren() -> void: # 对话 DialogueManager.show_dialogue_balloon(dialogue_c03, "c03_s01_三楼偷听陆仁小蝶") await DialogueManager.dialogue_ended - await Util.wait(1) - SceneManager.player_action(14, true) + await Util.wait(1.0) + EventManager.set_stage("c03_invite_xchan_supper", 1) await Util.wait(1.5) + SceneManager.player_action(14, true) await SceneManager.pop_os_with_str("c03_s01_偷听完3012") - SceneManager.unlock_player() + SceneManager.unlock_player() \ No newline at end of file diff --git a/scene/ground/scene/c03/s01_三楼.tscn b/scene/ground/scene/c03/s01_三楼.tscn index 4b4a1f89..66383786 100644 --- a/scene/ground/scene/c03/s01_三楼.tscn +++ b/scene/ground/scene/c03/s01_三楼.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=32 format=3 uid="uid://dlrbhfvnd3cs0"] +[gd_scene load_steps=33 format=3 uid="uid://dlrbhfvnd3cs0"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_eb2op"] [ext_resource type="Script" uid="uid://c0rh2n36ait6i" path="res://scene/ground/scene/c03/s01_三楼.gd" id="2_ow08b"] @@ -23,20 +23,10 @@ [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="18_0xq6i"] [ext_resource type="Texture2D" uid="uid://dagy852q0fduh" path="res://asset/art/scene/c03/s01_三楼/e_治病木牌.png" id="19_hmme5"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="20_hmme5"] +[ext_resource type="Script" uid="uid://dekt5dv2je54r" path="res://scene/ground/script/c03/s01_event_2d偷听陆仁.gd" id="22_axwjj"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] -[sub_resource type="Gradient" id="Gradient_krvxg"] -interpolation_mode = 2 -offsets = PackedFloat32Array(0, 0.693168, 1) -colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) - -[sub_resource type="GradientTexture2D" id="GradientTexture2D_4rrrd"] -gradient = SubResource("Gradient_krvxg") -height = 100 -fill = 2 -fill_from = Vector2(0.5, 0.5) - [sub_resource type="AtlasTexture" id="AtlasTexture_chbaa"] atlas = ExtResource("11_4y4hg") region = Rect2(0, 0, 6, 14) @@ -73,6 +63,17 @@ animations = [{ "speed": 10.0 }] +[sub_resource type="Gradient" id="Gradient_krvxg"] +interpolation_mode = 2 +offsets = PackedFloat32Array(0, 0.693168, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_4rrrd"] +gradient = SubResource("Gradient_krvxg") +height = 100 +fill = 2 +fill_from = Vector2(0.5, 0.5) + [node name="S01" type="Node2D"] metadata/_edit_horizontal_guides_ = [98.0] @@ -144,23 +145,10 @@ event_name = &"c03_s01_meat_put" event_stages = Array[int]([1]) metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" -[node name="窗口闪动" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D放肉后"] -position = Vector2(434, -15) -sprite_frames = ExtResource("10_krvxg") -animation = &"三楼窗户动画" -autoplay = "三楼窗户动画" -frame = 5 -frame_progress = 0.482491 - -[node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/Event2D放肉后/窗口闪动"] -scale = Vector2(1.12987, 0.87752) -texture = SubResource("GradientTexture2D_4rrrd") - [node name="CloseupDemo公告" parent="Ground/DeployLayer/Event2D放肉后" instance=ExtResource("6_obrgj")] position = Vector2(573, -6) texture = ExtResource("11_amci2") packed_scene = ExtResource("7_d27sg") -pause_sfx_on_display = null [node name="EventBinder" type="Node" parent="Ground/DeployLayer/Event2D放肉后/CloseupDemo公告"] script = ExtResource("6_yaa68") @@ -265,18 +253,32 @@ scale = Vector2(0.8, 0.8) texture = ExtResource("5_fnwup") flip_h = true -[node name="Ambush偷听陆仁" parent="Ground/DeployLayer" index="9" instance=ExtResource("20_hmme5")] +[node name="Event2D偷听陆仁" type="Node2D" parent="Ground/DeployLayer" index="9"] +script = ExtResource("22_axwjj") +event_name = &"c03_invite_xchan_supper" +event_stages = Array[int]([0]) +pre_event_name = &"c03_s01_meat_put" +pre_event_stages = Array[int]([1]) +metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" + +[node name="窗口闪动" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D偷听陆仁"] +position = Vector2(434, -15) +sprite_frames = ExtResource("10_krvxg") +animation = &"三楼窗户动画" +autoplay = "三楼窗户动画" +frame = 5 +frame_progress = 0.482491 + +[node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/Event2D偷听陆仁/窗口闪动"] +scale = Vector2(1.12987, 0.87752) +texture = SubResource("GradientTexture2D_4rrrd") + +[node name="Ambush偷听陆仁" parent="Ground/DeployLayer/Event2D偷听陆仁" instance=ExtResource("20_hmme5")] position = Vector2(434, 9) trigger_mode = "interact" +one_shot = false hook_method = "eavesdrop_luren" -[node name="EventBinder" type="Node" parent="Ground/DeployLayer/Ambush偷听陆仁"] -script = ExtResource("6_yaa68") -updater_event = &"c03_s01_meat_put" -trigger_event = &"c03_invite_xchan_supper" -trigger_mode = "triggered" -metadata/_custom_type_script = "uid://0wjaho6qkg6s" - [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(34, 98) catty_light_energy = 0.5 @@ -284,10 +286,7 @@ player_movement_rect = Rect2(30, -158, 693, 316) facing_direction = Vector2(1, 0) [node name="CameraFocusMarker" parent="Ground" index="6"] -limit_left = 0 -limit_top = -158 limit_right = 749 -limit_bottom = 158 [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] texture = ExtResource("5_ow08b") diff --git a/scene/ground/scene/c03/s04_李癞房间.tscn b/scene/ground/scene/c03/s04_李癞房间.tscn index d24f6770..0563a6dd 100644 --- a/scene/ground/scene/c03/s04_李癞房间.tscn +++ b/scene/ground/scene/c03/s04_李癞房间.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=26 format=3 uid="uid://c7c88hg2cl1j7"] +[gd_scene load_steps=27 format=3 uid="uid://c7c88hg2cl1j7"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_byh4s"] [ext_resource type="Script" uid="uid://byw2swgt783oa" path="res://scene/ground/scene/c03/s04_李癞房间.gd" id="2_vjibx"] @@ -23,6 +23,7 @@ [ext_resource type="AudioStream" uid="uid://qvy062jtmtbn" path="res://asset/audio/mixkit/mixkit-man-coughing-2224.ogg" id="17_tk48j"] [ext_resource type="AudioStream" uid="uid://copg4yfv32fgn" path="res://asset/audio/mixkit/mixkit-man-coughing-loud-2222.ogg" id="18_q7jtk"] [ext_resource type="AudioStream" uid="uid://cvp1j6211ghtj" path="res://asset/audio/mixkit/mixkit-sick-male-cough-2225.ogg" id="19_27fnr"] +[ext_resource type="PackedScene" uid="uid://b6ymfeft65wof" path="res://scene/ground/script/c03/s04_closeup柜子.tscn" id="23_q7jtk"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] @@ -150,6 +151,12 @@ unique_name_in_owner = true position = Vector2(76, 42) prop_key = "prop_药方" +[node name="Closeup柜子" parent="Ground/DeployLayer" index="9" instance=ExtResource("6_dbkw8")] +unique_name_in_owner = true +position = Vector2(104, 41) +packed_scene = ExtResource("23_q7jtk") +sign_mark_offset = Vector2(0, -11.02) + [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(63, 100) catty_light_energy = 0.5 diff --git a/scene/ground/scene/c03/s05_肉铺.tscn b/scene/ground/scene/c03/s05_肉铺.tscn index c7227c03..659ed38d 100644 --- a/scene/ground/scene/c03/s05_肉铺.tscn +++ b/scene/ground/scene/c03/s05_肉铺.tscn @@ -66,12 +66,6 @@ catty_light_energy = 0.5 player_movement_rect = Rect2(26, -158, 519, 316) facing_direction = Vector2(1, 0) -[node name="CameraFocusMarker" parent="Ground" index="6"] -limit_left = 0 -limit_top = -158 -limit_right = 564 -limit_bottom = 158 - [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] position = Vector2(8.5, 0) texture = ExtResource("5_l22xv") diff --git a/scene/ground/scene/c03/s07_屠宰间.gd b/scene/ground/scene/c03/s07_屠宰间.gd index 21463fc3..06c819fd 100644 --- a/scene/ground/scene/c03/s07_屠宰间.gd +++ b/scene/ground/scene/c03/s07_屠宰间.gd @@ -14,13 +14,28 @@ func _ready() -> void: #region node_reference +var closeup绞肉机: Closeup2D #endregion # 读取设置变量名 func _setup_node_reference() -> void: - pass + closeup绞肉机 = $"../DeployLayer/Closeup绞肉机" func _on_ground_ready() -> void: - pass + # c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束 + if EventManager.get_stage("c03_meat_grinder") == 2: + # 进入演出 + SceneManager.get_player().global_position.x = $"../DeployLayer/portal_2".global_position.x + _grinder_show() + + +func _grinder_show() -> void: + # 胖子从屠宰间桌子左侧的上方掉落,站起看向右侧 + # 镜头移动至桌子,棺材怪正在切桌上的肉块,桌面右边放着绞肉机。 + # 右侧传来小蝉(小女孩)的笑声(or喊声),棺材怪被吸引离开,向右侧爬去 + # 同时画面移回左侧,胖子不见,小蝶站在胖子原先掉落的位置(玩家可以开始操控) + # 小蝉站在绞肉机前,玩家走近后小蝉消失。 + # TODO 演出 + closeup绞肉机.display() diff --git a/scene/ground/scene/c03/s07_屠宰间.tscn b/scene/ground/scene/c03/s07_屠宰间.tscn index c21c5933..772ebdb2 100644 --- a/scene/ground/scene/c03/s07_屠宰间.tscn +++ b/scene/ground/scene/c03/s07_屠宰间.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=18 format=3 uid="uid://c67732f2we13j"] +[gd_scene load_steps=20 format=3 uid="uid://c67732f2we13j"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_oxs1j"] -[ext_resource type="Script" path="res://scene/ground/scene/c03/s07_屠宰间.gd" id="2_oxs1j"] +[ext_resource type="Script" uid="uid://dh5vxhnfnua3q" path="res://scene/ground/scene/c03/s07_屠宰间.gd" id="2_oxs1j"] [ext_resource type="AudioStream" uid="uid://b2mudqvq1dmng" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里1.ogg" id="3_jfgnj"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_t8dkf"] [ext_resource type="Texture2D" uid="uid://btdwnxrmipv4h" path="res://asset/art/scene/c03/s07_屠宰间/fg_屠宰间前景.png" id="5_0gnm3"] @@ -13,9 +13,11 @@ [ext_resource type="Script" uid="uid://bngxf1rrcqxri" path="res://scene/entity/ux/swing_2d.gd" id="7_dly68"] [ext_resource type="Texture2D" uid="uid://bp52cb7wtt7ql" path="res://asset/art/scene/c03/s07_屠宰间/长桌.png" id="7_es8d4"] [ext_resource type="Texture2D" uid="uid://cjau5qsqql2qu" path="res://asset/art/scene/c03/s07_屠宰间/和谐版/和谐版ren.png" id="8_dly68"] +[ext_resource type="Texture2D" uid="uid://vp6jay4dfd3" path="res://asset/art/scene/c03/s07_屠宰间/绞肉机.png" id="8_thx4k"] [ext_resource type="Texture2D" uid="uid://v4icuu7bhjwb" path="res://asset/art/scene/c03/s07_屠宰间/人肉3.png" id="9_jfgnj"] [ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="14_48a3r"] [ext_resource type="PackedScene" uid="uid://5bubirvt8ep8" path="res://scene/ground/script/c03/s07_closeup绞肉机.tscn" id="15_48a3r"] +[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="17_e1lvl"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] @@ -70,11 +72,20 @@ target_scene = "c03_s09" target_portal = "left" status = "opened" -[node name="长桌" type="Sprite2D" parent="Ground/DeployLayer" index="3"] +[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("6_t8dkf")] +position = Vector2(316, 34) +debug_note = "胖子游戏结束,回到绞肉机前" +portal_name = "2" + +[node name="长桌" type="Sprite2D" parent="Ground/DeployLayer" index="4"] position = Vector2(358, 53) texture = ExtResource("7_es8d4") -[node name="悬挂物" type="Node2D" parent="Ground/DeployLayer" index="4"] +[node name="绞肉机" type="Sprite2D" parent="Ground/DeployLayer/长桌"] +position = Vector2(-41, -34) +texture = ExtResource("8_thx4k") + +[node name="悬挂物" type="Node2D" parent="Ground/DeployLayer" index="5"] [node name="人" type="Node2D" parent="Ground/DeployLayer/悬挂物"] position = Vector2(-64, -2) @@ -104,10 +115,19 @@ script = ExtResource("5_vyti6") original_texture = ExtResource("9_jfgnj") metadata/_custom_type_script = "uid://dt8cfnm2og4h" -[node name="Closeup绞肉机" parent="Ground/DeployLayer" index="5" instance=ExtResource("14_48a3r")] +[node name="Closeup绞肉机" parent="Ground/DeployLayer" index="6" instance=ExtResource("14_48a3r")] +unique_name_in_owner = true +position = Vector2(316, 21) packed_scene = ExtResource("15_48a3r") quit_closeup_on_cancel = false +[node name="EventBinder" type="Node" parent="Ground/DeployLayer/Closeup绞肉机"] +script = ExtResource("17_e1lvl") +updater_event = &"c03_meat_grinder" +updater_stage_mode = "exclude" +updater_stages = Array[int]([3]) +metadata/_custom_type_script = "uid://0wjaho6qkg6s" + [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(63, 95) catty_light_energy = 0.5 diff --git a/scene/ground/scene/c03/s08_囚室.tscn b/scene/ground/scene/c03/s08_囚室.tscn index 700b5a91..56e2034b 100644 --- a/scene/ground/scene/c03/s08_囚室.tscn +++ b/scene/ground/scene/c03/s08_囚室.tscn @@ -212,12 +212,6 @@ catty_light_energy = 0.5 player_movement_rect = Rect2(37, -158, 502, 316) facing_direction = Vector2(1, 0) -[node name="CameraFocusMarker" parent="Ground" index="6"] -limit_left = 0 -limit_top = -158 -limit_right = 564 -limit_bottom = 158 - [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] position = Vector2(8, 0) texture = ExtResource("5_i2s3v") diff --git a/scene/ground/scene/c03/s10_胖子游戏1.gd b/scene/ground/scene/c03/s10_胖子游戏1.gd index 21463fc3..422d0b60 100644 --- a/scene/ground/scene/c03/s10_胖子游戏1.gd +++ b/scene/ground/scene/c03/s10_胖子游戏1.gd @@ -4,7 +4,7 @@ extends AnimationRoot # 覆盖该方法 func _default_data() -> Dictionary: - return {} + return {"has_entered": false} func _ready() -> void: @@ -23,4 +23,12 @@ func _setup_node_reference() -> void: func _on_ground_ready() -> void: - pass + _check_first_enter() + + +func _check_first_enter() -> void: + if not data["has_entered"]: + SceneManager.lock_player(0, 5, true) + set_data("has_entered", true) + await SceneManager.pause_and_hide_player_sprite(1.5) + SceneManager.unlock_player() \ No newline at end of file diff --git a/scene/ground/scene/c03/s10_胖子游戏1.tscn b/scene/ground/scene/c03/s10_胖子游戏1.tscn index dc1fb865..4fc029ea 100644 --- a/scene/ground/scene/c03/s10_胖子游戏1.tscn +++ b/scene/ground/scene/c03/s10_胖子游戏1.tscn @@ -17,6 +17,7 @@ metadata/_edit_horizontal_guides_ = [-627.0] scene_name = "c03_s10" display_hud = false player_y = 60 +footstep_type = "胖子游戏" [node name="AnimationPlayer" parent="Ground" index="0"] libraries = { @@ -47,9 +48,6 @@ texture = ExtResource("6_or232") [node name="portal_left" parent="Ground/DeployLayer" index="0"] position = Vector2(77, 11) -target_scene = "c03_s01" -target_portal = "1" -status = "opened" [node name="portal_right" parent="Ground/DeployLayer" index="1"] position = Vector2(963, 50) @@ -59,7 +57,7 @@ target_portal = "left" [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(63, 95) character = "胖子游戏" -player_movement_rect = Rect2(80, -158, 394, 316) +player_movement_rect = Rect2(30, -158, 948, 316) facing_direction = Vector2(1, 0) [node name="CameraFocusMarker" parent="Ground" index="6"] diff --git a/scene/ground/scene/c03/s11_胖子游戏2.gd b/scene/ground/scene/c03/s11_胖子游戏2.gd index e82d797e..532b2e6b 100644 --- a/scene/ground/scene/c03/s11_胖子游戏2.gd +++ b/scene/ground/scene/c03/s11_胖子游戏2.gd @@ -28,6 +28,7 @@ func _on_ground_ready() -> void: func _check_first_enter() -> void: if not data["has_entered"]: - await SceneManager.lock_player(0, 6, true) - SceneManager.unlock_player() + SceneManager.lock_player(0, 6, true) set_data("has_entered", true) + await SceneManager.pause_and_hide_player_sprite(1.5) + SceneManager.unlock_player() \ No newline at end of file diff --git a/scene/ground/scene/c03/s11_胖子游戏2.tscn b/scene/ground/scene/c03/s11_胖子游戏2.tscn index e711360a..d424342b 100644 --- a/scene/ground/scene/c03/s11_胖子游戏2.tscn +++ b/scene/ground/scene/c03/s11_胖子游戏2.tscn @@ -21,6 +21,7 @@ metadata/_edit_horizontal_guides_ = [-627.0] scene_name = "c03_s11" display_hud = false player_y = 100 +footstep_type = "胖子游戏" [node name="AnimationPlayer" parent="Ground" index="0"] libraries = { @@ -55,12 +56,12 @@ texture = ExtResource("6_hx2uj") [node name="portal_left" parent="Ground/DeployLayer" index="0"] position = Vector2(304, -6) -target_scene = "c03_s01" -target_portal = "1" -status = "opened" +debug_note = "不要移动,已与爬出出口的动画位置对齐" [node name="portal_right" parent="Ground/DeployLayer" index="1"] position = Vector2(1392, -9) +target_scene = "c03_s12" +target_portal = "left" [node name="Pro探子" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="2"] position = Vector2(818, -27) diff --git a/scene/ground/scene/c03/s12_胖子游戏3.gd b/scene/ground/scene/c03/s12_胖子游戏3.gd index ae46649f..3742c0ff 100644 --- a/scene/ground/scene/c03/s12_胖子游戏3.gd +++ b/scene/ground/scene/c03/s12_胖子游戏3.gd @@ -27,6 +27,7 @@ func _on_ground_ready() -> void: func eat_meat() -> void: + SceneManager.lock_player() $"../DeployLayer/Ambush吃肉".enabled = false await SceneManager.get_player().walk_to_x(850.0).finished # 第一帧没有瘦子,后面才有 @@ -35,4 +36,10 @@ func eat_meat() -> void: sprite.play() sprite.frame = 1 player.hide_sprite = true + await sprite.animation_finished + SceneManager.unlock_player() + # c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束 + EventManager.set_stage_if_greater("c03_meat_grinder", 2) + SceneManager.get_ground_loader().transition_to_scene("c03_s07", "2") + diff --git a/scene/ground/scene/c03/s12_胖子游戏3.tscn b/scene/ground/scene/c03/s12_胖子游戏3.tscn index cfc2c5a6..a56b9fe7 100644 --- a/scene/ground/scene/c03/s12_胖子游戏3.tscn +++ b/scene/ground/scene/c03/s12_胖子游戏3.tscn @@ -18,6 +18,7 @@ metadata/_edit_horizontal_guides_ = [-627.0] scene_name = "c03_s12" display_hud = false player_y = 63 +footstep_type = "胖子游戏" [node name="AnimationPlayer" parent="Ground" index="0"] libraries = { @@ -43,9 +44,6 @@ offset = Vector2(0, -158) [node name="portal_left" parent="Ground/DeployLayer" index="0"] position = Vector2(69, 21) -target_scene = "c03_s01" -target_portal = "1" -status = "opened" [node name="portal_right" parent="Ground/DeployLayer" index="1"] position = Vector2(1392, -9) @@ -68,11 +66,11 @@ hook_method = "eat_meat" [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(69, 95) character = "胖子游戏" -player_movement_rect = Rect2(290, -158, 1110, 316) +player_movement_rect = Rect2(30, -158, 820, 316) facing_direction = Vector2(1, 0) [node name="CameraFocusMarker" parent="Ground" index="6"] -limit_right = 1500 +limit_right = 1200 [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] offset = Vector2(0, 50) diff --git a/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd b/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd new file mode 100644 index 00000000..d67b16ea --- /dev/null +++ b/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd @@ -0,0 +1,58 @@ +@tool +extends Event2D + +# var prev_stage := 0 +# var stage := 0 + + +func _ready() -> void: + super._ready() + if Engine.is_editor_hint(): + return + + +func _on_global_stage_updated(e: StringName, s: int) -> void: + super._on_global_stage_updated(e, s) + + +func _on_ground_ready(_ground: Ground2D) -> void: + # c03_well_show: 0:初始化 1:准备演出 2:演出完成 + if stage == 1: + _start_well_show() + +const start_x = 2236.0 + +@onready var xchan = $"Pro小蝉" as ProAnimatedSprite2D + +func _start_well_show() -> void: + xchan.modulate.a = 0.0 + var player = SceneManager.get_player() + SceneManager.lock_player() + player.position.x = start_x + player.set_facing_direction(Vector2.LEFT) + # c02_吕萍_背靠呼吸 + player.player_action(20, false) + await Util.wait(3.0) + var tween = create_tween() + tween.tween_property(xchan, "modulate:a", 1.0, 1.0) + await tween.finished + if not ArchiveManager.get_global_value("has_exited_by_player_choice"): + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_井边回忆") + else: + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_井边回忆_无选项") + await DialogueManager.dialogue_ended + # 如果选择离开,此处不会设置,需要在 GlobalFunctor.c03_final_choose_exit() 中设置 + EventManager.set_stage_if_greater("c03_well_show", 2) + create_tween().tween_property(xchan, "modulate:a", 0.0, 0.5) + await Util.wait(1.0) + # c02_吕萍_背靠起身 + await player.player_action(19, true) + SceneManager.unlock_player() + + +func _on_pre_stage_updated() -> void: + pass + + +func _on_stage_updated() -> void: + pass diff --git a/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd.uid b/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd.uid new file mode 100644 index 00000000..eab00df1 --- /dev/null +++ b/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd.uid @@ -0,0 +1 @@ +uid://cts4fvgir2lur diff --git a/scene/ground/script/c02/s03_event二章井边回忆.gd.uid b/scene/ground/script/c02/s03_event二章井边回忆.gd.uid deleted file mode 100644 index 1d11b283..00000000 --- a/scene/ground/script/c02/s03_event二章井边回忆.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c6bdubwu8phvc diff --git a/scene/ground/script/c02/s03_event二章井边回忆.gd b/scene/ground/script/c03/s01_event_2d偷听陆仁.gd similarity index 100% rename from scene/ground/script/c02/s03_event二章井边回忆.gd rename to scene/ground/script/c03/s01_event_2d偷听陆仁.gd diff --git a/scene/ground/script/c03/s01_event_2d偷听陆仁.gd.uid b/scene/ground/script/c03/s01_event_2d偷听陆仁.gd.uid new file mode 100644 index 00000000..8a25b0e0 --- /dev/null +++ b/scene/ground/script/c03/s01_event_2d偷听陆仁.gd.uid @@ -0,0 +1 @@ +uid://dekt5dv2je54r diff --git a/scene/ground/script/c03/s04_closeup柜子.gd b/scene/ground/script/c03/s04_closeup柜子.gd new file mode 100644 index 00000000..1dfc5fad --- /dev/null +++ b/scene/ground/script/c03/s04_closeup柜子.gd @@ -0,0 +1,10 @@ +extends CanvasLayer + +@warning_ignore("unused_signal") +signal exit(arg) + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME + + # TODO 拿药方后,启动 drug game + EventManager.set_stage("c03_drug_game", 1) diff --git a/scene/ground/script/c03/s04_closeup柜子.gd.uid b/scene/ground/script/c03/s04_closeup柜子.gd.uid new file mode 100644 index 00000000..5ca405c3 --- /dev/null +++ b/scene/ground/script/c03/s04_closeup柜子.gd.uid @@ -0,0 +1 @@ +uid://bp23kh1gi3asj diff --git a/scene/ground/script/c03/s04_closeup柜子.tscn b/scene/ground/script/c03/s04_closeup柜子.tscn new file mode 100644 index 00000000..695e0055 --- /dev/null +++ b/scene/ground/script/c03/s04_closeup柜子.tscn @@ -0,0 +1,50 @@ +[gd_scene load_steps=9 format=3 uid="uid://b6ymfeft65wof"] + +[ext_resource type="Script" uid="uid://bp23kh1gi3asj" path="res://scene/ground/script/c03/s04_closeup柜子.gd" id="1_2ow0y"] +[ext_resource type="Texture2D" uid="uid://dluphta2op6kq" path="res://asset/art/scene/c03/s04_李癞房间/柜子特写/背景.png" id="2_rmoey"] +[ext_resource type="Texture2D" uid="uid://cy1jly6cetwms" path="res://asset/art/scene/c03/s04_李癞房间/柜子特写/图层 11.png" id="3_ard2c"] +[ext_resource type="Texture2D" uid="uid://dylb3p5sijet1" path="res://asset/art/scene/c03/s04_李癞房间/柜子特写/李弟照片.png" id="3_d7uum"] +[ext_resource type="Texture2D" uid="uid://cxaonpvi5g0xv" path="res://asset/art/scene/c03/s04_李癞房间/柜子特写/药方.png" id="5_rmoey"] +[ext_resource type="Texture2D" uid="uid://dpo1lwepl0jaf" path="res://asset/art/scene/c03/s04_李癞房间/柜子特写/碗.png" id="7_qfnr1"] +[ext_resource type="PackedScene" uid="uid://bkk1rxx36ghrl" path="res://scene/entity/ux/hover_light_click_area.tscn" id="8_kxw4a"] +[ext_resource type="Texture2D" uid="uid://doclbaxmuy2v0" path="res://asset/art/scene/c03/s04_李癞房间/柜子特写/麻将.png" id="9_gdtfm"] + +[node name="Closeup柜子" type="CanvasLayer"] +script = ExtResource("1_2ow0y") + +[node name="BG" type="TextureRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("2_rmoey") + +[node name="照片" type="Sprite2D" parent="."] +position = Vector2(281, 80) +texture = ExtResource("3_d7uum") + +[node name="Hover药方" parent="." instance=ExtResource("8_kxw4a")] +position = Vector2(442, 181) + +[node name="药方" type="Sprite2D" parent="Hover药方"] +texture = ExtResource("5_rmoey") + +[node name="碗" type="Sprite2D" parent="."] +position = Vector2(229, 187) +texture = ExtResource("7_qfnr1") + +[node name="Hover麻将" parent="碗" instance=ExtResource("8_kxw4a")] +position = Vector2(-69, -40) + +[node name="麻将" type="Sprite2D" parent="碗/Hover麻将"] +texture = ExtResource("9_gdtfm") + +[node name="遮罩" type="TextureRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("3_ard2c") diff --git a/scene/ground/script/c03/s07_closeup绞肉机.gd b/scene/ground/script/c03/s07_closeup绞肉机.gd index 87291a3f..32623227 100644 --- a/scene/ground/script/c03/s07_closeup绞肉机.gd +++ b/scene/ground/script/c03/s07_closeup绞肉机.gd @@ -5,16 +5,82 @@ signal exit(arg) @onready var wheel = $Wheel as Wheel2D @onready var wheel_sfx = $"Sfx转盘齿轮" +@onready var sfx_success = $"Sfx转动完成" @onready var wheel_sprite = $"转盘" as AnimatedSprite2D +@onready var hand_sprite = $"手" as Node2D +@onready var animation_player = $AnimationPlayer as AnimationPlayer + +# c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束 +var stage := 0 + func _ready() -> void: + stage = EventManager.get_stage("c03_meat_grinder") layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME - wheel.rotated.connect(_on_wheel_rotated) + if stage == 0: + # 需要装转盘 + SceneManager.pop_center_notification("ui_center_notify_c03绞肉机缺少转轮") + wheel_sprite.hide() + elif stage == 1: + # 演出并传送到胖子游戏 + _wheel_placed_and_show() + elif stage == 2: + SceneManager.pop_center_notification("ui_center_notify_drag_to_rotate") + wheel_sprite.show() + # 需连接转动信号 + wheel.rotated.connect(_on_wheel_rotated) + elif stage == 3: + # 无需转动 + wheel_sprite.show() + var rotationg_steps := 0 +const TOTAL_STEPS = 6 * 3 # 转 3 圈 + func _on_wheel_rotated(_radiant: float) -> void: + if rotationg_steps >= TOTAL_STEPS: + return if not wheel_sfx.playing: wheel_sfx.play() rotationg_steps += 1 wheel_sprite.frame = wrapi(wheel_sprite.frame + 1, 0, 3) + if rotationg_steps == TOTAL_STEPS: + # 成功 + sfx_success.play() + animation_player.play("catch_fragments") + await animation_player.animation_finished + animation_player.play("hand_swinging") + var c03_mem = $"二章结尾回忆" as Node2D + c03_mem.exit.connect(exit.emit) + c03_mem.show() + c03_mem.modulate.a = 0.0 + await Util.wait(2.0) + DialogueManager.show_dialogue_balloon( + GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵1", [GlobalConfig.DIALOG_IGNORE_INPUT] + ) + var tween = create_tween() + tween.tween_interval(3.0) + tween.tween_property(c03_mem, "modulate:a", 1.0, 3.0) + await DialogueManager.dialogue_ended + if tween and tween.is_running(): + await tween.finished + c03_mem.start_show() + + +func _wheel_placed_and_show() -> void: + wheel_sprite.show() + #TODO 演出,结束后传送到胖子游戏 + SceneManager.get_ground_loader().transition_to_scene("c03_s10", "left") + + +func _unhandled_input(event: InputEvent) -> void: + if stage == 0 and event.is_action_pressed("interact"): + get_viewport().set_input_as_handled() + var prop = SceneManager.get_current_prop() + if prop == "prop_转轮": + SceneManager.disable_prop_item("prop_转轮") + EventManager.set_stage("c03_meat_grinder", 1) + _wheel_placed_and_show() + else: + SceneManager.get_prop_hud().on_toggle_invalid_prop() diff --git a/scene/ground/script/c03/s07_closeup绞肉机.tscn b/scene/ground/script/c03/s07_closeup绞肉机.tscn index 3ca3ced2..7fa0b2ae 100644 --- a/scene/ground/script/c03/s07_closeup绞肉机.tscn +++ b/scene/ground/script/c03/s07_closeup绞肉机.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=3 uid="uid://5bubirvt8ep8"] +[gd_scene load_steps=23 format=3 uid="uid://5bubirvt8ep8"] [ext_resource type="Script" uid="uid://gr8bw36fdnnf" path="res://scene/ground/script/c03/s07_closeup绞肉机.gd" id="1_lvehu"] [ext_resource type="AudioStream" uid="uid://l6dxu32a1086" path="res://asset/audio/effect/action/beltHandle1.ogg" id="2_d41yl"] @@ -7,75 +7,14 @@ [ext_resource type="Texture2D" uid="uid://bvxsgvq38ncx1" path="res://asset/art/scene/c03/s07_屠宰间/绞肉机/手没影子.png" id="3_gfq0x"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_iuias"] [ext_resource type="Texture2D" uid="uid://d32o331t38vh4" path="res://asset/art/scene/c03/s07_屠宰间/绞肉机/绞肉机.png" id="3_lvehu"] +[ext_resource type="AudioStream" uid="uid://b6lu4a4whiv2y" path="res://asset/audio/effect/action/metalPot2.ogg" id="4_i0kt1"] [ext_resource type="Texture2D" uid="uid://bsofwu28n35cy" path="res://asset/art/scene/c03/s07_屠宰间/绞肉机/弹珠(合并).png" id="4_u54mm"] [ext_resource type="Texture2D" uid="uid://5op3wqpuye38" path="res://asset/art/scene/c03/s07_屠宰间/绞肉机/转盘1.png" id="5_u54mm"] [ext_resource type="Texture2D" uid="uid://cpdgphtx6cp71" path="res://asset/art/scene/c03/s07_屠宰间/绞肉机/转盘2.png" id="7_55v22"] [ext_resource type="PackedScene" uid="uid://dry6mhv6x0ppl" path="res://scene/little_game/gadget/wheel.tscn" id="7_u54mm"] [ext_resource type="Texture2D" uid="uid://npapl80avpl5" path="res://asset/art/scene/c03/s07_屠宰间/绞肉机/转盘3.png" id="8_jqgt2"] -[ext_resource type="SpriteFrames" uid="uid://cmvr3lbwe3h7p" path="res://asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres" id="11_iuias"] - -[sub_resource type="Animation" id="Animation_d41yl"] -resource_name = "catch_fragments" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("手/弹珠:visible") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("手/弹珠:modulate") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.233333), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("手/弹珠:position") -tracks/2/interp = 2 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.2, 0.533333), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(89, 11), Vector2(90, 27), Vector2(68, 81)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("手/弹珠:rotation") -tracks/3/interp = 2 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0, 0.5, 0.633333), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [-0.261799, -0.174533, 0.0] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("Sfx掉出弹珠:playing") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} +[ext_resource type="Texture2D" uid="uid://cxajbmcmwtm3e" path="res://asset/art/gif/c03_特写与游戏动画/结尾特写_二楼黄昏/0.png" id="11_iuias"] +[ext_resource type="PackedScene" uid="uid://y6em3na3d05d" path="res://scene/ground/script/c03/二章结尾回忆.tscn" id="15_xvgti"] [sub_resource type="Animation" id="Animation_iuias"] length = 0.001 @@ -151,6 +90,106 @@ tracks/5/keys = { "update": 1, "values": [false] } +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("手:visible") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_d41yl"] +resource_name = "catch_fragments" +length = 2.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("手/弹珠:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(1.3), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("手/弹珠:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(1.3, 1.53333), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("手/弹珠:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(1.3, 1.5, 1.83333), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(89, 11), Vector2(90, 27), Vector2(68, 81)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("手/弹珠:rotation") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(1.3, 1.8, 1.93333), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [-0.261799, -0.174533, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Sfx掉出弹珠:playing") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(1.16667), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("手:position") +tracks/5/interp = 2 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 1.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(100, 300), Vector2(201, 102)] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("手:visible") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} [sub_resource type="Animation" id="Animation_i0kt1"] resource_name = "hand_swinging" @@ -201,7 +240,7 @@ animations = [{ }], "loop": true, "name": &"default", -"speed": 5.0 +"speed": 6.0 }] [node name="Closeup绞肉机" type="CanvasLayer"] @@ -211,7 +250,6 @@ script = ExtResource("1_lvehu") libraries = { &"": SubResource("AnimationLibrary_iuias") } -autoplay = "hand_swinging" [node name="Sfx转盘齿轮" type="AudioStreamPlayer" parent="."] stream = ExtResource("2_d41yl") @@ -220,6 +258,13 @@ bus = &"game_sfx" script = ExtResource("3_iuias") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" +[node name="Sfx转动完成" type="AudioStreamPlayer" parent="."] +stream = ExtResource("4_i0kt1") +volume_db = -20.0 +bus = &"game_sfx" +script = ExtResource("3_iuias") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="Sfx掉出弹珠" type="AudioStreamPlayer" parent="."] stream = ExtResource("2_d41yl") bus = &"game_sfx" @@ -235,14 +280,16 @@ grow_vertical = 2 texture = ExtResource("2_lvehu") [node name="手" type="Sprite2D" parent="."] -light_mask = 3 +unique_name_in_owner = true +visible = false +light_mask = 33 position = Vector2(201, 102) texture = ExtResource("3_gfq0x") centered = false [node name="弹珠" type="Sprite2D" parent="手"] visible = false -light_mask = 3 +light_mask = 33 z_index = 1 position = Vector2(54, 65) texture = ExtResource("4_u54mm") @@ -257,7 +304,7 @@ position = Vector2(81, 166) energy = 0.7 blend_mode = 1 range_layer_max = 10 -range_item_cull_mask = 2 +range_item_cull_mask = 32 texture = SubResource("GradientTexture2D_u54mm") [node name="转盘" type="AnimatedSprite2D" parent="."] @@ -265,12 +312,10 @@ position = Vector2(413, 125) sprite_frames = SubResource("SpriteFrames_gfq0x") offset = Vector2(-2, 6) -[node name="手拿弹珠" type="AnimatedSprite2D" parent="."] -unique_name_in_owner = true +[node name="手拿弹珠 参考" type="Sprite2D" parent="."] visible = false -sprite_frames = ExtResource("11_iuias") -animation = &"结尾特写_二楼黄昏" -autoplay = "结尾特写_二楼黄昏" +light_mask = 3 +texture = ExtResource("11_iuias") centered = false [node name="Wheel" parent="." instance=ExtResource("7_u54mm")] @@ -287,3 +332,7 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 texture = ExtResource("2_gfq0x") + +[node name="二章结尾回忆" parent="." instance=ExtResource("15_xvgti")] +visible = false +z_index = 1 diff --git a/scene/ground/script/c02/s03_closeup二章井边回忆.gd b/scene/ground/script/c03/二章结尾回忆.gd similarity index 52% rename from scene/ground/script/c02/s03_closeup二章井边回忆.gd rename to scene/ground/script/c03/二章结尾回忆.gd index 3577d83e..45a3022f 100644 --- a/scene/ground/script/c02/s03_closeup二章井边回忆.gd +++ b/scene/ground/script/c03/二章结尾回忆.gd @@ -1,6 +1,5 @@ -extends CanvasLayer +extends Node2D -@warning_ignore("unused_signal") signal exit(arg) @onready var light = %"PointLight2D" as PointLight2D @@ -13,24 +12,45 @@ signal exit(arg) func _ready() -> void: - layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME facing_sprite.hide() + sitting_sprite.hide() holding_balls_sprite.show() serious_sprite.show() blink_sprite.hide() + light.hide() # 更新光 light_sprite.frame_changed.connect(_on_light_frame_changed) - _start_show() -func _start_show() -> void: +func start_show() -> void: + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵2") + await DialogueManager.dialogue_ended + sitting_sprite.show() + light.show() var tween = create_tween() - tween.tween_interval(2.0) tween.tween_property(holding_balls_sprite, "modulate:a", 0.0, 1.0) - tween.tween_interval(2.0) - tween.tween_callback(_watch_back) - tween.tween_interval(2.0) - tween.tween_callback(_smile) + await tween.finished + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵3") + await DialogueManager.dialogue_ended + await _watch_back() + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵4") + await DialogueManager.dialogue_ended + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵5") + _smile() + await DialogueManager.dialogue_ended + # c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束 + EventManager.set_stage_if_greater("c03_meat_grinder", 3) + EventManager.set_stage_if_greater("c03_well_show", 1) + # 李氏癞子房间离井边演出比较近,所以选择 5 号门 + SceneManager.get_ground_loader().transition_to_scene("c02_s03", "5") + + +var dialog_was_ended = false + +func _on_dialogue_ended(_res) -> void: + if _res == GlobalConfig.DIALOG_C03: + dialog_was_ended = true + DialogueManager.dialogue_ended.disconnect(_on_dialogue_ended) func _on_light_frame_changed() -> void: @@ -43,6 +63,7 @@ func _watch_back() -> void: var tween = create_tween() tween.tween_property(sitting_sprite, "modulate:a", 0.0, 0.3) tween.parallel().tween_property(facing_sprite, "modulate:a", 1.0, 0.3) + await tween.finished func _smile() -> void: diff --git a/scene/ground/script/c02/s03_closeup二章井边回忆.gd.uid b/scene/ground/script/c03/二章结尾回忆.gd.uid similarity index 100% rename from scene/ground/script/c02/s03_closeup二章井边回忆.gd.uid rename to scene/ground/script/c03/二章结尾回忆.gd.uid diff --git a/scene/ground/script/c02/s03_closeup二章井边回忆.tscn b/scene/ground/script/c03/二章结尾回忆.tscn similarity index 68% rename from scene/ground/script/c02/s03_closeup二章井边回忆.tscn rename to scene/ground/script/c03/二章结尾回忆.tscn index 72106493..2dcfa5ef 100644 --- a/scene/ground/script/c02/s03_closeup二章井边回忆.tscn +++ b/scene/ground/script/c03/二章结尾回忆.tscn @@ -1,32 +1,32 @@ [gd_scene load_steps=15 format=3 uid="uid://y6em3na3d05d"] -[ext_resource type="Script" uid="uid://bij1q2wnhiwon" path="res://scene/ground/script/c02/s03_closeup二章井边回忆.gd" id="1_5f5ti"] -[ext_resource type="Texture2D" uid="uid://osx2bnmowgdp" path="res://asset/art/scene/c03/c03_小婵结局特写/在前面坐着.png" id="2_2det8"] -[ext_resource type="Texture2D" uid="uid://cbxau3puh8v53" path="res://asset/art/scene/c03/c03_小婵结局特写/背景.png" id="2_u6lip"] -[ext_resource type="SpriteFrames" uid="uid://cmvr3lbwe3h7p" path="res://asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres" id="2_xco75"] -[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_yk0s2"] -[ext_resource type="Texture2D" uid="uid://stx50570akrx" path="res://asset/art/scene/c03/c03_小婵结局特写/1.png" id="3_pti5e"] -[ext_resource type="Texture2D" uid="uid://ccckf5akonfad" path="res://asset/art/scene/c03/c03_小婵结局特写/嘴不笑.png" id="3_te5og"] -[ext_resource type="Texture2D" uid="uid://vgv0ytt6lwec" path="res://asset/art/scene/c03/c03_小婵结局特写/2.png" id="4_2opy8"] -[ext_resource type="Texture2D" uid="uid://dk03eu87ikw3j" path="res://asset/art/scene/c03/c03_小婵结局特写/3.png" id="5_cri2g"] -[ext_resource type="Texture2D" uid="uid://qd38mmstkeah" path="res://asset/art/scene/c03/c03_小婵结局特写/4.png" id="6_vyioo"] -[ext_resource type="Texture2D" uid="uid://bwhwaxya41opt" path="res://asset/art/scene/c03/c03_小婵结局特写/眼睛半睁开.png" id="6_wrn47"] -[ext_resource type="Texture2D" uid="uid://cjy05wfotint" path="res://asset/art/scene/c03/c03_小婵结局特写/闭眼.png" id="7_2whda"] +[ext_resource type="Script" uid="uid://bij1q2wnhiwon" path="res://scene/ground/script/c03/二章结尾回忆.gd" id="1_bac1h"] +[ext_resource type="Texture2D" uid="uid://cbxau3puh8v53" path="res://asset/art/scene/c03/c03_小婵结局特写/背景.png" id="2_ot150"] +[ext_resource type="Texture2D" uid="uid://stx50570akrx" path="res://asset/art/scene/c03/c03_小婵结局特写/1.png" id="3_uj34s"] +[ext_resource type="Texture2D" uid="uid://vgv0ytt6lwec" path="res://asset/art/scene/c03/c03_小婵结局特写/2.png" id="4_ienih"] +[ext_resource type="Texture2D" uid="uid://dk03eu87ikw3j" path="res://asset/art/scene/c03/c03_小婵结局特写/3.png" id="5_oboyl"] +[ext_resource type="Texture2D" uid="uid://qd38mmstkeah" path="res://asset/art/scene/c03/c03_小婵结局特写/4.png" id="6_0ujmt"] +[ext_resource type="Texture2D" uid="uid://osx2bnmowgdp" path="res://asset/art/scene/c03/c03_小婵结局特写/在前面坐着.png" id="7_vwpx1"] +[ext_resource type="SpriteFrames" uid="uid://cmvr3lbwe3h7p" path="res://asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres" id="8_8oj5m"] +[ext_resource type="Texture2D" uid="uid://ccckf5akonfad" path="res://asset/art/scene/c03/c03_小婵结局特写/嘴不笑.png" id="9_xajew"] +[ext_resource type="Texture2D" uid="uid://bwhwaxya41opt" path="res://asset/art/scene/c03/c03_小婵结局特写/眼睛半睁开.png" id="10_a682h"] +[ext_resource type="Texture2D" uid="uid://cjy05wfotint" path="res://asset/art/scene/c03/c03_小婵结局特写/闭眼.png" id="11_dw5n6"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="12_ukh83"] [sub_resource type="SpriteFrames" id="SpriteFrames_w0x0n"] animations = [{ "frames": [{ "duration": 1.0, -"texture": ExtResource("3_pti5e") +"texture": ExtResource("3_uj34s") }, { "duration": 1.0, -"texture": ExtResource("4_2opy8") +"texture": ExtResource("4_ienih") }, { "duration": 1.0, -"texture": ExtResource("5_cri2g") +"texture": ExtResource("5_oboyl") }, { "duration": 1.0, -"texture": ExtResource("6_vyioo") +"texture": ExtResource("6_0ujmt") }], "loop": true, "name": &"default", @@ -37,37 +37,34 @@ animations = [{ animations = [{ "frames": [{ "duration": 1.0, -"texture": ExtResource("6_wrn47") +"texture": ExtResource("10_a682h") }, { "duration": 2.0, -"texture": ExtResource("7_2whda") +"texture": ExtResource("11_dw5n6") }, { "duration": 1.0, -"texture": ExtResource("6_wrn47") +"texture": ExtResource("10_a682h") }], "loop": false, "name": &"default", "speed": 12.0 }] -[node name="Closeup二章井边回忆" type="CanvasLayer"] -script = ExtResource("1_5f5ti") +[node name="二章结尾回忆" type="Node2D"] +script = ExtResource("1_bac1h") -[node name="BG" type="TextureRect" parent="."] -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -texture = ExtResource("2_u6lip") +[node name="BG" type="Sprite2D" parent="."] +texture = ExtResource("2_ot150") +centered = false [node name="PointLight2D" type="PointLight2D" parent="."] unique_name_in_owner = true +visible = false light_mask = 2 blend_mode = 2 range_layer_max = 10 range_item_cull_mask = 2 -texture = ExtResource("3_pti5e") +texture = ExtResource("3_uj34s") offset = Vector2(282, 158) [node name="光线" type="AnimatedSprite2D" parent="."] @@ -81,15 +78,17 @@ centered = false [node name="小蝉坐着" type="Sprite2D" parent="."] unique_name_in_owner = true +visible = false light_mask = 2 position = Vector2(264, 160) -texture = ExtResource("2_2det8") +texture = ExtResource("7_vwpx1") [node name="小蝉特写" type="AnimatedSprite2D" parent="."] unique_name_in_owner = true +visible = false light_mask = 2 position = Vector2(110, 0) -sprite_frames = ExtResource("2_xco75") +sprite_frames = ExtResource("8_8oj5m") animation = &"结尾小婵头发飘" autoplay = "结尾小婵头发飘" centered = false @@ -98,7 +97,7 @@ centered = false unique_name_in_owner = true light_mask = 2 position = Vector2(165, 146) -texture = ExtResource("3_te5og") +texture = ExtResource("9_xajew") [node name="眨眼" type="AnimatedSprite2D" parent="小蝉特写"] unique_name_in_owner = true @@ -117,24 +116,21 @@ autostart = true [node name="参考" type="AnimatedSprite2D" parent="."] visible = false light_mask = 0 -sprite_frames = ExtResource("2_xco75") +sprite_frames = ExtResource("8_8oj5m") animation = &"结尾小婵参考" centered = false [node name="手拿弹珠" type="AnimatedSprite2D" parent="."] unique_name_in_owner = true -sprite_frames = ExtResource("2_xco75") +sprite_frames = ExtResource("8_8oj5m") animation = &"结尾特写_二楼黄昏" autoplay = "结尾特写_二楼黄昏" centered = false -[node name="遮罩" type="TextureRect" parent="."] -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -mouse_filter = 2 -texture = ExtResource("2_yk0s2") +[node name="遮罩" type="Sprite2D" parent="."] +position = Vector2(0, 38) +scale = Vector2(1.2, 1) +texture = ExtResource("12_ukh83") +centered = false [connection signal="timeout" from="小蝉特写/眨眼/TimerBlink" to="." method="_on_timer_blink_timeout"]