diff --git a/asset/art/scene/c03/s00_院子与其他/e_药车前纸人.png b/asset/art/scene/c03/s00_院子与其他/e_药车前纸人.png new file mode 100644 index 00000000..e5c93f06 Binary files /dev/null and b/asset/art/scene/c03/s00_院子与其他/e_药车前纸人.png differ diff --git a/asset/art/scene/c03/s00_院子与其他/e_药车前纸人.png.import b/asset/art/scene/c03/s00_院子与其他/e_药车前纸人.png.import new file mode 100644 index 00000000..0907a39c --- /dev/null +++ b/asset/art/scene/c03/s00_院子与其他/e_药车前纸人.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbwknogtlqb3x" +path="res://.godot/imported/e_药车前纸人.png-c654071ed104f8898b12a70e52a58e5b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c03/s00_院子与其他/e_药车前纸人.png" +dest_files=["res://.godot/imported/e_药车前纸人.png-c654071ed104f8898b12a70e52a58e5b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 2ce46f4c..ea551db7 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -285,6 +285,7 @@ c03_s03_洗头盆,和楼道里一样的洗头盆,,,,, c03_s03_演出结束,又是幻觉吗...{br}刚才灰衣服的男人在八音盒和照片里出现过{br}还有那个红色衣服的女孩...{br}难道说...,,,,, c03_药车须知,抓药需足数三文,另需药方与药引,,,,, c03_抓药铜钱不足,钱还没准备够...牌子上讲需要三文,,,,, +c03_老板被吸走,...{br}铃铛声...{br}是我梦里那个铃铛声...,,,,, c03_s04_柜子照片,吾唯一至亲 李二弟,,,,, c03_招魂幡鬼差,...{br}还是别乱碰了,,,,, c03_s05_长桌,这桌上的肉竟然没有腐烂,,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index fb7d7a4e..ab903cc0 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -361,6 +361,7 @@ # 抓药游戏 抓药需足数三文,另需药方与药引 [ID:c03_药车须知] 钱还没准备够...牌子上讲需要三文 [ID:c03_抓药铜钱不足] +...{br}铃铛声...{br}是我梦里那个铃铛声... [ID:c03_老板被吸走] # s04 李癞房间 吾唯一至亲 李二弟 [ID:c03_s04_柜子照片] ...{br}还是别乱碰了 [ID:c03_招魂幡鬼差] diff --git a/scene/effect/flash_effect.gd b/scene/effect/flash_effect.gd index 6a94af5f..be857c80 100644 --- a/scene/effect/flash_effect.gd +++ b/scene/effect/flash_effect.gd @@ -22,7 +22,7 @@ func flash(visible_nodes_r1: Array, visible_nodes_r2: Array) -> void: tween.parallel().tween_property(n, "modulate:a", 1.0, 0.03) tween.tween_property(light, "energy", 4.0, 0.02) tween.tween_property(light, "energy", 8.0, 0.01) - tween.tween_property(light, "energy", 3.0, 0.02) + tween.tween_property(light, "energy", 0.5, 0.1) tween.tween_property(light, "energy", 7.0, 0.01) for n in visible_nodes_r1: tween.parallel().tween_callback(n.hide) diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 6e7a7cb9..cd7b0352 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=112 format=3 uid="uid://djc2uaefhmu7"] +[gd_scene load_steps=114 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"] @@ -60,6 +60,8 @@ [ext_resource type="Script" uid="uid://chgyivvdw22cw" path="res://scene/ground/script/c02/s03_event_2d抓药游戏.gd" id="38_g0s7j"] [ext_resource type="SpriteFrames" uid="uid://b0icyhxpj16tv" path="res://asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres" id="39_rnk1v"] [ext_resource type="SpriteFrames" uid="uid://ck660fpn3004k" path="res://asset/art/gif/c03_抓药游戏/c03_抓药游戏_frames.tres" id="40_h2lyo"] +[ext_resource type="AudioStream" uid="uid://c5rgfl6ub4chw" path="res://asset/audio/sfx/交互/序章/sfx_鬼差擦肩而过.ogg" id="41_colp3"] +[ext_resource type="Texture2D" uid="uid://dbwknogtlqb3x" path="res://asset/art/scene/c03/s00_院子与其他/e_药车前纸人.png" id="42_obchk"] [ext_resource type="Texture2D" uid="uid://bp84w8keuelyj" path="res://asset/art/scene/c02/s10_空房间/e_蜡烛-sheet.png" id="42_yk6yp"] [ext_resource type="PackedScene" uid="uid://cpxt082my5yac" path="res://scene/ground/script/c02/s03_closeup抓药游戏.tscn" id="45_fxne6"] [ext_resource type="AudioStream" uid="uid://broetvd8vuc05" path="res://asset/audio/peiyin/c02/c02_8小男孩童谣.ogg" id="46_qqdxs"] @@ -779,6 +781,34 @@ action = 3 title_filter = "c03" note_key = "c03_药车须知" +[node name="Sfx2D药车铃铛声_右" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D抓药游戏"] +position = Vector2(1138, 26) +stream = ExtResource("11_pjl66") +attenuation = 2.0 +bus = &"game_sfx" +script = ExtResource("54_o1qbs") +metadata/_custom_type_script = "uid://wapo47a1oddf" + +[node name="Sfx2D药车铃铛声_左" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Event2D抓药游戏"] +position = Vector2(745, 14) +stream = ExtResource("11_pjl66") +attenuation = 2.0 +bus = &"game_sfx" +script = ExtResource("54_o1qbs") +metadata/_custom_type_script = "uid://wapo47a1oddf" + +[node name="Sfx药车鬼影擦肩" type="AudioStreamPlayer" parent="Ground/DeployLayer/Event2D抓药游戏"] +stream = ExtResource("41_colp3") +bus = &"game_sfx" +script = ExtResource("4_ygnci") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="老板红光" type="PointLight2D" parent="Ground/DeployLayer/Event2D抓药游戏"] +position = Vector2(1003, -14) +color = Color(1, 0, 0, 1) +energy = 0.0 +texture = ExtResource("65_rgrem") + [node name="药车_人群" type="Node2D" parent="Ground/DeployLayer/Event2D抓药游戏"] z_index = 20 @@ -830,26 +860,20 @@ sprite_frames = SubResource("SpriteFrames_18q2p") autoplay = "default" [node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板"] -position = Vector2(1027.8, 16.8) +position = Vector2(1028, 18) color = Color(0.999971, 0.912551, 0.842208, 1) -energy = 1.2 -blend_mode = 2 texture = ExtResource("65_rgrem") texture_scale = 0.3 [node name="药铺老板" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板"] +self_modulate = Color(1, 1, 1, 0.513726) z_index = 6 position = Vector2(1049, 20) sprite_frames = ExtResource("40_h2lyo") -animation = &"抓药游戏_老板出现" +animation = &"抓药游戏_老板呼吸" +autoplay = "抓药游戏_老板呼吸" script = ExtResource("67_h2lyo") autostart = false -action_configs = Array[Dictionary]([{ -"animation_intro": &"抓药游戏_老板出现", -&"animation_next": "抓药游戏_老板呼吸", -"animation_wait_time": 0.0, -"intro_loop": 1 -}]) metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="Interactable抓药道具" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板" instance=ExtResource("8_xt8j0")] @@ -868,6 +892,11 @@ enabled = false action_key = 3 collision_width_and_x = Vector2(40, 0) +[node name="药车_纸人" type="Sprite2D" parent="Ground/DeployLayer/Event2D抓药游戏/药车_老板"] +z_index = 20 +position = Vector2(1095, 58) +texture = ExtResource("42_obchk") + [node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="25" instance=ExtResource("23_81juy")] position = Vector2(466, 3) packed_scene = ExtResource("24_0o4rt") @@ -1443,6 +1472,12 @@ bus = &"game_sfx" script = ExtResource("4_ygnci") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" +[node name="Sfx招魂幡鬼影擦肩" type="AudioStreamPlayer" parent="Ground/DeployLayer/Event2D李氏给药完成"] +stream = ExtResource("41_colp3") +bus = &"game_sfx" +script = ExtResource("4_ygnci") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="运尸车" type="Sprite2D" parent="Ground/DeployLayer/Event2D李氏给药完成"] position = Vector2(-22, 25) texture = ExtResource("74_f5g0l") @@ -1471,6 +1506,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/Event2D李氏给药完成/鬼差吸魂"] position = Vector2(12, -2) color = Color(1, 0, 0, 1) +energy = 2.62 texture = ExtResource("65_rgrem") [node name="Event第三章开幕" type="Node2D" parent="Ground/DeployLayer" index="41"] diff --git a/scene/ground/script/c02/s03_event_2d抓药游戏.gd b/scene/ground/script/c02/s03_event_2d抓药游戏.gd index 9f810285..75ff910f 100644 --- a/scene/ground/script/c02/s03_event_2d抓药游戏.gd +++ b/scene/ground/script/c02/s03_event_2d抓药游戏.gd @@ -25,8 +25,6 @@ func _on_ground_ready(_ground: Ground2D): if interactable.interacted_times >= 3: closeup.enabled = true boss_sprite.hide() - elif interactable.interacted_times > 0: - boss_sprite.play("抓药游戏_老板出现") closeup.exit.connect(_on_closeup_exit) @@ -44,18 +42,37 @@ func _boss_interacted(valid := true) -> void: var camera = SceneManager.get_camera_marker() # TODO 惊悚的音效 SceneManager.pop_debug_dialog_info("音效", "老板开始制药,稍后魂被吸走") + $"Sfx2D药车铃铛声_左".play() var tween = create_tween() tween.tween_interval(1.0) - tween.tween_property(camera, "force_offset:x", -100.0, 1.5) - tween.tween_interval(2.0) - tween.tween_property(camera, "force_offset:x", 0.0, 1.5) + tween.tween_property(camera, "force_offset:x", -400.0, 3.0) + tween.tween_interval(5.0) await tween.finished - boss_sprite.play("抓药游戏_老板魂魄吸入") - await boss_sprite.animation_finished + # 运镜过去后,开始播放老板红光 + var amb_light = $"老板红光" as PointLight2D + $"Sfx2D药车铃铛声_右".play() + tween = create_tween() + tween.tween_property(amb_light, "energy" , 1.5, 3.0) + tween.tween_callback($"Sfx药车鬼影擦肩".play) + tween.tween_property(amb_light, "energy" , 0.8, 0.5) + tween.tween_property(amb_light, "energy" , 1.5, 1.5) + tween.tween_interval(2.0) + tween.tween_property(amb_light, "energy" , 0.0, 2.0) + tween.parallel().tween_property(boss_sprite, "modulate:a" , 0.0, 2.0) + tween.tween_interval(2.0) + tween.tween_callback(func(): + SceneManager.unlock_player() + SceneManager.pop_os_with_str("c03_老板被吸走") + ) + # 运镜回来 + tween = create_tween() + tween.tween_interval(1.0) + tween.tween_property(camera, "force_offset:x", 0.0, 3.0) + await tween.finished + # 不使用被吸入,而是使用红色光效 + # boss_sprite.play("抓药游戏_老板魂魄吸入") + # await boss_sprite.animation_finished closeup.enabled = true - SceneManager.unlock_player() - elif interactable.interacted_times == 1: - boss_sprite.play("抓药游戏_老板出现") else: var current_prop = SceneManager.get_current_prop() if current_prop == "prop_纸铜钱1" or current_prop == "prop_2个纸铜钱": diff --git a/scene/ground/script/c02/s03_event李氏给药完成.gd b/scene/ground/script/c02/s03_event李氏给药完成.gd index b8a73ce6..0531af91 100644 --- a/scene/ground/script/c02/s03_event李氏给药完成.gd +++ b/scene/ground/script/c02/s03_event李氏给药完成.gd @@ -31,18 +31,23 @@ func on_spirit_flag_interacted() -> void: flash_ghost = true elif interacted_times > 2: #随机出现 - flash_ghost = randf() > 0.9 + flash_ghost = randf() > 0.75 + $"招魂幡".play() + $"Sfx招魂幡".play(2.3) if flash_ghost: + SceneManager.lock_player() + await Util.wait(2.0) ghost_appeared_times += 1 var ghost = $"鬼差吸魂" var nodes = [ghost] SceneManager.flash_effect(nodes, nodes, true) - else: - $"招魂幡".play() - $"Sfx招魂幡".play(2.3) - if ghost_appeared_times == 1: - SceneManager.pop_os_with_str("c03_招魂幡鬼差") - + await Util.wait(0.5) + SceneManager.flash_effect(nodes, nodes, false) + $"Sfx招魂幡鬼影擦肩".play() + await Util.wait(3.5) + if ghost_appeared_times == 1: + SceneManager.pop_os_with_str("c03_招魂幡鬼差") + SceneManager.unlock_player() func _on_pre_stage_updated() -> void: pass