From 4f8e63613ab8777c081ea33cc629c03db584087c Mon Sep 17 00:00:00 2001 From: cakipaul Date: Fri, 8 Aug 2025 14:03:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E7=AB=A0=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../c03_特写与游戏动画_frames.tres | 29 ++- .../art/gif/c03_特写与游戏动画/鬼差吸魂/0.png | Bin 0 -> 6216 bytes .../c03_特写与游戏动画/鬼差吸魂/0.png.import | 34 +++ .../art/gif/c03_特写与游戏动画/鬼差吸魂/1.png | Bin 0 -> 6306 bytes .../c03_特写与游戏动画/鬼差吸魂/1.png.import | 34 +++ asset/dialogue/c03.dialogue | 229 +++++++++--------- asset/dialogue/item_description.csv | 9 +- asset/dialogue/item_description.dialogue | 13 +- manager/scene/scene_manager.gd | 30 ++- scene/effect/flash_effect.gd | 33 +++ scene/effect/flash_effect.gd.uid | 1 + scene/effect/flash_effect.tscn | 23 ++ scene/ground/scene/c02/s03_院子.gd | 6 - scene/ground/scene/c02/s03_院子.tscn | 78 +++--- scene/ground/scene/c03/s06_胖子卧室.gd | 7 + scene/ground/scene/c03/s06_胖子卧室.tscn | 9 +- .../c02/s03_event_2d第二章结束井边演出.gd | 8 +- .../script/c02/s03_event李氏给药完成.gd | 52 ++++ .../script/c02/s03_event李氏给药完成.gd.uid | 1 + .../script/c03/s04_closeup麻将出千游戏.gd | 22 +- .../script/c03/s04_closeup麻将出千游戏.tscn | 126 +++++++--- 21 files changed, 532 insertions(+), 212 deletions(-) create mode 100644 asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png create mode 100644 asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png.import create mode 100644 asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png create mode 100644 asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png.import create mode 100644 scene/effect/flash_effect.gd create mode 100644 scene/effect/flash_effect.gd.uid create mode 100644 scene/effect/flash_effect.tscn create mode 100644 scene/ground/script/c02/s03_event李氏给药完成.gd create mode 100644 scene/ground/script/c02/s03_event李氏给药完成.gd.uid diff --git a/asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres b/asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres index 752bf2a1..e119b39b 100644 --- a/asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres +++ b/asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres @@ -1,4 +1,4 @@ -[gd_resource type="SpriteFrames" load_steps=108 format=3 uid="uid://cmvr3lbwe3h7p"] +[gd_resource type="SpriteFrames" load_steps=110 format=3 uid="uid://cmvr3lbwe3h7p"] [ext_resource type="Texture2D" uid="uid://bq2o1huq46hhj" path="res://asset/art/gif/c03_特写与游戏动画/小婵特写/0.png" id="1_emjqu"] [ext_resource type="Texture2D" uid="uid://dcwbe6hb3gdcp" path="res://asset/art/gif/c03_特写与游戏动画/父亲抱小孩/0.png" id="1_fctjd"] @@ -100,13 +100,15 @@ [ext_resource type="Texture2D" uid="uid://bokwo2xm706k4" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_花盆掉落/4.png" id="79_1lr8w"] [ext_resource type="Texture2D" uid="uid://cvm4x22n4d3s4" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_花盆掉落/5.png" id="80_eh7t6"] [ext_resource type="Texture2D" uid="uid://drminyk6667ow" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_花盆掉落/6.png" id="81_bbcv3"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/0.png" id="82_6pynv"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/1.png" id="83_dpgwq"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/2.png" id="84_rldt2"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/3.png" id="85_witd8"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/4.png" id="86_otl7i"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/5.png" id="87_hcvfk"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/6.png" id="88_8rnrp"] +[ext_resource type="Texture2D" uid="uid://chdedm4yavint" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/0.png" id="82_6pynv"] +[ext_resource type="Texture2D" uid="uid://e8lcxan4k4hf" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/1.png" id="83_dpgwq"] +[ext_resource type="Texture2D" uid="uid://boiape1f1jy5x" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/2.png" id="84_rldt2"] +[ext_resource type="Texture2D" uid="uid://deo3q0iet3y3k" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/3.png" id="85_witd8"] +[ext_resource type="Texture2D" uid="uid://f85s14tmveqd" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/4.png" id="86_otl7i"] +[ext_resource type="Texture2D" uid="uid://dk88pnsbo6be8" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/5.png" id="87_hcvfk"] +[ext_resource type="Texture2D" uid="uid://cpdh55cm8c132" path="res://asset/art/gif/c03_特写与游戏动画/第三章开幕_陆仁黑影/6.png" id="88_8rnrp"] +[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png" id="105_iohif"] +[ext_resource type="Texture2D" path="res://asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png" id="106_yvtvm"] [resource] animations = [{ @@ -605,6 +607,17 @@ animations = [{ "speed": 30.0 }, { "frames": [{ +"duration": 6.0, +"texture": ExtResource("105_iohif") +}, { +"duration": 6.0, +"texture": ExtResource("106_yvtvm") +}], +"loop": true, +"name": &"鬼差吸魂", +"speed": 30.0 +}, { +"frames": [{ "duration": 12.0, "texture": ExtResource("5_uidoe") }, { diff --git a/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png b/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png new file mode 100644 index 0000000000000000000000000000000000000000..dd1e0b8166c343870067f0b5bd9cb7a4396f78c5 GIT binary patch literal 6216 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 Tx-k&$(*dBNq6?{2vWxjY=@uH6 literal 0 HcmV?d00001 diff --git a/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png.import b/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png.import new file mode 100644 index 00000000..6956a214 --- /dev/null +++ b/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpeer3eb5rvc2" +path="res://.godot/imported/1.png-626f5033e72901e2855b7d2601eadacc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png" +dest_files=["res://.godot/imported/1.png-626f5033e72901e2855b7d2601eadacc.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/c03.dialogue b/asset/dialogue/c03.dialogue index 98859180..42b245f9 100644 --- a/asset/dialogue/c03.dialogue +++ b/asset/dialogue/c03.dialogue @@ -10,156 +10,156 @@ ~ c03_s02_邀请小蝉与瞎子对话1 小小蝶: 那个...阿叔,小蝉在吗 [#anonymous] [ID:c03_瞎子卧室演出_小小蝶1] -瞎子: 咳咳,她,咳咳,不在。 [#anonymous] [ID:c03_瞎子卧室演出_瞎子1] +方启钊: 咳咳,她,咳咳,不在。 [#anonymous] [ID:c03_瞎子卧室演出_瞎子1] 小小蝶: 她是不是生病了,好几天没看到她了。 [#anonymous] [ID:c03_瞎子卧室演出_小小蝶2] => END ~ c03_s02_邀请小蝉与瞎子对话2 -瞎子: 她... [#anonymous] [ID:c03_瞎子卧室演出_瞎子2] -瞎子: 我一家一家问过来,都讲没看见她。 [#anonymous] [ID:c03_瞎子卧室演出_瞎子3] -瞎子: 一个活生生的小女孩,就这么找不见了... [#anonymous] [ID:c03_瞎子卧室演出_瞎子4] +方启钊: 她... [#anonymous] [ID:c03_瞎子卧室演出_瞎子2] +方启钊: 我一家一家问过来,都讲没看见她。 [#anonymous] [ID:c03_瞎子卧室演出_瞎子3] +方启钊: 一个活生生的小女孩,就这么找不见了... [#anonymous] [ID:c03_瞎子卧室演出_瞎子4] => END ~ c03_一楼院子胖李癞 -胖子: 真像啊,像活过来了似的... [#anonymous] [ID:c03_一楼院子李癞胖_胖子6] -李氏: 呸!现在抓药还要多收几个子儿,我看那老板就是掉钱眼里去了! [#anonymous] [ID:c03_一楼院子李癞胖_李氏7] -癞子: 都忙完了吧? [#anonymous] [ID:c03_一楼院子李癞胖_癞子5] -癞子: 走走走,一起搓麻啊张老板,三缺一! [#anonymous] [ID:c03_一楼院子李癞胖_癞子6] -胖子: 一天天的净惦记着我身上这点油水了! [#anonymous] [ID:c03_一楼院子李癞胖_胖子7] -胖子: 唉,走,来两把过过手瘾! [#anonymous] [ID:c03_一楼院子李癞胖_胖子8] +张文开: 真像啊,像活过来了似的... [#anonymous] [ID:c03_一楼院子李癞胖_胖子6] +李兰: 呸!现在抓药还要多收几个子儿,我看那老板就是掉钱眼里去了! [#anonymous] [ID:c03_一楼院子李癞胖_李氏7] +王守义: 都忙完了吧? [#anonymous] [ID:c03_一楼院子李癞胖_癞子5] +王守义: 走走走,一起搓麻啊张老板,三缺一! [#anonymous] [ID:c03_一楼院子李癞胖_癞子6] +张文开: 一天天的净惦记着我身上这点油水了! [#anonymous] [ID:c03_一楼院子李癞胖_胖子7] +张文开: 唉,走,来两把过过手瘾! [#anonymous] [ID:c03_一楼院子李癞胖_胖子8] => END ~ c03_s03_理发店演出1 -癞子: 我家那个昨天想拿推子给我剃头,差点给我开了瓢! [#anonymous] [ID:c03_理发店_癞子_8] -癞子: 你瞅瞅,这么长一道血印子!唉呀... [#anonymous] [ID:c03_理发店_癞子_9] -瞎子: 可不能这么说。 [#anonymous] [ID:c03_理发店_瞎子_15] -瞎子: 弟妹这一手,没准是变相消了你的血光灾呢。 [#anonymous] [ID:c03_理发店_瞎子_16] -瞎子: 逢凶化吉,灾消晦退,好日子还在后头。 [#anonymous] [ID:c03_理发店_瞎子_17] -癞子: 哼,听你这么一说,好像确实有那么几分道理。 [#anonymous] [ID:c03_理发店_癞子_10] -癞子: 不过这辫子留了这么多年,乍一找人剪了,心里还有点怪不是滋味儿。 [#anonymous] [ID:c03_理发店_癞子_11] -瞎子: 怎么舍得剪了? [#anonymous] [ID:c03_理发店_瞎子_18] -癞子: 妇人家家的,不知道从哪打听到用男人的辫子入药能治病,一直念叨个不停。 [#anonymous] [ID:c03_理发店_癞子_12] -癞子: ...你听过这说法没有? [#anonymous] [ID:c03_理发店_癞子_13] -瞎子: 我不懂医,不好乱说。 [#anonymous] [ID:c03_理发店_瞎子_19] -癞子: 最近街上也是彻底乱了套,那些人看见你留了“阴阳头”,就跟那闻着味儿的狗一样凑过来... [#anonymous] [ID:c03_理发店_癞子_14] -癞子: 哦,瞧我这记性,忘了你眼神不好,不爱出门。 [#wait=1.5][#anonymous] [ID:c03_理发店_癞子_15] +王守义: 我家那个昨天想拿推子给我剃头,差点给我开了瓢! [#anonymous] [ID:c03_理发店_癞子_8] +王守义: 你瞅瞅,这么长一道血印子!唉呀... [#anonymous] [ID:c03_理发店_癞子_9] +方启钊: 可不能这么说。 [#anonymous] [ID:c03_理发店_瞎子_15] +方启钊: 弟妹这一手,没准是变相消了你的血光灾呢。 [#anonymous] [ID:c03_理发店_瞎子_16] +方启钊: 逢凶化吉,灾消晦退,好日子还在后头。 [#anonymous] [ID:c03_理发店_瞎子_17] +王守义: 哼,听你这么一说,好像确实有那么几分道理。 [#anonymous] [ID:c03_理发店_癞子_10] +王守义: 不过这辫子留了这么多年,乍一找人剪了,心里还有点怪不是滋味儿。 [#anonymous] [ID:c03_理发店_癞子_11] +方启钊: 怎么舍得剪了? [#anonymous] [ID:c03_理发店_瞎子_18] +王守义: 妇人家家的,不知道从哪打听到用男人的辫子入药能治病,一直念叨个不停。 [#anonymous] [ID:c03_理发店_癞子_12] +王守义: ...你听过这说法没有? [#anonymous] [ID:c03_理发店_癞子_13] +方启钊: 我不懂医,不好乱说。 [#anonymous] [ID:c03_理发店_瞎子_19] +王守义: 最近街上也是彻底乱了套,那些人看见你留了“阴阳头”,就跟那闻着味儿的狗一样凑过来... [#anonymous] [ID:c03_理发店_癞子_14] +王守义: 哦,瞧我这记性,忘了你眼神不好,不爱出门。 [#wait=1.5][#anonymous] [ID:c03_理发店_癞子_15] 小小蝶: 方叔叔,我来找小蝉玩儿,她在屋里吗? [#anonymous] [ID:c03_理发店_小小蝶_5] => END ~ c03_s03_理发店演出2 -瞎子: 她摔了一跤,还睡着呢,我喊她起来? [#anonymous] [ID:c03_理发店_瞎子_20] +方启钊: 她摔了一跤,还睡着呢,我喊她起来? [#anonymous] [ID:c03_理发店_瞎子_20] 小小蝶: 不用不用,我在这等一会儿就行。 [#anonymous] [ID:c03_理发店_小小蝶_6] 陆仁: 方老弟,你正好给我家这小皮猴儿修修毛,成天跟个假小子似的,没个小姑娘样子。 [#anonymous] [ID:c03_理发店_陆仁] -瞎子: 小孩子嘛,高高兴兴就好。 [#anonymous] [ID:c03_理发店_瞎子_21] -瞎子: 你们也别在这干等,我去给你们拿些“洋点心”。 [#anonymous] [ID:c03_理发店_瞎子_22] +方启钊: 小孩子嘛,高高兴兴就好。 [#anonymous] [ID:c03_理发店_瞎子_21] +方启钊: 你们也别在这干等,我去给你们拿些“洋点心”。 [#anonymous] [ID:c03_理发店_瞎子_22] => END ~ c03_s03_理发店演出3 -瞎子: 说是什么舶来品,高级货,你们拿出尝尝,甜个嘴。 [#anonymous] [ID:c03_理发店_瞎子_23] +方启钊: 说是什么舶来品,高级货,你们拿出尝尝,甜个嘴。 [#anonymous] [ID:c03_理发店_瞎子_23] 小小蝶: 谢谢方叔叔。 [#anonymous] [ID:c03_理发店_小小蝶_7] => END ~ c03_s04_整理麻将游戏0 # 打牌准备,整理麻将盒游戏成功(演出至麻将搬到桌上): -李氏: 记得当年这箱麻将还是我弟弟背回来的。 [#anonymous] [ID:c03_麻将游戏_李氏8] -李氏: 那天下了雨,他光着膀子回来,用衣裳包着,说什么... [#anonymous] [ID:c03_麻将游戏_李氏9] -李氏: ...木头怕水他不怕... [#anonymous] [ID:c03_麻将游戏_李氏10] -李氏: 就当免费洗了个澡。 [#anonymous] [ID:c03_麻将游戏_李氏11] -癞子: 后来发现少了张牌,这小崽子又背着我们敲敲打打,硬是做了张一模一样的补上。 [#anonymous] [ID:c03_麻将游戏_癞子8] -李氏: 他呀,就是个死心眼,犟种! [#anonymous] [ID:c03_麻将游戏_李氏12] -李氏: 得了病就一直忍着,等到实在瞒不住了才告诉咱们! [#anonymous] [ID:c03_麻将游戏_李氏13] -癞子: 他认了命等死,咱们不能认,只要今晚赢了钱... [#anonymous] [ID:c03_麻将游戏_癞子9] +李兰: 记得当年这箱麻将还是我弟弟背回来的。 [#anonymous] [ID:c03_麻将游戏_李氏8] +李兰: 那天下了雨,他光着膀子回来,用衣裳包着,说什么... [#anonymous] [ID:c03_麻将游戏_李氏9] +李兰: ...木头怕水他不怕... [#anonymous] [ID:c03_麻将游戏_李氏10] +李兰: 就当免费洗了个澡。 [#anonymous] [ID:c03_麻将游戏_李氏11] +王守义: 后来发现少了张牌,这小崽子又背着我们敲敲打打,硬是做了张一模一样的补上。 [#anonymous] [ID:c03_麻将游戏_癞子8] +李兰: 他呀,就是个死心眼,犟种! [#anonymous] [ID:c03_麻将游戏_李氏12] +李兰: 得了病就一直忍着,等到实在瞒不住了才告诉咱们! [#anonymous] [ID:c03_麻将游戏_李氏13] +王守义: 他认了命等死,咱们不能认,只要今晚赢了钱... [#anonymous] [ID:c03_麻将游戏_癞子9] => END ~ c03_s04_整理麻将游戏1 # 5-10 s 纯黑转场 #(敲门,开门,几个人走路声,推椅子声) -胖子: 哟,人都来齐了怎么还在理麻将?今晚大家可得好好地打一场! [#anonymous] [ID:c03_麻将游戏_胖子9] +张文开: 哟,人都来齐了怎么还在理麻将?今晚大家可得好好地打一场! [#anonymous] [ID:c03_麻将游戏_胖子9] => END # 看一会桌面 ~ c03_s04_打麻将游戏0 #切换至游戏画面(盖牌声) -瞎子: 我观张老弟面色晦暗、嘴唇发白,难不成是这些日子手气不佳,输多了牌才... [#anonymous] [ID:c03_麻将游戏_瞎子10] +方启钊: 我观张老弟面色晦暗、嘴唇发白,难不成是这些日子手气不佳,输多了牌才... [#anonymous] [ID:c03_麻将游戏_瞎子10] => END # 边发牌边说 ~ c03_s04_打麻将游戏1 -胖子: 以前可不这样,不说牌桌通杀,也是赢多输少,偏偏最近... [#anonymous] [ID:c03_麻将游戏_胖子10] +张文开: 以前可不这样,不说牌桌通杀,也是赢多输少,偏偏最近... [#anonymous] [ID:c03_麻将游戏_胖子10] #(同时画面进入癞子摸牌,第一回合开始,玩家可以操作) -李氏: 最近怎么了? [#anonymous] [ID:c03_麻将游戏_李氏14] +李兰: 最近怎么了? [#anonymous] [ID:c03_麻将游戏_李氏14] => END # 玩家第一回合操作,平行对话 ~ c03_s04_打麻将游戏2 -胖子: 自从那三楼的婆娘出了名以后,我这手气就臭得不行...怕不是让人给“借运”了? [#anonymous] [ID:c03_麻将游戏_胖子11] -#癞子: 嗨 [#anonymous] [ID:c03_麻将游戏_癞子7] -癞子: 还真不好说。运气这玩意玄乎得很。 [#anonymous] [ID:c03_麻将游戏_癞子10] -癞子: 我以前走南闯北的时候,见过一个会使邪门功夫的老爷子。 [#anonymous] [ID:c03_麻将游戏_癞子11] -癞子: 说是能“借”人家的命来延长自己的寿命... [#anonymous] [ID:c03_麻将游戏_癞子12] -胖子: 听着怪瘆人的。 [#anonymous] [ID:c03_麻将游戏_胖子12] -瞎子: 人外有人,天外有天。 [#anonymous] [ID:c03_麻将游戏_瞎子11] -瞎子: 天外还有什么...咱们这些闲杂人等也说了不算。 [#anonymous] [ID:c03_麻将游戏_瞎子12] +张文开: 自从那三楼的婆娘出了名以后,我这手气就臭得不行...怕不是让人给“借运”了? [#anonymous] [ID:c03_麻将游戏_胖子11] +#王守义: 嗨 [#anonymous] [ID:c03_麻将游戏_癞子7] +王守义: 还真不好说。运气这玩意玄乎得很。 [#anonymous] [ID:c03_麻将游戏_癞子10] +王守义: 我以前走南闯北的时候,见过一个会使邪门功夫的老爷子。 [#anonymous] [ID:c03_麻将游戏_癞子11] +王守义: 说是能“借”人家的命来延长自己的寿命... [#anonymous] [ID:c03_麻将游戏_癞子12] +张文开: 听着怪瘆人的。 [#anonymous] [ID:c03_麻将游戏_胖子12] +方启钊: 人外有人,天外有天。 [#anonymous] [ID:c03_麻将游戏_瞎子11] +方启钊: 天外还有什么...咱们这些闲杂人等也说了不算。 [#anonymous] [ID:c03_麻将游戏_瞎子12] => END ~ c03_s04_打麻将游戏3 #(玩家操作完后,打牌声) -李氏: 六万。 [#anonymous] [ID:c03_麻将游戏_李氏15] -李氏: 话又说回来,你们喝过洋酒没有?用葡萄发酵成的,红得发黑,度数还高。 [#anonymous] [ID:c03_麻将游戏_李氏16] -癞子: 那叫香槟,洋人就喜欢整那些面子货,不适口。 [#anonymous] [ID:c03_麻将游戏_癞子13] +李兰: 六万。 [#anonymous] [ID:c03_麻将游戏_李氏15] +李兰: 话又说回来,你们喝过洋酒没有?用葡萄发酵成的,红得发黑,度数还高。 [#anonymous] [ID:c03_麻将游戏_李氏16] +王守义: 那叫香槟,洋人就喜欢整那些面子货,不适口。 [#anonymous] [ID:c03_麻将游戏_癞子13] => END ~ c03_s04_打麻将游戏4 #(第二回合开始,玩家可以操作) -胖子: 见多识广还得看王兄啊。 [#anonymous] [ID:c03_麻将游戏_胖子13] -胖子: 瞧这架势,以前没准多风光... [#anonymous] [ID:c03_麻将游戏_胖子14] -瞎子: 英雄不问出处。 [#anonymous] [ID:c03_麻将游戏_瞎子13] -癞子: 都过去了,都过去了。 [#anonymous] [ID:c03_麻将游戏_癞子14] -李氏: 为了跑出来,我们还睡过桥洞呢!那阵子我老是梦见让人剁了手指头,八成就是因为那桥是洋人建的... [#anonymous] [ID:c03_麻将游戏_李氏17] -胖子: 你说的是外摆渡桥? [#anonymous] [ID:c03_麻将游戏_胖子15] -癞子: 应该是吧,我们再没回去过,也不知道后来成了什么样... [#anonymous] [ID:c03_麻将游戏_癞子15] +张文开: 见多识广还得看王兄啊。 [#anonymous] [ID:c03_麻将游戏_胖子13] +张文开: 瞧这架势,以前没准多风光... [#anonymous] [ID:c03_麻将游戏_胖子14] +方启钊: 英雄不问出处。 [#anonymous] [ID:c03_麻将游戏_瞎子13] +王守义: 都过去了,都过去了。 [#anonymous] [ID:c03_麻将游戏_癞子14] +李兰: 为了跑出来,我们还睡过桥洞呢!那阵子我老是梦见让人剁了手指头,八成就是因为那桥是洋人建的... [#anonymous] [ID:c03_麻将游戏_李氏17] +张文开: 你说的是外摆渡桥? [#anonymous] [ID:c03_麻将游戏_胖子15] +王守义: 应该是吧,我们再没回去过,也不知道后来成了什么样... [#anonymous] [ID:c03_麻将游戏_癞子15] => END ~ c03_s04_打麻将游戏5 #(玩家操作完后,打牌声) -胖子: 怎么一张牌都不来! [#anonymous] [ID:c03_麻将游戏_胖子16] -瞎子: 八条 [#anonymous] [ID:c03_麻将游戏_瞎子14] +张文开: 怎么一张牌都不来! [#anonymous] [ID:c03_麻将游戏_胖子16] +方启钊: 八条 [#anonymous] [ID:c03_麻将游戏_瞎子14] => END ~ c03_s04_打麻将游戏6 #(第三回合开始,玩家可以操作) -癞子: 对了,小蝉那孩子有消息了吗? [#anonymous] [ID:c03_麻将游戏_癞子16] -瞎子: 要是有消息,我也不会跟你们在这打牌,虚度光阴。 [#anonymous] [ID:c03_麻将游戏_瞎子15] -李氏: 方大哥,你这话说得不妥。 [#anonymous] [ID:c03_麻将游戏_李氏18] -李氏: 咱们哪个心里头不苦的?不都是在这牌桌上苦中作乐呢。 [#anonymous] [ID:c03_麻将游戏_李氏19] -胖子: 找点乐子,何必想那么多。 [#anonymous] [ID:c03_麻将游戏_胖子17] -胖子: 我这头生意都不做了,帮你满大街的又找又问,不也是白忙活一场。 [#anonymous] [ID:c03_麻将游戏_胖子18] -胖子: 要我说,还是得从身边的人下手。 [#anonymous] [ID:c03_麻将游戏_胖子19] +王守义: 对了,小蝉那孩子有消息了吗? [#anonymous] [ID:c03_麻将游戏_癞子16] +方启钊: 要是有消息,我也不会跟你们在这打牌,虚度光阴。 [#anonymous] [ID:c03_麻将游戏_瞎子15] +李兰: 方大哥,你这话说得不妥。 [#anonymous] [ID:c03_麻将游戏_李氏18] +李兰: 咱们哪个心里头不苦的?不都是在这牌桌上苦中作乐呢。 [#anonymous] [ID:c03_麻将游戏_李氏19] +张文开: 找点乐子,何必想那么多。 [#anonymous] [ID:c03_麻将游戏_胖子17] +张文开: 我这头生意都不做了,帮你满大街的又找又问,不也是白忙活一场。 [#anonymous] [ID:c03_麻将游戏_胖子18] +张文开: 要我说,还是得从身边的人下手。 [#anonymous] [ID:c03_麻将游戏_胖子19] => END ~ c03_s04_打麻将游戏7 #(操作完进入胜利演出,第四回合开始) -癞子: 指不定是被楼里的那个邻居拐了呢,就那么一丁点的小女孩,谁都能敲昏了抱回家去。 [#anonymous] [ID:c03_麻将游戏_癞子17] -胖子: ...我看她跟三楼那个叫什么小蝶的走得很近,老是手拉手出去,成天凑在一块说悄悄话。 [#anonymous] [ID:c03_麻将游戏_胖子20] -胖子: 他们一家人最近都不怎么出门,我看就是心里有鬼。 [#anonymous] [ID:c03_麻将游戏_胖子21] -胖子: 把小孩骗走了换钱换药,搞邪术,什么都干得出来。 [#anonymous] [ID:c03_麻将游戏_胖子22] -癞子: 这么一说,好像确实有点道理。 [#anonymous] [ID:c03_麻将游戏_癞子18] -李氏: 我小弟去看过病了,那药方邪门得很,待会我拿给你们瞧瞧。 [#anonymous] [ID:c03_麻将游戏_李氏20] -李氏: 我活了这么大岁数,也是第一次见。 [#anonymous] [ID:c03_麻将游戏_李氏21] -瞎子: 道听途说而已。 [#anonymous] [ID:c03_麻将游戏_瞎子16] +王守义: 指不定是被楼里的那个邻居拐了呢,就那么一丁点的小女孩,谁都能敲昏了抱回家去。 [#anonymous] [ID:c03_麻将游戏_癞子17] +张文开: ...我看她跟三楼那个叫什么小蝶的走得很近,老是手拉手出去,成天凑在一块说悄悄话。 [#anonymous] [ID:c03_麻将游戏_胖子20] +张文开: 他们一家人最近都不怎么出门,我看就是心里有鬼。 [#anonymous] [ID:c03_麻将游戏_胖子21] +张文开: 把小孩骗走了换钱换药,搞邪术,什么都干得出来。 [#anonymous] [ID:c03_麻将游戏_胖子22] +王守义: 这么一说,好像确实有点道理。 [#anonymous] [ID:c03_麻将游戏_癞子18] +李兰: 我小弟去看过病了,那药方邪门得很,待会我拿给你们瞧瞧。 [#anonymous] [ID:c03_麻将游戏_李氏20] +李兰: 我活了这么大岁数,也是第一次见。 [#anonymous] [ID:c03_麻将游戏_李氏21] +方启钊: 道听途说而已。 [#anonymous] [ID:c03_麻将游戏_瞎子16] => END ~ c03_s04_打麻将游戏8 #(第四回合摸牌,摊倒牌,胜利演出结束) -癞子: 自摸! [#anonymous] [ID:c03_麻将游戏_癞子19] -胖子: 他妈的,不玩了不玩了,今天一把都没胡过! [#anonymous] [ID:c03_麻将游戏_胖子23] -瞎子: 我也得早点回去,没准小蝉今儿个能回来,我总惦记着回去看看。 [#anonymous] [ID:c03_麻将游戏_瞎子17] -李氏: 天黑了,你们回去都小心着点。 [#anonymous] [ID:c03_麻将游戏_李氏22] -癞子: 嘶... [#anonymous] [ID:c03_麻将游戏_癞子20] +王守义: 自摸! [#anonymous] [ID:c03_麻将游戏_癞子19] +张文开: 他妈的,不玩了不玩了,今天一把都没胡过! [#anonymous] [ID:c03_麻将游戏_胖子23] +方启钊: 我也得早点回去,没准小蝉今儿个能回来,我总惦记着回去看看。 [#anonymous] [ID:c03_麻将游戏_瞎子17] +李兰: 天黑了,你们回去都小心着点。 [#anonymous] [ID:c03_麻将游戏_李氏22] +王守义: 嘶... [#anonymous] [ID:c03_麻将游戏_癞子20] => END ~ c03_s06_被胖子打晕 @@ -167,21 +167,21 @@ => END ~ c03_s08_囚室偷听 -李氏: 我不认! [#anonymous] [ID:c03_囚室通风管道偷听_李氏1] -李氏: 我弟弟才十六岁,不抽烟不吃酒不打牌,性子也好,都说他将来是当个能人的料! [#anonymous] [ID:c03_囚室通风管道偷听_李氏2] -李氏: 怎么就、怎么就... [#anonymous] [ID:c03_囚室通风管道偷听_李氏3] -癞子: 一开始小弟确实好了不少,能跑能跳,生龙活虎的。 [#anonymous] [ID:c03_囚室通风管道偷听_癞子1] -癞子: 结果才高兴没几天,人突然就不行了,连句话都没留下。 [#anonymous] [ID:c03_囚室通风管道偷听_癞子2] -癞子: 这就是人家说的“回光返照”。 [#anonymous] [ID:c03_囚室通风管道偷听_癞子3] -癞子: 病重之人临死前精神头好转,要吃要喝,与常人无异,时间一过,自然也就撒手归西了。 [#anonymous] [ID:c03_囚室通风管道偷听_癞子4] -李氏: 是不是那方子药死了我弟弟,我就说好好的人怎么就突然没了... [#anonymous] [ID:c03_囚室通风管道偷听_李氏4] -瞎子: 换作平时,我是决计不敢妄言。 [#anonymous] [ID:c03_囚室通风管道偷听_瞎子5] -瞎子: 但见你们俩心切,我也就直说了。 [#anonymous] [ID:c03_囚室通风管道偷听_瞎子6] -瞎子: 年前我曾算过一遭,你弟弟有长寿之相,按理说...命不该绝呀。 [#anonymous] [ID:c03_囚室通风管道偷听_瞎子7] -李氏: 谁害死了我弟弟,我就要谁偿命! [#anonymous] [ID:c03_囚室通风管道偷听_李氏5] -李氏: 方大哥,你、你有没有什么法子? [#anonymous] [ID:c03_囚室通风管道偷听_李氏6] -瞎子: 就算我知道,也不能教你们去害人呐。 [#anonymous] [ID:c03_囚室通风管道偷听_瞎子8] -瞎子: 散了吧,我还得去问问寻人启事都贴完了没有,不够还得再写... [#anonymous] [ID:c03_囚室通风管道偷听_瞎子9] +李兰: 我不认! [#anonymous] [ID:c03_囚室通风管道偷听_李氏1] +李兰: 我弟弟才十六岁,不抽烟不吃酒不打牌,性子也好,都说他将来是当个能人的料! [#anonymous] [ID:c03_囚室通风管道偷听_李氏2] +李兰: 怎么就、怎么就... [#anonymous] [ID:c03_囚室通风管道偷听_李氏3] +王守义: 一开始小弟确实好了不少,能跑能跳,生龙活虎的。 [#anonymous] [ID:c03_囚室通风管道偷听_癞子1] +王守义: 结果才高兴没几天,人突然就不行了,连句话都没留下。 [#anonymous] [ID:c03_囚室通风管道偷听_癞子2] +王守义: 这就是人家说的“回光返照”。 [#anonymous] [ID:c03_囚室通风管道偷听_癞子3] +王守义: 病重之人临死前精神头好转,要吃要喝,与常人无异,时间一过,自然也就撒手归西了。 [#anonymous] [ID:c03_囚室通风管道偷听_癞子4] +李兰: 是不是那方子药死了我弟弟,我就说好好的人怎么就突然没了... [#anonymous] [ID:c03_囚室通风管道偷听_李氏4] +方启钊: 换作平时,我是决计不敢妄言。 [#anonymous] [ID:c03_囚室通风管道偷听_瞎子5] +方启钊: 但见你们俩心切,我也就直说了。 [#anonymous] [ID:c03_囚室通风管道偷听_瞎子6] +方启钊: 年前我曾算过一遭,你弟弟有长寿之相,按理说...命不该绝呀。 [#anonymous] [ID:c03_囚室通风管道偷听_瞎子7] +李兰: 谁害死了我弟弟,我就要谁偿命! [#anonymous] [ID:c03_囚室通风管道偷听_李氏5] +李兰: 方大哥,你、你有没有什么法子? [#anonymous] [ID:c03_囚室通风管道偷听_李氏6] +方启钊: 就算我知道,也不能教你们去害人呐。 [#anonymous] [ID:c03_囚室通风管道偷听_瞎子8] +方启钊: 散了吧,我还得去问问寻人启事都贴完了没有,不够还得再写... [#anonymous] [ID:c03_囚室通风管道偷听_瞎子9] => END ~ c03_s05_肉铺隔门板偷听 @@ -207,20 +207,20 @@ ~ c03_胖子游戏对白 探子: 你怎么又来了。 [#anonymous] [ID:c03_胖子游戏_探子1] -胖子: 你在看什么? [#anonymous] [ID:c03_胖子游戏_胖子1] +张文开: 你在看什么? [#anonymous] [ID:c03_胖子游戏_胖子1] 探子: 看人过河,累了就数数,算加减法。 [#anonymous] [ID:c03_胖子游戏_探子2] -胖子: 这里除了我们,哪还有别人? [#anonymous] [ID:c03_胖子游戏_胖子2] +张文开: 这里除了我们,哪还有别人? [#anonymous] [ID:c03_胖子游戏_胖子2] 探子: 文开呀,都说你傻,你还真不冤。 [#anonymous] [ID:c03_胖子游戏_探子3] 探子: 他们早就淹死在河里头了! [#anonymous] [ID:c03_胖子游戏_探子4] 探子: 要不是你们在这拦着,他们早都逃走啦。 [#anonymous] [ID:c03_胖子游戏_探子5] -胖子: 逃?逃去哪? [#anonymous] [ID:c03_胖子游戏_胖子3] +张文开: 逃?逃去哪? [#anonymous] [ID:c03_胖子游戏_胖子3] 探子: 逃到别的省去,没准就能活命。 [#anonymous] [ID:c03_胖子游戏_探子6] -胖子: ...你跟他们不一样。 [#anonymous] [ID:c03_胖子游戏_胖子4] +张文开: ...你跟他们不一样。 [#anonymous] [ID:c03_胖子游戏_胖子4] 探子: 没错!当年你一眼就看准了我是探子。 [#anonymous] [ID:c03_胖子游戏_探子7] 探子: 你确有几分小聪明,想抓我立功,换顿饱饭吃。 [#anonymous] [ID:c03_胖子游戏_探子8] 探子: 可你太年轻、也太瘦弱了,白白错失了唯一一次翻身的机会。 [#anonymous] [ID:c03_胖子游戏_探子9] 探子: 但要我说,最关键的是... [#anonymous] [ID:c03_胖子游戏_探子10] -胖子: 要说就说,别卖关子。 [#anonymous] [ID:c03_胖子游戏_胖子5] +张文开: 要说就说,别卖关子。 [#anonymous] [ID:c03_胖子游戏_胖子5] 探子: 你跟他们一样,也过不了那条河。 [#anonymous] [ID:c03_胖子游戏_探子11] 探子: 真可惜... [#anonymous] [ID:c03_胖子游戏_探子12] => END @@ -232,7 +232,7 @@ # 手中弹珠 ~ c03_绞肉机回忆小蝶和小婵2 -小蝉: 谢谢。 [#anonymous] [ID:c03_绞肉机演出_小蝉1] +方小蝉: 谢谢。 [#anonymous] [ID:c03_绞肉机演出_小蝉1] => END # 手中弹珠 -> 小蝉后背 @@ -242,21 +242,21 @@ # 小蝉转身 ~ c03_绞肉机回忆小蝶和小婵4 -小蝉: ...可以送给你的。 [#anonymous] [ID:c03_绞肉机演出_小蝉2] +方小蝉: ...可以送给你的。 [#anonymous] [ID:c03_绞肉机演出_小蝉2] 小小蝶: 多谢你的好意,不过我爸不喜欢我玩这个。 [#anonymous] [ID:c03_绞肉机演出_小小蝶3] 小小蝶: 他总说女孩子要温柔文静一点,要有姑娘家家的样子,虽然...我打弹珠比他们都厉害。 [#anonymous] [ID:c03_绞肉机演出_小小蝶4] 小小蝶: ...你爸爸呢? [#anonymous] [ID:c03_绞肉机演出_小小蝶5] -小蝉: 嗯...他很好。 [#anonymous] [ID:c03_绞肉机演出_小蝉3] +方小蝉: 嗯...他很好。 [#anonymous] [ID:c03_绞肉机演出_小蝉3] 小小蝶: 他也会处处管着你,动不动就要说‘都是为了你好’这种话? [#anonymous] [ID:c03_绞肉机演出_小小蝶6] -小蝉: 有时候,他有点吓人。 [#anonymous] [ID:c03_绞肉机演出_小蝉4] -小蝉: 我、我不想惹他不高兴。 [#anonymous] [ID:c03_绞肉机演出_小蝉5] +方小蝉: 有时候,他有点吓人。 [#anonymous] [ID:c03_绞肉机演出_小蝉4] +方小蝉: 我、我不想惹他不高兴。 [#anonymous] [ID:c03_绞肉机演出_小蝉5] 小小蝶: 还是当大人好。等我们长大了,就没人再把咱们当什么都不懂的小屁孩。 [#anonymous] [ID:c03_绞肉机演出_小小蝶7] 小小蝶: 到那个时候,我想干什么就干什么、不想干什么就不干什么,彻底自由了! [#anonymous] [ID:c03_绞肉机演出_小小蝶8] => END # 小蝉笑 ~ c03_绞肉机回忆小蝶和小婵5 -小蝉: 真好。 [#anonymous] [ID:c03_绞肉机演出_小蝉6] +方小蝉: 真好。 [#anonymous] [ID:c03_绞肉机演出_小蝉6] => END # 爬墙过程就可以说 @@ -267,15 +267,18 @@ # 看向灰姑过程中的对白 ~ c03_绞肉机回忆小蝶和小婵7 小小蝶: 那个,这是我新认识的好朋友,她叫、她叫... [#anonymous] [ID:c03_绞肉机演出_小小蝶10] -小蝉: 我叫方小蝉。 [#anonymous] [ID:c03_绞肉机演出_小蝉7] -小蝉: 阿姨,你们是不是要回去吃饭啦,我爸爸...一会也要来喊我回家了。 [#anonymous] [ID:c03_绞肉机演出_小蝉8] -小蝉: 再、再见。 [#anonymous] [ID:c03_绞肉机演出_小蝉9] +方小蝉: 我叫方小蝉。 [#anonymous] [ID:c03_绞肉机演出_小蝉7] +方小蝉: 阿姨,你们是不是要回去吃饭啦,我爸爸...一会也要来喊我回家了。 [#anonymous] [ID:c03_绞肉机演出_小蝉8] +方小蝉: 再、再见。 [#anonymous] [ID:c03_绞肉机演出_小蝉9] => END ~ c03_井边回忆 -小蝉: 我要是还活着...就能拉你起来了 [#anonymous] [ID:c03_结尾井边演出_小蝉10] +方小蝉: 我要是还活着...就能拉你起来了 [#anonymous] [ID:c03_结尾井边演出_小蝉10] 吕萍: 方小蝉?我好像...想起你是谁了... [ID:c03_结尾井边演出_小蝶1] -小蝉: 嗯...那你可以...离开这里了吗? [#anonymous] [ID:c03_结尾井边演出_小蝉11] +方小蝉: 嗯...那你可以...离开这里了吗? [#anonymous] [ID:c03_结尾井边演出_小蝉11] +=> END + +~ c03_井边回忆_选择 是否答应小蝉离开这里? [#anonymous] [ID:结尾井边演出_选择] - 是 [ID:结尾井边演出_选择1] # 黑屏播放结束音效后回到主菜单 @@ -285,12 +288,6 @@ => END -~ c03_井边回忆_无选项 -小蝉: 我要是还活着...就能拉你起来了 [#anonymous] [ID:c03_结尾井边演出_小蝉10] -吕萍: 方小蝉?我好像...想起你是谁了... [ID:c03_结尾井边演出_小蝶1] -小蝉: 嗯...那你可以...离开这里了吗? [#anonymous] [ID:c03_结尾井边演出_小蝉11] -=> END - ~ c03_井边回忆_结束 吕萍: 我...为什么要...诶? [ID:c03_结尾井边演出_小蝶2] => END \ No newline at end of file diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 4bbb24b2..2ce46f4c 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -152,11 +152,11 @@ prop_2013钥匙_说明,肮脏生锈的钥匙,标着「2013」的房间号码,, prop_药方,药方,,,[#texture=c03/药方.png][#inspect=c03/ux_药方.png],, prop_药方_说明,生姜两片{br}竹叶十片去尖{br}经霜三年的甘蔗{br}蟋蟀一对 注:要原配,即本在一窠中者{br}金钱鼠尾辫一副 注:生剪 烧成灰兑水送服,,,,, prop_转轮,转轮,,,[#texture=c03/转轮.png],, -prop_转轮_说明,转轮说明,,,,, +prop_转轮_说明,一个厚重的金属转轮,表面布满了奇怪的划痕和难以辨认的符号,似乎是某种机关的核心部件,,,,, prop_新鲜的肉,新鲜的肉,,,[#texture=c03/新鲜的肉.png],, -prop_新鲜的肉_说明,新鲜的肉说明,,,,, +prop_新鲜的肉_说明,一块色泽鲜红的肉,看起来很新鲜,但凑近闻却没有任何血腥味,反而有种奇怪的甜香,,,,, prop_符纸钥匙,符纸钥匙,,,[#texture=c03/符纸钥匙.png][#inspect=c03/ux_符纸钥匙.png],, -prop_符纸钥匙_说明,符纸钥匙说明,,,,, +prop_符纸钥匙_说明,用朱砂绘制着符文的黄纸折叠成的钥匙,与其说是用来开锁,不如说是为了镇压锁住的东西,,,,, prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,Director's Letter prop_院长的信_说明,小萍:{br}你现下境况如何?{br}你虽离开浦育院已久,但我始终没有忘记为你祈祷。{br}愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。{br}你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。{br}若有闲暇,欢迎你回浦育院看看。{br}院长童玉君{br}民国二十年十月十五日{br}公寓地址 芦昌路26弄3号,,,,,"Xiao Ping:{br}How are you faring now?{br}Though you left Puyu Orphanage long ago, I have never forgotten to pray for you.{br}May God bless you to walk the path of true enlightenment. I believe this was also your father's earnest wish when he entrusted you to my care.{br}Now that you are grown, regardless of whatever reasons your parents had for separating from you, you deserve the right to know the truth. I have attached the apartment address to this letter, though I know little beyond this.{br}If you have time, you are welcome to visit Puyu Orphanage.{br}Director Tong Yujun{br}October 15th, Year 20 of the Republic{br}Apartment Address: No. 3, Lane 26, Luchang Road" prop_船票,船票,,,[#texture=c02/船票.png],,Boat Ticket @@ -175,7 +175,7 @@ prop_符纸,符纸,,,[#texture=c03/符纸纸条.png][#inspect=c03/ux_符纸纸 prop_符纸_说明,切记将符纸布于墙面和棺体,等候七日,在水中滴入髫年血,待其于水中凝固,后浇洒于棺体,事成将髫年尸首交于我,方能保你日后平安。,,,,, prop_沾血的纸条,沾血的纸条,,,[#texture=c03/沾血的纸条.png][#inspect=c03/ux_沾血的纸条.png],, prop_沾血的纸条_说明,文开,近日几条丘八又上门,娘仍未告诉他们你在何处,如今世道乱,苟活不耻,保命为上,盼望与儿早日重逢。,,,,, -c01_s05_检查院长房间,好像忘记了什么事情,再回去检查一遍吧。,,ID格式: prop_xx_说明,,,I feel like I've forgotten something. Let me go back and check again. +c01_s05_检查院长房间,好像忘记了什么事情,再回去检查一遍吧。,,,,,I feel like I've forgotten something. Let me go back and check again. c01_s07_需要报纸,书店还没开门。,,,,,The bookstore isn't open yet. c01_s08_书店工作,老板交代的工作还没做完,不能偷懒。,,,,,I haven't finished the work the boss assigned. I can't slack off. c01_s08_书店工钱,这个月的工钱还没拿。,,,,,I haven't collected this month's wages yet. @@ -286,6 +286,7 @@ c03_s03_演出结束,又是幻觉吗...{br}刚才灰衣服的男人在八音盒 c03_药车须知,抓药需足数三文,另需药方与药引,,,,, c03_抓药铜钱不足,钱还没准备够...牌子上讲需要三文,,,,, c03_s04_柜子照片,吾唯一至亲 李二弟,,,,, +c03_招魂幡鬼差,...{br}还是别乱碰了,,,,, c03_s05_长桌,这桌上的肉竟然没有腐烂,,,,, c03_s05_首次读完账本,...还是不要多想了,,,,, c03_s05_偷听结束,这小女孩提到的玩具...{br}不会就是我手上这个吧?,,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 46b9ac1a..fb7d7a4e 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -174,11 +174,11 @@ 药方 [#texture=c03/药方.png][#inspect=c03/ux_药方.png] [ID:prop_药方] 生姜两片{br}竹叶十片去尖{br}经霜三年的甘蔗{br}蟋蟀一对 注:要原配,即本在一窠中者{br}金钱鼠尾辫一副 注:生剪 烧成灰兑水送服 [ID:prop_药方_说明] 转轮 [#texture=c03/转轮.png] [ID:prop_转轮] -转轮说明 [ID:prop_转轮_说明] +一个厚重的金属转轮,表面布满了奇怪的划痕和难以辨认的符号,似乎是某种机关的核心部件 [ID:prop_转轮_说明] 新鲜的肉 [#texture=c03/新鲜的肉.png] [ID:prop_新鲜的肉] -新鲜的肉说明 [ID:prop_新鲜的肉_说明] +一块色泽鲜红的肉,看起来很新鲜,但凑近闻却没有任何血腥味,反而有种奇怪的甜香 [ID:prop_新鲜的肉_说明] 符纸钥匙 [#texture=c03/符纸钥匙.png] [#inspect=c03/ux_符纸钥匙.png] [ID:prop_符纸钥匙] -符纸钥匙说明 [ID:prop_符纸钥匙_说明] +用朱砂绘制着符文的黄纸折叠成的钥匙,与其说是用来开锁,不如说是为了镇压锁住的东西 [ID:prop_符纸钥匙_说明] # 旧版 #令牌 [#texture=c01/令牌物品.png][#inspect=c01/令牌.png] [ID:prop_令牌] @@ -213,11 +213,6 @@ 文开,近日几条丘八又上门,娘仍未告诉他们你在何处,如今世道乱,苟活不耻,保命为上,盼望与儿早日重逢。[ID:prop_沾血的纸条_说明] => END -#~ prop说明 -## ID格式: prop_xx_说明 -#浦育院院长秦阳,民国21年,11月20日 [ID:prop_信碎片1_说明] -#=> END - ~ HoldingReason # c01 @@ -368,6 +363,7 @@ 钱还没准备够...牌子上讲需要三文 [ID:c03_抓药铜钱不足] # s04 李癞房间 吾唯一至亲 李二弟 [ID:c03_s04_柜子照片] +...{br}还是别乱碰了 [ID:c03_招魂幡鬼差] # s05 肉铺 这桌上的肉竟然没有腐烂 [ID:c03_s05_长桌] ...还是不要多想了 [ID:c03_s05_首次读完账本] @@ -404,7 +400,6 @@ [wave]又嫩又甜[/wave] [ID:c03_s12_label8] # 李癞胖演出结束 怎么突然出现这么多人?{br}要不跟过去看看?[c03_李癞胖演出结束] - => END ~ Notes_c04 diff --git a/manager/scene/scene_manager.gd b/manager/scene/scene_manager.gd index fae366dc..e4d2d17a 100644 --- a/manager/scene/scene_manager.gd +++ b/manager/scene/scene_manager.gd @@ -314,7 +314,9 @@ func pop_notification(translation_key: String, number := 1) -> void: func pop_center_notification(translation_key: String, duration := 4.0) -> void: var notification_node = get_node_or_null("/root/Main/UILayer/Notification") if notification_node: - notification_node.show_center_notification(tr(translation_key).replace("{br}", "\n"), duration) + notification_node.show_center_notification( + tr(translation_key).replace("{br}", "\n"), duration + ) else: printerr("pop_center_notification: Notification node not found") @@ -355,6 +357,7 @@ func pop_chapter_notification(id: int) -> void: ### 切换场景 + func checkout_index_page(transition := true) -> void: # 保存后,渐隐切换场景 ArchiveManager.save_all() @@ -526,7 +529,12 @@ func transition_with_layer(node: CanvasItem, half_duration := 0.7, wait_time := var screen_transform = node.get_canvas_transform() * node.get_global_transform() var new_global_transform = transition_layer.transform.affine_inverse() * screen_transform if GlobalConfig.DEBUG: - print("transition_with_layer screen_transform: ", screen_transform, "new_global_transform:", new_global_transform) + print( + "transition_with_layer screen_transform: ", + screen_transform, + "new_global_transform:", + new_global_transform + ) node.reparent(transition_layer, false) node.global_position = new_global_transform.origin var tween = create_tween() @@ -546,7 +554,9 @@ func white_transition(half_duration := 0.7, wait_time := 0.5) -> void: var dizzy_scene = preload("uid://decfqoe5v0y6n") -func dizzy_effect(duration := 3.5, intensity := 1.5, play_animation :=true, play_sfx := true) -> void: +func dizzy_effect( + duration := 3.5, intensity := 1.5, play_animation := true, play_sfx := true +) -> void: if GlobalConfig.DEBUG: print("Dizzy effect started with duration:", duration, " and intensity:", intensity) var dizzy = dizzy_scene.instantiate() @@ -568,3 +578,17 @@ func dizzy_effect(duration := 3.5, intensity := 1.5, play_animation :=true, pla await Util.wait(duration + 0.1) # 等待效果结束 dizzy.queue_free() # 清理节点 print("Dizzy effect finished and node freed.") + + +# flash +var flash_scene = preload("uid://cjsr2wh502l4") +var flash_sfx = preload("uid://civuwccn6v6yk") #sfx_闷雷声 + + +func flash_effect(visible_nodes_r1: Array, visible_nodes_r2: Array, play_sfx := true) -> void: + var flash = flash_scene.instantiate() + flash.name = "FlashEffect" + get_tree().current_scene.add_child(flash) + flash.flash(visible_nodes_r1, visible_nodes_r2) + if play_sfx: + AudioManager.play_sfx(flash_sfx) diff --git a/scene/effect/flash_effect.gd b/scene/effect/flash_effect.gd new file mode 100644 index 00000000..6a94af5f --- /dev/null +++ b/scene/effect/flash_effect.gd @@ -0,0 +1,33 @@ +extends CanvasLayer + +@onready var light = $PointLight2D as PointLight2D + + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_EFFECT + + +# 两轮闪烁时 visible 的 canvas items +func flash(visible_nodes_r1: Array, visible_nodes_r2: Array) -> void: + for n in visible_nodes_r1: + n.show() + n.modulate.a = 0 + for n in visible_nodes_r2: + n.show() + n.modulate.a = 0 + light.energy = 0 + var tween = create_tween() + tween.tween_property(light, "energy", 7.0, 0.1) + for n in visible_nodes_r1: + 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", 7.0, 0.01) + for n in visible_nodes_r1: + tween.parallel().tween_callback(n.hide) + for n in visible_nodes_r2: + tween.parallel().tween_property(n, "modulate:a", 1.0, 0.03) + tween.tween_property(light, "energy", 0.0, 0.1) + for n in visible_nodes_r2: + tween.parallel().tween_callback(n.hide) diff --git a/scene/effect/flash_effect.gd.uid b/scene/effect/flash_effect.gd.uid new file mode 100644 index 00000000..2768446a --- /dev/null +++ b/scene/effect/flash_effect.gd.uid @@ -0,0 +1 @@ +uid://d4gc0admco0xi diff --git a/scene/effect/flash_effect.tscn b/scene/effect/flash_effect.tscn new file mode 100644 index 00000000..584c4e76 --- /dev/null +++ b/scene/effect/flash_effect.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=3 uid="uid://cjsr2wh502l4"] + +[ext_resource type="Script" uid="uid://d4gc0admco0xi" path="res://scene/effect/flash_effect.gd" id="1_gh0fy"] + +[sub_resource type="Gradient" id="Gradient_vddfx"] +offsets = PackedFloat32Array(0.00475436, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_m20cf"] +gradient = SubResource("Gradient_vddfx") +width = 1000 +height = 320 + +[node name="FlashEffect" type="CanvasLayer"] +script = ExtResource("1_gh0fy") + +[node name="PointLight2D" type="PointLight2D" parent="."] +position = Vector2(263, 158) +energy = 0.0 +range_layer_min = -10 +range_layer_max = 2 +range_item_cull_mask = 4 +texture = SubResource("GradientTexture2D_m20cf") diff --git a/scene/ground/scene/c02/s03_院子.gd b/scene/ground/scene/c02/s03_院子.gd index 10c8ada1..016675de 100644 --- a/scene/ground/scene/c02/s03_院子.gd +++ b/scene/ground/scene/c02/s03_院子.gd @@ -365,9 +365,3 @@ func run_away(): camera.force_offset.x = 0.0 SceneManager.unlock_player() SceneManager.get_ground_loader().transition_to_scene("c02_s06", "right") - - -# 招魂幡 -func on_spirit_flag_interacted() -> void: - $"../DeployLayer/Event2D李氏给药完成/招魂幡".play() - $"Sfx招魂幡".play(2.3) diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 129384f7..6e7a7cb9 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=111 format=3 uid="uid://djc2uaefhmu7"] +[gd_scene load_steps=112 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"] @@ -76,6 +76,7 @@ [ext_resource type="Script" uid="uid://cts4fvgir2lur" path="res://scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd" id="72_18q2p"] [ext_resource type="Script" uid="uid://bkkiyk5jkdw4d" path="res://manager/event_manager/event2d.gd" id="73_lt8c0"] [ext_resource type="Texture2D" uid="uid://bjdy0o0qngukl" path="res://asset/art/scene/c03/s00_院子与其他/e_运尸车.png" id="74_f5g0l"] +[ext_resource type="Script" uid="uid://b5to0url3t7h4" path="res://scene/ground/script/c02/s03_event李氏给药完成.gd" id="75_0ek7o"] [ext_resource type="SpriteFrames" uid="uid://cmvr3lbwe3h7p" path="res://asset/art/gif/c03_特写与游戏动画/c03_特写与游戏动画_frames.tres" id="75_allmh"] [ext_resource type="Script" uid="uid://3umabu63j1t5" path="res://scene/ground/script/c02/s03_event第三章开幕.gd" id="77_ndc6g"] [ext_resource type="Texture2D" uid="uid://by7ibwt45ndlm" path="res://asset/art/scene/c03/s00_第三章开幕/第三章开场.png" id="77_pyl5w"] @@ -208,12 +209,12 @@ fill = 1 fill_from = Vector2(0.5, 0.465812) fill_to = Vector2(1, 1) -[sub_resource type="Gradient" id="Gradient_vddfx"] +[sub_resource type="Gradient" id="Gradient_ndc6g"] offsets = PackedFloat32Array(0.00475436, 1) colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1) [sub_resource type="GradientTexture2D" id="GradientTexture2D_3nako"] -gradient = SubResource("Gradient_vddfx") +gradient = SubResource("Gradient_ndc6g") width = 1000 height = 300 @@ -329,7 +330,7 @@ tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector2(194, -1)] +"values": [Vector2(234, -1)] } [sub_resource type="Animation" id="Animation_ndc6g"] @@ -345,7 +346,7 @@ tracks/0/keys = { "times": PackedFloat32Array(0, 4.3, 12.8, 17.9), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, -"values": [Vector2(194, -1), Vector2(194, -420), Vector2(194, -420), Vector2(194, 0)] +"values": [Vector2(234, -1), Vector2(234, -460), Vector2(234, -460), Vector2(234, 0)] } tracks/1/type = "method" tracks/1/imported = false @@ -447,12 +448,6 @@ bus = &"game_sfx" script = ExtResource("4_ygnci") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" -[node name="Sfx招魂幡" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="7"] -stream = ExtResource("11_pjl66") -bus = &"game_sfx" -script = ExtResource("4_ygnci") -metadata/_custom_type_script = "uid://rq6w1vuhuq1m" - [node name="BGSprite2D" parent="Ground" index="2"] light_mask = 5 texture = ExtResource("3_sqv8l") @@ -496,6 +491,12 @@ target_scene = "c02_s10" target_portal = "left" status = "opened" +[node name="EventBinder" type="Node" parent="Ground/DeployLayer/portal_3"] +script = ExtResource("12_2b6vx") +updater_event = &"current_chapter_stage" +updater_stages = Array[int]([1, 2]) +metadata/_custom_type_script = "uid://0wjaho6qkg6s" + [node name="portal_4" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")] position = Vector2(1876, 49) debug_note = "霸凌传送点" @@ -1388,15 +1389,17 @@ script = ExtResource("4_ygnci") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Event2D第二章_纸人" type="Node2D" parent="Ground/DeployLayer" index="39"] +visible = false script = ExtResource("73_lt8c0") -event_name = &"current_chapter_stage" -event_stages = Array[int]([3]) +event_name = &"c03_well_show" +event_stages = Array[int]([0]) +pre_event_name = &"current_chapter_stage" +pre_event_stages = Array[int]([3]) metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" [node name="排队常人" type="Sprite2D" parent="Ground/DeployLayer/Event2D第二章_纸人"] -visible = false light_mask = 5 -z_index = 4 +z_index = 22 position = Vector2(1227.5, -119) texture = ExtResource("18_crgo6") centered = false @@ -1410,9 +1413,8 @@ updater_stages = Array[int]([0]) metadata/_custom_type_script = "uid://0wjaho6qkg6s" [node name="排队纸人" type="Sprite2D" parent="Ground/DeployLayer/Event2D第二章_纸人"] -visible = false light_mask = 5 -z_index = 4 +z_index = 23 position = Vector2(1227.5, -119) texture = ExtResource("19_vddfx") centered = false @@ -1428,26 +1430,48 @@ metadata/_custom_type_script = "uid://0wjaho6qkg6s" [node name="Event2D李氏给药完成" type="Node2D" parent="Ground/DeployLayer" index="40"] position = Vector2(1858, 24) -script = ExtResource("73_lt8c0") +script = ExtResource("75_0ek7o") event_name = &"c03_li_paperwoman" event_stages = Array[int]([3]) +pre_event_name = &"current_chapter_stage" +pre_event_stages = Array[int]([3, 4, 5]) metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" +[node name="Sfx招魂幡" type="AudioStreamPlayer" parent="Ground/DeployLayer/Event2D李氏给药完成"] +stream = ExtResource("11_pjl66") +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") -[node name="招魂幡" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D李氏给药完成"] -position = Vector2(118, -30) -sprite_frames = ExtResource("75_allmh") -animation = &"招魂幡" - -[node name="Ambush招魂幡" parent="Ground/DeployLayer/Event2D李氏给药完成/招魂幡" instance=ExtResource("25_iyaiw")] -position = Vector2(10, 19) +[node name="Ambush招魂幡" parent="Ground/DeployLayer/Event2D李氏给药完成" instance=ExtResource("25_iyaiw")] +position = Vector2(-124, -10) trigger_mode = "interact" one_shot = false cooldown_time = 2.0 -hook_method = "on_spirit_flag_interacted" + +[node name="招魂幡" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D李氏给药完成"] +position = Vector2(-134, -29) +sprite_frames = ExtResource("75_allmh") +animation = &"招魂幡" + +[node name="鬼差吸魂" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D李氏给药完成"] +visible = false +position = Vector2(34, -20) +sprite_frames = ExtResource("75_allmh") +animation = &"鬼差吸魂" +autoplay = "鬼差吸魂" +flip_h = true +script = ExtResource("67_h2lyo") +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) +texture = ExtResource("65_rgrem") [node name="Event第三章开幕" type="Node2D" parent="Ground/DeployLayer" index="41"] position = Vector2(1490, 0) @@ -1519,7 +1543,7 @@ position = Vector2(414, 46) enter_affected_by_visibility = true [node name="CameraPivot" type="Marker2D" parent="Ground/DeployLayer/Event第三章开幕"] -position = Vector2(194, -1) +position = Vector2(234, -1) [node name="AnimationPlayer" type="AnimationPlayer" parent="Ground/DeployLayer/Event第三章开幕"] libraries = { diff --git a/scene/ground/scene/c03/s06_胖子卧室.gd b/scene/ground/scene/c03/s06_胖子卧室.gd index 18aa214a..8d6a2405 100644 --- a/scene/ground/scene/c03/s06_胖子卧室.gd +++ b/scene/ground/scene/c03/s06_胖子卧室.gd @@ -19,6 +19,8 @@ var closeup_hole: Closeup2D var counter_range: Line2D #endregion +@onready var sfx_drag_box := $"Sfx拖箱子" as Sfx + # 读取设置变量名 func _setup_node_reference() -> void: @@ -83,12 +85,17 @@ func _on_counter_interacted(): player.position_updated.connect(on_player_moved_counter) pushing_counter = !pushing_counter +var _player_last_pos: Vector2 func on_player_moved_counter(global_pos: Vector2): var x = global_pos.x + player_pull_offset_x ArchiveManager.set_global_entry(&"c03_big_counter_x", x) counter.global_position.x = x after_counter_moved() + if _player_last_pos != global_pos: + _player_last_pos = global_pos + if not sfx_drag_box.playing: + sfx_drag_box.play() # 柜子移动后,检查是否展示后面的洞 diff --git a/scene/ground/scene/c03/s06_胖子卧室.tscn b/scene/ground/scene/c03/s06_胖子卧室.tscn index 4b5394e9..10a88b66 100644 --- a/scene/ground/scene/c03/s06_胖子卧室.tscn +++ b/scene/ground/scene/c03/s06_胖子卧室.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=3 uid="uid://cxacrp8mrrbry"] +[gd_scene load_steps=14 format=3 uid="uid://cxacrp8mrrbry"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_h8p4n"] [ext_resource type="Script" uid="uid://cxgeon4qs1klv" path="res://scene/ground/scene/c03/s06_胖子卧室.gd" id="2_f527l"] @@ -7,6 +7,7 @@ [ext_resource type="Texture2D" uid="uid://c2qdnw8b0rcah" path="res://asset/art/scene/c03/s06_胖子卧室/bg_胖子卧室背景.png" id="4_h8p4n"] [ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="5_6747o"] [ext_resource type="Texture2D" uid="uid://q20myccplwm7" path="res://asset/art/scene/c03/s06_胖子卧室/fg_胖子卧室前景.png" id="5_f527l"] +[ext_resource type="AudioStream" uid="uid://owp3occawow5" path="res://asset/audio/sfx/交互/第一章/sfx_拖箱子.ogg" id="5_uibf0"] [ext_resource type="Texture2D" uid="uid://coaugvwesap35" path="res://asset/art/scene/c03/s06_胖子卧室/胖子卧室柜子.png" id="6_wsqdn"] [ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="7_wsqdn"] [ext_resource type="PackedScene" uid="uid://5uqi3c3f4va1" path="res://scene/ground/script/c03/s06_closeup柜子后的洞.tscn" id="8_1qtud"] @@ -38,6 +39,12 @@ mode = "场景背景音" "感应玩家操作" = false metadata/_custom_type_script = "uid://rq6w1vuhuq1m" +[node name="Sfx拖箱子" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"] +stream = ExtResource("5_uibf0") +bus = &"game_sfx" +script = ExtResource("4_481tl") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="BGSprite2D" parent="Ground" index="2"] light_mask = 5 position = Vector2(26.5, 0) diff --git a/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd b/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd index 0e3bcc58..6d455dce 100644 --- a/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd +++ b/scene/ground/script/c02/s03_event_2d第二章结束井边演出.gd @@ -42,12 +42,12 @@ func _start_well_show() -> void: tween.tween_property(xchan, "modulate:a", 1.0, 1.0) await tween.finished await Util.wait(2.5) + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_井边回忆") + await DialogueManager.dialogue_ended var was_choosen = ArchiveManager.get_global_value("has_exited_by_player_choice") if not was_choosen: - DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_井边回忆") - else: - DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_井边回忆_无选项") - await DialogueManager.dialogue_ended + DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_井边回忆_选择") + await DialogueManager.dialogue_ended $"Sfx井边演出结束".play() tween = create_tween() tween.tween_interval(2.5) diff --git a/scene/ground/script/c02/s03_event李氏给药完成.gd b/scene/ground/script/c02/s03_event李氏给药完成.gd new file mode 100644 index 00000000..b8a73ce6 --- /dev/null +++ b/scene/ground/script/c02/s03_event李氏给药完成.gd @@ -0,0 +1,52 @@ +@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: + ($"Ambush招魂幡" as Ambush2D).triggered.connect(on_spirit_flag_interacted) + + +var interacted_times := 0 +var ghost_appeared_times := 0 + +# 招魂幡 +func on_spirit_flag_interacted() -> void: + interacted_times += 1 + var flash_ghost := false + if interacted_times == 2: + # 鬼差 + flash_ghost = true + elif interacted_times > 2: + #随机出现 + flash_ghost = randf() > 0.9 + if flash_ghost: + 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_招魂幡鬼差") + + +func _on_pre_stage_updated() -> void: + pass + + +func _on_stage_updated() -> void: + pass diff --git a/scene/ground/script/c02/s03_event李氏给药完成.gd.uid b/scene/ground/script/c02/s03_event李氏给药完成.gd.uid new file mode 100644 index 00000000..95c14710 --- /dev/null +++ b/scene/ground/script/c02/s03_event李氏给药完成.gd.uid @@ -0,0 +1 @@ +uid://b5to0url3t7h4 diff --git a/scene/ground/script/c03/s04_closeup麻将出千游戏.gd b/scene/ground/script/c03/s04_closeup麻将出千游戏.gd index ba4f1378..f7400dae 100644 --- a/scene/ground/script/c03/s04_closeup麻将出千游戏.gd +++ b/scene/ground/script/c03/s04_closeup麻将出千游戏.gd @@ -6,7 +6,7 @@ signal exit(arg) @onready var front_lay = $MahjongsFrontLay as CanvasItem @onready var hand = $Hand as CanvasItem @onready var stand_root = $Stand as CanvasItem -@onready var grid = $Stand/MahjongGrid as GridContainer +@onready var right_mahjong_place = %MarginContainer13 as MarginContainer var mahjongs = { # [type][number] @@ -114,7 +114,10 @@ func _toggle_selected(btn:TextureButton, selected: bool) -> void: btn.size_flags_vertical = Control.SIZE_SHRINK_END +# 对齐 mahjongs_btn 与 cards 的同时, 重置间隙与透明度 func _align_card_textures() -> void: + # 消除间隙 + right_mahjong_place.custom_minimum_size.x = 0.0 # holding_mahjongs_btn 长度会变 for k in holding_mahjongs_btn_dict: holding_mahjongs_btn_dict[k].texture_normal = mahjongs[holding_cards_dict[k]] @@ -218,22 +221,31 @@ func _exchange_texture_and_card(btn1: TextureButton, btn2: TextureButton) -> voi _toggle_hightlight_for_all(false) # 开始执行替换 freezing = true - await Util.wait(2.0) + await Util.wait(1.5) # 重新排序 standing_cards.sort() $SfxShuffle.play() _align_card_textures() + await Util.wait(0.8) + # 将要打出的牌移到右侧 var standing_id = standing_cards.find(require_dealing_card) + _toggle_selected(standing_mahjongs_btn[standing_id], true) + await Util.wait(0.8) + _toggle_selected(standing_mahjongs_btn[standing_id], false) standing_cards.remove_at(standing_id) - standing_cards.append("") + standing_cards.append(require_dealing_card) + $SfxSwitch.play() + _align_card_textures() + # 右侧牌和其他牌保持间隙, _align_card_textures 会重置间隙与透明度 + right_mahjong_place.custom_minimum_size.x = 40.0 # 替换到手牌后消失 var holding_id = holding_cards_dict.find_key(require_replacing_card) var holding_btn = holding_mahjongs_btn_dict[holding_id] holding_mahjongs_btn_dict.erase(holding_id) holding_cards_dict.erase(holding_id) var tween = create_tween() - # 渐隐,表示打出 - tween.tween_property(standing_mahjongs_btn[standing_id], "modulate:a", 0.0, 3.0) + # 渐隐,表示打出(最右侧 13 号) + tween.tween_property(standing_mahjongs_btn[13], "modulate:a", 0.0, 3.0) # tween.parallel().tween_property(holding_btn, "modulate:a", 0.0, 3.0) # tween.tween_callback(holding_btn.queue_free) tween.tween_callback(func(): holding_btn.disabled = true) diff --git a/scene/ground/script/c03/s04_closeup麻将出千游戏.tscn b/scene/ground/script/c03/s04_closeup麻将出千游戏.tscn index 0c55a355..edf8000a 100644 --- a/scene/ground/script/c03/s04_closeup麻将出千游戏.tscn +++ b/scene/ground/script/c03/s04_closeup麻将出千游戏.tscn @@ -364,6 +364,7 @@ texture = ExtResource("4_f3y72") stretch_mode = 3 [node name="MahjongGrid" type="GridContainer" parent="Stand"] +unique_name_in_owner = true custom_minimum_size = Vector2(0, 55) layout_mode = 0 offset_left = 86.0 @@ -375,215 +376,282 @@ theme_override_constants/h_separation = 1 theme_override_constants/v_separation = 0 columns = 15 -[node name="MarginContainer" type="MarginContainer" parent="Stand/MahjongGrid"] +[node name="MarginContainer0" type="MarginContainer" parent="Stand/MahjongGrid"] layout_mode = 2 size_flags_vertical = 3 -[node name="0" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer"] +[node name="0" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer0"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 8 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer/0"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer0/0"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="1" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer1" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="1" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer1"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/1"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer1/1"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="2" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer2" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="2" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer2"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/2"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer2/2"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="3" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer3" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="3" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer3"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/3"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer3/3"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="4" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer4" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="4" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer4"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/4"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer4/4"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="5" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer5" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="5" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer5"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/5"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer5/5"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="6" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer6" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="6" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer6"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/6"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer6/6"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="7" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer7" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="7" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer7"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/7"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer7/7"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="8" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer8" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="8" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer8"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/8"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer8/8"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="9" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer9" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="9" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer9"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/9"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer9/9"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="10" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer10" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="10" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer10"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/10"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer10/10"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="11" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer11" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="11" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer11"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/11"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer11/11"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="12" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer12" type="MarginContainer" parent="Stand/MahjongGrid"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="12" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer12"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/12"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer12/12"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10 texture = SubResource("GradientTexture2D_dgp1q") -[node name="13" type="TextureButton" parent="Stand/MahjongGrid"] +[node name="MarginContainer13" type="MarginContainer" parent="Stand/MahjongGrid"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 3 + +[node name="13" type="TextureButton" parent="Stand/MahjongGrid/MarginContainer13"] unique_name_in_owner = true custom_minimum_size = Vector2(27, 47) layout_mode = 2 +size_flags_horizontal = 8 size_flags_vertical = 10 texture_normal = ExtResource("4_k8d28") ignore_texture_size = true stretch_mode = 3 -[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/13"] +[node name="光束" type="PointLight2D" parent="Stand/MahjongGrid/MarginContainer13/13"] position = Vector2(13.5, 22.5) energy = 0.3 range_layer_max = 10