demo0.1.2.1 按反馈需求整改

This commit is contained in:
cakipaul 2025-07-01 19:40:30 +08:00
parent 4cb89de3d7
commit ee0eae7452
49 changed files with 455 additions and 232 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://diuh52qo2o6pa"
path="res://.godot/imported/f_院子内墙上文字.png-107caa7c643223d1c6850711ee51240a.ctex"
path="res://.godot/imported/f_院子内墙上文字与柜子痕迹.png-0cef3994ff5def82c7145639956c0415.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png"
dest_files=["res://.godot/imported/f_院子内墙上文字.png-107caa7c643223d1c6850711ee51240a.ctex"]
source_file="res://asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字与柜子痕迹.png"
dest_files=["res://.godot/imported/f_院子内墙上文字与柜子痕迹.png-0cef3994ff5def82c7145639956c0415.ctex"]
[params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -20,6 +20,8 @@ setting_记忆,记忆G,,,,,
setting_全屏游戏,全屏游戏,,,,,Full Screen
setting_窗口置顶,窗口置顶,,,,,Top Window
ux_panel_笔记,线索,,,,,
c02_小手其他交易,...还有什么东西能跟它交换呢?,,,,,
这是什么鬼东西,它是在讨要什么 [ID:],这是什么鬼东西,它是在讨要什么 [ID:],,,,,
index_新游戏,新游戏,,,,,New Game
index_继续游戏,继续游戏,,,,,Resume
index_退出游戏,退出游戏,,,,,Exit
@ -87,7 +89,7 @@ prop_小猫玩具的脑袋_说明,某个玩具的部件,有些眼熟,,,,,
prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png],,
prop_无头小猫玩具_说明,没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练,,,,,
prop_小猫玩具完整,小猫玩具,,,[#texture=c02/新小猫全身.png],,
prop_小猫玩具完整_说明,这玩具看久了还蛮可爱的,,,,,
prop_小猫玩具完整_说明,这个玩具看久了有些眼熟,,,,,
prop_撕下的照片上,撕下的照片(上),,,[#texture=c02/照片_上.png],,
prop_撕下的照片上_说明,女儿生辰纪念 于 民国元年,,,,,
prop_老虎钳,老虎钳,,,[#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png],,
@ -151,7 +153,7 @@ c02_海报_戏法班,朱连魁全班戏法——「各有幻女...演技新奇
c02_芦昌路26,芦昌路26弄3号我父母真的住在这里吗...,,,,,
c02_s01_下黄包车,院长在信里提到的就是这里,,,,,
c02_s01_寻人启事,寻人启事...,,,,,
c02_冷飕飕的,冷飕飕的...,,,,,
c02_冷飕飕的,船明天就开了,今晚来这或许是我最后的机会。,,,,,
c02_太暗了,太暗了,找找能照明的东西吧。,,,,,
c02_陈旧的煤油灯,上了年头的煤油灯,似乎很久没用过了。,,,,,
c02_使用煤油灯,呼,那股阴冷的感觉也消失了。,,,,,
@ -165,13 +167,14 @@ c02_s03_干掉的血迹,血迹看上去干了很久,血脚印有大有小,
c02_院子_算命摊位,算命的摊位?,,,,,
c02_院子_要下雨,好像要下雨了?,,,,,
c02_s03_掉鞋子,怎么天上掉了个小鞋子下来?,,,,,
c02_s03_铁门,锁住了,,,,,
c02_s03_铁门,被铁链锁住了,,,,,
c02_保卫科花名册os,芦昌公寓居民登记簿,黄国栋记。,,,,,
c02_保卫科花名册首次互动结束,3012上面有我的名字看来确实是这里...,,,,,
c02_保卫科祭台os,祭台是专门供奉这只大老鼠的?,,,,,
c02_保卫科老鼠精,鼠歌 <br><br>天地小如喉,<br>红轮自吞吐。<br>多少世间人,<br>都被红轮误。,,,,,
c02_小手其他交易,...还有什么东西能跟它交换呢?,,,,,
c02_小手还能换什么,...还有什么东西能跟它交换呢?,,,,,
c02_小手出现摔倒,,,,,,
这是什么鬼东西,它是在讨要什么 [ID:],这是什么鬼东西,它是在讨要什么 [ID:],,,,,
c02_小手是什么鬼,这是什么鬼东西,它是在讨要什么,,,,,
c02_小手再次出现,又来一个!,,,,,
c02_一楼楼道被挡住,被挡住了,,,,,
c02_一楼戏台,盖着布的木头架子...用来做什么的呢,,,,,
@ -187,6 +190,8 @@ c02_二楼楼梯杂物堆,堆满了杂物,看样子没办法从这里上去了
c02_二楼水盆,盆里的水很清澈,看上去像是刚盛的。,,,,,
c02_二楼老鼠洞,到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。,,,,,
c02_二楼血脚印,又是这种小小尖尖的血脚印...,,,,,
c02_老鼠叼鞋引开疯子,那女孩为什么要我引开这个疯男人?,,,,,
c02_小手换回弹珠,我要去找洞里的小手把弹珠拿回来。,,,,,
c02_离开红色演出,刚才那些...到底是怎么回事?,,,,,
c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...,,,,,
c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
20 setting_全屏游戏 全屏游戏 Full Screen
21 setting_窗口置顶 窗口置顶 Top Window
22 ux_panel_笔记 线索
23 c02_小手其他交易 ...还有什么东西能跟它交换呢?
24 这是什么鬼东西,它是在讨要什么 [ID:] 这是什么鬼东西,它是在讨要什么 [ID:]
25 index_新游戏 新游戏 New Game
26 index_继续游戏 继续游戏 Resume
27 index_退出游戏 退出游戏 Exit
89 prop_无头小猫玩具 无头小猫玩具 [#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png]
90 prop_无头小猫玩具_说明 没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练
91 prop_小猫玩具完整 小猫玩具 [#texture=c02/新小猫全身.png]
92 prop_小猫玩具完整_说明 这玩具看久了还蛮可爱的 这个玩具看久了有些眼熟
93 prop_撕下的照片上 撕下的照片(上) [#texture=c02/照片_上.png]
94 prop_撕下的照片上_说明 女儿生辰纪念 于 民国元年
95 prop_老虎钳 老虎钳 [#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png]
153 c02_芦昌路26 芦昌路26弄3号,我父母真的住在这里吗...
154 c02_s01_下黄包车 院长在信里提到的就是这里
155 c02_s01_寻人启事 寻人启事...
156 c02_冷飕飕的 冷飕飕的... 船明天就开了,今晚来这或许是我最后的机会。
157 c02_太暗了 太暗了,找找能照明的东西吧。
158 c02_陈旧的煤油灯 上了年头的煤油灯,似乎很久没用过了。
159 c02_使用煤油灯 呼,那股阴冷的感觉也消失了。
167 c02_院子_算命摊位 算命的摊位?
168 c02_院子_要下雨 好像要下雨了?
169 c02_s03_掉鞋子 怎么天上掉了个小鞋子下来?
170 c02_s03_铁门 锁住了 被铁链锁住了
171 c02_保卫科花名册os 芦昌公寓居民登记簿,黄国栋记。
172 c02_保卫科花名册首次互动结束 3012?上面有我的名字,看来确实是这里...
173 c02_保卫科祭台os 祭台是专门供奉这只大老鼠的?
174 c02_保卫科老鼠精 鼠歌 <br><br>天地小如喉,<br>红轮自吞吐。<br>多少世间人,<br>都被红轮误。
175 c02_小手其他交易 c02_小手还能换什么 ...还有什么东西能跟它交换呢?
176 c02_小手出现摔倒 ?!
177 这是什么鬼东西,它是在讨要什么 [ID:] c02_小手是什么鬼 这是什么鬼东西,它是在讨要什么 [ID:] 这是什么鬼东西,它是在讨要什么
178 c02_小手再次出现 又来一个!
179 c02_一楼楼道被挡住 被挡住了
180 c02_一楼戏台 盖着布的木头架子...用来做什么的呢
190 c02_二楼水盆 盆里的水很清澈,看上去像是刚盛的。
191 c02_二楼老鼠洞 到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。
192 c02_二楼血脚印 又是这种小小尖尖的血脚印...
193 c02_老鼠叼鞋引开疯子 那女孩为什么要我引开这个疯男人?
194 c02_小手换回弹珠 我要去找洞里的小手把弹珠拿回来。
195 c02_离开红色演出 刚才那些...到底是怎么回事?
196 c02_瞎子卧室_八卦图 「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...
197 c02_瞎子卧室_十字架 院长房间里也有一个类似的十字架。

View File

@ -85,7 +85,7 @@
无头小猫玩具 [#texture=c02/新小猫身体.png] [#inspect=c02/新小猫身体_特写.png] [ID:prop_无头小猫玩具]
没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练 [ID:prop_无头小猫玩具_说明]
小猫玩具 [#texture=c02/新小猫全身.png] [ID:prop_小猫玩具完整]
玩具看久了还蛮可爱的[ID:prop_小猫玩具完整_说明]
个玩具看久了有些眼熟[ID:prop_小猫玩具完整_说明]
撕下的照片(上) [#texture=c02/照片_上.png] [ID:prop_撕下的照片上]
女儿生辰纪念 于 民国元年 [ID:prop_撕下的照片上_说明]
老虎钳 [#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png] [ID:prop_老虎钳]
@ -180,7 +180,7 @@
院长在信里提到的就是这里 [ID:c02_s01_下黄包车]
寻人启事... [ID:c02_s01_寻人启事]
# c02-s02 走道
冷飕飕的... [ID:c02_冷飕飕的]
船明天就开了,今晚来这或许是我最后的机会。 [ID:c02_冷飕飕的]
太暗了,找找能照明的东西吧。 [ID:c02_太暗了]
上了年头的煤油灯,似乎很久没用过了。 [ID:c02_陈旧的煤油灯]
呼,那股阴冷的感觉也消失了。 [ID:c02_使用煤油灯]
@ -191,19 +191,23 @@
自制的八音盒,这么用心的小玩意,怎么会被人扔在这里呢? [ID:c02_s02_八音盒]
别出心裁的小机关,缺了点东西,暂时还不能用 [ID:c02_s02_八音盒缺人偶]
# c02 院子
好像要下雨了? [ID:c02_院子_保卫科旁]
血迹看上去干了很久,血脚印有大有小,咦,还有个特别小的... [ID:c02_s03_干掉的血迹]
算命的摊位? [ID:c02_院子_算命摊位]
好像要下雨了? [ID:c02_院子_要下雨]
怎么天上掉了个小鞋子下来? [ID:c02_s03_掉鞋子]
锁住了 [ID:c02_s03_铁门]
被铁链锁住了 [ID:c02_s03_铁门]
三快三慢?是和那个肉铺老板交流的暗号吗? [ID:c02_偷听李癞对话后]
这里之前放着的东西好像被人挪走了? [ID:c02_柜子可放置区域]
# c02 保卫科
芦昌公寓居民登记簿,黄国栋记。 [ID:c02_保卫科花名册os]
3012上面有我的名字看来确实是这里... [ID:c02_保卫科花名册首次互动结束]
祭台是专门供奉这只大老鼠的? [ID:c02_保卫科祭台os]
鼠歌 <br><br>天地小如喉,<br>红轮自吞吐。<br>多少世间人,<br>都被红轮误。 [ID:c02_保卫科老鼠精]
# c02 小手
...还有什么东西能跟它交换呢? [ID:]
...还有什么东西能跟它交换呢? [ID:c02_小手还能换什么]
[ID:c02_小手出现摔倒]
这是什么鬼东西,它是在讨要什么 [ID:]
这是什么鬼东西,它是在讨要什么 [ID:c02_小手是什么鬼]
又来一个! [ID:c02_小手再次出现]
# c02 内侧楼道
被挡住了 [ID:c02_一楼楼道被挡住]
@ -223,6 +227,8 @@
盆里的水很清澈,看上去像是刚盛的。 [ID:c02_二楼水盆]
到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。 [ID:c02_二楼老鼠洞]
又是这种小小尖尖的血脚印... [ID:c02_二楼血脚印]
那女孩为什么要我引开这个疯男人?[ID:c02_老鼠叼鞋引开疯子]
我要去找洞里的小手把弹珠拿回来。 [ID:c02_小手换回弹珠]
# c02 瞎子卧室
刚才那些...到底是怎么回事? [ID:c02_离开红色演出]
「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图]

View File

@ -24,12 +24,13 @@
: 这是我家,我的东西,我的宝贝,听到没有?!别吵了...都出去! [#anonymous] [ID:c02_2疯子_3]
=> END
~ c02_s11_井边疯子对话
~ c02_看井对话
: 囡囡看,月亮掉进水里喽! [ID:c02_3疯子_1]
: 不对、不对,连月亮也骗我! [ID:c02_3疯子_2]
: 月牙儿,不吉利,圆圆的,一块也不能缺... [ID:c02_3疯子_3]
#=> END
#~ c02_疯子对话圆月亮
=> END
~ c02_井边疯子对话
: 你看见没有?这月亮够不够圆? [ID:c02_疯子对话圆月亮1]
: 杆子细又高、灯火照一照、庙里影子绕、大家哈哈笑... [ID:c02_疯子对话圆月亮2]
: 扁担长,板凳宽,板凳没有扁担长,扁担没有板凳宽...一担挑啊,一担挑! [ID:c02_疯子对话圆月亮3]

View File

@ -1,7 +1,8 @@
shader_type canvas_item;
uniform float vignette_intensity : hint_range(0.0, 4.0) = 0.4;
uniform vec4 vignette_rgb : source_color = vec4(0.247, 0.149, 0.192, 1.0);
uniform float vignette_ratio : hint_range(0.0, 1.0) = 0.4;
uniform float vignette_intensity : hint_range(0.0, 4.0) = 0.3;
uniform vec3 vignette_rgb : source_color = vec3(0.753, 0.0, 0.0);
uniform sampler2D SCREEN_TEXTURE: hint_screen_texture, filter_linear_mipmap;
float vignette(vec2 uv){
@ -12,8 +13,7 @@ float vignette(vec2 uv){
void fragment(){
vec4 color = texture(SCREEN_TEXTURE, SCREEN_UV);
vec4 text = texture(TEXTURE, UV);
text.rgba *= (vignette_rgb.rgba);
text.rgba *= (1.0 - vignette(UV));
COLOR = vec4((text.rgb)*color.rgb, text.a);
float a = 1.0 - vignette(UV);
vec3 rgb = vignette_ratio * vignette_rgb + (1.0 - vignette_ratio) * color.rgb;
COLOR = vec4(rgb, a);
}

View File

@ -10,17 +10,14 @@ class_name AssembledArchive extends Resource
if val and val.length() != 7:
printerr("[AssembledArchive] current_scene is not valid: " + val)
return
current_chapter = int(val.substr(1, 2))
current_section = int(val.substr(5))
# 尝试后台预先加载该场景
if GroundLoader.GROUND_SCENE_PATH_DICT.has(val):
var path = GroundLoader.GROUND_SCENE_PATH_DICT[val]
if GlobalConfig.DEBUG:
print("[AssembledArchive] preload scene: " + path)
ResourceLoader.load_threaded_request(path, "PackedScene")
# current_chapter and current_section are derived from current_scene
# 0:未开始游戏1:序章2-5:一四章6:结尾
@export var current_chapter := 0
@export var current_section := 0
# player's info
# 只有在 >=0 的情况下才会生效
@export var player_global_position_x := -100.0
@ -71,3 +68,13 @@ func set_global_entry(property: StringName, value) -> void:
func get_global_value(property: StringName) -> Variant:
return global_data_dict.get(property)
func set_chapter_if_greater(c : int) -> void:
# 1:序章2-5:一四章6:结尾
if c < 1 or c > 6:
printerr("[AssembledArchive] set_chapter: invalid chapter value: " + str(c))
return
if current_chapter >= c:
return
print("[AssembledArchive] set_chapter_if_greater: " + str(c))
current_chapter = c

View File

@ -96,8 +96,6 @@ func get_concise_timemark() -> String:
+ str(ArchiveManager.current_archive_id)
+ "_c"
+ str(archive.current_chapter)
+ "_s"
+ str(archive.current_section)
+ " "
+ str(hour)
+ ":"

View File

@ -21,32 +21,33 @@ var ground: Ground2D
# 场景名字映射到路径
static var GROUND_SCENE_PATH_DICT = {
"c01_s05": "res://scene/ground/scene/c01/s05_院长房间.tscn",
"c01_s06": "res://scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn",
"c01_s07": "res://scene/ground/scene/c01/s07_书店外.tscn",
"c01_s08": "res://scene/ground/scene/c01/s08_书店.tscn",
"c01_s09": "res://scene/ground/scene/c01/s09_公寓楼外.tscn",
"c01_s10": "res://scene/ground/scene/c01/s10_公寓楼道.tscn",
"c01_s11": "res://scene/ground/scene/c01/s11_黄包车演出.tscn",
"c01_s12": "res://scene/ground/scene/c01/s12_书店外_诡异版.tscn",
"c02_s01": "res://scene/ground/scene/c02/s01_公寓门口.tscn",
"c02_s02": "res://scene/ground/scene/c02/s02_过道.tscn",
"c02_s03": "res://scene/ground/scene/c02/s03_院子.tscn",
"c02_s04": "res://scene/ground/scene/c02/s04_保卫科.tscn",
"c02_s05": "res://scene/ground/scene/c02/s05_一楼内侧楼道.tscn",
"c02_s06": "res://scene/ground/scene/c02/s06_二楼.tscn",
"c02_s07": "res://scene/ground/scene/c02/s07_二楼内侧楼道.tscn",
"c02_s08": "res://scene/ground/scene/c02/s08_瞎子卧室.tscn",
"c02_s09": "res://scene/ground/scene/c02/s09_裂缝.tscn",
"c02_s10": "res://scene/ground/scene/c02/s10_空房间.tscn",
"c02_s11": "res://scene/ground/scene/c02/s11_一楼火灾.tscn", # 注:该场景合并在了 c02_s03 院子中
"c02_s12": "res://scene/ground/scene/c02/s12_盒子猫.tscn",
"c02_s13": "res://scene/ground/scene/c02/s13_盒子猫二楼.tscn",
"c02_s14": "res://scene/ground/scene/c02/s14_盒子猫二楼内侧.tscn",
"c02_s15": "res://scene/ground/scene/c02/s15_盒子猫一楼内侧.tscn",
"c02_s16": "res://scene/ground/scene/c02/s16_盒子猫三楼内侧.tscn",
"c02_s17": "res://scene/ground/scene/c02/s17_盒子猫三楼.tscn",
"c02_s18": "res://scene/ground/scene/c02/s18_盒子猫一楼.tscn",
"c01_s05": "uid://dlx5xxbg53rb8",
"c01_s06": "uid://bx16c8nn32f40",
"c01_s07": "uid://ds2iyfndwamiy",
"c01_s08": "uid://cwu4dhayra8pg",
"c01_s09": "uid://c777lv8mjojcw",
"c01_s10": "uid://be57l2o3vxxtm",
"c01_s11": "uid://coiumaaenimbc",
"c01_s12": "uid://bol5hl68pbpgq",
"c02_s01": "uid://bbs7yy5aofw1v",
"c02_s02": "uid://brck77w81fhvc",
"c02_s03": "uid://djc2uaefhmu7",
"c02_s04": "uid://bivc5cdap370p",
"c02_s05": "uid://cp8d3ag5nbjq0",
"c02_s06": "uid://cootarwb44vvh",
"c02_s07": "uid://t4xjt774ngwh",
"c02_s08": "uid://ce2vyyg2reg52",
"c02_s09": "uid://ryups1dnwdto",
"c02_s10": "uid://dny21yhtuteap",
"c02_s11": "uid://dq41rvwl5hyrk", # 注:该场景合并在了 c02_s03 院子中
"c02_s12": "uid://da4cuf2i3nwpj",
"c02_s13": "uid://bvjutch6jex0v",
"c02_s14": "uid://d0p4x5st2r315",
"c02_s15": "uid://b21p53g42j2nt",
"c02_s16": "uid://22hc3oe8t0id",
"c02_s17": "uid://cbr6gbgrl2wb1",
"c02_s18": "uid://d27gv3pbkn4b8",
"c03_s01": "uid://dlrbhfvnd3cs0", # 瞎子理发店
}

View File

@ -30,6 +30,7 @@ func play_intro_dialogue():
func _on_ground_ready() -> void:
ArchiveManager.archive.set_chapter_if_greater(1)
ambush = $"../DeployLayer/ambush鸡毛掸子"
frame = $"../DeployLayer/画框"
paper = $"../DeployLayer/oneshot纸片"

View File

@ -754,7 +754,6 @@ unique_name_in_owner = true
position = Vector2(270, 23.5)
texture = ExtResource("12_jtglg")
trigger_mode = "interact"
lock_player_on_playing_dialogue = null
hook_animation = "使用鸡毛掸子"
hook_method = "lock_on_use_stick"

View File

@ -230,7 +230,7 @@ hook_dialogue_title = "c01_s06_走廊前对话"
position = Vector2(308, 43)
one_shot = false
cooldown_time = 3.0
lock_player_on_playing_dialogue = null
lock_player_on_playing_dialogue = false
hook_animation = "门口_观望"
[node name="踢球男孩" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_erliv")]
@ -425,7 +425,6 @@ move_configs = Array[Dictionary]([{
position = Vector2(1, 65)
trigger_mode = "area_enter"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "obstacles_ambush1_triggered"
[node name="Area2D" parent="Ground/DeployLayer/【站立小孩-1】/桌椅ambush1" index="1"]
@ -491,7 +490,6 @@ position = Vector2(78, 43)
position = Vector2(1, 65)
trigger_mode = "area_enter"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "obstacles_ambush2_triggered"
[node name="Area2D" parent="Ground/DeployLayer/【站立小孩-2】/桌椅ambush2" index="1"]
@ -533,7 +531,6 @@ bus = &"game_sfx"
position = Vector2(1809, 56)
one_shot = false
cooldown_time = 1.0
lock_player_on_playing_dialogue = null
hook_method = "game_intro"
[node name="【胖小孩背着残疾小孩】" parent="Ground/DeployLayer" index="18" instance=ExtResource("8_ouldg")]
@ -574,7 +571,6 @@ move_configs = Array[Dictionary]([{
position = Vector2(1, 65)
trigger_mode = "area_enter"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "obstacles_ambush3_triggered"
[node name="Area2D" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/桌椅ambush3" index="1"]
@ -637,7 +633,6 @@ hook_method = "talk3"
position = Vector2(4546, 45)
one_shot = false
cooldown_time = 0.1
lock_player_on_playing_dialogue = null
hook_method = "game_succeed"
[node name="Fog" parent="Ground/DeployLayer/猫鼠游戏胜利ambush" instance=ExtResource("14_d5def")]

View File

@ -23,6 +23,7 @@ var ambush_seller: Ambush2D
var bookstore_portal: Portal2D
func _on_ground_ready() -> void:
ArchiveManager.archive.set_chapter_if_greater(2)
luren = $"../DeployLayer/陆仁舞刀" as ProAnimatedSprite2D
fog = $"../DeployLayer/portal_1/Fog" as Fog2D
if data.fog_disappeared:

View File

@ -131,7 +131,6 @@ texture = ExtResource("5_tnrke")
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.0
lock_player_on_playing_dialogue = null
hook_method = "play_shelf_game"
[node name="Interactable信件书桌" parent="Ground/DeployLayer" index="3" instance=ExtResource("7_fue0t")]
@ -175,7 +174,6 @@ position = Vector2(537, 21)
enabled = false
trigger_mode = "interact"
cooldown_time = 1.0
lock_player_on_playing_dialogue = null
hook_method = "pay_off_wage"
[node name="老板" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="8"]

View File

@ -148,7 +148,6 @@ position = Vector2(-119, 13)
position = Vector2(96, 20)
one_shot = false
cooldown_time = 0.1
lock_player_on_playing_dialogue = null
hook_method = "player_been_passed"
[node name="脚步声2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Ghost"]

View File

@ -216,42 +216,36 @@ position = Vector2(1365, 4)
trigger_mode = "area_enter"
one_shot = false
cooldown_time = 1.0
lock_player_on_playing_dialogue = null
hook_method = "pop_title_1"
[node name="ambush_title2" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_3k8jj")]
position = Vector2(2870, -10)
trigger_mode = "area_enter"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "pop_title_2"
[node name="ambush_title3" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_3k8jj")]
position = Vector2(6341, 3)
trigger_mode = "area_enter"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "pop_title_3"
[node name="ambush_dialog2" parent="Ground/DeployLayer" index="7" instance=ExtResource("6_3k8jj")]
position = Vector2(866, 5)
trigger_mode = "area_enter"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "dialog2"
[node name="ambush_dialog3" parent="Ground/DeployLayer" index="8" instance=ExtResource("6_3k8jj")]
position = Vector2(3448, -8)
trigger_mode = "area_enter"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "dialog3"
[node name="ambush_dialog4" parent="Ground/DeployLayer" index="9" instance=ExtResource("6_3k8jj")]
position = Vector2(5305, -2)
trigger_mode = "area_enter"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "dialog4"
[node name="路灯序列1" type="Node2D" parent="Ground/AmbientLayer" index="0"]

View File

@ -159,7 +159,6 @@ position = Vector2(1127, 28)
enabled = false
one_shot = false
cooldown_time = 0.1
lock_player_on_playing_dialogue = null
hook_method = "player_been_catched"
[node name="脚步声2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Ghost"]
@ -227,7 +226,6 @@ action_configs = Array[Dictionary]([{
[node name="Ambush举碗小孩" parent="Ground/DeployLayer/举碗小孩" instance=ExtResource("9_nqlku")]
position = Vector2(0, 53)
trigger_mode = "interact"
lock_player_on_playing_dialogue = null
hook_method = "ambush_begger_interacted"
[node name="Interactable碗" parent="Ground/DeployLayer/举碗小孩" instance=ExtResource("5_6jrnc")]
@ -249,7 +247,6 @@ position = Vector2(0, 92)
enabled = false
one_shot = false
cooldown_time = 1.0
lock_player_on_playing_dialogue = null
hook_method = "player_run_away"
[node name="Light" parent="Ground/AmbientLayer" index="0" instance=ExtResource("5_kywnm")]

View File

@ -37,13 +37,11 @@ texture = ExtResource("5_j2ctx")
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(78, 27)
immediately = true
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(368, 4)
target_scene = "c02_s02"
target_portal = "left"
matched_sign_texture = null
[node name="Note门口" parent="Ground/DeployLayer" index="2" instance=ExtResource("6_bhi7l")]
position = Vector2(285, -20)

View File

@ -86,13 +86,11 @@ position = Vector2(-25, 24)
enabled = false
target_scene = "c02_s01"
target_portal = "right"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(676, 6)
target_scene = "c02_s03"
target_portal = "left"
matched_sign_texture = null
[node name="InteractableLeftPortal" parent="Ground/DeployLayer" index="2" instance=ExtResource("13_ck13g")]
position = Vector2(28, -24)
@ -110,7 +108,6 @@ frame_progress = 1.0
[node name="Ambush太暗了" parent="Ground/DeployLayer" index="4" instance=ExtResource("8_52as8")]
position = Vector2(177, 42)
lock_player_on_playing_dialogue = null
hook_os_key = "c02_太暗了"
[node name="海报1" parent="Ground/DeployLayer" index="5" instance=ExtResource("12_0fckv")]
@ -147,7 +144,6 @@ enabled = false
trigger_mode = "interact"
one_shot = false
cooldown_time = 0.0
lock_player_on_playing_dialogue = null
[node name="wall" type="StaticBody2D" parent="Ground/DeployLayer/Ambush纸人"]
position = Vector2(3, 4)
@ -169,7 +165,6 @@ position = Vector2(358, 50)
trigger_mode = "interact"
collision_width_and_x = Vector2(23.86, 0)
cooldown_time = 1.0
lock_player_on_playing_dialogue = null
hook_method = "lumber_interacted"
[node name="杂物眨眼睛" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
@ -211,7 +206,6 @@ mute_when_interacted = true
position = Vector2(525, 61)
one_shot = false
cooldown_time = 1.0
lock_player_on_playing_dialogue = null
hook_method = "check_if_show_shoes"
[node name="煤油灯" parent="Ground/DeployLayer" index="17" instance=ExtResource("17_mpkj1")]
@ -232,7 +226,6 @@ texture = ExtResource("22_jg8g0")
[node name="Ambush小蝉闪现" parent="Ground/DeployLayer" index="19" instance=ExtResource("8_52as8")]
position = Vector2(388, 47)
lock_player_on_playing_dialogue = null
hook_method = "xiaochan_disappear"
[node name="小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer/Ambush小蝉闪现"]

View File

@ -43,6 +43,7 @@ func _on_ground_ready() -> void:
counter = $"../DeployLayer/Interactable柜子" as Interactable2D
counter.interacted.connect(_on_counter_interacted)
if ArchiveManager.get_global_value(&"c02_counter_pushed_out"):
counter.get_node("../Note柜子可放置区域").enable = false
counter.visible = true
if not ArchiveManager.get_global_value(&"c02_burning"):
# 点燃前
@ -185,9 +186,11 @@ func eavesdrop() -> void:
SceneManager.player_action(14, true)
ArchiveManager.set_global_entry(&"c02_eavesdrop_finished", true)
await Util.wait(1.5)
SceneManager.pop_os_with_str("c02_偷听李癞对话后")
SceneManager.unlock_player()
func _setup_bully_or_burning(reenter_scene := false):
if not ArchiveManager.get_global_value(&"c02_eavesdrop_finished"):
# 弹珠游戏结束后就开始霸凌,此时禁止偷听。第一章结束后(火灾结束),第二章再偷听
@ -258,7 +261,6 @@ func bully_end():
func block_right_move():
SceneManager.pop_os_with_str("c02_点火前阻止右移")
# var count_down_tween:Tween
# func count_down():
@ -276,6 +278,7 @@ func _on_counter_interacted():
SceneManager.pop_os_with_str("c02_火灾等待准备")
return
counter.enabled = false
counter.get_node("../Note柜子可放置区域").enable = false
if not ArchiveManager.get_global_value(&"c02_burning"):
GlobalFunctor.c02_fire_count_down_stop()
# 6: 低位点火

View File

@ -22,7 +22,7 @@
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="8_xt8j0"]
[ext_resource type="Texture2D" uid="uid://bgpf35bhrkl86" path="res://asset/art/scene/c02/s03_公寓一楼院子/铁门/打开 底层.png" id="9_liq0c"]
[ext_resource type="Texture2D" uid="uid://cvtbiefbffjd7" path="res://asset/art/scene/c02/门_贴图/1015房间.png" id="9_vddfx"]
[ext_resource type="Texture2D" uid="uid://diuh52qo2o6pa" path="res://asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png" id="10_3nako"]
[ext_resource type="Texture2D" uid="uid://diuh52qo2o6pa" path="res://asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字与柜子痕迹.png" id="10_3nako"]
[ext_resource type="PackedScene" uid="uid://dnbutraty2285" path="res://scene/entity/partical/particals_ash_vertical.tscn" id="10_c3f8o"]
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="10_jme4f"]
[ext_resource type="Texture2D" uid="uid://dooaferyy44rs" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_前侧楼梯.png" id="10_ud2jg"]
@ -290,21 +290,18 @@ data = {
oneshot_animation = ""
[node name="Sfx闷雷" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
process_mode = 1
stream = ExtResource("6_vddfx")
bus = &"game_sfx"
script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx小鞋落地" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
process_mode = 1
stream = ExtResource("7_df1yo")
bus = &"game_sfx"
script = ExtResource("4_ygnci")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx小蝉哼歌" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
process_mode = 1
stream = ExtResource("6_jhod7")
volume_db = 16.0
bus = &"game_sfx"
@ -331,55 +328,53 @@ autoplay = "一楼二楼外侧楼道拼接-晃脚动画"
position = Vector2(25, 11)
target_scene = "c02_s02"
target_portal = "right"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(2286, 16)
matched_sign_texture = null
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="2"]
[node name="Ambush保卫科旁边os" parent="Ground/DeployLayer" index="2" instance=ExtResource("25_iyaiw")]
position = Vector2(138, 47)
hook_os_key = "c02_院子_保卫科旁"
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
modulate = Color(1, 1, 1, 0)
position = Vector2(1189, 0)
texture = ExtResource("6_d7h4s")
[node name="禁火等墙面文字" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
[node name="禁火等墙面文字" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
position = Vector2(955, 5)
texture = ExtResource("10_3nako")
[node name="portal_1" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_00b7a")]
[node name="portal_1" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")]
position = Vector2(200, 10)
debug_note = "1012保卫科"
portal_name = "1"
target_scene = "c02_s04"
target_portal = "left"
status = "opened"
matched_sign_texture = null
[node name="portal_2" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")]
[node name="portal_2" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_00b7a")]
position = Vector2(928, 7)
debug_note = "一楼内侧过道
"
portal_name = "2"
target_scene = "c02_s05"
target_portal = "left"
matched_sign_texture = null
[node name="portal_3" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_00b7a")]
[node name="portal_3" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_00b7a")]
position = Vector2(1704, 14)
debug_note = "空房间 1014"
portal_name = "3"
target_scene = "c02_s10"
target_portal = "left"
status = "opened"
matched_sign_texture = null
[node name="portal_4" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_00b7a")]
[node name="portal_4" parent="Ground/DeployLayer" index="8" instance=ExtResource("5_00b7a")]
position = Vector2(1876, 49)
debug_note = "霸凌传送点"
portal_name = "4"
matched_sign_texture = null
[node name="Note血迹" parent="Ground/DeployLayer" index="8" instance=ExtResource("6_t48d1")]
[node name="Note血迹" parent="Ground/DeployLayer" index="9" instance=ExtResource("6_t48d1")]
position = Vector2(523, 78)
title_filter = "c02"
note_key = "c02_s03_干掉的血迹"
@ -391,7 +386,7 @@ position = Vector2(132, 10)
sprite_frames = ExtResource("4_gd6xp")
animation = &"肉铺门口血迹"
[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="9"]
[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="10"]
[node name="灯笼" type="Sprite2D" parent="Ground/DeployLayer/灯笼"]
position = Vector2(1644, -86)
@ -441,7 +436,7 @@ energy = 0.7
texture = SubResource("GradientTexture2D_kyfht")
texture_scale = 2.2
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="10"]
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="11"]
visible = false
[node name="地上纸钱" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"]
@ -476,12 +471,11 @@ position = Vector2(898, -162)
z_index = 15
position = Vector2(1964, -209)
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="11"]
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="12"]
visible = false
[node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")]
position = Vector2(1353, 33)
lock_player_on_playing_dialogue = null
hook_method = "shocking_lighting"
[node name="排队常人" type="Sprite2D" parent="Ground/DeployLayer/闷雷_纸人闪现"]
@ -504,12 +498,11 @@ range_layer_max = 2
range_item_cull_mask = 4
texture = SubResource("GradientTexture2D_3nako")
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="12" instance=ExtResource("25_iyaiw")]
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="13" instance=ExtResource("25_iyaiw")]
position = Vector2(1611, 46)
lock_player_on_playing_dialogue = null
hook_os_key = "c02_院子_要下雨"
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="13" instance=ExtResource("7_em2ma")]
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("7_em2ma")]
position = Vector2(809, 75)
sign_mark_offset = Vector2(0, -16.88)
enabled = false
@ -520,7 +513,7 @@ position = Vector2(0, -7)
scale = Vector2(0.15, 0.15)
texture = ExtResource("8_plfv5")
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="14"]
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="15"]
position = Vector2(800, -173)
script = ExtResource("26_o1qbs")
event = "c02_madman_interacted"
@ -536,7 +529,7 @@ bus = &"game_sfx"
script = ExtResource("54_o1qbs")
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Interactable铁门" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_xt8j0")]
[node name="Interactable铁门" parent="Ground/DeployLayer" index="16" instance=ExtResource("8_xt8j0")]
light_mask = 5
position = Vector2(1222, 28)
texture = ExtResource("7_gd6xp")
@ -545,6 +538,12 @@ action_key = 3
interacted_texture = ExtResource("9_liq0c")
prop_key = "prop_老虎钳"
[node name="SfxInvalid" parent="Ground/DeployLayer/Interactable铁门" index="0"]
process_mode = 0
[node name="SfxSuccess" parent="Ground/DeployLayer/Interactable铁门" index="1"]
process_mode = 0
[node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Area2D" index="0"]
shape = SubResource("RectangleShape2D_er6ob")
@ -556,7 +555,7 @@ collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Wall"]
shape = SubResource("RectangleShape2D_mdix7")
[node name="Note算命摊位" parent="Ground/DeployLayer" index="16" instance=ExtResource("6_t48d1")]
[node name="Note算命摊位" parent="Ground/DeployLayer" index="17" instance=ExtResource("6_t48d1")]
position = Vector2(725, 45)
note_key = "c02_院子_算命摊位"
@ -564,13 +563,13 @@ note_key = "c02_院子_算命摊位"
position = Vector2(0, 18)
texture = ExtResource("6_1tart")
[node name="煤油灯" parent="Ground/DeployLayer" index="17" instance=ExtResource("10_jme4f")]
[node name="煤油灯" parent="Ground/DeployLayer" index="18" instance=ExtResource("10_jme4f")]
position = Vector2(290, 1)
gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
[node name="煤油灯2" parent="Ground/DeployLayer" index="18" instance=ExtResource("10_jme4f")]
[node name="煤油灯2" parent="Ground/DeployLayer" index="19" instance=ExtResource("10_jme4f")]
position = Vector2(610, 1)
gaslight_texture = ExtResource("11_g0qhj")
ground_light_texture = ExtResource("12_ni5ro")
@ -578,7 +577,7 @@ gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
[node name="煤油灯3" parent="Ground/DeployLayer" index="19" instance=ExtResource("10_jme4f")]
[node name="煤油灯3" parent="Ground/DeployLayer" index="20" instance=ExtResource("10_jme4f")]
position = Vector2(857, 1)
gaslight_texture = ExtResource("13_hw832")
ground_light_texture = ExtResource("14_7pq5y")
@ -586,49 +585,47 @@ gaslight_energy = 1.5
gaslight_ground_energy = 0.7
mute_when_interacted = false
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="20"]
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="21"]
self_modulate = Color(0.739288, 0.739288, 0.739288, 1)
light_mask = 5
z_index = 10
position = Vector2(2062, 60)
texture = ExtResource("21_4n8vm")
[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="21"]
[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="22"]
light_mask = 5
z_index = 10
position = Vector2(1025, 27)
texture = ExtResource("22_3y5s5")
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="22" instance=ExtResource("23_81juy")]
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="23" instance=ExtResource("23_81juy")]
position = Vector2(466, 3)
packed_scene = ExtResource("24_0o4rt")
collision_width_and_x = Vector2(40, 0)
[node name="Closeup井" parent="Ground/DeployLayer" index="23" instance=ExtResource("23_81juy")]
[node name="Closeup井" parent="Ground/DeployLayer" index="24" instance=ExtResource("23_81juy")]
z_index = 6
position = Vector2(2063, 50)
packed_scene = ExtResource("26_yy4fp")
action_key = 3
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="24" instance=ExtResource("25_iyaiw")]
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="25" instance=ExtResource("25_iyaiw")]
position = Vector2(1319, 40)
lock_player_on_playing_dialogue = null
hook_method = "shocking_lighting"
[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="25" instance=ExtResource("25_iyaiw")]
[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="26" instance=ExtResource("25_iyaiw")]
position = Vector2(1836, 7)
trigger_mode = "interact"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "eavesdrop"
[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="26"]
[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="27"]
position = Vector2(1835, -16)
sprite_frames = SubResource("SpriteFrames_0o4rt")
autoplay = "default"
frame_progress = 0.643855
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="27" instance=ExtResource("35_plfv5")]
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="28" instance=ExtResource("35_plfv5")]
z_index = 10
position = Vector2(2037, 67)
sprite_frames = ExtResource("4_gd6xp")
@ -640,7 +637,7 @@ sign_mark_height = 11.0
speaking_sign_height = 49.0
sign_x_offset = -2.0
collision_width_and_x = Vector2(37.08, 0)
dialogue_title = "c02_s11_井边疯子对话"
dialogue_title = "c02_井边疯子对话"
[node name="StaticBody2D" type="StaticBody2D" parent="Ground/DeployLayer/Npc井边疯子"]
position = Vector2(11, 7)
@ -651,7 +648,7 @@ position = Vector2(-11, -3)
shape = SubResource("RectangleShape2D_bbhbr")
disabled = true
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="28"]
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="29"]
visible = false
position = Vector2(2154, 60)
@ -659,7 +656,6 @@ position = Vector2(2154, 60)
position = Vector2(-185, -10)
enabled = false
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "bully_ambush"
[node name="小蝉" parent="Ground/DeployLayer/霸凌" instance=ExtResource("33_ycojw")]
@ -706,7 +702,6 @@ position = Vector2(-116, -13)
enabled = false
one_shot = false
cooldown_time = 4.0
lock_player_on_playing_dialogue = null
hook_method = "block_right_move"
[node name="wall" type="StaticBody2D" parent="Ground/DeployLayer/霸凌"]
@ -718,7 +713,7 @@ collision_mask = 0
shape = SubResource("RectangleShape2D_d7h4s")
disabled = true
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="29"]
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="30"]
visible = false
[node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"]
@ -924,7 +919,6 @@ sign_mark_offset = Vector2(13.57, -39.84)
enabled = false
trigger_mode = "interact"
one_shot = false
lock_player_on_playing_dialogue = null
[node name="小婵呼吸" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾/Ambush等待的小蝉"]
z_index = 9
@ -961,7 +955,7 @@ script = ExtResource("54_o1qbs")
loop = true
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Interactable柜子" parent="Ground/DeployLayer" index="30" instance=ExtResource("8_xt8j0")]
[node name="Interactable柜子" parent="Ground/DeployLayer" index="31" instance=ExtResource("8_xt8j0")]
visible = false
position = Vector2(1772, 48)
texture = ExtResource("32_cpifc")
@ -977,6 +971,11 @@ animation = &"箱子着火"
autoplay = "箱子着火"
frame_progress = 0.453645
[node name="Note柜子可放置区域" parent="Ground/DeployLayer" index="32" instance=ExtResource("6_t48d1")]
position = Vector2(1771, 39)
title_filter = "c02"
note_key = "c02_柜子可放置区域"
[node name="PointLight2D" type="PointLight2D" parent="Ground/AmbientLayer" index="0"]
light_mask = 4
position = Vector2(2189, -142)

View File

@ -22,6 +22,10 @@ func _on_ground_ready() -> void:
if not ArchiveManager.get_global_value(&"c02_tin_coin_taken"):
closeup_tin_coin.exit.connect(_on_closeup_tin_coin_exited)
var closeup_book = $"../DeployLayer/Closeup花名册" as Closeup2D
if closeup_book.icount == 0:
closeup_book.exit.connect(_on_first_read, CONNECT_ONE_SHOT)
func _on_closeup_tin_coin_exited(arg = null):
if arg == true:
@ -29,3 +33,7 @@ func _on_closeup_tin_coin_exited(arg = null):
SceneManager.enable_prop_item_silently("prop_锡箔元宝")
await Util.wait(0.5)
SceneManager.enable_prop_item("prop_锡箔元宝")
func _on_first_read(_arg) -> void:
SceneManager.pop_os_with_str("c02_保卫科花名册首次互动结束")

View File

@ -64,11 +64,9 @@ texture = ExtResource("5_cy26p")
position = Vector2(67, 29)
target_scene = "c02_s03"
target_portal = "1"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(551, 22)
matched_sign_texture = null
[node name="涂鸦提示" type="Sprite2D" parent="Ground/DeployLayer" index="2"]
position = Vector2(275, 13)
@ -97,6 +95,12 @@ hide_texture = true
gaslight_texture = ExtResource("9_a43aq")
ground_light_texture = ExtResource("10_svuj3")
[node name="SfxInvalid" parent="Ground/DeployLayer/煤油灯" index="0"]
process_mode = 0
[node name="SfxSuccess" parent="Ground/DeployLayer/煤油灯" index="1"]
process_mode = 0
[node name="CollisionShape2D" parent="Ground/DeployLayer/煤油灯/Area2D" index="0"]
shape = SubResource("RectangleShape2D_gk1h4")

View File

@ -129,11 +129,9 @@ offset = Vector2(0, -240)
position = Vector2(24, 8)
target_scene = "c02_s03"
target_portal = "2"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(734, 33)
matched_sign_texture = null
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_tueh3")]
position = Vector2(513, 37)
@ -141,7 +139,6 @@ debug_note = "通往 1012 房间"
portal_name = "1"
target_scene = "c02_s07"
target_portal = "right"
matched_sign_texture = null
[node name="Npc疯子" parent="Ground/DeployLayer" index="3" instance=ExtResource("9_8t4w6")]
light_mask = 7
@ -164,7 +161,6 @@ texture = SubResource("GradientTexture2D_2yvhw")
position = Vector2(177, 50)
enabled = false
trigger_mode = "interact"
lock_player_on_playing_dialogue = null
hook_method = "wood_puppet"
[node name="火苗" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="5"]
@ -252,7 +248,6 @@ note_key = "c02_一楼死老鼠"
position = Vector2(585, 80)
enabled = false
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "mouse_pick_meat"
[node name="老鼠叼肉" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
@ -288,7 +283,6 @@ visible = false
visibility_layer = 5
position = Vector2(394, 53)
enabled = false
lock_player_on_playing_dialogue = null
hook_method = "xiaochan_disappear"
[node name="ProSprite" parent="Ground/DeployLayer/Ambush小蝉消失" instance=ExtResource("22_heq1x")]

View File

@ -27,6 +27,8 @@ func _on_ground_ready() -> void:
# 1: 牵手跑结束; 2: 谢幕演出结束
and EventManager.get_stage(&"c02_burning_end") == 1
):
# 禁止再回到瞎子卧室
ArchiveManager.set_global_entry(&"c02_the_blind_room_unlocked", false)
# 第一章火灾结束,尾声演出
_c02_final_show.call_deferred()
else:
@ -49,7 +51,6 @@ func _on_ground_ready() -> void:
)
)
closeup_ball = $"../DeployLayer/Closeup弹珠游戏" as Closeup2D
if ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked"):
@ -75,15 +76,14 @@ func glimpse_hide_out():
func _on_mice_hole_interacted():
mice_hole.enabled = false
SceneManager.freeze_player(0)
SceneManager.lock_player()
var animated_sprite = $"../DeployLayer/小老鼠拖鞋子" as AnimatedSprite2D
animated_sprite.visible = true
animated_sprite.frame = 8
animated_sprite.play()
await animated_sprite.animation_finished
animated_sprite.visible = false
mice_hole.enabled = true
SceneManager.unlock_player()
if mice_hole.interacted_times >= 2:
# 触发疯子撞墙,疯子在一楼内侧过道中消失
@ -97,9 +97,10 @@ func _on_mice_hole_interacted():
var sprite = $"../DeployLayer/疯子撞墙"
sprite.play("疯子跑动")
play("疯子撞墙")
await Util.wait(3.5)
SceneManager.pop_os_with_str("c02_老鼠叼鞋引开疯子")
SceneManager.pop_debug_dialog_info("音效", "待补充撞墙音效")
SceneManager.release_player()
func boys_ball_game() -> void:
@ -108,12 +109,13 @@ func boys_ball_game() -> void:
if stage == 0:
ArchiveManager.set_global_entry(&"c02_ball_game_stage", 1)
ArchiveManager.set_global_entry(&"c02_pliers_to_ball", true)
SceneManager.freeze_player(0)
SceneManager.lock_player()
DialogueManager.show_dialogue_balloon(dialogue_c02, "c02_s05_三男孩弹珠游戏1")
await DialogueManager.dialogue_ended
SceneManager.release_player()
SceneManager.pop_os_with_str("c02_小手换回弹珠")
SceneManager.unlock_player()
elif stage == 1 or stage == 2:
SceneManager.freeze_player(0)
SceneManager.lock_player()
if stage == 1 and SceneManager.get_current_prop(false) != "prop_弹珠":
var hud = SceneManager.get_prop_hud() as PropHud
hud.on_toggle_invalid_prop()
@ -124,7 +126,7 @@ func boys_ball_game() -> void:
closeup_ball.exit.connect(_on_ball_game_exit, CONNECT_ONE_SHOT)
closeup_ball.display()
# closeup_ball.enabled = false
SceneManager.release_player()
SceneManager.unlock_player()
func _on_ball_game_exit(success = null):
@ -175,3 +177,5 @@ func _on_exit_final_show(_arg):
# 1: 牵手跑结束; 2: 谢幕演出结束
EventManager.set_stage(&"c02_burning_end", 2)
EventManager.set_stage_if_greater("handnote_stage", 5)
# TODO 小蝉上楼后开启第二章
ArchiveManager.archive.set_chapter_if_greater(3)

View File

@ -858,21 +858,18 @@ autoplay_group = &"c02_楼道2"
metadata/_custom_type_script = "uid://cpejxlfni6n52"
[node name="Sfx翻找东西" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
process_mode = 1
stream = ExtResource("5_lh55k")
bus = &"game_sfx"
script = ExtResource("4_2e08x")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx擦亮火柴" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
process_mode = 1
stream = ExtResource("5_wywax")
bus = &"game_sfx"
script = ExtResource("4_2e08x")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx偷看关门" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"]
process_mode = 1
stream = ExtResource("7_7kxvk")
bus = &"game_sfx"
script = ExtResource("4_2e08x")
@ -887,11 +884,9 @@ texture = ExtResource("3_och2w")
position = Vector2(34, 8)
target_scene = "c02_s07"
target_portal = "1"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(873, 15)
matched_sign_texture = null
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_haidv")]
position = Vector2(108, 14)
@ -900,7 +895,6 @@ portal_name = "1"
target_scene = "c02_s08"
target_portal = "left"
status = "locked"
matched_sign_texture = null
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("4_haidv")]
position = Vector2(222, 14)
@ -909,7 +903,6 @@ portal_name = "2"
target_scene = "c03_s01"
holding = true
holding_reason_key = "c02_杂物堆堵住"
matched_sign_texture = null
prop_key = "prop_2014钥匙"
[node name="楼道杂物堆" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
@ -942,6 +935,12 @@ position = Vector2(616, -14)
ground_light_texture = ExtResource("8_7x2h6")
ground_height_offset = 15.0
[node name="SfxInvalid" parent="Ground/DeployLayer/煤油灯" index="0"]
process_mode = 0
[node name="SfxSuccess" parent="Ground/DeployLayer/煤油灯" index="1"]
process_mode = 0
[node name="CollisionShape2D" parent="Ground/DeployLayer/煤油灯/Area2D" index="0"]
shape = SubResource("RectangleShape2D_lh55k")
@ -963,6 +962,12 @@ disable_prop_after_interacted = true
prop_key = "prop_小鞋子1"
prop_key2 = "prop_小鞋子2"
[node name="SfxInvalid" parent="Ground/DeployLayer/Interactable老鼠洞" index="0"]
process_mode = 0
[node name="SfxSuccess" parent="Ground/DeployLayer/Interactable老鼠洞" index="1"]
process_mode = 0
[node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable老鼠洞/Area2D" index="0"]
shape = SubResource("RectangleShape2D_7kxvk")
@ -1015,7 +1020,6 @@ enabled = false
trigger_mode = "interact"
one_shot = false
cooldown_time = 0.1
lock_player_on_playing_dialogue = null
hook_method = "boys_ball_game"
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Ground/DeployLayer/Ambush三男孩"]
@ -1149,7 +1153,6 @@ texture = SubResource("GradientTexture2D_h3h1a")
position = Vector2(553, -5)
texture = ExtResource("37_osg51")
collision_width_and_x = Vector2(150, 0)
lock_player_on_playing_dialogue = null
hook_method = "glimpse_hide_out"
[node name="MainPlayer" parent="Ground" index="5"]

View File

@ -39,14 +39,12 @@ texture = ExtResource("3_t0s64")
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(40, 11)
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(589, 18)
debug_note = "下到一楼内侧楼道"
target_scene = "c02_s05"
target_portal = "1"
matched_sign_texture = null
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_5krke")]
position = Vector2(374, 17)
@ -55,7 +53,6 @@ debug_note = "二楼过道
portal_name = "1"
target_scene = "c02_s06"
target_portal = "left"
matched_sign_texture = null
[node name="涂鸦提示" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
position = Vector2(272, 15)

View File

@ -125,7 +125,6 @@ autoplay_group = &"c02_房间里2"
metadata/_custom_type_script = "uid://cpejxlfni6n52"
[node name="Sfx癞子对视惊吓" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
process_mode = 1
stream = ExtResource("5_0qeqe")
volume_db = 2.0
bus = &"game_sfx"
@ -133,14 +132,12 @@ script = ExtResource("3_t3h08")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
process_mode = 1
stream = ExtResource("6_nnqdd")
bus = &"game_sfx"
script = ExtResource("3_t3h08")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx吹灭蜡烛" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"]
process_mode = 1
stream = ExtResource("7_quq80")
bus = &"game_sfx"
script = ExtResource("3_t3h08")
@ -168,11 +165,9 @@ position = Vector2(68, 17)
target_scene = "c02_s06"
target_portal = "1"
status = "locked"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(676, 63)
matched_sign_texture = null
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_1ws4i")]
position = Vector2(214, 31)
@ -184,7 +179,6 @@ target_portal = "left"
status = "opened"
default_sign_texture = ExtResource("8_dkqw0")
opened_sign_texture = ExtResource("8_dkqw0")
matched_sign_texture = null
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/portal_1"]
show_behind_parent = true
@ -221,6 +215,12 @@ animation_low_mode = true
hide_texture = true
gaslight_energy = 2.0
[node name="SfxInvalid" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="0"]
process_mode = 0
[node name="SfxSuccess" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="1"]
process_mode = 0
[node name="CollisionShape2D" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯/Area2D" index="0"]
shape = SubResource("RectangleShape2D_a48k2")
@ -265,7 +265,6 @@ texture_scale = 1.5
position = Vector2(571, 28)
trigger_mode = "interact"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "hole_interacted"
[node name="Sign" parent="Ground/DeployLayer/Ambush偷听" index="0"]
@ -308,7 +307,6 @@ metadata/_custom_type_script = "uid://wapo47a1oddf"
position = Vector2(522, 31)
enabled = false
trigger_mode = "interact"
lock_player_on_playing_dialogue = null
hook_method = "look_back_hole"
[node name="Note十字架" parent="Ground/DeployLayer" index="11" instance=ExtResource("14_1ws4i")]

View File

@ -325,11 +325,9 @@ texture = ExtResource("13_4alth")
position = Vector2(74, 87)
target_scene = "c02_s08"
target_portal = "right"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(4361, 61)
matched_sign_texture = null
[node name="黑影" type="Sprite2D" parent="Ground/DeployLayer" index="2"]
visible = false
@ -701,7 +699,6 @@ texture = ExtResource("17_drmtd")
[node name="Ambush老鼠" parent="Ground/DeployLayer" index="11" instance=ExtResource("6_6xql4")]
position = Vector2(3822.5, 60.5)
lock_player_on_playing_dialogue = null
hook_method = "mouse_animation"
[node name="老鼠衔大洋" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"]
@ -728,7 +725,6 @@ action_configs = Array[Dictionary]([{
[node name="Ambush剪影指天" parent="Ground/DeployLayer/小床人物" instance=ExtResource("6_6xql4")]
position = Vector2(93, 81)
lock_player_on_playing_dialogue = null
hook_method = "point_to_the_moon"
[node name="黑手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="15"]

View File

@ -123,11 +123,9 @@ position = Vector2(97, 28.5923)
target_scene = "c02_s03"
target_portal = "3"
status = "opened"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(510, 20.7047)
matched_sign_texture = null
[node name="Note进入隧道询问" parent="Ground/DeployLayer" index="2" instance=ExtResource("7_th1ek")]
position = Vector2(362, 20)
@ -242,7 +240,6 @@ texture = ExtResource("15_e24j0")
[node name="Ambush首次进入血脚印" parent="Ground/DeployLayer" index="13" instance=ExtResource("14_3ftnp")]
position = Vector2(192, 38.4517)
cooldown_time = 0.1
lock_player_on_playing_dialogue = null
hook_method = "first_enter_ambush"
[node name="PointLight2D" type="PointLight2D" parent="Ground/AmbientLayer" index="0"]

View File

@ -72,7 +72,6 @@ texture = ExtResource("6_gge8e")
position = Vector2(214, 11)
trigger_mode = "interact"
one_shot = false
lock_player_on_playing_dialogue = null
hook_method = "knock_light_door"
[node name="Ambush猫咪敲门互动" parent="Ground/DeployLayer" index="5" instance=ExtResource("9_yywsi")]
@ -80,7 +79,6 @@ position = Vector2(103, 6)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="Ambush猫咪敲门互动2" parent="Ground/DeployLayer" index="6" instance=ExtResource("9_yywsi")]
@ -88,7 +86,6 @@ position = Vector2(539, 6)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="Ambush猫咪敲门互动3" parent="Ground/DeployLayer" index="7" instance=ExtResource("9_yywsi")]
@ -96,7 +93,6 @@ position = Vector2(663, 5)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="追猫猪头怪_左侧" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_kmk38")]

View File

@ -49,7 +49,6 @@ position = Vector2(105, 16)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="追猫猪头怪" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_fjtlb")]

View File

@ -52,7 +52,6 @@ position = Vector2(106, 6)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="追猫猪头怪" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_pfgbg")]

View File

@ -44,7 +44,6 @@ position = Vector2(661, 6)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="Ambush猫咪敲门互动3" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_emyx1")]
@ -52,7 +51,6 @@ position = Vector2(538, 6)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="Ambush猫咪敲门互动2" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_emyx1")]
@ -60,7 +58,6 @@ position = Vector2(104, 6)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="Ambush猫咪敲门互动4" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_emyx1")]
@ -68,7 +65,6 @@ position = Vector2(219, 6)
trigger_mode = "interact"
one_shot = false
cooldown_time = 1.5
lock_player_on_playing_dialogue = null
global_method = "c02_cat_play_with_door"
[node name="追猫猪头怪" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_xoyld")]

View File

@ -0,0 +1,17 @@
@tool
extends AnimationRoot
# 覆盖该方法
func _default_data() -> Dictionary:
return {}
func _ready() -> void:
super._ready()
if Engine.is_editor_hint():
return
func _on_ground_ready() -> void:
pass

View File

@ -0,0 +1 @@
uid://cim5bqm2nayls

View File

@ -0,0 +1,164 @@
[gd_scene load_steps=10 format=3 uid="uid://dlrbhfvnd3cs0"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_eb2op"]
[ext_resource type="Script" uid="uid://cim5bqm2nayls" path="res://scene/ground/scene/c03/s01_瞎子理发店.gd" id="2_jxanq"]
[ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_lb1oo"]
[ext_resource type="Texture2D" uid="uid://6ol2om68cd1q" path="res://asset/art/scene/c02/s06_二楼楼道/bg_背景.png" id="7_tfw8r"]
[ext_resource type="Texture2D" uid="uid://crev0svowqla" path="res://asset/art/scene/c02/s06_二楼楼道/fg_前景.png" id="24_oel41"]
[sub_resource type="Animation" id="Animation_k01ve"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DirectionalLight2D:energy")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.9]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainPlayer:hide_sprite")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MainPlayer:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_lh55k"]
resource_name = "c02_final_show_end"
length = 14.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MainPlayer:hide_sprite")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 3.8),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainPlayer:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_ciatp"]
resource_name = "c02_final_show_join"
length = 12.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DirectionalLight2D:energy")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 12.1, 12.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [1.0, 1.0, 0.9]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainPlayer:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
_data = {
&"RESET": SubResource("Animation_k01ve"),
&"c02_final_show_end": SubResource("Animation_lh55k"),
&"c02_final_show_join": SubResource("Animation_ciatp")
}
[node name="S01" type="Node2D"]
[node name="Ground" parent="." instance=ExtResource("1_eb2op")]
scene_name = "c03_s01"
player_y = 60
[node name="AnimationPlayer" parent="Ground" index="0"]
libraries = {
&"": SubResource("AnimationLibrary_k01ve")
}
script = ExtResource("2_jxanq")
data = {
"c02_final_show": false,
"oneshot_animation_played": false
}
oneshot_animation = ""
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
script = ExtResource("3_lb1oo")
autoplay_group = &"c02_楼道2"
metadata/_custom_type_script = "uid://cpejxlfni6n52"
[node name="BGSprite2D" parent="Ground" index="2"]
light_mask = 5
position = Vector2(0, -2)
texture = ExtResource("7_tfw8r")
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(34, 8)
target_scene = "c02_s07"
target_portal = "1"
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(873, 15)
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95)
catty_light_energy = 0.5
facing_direction = Vector2(1, 0)
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(0, -5)
scale = Vector2(1.1, 1.1)
texture = ExtResource("24_oel41")
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(26, 150, 900, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.9
blend_mode = 1
[editable path="Ground"]

View File

@ -43,6 +43,7 @@ signal lighted
if Engine.is_editor_hint() and is_node_ready():
_switch_gaslight(debug_light_switch)
@onready var point_light = $PointLight2D as PointLight2D
@onready var point_light_ground = $PointLightGround2D as PointLight2D
@onready var light_sprite2d = $"灯光" as AnimatedSprite2D

View File

@ -68,6 +68,7 @@ var icount: int:
SceneManager.pop_os_with_str("c02_小手出现摔倒")
Util.timer(1.5, $"Sfx摔倒".play)
await SceneManager.get_player().animation_finished
SceneManager.pop_os_with_str("c02_小手是什么鬼")
SceneManager.unlock_player()
elif stage == 1:
# 第二次交互小手
@ -213,7 +214,7 @@ func _on_interacted() -> void:
await Util.wait(1.5)
coin.visible = true
if not ArchiveManager.get_global_value(&"c02_little_hand_dropped_tin"):
SceneManager.pop_os_with_str("c02_小手其他交易")
SceneManager.pop_os_with_str("c02_小手还能换什么")
ArchiveManager.set_global_entry(&"c02_little_hand_dropped_tin", true)
# 是否允许老虎钳换弹珠

View File

@ -35,6 +35,7 @@ var selected_book := NON_SELECTED:
if value != NON_SELECTED:
_toggle_book(true, value[0], value[1])
selected_book = value
var row_correct_status = [false, false, false]
var gameover = false
@ -48,10 +49,12 @@ func _ready() -> void:
# shuffle at the end
_shuffle_books()
func _enter_tree() -> void:
if not Engine.is_editor_hint():
SceneManager.pop_center_notification(tr("input_书架游戏"))
func _init_answer_and_connect_signals() -> void:
current_answer.clear()
for row in range(3):
@ -83,8 +86,8 @@ func _shuffle_books() -> void:
selected_book = NON_SELECTED
suffling = true
rand_from_seed(Time.get_ticks_usec())
# 猫 4
var shuffle_times = 4
# 猫 2
var shuffle_times = 2
var r_size = current_answer[0].size()
for _i in range(shuffle_times):
var col_1 = randi() % r_size
@ -92,8 +95,8 @@ func _shuffle_books() -> void:
selected_book = [0, col_1]
_interchange_book(0, col_2, false)
_relocate_books(0)
# 其他 1
shuffle_times = 1
# 其他 2
shuffle_times = 2
r_size = current_answer[1].size()
for _i in range(shuffle_times):
var col_1 = randi() % r_size
@ -114,7 +117,7 @@ func _shuffle_books() -> void:
func _on_book_pressed(row: int, id: int) -> void:
if gameover:
if gameover or row_correct_status[row]:
return
var col = current_answer[row].find(id)
if selected_book == NON_SELECTED:
@ -186,37 +189,53 @@ func _relocate_books(row: int) -> void:
func _check_answer() -> void:
# 第一行需要顺序排列
if not row_correct_status[0]:
var row_success = true
var row1 = current_answer[0]
for col in range(row1.size()):
if row1[col] != col:
return
row_success = false
break
if row_success:
row_correct_status[0] = true
$SfxRowSuccess.play()
# 第二行需要正序排列
if not row_correct_status[1]:
var row_success = true
var row2 = current_answer[1]
var size2 = row2.size()
if row2[0] == 0:
# 正序
for col in range(1, size2):
for col in range(row2.size()):
if row2[col] != col:
return
else:
return
# # 倒序
# for col in range(size2):
# if row2[col] != size2 - 1 - col:
# return
row_success = false
break
if row_success:
row_correct_status[1] = true
$SfxRowSuccess.play()
# 第三行正序或者倒序都可以
if not row_correct_status[2]:
var row_success = true
var _row3 = current_answer[2]
var _size3 = _row3.size()
if _row3[0] == 0:
# 正序
for col in range(1, _size3):
if _row3[col] != col:
return
row_success = false
break
else:
# 倒序
for col in range(_size3):
if _row3[col] != _size3 - 1 - col:
return
row_success = false
break
if row_success:
row_correct_status[2] = true
$SfxRowSuccess.play()
# 检查是否成功
if row_correct_status[0] and row_correct_status[1] and row_correct_status[2]:
_success()
# # 最后一行按色块排列0-6 蓝色7个在一起7-11 红色5个在一起12-17 黄色6个在一起
# var row3 = current_answer[2]
# # 0: blue, 1: red, 2: yellow
@ -234,7 +253,6 @@ func _check_answer() -> void:
# if visited[color] == 0:
# visiting_init = true
# success
_success()
# 0: blue, 1: red, 2: yellow

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=52 format=3 uid="uid://fwfr0b2sylwx"]
[gd_scene load_steps=53 format=3 uid="uid://fwfr0b2sylwx"]
[ext_resource type="Script" uid="uid://b7iavnqno6e3s" path="res://scene/little_game/书架/书架.gd" id="1_8af23"]
[ext_resource type="AudioStream" uid="uid://6v8oqjaj01nj" path="res://asset/audio/sfx/交互/序章/04_书店内_书本掉落.wav" id="2_c6xiu"]
@ -9,6 +9,7 @@
[ext_resource type="PackedScene" uid="uid://bl5pohc77hi43" path="res://scene/little_game/书架/生死簿.tscn" id="6_mhajy"]
[ext_resource type="SpriteFrames" uid="uid://bmwm400w8r4ju" path="res://asset/art/gif/c01_书店/c01_书店_frames.tres" id="6_nyh8c"]
[ext_resource type="Texture2D" uid="uid://bbskja06j74v0" path="res://asset/art/little_game/书架_生死簿/书架合并.png" id="6_pxxx5"]
[ext_resource type="AudioStream" uid="uid://bg3imaloeq3ev" path="res://asset/audio/effect/action/bookPlace2.ogg" id="7_e380y"]
[ext_resource type="Texture2D" uid="uid://bp3ffg8knb8j5" path="res://asset/art/little_game/书架_生死簿/书架 书合并本.png" id="8_5brf2"]
[sub_resource type="AtlasTexture" id="AtlasTexture_6hdac"]
@ -180,33 +181,36 @@ layer = 5
script = ExtResource("1_8af23")
[node name="Sfx书本掉落" type="AudioStreamPlayer" parent="."]
process_mode = 1
stream = ExtResource("2_c6xiu")
bus = &"game_sfx"
script = ExtResource("3_5brf2")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx扶正书本" type="AudioStreamPlayer" parent="."]
process_mode = 1
stream = ExtResource("3_o6bsw")
bus = &"game_sfx"
script = ExtResource("3_5brf2")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxInterchange" type="AudioStreamPlayer" parent="."]
process_mode = 1
stream = ExtResource("3_c6xiu")
bus = &"game_sfx"
script = ExtResource("3_5brf2")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxSelect" type="AudioStreamPlayer" parent="."]
process_mode = 1
stream = ExtResource("3_pfav2")
bus = &"game_sfx"
script = ExtResource("3_5brf2")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxRowSuccess" type="AudioStreamPlayer" parent="."]
stream = ExtResource("7_e380y")
volume_db = -5.0
bus = &"game_sfx"
script = ExtResource("3_5brf2")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Shelf" type="Sprite2D" parent="."]
position = Vector2(283, 160)
texture = SubResource("AtlasTexture_6hdac")

View File

@ -296,7 +296,6 @@ position = Vector2(6.4373e-06, -9.53674e-07)
polygon = PackedVector2Array(31.5, -37.5, 29.7, -38, 18.4, -38, -19.7, -28.9, -26, -32, -30.7, -32, -32.5, -28.4, -32.5, -23.2, -24.5, -15.2, -24.5, -9.6, -20.5, -8.3, -20.5, 4.5, -17.7, 10, -14.5, 30.3, -14.5, 32, -10.5, 35, -10.5, 37, 3.3, 37, 4.5, 26.1, 6.2, 25, 9.3, 25, 7.5, 19.6, 10.6, 14, 13.1, 14, 10.5, 4, 10.5, 3.2, 21, -2, 23.6, -2, 31.6, -14, 32.5, -14, 32.5, -22.4, 31.5, -28.3)
[node name="Drawer" type="Node2D" parent="All"]
visible = false
position = Vector2(20.5, 0)
[node name="BoxDrawer" type="Sprite2D" parent="All/Drawer"]
@ -324,8 +323,7 @@ texture = ExtResource("31_wq2wm")
limit_rect = Rect2(150, 150, 220, 70)
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="All/Drawer/Draggable2"]
position = Vector2(-1.99999, 0.999999)
polygon = PackedVector2Array(46.8, -40.3, 44, -39.5, 44, -38.3, 42, -37.2, 42, -30, 31.2, -30, 30, -32.5, 30, -34.3, 27.5, -35.4, 26.2, -34, 22.8, -34, 20, -36.8, 20, -38.3, 17.5, -39.4, 15.2, -37, 13.8, -37, 12.7, -35, 15.7, -30, 13.5, -30, 12, -35, 12, -37.3, 9.5, -38.4, 5, -33.8, -4, -31.6, -4, -30, -15.9, -30, -17, -31.7, -17, -33.6, -26.8, -36, -28.8, -36, -33.8, -31, -35.6, -31, -43, 4.8, -43, 10.4, -45.4, 9, -46.9, 9, -50.9, 3, -51, -12.3, -50.3, -12, -46.9, -12, -44.9, -15, -42.7, -15, -44, -25, -44, -28.9, -51, -34.9, -51, -37.2, -62.2, -36, -64.9, -36, -72.9, -27, -74.6, -27, -78.5, -11, -80.1, -11, -79, 14.1, -79, 20.6, -73, 30.5, -73, 33, -63, 40.9, -63, 42.4, -58.3, 44, -42.4, 44, -40, 50.4, -40, 53.1, -35, 56.1, -35, 57.8, -25.1, 59, 12.8, 59, 16, 55.8, 16, 48.4, 23.2, 46, 25.2, 48, 33.8, 48, 38.8, 58, 61, 58, 64, 54, 68, 54, 77, 41.7, 77, 28.4, 73.1, 22, 72, 13, 72, 3.2, 69, 0.199997, 69, -20.7, 56, -36.9, 56, -38.5, 53.1, -39.3, 50.4, -35)
polygon = PackedVector2Array(5.5, -37.9, 3, -36.8, 3, -35.8, 1, -34.7, 1, -30.5, 2.2, -29.6, 1.2, -28.1, -4.2, -33.5, -6.8, -33.5, -10, -30.3, -10, -27.5, -12.7, -25.5, -14.2, -25.5, -15, -31.5, -15, -35.5, -24.3, -31.5, -26.3, -31.5, -27.4, -29, -24, -25.7, -24, -23.3, -24.8, -22.5, -26.6, -22.5, -27.5, -18.8, -35, -26.3, -35, -28.5, -43.8, -28.5, -52.8, -19.5, -54.7, -19.5, -56.7, -7.5, -58.1, -7.5, -57, 10.6, -57, 16.1, -53, 22.1, -53, 24.5, -44, 31.4, -44, 33.5, -31.1, 33.5, -27, 40.1, -27, 42.3, -19, 43.2, -19, 44.5, 10.1, 44.5, 15.5, 35.8, 18.8, 36.5, 22.9, 36.5, 26.8, 43.5, 42.8, 43.5, 45.8, 40.5, 49.1, 40.5, 55.1, 31.5, 57.4, 31.5, 48, -20.9, 48, -22.3, 38, -32.3, 38, -34.5, 28.4, -34.5, 27, -28.7, 27, -25.6, 25.4, -24.6, 23, -26.5, 23, -27.8, 20.5, -28.9, 17.4, -25.9)
[node name="Draggable3" parent="All/Drawer" instance=ExtResource("16_h88gi")]
position = Vector2(368.5, 175)

View File

@ -258,7 +258,6 @@ script = ExtResource("1_p2trd")
[node name="Sfx结尾小孩跑" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
process_mode = 1
stream = ExtResource("2_aqxy0")
bus = &"game_sfx"
script = ExtResource("4_co06r")
@ -307,21 +306,18 @@ libraries = {
}
[node name="SfxHit" type="AudioStreamPlayer" parent="."]
process_mode = 1
stream = ExtResource("3_co06r")
bus = &"game_sfx"
script = ExtResource("4_co06r")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxShoot" type="AudioStreamPlayer" parent="."]
process_mode = 1
stream = SubResource("AudioStreamInteractive_aqxy0")
bus = &"game_sfx"
script = ExtResource("4_co06r")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="SfxDispatch" type="AudioStreamPlayer" parent="."]
process_mode = 1
stream = ExtResource("6_ctokx")
bus = &"game_sfx"
script = ExtResource("4_co06r")

View File

@ -5,6 +5,8 @@ extends Node2D
# TranslationServer.set_locale(val)
# locale = val
@onready var vignette = %Vignette as ColorRect
func _ready() -> void:
%UILayer.layer = GlobalConfig.CANVAS_LAYER_UI
@ -31,3 +33,18 @@ func _unhandled_input(event: InputEvent) -> void:
elif event.is_action_pressed("panel"):
get_viewport().set_input_as_handled()
SceneManager.show_panel()
var vignette_tween: Tween
func tween_vignette(ratio := 0.5, duration := 0.3, color := Color.RED):
if vignette_tween and vignette_tween.is_valid():
vignette_tween.kill()
vignette_tween = create_tween()
vignette_tween.tween_property(
vignette.material, "shader_parameter/vignette_ratio", ratio, duration
)
vignette_tween.parallel().tween_property(
vignette.material, "shader_parameter/vignette_rgb", color, duration
)

View File

@ -1,12 +1,19 @@
[gd_scene load_steps=7 format=3 uid="uid://dygvcmykn02n8"]
[gd_scene load_steps=9 format=3 uid="uid://dygvcmykn02n8"]
[ext_resource type="Script" uid="uid://jn2alpdl4eal" path="res://scene/main.gd" id="1_pks84"]
[ext_resource type="PackedScene" uid="uid://dc778gsjfr3ky" path="res://scene/ux/prop_hud.tscn" id="4_t7gb2"]
[ext_resource type="PackedScene" uid="uid://5g07x6q7wwr1" path="res://scene/notification/notification.tscn" id="5_3gg5t"]
[ext_resource type="PackedScene" uid="uid://cekhj65axie0p" path="res://scene/ux/prop_inspector.tscn" id="5_ux0rw"]
[ext_resource type="Shader" uid="uid://do181iuabeoom" path="res://asset/shader/vignette.gdshader" id="7_p1hux"]
[ext_resource type="Environment" uid="uid://c6ri8tn5qt6fe" path="res://scene/ground/environment.tres" id="9_jsof5"]
[ext_resource type="PackedScene" uid="uid://clxgkj80yin2" path="res://scene/ground/ground_loader.tscn" id="10_8rc5n"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_of57s"]
shader = ExtResource("7_p1hux")
shader_parameter/vignette_ratio = 0.0
shader_parameter/vignette_intensity = 0.3
shader_parameter/vignette_rgb = Color(0.753, 0, 0, 1)
[node name="Main" type="Node2D"]
script = ExtResource("1_pks84")
@ -24,6 +31,19 @@ unique_name_in_owner = true
unique_name_in_owner = true
layer = 12
[node name="Vignette" type="ColorRect" parent="UILayer"]
unique_name_in_owner = true
material = SubResource("ShaderMaterial_of57s")
custom_minimum_size = Vector2(564, 240)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 38.0
offset_bottom = -38.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="ColorRectTop" type="ColorRect" parent="UILayer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(564, 38.5)

View File

@ -13,7 +13,7 @@ func run_clip(card_mode: bool):
if not card_mode:
await Util.wait(3.0)
# 增加配音
dialog_node = DialogueManager.show_dialogue_balloon(dialogue_res, "c02_s11_井边疯子对话")
dialog_node = DialogueManager.show_dialogue_balloon(dialogue_res, "c02_井边疯子对话")
dialog_node.process_mode = Node.PROCESS_MODE_ALWAYS
await DialogueManager.dialogue_ended
display_finished.emit()