完成盒子猫游戏+瞎子卧室流程
@ -213,33 +213,33 @@ animations = [{
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 6.0,
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("25_ty3yp")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("26_x3isd")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("27_hwoj5")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("28_n6lou")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("29_6p0ya")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("30_uxs1n")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("31_rdknj")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("32_c28wc")
|
||||
}],
|
||||
"loop": false,
|
||||
"loop": true,
|
||||
"name": &"猪头怪走路",
|
||||
"speed": 30.0
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 6.0,
|
||||
|
BIN
asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
34
asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://v6q6ao6fiqm1"
|
||||
path="res://.godot/imported/e_老鼠画像横板.png-8a76220ba2bd471be83a15a7a523bd66.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png"
|
||||
dest_files=["res://.godot/imported/e_老鼠画像横板.png-8a76220ba2bd471be83a15a7a523bd66.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
|
BIN
asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png
Normal file
After Width: | Height: | Size: 78 KiB |
34
asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d1xr7g5huv5or"
|
||||
path="res://.godot/imported/ux_老鼠画像特写.png-2cde5d57d18ad26389a54b7fa4b7cebc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png"
|
||||
dest_files=["res://.godot/imported/ux_老鼠画像特写.png-2cde5d57d18ad26389a54b7fa4b7cebc.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
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 217 B |
BIN
asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png
Normal file
After Width: | Height: | Size: 272 B |
34
asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b8sv81cw7mcn4"
|
||||
path="res://.godot/imported/e_墙上纸张_blood.png-a16cd8e2f7a6f90b4ea7789b6f8f87bb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_blood.png"
|
||||
dest_files=["res://.godot/imported/e_墙上纸张_blood.png-a16cd8e2f7a6f90b4ea7789b6f8f87bb.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
|
BIN
asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_boxcat.png
Normal file
After Width: | Height: | Size: 280 B |
34
asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_boxcat.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://efhwoqtn21d8"
|
||||
path="res://.godot/imported/e_墙上纸张_boxcat.png-5eb6f77c7e1c91b16a3b24d04acd8491.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张_boxcat.png"
|
||||
dest_files=["res://.godot/imported/e_墙上纸张_boxcat.png-5eb6f77c7e1c91b16a3b24d04acd8491.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
|
BIN
asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png
Normal file
After Width: | Height: | Size: 6.3 KiB |
34
asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ttocw3erg8jv"
|
||||
path="res://.godot/imported/bg_一楼楼道(粉笔画).png-38d0deade9dcb0ce3adead29afdf6eb3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png"
|
||||
dest_files=["res://.godot/imported/bg_一楼楼道(粉笔画).png-38d0deade9dcb0ce3adead29afdf6eb3.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
|
@ -5,6 +5,7 @@ keys,zh_CN,_character,_notes,_tags,zh_SH,en
|
||||
3,3,,,,,
|
||||
4,4,,,,,
|
||||
c02_杂物堆,杂物堵住了,,,,,
|
||||
prop_新鲜的肉,新鲜的肉,,,[#texture=c02/新鲜的肉.png],,
|
||||
index_新游戏,新游戏,,,,,New Game
|
||||
index_继续游戏,继续游戏,,,,,Resume
|
||||
index_退出游戏,退出游戏,,,,,Exit
|
||||
@ -28,6 +29,7 @@ ui_use_prop,按 E 使用道具,,,,,Press E to use prop
|
||||
ui_important_item_update,重要物品已更新(按 B 打开背包),,,,,
|
||||
ui_switch_prop,点击图标可切换道具(或按 Z/C),,,,,
|
||||
ui_press_shift,按住 Shift 奔跑,,,,,
|
||||
ui_boxcat_press_s,按住 S 躲藏,,,,,
|
||||
input_拼凑信件,点击选择信件碎片,方向键移动,按 E 旋转,,,,,
|
||||
ui_获得,获得,,,,,
|
||||
ui_退出,退出,,,,,
|
||||
@ -61,7 +63,6 @@ prop_锡箔元宝,锡箔元宝,,,[#texture=c02/锡箔元宝.png],,
|
||||
prop_小鞋子1,小鞋子1,,,[#texture=c02/小鞋子.png],,
|
||||
prop_小鞋子2,小鞋子2,,,[#texture=c02/小鞋子.png],,
|
||||
prop_麻将,麻将,,,[#texture=c02/麻将.png],,
|
||||
prop_新鲜的肉,新鲜的肉,,,[#texture=c02/新鲜的肉.png],,
|
||||
prop_奇怪的肉,奇怪的肉,,,[#texture=c02/奇怪的肉.png],,
|
||||
prop_弹珠,弹珠,,,[#texture=c02/弹珠.png],,
|
||||
prop_木头人偶,木头人偶,,,[#texture=c02/小蝉人偶.png],,
|
||||
@ -116,9 +117,11 @@ c02_卫生宣传画,几张卫生宣传画,,,,,
|
||||
c02_老鼠洞,一个老鼠洞<br>在这种楼里挺常见的,,,,,
|
||||
c02_十几年前的报纸,十几年前的报纸,,,,,
|
||||
c02_院子_算命摊位,算命的摊位?,,,,,
|
||||
c02_院子_要下雨,好像要下雨了?,,,,,
|
||||
c02_保卫科花名册os,芦昌公寓居民登记簿,黄国栋记。,,,,,
|
||||
c02_一楼楼道被挡住,被挡住了,,,,,
|
||||
c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...,,,,,
|
||||
c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,,
|
||||
c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,,
|
||||
c02_火灾等待准备,还没准备好点火呢,,,,,
|
||||
小猫玩具发光,嗯?玩具在发光,,,,,
|
||||
|
|
@ -26,6 +26,7 @@
|
||||
重要物品已更新(按 B 打开背包) [ID:ui_important_item_update]
|
||||
点击图标可切换道具(或按 Z/C) [ID:ui_switch_prop]
|
||||
按住 Shift 奔跑 [ID:ui_press_shift]
|
||||
按住 S 躲藏 [ID:ui_boxcat_press_s]
|
||||
点击选择信件碎片,方向键移动,按 E 旋转 [ID:input_拼凑信件]
|
||||
|
||||
获得 [ID:ui_获得]
|
||||
@ -159,17 +160,18 @@
|
||||
十几年前的报纸 [ID:c02_十几年前的报纸]
|
||||
# c02 院子
|
||||
算命的摊位? [ID:c02_院子_算命摊位]
|
||||
好像要下雨了? [ID:c02_院子_要下雨]
|
||||
# c02 保卫科
|
||||
芦昌公寓居民登记簿,黄国栋记。 [ID:c02_保卫科花名册os]
|
||||
# c02 内侧楼道
|
||||
被挡住了 [ID:c02_一楼楼道被挡住]
|
||||
# 瞎子卧室
|
||||
「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图]
|
||||
这画上的脚印和刚刚看到的一样。 [ID:c02_瞎子卧室_血脚印]
|
||||
院长房间里也有一个类似的十字架。[ID:c02_瞎子卧室_十字架]
|
||||
# c02 火灾
|
||||
还没准备好点火呢 [ID:c02_火灾等待准备]
|
||||
嗯?玩具在发光 [ID:小猫玩具发光]
|
||||
没时间浪费了!想想办法救出小蝉... [ID:c02_点火前阻止右移]
|
||||
# c02
|
||||
|
||||
=> END
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_resource type="SpriteFrames" load_steps=810 format=3 uid="uid://b7fhheih1hbvf"]
|
||||
[gd_resource type="SpriteFrames" load_steps=806 format=3 uid="uid://b7fhheih1hbvf"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bpqrd6vo3j17m" path="res://asset/art/animation/c00_吕萍_记笔记_right/吕萍-拿本子记录1.png" id="1_6sdvl"]
|
||||
[ext_resource type="Texture2D" uid="uid://dvq64espa37lx" path="res://asset/art/animation/c00_吕萍_idle_left/zhhx1.png" id="1_ekv0l"]
|
||||
@ -755,9 +755,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://iqgnednnykdr" path="res://asset/art/animation/c02_吕萍_钻出/0.png" id="605_v8kdt"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgnn3ohqr52uf" path="res://asset/art/gif/c02_盒子猫/盒子猫呼吸/0.png" id="720_u1ns1"]
|
||||
[ext_resource type="Texture2D" uid="uid://bn1v0rbsayjuf" path="res://asset/art/gif/c02_盒子猫/盒子猫呼吸/1.png" id="721_i6nr0"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgft6wepygo84" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/0.png" id="722_143ox"]
|
||||
[ext_resource type="Texture2D" uid="uid://55rmstkju630" path="res://asset/art/gif/c02_盒子猫/盒子猫走路/0.png" id="722_kk2bf"]
|
||||
[ext_resource type="Texture2D" uid="uid://bdbp0kc0v4gbw" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/1.png" id="723_2vft2"]
|
||||
[ext_resource type="Texture2D" uid="uid://b2dt0032711li" path="res://asset/art/gif/c02_盒子猫/盒子猫走路/1.png" id="723_7otbe"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7ewg60u7s2d" path="res://asset/art/gif/c02_盒子猫/盒子猫走路/2.png" id="724_pq372"]
|
||||
[ext_resource type="Texture2D" uid="uid://ca00x7jqj8fjy" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/2.png" id="724_pwc7e"]
|
||||
@ -773,8 +771,6 @@
|
||||
[ext_resource type="Texture2D" uid="uid://f8nq6xbuwiw0" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/7.png" id="729_h6bhr"]
|
||||
[ext_resource type="Texture2D" uid="uid://csj5jede3wryh" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_l/8.png" id="730_dlxoy"]
|
||||
[ext_resource type="Texture2D" uid="uid://cand6orv3g28w" path="res://asset/art/gif/c02_盒子猫/盒子猫停止躲藏/盒子猫出盒子2.png" id="730_karh2"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3piexlfdu7cc" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/0.png" id="731_oibw0"]
|
||||
[ext_resource type="Texture2D" uid="uid://bedsecuscfsu7" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/1.png" id="732_cmym6"]
|
||||
[ext_resource type="Texture2D" uid="uid://1mtlgg1y5530" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/2.png" id="733_4rlhx"]
|
||||
[ext_resource type="Texture2D" uid="uid://dqmjk8do1yyao" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/3.png" id="734_chy64"]
|
||||
[ext_resource type="Texture2D" uid="uid://dnfn5wd7wxem7" path="res://asset/art/gif/c02_盒子猫/盒子猫敲门_r/4.png" id="735_mliv3"]
|
||||
@ -3486,12 +3482,6 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("722_143ox")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("723_2vft2")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("724_pwc7e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
@ -3518,12 +3508,6 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("731_oibw0")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("732_cmym6")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("733_4rlhx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
|
@ -48,6 +48,7 @@ static var GROUND_SCENE_PATH_DICT = {
|
||||
"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",
|
||||
}
|
||||
|
||||
func _ready() -> void:
|
||||
|
@ -128,8 +128,28 @@ func _on_gate_interacted() -> void:
|
||||
|
||||
|
||||
func shocking_lighting() -> void:
|
||||
var root = $"../DeployLayer/闷雷_纸人闪现" as Node2D
|
||||
var normal_ppl = root.get_node("排队常人") as Sprite2D
|
||||
var paper_ppl = root.get_node("排队纸人") as Sprite2D
|
||||
var light = root.get_node("PointLight2D") as PointLight2D
|
||||
root.visible = true
|
||||
normal_ppl.modulate.a = 0
|
||||
paper_ppl.modulate.a = 0
|
||||
light.energy = 0
|
||||
var sfx = $"Sfx闷雷"
|
||||
var tween = create_tween()
|
||||
tween.tween_property(light, "energy", 7.0, 0.1)
|
||||
tween.tween_property(light, "energy", 4.0, 0.02)
|
||||
tween.parallel().tween_property(normal_ppl, "modulate:a", 1.0, 0.03)
|
||||
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)
|
||||
tween.parallel().tween_property(paper_ppl, "modulate:a", 1.0, 0.03)
|
||||
tween.tween_property(light, "energy", 0.0, 0.1)
|
||||
tween.tween_callback(root.hide)
|
||||
# 纸人闪现 惊悚闪电 闷雷声缓缓而来
|
||||
$"Sfx闷雷".play()
|
||||
tween.tween_interval(2.0)
|
||||
tween.tween_callback(sfx.play)
|
||||
# TODO
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=74 format=3 uid="uid://djc2uaefhmu7"]
|
||||
[gd_scene load_steps=76 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_animation.gd" id="2_dt5aj"]
|
||||
@ -246,6 +246,15 @@ fill = 1
|
||||
fill_from = Vector2(0.5, 0.465812)
|
||||
fill_to = Vector2(1, 1)
|
||||
|
||||
[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_3nako"]
|
||||
gradient = SubResource("Gradient_vddfx")
|
||||
width = 1000
|
||||
height = 300
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_er6ob"]
|
||||
resource_local_to_scene = true
|
||||
size = Vector2(40, 70)
|
||||
@ -372,11 +381,6 @@ sprite_frames = ExtResource("4_gd6xp")
|
||||
animation = &"小婵晃脚掉鞋"
|
||||
autoplay = "一楼二楼外侧楼道拼接-晃脚动画"
|
||||
|
||||
[node name="楼梯" type="Sprite2D" parent="Ground/BGSprite2D" index="1"]
|
||||
z_index = 10
|
||||
position = Vector2(1388, 1)
|
||||
texture = ExtResource("10_ud2jg")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(25, 11)
|
||||
target_scene = "c02_s02"
|
||||
@ -502,29 +506,42 @@ z_index = 15
|
||||
position = Vector2(1964, -209)
|
||||
|
||||
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="8"]
|
||||
visible = false
|
||||
|
||||
[node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")]
|
||||
position = Vector2(1353, 33)
|
||||
hook_method = "shocking_lighting"
|
||||
|
||||
[node name="排队常人" type="Sprite2D" parent="Ground/DeployLayer/闷雷_纸人闪现"]
|
||||
z_index = 20
|
||||
light_mask = 5
|
||||
z_index = 30
|
||||
position = Vector2(1227.5, -119)
|
||||
texture = ExtResource("18_crgo6")
|
||||
centered = false
|
||||
|
||||
[node name="排队纸人" type="Sprite2D" parent="Ground/DeployLayer/闷雷_纸人闪现"]
|
||||
z_index = 20
|
||||
light_mask = 5
|
||||
z_index = 30
|
||||
position = Vector2(1227.5, -119)
|
||||
texture = ExtResource("19_vddfx")
|
||||
centered = false
|
||||
|
||||
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="9"]
|
||||
[node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/闷雷_纸人闪现"]
|
||||
position = Vector2(1411, 12)
|
||||
range_layer_max = 2
|
||||
range_item_cull_mask = 4
|
||||
texture = SubResource("GradientTexture2D_3nako")
|
||||
|
||||
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="9" instance=ExtResource("25_iyaiw")]
|
||||
position = Vector2(1611, 46)
|
||||
hook_os_key = "c02_院子_要下雨"
|
||||
|
||||
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="10"]
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
position = Vector2(1189, 0)
|
||||
texture = ExtResource("6_d7h4s")
|
||||
|
||||
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="10" instance=ExtResource("7_em2ma")]
|
||||
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="11" instance=ExtResource("7_em2ma")]
|
||||
position = Vector2(809, 75)
|
||||
sign_mark_offset = Vector2(0, -16.88)
|
||||
enabled = false
|
||||
@ -535,8 +552,9 @@ position = Vector2(0, -7)
|
||||
scale = Vector2(0.15, 0.15)
|
||||
texture = ExtResource("8_plfv5")
|
||||
|
||||
[node name="Interactable铁门" parent="Ground/DeployLayer" index="11" instance=ExtResource("8_xt8j0")]
|
||||
position = Vector2(1212, 28)
|
||||
[node name="Interactable铁门" parent="Ground/DeployLayer" index="12" instance=ExtResource("8_xt8j0")]
|
||||
light_mask = 5
|
||||
position = Vector2(1222, 28)
|
||||
texture = ExtResource("7_gd6xp")
|
||||
interacted_texture = ExtResource("9_liq0c")
|
||||
prop_key = "prop_老虎钳"
|
||||
@ -552,7 +570,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="12" instance=ExtResource("6_t48d1")]
|
||||
[node name="Note算命摊位" parent="Ground/DeployLayer" index="13" instance=ExtResource("6_t48d1")]
|
||||
position = Vector2(725, 45)
|
||||
note_key = "c02_院子_算命摊位"
|
||||
|
||||
@ -560,13 +578,13 @@ note_key = "c02_院子_算命摊位"
|
||||
position = Vector2(0, 18)
|
||||
texture = ExtResource("6_1tart")
|
||||
|
||||
[node name="煤油灯" parent="Ground/DeployLayer" index="13" instance=ExtResource("10_jme4f")]
|
||||
[node name="煤油灯" parent="Ground/DeployLayer" index="14" 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="14" instance=ExtResource("10_jme4f")]
|
||||
[node name="煤油灯2" parent="Ground/DeployLayer" index="15" instance=ExtResource("10_jme4f")]
|
||||
position = Vector2(610, 1)
|
||||
gaslight_texture = ExtResource("11_g0qhj")
|
||||
ground_light_texture = ExtResource("12_ni5ro")
|
||||
@ -574,7 +592,7 @@ gaslight_energy = 1.5
|
||||
gaslight_ground_energy = 0.7
|
||||
mute_when_interacted = false
|
||||
|
||||
[node name="煤油灯3" parent="Ground/DeployLayer" index="15" instance=ExtResource("10_jme4f")]
|
||||
[node name="煤油灯3" parent="Ground/DeployLayer" index="16" instance=ExtResource("10_jme4f")]
|
||||
position = Vector2(857, 1)
|
||||
gaslight_texture = ExtResource("13_hw832")
|
||||
ground_light_texture = ExtResource("14_7pq5y")
|
||||
@ -582,44 +600,45 @@ gaslight_energy = 1.5
|
||||
gaslight_ground_energy = 0.7
|
||||
mute_when_interacted = false
|
||||
|
||||
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="16"]
|
||||
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="17"]
|
||||
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="17"]
|
||||
[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="18"]
|
||||
light_mask = 5
|
||||
z_index = 10
|
||||
position = Vector2(1025, 27)
|
||||
texture = ExtResource("22_3y5s5")
|
||||
|
||||
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="18" instance=ExtResource("23_81juy")]
|
||||
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="19" instance=ExtResource("23_81juy")]
|
||||
position = Vector2(466, 3)
|
||||
packed_scene = ExtResource("24_0o4rt")
|
||||
|
||||
[node name="Closeup井" parent="Ground/DeployLayer" index="19" instance=ExtResource("23_81juy")]
|
||||
[node name="Closeup井" parent="Ground/DeployLayer" index="20" instance=ExtResource("23_81juy")]
|
||||
z_index = 6
|
||||
position = Vector2(2063, 50)
|
||||
packed_scene = ExtResource("26_yy4fp")
|
||||
|
||||
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="20" instance=ExtResource("25_iyaiw")]
|
||||
[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="21" instance=ExtResource("25_iyaiw")]
|
||||
position = Vector2(1319, 40)
|
||||
hook_method = "shocking_lighting"
|
||||
|
||||
[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="21" instance=ExtResource("25_iyaiw")]
|
||||
position = Vector2(1791, 8)
|
||||
[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="22" instance=ExtResource("25_iyaiw")]
|
||||
position = Vector2(1836, 7)
|
||||
trigger_mode = "interact"
|
||||
one_shot = false
|
||||
hook_method = "eavesdrop"
|
||||
|
||||
[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="22"]
|
||||
[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="23"]
|
||||
position = Vector2(1835, -16)
|
||||
sprite_frames = SubResource("SpriteFrames_0o4rt")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.643855
|
||||
|
||||
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="23" instance=ExtResource("35_plfv5")]
|
||||
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="24" instance=ExtResource("35_plfv5")]
|
||||
z_index = 10
|
||||
position = Vector2(2037, 67)
|
||||
sprite_frames = SubResource("SpriteFrames_kyfht")
|
||||
@ -645,7 +664,7 @@ position = Vector2(-11, -3)
|
||||
shape = SubResource("RectangleShape2D_bbhbr")
|
||||
disabled = true
|
||||
|
||||
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="24"]
|
||||
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="25"]
|
||||
visible = false
|
||||
position = Vector2(2154, 60)
|
||||
|
||||
@ -710,7 +729,7 @@ collision_mask = 0
|
||||
shape = SubResource("RectangleShape2D_d7h4s")
|
||||
disabled = true
|
||||
|
||||
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="25"]
|
||||
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="26"]
|
||||
visible = false
|
||||
|
||||
[node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"]
|
||||
@ -881,7 +900,7 @@ offset_bottom = -23.0
|
||||
[node name="CollisionShape2D" parent="Ground/DeployLayer/火灾/Ambush等待的小蝉/Area2D" index="0"]
|
||||
shape = SubResource("RectangleShape2D_em2ma")
|
||||
|
||||
[node name="Interactable柜子" parent="Ground/DeployLayer" index="26" instance=ExtResource("8_xt8j0")]
|
||||
[node name="Interactable柜子" parent="Ground/DeployLayer" index="27" instance=ExtResource("8_xt8j0")]
|
||||
visible = false
|
||||
position = Vector2(1772, 48)
|
||||
texture = ExtResource("32_cpifc")
|
||||
@ -897,7 +916,7 @@ animation = &"箱子着火"
|
||||
autoplay = "箱子着火"
|
||||
frame_progress = 0.453645
|
||||
|
||||
[node name="最终跑路" type="RigidBody2D" parent="Ground/DeployLayer" index="27"]
|
||||
[node name="最终跑路" type="RigidBody2D" parent="Ground/DeployLayer" index="28"]
|
||||
visible = false
|
||||
position = Vector2(2150, 30)
|
||||
collision_layer = 4
|
||||
@ -922,11 +941,17 @@ range_item_cull_mask = 4
|
||||
texture = SubResource("GradientTexture2D_plfv5")
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="4"]
|
||||
position = Vector2(407, 93)
|
||||
position = Vector2(1384, 101)
|
||||
|
||||
[node name="BGParallaxLayer" parent="Ground/ParallaxForeground" index="0"]
|
||||
use_parent_material = true
|
||||
|
||||
[node name="楼梯" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
||||
light_mask = 5
|
||||
z_index = 20
|
||||
position = Vector2(1393.5, 0)
|
||||
texture = ExtResource("10_ud2jg")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(-88, -7)
|
||||
scale = Vector2(1.08, 1.08)
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://bivc5cdap370p"]
|
||||
[gd_scene load_steps=20 format=3 uid="uid://bivc5cdap370p"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2jej0"]
|
||||
[ext_resource type="Script" uid="uid://dmhh4g47bdxxy" path="res://scene/ground/scene/c02/s04_animation.gd" id="2_jyere"]
|
||||
@ -17,6 +17,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://ch6uf4qi1i0h2" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕3.png" id="9_a43aq"]
|
||||
[ext_resource type="PackedScene" uid="uid://xovlfee503a4" path="res://scene/ground/script/c02/小手讨东西.tscn" id="10_a43aq"]
|
||||
[ext_resource type="Texture2D" uid="uid://dtmd13ktss5hk" path="res://asset/art/scene/c02/s03_公寓一楼院子/地面物品反光/地反光5.png" id="10_svuj3"]
|
||||
[ext_resource type="Texture2D" uid="uid://v6q6ao6fiqm1" path="res://asset/art/scene/c02/s04_保卫科/e_老鼠画像横板.png" id="11_ffvrp"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_gk1h4"]
|
||||
resource_local_to_scene = true
|
||||
@ -82,7 +83,8 @@ position = Vector2(189, 15)
|
||||
packed_scene = ExtResource("7_fvlg0")
|
||||
|
||||
[node name="Closeup老鼠精" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_66gue")]
|
||||
position = Vector2(208, -32)
|
||||
position = Vector2(207.5, -40.5)
|
||||
texture = ExtResource("11_ffvrp")
|
||||
packed_scene = ExtResource("8_cm3g6")
|
||||
|
||||
[node name="Closeup花名册" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_66gue")]
|
||||
|
@ -15,11 +15,17 @@ func _ready() -> void:
|
||||
|
||||
var color_mask: ColorRect
|
||||
var ambush_eavesdrop: Ambush2D
|
||||
var ambush_lookback: Ambush2D
|
||||
var gaslight: Gaslight
|
||||
var boxcat_portal: Portal2D
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
color_mask = $"../BGSprite2D/ColorMask"
|
||||
ambush_eavesdrop = $"../DeployLayer/Ambush偷听"
|
||||
ambush_lookback = $"../DeployLayer/Ambush回看洞口"
|
||||
gaslight = $"../DeployLayer/灯座Sprite2D/煤油灯"
|
||||
boxcat_portal = $"../DeployLayer/portal_1"
|
||||
# 0默认 1拿了麻将 2偷听结束 3已爬出
|
||||
if data.hole_interacted_times >= 3:
|
||||
setup_rect_after_entered()
|
||||
@ -27,9 +33,25 @@ func _on_ground_ready() -> void:
|
||||
color_mask.color.a = 1.0
|
||||
# # 如果没有出隧道,则设置镜头右侧 limit + 500
|
||||
# SceneManager.get_camera_marker().limit_right += 500
|
||||
|
||||
if ArchiveManager.get_global_value("c02_the_blind_room_unlocked"):
|
||||
var looked_back = ambush_lookback.played
|
||||
var boxcat_played = ArchiveManager.get_global_value("c02_the_blind_room_unlocked")
|
||||
if gaslight.interacted_times > 0:
|
||||
ambush_lookback.enabled = true
|
||||
else:
|
||||
gaslight.interacted.connect(func(): ambush_lookback.enabled = true)
|
||||
if looked_back:
|
||||
gaslight.enabled = false
|
||||
gaslight.visible = false
|
||||
if not boxcat_played:
|
||||
boxcat_portal.enabled = true
|
||||
boxcat_portal.get_node("PointLight2D2").enabled = true
|
||||
boxcat_portal.get_node("Sprite2D").texture = preload("uid://efhwoqtn21d8") # e_墙上纸张_boxcat
|
||||
$"../DeployLayer/Closeup画".enabled = false
|
||||
if boxcat_played:
|
||||
$"../DeployLayer/portal_left".status = "opened"
|
||||
# 玩过小猫游戏,画框内容更新 禁止再进入
|
||||
boxcat_portal.get_node("Sprite2D").texture = preload("uid://b8sv81cw7mcn4") # e_墙上纸张_blood
|
||||
$"../DeployLayer/Note画上脚印".enabled = true
|
||||
|
||||
|
||||
var interacting = false:
|
||||
@ -86,9 +108,8 @@ var room_camera_r_limit = 550
|
||||
|
||||
# 钻出隧道,进入房间
|
||||
func enter_room() -> void:
|
||||
var look_back_ambush = $"../DeployLayer/Ambush回看洞口"
|
||||
# 防止过程中 look back
|
||||
look_back_ambush.enabled = false
|
||||
ambush_lookback.enabled = false
|
||||
var player = SceneManager.get_player() as MainPlayer
|
||||
var player_x = 513.0
|
||||
SceneManager.freeze_player(0)
|
||||
@ -112,7 +133,6 @@ func enter_room() -> void:
|
||||
player.hide_sprite = false
|
||||
SceneManager.release_player()
|
||||
interacting = false
|
||||
look_back_ambush.enabled = true
|
||||
|
||||
|
||||
func setup_rect_after_entered() -> void:
|
||||
@ -153,6 +173,18 @@ func _on_shocked():
|
||||
$"Sfx癞子对视惊吓".play()
|
||||
SceneManager.freeze_player(0, 11, true)
|
||||
SceneManager.get_player().animation_finished.connect(_on_shocked_finished, CONNECT_ONE_SHOT)
|
||||
await create_tween().tween_interval(1.1).finished
|
||||
# 熄火
|
||||
gaslight.enabled = false
|
||||
gaslight.visible = false
|
||||
# 启用 boxcat_portal
|
||||
boxcat_portal.enabled = true
|
||||
var light = boxcat_portal.get_node("PointLight2D2") as PointLight2D
|
||||
boxcat_portal.get_node("Sprite2D").texture = preload("uid://efhwoqtn21d8") # e_墙上纸张_boxcat
|
||||
light.enabled = true
|
||||
light.energy = 0
|
||||
create_tween().tween_property(light, "energy", 0.6, 1.5)
|
||||
$"../DeployLayer/Closeup画".enabled = false
|
||||
|
||||
|
||||
func _on_shocked_finished():
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=28 format=3 uid="uid://ce2vyyg2reg52"]
|
||||
[gd_scene load_steps=34 format=3 uid="uid://ce2vyyg2reg52"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"]
|
||||
[ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"]
|
||||
@ -10,10 +10,15 @@
|
||||
[ext_resource type="Texture2D" uid="uid://b5pwb4fm46sad" path="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png" id="5_f6mma"]
|
||||
[ext_resource type="Texture2D" uid="uid://7ay1ttob8qwm" path="res://asset/art/scene/c02/s08_瞎子卧室/e_床板.png" id="5_vjjde"]
|
||||
[ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="7_j6ltr"]
|
||||
[ext_resource type="Texture2D" uid="uid://dtyg0nugb2tnf" path="res://asset/art/ui/action_mark/UI探索.png" id="8_dkqw0"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="10_a48k2"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="10_f6mma"]
|
||||
[ext_resource type="Texture2D" uid="uid://brdo2cpu6vcqd" path="res://asset/art/scene/c02/杂物/煤油灯 开灯.png" id="10_vjjde"]
|
||||
[ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="11_7w12o"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="11_kwj7c"]
|
||||
[ext_resource type="PackedScene" uid="uid://dd8dfoik0ig3y" path="res://scene/ground/script/c02/s08_画特写.tscn" id="11_mc126"]
|
||||
[ext_resource type="Texture2D" uid="uid://bgtxwxerl2dxh" path="res://asset/art/scene/c02/s08_瞎子卧室/十字架.png" id="11_t3h08"]
|
||||
[ext_resource type="Texture2D" uid="uid://bcqcvohj7jy40" path="res://asset/art/scene/c02/杂物/煤油灯 关灯.png" id="11_u4psw"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmid3iu2ch35o" path="res://asset/art/scene/c02/s08_瞎子卧室/八卦图.png" id="12_1ws4i"]
|
||||
[ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="13_t3h08"]
|
||||
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="14_1ws4i"]
|
||||
@ -64,6 +69,10 @@ _data = {
|
||||
&"RESET": SubResource("Animation_f6mma")
|
||||
}
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a48k2"]
|
||||
resource_local_to_scene = true
|
||||
size = Vector2(5, 70)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kwj7c"]
|
||||
resource_local_to_scene = true
|
||||
size = Vector2(10, 70)
|
||||
@ -153,20 +162,66 @@ position = Vector2(676, 63)
|
||||
matched_sign_texture = null
|
||||
|
||||
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_1ws4i")]
|
||||
position = Vector2(193, 34)
|
||||
position = Vector2(214, 31)
|
||||
debug_note = "墙画:盒子猫"
|
||||
enabled = false
|
||||
portal_name = "1"
|
||||
target_scene = "c02_s12"
|
||||
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
|
||||
light_mask = 33
|
||||
position = Vector2(0, -47)
|
||||
texture = ExtResource("5_f6mma")
|
||||
|
||||
[node name="瞎子小蝉对话" type="Node2D" parent="Ground/DeployLayer" index="3"]
|
||||
[node name="PointLight2D2" type="PointLight2D" parent="Ground/DeployLayer/portal_1"]
|
||||
light_mask = 33
|
||||
position = Vector2(0, -47)
|
||||
enabled = false
|
||||
energy = 0.6
|
||||
range_item_cull_mask = 32
|
||||
texture = ExtResource("11_kwj7c")
|
||||
texture_scale = 0.15
|
||||
|
||||
[node name="Closeup画" parent="Ground/DeployLayer" index="3" instance=ExtResource("10_a48k2")]
|
||||
position = Vector2(214, -19)
|
||||
packed_scene = ExtResource("11_mc126")
|
||||
|
||||
[node name="Note画上脚印" parent="Ground/DeployLayer" index="4" instance=ExtResource("14_1ws4i")]
|
||||
position = Vector2(214, -19)
|
||||
enabled = false
|
||||
title_filter = "c02"
|
||||
note_key = "c02_瞎子卧室_血脚印"
|
||||
|
||||
[node name="灯座Sprite2D" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
|
||||
position = Vector2(169, 18)
|
||||
texture = ExtResource("11_u4psw")
|
||||
|
||||
[node name="煤油灯" parent="Ground/DeployLayer/灯座Sprite2D" instance=ExtResource("11_7w12o")]
|
||||
position = Vector2(0, 15)
|
||||
animation_low_mode = true
|
||||
hide_texture = true
|
||||
gaslight_energy = 2.0
|
||||
|
||||
[node name="CollisionShape2D" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯/Area2D" index="0"]
|
||||
shape = SubResource("RectangleShape2D_a48k2")
|
||||
|
||||
[node name="PointLight2D" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="3"]
|
||||
energy = 2.0
|
||||
|
||||
[node name="灯座" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="6"]
|
||||
visible = false
|
||||
|
||||
[node name="Sign" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="7"]
|
||||
offset_top = -18.0
|
||||
offset_bottom = -18.0
|
||||
|
||||
[node name="瞎子小蝉对话" type="Node2D" parent="Ground/DeployLayer" index="6"]
|
||||
visible = false
|
||||
|
||||
[node name="瞎子谈话" type="AnimatedSprite2D" parent="Ground/DeployLayer/瞎子小蝉对话"]
|
||||
@ -193,7 +248,7 @@ energy = 1.5
|
||||
texture = ExtResource("11_kwj7c")
|
||||
texture_scale = 1.5
|
||||
|
||||
[node name="Ambush偷听" parent="Ground/DeployLayer" index="4" instance=ExtResource("10_f6mma")]
|
||||
[node name="Ambush偷听" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_f6mma")]
|
||||
position = Vector2(571, 28)
|
||||
trigger_mode = "interact"
|
||||
one_shot = false
|
||||
@ -208,7 +263,7 @@ offset_bottom = 5.0
|
||||
[node name="CollisionShape2D" parent="Ground/DeployLayer/Ambush偷听/Area2D" index="0"]
|
||||
shape = SubResource("RectangleShape2D_kwj7c")
|
||||
|
||||
[node name="吕萍钻出" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="5"]
|
||||
[node name="吕萍钻出" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="8"]
|
||||
visible = false
|
||||
position = Vector2(534, 0)
|
||||
sprite_frames = ExtResource("13_t3h08")
|
||||
@ -216,33 +271,44 @@ animation = &"c02_吕萍_钻出"
|
||||
frame = 6
|
||||
frame_progress = 1.0
|
||||
|
||||
[node name="癞子偷窥" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="6"]
|
||||
[node name="癞子偷窥" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="9"]
|
||||
visible = false
|
||||
position = Vector2(569, 56)
|
||||
sprite_frames = ExtResource("13_t3h08")
|
||||
animation = &"c02_王癞子_蹲着呼吸"
|
||||
autoplay = "c02_王癞子_蹲着呼吸"
|
||||
|
||||
[node name="Ambush回看洞口" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_f6mma")]
|
||||
[node name="Ambush回看洞口" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_f6mma")]
|
||||
position = Vector2(522, 31)
|
||||
enabled = false
|
||||
trigger_mode = "interact"
|
||||
hook_method = "look_back_hole"
|
||||
|
||||
[node name="Note十字架" parent="Ground/DeployLayer" index="8" instance=ExtResource("14_1ws4i")]
|
||||
position = Vector2(322, -10)
|
||||
texture = ExtResource("11_t3h08")
|
||||
[node name="Note十字架" parent="Ground/DeployLayer" index="11" instance=ExtResource("14_1ws4i")]
|
||||
position = Vector2(329, -3)
|
||||
sign_mark_offset = Vector2(0, -13.89)
|
||||
title_filter = "c02"
|
||||
note_key = "c02_瞎子卧室_十字架"
|
||||
|
||||
[node name="Note八卦图" parent="Ground/DeployLayer" index="9" instance=ExtResource("14_1ws4i")]
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Note十字架"]
|
||||
show_behind_parent = true
|
||||
position = Vector2(0, -3)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("11_t3h08")
|
||||
|
||||
[node name="Note八卦图" parent="Ground/DeployLayer" index="12" instance=ExtResource("14_1ws4i")]
|
||||
position = Vector2(144, -14)
|
||||
texture = ExtResource("12_1ws4i")
|
||||
sign_mark_offset = Vector2(0, -10.86)
|
||||
title_filter = "c02"
|
||||
note_key = "c02_瞎子卧室_八卦图"
|
||||
|
||||
[node name="Pickable粘鼠板" parent="Ground/DeployLayer" index="10" instance=ExtResource("17_5fx68")]
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Note八卦图"]
|
||||
show_behind_parent = true
|
||||
position = Vector2(0, -2)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("12_1ws4i")
|
||||
|
||||
[node name="Pickable粘鼠板" parent="Ground/DeployLayer" index="13" instance=ExtResource("17_5fx68")]
|
||||
position = Vector2(105, 70)
|
||||
texture = ExtResource("18_dkqw0")
|
||||
sign_mark_offset = Vector2(0, -9.34)
|
||||
@ -292,4 +358,5 @@ energy = 0.9
|
||||
blend_mode = 1
|
||||
|
||||
[editable path="Ground"]
|
||||
[editable path="Ground/DeployLayer/灯座Sprite2D/煤油灯"]
|
||||
[editable path="Ground/DeployLayer/Ambush偷听"]
|
||||
|
@ -18,19 +18,24 @@ func _on_ground_ready() -> void:
|
||||
|
||||
|
||||
func _intro():
|
||||
SceneManager.freeze_player(0)
|
||||
SceneManager.lock_player()
|
||||
# var player = SceneManager.get_player() as MainPlayer
|
||||
var player = %MainPlayer as MainPlayer
|
||||
player.hide_sprite = true
|
||||
player.position.x = 231.0
|
||||
player.set_facing_direction(Vector2.RIGHT)
|
||||
var duration = $"../盒子猫CanvasLayer".show_cat_duration
|
||||
await get_tree().create_timer(duration).timeout
|
||||
var anim = $"../DeployLayer/小猫初始动画" as AnimatedSprite2D
|
||||
anim.play()
|
||||
var camera = SceneManager.get_camera_marker()
|
||||
create_tween().tween_property(camera, "force_offset", Vector2.ZERO, 1.0)
|
||||
await anim.animation_finished
|
||||
if not ArchiveManager.get_global_value("c02_boxcat_skip_intro"):
|
||||
var layer = $"../盒子猫CanvasLayer"
|
||||
layer.disable_crawl = true
|
||||
var duration = layer.show_cat_duration
|
||||
await get_tree().create_timer(duration).timeout
|
||||
anim.play()
|
||||
var camera = SceneManager.get_camera_marker()
|
||||
create_tween().tween_property(camera, "force_offset", Vector2.ZERO, 1.0)
|
||||
await anim.animation_finished
|
||||
layer.disable_crawl = false
|
||||
anim.visible = false
|
||||
player.hide_sprite = false
|
||||
SceneManager.release_player()
|
||||
SceneManager.unlock_player()
|
||||
SceneManager.pop_center_notification(tr("ui_boxcat_press_s"))
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_ngo77")]
|
||||
scene_name = "c02_s12"
|
||||
display_hud = false
|
||||
player_y = 87
|
||||
footstep_type = "盒子猫"
|
||||
|
||||
@ -19,7 +20,7 @@ oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||
texture = ExtResource("3_oskpk")
|
||||
offset = Vector2(0, -102)
|
||||
offset = Vector2(0, -103.7)
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(152, 56)
|
||||
|
@ -17,9 +17,40 @@ func _on_ground_ready() -> void:
|
||||
pass
|
||||
|
||||
|
||||
func final_show():
|
||||
func knock_light_door():
|
||||
var knock_stream = preload("uid://7of24bqow07e")
|
||||
var player = SceneManager.get_player()
|
||||
# 一直循环下去
|
||||
for _i in range(100):
|
||||
SceneManager.freeze_player(0, 6)
|
||||
await get_tree().create_timer(0.6).timeout
|
||||
# 被抓时打断
|
||||
if not player.visible or player.hide_sprite:
|
||||
_outtro_show()
|
||||
break
|
||||
AudioManager.play_sfx(knock_stream)
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
# 被抓时打断
|
||||
if not player.visible or player.hide_sprite:
|
||||
_outtro_show()
|
||||
break
|
||||
AudioManager.play_sfx(knock_stream)
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
# 被抓时打断
|
||||
if not player.visible or player.hide_sprite:
|
||||
_outtro_show()
|
||||
break
|
||||
|
||||
|
||||
# 收尾演出
|
||||
func _outtro_show():
|
||||
$"../DeployLayer/Ambush终点光芒互动".enabled = false
|
||||
# 禁止猪头怪动画播放结束后重开游戏
|
||||
$"../DeployLayer/追猫猪头怪_传送".allow_restart_game = false
|
||||
$"Sfx结尾演出".play()
|
||||
await get_tree().create_timer(8.0).timeout
|
||||
$"../盒子猫CanvasLayer".show_footprint()
|
||||
# 盒子猫逃脱成功/被抓走,游戏结束,解锁瞎子卧室门
|
||||
$"Sfx开锁声".play()
|
||||
await get_tree().create_timer(10.0).timeout
|
||||
ArchiveManager.set_global_entry("c02_the_blind_room_unlocked", true)
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
SceneManager.get_ground_loader().transition_to_scene("c02_s08", "1")
|
||||
|
@ -1,14 +1,12 @@
|
||||
[gd_scene load_steps=13 format=3 uid="uid://bvjutch6jex0v"]
|
||||
[gd_scene load_steps=11 format=3 uid="uid://bvjutch6jex0v"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_71lma"]
|
||||
[ext_resource type="Script" uid="uid://28ujp27cbdh2" path="res://scene/ground/scene/c02/s13_animation.gd" id="2_w5nqu"]
|
||||
[ext_resource type="AudioStream" uid="uid://ccng5y2fip6mc" path="res://asset/audio/sfx/UI/开锁声.mp3" id="3_g6cxj"]
|
||||
[ext_resource type="Texture2D" uid="uid://dweafdywxenu6" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼楼道.png" id="3_miykx"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3ootg88b63rb" path="res://asset/art/scene/c02/旧版/s13_院子诡异版/fg_楼梯调色后.png" id="4_4adgb"]
|
||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_yywsi"]
|
||||
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="5_gge8e"]
|
||||
[ext_resource type="Texture2D" uid="uid://csrfyvaufo1wb" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/l_瞎子理发店光.png" id="6_gge8e"]
|
||||
[ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="7_g6cxj"]
|
||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_yywsi"]
|
||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="7_u2fv1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="9_yywsi"]
|
||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="10_kmk38"]
|
||||
@ -17,6 +15,7 @@
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_71lma")]
|
||||
scene_name = "c02_s13"
|
||||
display_hud = false
|
||||
player_y = 85
|
||||
footstep_type = "盒子猫"
|
||||
|
||||
@ -24,7 +23,7 @@ footstep_type = "盒子猫"
|
||||
script = ExtResource("2_w5nqu")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="Sfx开锁声" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
||||
[node name="Sfx结尾演出" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
||||
stream = ExtResource("3_g6cxj")
|
||||
bus = &"game_sfx"
|
||||
script = ExtResource("4_yywsi")
|
||||
@ -40,55 +39,62 @@ target_scene = "c02_s14"
|
||||
target_portal = "left"
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(776, 55)
|
||||
position = Vector2(853, 56)
|
||||
target_scene = "c02_s18"
|
||||
target_portal = "right"
|
||||
|
||||
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("6_yywsi")]
|
||||
position = Vector2(779, 56)
|
||||
portal_name = "1"
|
||||
target_scene = "c02_s17"
|
||||
target_portal = "right"
|
||||
|
||||
[node name="NotePortal" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_gge8e")]
|
||||
position = Vector2(853, 6)
|
||||
note_sign_texture = ExtResource("7_g6cxj")
|
||||
note_key = "notes_无法通过"
|
||||
|
||||
[node name="终点光芒" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
|
||||
modulate = Color(1, 1, 1, 0.34902)
|
||||
position = Vector2(226, 11)
|
||||
position = Vector2(226, 14)
|
||||
texture = ExtResource("6_gge8e")
|
||||
|
||||
[node name="Ambush猫咪敲门互动" parent="Ground/DeployLayer" index="4" instance=ExtResource("9_yywsi")]
|
||||
[node name="Ambush终点光芒互动" parent="Ground/DeployLayer" index="4" instance=ExtResource("9_yywsi")]
|
||||
position = Vector2(214, 11)
|
||||
trigger_mode = "interact"
|
||||
one_shot = false
|
||||
hook_method = "knock_light_door"
|
||||
|
||||
[node name="Ambush猫咪敲门互动" parent="Ground/DeployLayer" index="5" instance=ExtResource("9_yywsi")]
|
||||
position = Vector2(103, 6)
|
||||
trigger_mode = "interact"
|
||||
one_shot = false
|
||||
freeze_time = 1.5
|
||||
global_method = "c02_cat_play_with_door"
|
||||
|
||||
[node name="Ambush猫咪敲门互动2" parent="Ground/DeployLayer" index="5" instance=ExtResource("9_yywsi")]
|
||||
[node name="Ambush猫咪敲门互动2" parent="Ground/DeployLayer" index="6" instance=ExtResource("9_yywsi")]
|
||||
position = Vector2(539, 6)
|
||||
trigger_mode = "interact"
|
||||
one_shot = false
|
||||
freeze_time = 1.5
|
||||
global_method = "c02_cat_play_with_door"
|
||||
|
||||
[node name="Ambush猫咪敲门互动3" parent="Ground/DeployLayer" index="6" instance=ExtResource("9_yywsi")]
|
||||
[node name="Ambush猫咪敲门互动3" parent="Ground/DeployLayer" index="7" instance=ExtResource("9_yywsi")]
|
||||
position = Vector2(663, 5)
|
||||
trigger_mode = "interact"
|
||||
one_shot = false
|
||||
freeze_time = 1.5
|
||||
global_method = "c02_cat_play_with_door"
|
||||
|
||||
[node name="追猫猪头怪" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_kmk38")]
|
||||
position = Vector2(642, 17)
|
||||
[node name="追猫猪头怪_左侧" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_kmk38")]
|
||||
position = Vector2(269, 88)
|
||||
transfer_mode = false
|
||||
|
||||
[node name="追猫猪头怪2" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_kmk38")]
|
||||
position = Vector2(154, 18)
|
||||
[node name="追猫猪头怪_右侧" parent="Ground/DeployLayer" index="9" instance=ExtResource("10_kmk38")]
|
||||
position = Vector2(608, 82)
|
||||
transfer_mode = false
|
||||
|
||||
[node name="追猫猪头怪_传送" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_kmk38")]
|
||||
position = Vector2(984, 76)
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="4"]
|
||||
position = Vector2(41, 73)
|
||||
character = "盒子猫"
|
||||
|
||||
[node name="楼梯" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
||||
position = Vector2(1267, -4)
|
||||
texture = ExtResource("4_4adgb")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(-1, -16)
|
||||
scale = Vector2(1.05, 1.05)
|
||||
@ -96,6 +102,9 @@ scale = Vector2(1.05, 1.05)
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 870, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||
blend_mode = 1
|
||||
|
||||
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("7_u2fv1")]
|
||||
visible = false
|
||||
|
||||
|
@ -1,15 +1,17 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://d0p4x5st2r315"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://d0p4x5st2r315"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_cr1hi"]
|
||||
[ext_resource type="Script" uid="uid://bjisuntcem2lv" path="res://scene/ground/scene/c02/s14_animation.gd" id="2_o47bv"]
|
||||
[ext_resource type="Texture2D" uid="uid://y0e47513ca22" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼内侧楼道(粉笔画).png" id="3_cr1hi"]
|
||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_o47bv"]
|
||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_cr1hi"]
|
||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="5_o47bv"]
|
||||
|
||||
[node name="S14" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_cr1hi")]
|
||||
scene_name = "c02_s14"
|
||||
display_hud = false
|
||||
player_y = 85
|
||||
footstep_type = "盒子猫"
|
||||
|
||||
@ -37,6 +39,9 @@ portal_name = "1"
|
||||
target_scene = "c02_s16"
|
||||
target_portal = "right"
|
||||
|
||||
[node name="追猫猪头怪" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_o47bv")]
|
||||
position = Vector2(193, 79)
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="4"]
|
||||
position = Vector2(41, 73)
|
||||
character = "盒子猫"
|
||||
@ -44,6 +49,9 @@ character = "盒子猫"
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(101, 150, 660, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||
blend_mode = 1
|
||||
|
||||
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("5_cr1hi")]
|
||||
visible = false
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://b21p53g42j2nt"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://b21p53g42j2nt"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qxg0l"]
|
||||
[ext_resource type="Script" uid="uid://ebaq235h32fd" path="res://scene/ground/scene/c02/s15_animation.gd" id="2_etqjj"]
|
||||
[ext_resource type="Texture2D" uid="uid://c4eb71kdnqy3y" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼内侧楼道(粉笔画).png" id="3_qxg0l"]
|
||||
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="4_etqjj"]
|
||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_isic3"]
|
||||
[ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="5_qxg0l"]
|
||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_etqjj"]
|
||||
|
||||
[node name="S15" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_qxg0l")]
|
||||
scene_name = "c02_s15"
|
||||
display_hud = false
|
||||
player_y = 85
|
||||
footstep_type = "盒子猫"
|
||||
|
||||
@ -23,17 +23,17 @@ texture = ExtResource("3_qxg0l")
|
||||
offset = Vector2(0, -102)
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(160, 57)
|
||||
position = Vector2(367, 58)
|
||||
target_scene = "c02_s18"
|
||||
target_portal = "left"
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(496, 57)
|
||||
target_scene = "c02_s14"
|
||||
target_portal = "right"
|
||||
|
||||
[node name="NotePortal" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_etqjj")]
|
||||
position = Vector2(366, 10)
|
||||
note_sign_texture = ExtResource("5_qxg0l")
|
||||
note_key = "notes_无法通过"
|
||||
[node name="追猫猪头怪" parent="Ground/DeployLayer" index="2" instance=ExtResource("6_etqjj")]
|
||||
position = Vector2(76, 85)
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="4"]
|
||||
position = Vector2(64, 73)
|
||||
@ -46,6 +46,9 @@ position = Vector2(-1, -15)
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(125, 150, 660, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||
blend_mode = 1
|
||||
|
||||
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("5_isic3")]
|
||||
visible = false
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://22hc3oe8t0id"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://22hc3oe8t0id"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_umyae"]
|
||||
[ext_resource type="Script" uid="uid://dx2w5v1erjyls" path="res://scene/ground/scene/c02/s16_animation.gd" id="2_tmnwc"]
|
||||
@ -6,6 +6,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_qkv3g"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_qkv3g"]
|
||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="5_tmnwc"]
|
||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_fjtlb"]
|
||||
|
||||
[node name="S16" type="Node2D"]
|
||||
|
||||
@ -44,6 +45,8 @@ one_shot = false
|
||||
freeze_time = 1.5
|
||||
global_method = "c02_cat_play_with_door"
|
||||
|
||||
[node name="追猫猪头怪" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_fjtlb")]
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="4"]
|
||||
position = Vector2(235, 73)
|
||||
character = "盒子猫"
|
||||
@ -55,6 +58,9 @@ position = Vector2(3584, -7)
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 655, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||
blend_mode = 1
|
||||
|
||||
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("5_tmnwc")]
|
||||
visible = false
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_e436a")]
|
||||
scene_name = "c02_s17"
|
||||
display_hud = false
|
||||
player_y = 85
|
||||
footstep_type = "盒子猫"
|
||||
|
||||
@ -29,9 +30,9 @@ target_scene = "c02_s16"
|
||||
target_portal = "1"
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(853, 56)
|
||||
position = Vector2(852, 57)
|
||||
target_scene = "c02_s13"
|
||||
target_portal = "right"
|
||||
target_portal = "1"
|
||||
|
||||
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_e436a")]
|
||||
position = Vector2(662, 57)
|
||||
@ -66,6 +67,9 @@ position = Vector2(3584, -7)
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 860, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||
blend_mode = 1
|
||||
|
||||
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("4_n3bxc")]
|
||||
visible = false
|
||||
|
||||
|
17
scene/ground/scene/c02/s18_animation.gd
Normal 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
|
1
scene/ground/scene/c02/s18_animation.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://b3mak700k2qwt
|
70
scene/ground/scene/c02/s18_盒子猫一楼.tscn
Normal file
@ -0,0 +1,70 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://d27gv3pbkn4b8"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_4bsvj"]
|
||||
[ext_resource type="Script" uid="uid://b3mak700k2qwt" path="res://scene/ground/scene/c02/s18_animation.gd" id="2_4bsvj"]
|
||||
[ext_resource type="Texture2D" uid="uid://ttocw3erg8jv" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_一楼楼道(粉笔画).png" id="3_owpnf"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_emyx1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dewbg4phd8c17" path="res://scene/ground/script/c02/追猫猪头怪.tscn" id="6_xoyld"]
|
||||
[ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="7_8eo7o"]
|
||||
|
||||
[node name="S18" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_4bsvj")]
|
||||
scene_name = "c02_s18"
|
||||
display_hud = false
|
||||
player_y = 85
|
||||
footstep_type = "盒子猫"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_4bsvj")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="1"]
|
||||
texture = ExtResource("3_owpnf")
|
||||
offset = Vector2(0, -102)
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(32, 56)
|
||||
target_scene = "c02_s15"
|
||||
target_portal = "left"
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(776, 55)
|
||||
target_scene = "c02_s13"
|
||||
target_portal = "right"
|
||||
|
||||
[node name="Ambush猫咪敲门互动" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_emyx1")]
|
||||
position = Vector2(661, 6)
|
||||
trigger_mode = "interact"
|
||||
one_shot = false
|
||||
freeze_time = 1.5
|
||||
global_method = "c02_cat_play_with_door"
|
||||
|
||||
[node name="Ambush猫咪敲门互动2" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_emyx1")]
|
||||
position = Vector2(104, 6)
|
||||
trigger_mode = "interact"
|
||||
one_shot = false
|
||||
freeze_time = 1.5
|
||||
global_method = "c02_cat_play_with_door"
|
||||
|
||||
[node name="追猫猪头怪" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_xoyld")]
|
||||
position = Vector2(-18, 74)
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="4"]
|
||||
position = Vector2(235, 73)
|
||||
character = "盒子猫"
|
||||
facing_direction = Vector2(1, 0)
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(3584, -7)
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 860, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||
blend_mode = 1
|
||||
|
||||
[node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("7_8eo7o")]
|
||||
visible = false
|
||||
|
||||
[editable path="Ground"]
|
20
scene/ground/script/c02/s08_画特写.tscn
Normal file
@ -0,0 +1,20 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dd8dfoik0ig3y"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_jgyts"]
|
||||
[ext_resource type="Texture2D" uid="uid://d1seskftkw08q" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_特写.png" id="2_jo6o1"]
|
||||
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop/特写通用遮罩.png" id="3_myoho"]
|
||||
|
||||
[node name="s08_画特写" type="CanvasLayer"]
|
||||
script = ExtResource("1_jgyts")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
texture = ExtResource("2_jo6o1")
|
||||
|
||||
[node name="遮罩" type="TextureRect" parent="."]
|
||||
offset_left = -35.0
|
||||
offset_top = -3.0
|
||||
offset_right = 585.0
|
||||
offset_bottom = 313.0
|
||||
texture = ExtResource("3_myoho")
|
@ -1,9 +1,14 @@
|
||||
extends CanvasLayer
|
||||
|
||||
@export var disable_crawl := false:
|
||||
set(val):
|
||||
disable_crawl = val
|
||||
if disable_crawl and is_node_ready():
|
||||
down_pressing = false
|
||||
@export var show_cat := false
|
||||
@export var show_cat_duration := 3.0
|
||||
@export var show_cat_duration := 6.0
|
||||
|
||||
@onready var cat := $TextureCat as TextureRect
|
||||
@onready var cat_fg := $TextureCat as TextureRect
|
||||
|
||||
|
||||
func _ready():
|
||||
@ -14,10 +19,15 @@ func _ready():
|
||||
var camera = SceneManager.get_camera_marker()
|
||||
camera.limit_left -= 100
|
||||
camera.limit_right += 100
|
||||
if show_cat:
|
||||
create_tween().tween_property(cat, "modulate:a", 0.0, show_cat_duration)
|
||||
camera.limit_top -= 50
|
||||
# camera.limit_bottom += 50
|
||||
if show_cat and not ArchiveManager.get_global_value("c02_boxcat_skip_intro"):
|
||||
cat_fg.visible = true
|
||||
var tween = create_tween()
|
||||
tween.tween_interval(2.5)
|
||||
tween.tween_property(cat_fg, "modulate:a", 0.0, show_cat_duration - 3)
|
||||
else:
|
||||
cat.visible = false
|
||||
cat_fg.visible = false
|
||||
|
||||
|
||||
var down_pressing = false:
|
||||
@ -26,6 +36,7 @@ var down_pressing = false:
|
||||
down_pressing = val
|
||||
_try_toggle_crawl()
|
||||
|
||||
# 用来判断盒子猫是否在下蹲状态
|
||||
var crawling = false:
|
||||
set(val):
|
||||
crawling = val
|
||||
@ -57,7 +68,23 @@ func _try_toggle_crawl():
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("down") and not down_pressing:
|
||||
down_pressing = true
|
||||
elif event.is_action_released("down") and down_pressing:
|
||||
down_pressing = false
|
||||
if disable_crawl:
|
||||
return
|
||||
if event.is_action_pressed("down"):
|
||||
get_viewport().set_input_as_handled()
|
||||
if not down_pressing:
|
||||
down_pressing = true
|
||||
elif event.is_action_released("down"):
|
||||
get_viewport().set_input_as_handled()
|
||||
if down_pressing:
|
||||
down_pressing = false
|
||||
|
||||
|
||||
func show_footprint():
|
||||
$TextureFootprint.show()
|
||||
var frame = $TextureFrame
|
||||
frame.modulate.a = 0.0
|
||||
frame.visible = true
|
||||
var tween = create_tween()
|
||||
tween.tween_interval(2.0)
|
||||
tween.tween_property(frame, "modulate:a", 1.0, 4.0)
|
||||
|
@ -1,8 +1,13 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://khwxm5qbfj3k"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://khwxm5qbfj3k"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://xhksp8eu3jqy" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_镂空.png" id="1_tgkyo"]
|
||||
[ext_resource type="Script" uid="uid://ngb7wh7mqo0c" path="res://scene/ground/script/c02/盒子猫canvas_layer.gd" id="1_ygosu"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3es8r30qvxdl" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_盒子猫初始特写.png" id="3_ygosu"]
|
||||
[ext_resource type="Texture2D" uid="uid://tcjm158n8hnw" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/小脚脚印.png" id="4_bc5tk"]
|
||||
[ext_resource type="Texture2D" uid="uid://ccfbubistf0ov" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_镂空_纸.png" id="5_l6g3a"]
|
||||
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop/特写通用遮罩.png" id="6_aeggu"]
|
||||
[ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="6_qw0v6"]
|
||||
[ext_resource type="Texture2D" uid="uid://dx3i8mchgux1d" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/ux_纸张.png" id="6_rxlkc"]
|
||||
|
||||
[node name="盒子猫CanvasLayer" type="CanvasLayer"]
|
||||
layer = 0
|
||||
@ -19,6 +24,8 @@ texture = ExtResource("1_tgkyo")
|
||||
stretch_mode = 4
|
||||
|
||||
[node name="TextureCat" type="TextureRect" parent="."]
|
||||
visible = false
|
||||
light_mask = 17
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
@ -26,3 +33,77 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
texture = ExtResource("3_ygosu")
|
||||
|
||||
[node name="遮罩" type="TextureRect" parent="TextureCat"]
|
||||
layout_mode = 0
|
||||
offset_left = -35.0
|
||||
offset_top = -3.0
|
||||
offset_right = 585.0
|
||||
offset_bottom = 313.0
|
||||
texture = ExtResource("6_aeggu")
|
||||
|
||||
[node name="TextureFrame" type="TextureRect" parent="."]
|
||||
visible = false
|
||||
light_mask = 17
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -50.5
|
||||
offset_top = -68.5
|
||||
offset_right = 50.5
|
||||
offset_bottom = 68.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
texture = ExtResource("5_l6g3a")
|
||||
|
||||
[node name="TexturePaper" type="TextureRect" parent="TextureFrame"]
|
||||
modulate = Color(1, 1, 1, 0.329412)
|
||||
light_mask = 17
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -171.0
|
||||
offset_top = -98.0
|
||||
offset_right = 153.0
|
||||
offset_bottom = 105.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
texture = ExtResource("6_rxlkc")
|
||||
|
||||
[node name="遮罩" type="TextureRect" parent="TextureFrame"]
|
||||
layout_mode = 0
|
||||
offset_left = -35.0
|
||||
offset_top = -3.0
|
||||
offset_right = 585.0
|
||||
offset_bottom = 313.0
|
||||
texture = ExtResource("6_aeggu")
|
||||
|
||||
[node name="TextureFootprint" type="TextureRect" parent="."]
|
||||
visible = false
|
||||
light_mask = 49
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -50.5
|
||||
offset_top = -68.5
|
||||
offset_right = 50.5
|
||||
offset_bottom = 68.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
texture = ExtResource("4_bc5tk")
|
||||
|
||||
[node name="PointLight2D" type="PointLight2D" parent="TextureFootprint"]
|
||||
light_mask = 33
|
||||
position = Vector2(45.5, 72.5)
|
||||
range_item_cull_mask = 32
|
||||
texture = ExtResource("6_qw0v6")
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://cdf2qe8l7323i"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cdf2qe8l7323i"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_lpmq3"]
|
||||
[ext_resource type="Texture2D" uid="uid://cypvxj1vsl5yk" path="res://asset/art/scene/c02/s04_保卫科/花名册/bg_花名册桌面.png" id="2_l77sh"]
|
||||
[ext_resource type="Texture2D" uid="uid://sx3i3lkt2vfd" path="res://asset/art/scene/c02/s04_保卫科/花名册/花名册封皮.png" id="3_sdpps"]
|
||||
[ext_resource type="Texture2D" uid="uid://d1xr7g5huv5or" path="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png" id="2_eyynm"]
|
||||
|
||||
[node name="老鼠精画像" type="CanvasLayer"]
|
||||
script = ExtResource("1_lpmq3")
|
||||
@ -13,27 +12,4 @@ anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("2_l77sh")
|
||||
|
||||
[node name="TextureButton" type="TextureButton" parent="."]
|
||||
visible = false
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -62.5
|
||||
offset_top = -81.5
|
||||
offset_right = 62.5
|
||||
offset_bottom = 81.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture_normal = ExtResource("3_sdpps")
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
offset_left = 225.0
|
||||
offset_top = 149.0
|
||||
offset_right = 345.0
|
||||
offset_bottom = 179.0
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "老鼠精画像"
|
||||
texture = ExtResource("2_eyynm")
|
||||
|
@ -1,35 +1,113 @@
|
||||
extends Node2D
|
||||
|
||||
@export var enabled := true
|
||||
# 追击开始距离
|
||||
@export var start_distance := 400
|
||||
# 追击开始方位(左/右)
|
||||
@export var from_left := true
|
||||
# 追击速度
|
||||
@export var speed := 30
|
||||
# transfer_mode 意味着检测 portal_key,然后显示
|
||||
@export var transfer_mode := true
|
||||
# 脚步声周期时间
|
||||
@export var footstep_wait_time := 0.7
|
||||
@export var footstep_wait_time := 0.5
|
||||
# 追击速度
|
||||
@export var speed := 50
|
||||
# 转身范围,超过这个范围/在这个范围内不 hidden 都会转身
|
||||
@export var trun_back_detact_x := 150
|
||||
# 抓取范围,优先 catch_front 播放 猪头怪抓盒子猫
|
||||
# 其次 catch_nearby 播放 猪头怪抓盒子猫后段
|
||||
@export var catch_front_x_range := Vector2(55 - 3, 55 + 3)
|
||||
@export var catch_nearby_x_range := Vector2(-10, 55)
|
||||
# 观测范围,在观测范围内进入盒子仍旧会被抓
|
||||
@export var watching_x := 180
|
||||
|
||||
@onready var sfx_footstep = $SfxFootstep as Sfx
|
||||
# 允许被抓后重开游戏
|
||||
var allow_restart_game := true
|
||||
|
||||
var footstep_timer
|
||||
@onready var sfx_footstep = $SfxFootstep as Sfx2D
|
||||
@onready var sprite2d = $AnimatedSprite2D as AnimatedSprite2D
|
||||
|
||||
# 检测到猫钻进盒子的过程
|
||||
var cat_hiding_detacted = false
|
||||
var footstep_timer := Timer.new()
|
||||
var player
|
||||
var camera
|
||||
var catty_canvas_layer
|
||||
|
||||
# 运动&检测, 初始为 false
|
||||
var move_and_detact = false:
|
||||
set(val):
|
||||
move_and_detact = val
|
||||
toggle_footstep_sfx(move_and_detact)
|
||||
if val and is_node_ready():
|
||||
sprite2d.play("猪头怪走路")
|
||||
# 启用的瞬间先执行检测
|
||||
_physics_process(0.0)
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var player = SceneManager.get_player()
|
||||
# 高度对齐
|
||||
SceneManager.get_ground().ready.connect(_on_ground_ready)
|
||||
# 抓盒子猫后,传送回初始场景,跳过其 intro 过程(从纸面逐渐进入黑板粉笔空间)
|
||||
ArchiveManager.archive.set_global_entry("c02_boxcat_skip_intro", true)
|
||||
|
||||
|
||||
func _on_ground_ready():
|
||||
player = SceneManager.get_player()
|
||||
camera = SceneManager.get_camera_marker()
|
||||
catty_canvas_layer = SceneManager.get_ground().get_node("盒子猫CanvasLayer")
|
||||
var archive = ArchiveManager.archive as AssembledArchive
|
||||
var portal = archive.entrance_portal
|
||||
var chasing_started = ArchiveManager.get_global_value("c02_boxcat_chasing_started", false)
|
||||
if archive.current_scene == "c02_s13":
|
||||
# 开始追逐后,禁用二楼两只
|
||||
if chasing_started and not transfer_mode:
|
||||
queue_free()
|
||||
return
|
||||
elif not chasing_started:
|
||||
if transfer_mode:
|
||||
queue_free()
|
||||
return
|
||||
if portal == "left" and name != &"追猫猪头怪_左侧":
|
||||
queue_free()
|
||||
return
|
||||
if portal != "left" and name != &"追猫猪头怪_右侧":
|
||||
queue_free()
|
||||
return
|
||||
# c02_s13 开始追逐; call_deferred 延时设置
|
||||
ArchiveManager.archive.set_global_entry.call_deferred(
|
||||
"c02_boxcat_chasing_started", true
|
||||
)
|
||||
elif not chasing_started:
|
||||
# 如果没有开始追逐,且不是 13 号场景(二楼),则销毁
|
||||
queue_free()
|
||||
return
|
||||
# TODO 高度对齐
|
||||
position.y = player.position.y
|
||||
# 脚步声 timer
|
||||
footstep_timer = Timer.new()
|
||||
footstep_timer.one_shot = false
|
||||
footstep_timer.autostart = false
|
||||
footstep_timer.wait_time = footstep_wait_time
|
||||
add_child(footstep_timer)
|
||||
footstep_timer.timeout.connect(_on_footstep_timer_timeout)
|
||||
add_child(footstep_timer)
|
||||
if transfer_mode:
|
||||
visible = false
|
||||
var portal_node = (
|
||||
SceneManager.get_ground().get_node("DeployLayer/portal_" + portal) as Portal2D
|
||||
)
|
||||
global_position.x = portal_node.global_position.x
|
||||
# 禁用传送过来的 portal 3s
|
||||
_disable_portal_a_few_seconds(portal_node)
|
||||
# 3 秒后传送
|
||||
get_tree().create_timer(1.0).timeout.connect(_do_transfer)
|
||||
if GlobalConfig.DEBUG:
|
||||
print("猪头怪 Transfer to: " + portal)
|
||||
else:
|
||||
move_and_detact = true
|
||||
|
||||
|
||||
var footstep_count := 0
|
||||
|
||||
|
||||
func _on_footstep_timer_timeout() -> void:
|
||||
sfx_footstep.play()
|
||||
# shake camera
|
||||
footstep_count += 1
|
||||
if footstep_count % 2 == 0:
|
||||
# shake camera
|
||||
camera.shake_camera(4.0, 5.0)
|
||||
|
||||
|
||||
# 启用/禁用脚步声
|
||||
@ -40,57 +118,102 @@ func toggle_footstep_sfx(play := true):
|
||||
footstep_timer.stop()
|
||||
|
||||
|
||||
var move_tween: Tween
|
||||
# 禁用传送过来的 portal 3s
|
||||
func _disable_portal_a_few_seconds(portal_node: Portal2D):
|
||||
portal_node.enabled = false
|
||||
await create_tween().tween_interval(3.0).finished
|
||||
portal_node.enabled = true
|
||||
|
||||
|
||||
# 开始追击
|
||||
func start_chasing() -> void:
|
||||
toggle_footstep_sfx(true)
|
||||
# 初始位置与方向
|
||||
|
||||
|
||||
# 停止追击
|
||||
func stop_chasing() -> void:
|
||||
toggle_footstep_sfx(false)
|
||||
func _do_transfer():
|
||||
if player.global_position.x > global_position.x:
|
||||
_toggle_flip_h()
|
||||
modulate.a = 0.0
|
||||
visible = true
|
||||
var tween = create_tween()
|
||||
tween.tween_property(self, "modulate:a", 1.0, 2.0)
|
||||
await tween.finished
|
||||
move_and_detact = true
|
||||
|
||||
|
||||
# 转身追击
|
||||
func turn_back():
|
||||
move_and_detact = false
|
||||
# 呼吸一帧,然后转身
|
||||
pass
|
||||
sprite2d.play("猪头怪呼吸")
|
||||
await sprite2d.animation_looped
|
||||
_toggle_flip_h()
|
||||
move_and_detact = true
|
||||
|
||||
|
||||
# 正在抓取
|
||||
var catching = false
|
||||
# 检测到猫钻进盒子的过程
|
||||
var cat_hiding_detacted = false
|
||||
|
||||
var catch_x_range = Vector2(5, 10)
|
||||
func _toggle_flip_h():
|
||||
sprite2d.flip_h = !sprite2d.flip_h
|
||||
sprite2d.offset.x = -sprite2d.offset.x
|
||||
|
||||
|
||||
func detact_pos(player_pos: Vector2):
|
||||
if catching:
|
||||
# 抓小猫
|
||||
func do_catch(front: bool):
|
||||
move_and_detact = false
|
||||
SceneManager.freeze_player(0)
|
||||
# 抓小猫时 lock palyer
|
||||
SceneManager.lock_player()
|
||||
# 呼吸一帧,然后抓取
|
||||
sprite2d.play("猪头怪呼吸")
|
||||
await sprite2d.animation_looped
|
||||
player.hide_sprite = true
|
||||
if front:
|
||||
# 优先 catch_front 播放 猪头怪抓盒子猫
|
||||
sprite2d.play("猪头怪抓盒子猫")
|
||||
else:
|
||||
# 其次 catch_nearby 播放 猪头怪抓盒子猫后段
|
||||
sprite2d.play("猪头怪抓盒子猫后段")
|
||||
# TODO 音效
|
||||
SceneManager.pop_debug_dialog_info("音效", "抓取过程。 从捡小猫开始=" + str(front))
|
||||
await sprite2d.animation_finished
|
||||
# 等待动画播放后秒,再检查是否允许重开游戏
|
||||
if allow_restart_game:
|
||||
SceneManager.get_ground_loader().transition_to_scene("c02_s12", "left")
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if not move_and_detact:
|
||||
return
|
||||
var signed_x_diff = (player_pos.x - position.x) * sign(position.x)
|
||||
var player_pos = player.global_position
|
||||
|
||||
# 检查是否需要转身
|
||||
# 玩家到猪头怪面前的距离(有符号)
|
||||
var signed_x_diff = player_pos.x - global_position.x
|
||||
# 默认向左, flip_h 后向右
|
||||
if not sprite2d.flip_h:
|
||||
signed_x_diff *= -1
|
||||
|
||||
# 检查盒子猫状态
|
||||
cat_hiding_detacted = true
|
||||
# 如果离开一定范围,重置 catch_box_cat
|
||||
cat_hiding_detacted = false
|
||||
# 猫是否在盒子里
|
||||
var is_cat_hideen = catty_canvas_layer.crawling
|
||||
|
||||
# 检查隐藏小猫,在观测范围内进入盒子仍旧会被抓
|
||||
if signed_x_diff < 0 or signed_x_diff > watching_x:
|
||||
# 如果离开一定范围,重置 cat_hiding_detacted
|
||||
cat_hiding_detacted = false
|
||||
else:
|
||||
cat_hiding_detacted = cat_hiding_detacted or not is_cat_hideen
|
||||
|
||||
# 检查是否抓取
|
||||
if cat_hiding_detacted and is_in_range(signed_x_diff, catch_x_range):
|
||||
catching = true
|
||||
if cat_hiding_detacted or not is_cat_hideen:
|
||||
if signed_x_diff > catch_front_x_range.x and signed_x_diff < catch_front_x_range.y:
|
||||
# 优先 catch_front 播放 猪头怪抓盒子猫
|
||||
do_catch(true)
|
||||
return
|
||||
elif signed_x_diff > catch_nearby_x_range.x and signed_x_diff < catch_nearby_x_range.y:
|
||||
# 其次 catch_nearby 播放 猪头怪抓盒子猫后段
|
||||
do_catch(false)
|
||||
return
|
||||
|
||||
if not catching:
|
||||
# 检查是否需要转身,超过这个范围/在这个范围内不 hidden 都会转身
|
||||
if signed_x_diff < 0 and trun_back_detact_x < -signed_x_diff:
|
||||
turn_back()
|
||||
return
|
||||
# 如果距离近,先走到对应位置,然后使用 猪头怪抓盒子猫
|
||||
|
||||
# 距离近,使用 猪头怪抓盒子猫后段 直接抓取
|
||||
|
||||
|
||||
|
||||
func is_in_range(x: float, x_range: Vector2) -> bool:
|
||||
return x > x_range.x and x < x_range.y
|
||||
# 更新追击位置
|
||||
var mov_delta = speed * delta
|
||||
if not sprite2d.flip_h:
|
||||
mov_delta *= -1
|
||||
global_position.x += mov_delta
|
||||
|
@ -19,12 +19,10 @@ max_distance = 600.0
|
||||
attenuation = 1.7411
|
||||
bus = &"game_sfx"
|
||||
script = ExtResource("2_35vtd")
|
||||
loop_round_time = null
|
||||
debug_play = null
|
||||
metadata/_custom_type_script = "uid://wapo47a1oddf"
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
z_index = 20
|
||||
sprite_frames = ExtResource("4_3sbui")
|
||||
animation = &"猪头怪呼吸"
|
||||
autoplay = "猪头怪呼吸"
|
||||
offset = Vector2(-29, -68)
|
||||
|