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 70cb89d6..a9476ae5 100644 Binary files a/asset/art/scene/c03/s07_屠宰间/绞肉机/手没影子.png and b/asset/art/scene/c03/s07_屠宰间/绞肉机/手没影子.png differ diff --git a/asset/art/scene/c03/s07_屠宰间/绞肉机/手(合并).png b/asset/art/scene/c03/s07_屠宰间/绞肉机/手(合并).png index e27f8c23..3a9f2b86 100644 Binary files a/asset/art/scene/c03/s07_屠宰间/绞肉机/手(合并).png and b/asset/art/scene/c03/s07_屠宰间/绞肉机/手(合并).png differ 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"]