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 00000000..dd1e0b81 Binary files /dev/null and b/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png differ diff --git a/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png.import b/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png.import new file mode 100644 index 00000000..fdf889d9 --- /dev/null +++ b/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nqypj8826k11" +path="res://.godot/imported/0.png-0fea6adc9820785d482a7e6c6c8d7348.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/gif/c03_特写与游戏动画/鬼差吸魂/0.png" +dest_files=["res://.godot/imported/0.png-0fea6adc9820785d482a7e6c6c8d7348.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png b/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png new file mode 100644 index 00000000..9605397d Binary files /dev/null and b/asset/art/gif/c03_特写与游戏动画/鬼差吸魂/1.png differ 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