线索笔记高清化(*3 -> *5&放大字);小蝉院子铁门前与二楼跑开 event

This commit is contained in:
cakipaul 2025-07-03 15:00:15 +08:00
parent 35ea6e62e3
commit 0adba89a5b
77 changed files with 465 additions and 706 deletions

View File

@ -78,6 +78,7 @@ func _debug_mov_projection():
# 展示 accumulated animation 的目标位置
debug_mov_onion_sprite2d.position.x = mov_config.movement_x * (-1 if flip_h else 1) / scale.x
debug_mov_onion_sprite2d.texture = sprite_frames.get_frame_texture(debug_mov_animation, 0)
debug_mov_onion_sprite2d.flip_h = flip_h
elif debug_mov_animation:
push_warning("Debug move config not found:", debug_mov_animation)

View File

@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="1_21eda"]
[node name="AutoplayAnimatedSprite" type="AnimatedSprite2D"]
[node name="ProAnimatedSprite2D" type="AnimatedSprite2D"]
script = ExtResource("1_21eda")
[node name="DebugMovOnionSkinSprite2D" type="Sprite2D" parent="."]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bxo0l3d3blmc5"
path="res://.godot/imported/0.png-9c663fa7b539a22de5cbe437f0c29f08.ctex"
path="res://.godot/imported/0.png-4c9932316395b573dd7bacd196e668a8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png"
dest_files=["res://.godot/imported/0.png-9c663fa7b539a22de5cbe437f0c29f08.ctex"]
source_file="res://asset/art/gif/c00_通用动作/c00_头套小婵_idle/0.png"
dest_files=["res://.godot/imported/0.png-4c9932316395b573dd7bacd196e668a8.ctex"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dkus208xyxsu2"
path="res://.godot/imported/1.png-925ae896e4be31cc91bdcb9d5f5b882e.ctex"
path="res://.godot/imported/1.png-4fc6ba53bb99f7fcd43f01cdb2f080ec.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png"
dest_files=["res://.godot/imported/1.png-925ae896e4be31cc91bdcb9d5f5b882e.ctex"]
source_file="res://asset/art/gif/c00_通用动作/c00_头套小婵_idle/1.png"
dest_files=["res://.godot/imported/1.png-4fc6ba53bb99f7fcd43f01cdb2f080ec.ctex"]
[params]

View File

@ -1,20 +1,33 @@
[gd_resource type="SpriteFrames" load_steps=12 format=3 uid="uid://di43shn22n5ph"]
[gd_resource type="SpriteFrames" load_steps=14 format=3 uid="uid://di43shn22n5ph"]
[ext_resource type="Texture2D" uid="uid://bxo0l3d3blmc5" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_idle/0.png" id="1_3ju7n"]
[ext_resource type="Texture2D" uid="uid://bsu7h8uy5ogjh" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_write/0.png" id="1_820uu"]
[ext_resource type="Texture2D" uid="uid://btkowww28teyj" path="res://asset/art/gif/c00_通用动作/小蝶背身/0.png" id="1_4005n"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/0.png" id="1_cwvw3"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/1.png" id="2_5lxki"]
[ext_resource type="Texture2D" uid="uid://bcuun2obubvly" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/0.png" id="1_cwvw3"]
[ext_resource type="Texture2D" uid="uid://rgq8twn510d0" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/1.png" id="2_5lxki"]
[ext_resource type="Texture2D" uid="uid://dkus208xyxsu2" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_idle/1.png" id="2_23ua0"]
[ext_resource type="Texture2D" uid="uid://bi50elgh70lg0" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_write/1.png" id="2_frc01"]
[ext_resource type="Texture2D" uid="uid://cybck8rsjbgme" path="res://asset/art/gif/c00_通用动作/小蝶背身/1.png" id="2_tglh5"]
[ext_resource type="Texture2D" uid="uid://dpjyfsiqgw2m3" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_write/2.png" id="3_3agrw"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/2.png" id="3_ryjka"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/3.png" id="4_k23kj"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/4.png" id="5_v5avr"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/5.png" id="6_phou8"]
[ext_resource type="Texture2D" uid="uid://bftetoqjhyo1o" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/2.png" id="3_ryjka"]
[ext_resource type="Texture2D" uid="uid://cl24qoie1fs6" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/3.png" id="4_k23kj"]
[ext_resource type="Texture2D" uid="uid://dutjfc10wle7v" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/4.png" id="5_v5avr"]
[ext_resource type="Texture2D" uid="uid://deejj6x82guq5" path="res://asset/art/gif/c00_通用动作/c00_头套小婵_run/5.png" id="6_phou8"]
[resource]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_3ju7n")
}, {
"duration": 1.0,
"texture": ExtResource("2_23ua0")
}],
"loop": true,
"name": &"c00_头套小婵_idle",
"speed": 5.0
}, {
"frames": [{
"duration": 3.0,
"texture": ExtResource("1_cwvw3")
}, {

View File

@ -1,8 +1,6 @@
[gd_resource type="SpriteFrames" load_steps=28 format=3 uid="uid://blij4obvhb1vf"]
[gd_resource type="SpriteFrames" load_steps=26 format=3 uid="uid://blij4obvhb1vf"]
[ext_resource type="Texture2D" uid="uid://8otjg8gn0m6p" path="res://asset/art/gif/c02_公寓过道/眨眼睛/0.png" id="1_dcr3n"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png" id="1_wvj6u"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png" id="2_lqlhi"]
[ext_resource type="Texture2D" uid="uid://h67dk77cktlg" path="res://asset/art/gif/c02_公寓过道/眨眼睛/1.png" id="2_thlvb"]
[ext_resource type="Texture2D" uid="uid://6po3pxrwx1vd" path="res://asset/art/gif/c02_公寓过道/眨眼睛/2.png" id="3_wvj6u"]
[ext_resource type="Texture2D" uid="uid://d3856wm1qo7kv" path="res://asset/art/gif/c02_公寓过道/眨眼睛/3.png" id="4_lqlhi"]
@ -31,17 +29,6 @@
[resource]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_wvj6u")
}, {
"duration": 1.0,
"texture": ExtResource("2_lqlhi")
}],
"loop": true,
"name": &"头套小蝉呼吸",
"speed": 1.5
}, {
"frames": [{
"duration": 6.0,
"texture": ExtResource("1_dcr3n")
}, {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,14 +0,0 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://dgysufpkl5pdp"
path="res://.godot/imported/头套小蝉呼吸.gif-ada0c526340ead17a8bfd36de468f05f.tres"
[deps]
source_file="res://asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif"
dest_files=["res://.godot/imported/头套小蝉呼吸.gif-ada0c526340ead17a8bfd36de468f05f.tres"]
[params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://ldh387gluo1t"
path="res://.godot/imported/线索笔记内容-34.png-20678480317ddc66546336dad2cc741c.ctex"
uid="uid://njynvnf3yn77"
path="res://.godot/imported/眼镜盒.png-c9a3b3b09fe6e380d181d012487b0cc7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/ui/note/线索笔记内容-34.png"
dest_files=["res://.godot/imported/线索笔记内容-34.png-20678480317ddc66546336dad2cc741c.ctex"]
source_file="res://asset/art/prop/c02/眼镜盒.png"
dest_files=["res://.godot/imported/眼镜盒.png-c9a3b3b09fe6e380d181d012487b0cc7.ctex"]
[params]

View File

@ -1,13 +1,12 @@
@tool
extends Node2D
@export var export_dir_root := "res://asset/art/ui/note/"
@export var json: JSON # can be a JSONParseResult or a Dictionary
@export var texture: Texture2D
func _ready() -> void:
_run()
@export_tool_button("执行") var execute = _run
@export var demo_scale := 0.5
@export_tool_button("刷新 demo") var refresh = _refresh_demo
var export_dir
@ -53,8 +52,6 @@ func _run() -> void:
_create_and_save_atlas(slice_name, rect)
print("已导出 Atlas: ", slice_name, " at ", export_dir)
get_tree().quit.call_deferred()
func _create_and_save_atlas(atlas_name: String, region: Rect2) -> void:
var path = export_dir + atlas_name + ".tres"
@ -70,3 +67,26 @@ func _create_and_save_atlas(atlas_name: String, region: Rect2) -> void:
atlas_res.filter_clip = true
atlas_res.region = region # 修正了原来拼写错误的 regoin
ResourceSaver.save(atlas_res, path)
func _refresh_demo() -> void:
var demo_node = $Demo
for c in demo_node.get_children():
c.queue_free()
# 将 export_dir 下的 texture 显示在 demo 下,彼此保持 200*200 距离
var x_offset = 0
var y_offset = 0
for file_name in DirAccess.get_files_at(export_dir):
if file_name.ends_with(".tres"):
var path = export_dir + file_name
var res = load(path)
if res is AtlasTexture:
var sprite = Sprite2D.new()
sprite.texture = res
sprite.position = Vector2(x_offset, y_offset)
sprite.scale = Vector2(demo_scale, demo_scale)
demo_node.add_child(sprite)
x_offset += 200
if x_offset > 1000:
x_offset = 0
y_offset += 200

View File

@ -8,3 +8,5 @@
script = ExtResource("1_74cad")
json = ExtResource("2_rv6as")
texture = ExtResource("3_5ej8b")
[node name="Demo" type="Node2D" parent="."]

Binary file not shown.

View File

@ -1,292 +1,38 @@
{
"frames": {
"笔记线索_第一章.png": {
"frame": {
"x": 0.0,
"y": 0.0,
"w": 1790.0,
"h": 1136.0
},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {
"x": 0.0,
"y": 0.0,
"w": 1790.0,
"h": 1136.0
},
"sourceSize": {
"w": 1790.0,
"h": 1136.0
},
"duration": 100.0
}
},
"meta": {
"app": "https://www.aseprite.org/",
"version": "1.3.8.1-arm64",
"format": "RGBA8888",
"size": {
"w": 1790.0,
"h": 1136.0
},
"scale": "1",
"slices": [
{
"name": "c02_meat_knockDoor",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 226.0,
"y": 253.0,
"w": 101.0,
"h": 53.0
}
}
]
},
{
"name": "c02_hand_exchange",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 49.0,
"y": 184.0,
"w": 163.0,
"h": 116.0
}
}
]
},
{
"name": "c02_musicbox_needPuppet",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 86.0,
"y": 317.0,
"w": 102.0,
"h": 58.0
}
}
]
},
{
"name": "c02_gate_chain",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 426.0,
"y": 333.0,
"w": 89.0,
"h": 70.0
}
}
]
},
{
"name": "c02_split_illusionSpace",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 482.0,
"y": 170.0,
"w": 199.0,
"h": 89.0
}
}
]
},
{
"name": "c02_meat_stopMouse",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 364.0,
"y": 77.0,
"w": 108.0,
"h": 59.0
}
}
]
},
{
"name": "c02_map_1Left",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 872.0,
"y": 88.0,
"w": 517.0,
"h": 383.0
}
}
]
},
{
"name": "c02_map_1Right",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 1440.0,
"y": 278.0,
"w": 283.0,
"h": 195.0
}
}
]
},
{
"name": "c02_map_2",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 1324.0,
"y": 714.0,
"w": 437.0,
"h": 371.0
}
}
]
},
{
"name": "c02_shoe_giveToMouce",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 1186.0,
"y": 780.0,
"w": 121.0,
"h": 79.0
}
}
]
},
{
"name": "c02_hand_requireCoin",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 1185.0,
"y": 867.0,
"w": 112.0,
"h": 75.0
}
}
]
},
{
"name": "c02_xchan_sheKnowsMe",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 882.0,
"y": 571.0,
"w": 462.0,
"h": 93.0
}
}
]
},
{
"name": "c02_road_address",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 1381.0,
"y": 563.0,
"w": 391.0,
"h": 97.0
}
}
]
},
{
"name": "c02_xchan_giveHerPuppet",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 1466.0,
"y": 166.0,
"w": 168.0,
"h": 49.0
}
}
]
},
{
"name": "c02_list_namesAndGoal",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 55.0,
"y": 548.0,
"w": 615.0,
"h": 283.0
}
}
]
},
{
"name": "c02_xchan_isSheGohst",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 93.0,
"y": 916.0,
"w": 200.0,
"h": 127.0
}
}
]
},
{
"name": "c02_blotOut",
"color": "#0000ffff",
"keys": [
{
"frame": 0.0,
"bounds": {
"x": 378.0,
"y": 931.0,
"w": 97.0,
"h": 74.0
}
}
]
}
]
}
{ "frames": {
"c02_slices.png": {
"frame": { "x": 0, "y": 0, "w": 2984, "h": 1894 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 2984, "h": 1894 },
"sourceSize": { "w": 2984, "h": 1894 },
"duration": 100
}
},
"meta": {
"app": "https://www.aseprite.org/",
"version": "1.3.8.1-arm64",
"image": "c02_slices.png",
"format": "RGBA8888",
"size": { "w": 2984, "h": 1894 },
"scale": "1",
"slices": [
{ "name": "c02_meat_knockDoor", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 246, "y": 120, "w": 298, "h": 138 } }] },
{ "name": "c02_hand_exchange", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 76, "y": 308, "w": 415, "h": 280 } }] },
{ "name": "c02_musicbox_needPuppet", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 186, "y": 652, "w": 263, "h": 155 } }] },
{ "name": "c02_split_illusionSpace", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 612, "y": 322, "w": 525, "h": 221 } }] },
{ "name": "c02_meat_stopMouse", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 654, "y": 108, "w": 289, "h": 167 } }] },
{ "name": "c02_shoe_giveToMouce", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1072, "y": 96, "w": 317, "h": 195 } }] },
{ "name": "c02_gate_chain", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 656, "y": 580, "w": 323, "h": 239 } }] },
{ "name": "c02_hand_requireCoin", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1084, "y": 558, "w": 271, "h": 181 } }] },
{ "name": "c02_xchan_giveHerPuppet", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 996, "y": 824, "w": 371, "h": 177 } }] },
{ "name": "c02_list_namesAndGoal", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1017, "y": 1281, "w": 1063, "h": 517 } }] },
{ "name": "c02_xchan_isSheGhost", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 147, "y": 1515, "w": 349, "h": 241 } }] },
{ "name": "c02_blotOut", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 603, "y": 1521, "w": 274, "h": 211 } }] },
{ "name": "c02_xchan_sheKnowsMe", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1461, "y": 927, "w": 748, "h": 205 } }] },
{ "name": "c02_road_address", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 2286, "y": 921, "w": 667, "h": 181 } }] },
{ "name": "c02_map_2", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 2181, "y": 1191, "w": 748, "h": 619 } }] },
{ "name": "c02_map_1Left", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1456, "y": 140, "w": 857, "h": 645 } }] },
{ "name": "c02_map_1Right", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 2404, "y": 436, "w": 465, "h": 369 } }] }
]
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 97 KiB

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_yfw6c")
region = Rect2(378, 931, 97, 74)
region = Rect2(603, 1521, 274, 211)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_r8xbd")
region = Rect2(426, 333, 89, 70)
region = Rect2(656, 580, 323, 239)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_036bj")
region = Rect2(49, 184, 163, 116)
region = Rect2(76, 308, 415, 280)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_bal72")
region = Rect2(1185, 867, 112, 75)
region = Rect2(1084, 558, 271, 181)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_4di5c")
region = Rect2(55, 548, 615, 283)
region = Rect2(1017, 1281, 1063, 517)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_xc11y")
region = Rect2(872, 88, 517, 383)
region = Rect2(1456, 140, 857, 645)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_lupqk")
region = Rect2(1440, 278, 283, 195)
region = Rect2(2404, 436, 465, 369)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_m0mgu")
region = Rect2(1324, 714, 437, 371)
region = Rect2(2181, 1191, 748, 619)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_5rkoq")
region = Rect2(226, 253, 101, 53)
region = Rect2(246, 120, 298, 138)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_4wotv")
region = Rect2(364, 77, 108, 59)
region = Rect2(654, 108, 289, 167)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_01jll")
region = Rect2(86, 317, 102, 58)
region = Rect2(186, 652, 263, 155)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_hneqy")
region = Rect2(1381, 563, 391, 97)
region = Rect2(2286, 921, 667, 181)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_hjq36")
region = Rect2(1186, 780, 121, 79)
region = Rect2(1072, 96, 317, 195)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_cu3l7")
region = Rect2(482, 170, 199, 89)
region = Rect2(612, 322, 525, 221)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_7ebxh")
region = Rect2(1466, 166, 168, 49)
region = Rect2(996, 824, 371, 177)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_jin8p")
region = Rect2(93, 916, 200, 127)
region = Rect2(147, 1515, 349, 241)
filter_clip = true

View File

@ -4,5 +4,5 @@
[resource]
atlas = ExtResource("1_a3qry")
region = Rect2(882, 571, 462, 93)
region = Rect2(1461, 927, 748, 205)
filter_clip = true

View File

@ -1,37 +0,0 @@
{ "frames": {
"笔记线索_第一章.png": {
"frame": { "x": 0, "y": 0, "w": 1790, "h": 1136 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 1790, "h": 1136 },
"sourceSize": { "w": 1790, "h": 1136 },
"duration": 100
}
},
"meta": {
"app": "https://www.aseprite.org/",
"version": "1.3.8.1-arm64",
"format": "RGBA8888",
"size": { "w": 1790, "h": 1136 },
"scale": "1",
"slices": [
{ "name": "c02_meat_knockDoor", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 226, "y": 253, "w": 101, "h": 53 } }] },
{ "name": "c02_hand_exchange", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 49, "y": 184, "w": 163, "h": 116 } }] },
{ "name": "c02_musicbox_needPuppet", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 86, "y": 317, "w": 102, "h": 58 } }] },
{ "name": "c02_gate_chain", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 426, "y": 333, "w": 89, "h": 70 } }] },
{ "name": "c02_split_illusionSpace", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 482, "y": 170, "w": 199, "h": 89 } }] },
{ "name": "c02_meat_stopMouse", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 364, "y": 77, "w": 108, "h": 59 } }] },
{ "name": "c02_map_1Left", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 872, "y": 88, "w": 517, "h": 383 } }] },
{ "name": "c02_map_1Right", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1440, "y": 278, "w": 283, "h": 195 } }] },
{ "name": "c02_map_2", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1324, "y": 714, "w": 437, "h": 371 } }] },
{ "name": "c02_shoe_giveToMouce", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1186, "y": 780, "w": 121, "h": 79 } }] },
{ "name": "c02_hand_requireCoin", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1185, "y": 867, "w": 112, "h": 75 } }] },
{ "name": "c02_xchan_sheKnowsMe", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 882, "y": 571, "w": 462, "h": 93 } }] },
{ "name": "c02_road_address", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1381, "y": 563, "w": 391, "h": 97 } }] },
{ "name": "c02_xchan_giveHerPuppet", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 1466, "y": 166, "w": 168, "h": 49 } }] },
{ "name": "c02_list_namesAndGoal", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 55, "y": 548, "w": 615, "h": 283 } }] },
{ "name": "c02_xchan_isSheGhost", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 93, "y": 916, "w": 200, "h": 127 } }] },
{ "name": "c02_blotOut", "color": "#0000ffff", "keys": [{ "frame": 0, "bounds": {"x": 378, "y": 931, "w": 97, "h": 74 } }] }
]
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5krp8f4yqmx6"
path="res://.godot/imported/笔记线索_第一章.png-5a92d0c0d981e032650977ec75646448.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/ui/note/笔记线索_第一章.png"
dest_files=["res://.godot/imported/笔记线索_第一章.png-5a92d0c0d981e032650977ec75646448.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bv57eyqs03k4y"
path="res://.godot/imported/线索笔记内容-29.png-95fd43b7ca9099c75bffffa603ae6aa5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/ui/note/线索笔记内容-29.png"
dest_files=["res://.godot/imported/线索笔记内容-29.png-95fd43b7ca9099c75bffffa603ae6aa5.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://blub5hsn6iqit"
path="res://.godot/imported/线索笔记内容-30.png-ef097285280ae7bdb089673a8192d47f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/ui/note/线索笔记内容-30.png"
dest_files=["res://.godot/imported/线索笔记内容-30.png-ef097285280ae7bdb089673a8192d47f.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://beltvxcu7pumi"
path="res://.godot/imported/线索笔记内容-31.png-38ff27035789ae736b9130cb69e87171.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/ui/note/线索笔记内容-31.png"
dest_files=["res://.godot/imported/线索笔记内容-31.png-38ff27035789ae736b9130cb69e87171.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://db1k1t1lc34ut"
path="res://.godot/imported/线索笔记内容-32.png-374901b769b8a2ab0cdbb847132d8b84.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/ui/note/线索笔记内容-32.png"
dest_files=["res://.godot/imported/线索笔记内容-32.png-374901b769b8a2ab0cdbb847132d8b84.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@ -3,6 +3,8 @@ ui_press_e,按 E 可互动,,,,,Press E to interact
ui_important_item_update,重要物品已更新(按 B 打开背包),,,,,
prop_小猫纸条,小猫纸条,,,[#texture=c02/小猫纸条.png],,
prop_小猫纸条_说明,「大哥,今晚老地方见 /井\」,,,,,
prop_眼镜,眼镜,,,[#texture=c02/眼镜.png],,
prop_眼镜_说明,这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,,
index_新游戏,新游戏,,,,,
index_继续游戏,继续游戏,,,,,
index_退出游戏,退出游戏,,,,,
@ -62,8 +64,6 @@ prop_信碎片2,信碎片(二),,,[#texture=c01/信件右上.png],,
prop_信碎片2_说明,小萍:你现下境况如何?你虽离开浦育院已久,但我始终没有忘记为你祈祷。愿上帝(看不清),,,,,
prop_银元,银元,,,[#texture=c01/银元.png],,
prop_银元_说明,一枚“袁大头”银元,中华民国十年造。,,,,,
prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,
prop_院长的信_说明,小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号,,,,,
prop_火柴,火柴,,,[#texture=c02/火柴.png],,
prop_火柴_说明,盒里还剩下很多根,稍微有些受潮,,,[#texture=c02/火柴.png],,
prop_小猫玩具的脑袋,小猫玩具的脑袋,,,[#texture=c02/新小猫头.png],,
@ -90,11 +90,8 @@ prop_弹珠,弹珠,,,[#texture=c02/弹珠.png],,
prop_弹珠_说明,一种玻璃小球,孩子们常用它来进行弹子游戏,,,,,
prop_木头人偶,木头人偶,,,[#texture=c02/小蝉人偶.png],,
prop_木头人偶_说明,略显粗糙的木头玩偶,能依稀辨认出是个小女孩的模样,,,,,
prop_小蝉人偶_说明,小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花,,,,,
prop_粘鼠板,粘鼠板,,,[#texture=c02/粘鼠板特写.png],,
prop_粘鼠板_说明,自制的捕鼠工具,纸上面有黏黏的浆糊,,,,,
prop_船票,船票,,,[#texture=c02/船票.png],,
prop_船票_说明,民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,,
prop_一把香,一把香,,,[#texture=c02/一把香.png],,
prop_2014钥匙,2014钥匙,,,[#texture=c02/1012钥匙物品.png],,
prop_重要物品示例,重要物品示例,,,[#texture=c01/银元.png],,
@ -103,6 +100,16 @@ prop_绳子,绳子,,,[#texture=c02/绳子物品.png][#inspect=c02/绳子.png],,
prop_3014旋转锁钥匙,3014旋转锁钥匙,,,[#texture=c02/3014旋转锁钥匙物品.png][#inspect=c02/3014旋转锁钥匙.png],,
prop_令牌,令牌,,,[#texture=c01/令牌物品.png][#inspect=c01/令牌.png],,
prop_装有灵魂的令牌,装有灵魂的令牌,,,[#texture=c01/装有灵魂的令牌物品.png][#inspect=c01/装有灵魂的令牌.png],,
prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,
prop_院长的信_说明,小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号,,,,,
prop_船票,船票,,,[#texture=c02/船票.png],,
prop_船票_说明,民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,,
prop_眼镜盒,眼镜盒,,,[#texture=c02/眼镜盒.png],,
prop_眼镜盒_说明,这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,,
prop_小蝉人偶,小蝉人偶,,,[#texture=c02/小蝉人偶.png],,
prop_小蝉人偶_说明,小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花。,,,,,
prop_单只小鞋子,单只小鞋子,,,[#texture=c02/小鞋子1.png],,
prop_小鞋子_说明,这只小鞋子曾经属于一个裹了小脚的女孩,鞋不成双,祸事难防。,,,,,
c01_s05_检查院长房间,好像忘记了什么事情,再回去检查一遍吧。,,ID格式 prop_xx_说明,,,
c01_s07_需要报纸,书店还没开门。,,,,,
c01_s08_书店工作,老板交代的工作还没做完,不能偷懒。,,,,,
@ -144,6 +151,7 @@ c02_s03_干掉的血迹,血迹看上去干了很久,血脚印有大有小,
c02_院子_算命摊位,算命的摊位?,,,,,
c02_院子_要下雨,好像要下雨了?,,,,,
c02_s03_掉鞋子,,,,,,
c02_铁门旁遇到小蝉,又是她...,,,,,
c02_s03_铁门,被铁链锁住了,,,,,
c02_偷听李癞对话后,三快三慢?是和那个肉铺老板交流的暗号吗?,,,,,
c02_柜子可放置区域,这里之前放着的东西好像被人挪走了?,,,,,
@ -156,7 +164,7 @@ c02_保卫科老鼠精,鼠歌 <br><br>天地小如喉,<br>红轮自吞吐。<
c02_小手还能换什么,...还有什么东西能跟它交换呢?,,,,,
c02_小手出现摔倒,,,,,,
c02_小手是什么鬼,这是什么鬼东西,它是在讨要什么,,,,,
c02_小手再次出现,又来一个!,,,,,
c02_小手再次出现,又来一个!<br>这地方到底是怎么回事?,,,,,
c02_一楼楼道被挡住,被挡住了,,,,,
c02_一楼戏台,盖着布的木头架子...用来做什么的呢,,,,,
c02_描述垃圾通道,桶是空的,飘着一股血气,又酸又腥。,,,,,
@ -171,6 +179,7 @@ c02_敲门_肉掉落,楼道有东西掉下来了?,,,,,
c02_敲门_老鼠叼肉,刚刚这里有块肉不见了?,,,,,
c02_锡箔换小鞋子,另一只小鞋子。,,,,,
c02_二楼楼梯杂物堆,去三楼的路被堵住了,要不先看看别的地方吧。,,,,,
c02_二楼小蝉跑掉,这个小女孩神出鬼没的,她说不定知道上楼的路。,,,,,
c02_二楼水盆,盆里的水很清澈,看上去像是刚盛的。,,,,,
c02_二楼老鼠洞,到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。,,,,,
c02_二楼血脚印,又是这种小小尖尖的血脚印...,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
3 ui_important_item_update 重要物品已更新(按 B 打开背包)
4 prop_小猫纸条 小猫纸条 [#texture=c02/小猫纸条.png]
5 prop_小猫纸条_说明 「大哥,今晚老地方见 /井\」
6 prop_眼镜 眼镜 [#texture=c02/眼镜.png]
7 prop_眼镜_说明 这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。
8 index_新游戏 新游戏
9 index_继续游戏 继续游戏
10 index_退出游戏 退出游戏
64 prop_信碎片2_说明 小萍:你现下境况如何?你虽离开浦育院已久,但我始终没有忘记为你祈祷。愿上帝(看不清)
65 prop_银元 银元 [#texture=c01/银元.png]
66 prop_银元_说明 一枚“袁大头”银元,中华民国十年造。
prop_院长的信 院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png]
prop_院长的信_说明 小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号
67 prop_火柴 火柴 [#texture=c02/火柴.png]
68 prop_火柴_说明 盒里还剩下很多根,稍微有些受潮 [#texture=c02/火柴.png]
69 prop_小猫玩具的脑袋 小猫玩具的脑袋 [#texture=c02/新小猫头.png]
90 prop_弹珠_说明 一种玻璃小球,孩子们常用它来进行弹子游戏
91 prop_木头人偶 木头人偶 [#texture=c02/小蝉人偶.png]
92 prop_木头人偶_说明 略显粗糙的木头玩偶,能依稀辨认出是个小女孩的模样
prop_小蝉人偶_说明 小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花
93 prop_粘鼠板 粘鼠板 [#texture=c02/粘鼠板特写.png]
94 prop_粘鼠板_说明 自制的捕鼠工具,纸上面有黏黏的浆糊
prop_船票 船票 [#texture=c02/船票.png]
prop_船票_说明 民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院?
95 prop_一把香 一把香 [#texture=c02/一把香.png]
96 prop_2014钥匙 2014钥匙 [#texture=c02/1012钥匙物品.png]
97 prop_重要物品示例 重要物品示例 [#texture=c01/银元.png]
100 prop_3014旋转锁钥匙 3014旋转锁钥匙 [#texture=c02/3014旋转锁钥匙物品.png][#inspect=c02/3014旋转锁钥匙.png]
101 prop_令牌 令牌 [#texture=c01/令牌物品.png][#inspect=c01/令牌.png]
102 prop_装有灵魂的令牌 装有灵魂的令牌 [#texture=c01/装有灵魂的令牌物品.png][#inspect=c01/装有灵魂的令牌.png]
103 prop_院长的信 院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png]
104 prop_院长的信_说明 小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号
105 prop_船票 船票 [#texture=c02/船票.png]
106 prop_船票_说明 民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院?
107 prop_眼镜盒 眼镜盒 [#texture=c02/眼镜盒.png]
108 prop_眼镜盒_说明 这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。
109 prop_小蝉人偶 小蝉人偶 [#texture=c02/小蝉人偶.png]
110 prop_小蝉人偶_说明 小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花。
111 prop_单只小鞋子 单只小鞋子 [#texture=c02/小鞋子1.png]
112 prop_小鞋子_说明 这只小鞋子曾经属于一个裹了小脚的女孩,鞋不成双,祸事难防。
113 c01_s05_检查院长房间 好像忘记了什么事情,再回去检查一遍吧。 ID格式: prop_xx_说明
114 c01_s07_需要报纸 书店还没开门。
115 c01_s08_书店工作 老板交代的工作还没做完,不能偷懒。
151 c02_院子_算命摊位 算命的摊位?
152 c02_院子_要下雨 好像要下雨了?
153 c02_s03_掉鞋子 ?!
154 c02_铁门旁遇到小蝉 又是她...
155 c02_s03_铁门 被铁链锁住了
156 c02_偷听李癞对话后 三快三慢?是和那个肉铺老板交流的暗号吗?
157 c02_柜子可放置区域 这里之前放着的东西好像被人挪走了?
164 c02_小手还能换什么 ...还有什么东西能跟它交换呢?
165 c02_小手出现摔倒 ?!
166 c02_小手是什么鬼 这是什么鬼东西,它是在讨要什么
167 c02_小手再次出现 又来一个! 又来一个!<br>这地方到底是怎么回事?
168 c02_一楼楼道被挡住 被挡住了
169 c02_一楼戏台 盖着布的木头架子...用来做什么的呢
170 c02_描述垃圾通道 桶是空的,飘着一股血气,又酸又腥。
179 c02_敲门_老鼠叼肉 刚刚这里有块肉不见了?
180 c02_锡箔换小鞋子 另一只小鞋子。
181 c02_二楼楼梯杂物堆 去三楼的路被堵住了,要不先看看别的地方吧。
182 c02_二楼小蝉跑掉 这个小女孩神出鬼没的,她说不定知道上楼的路。
183 c02_二楼水盆 盆里的水很清澈,看上去像是刚盛的。
184 c02_二楼老鼠洞 到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。
185 c02_二楼血脚印 又是这种小小尖尖的血脚印...

View File

@ -75,10 +75,6 @@
银元 [#texture=c01/银元.png] [ID:prop_银元]
一枚“袁大头”银元,中华民国十年造。 [ID:prop_银元_说明]
# 重要物品
院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png] [ID:prop_院长的信]
小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号 [ID:prop_院长的信_说明]
# c02
火柴 [#texture=c02/火柴.png] [ID:prop_火柴]
盒里还剩下很多根,稍微有些受潮 [#texture=c02/火柴.png] [ID:prop_火柴_说明]
@ -107,13 +103,9 @@
一种玻璃小球,孩子们常用它来进行弹子游戏[ID:prop_弹珠_说明]
木头人偶 [#texture=c02/小蝉人偶.png] [ID:prop_木头人偶]
略显粗糙的木头玩偶,能依稀辨认出是个小女孩的模样 [ID:prop_木头人偶_说明]
小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花 [ID:prop_小蝉人偶_说明]
粘鼠板 [#texture=c02/粘鼠板特写.png] [ID:prop_粘鼠板]
自制的捕鼠工具,纸上面有黏黏的浆糊[ID:prop_粘鼠板_说明]
船票 [#texture=c02/船票.png] [ID:prop_船票]
民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院? [ID:prop_船票_说明]
# 未使用
一把香 [#texture=c02/一把香.png] [ID:prop_一把香]
@ -132,6 +124,21 @@
=> END
~ ImportantPropItems
# c01
院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png] [ID:prop_院长的信]
小萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国二十一年十月十五日<br>公寓地址 芦昌路26弄3号 [ID:prop_院长的信_说明]
# c02
船票 [#texture=c02/船票.png] [ID:prop_船票]
民国十九年十月十七日<br>上海-南京-济南-北平-林西-满洲里<br>三等舱 3-23 号铺位<br>船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。<br>我的亲生父母是谁?当初他们为何要把我送到浦育院? [ID:prop_船票_说明]
眼镜盒 [#texture=c02/眼镜盒.png] [ID:prop_眼镜盒]
这副眼镜对我很重要。<br>记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。<br>院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。<br>随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。[ID:prop_眼镜盒_说明]
小蝉人偶[#texture=c02/小蝉人偶.png] [ID:prop_小蝉人偶]
小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花。 [ID:prop_小蝉人偶_说明]
单只小鞋子 [#texture=c02/小鞋子1.png] [ID:prop_单只小鞋子]
这只小鞋子曾经属于一个裹了小脚的女孩,鞋不成双,祸事难防。[ID:prop_小鞋子_说明]
=> END
#~ prop说明
## ID格式 prop_xx_说明
#浦育院院长秦阳民国21年11月20日 [ID:prop_信碎片1_说明]
@ -200,6 +207,7 @@
算命的摊位? [ID:c02_院子_算命摊位]
好像要下雨了? [ID:c02_院子_要下雨]
[ID:c02_s03_掉鞋子]
又是她...[ID:c02_铁门旁遇到小蝉]
被铁链锁住了 [ID:c02_s03_铁门]
三快三慢?是和那个肉铺老板交流的暗号吗? [ID:c02_偷听李癞对话后]
这里之前放着的东西好像被人挪走了? [ID:c02_柜子可放置区域]
@ -214,7 +222,7 @@
...还有什么东西能跟它交换呢? [ID:c02_小手还能换什么]
[ID:c02_小手出现摔倒]
这是什么鬼东西,它是在讨要什么 [ID:c02_小手是什么鬼]
又来一个! [ID:c02_小手再次出现]
又来一个!<br>这地方到底是怎么回事? [ID:c02_小手再次出现]
#内侧楼道
被挡住了 [ID:c02_一楼楼道被挡住]
盖着布的木头架子...用来做什么的呢 [ID:c02_一楼戏台]
@ -233,6 +241,7 @@
#二楼
另一只小鞋子。 [ID:c02_锡箔换小鞋子]
去三楼的路被堵住了,要不先看看别的地方吧。 [ID:c02_二楼楼梯杂物堆]
这个小女孩神出鬼没的,她说不定知道上楼的路。 [ID:c02_二楼小蝉跑掉]
盆里的水很清澈,看上去像是刚盛的。 [ID:c02_二楼水盆]
到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。 [ID:c02_二楼老鼠洞]
又是这种小小尖尖的血脚印... [ID:c02_二楼血脚印]

View File

@ -29,6 +29,7 @@ signal sign_mark_offset_updated
area2d.position.x = collision_width_and_x.y
@export var interacted_sign_texture: Texture2D
@export var one_shot := true
@export var hide_if_one_shot_played := false
# 首次进入 tree 就直接启用
@export var on_first_enter_tree := false
@export var cooldown_time := 0.5
@ -83,6 +84,8 @@ var played: bool:
ground_archive.set_pair(name, "played", played)
if is_node_ready() and val and interacted_sign_texture:
sign_mark.sprite2d.texture = interacted_sign_texture
if hide_if_one_shot_played and not val and not Engine.is_editor_hint():
visible = false
# Called when the node enters the scene tree for the first time.
@ -120,7 +123,7 @@ func _visibility_changed():
func _check_sign_status():
sign_mark.enabled = visible and enabled and (not played or not one_shot)
sign_mark.enabled = is_visible_in_tree() and enabled and (not played or not one_shot)
sign_mark.display_sign = trigger_mode == "interact"
@ -143,11 +146,15 @@ func _interacted():
func _entered(_body = null):
if enabled and trigger_mode == "enter":
# _entered 不需要 visible
# if is_visible_in_tree():
_do_trigger()
func _area_entered(_area = null):
if enabled and trigger_mode == "area_enter":
# _area_entered 不需要 visible
# if is_visible_in_tree():
_do_trigger()

View File

@ -1,7 +1,6 @@
@tool
class_name Inspectable2D extends Sprite2D
signal start_inspecting
signal quit_inspecting
signal sign_mark_offset_updated
@ -16,7 +15,7 @@ enum { STATUS_NORAML, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSP
set(val):
enabled = val
if is_node_ready():
sign_mark.enabled = val
_on_visibility_changed()
# 使用全局 inspector
@export var global_inspect := false
# sign_mark 节点在 ready 时会直接读取
@ -88,7 +87,6 @@ func _ready() -> void:
cover_rect.texture = texture_cover
if Engine.is_editor_hint():
return
sign_mark.enabled = enabled
# setup default value
ground_archive = ArchiveManager.archive.ground_archive()
icount = ground_archive.get_value(name, "icount", 0)
@ -98,6 +96,12 @@ func _ready() -> void:
sign_snapper.action_on_arrived = action_key
sign_snapper.arrived.connect(_on_interacted)
sign_mark.cancel.connect(_on_cancel)
visibility_changed.connect(_on_visibility_changed)
_on_visibility_changed()
func _on_visibility_changed() -> void:
sign_mark.enabled = enabled and is_visible_in_tree()
func _get_tr_content():
@ -122,7 +126,9 @@ func _on_interacted() -> void:
if global_inspect:
icount += 1
# 使用全局 inspector
SceneManager.get_inspector().pop_standard_inspection(texture_cover, null, content_key, content_centered)
SceneManager.get_inspector().pop_standard_inspection(
texture_cover, null, content_key, content_centered
)
return
_do_action()

View File

@ -97,7 +97,7 @@ func _visibility_changed():
func _check_sign_status():
sign_mark.enabled = (
visible and enabled and (not one_shot or interacted_times < one_shot_max_times)
is_visible_in_tree() and enabled and (not one_shot or interacted_times < one_shot_max_times)
)

View File

@ -13,7 +13,7 @@ signal sign_mark_offset_updated
set(val):
enabled = val
if is_node_ready():
sign_mark.enabled = enabled and visible
_visibility_changed()
@export var collision_width_and_x := Vector2(20.0, 0):
set(val):
collision_width_and_x = val
@ -90,7 +90,7 @@ func _ready() -> void:
func _visibility_changed():
sign_mark.enabled = enabled and visible
sign_mark.enabled = enabled and is_visible_in_tree()
func _on_interacted() -> void:

View File

@ -125,7 +125,7 @@ func _on_visibility_changed() -> void:
func _align_signs_status():
sign_mark.enabled = enabled
sign_mark.enabled = enabled and is_visible_in_tree()
sign_mark.display_sign = icount == 0
speaking_sign.visible = enabled and icount > 0

View File

@ -5,7 +5,11 @@ signal triggered
signal sign_mark_offset_updated
@export var as_important_item := false
@export var as_important_item := false:
set(val):
as_important_item = val
if is_node_ready():
notify_property_list_changed()
# sign_mark 节点在 ready 时会直接读取
@export var sign_mark_offset := Vector2.ZERO:
set(val):
@ -87,7 +91,7 @@ func _check_display():
visible = false
elif visible_follow_enabled:
visible = enabled
sign_mark.enabled = enabled and visible
sign_mark.enabled = enabled and is_visible_in_tree()
func _get_animation_player() -> AnimationPlayer:
@ -128,7 +132,8 @@ static var item_config_res = preload("res://asset/dialogue/item_description.dial
func _get_property_list() -> Array[Dictionary]:
var items = []
if Engine.is_editor_hint():
var id = item_config_res.titles["PropItems"]
var tilte = "ImportantPropItems" if as_important_item else "PropItems"
var id = item_config_res.titles[tilte]
var current_line = item_config_res.lines[id]
while current_line:
if current_line.has("translation_key"):
@ -136,6 +141,7 @@ func _get_property_list() -> Array[Dictionary]:
if not current_line.has("next_id") or current_line.next_id == "end":
break
current_line = item_config_res.lines[current_line.next_id]
items = items.filter(func(i): return not i.ends_with("说明"))
return [
{
"name": "prop_key",

View File

@ -140,6 +140,10 @@ func _get_property_list() -> Array[Dictionary]:
###### TOOL BUTTON
func _reset_archive() -> void:
ground = get_tree().edited_scene_root.get_node("Ground")
if not ground:
printerr("ground not found")
return
var archive = (
ResourceLoader.load("user://data/archives/save000.tres", "AssembledArchive")
as AssembledArchive
@ -164,9 +168,15 @@ func _reset_archive() -> void:
var getter_regx = RegEx.create_from_string(r'get_global_value\(.?"(.+)"') as RegEx
var properties = {}
for setter_match in setter_regx.search_all(code):
properties[setter_match.get_string(1)] = true
var key = setter_match.get_string(1)
if not properties.has(key):
properties[key] = false
print("Match global_data_setter: " + key)
for getter_match in getter_regx.search_all(code):
properties[getter_match.get_string(1)] = true
var key = getter_match.get_string(1)
if not properties.has(key):
properties[key] = false
print("Match global_data_getter: " + key)
for p in properties.keys():
if debug_global_data.get(p) == null:
debug_global_data[p] = false
@ -189,11 +199,20 @@ func _reset_archive() -> void:
)
var events = {}
for event_match in event_setter_regx.search_all(code):
events[event_match.get_string(1)] = true
var key = event_match.get_string(1)
if not events.has(key):
events[key] = false
print("Match event_setter: " + key)
for event_match in event_set_greater_regx.search_all(code):
events[event_match.get_string(1)] = true
var key = event_match.get_string(1)
if not events.has(key):
events[key] = false
print("Match event_greate_setter: " + key)
for event_match in event_getter_regx.search_all(code):
events[event_match.get_string(1)] = true
var key = event_match.get_string(1)
if not events.has(key):
events[key] = false
print("Match event_getter: " + key)
# 遍历 ".." 下所有节点,找到属于 Event2D 的节点
_find_event2d(events, ground)
for e in events.keys():
@ -210,13 +229,17 @@ func _setup_ground_data(g_data: Dictionary, node: Node):
return
for child in node.get_children():
if child is Ambush2D and not g_data.has(child.name):
print("Find Ambush2D: " + child.name)
g_data[child.name] = {"played": false}
elif child is Interactable2D and not g_data.has(child.name):
g_data[child.name] = {"interacted_times": 0}
print("Find Interactable2D: " + child.name)
elif child is Pickable2D and not g_data.has(child.name):
g_data[child.name] = {"picked": false}
print("Find Pickable2D: " + child.name)
elif child is AnimationRoot and not g_data.has(child.name):
g_data[child.name] = child.data
print("Find AnimationRoot: " + child.name)
_setup_ground_data(g_data, child)
@ -225,11 +248,14 @@ func _find_event2d(events: Dictionary, node: Node) -> void:
return
for child in node.get_children():
if child is Event2D:
print("Find Event2D: " + child.name)
if child.event != &"":
events[child.event] = true
print("Find event: " + child.event)
if child.pre_event != &"":
events[child.pre_event] = true
_find_event2d(events, child)
print("Find pre_event: " + child.pre_event)
_find_event2d(events, child)
var func_line_id := -1

View File

@ -17,6 +17,7 @@ func _ready() -> void:
func _on_ground_ready() -> void:
SceneManager.get_player().set_facing_direction(Vector2.RIGHT)
SceneManager.get_player().position.x = 78.0
SceneManager.enable_important_item("prop_眼镜盒")
SceneManager.enable_important_item("prop_船票")
await SceneManager.pop_os_with_str("c02_s01_下黄包车")
ArchiveManager.set_chapter_if_greater(2)

View File

@ -156,6 +156,6 @@ func check_if_show_shoes():
func _on_shoes_interacted():
SceneManager.enable_important_item("prop_小鞋子1")
SceneManager.enable_important_item("prop_单只小鞋子")
$"../DeployLayer/老鼠拖鞋".visible = false
$"../DeployLayer/Note老鼠洞".enabled = true

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=31 format=3 uid="uid://brck77w81fhvc"]
[gd_scene load_steps=32 format=3 uid="uid://brck77w81fhvc"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_wrr6r"]
[ext_resource type="Script" uid="uid://bfrgnmde3hjn0" path="res://scene/ground/scene/c02/s02_过道.gd" id="2_5p8ev"]
@ -26,6 +26,7 @@
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="19_6wwyd"]
[ext_resource type="SpriteFrames" uid="uid://blij4obvhb1vf" path="res://asset/art/gif/c02_公寓过道/c02_公寓过道_frames.tres" id="19_q0axc"]
[ext_resource type="Texture2D" uid="uid://6x6mmg2hig5j" path="res://asset/art/scene/c02/s02_大门过道/e-八音盒(场景中).png" id="22_jg8g0"]
[ext_resource type="SpriteFrames" uid="uid://di43shn22n5ph" path="res://asset/art/gif/c00_通用动作/c00_通用动作_frames.tres" id="27_2lo60"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fjkfm"]
@ -277,11 +278,10 @@ position = Vector2(388, 47)
hook_method = "xiaochan_disappear"
[node name="小蝉" type="AnimatedSprite2D" parent="Ground/DeployLayer/Ambush小蝉闪现"]
position = Vector2(189, 15)
sprite_frames = ExtResource("19_q0axc")
animation = &"头套小蝉呼吸"
autoplay = "头套小蝉呼吸"
frame_progress = 0.346017
position = Vector2(189, 16)
sprite_frames = ExtResource("27_2lo60")
animation = &"c00_头套小婵_idle"
autoplay = "c00_头套小婵_idle"
[node name="PointLight2D" type="PointLight2D" parent="Ground/AmbientLayer" index="0"]
position = Vector2(-124, 135)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=78 format=3 uid="uid://djc2uaefhmu7"]
[gd_scene load_steps=80 format=3 uid="uid://djc2uaefhmu7"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0dylx"]
[ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_院子.gd" id="2_dt5aj"]
@ -27,6 +27,8 @@
[ext_resource type="Texture2D" uid="uid://dooaferyy44rs" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_前侧楼梯.png" id="10_ud2jg"]
[ext_resource type="Texture2D" uid="uid://c0enojekent6s" path="res://asset/art/scene/c02/杂物/e_灯笼.png" id="11_em2ma"]
[ext_resource type="Texture2D" uid="uid://0x7cl2cmcs6l" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕2.png" id="11_g0qhj"]
[ext_resource type="Script" uid="uid://3p6e8f385kow" path="res://scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd" id="11_lq23y"]
[ext_resource type="SpriteFrames" uid="uid://di43shn22n5ph" path="res://asset/art/gif/c00_通用动作/c00_通用动作_frames.tres" id="11_o1qbs"]
[ext_resource type="Texture2D" uid="uid://c8b80a75k3qw6" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_院子地上纸钱.png" id="14_qqdxs"]
[ext_resource type="Texture2D" uid="uid://douwcahbhr1wt" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_楼梯人群.png" id="18_crgo6"]
[ext_resource type="Texture2D" uid="uid://dqd645v3k4yar" path="res://asset/art/scene/c02/s03_公寓一楼院子/诡异效果/前侧楼梯_诡异纸人.png" id="19_vddfx"]
@ -290,6 +292,7 @@ debug_global_data = Dictionary[String, Variant]({
"c02_burning_end_stage": 0,
"c02_counter_pushed_out": false,
"c02_eavesdrop_finished": false,
"c02_got_pliers": 0,
"c02_madman_hitwall": false,
"c02_madman_interacted": 0,
"c02_open_gate_first_failed": false,
@ -298,10 +301,10 @@ debug_global_data = Dictionary[String, Variant]({
"c02_the_blind_room_unlocked": false,
"c02_watched_the_well": false,
"enabled_items": ["prop_火柴", "prop_院长的信", "prop_银元"],
"handnote_c02_gate_chain": 0,
"handnote_c02_map_1Right": 0,
"handnote_c02_meat_knockDoor": 0,
"player_x": 1100.0
"handnote_c02_gate_chain": 1,
"handnote_c02_map_1Right": 1,
"handnote_c02_meat_knockDoor": 1,
"player_x": 700.0
})
debug_ground_data = Dictionary[String, Variant]({
"Ambush保卫科旁边os": {
@ -319,6 +322,9 @@ debug_ground_data = Dictionary[String, Variant]({
"Ambush等待的小蝉": {
"played": false
},
"Ambush老虎钳后小蝉跑": {
"played": false
},
"Ambush要下雨了": {
"played": false
},
@ -406,16 +412,41 @@ position = Vector2(2286, 16)
position = Vector2(138, 47)
hook_os_key = "c02_院子_保卫科旁"
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
[node name="Event2D_xchan_run_after_got_pliers" type="Node2D" parent="Ground/DeployLayer" index="3"]
position = Vector2(0, -1)
script = ExtResource("11_lq23y")
event = &"c02_got_pliers"
hide_if_on_stage = Array[int]([0, 2])
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Ambush老虎钳后小蝉跑" parent="Ground/DeployLayer/Event2D_xchan_run_after_got_pliers" instance=ExtResource("25_iyaiw")]
position = Vector2(841, 43)
enabled = false
[node name="AutoplayAnimatedSprite" parent="Ground/DeployLayer/Event2D_xchan_run_after_got_pliers" instance=ExtResource("33_ycojw")]
position = Vector2(953, 42)
sprite_frames = ExtResource("11_o1qbs")
animation = &"c00_头套小婵_run"
autoplay = "c00_头套小婵_idle"
move_configs = Array[Dictionary]([{
"animation": "c00_头套小婵_run",
"animation_next": "",
"duration": 1e+07,
"movement_x": 600.0,
"velocity": Vector2(100, 0)
}])
debug_mov_animation = "c00_头套小婵_run"
[node name="火灾背景" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
modulate = Color(1, 1, 1, 0)
position = Vector2(1189, 0)
texture = ExtResource("6_d7h4s")
[node name="禁火等墙面文字" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
[node name="禁火等墙面文字" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
position = Vector2(955, 5)
texture = ExtResource("10_3nako")
[node name="portal_1" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_00b7a")]
[node name="portal_1" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_00b7a")]
position = Vector2(200, 10)
debug_note = "1012保卫科"
portal_name = "1"
@ -423,7 +454,7 @@ target_scene = "c02_s04"
target_portal = "left"
status = "opened"
[node name="portal_2" parent="Ground/DeployLayer" index="6" instance=ExtResource("5_00b7a")]
[node name="portal_2" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_00b7a")]
position = Vector2(928, 7)
debug_note = "一楼内侧过道
"
@ -431,7 +462,7 @@ portal_name = "2"
target_scene = "c02_s05"
target_portal = "left"
[node name="portal_3" parent="Ground/DeployLayer" index="7" instance=ExtResource("5_00b7a")]
[node name="portal_3" parent="Ground/DeployLayer" index="8" instance=ExtResource("5_00b7a")]
position = Vector2(1704, 14)
debug_note = "空房间 1014"
portal_name = "3"
@ -439,12 +470,12 @@ target_scene = "c02_s10"
target_portal = "left"
status = "opened"
[node name="portal_4" parent="Ground/DeployLayer" index="8" instance=ExtResource("5_00b7a")]
[node name="portal_4" parent="Ground/DeployLayer" index="9" instance=ExtResource("5_00b7a")]
position = Vector2(1876, 49)
debug_note = "霸凌传送点"
portal_name = "4"
[node name="Note血迹" parent="Ground/DeployLayer" index="9" instance=ExtResource("6_t48d1")]
[node name="Note血迹" parent="Ground/DeployLayer" index="10" instance=ExtResource("6_t48d1")]
position = Vector2(523, 78)
title_filter = "c02"
note_key = "c02_s03_干掉的血迹"
@ -456,7 +487,7 @@ position = Vector2(132, 10)
sprite_frames = ExtResource("4_gd6xp")
animation = &"肉铺门口血迹"
[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="10"]
[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="11"]
[node name="灯笼" type="Sprite2D" parent="Ground/DeployLayer/灯笼"]
position = Vector2(1644, -86)
@ -506,7 +537,7 @@ energy = 0.7
texture = SubResource("GradientTexture2D_kyfht")
texture_scale = 2.2
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="11"]
[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="12"]
visible = false
[node name="地上纸钱" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"]
@ -541,7 +572,7 @@ position = Vector2(898, -162)
z_index = 15
position = Vector2(1964, -209)
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="12"]
[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="13"]
visible = false
[node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")]
@ -568,11 +599,11 @@ range_layer_max = 2
range_item_cull_mask = 4
texture = SubResource("GradientTexture2D_3nako")
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="13" instance=ExtResource("25_iyaiw")]
[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="14" instance=ExtResource("25_iyaiw")]
position = Vector2(1611, 46)
hook_os_key = "c02_院子_要下雨"
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("7_em2ma")]
[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="15" instance=ExtResource("7_em2ma")]
position = Vector2(809, 75)
sign_mark_offset = Vector2(0, -16.88)
enabled = false
@ -583,7 +614,7 @@ position = Vector2(0, -7)
scale = Vector2(0.15, 0.15)
texture = ExtResource("8_plfv5")
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="15"]
[node name="Event2D小蝉哼歌" type="Node2D" parent="Ground/DeployLayer" index="16"]
position = Vector2(800, -173)
script = ExtResource("26_o1qbs")
event = &"c02_madman_interacted"
@ -599,7 +630,7 @@ bus = &"game_sfx"
script = ExtResource("54_o1qbs")
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Interactable铁门" parent="Ground/DeployLayer" index="16" instance=ExtResource("8_xt8j0")]
[node name="Interactable铁门" parent="Ground/DeployLayer" index="17" instance=ExtResource("8_xt8j0")]
light_mask = 5
position = Vector2(1222, 28)
texture = ExtResource("7_gd6xp")
@ -619,7 +650,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="17" instance=ExtResource("6_t48d1")]
[node name="Note算命摊位" parent="Ground/DeployLayer" index="18" instance=ExtResource("6_t48d1")]
position = Vector2(725, 45)
note_key = "c02_院子_算命摊位"
@ -627,7 +658,7 @@ note_key = "c02_院子_算命摊位"
position = Vector2(0, 18)
texture = ExtResource("6_1tart")
[node name="煤油灯" type="Sprite2D" parent="Ground/DeployLayer" index="18"]
[node name="煤油灯" type="Sprite2D" parent="Ground/DeployLayer" index="19"]
position = Vector2(293, 13)
texture = ExtResource("32_df1yo")
@ -645,7 +676,7 @@ energy = 2.0
blend_mode = 2
texture = ExtResource("11_g0qhj")
[node name="煤油灯2" type="Sprite2D" parent="Ground/DeployLayer" index="19"]
[node name="煤油灯2" type="Sprite2D" parent="Ground/DeployLayer" index="20"]
position = Vector2(605, 13)
texture = ExtResource("32_df1yo")
@ -663,7 +694,7 @@ energy = 2.0
blend_mode = 2
texture = ExtResource("34_jhod7")
[node name="煤油灯3" type="Sprite2D" parent="Ground/DeployLayer" index="20"]
[node name="煤油灯3" type="Sprite2D" parent="Ground/DeployLayer" index="21"]
position = Vector2(854, 13)
texture = ExtResource("32_df1yo")
@ -681,47 +712,47 @@ energy = 2.0
blend_mode = 2
texture = ExtResource("35_o1qbs")
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="21"]
[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="22"]
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="22"]
[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="23"]
light_mask = 5
z_index = 10
position = Vector2(1025, 27)
texture = ExtResource("22_3y5s5")
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="23" instance=ExtResource("23_81juy")]
[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="24" instance=ExtResource("23_81juy")]
position = Vector2(466, 3)
packed_scene = ExtResource("24_0o4rt")
collision_width_and_x = Vector2(40, 0)
[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)
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
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="Closeup井" parent="Ground/DeployLayer" index="27" instance=ExtResource("23_81juy")]
[node name="Closeup井" parent="Ground/DeployLayer" index="28" instance=ExtResource("23_81juy")]
z_index = 6
position = Vector2(2063, 50)
packed_scene = ExtResource("26_yy4fp")
action_key = 3
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="28" instance=ExtResource("35_plfv5")]
[node name="Npc井边疯子" parent="Ground/DeployLayer" index="29" instance=ExtResource("35_plfv5")]
z_index = 10
position = Vector2(2037, 67)
sprite_frames = ExtResource("4_gd6xp")
@ -735,7 +766,7 @@ sign_x_offset = -2.0
collision_width_and_x = Vector2(37.08, 0)
dialogue_title = "c02_井边疯子对话"
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="29"]
[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="30"]
visible = false
position = Vector2(2154, 60)
@ -800,7 +831,7 @@ collision_mask = 0
shape = SubResource("RectangleShape2D_d7h4s")
disabled = true
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="30"]
[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="31"]
visible = false
[node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"]
@ -1042,7 +1073,7 @@ script = ExtResource("54_o1qbs")
loop = true
metadata/_custom_type_script = "uid://wapo47a1oddf"
[node name="Interactable柜子" parent="Ground/DeployLayer" index="31" instance=ExtResource("8_xt8j0")]
[node name="Interactable柜子" parent="Ground/DeployLayer" index="32" instance=ExtResource("8_xt8j0")]
visible = false
position = Vector2(1772, 48)
texture = ExtResource("32_cpifc")
@ -1058,7 +1089,7 @@ animation = &"箱子着火"
autoplay = "箱子着火"
frame_progress = 0.453645
[node name="Note柜子可放置区域" parent="Ground/DeployLayer" index="32" instance=ExtResource("6_t48d1")]
[node name="Note柜子可放置区域" parent="Ground/DeployLayer" index="33" instance=ExtResource("6_t48d1")]
position = Vector2(1771, 39)
title_filter = "c02"
note_key = "c02_柜子可放置区域"

View File

@ -53,5 +53,8 @@ func _on_first_read(_arg) -> void:
func xiaochan_disappear():
await SceneManager.pop_os_with_str("c02_保卫科看到小蝉")
var tween = create_tween()
tween.tween_property(, "modulate:a", 0.0, 2.0)
await tween.finished
SceneManager.pop_os_with_str("c02_保卫科小蝉消失")
create_tween().tween_property(, "modulate:a", 0.0, 2.0)

View File

@ -98,7 +98,6 @@ position = Vector2(551, 22)
[node name="Ambush进门看到小蝉" parent="Ground/DeployLayer" index="2" instance=ExtResource("7_ypth3")]
unique_name_in_owner = true
position = Vector2(72, 51)
hook_os_key = "c02_保卫科看到小蝉"
hook_method = "xiaochan_disappear"
[node name="涂鸦提示" type="Sprite2D" parent="Ground/DeployLayer" index="3"]

View File

@ -24,7 +24,7 @@ func _on_ground_ready() -> void:
sprite.play()
else:
$"../DeployLayer/Interactable粘鼠板/粘鼠死亡".visible = true
$"../DeployLayer/Interactable粘鼠板/Note死老鼠".enabled = true
$"../DeployLayer/Interactable粘鼠板/Note死老鼠".visible = true
ArchiveManager.set_global_entry(&"c02_meat_given", true)
else:
$"../DeployLayer/Ambush老鼠叼肉".enabled = true

View File

@ -304,7 +304,7 @@ sprite_frames = ExtResource("17_bk7rf")
animation = &"老鼠被黏住死亡"
[node name="Note死老鼠" parent="Ground/DeployLayer/Interactable粘鼠板" instance=ExtResource("10_8t4w6")]
enabled = false
visible = false
title_filter = "c02"
note_key = "c02_一楼死老鼠"

View File

@ -179,5 +179,6 @@ func _on_exit_final_show(_arg):
ArchiveManager.set_chapter_if_greater(3)
func unlock_2floor_map():
EventManager.set_stage_if_greater(&"c02_2f_xchan_run_away", 1)
EventManager.set_stage_if_greater(&"handnote_c02_map_2", 1)
EventManager.set_stage_if_greater(&"handnote_c02_shoe_giveToMouce", 1)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=53 format=3 uid="uid://cootarwb44vvh"]
[gd_scene load_steps=55 format=3 uid="uid://cootarwb44vvh"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qkymk"]
[ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_二楼.gd" id="2_4dg6u"]
@ -39,6 +39,8 @@
[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/inspectable.tscn" id="37_7kxvk"]
[ext_resource type="Texture2D" uid="uid://ca3km2f6ncrqo" path="res://asset/art/scene/c02/s06_二楼楼道/e_小蝉偷看.png" id="37_osg51"]
[ext_resource type="Texture2D" uid="uid://b5kolhax7pf4u" path="res://asset/art/scene/c02/s06_二楼楼道/小猫纸条.png" id="37_rjlld"]
[ext_resource type="Script" uid="uid://bnm8wuspfx303" path="res://scene/ground/script/c02/event_2d_xchan_run_away.gd" id="39_t5e0j"]
[ext_resource type="SpriteFrames" uid="uid://di43shn22n5ph" path="res://asset/art/gif/c00_通用动作/c00_通用动作_frames.tres" id="40_7i4w0"]
[sub_resource type="Animation" id="Animation_k01ve"]
length = 0.001
@ -852,6 +854,7 @@ libraries = {
}
script = ExtResource("2_4dg6u")
debug_global_data = Dictionary[String, Variant]({
"c02_2f_xchan_run_away": 0,
"c02_ball_game_stage": 3,
"c02_burning": false,
"c02_burning_end_stage": 1,
@ -875,6 +878,9 @@ debug_ground_data = Dictionary[String, Variant]({
"Ambush解锁二楼地图": {
"played": false
},
"Ambush走到尽头后小蝉跑": {
"played": false
},
"AnimationPlayer": {
"oneshot_animation_played": false
},
@ -1228,6 +1234,30 @@ content_key = "c02_小猫纸条"
position = Vector2(748, 47)
hook_method = "unlock_2floor_map"
[node name="Event2D_xchan_run_away" type="Node2D" parent="Ground/DeployLayer" index="21"]
position = Vector2(9, -4)
script = ExtResource("39_t5e0j")
event = &"c02_2f_xchan_run_away"
hide_if_on_stage = Array[int]([0, 2])
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
[node name="Ambush走到尽头后小蝉跑" parent="Ground/DeployLayer/Event2D_xchan_run_away" instance=ExtResource("14_k01ve")]
position = Vector2(365, 55)
enabled = false
[node name="AutoplayAnimatedSprite" parent="Ground/DeployLayer/Event2D_xchan_run_away" instance=ExtResource("10_p6da7")]
position = Vector2(269, 57)
sprite_frames = ExtResource("40_7i4w0")
animation = &"c00_头套小婵_idle"
autoplay = "c00_头套小婵_idle"
flip_h = true
move_configs = Array[Dictionary]([{
"animation": "c00_头套小婵_run",
"movement_x": 600.0,
"velocity": Vector2(100, 0)
}])
debug_mov_animation = "c00_头套小婵_run"
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95)
catty_light_energy = 0.5
@ -1242,6 +1272,7 @@ texture = ExtResource("5_26mqt")
points = PackedVector2Array(26, 150, 900, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.9
blend_mode = 1

View File

@ -34,7 +34,7 @@ func _on_ground_ready() -> void:
xiao_chan_sprite = $"../DeployLayer/大头小蝉"
xiao_chan_interactable = $"../DeployLayer/Interactable小蝉"
counter = $"../DeployLayer/Interactable柜子"
wood_puppet = $"../DeployLayer/Pickable木头人偶"
wood_puppet = $"../DeployLayer/Pickable小蝉人偶"
catty_head = $"../DeployLayer/Pickable小猫玩具脑袋"
door = $"../DeployLayer/portal_left"
portal_note = $"../DeployLayer/Note进入隧道询问"

View File

@ -242,16 +242,16 @@ mute_when_interacted = true
disable_prop_after_interacted = true
prop_key = "prop_木头人偶"
[node name="Pickable木头人偶" parent="Ground/DeployLayer" index="11" instance=ExtResource("6_27dvh")]
[node name="Pickable小蝉人偶" parent="Ground/DeployLayer" index="11" instance=ExtResource("6_27dvh")]
z_index = 7
position = Vector2(423, 97.6081)
as_important_item = true
sign_mark_offset = Vector2(0, -7.09)
enabled = false
action_key = 3
prop_key = "prop_木头人偶"
prop_key = "prop_小蝉人偶"
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Pickable木头人偶"]
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Pickable小蝉人偶"]
show_behind_parent = true
rotation = -1.19178
scale = Vector2(0.25, 0.25)

View File

@ -0,0 +1,38 @@
@tool
extends Event2D
# var prev_stage := 0
# var stage := 0
func _ready() -> void:
super._ready()
if Engine.is_editor_hint():
return
func _on_global_stage_updated(e: StringName, s: int):
super._on_global_stage_updated(e, s)
func _on_ground_ready(ground: Ground2D):
_on_stage_updated()
func _on_pre_stage_updated():
pass
func _on_stage_updated():
# 0初始隐藏 1准备播放 2播放结束隐藏
if stage == 1:
var ambush = $"Ambush老虎钳后小蝉跑" as Ambush2D
ambush.enabled = true
var sprite = $"AutoplayAnimatedSprite"
ambush.triggered.connect(func():
sprite.play("c00_头套小婵_run")
SceneManager.lock_player()
SceneManager.pop_os_with_str("c02_铁门旁遇到小蝉")
await Util.wait(3.0)
SceneManager.unlock_player()
EventManager.set_stage(event, 2)
)

View File

@ -0,0 +1 @@
uid://3p6e8f385kow

View File

@ -0,0 +1,37 @@
@tool
extends Event2D
# var prev_stage := 0
# var stage := 0
func _ready() -> void:
super._ready()
if Engine.is_editor_hint():
return
func _on_global_stage_updated(e: StringName, s: int):
super._on_global_stage_updated(e, s)
func _on_ground_ready(ground: Ground2D):
_on_stage_updated()
func _on_pre_stage_updated():
pass
func _on_stage_updated():
# 0初始隐藏 1准备播放 2播放结束隐藏
if stage == 1:
var ambush = $"Ambush走到尽头后小蝉跑" as Ambush2D
ambush.enabled = true
var sprite = $"AutoplayAnimatedSprite"
ambush.triggered.connect(func():
sprite.play("c00_头套小婵_run")
SceneManager.lock_player()
SceneManager.pop_os_with_str("c02_二楼小蝉跑掉")
await Util.wait(3.0)
SceneManager.unlock_player()
EventManager.set_stage(event, 2)
)

View File

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

View File

@ -162,6 +162,8 @@ func _on_interacted() -> void:
elif holding_prop != "":
# 手持物品时,交互直接给玩家物品
SceneManager.enable_prop_item(holding_prop)
if holding_prop == "prop_老虎钳":
EventManager.set_stage_if_greater(&"c02_got_pliers", 1)
holding_prop = ""
animated_sprite.play("小手_show")
await animated_sprite.animation_changed

View File

@ -30,10 +30,10 @@ layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -3.0
offset_top = 19.0
offset_right = -34.0
offset_bottom = 3.0
offset_left = -1.0
offset_top = 20.0
offset_right = -32.0
offset_bottom = 4.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_dck1d")

View File

@ -77,7 +77,7 @@ stretch_mode = 5
[node name="Event_handnote_chapter_stage" type="Sprite2D" parent="Bag/Book"]
position = Vector2(340, 137)
scale = Vector2(0.3, 0.3)
scale = Vector2(0.2, 0.2)
script = ExtResource("5_nk0pj")
chapter = 2
event = &"handnote_chapter_stage"
@ -85,7 +85,7 @@ hide_if_on_stage = Array[int]([0, 3])
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
[node name="Event_handnote_c02_road_address" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-493.333, -276.667)
position = Vector2(-675, -395)
texture = ExtResource("6_dohnv")
script = ExtResource("7_nfxph")
event = &"handnote_c02_road_address"
@ -93,7 +93,7 @@ hide_if_on_stage = Array[int]([0, 3])
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
[node name="Event_handnote_c02_list_namesAndGoal" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-566.667, -163.333)
position = Vector2(-820, -260)
texture = ExtResource("8_nfxph")
script = ExtResource("7_nfxph")
event = &"handnote_c02_list_namesAndGoal"
@ -101,7 +101,7 @@ hide_if_on_stage = Array[int]([0, 3])
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
[node name="Event_handnote_c02_xchan_sheKnowsMe" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-443.333, -10)
position = Vector2(-680, -60)
texture = ExtResource("22_rkppt")
script = ExtResource("7_nfxph")
event = &"handnote_c02_xchan_sheKnowsMe"
@ -109,11 +109,11 @@ hide_if_on_stage = Array[int]([0, 3])
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_xchan_sheKnowsMe"]
position = Vector2(96.6663, 26.6666)
position = Vector2(200, 40)
texture = ExtResource("23_njh4q")
[node name="Event_handnote_c02_一楼左侧地图" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-630.001, 253.333)
position = Vector2(-960, 365)
texture = ExtResource("9_kv812")
script = ExtResource("7_nfxph")
event = &"handnote_c02_map_1Left"
@ -121,59 +121,61 @@ hide_if_on_stage = Array[int]([0, 3])
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
[node name="Event_handnote_c02_hand_exchange" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-830, 260)
scale = Vector2(1.4, 1.4)
position = Vector2(-1260, 390)
scale = Vector2(0.65, 0.65)
texture = ExtResource("10_1efbh")
script = ExtResource("7_nfxph")
event = &"handnote_c02_hand_exchange"
hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_hand_exchange"]
position = Vector2(-16.6663, -20.0001)
scale = Vector2(1.64321, 1.62157)
position = Vector2(-69.2309, -38.4616)
scale = Vector2(1.09176, 1.1318)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_musicbox_needPuppet" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-776.667, 406.667)
scale = Vector2(1.8, 1.8)
position = Vector2(-1220, 605)
scale = Vector2(0.7, 0.7)
texture = ExtResource("11_vv1f8")
script = ExtResource("7_nfxph")
event = &"handnote_c02_musicbox_needPuppet"
hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_musicbox_needPuppet"]
position = Vector2(3.33337, 3.05176e-05)
scale = Vector2(1.5, 1.5)
position = Vector2(0.000196695, 7.14289)
scale = Vector2(0.972891, 1)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_meat_knockDoor" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-660, 303.333)
scale = Vector2(1.8, 1.8)
position = Vector2(-1025, 455)
scale = Vector2(0.7, 0.7)
texture = ExtResource("13_iiemy")
script = ExtResource("7_nfxph")
event = &"handnote_c02_meat_knockDoor"
hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_meat_knockDoor"]
position = Vector2(3.33786e-05, 3.05176e-05)
scale = Vector2(1.5, 1.5)
position = Vector2(-7.14261, 14.2857)
rotation = 0.00245258
scale = Vector2(1.22374, 0.924062)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_meat_stopMouse" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-476.667, 166.667)
scale = Vector2(1.7, 1.7)
position = Vector2(-735, 205)
scale = Vector2(0.7, 0.7)
texture = ExtResource("14_cd76s")
script = ExtResource("7_nfxph")
event = &"handnote_c02_meat_stopMouse"
hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_meat_stopMouse"]
position = Vector2(3.33337, 3.05176e-05)
scale = Vector2(1.5, 1.5)
position = Vector2(8.86917e-05, 7.14289)
rotation = -0.280488
scale = Vector2(1.11613, 1.37491)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_一楼右侧地图" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-333.333, 343.333)
position = Vector2(-500, 520)
texture = ExtResource("17_gmufd")
script = ExtResource("7_nfxph")
event = &"handnote_c02_map_1Right"
@ -181,39 +183,39 @@ hide_if_on_stage = Array[int]([0, 3])
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
[node name="Event_handnote_c02_gate_chain" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-513.333, 376.667)
scale = Vector2(1.7, 1.7)
position = Vector2(-760, 555)
scale = Vector2(0.7, 0.7)
texture = ExtResource("16_c71vy")
script = ExtResource("7_nfxph")
event = &"handnote_c02_gate_chain"
hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_gate_chain"]
visible = false
position = Vector2(0.000396729, 3.33299)
scale = Vector2(1.5, 1.5)
rotation = -0.652993
scale = Vector2(1.51321, 1.44124)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_split_illusionSpace" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-380, 253.333)
scale = Vector2(1.4, 1.4)
position = Vector2(-600, 375)
scale = Vector2(0.7, 0.7)
texture = ExtResource("18_en7n8")
script = ExtResource("7_nfxph")
event = &"handnote_c02_split_illusionSpace"
hide_if_on_stage = Array[int]([0, 3])
[node name="Event_handnote_c02_xchan_giveHerPuppet" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(-313.333, 306.667)
scale = Vector2(1.7, 1.7)
position = Vector2(-500, 560)
scale = Vector2(0.65, 0.65)
texture = ExtResource("19_16oeu")
script = ExtResource("7_nfxph")
event = &"handnote_c02_xchan_giveHerPuppet"
hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_xchan_giveHerPuppet"]
position = Vector2(-0.000321865, -3.3334)
rotation = -0.261797
scale = Vector2(2, 1.2)
position = Vector2(5.24521e-06, 7.62939e-06)
rotation = -0.283794
scale = Vector2(1.18271, 1.36673)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_二楼地图" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
@ -225,35 +227,37 @@ hide_if_on_stage = Array[int]([0, 3])
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
[node name="Event_handnote_c02_hand_requireCoin" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(463.333, -120)
scale = Vector2(1.6, 1.6)
position = Vector2(590, -95)
scale = Vector2(0.7, 0.7)
texture = ExtResource("21_x45ak")
script = ExtResource("7_nfxph")
event = &"handnote_c02_hand_requireCoin"
hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_hand_requireCoin"]
position = Vector2(3.33337, 3.33298)
scale = Vector2(1.35575, 1.86951)
position = Vector2(-7.14288, 14.2857)
rotation = -0.448216
scale = Vector2(1.03957, 1.62217)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_shoe_giveToMouce" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
position = Vector2(266.667, -156.667)
scale = Vector2(1.6, 1.6)
position = Vector2(220, -160)
scale = Vector2(0.7, 0.7)
texture = ExtResource("15_60qdw")
script = ExtResource("7_nfxph")
event = &"handnote_c02_shoe_giveToMouce"
hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_shoe_giveToMouce"]
position = Vector2(0.000236511, 3.33301)
scale = Vector2(1.35575, 1.86951)
position = Vector2(1.84647e-05, 7.14291)
rotation = -0.231717
scale = Vector2(1.19114, 1.20576)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_chapter_stage2" type="Sprite2D" parent="Bag/Book"]
visible = false
position = Vector2(340, 137)
scale = Vector2(0.3, 0.3)
scale = Vector2(0.2, 0.2)
script = ExtResource("5_nk0pj")
chapter = 3
slices_path = "res://asset/art/ui/note/c03_slices/"
@ -294,7 +298,6 @@ hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage2/Event_handnote_c02_map_1Left/Event_handnote_c02_meat_knockDoor"]
position = Vector2(3.33786e-05, 3.05176e-05)
scale = Vector2(1.5, 1.5)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_meat_stopMouse" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage2/Event_handnote_c02_map_1Left"]
@ -306,7 +309,6 @@ hide_if_on_stage = Array[int]([0, 3])
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage2/Event_handnote_c02_map_1Left/Event_handnote_c02_meat_stopMouse"]
position = Vector2(3.33337, 3.05176e-05)
scale = Vector2(1.5, 1.5)
texture = ExtResource("11_dohnv")
[node name="Event_handnote_c02_map_1Right" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage2"]

View File

@ -83,7 +83,8 @@ func _ready() -> void:
prop_containers.append(container)
container.get_child(0).get_child(0).gui_input.connect(_on_prop_gui_input.bind(id))
display_prop.gui_input.connect(_on_prop_gui_input.bind(-1))
_load_items()
_load_items_config_to_dict("ImportantPropItems")
_load_items_config_to_dict("PropItems")
_load_from_archive()
selecting_bg.modulate.a = 0.0
prop_scroll.scroll_horizontal = PROP_CONTAINER_X
@ -109,8 +110,8 @@ func _ready() -> void:
mouse_exited.connect(_on_mouse_exited)
func _load_items():
var id = item_config_res.titles["PropItems"]
func _load_items_config_to_dict(title: String):
var id = item_config_res.titles[title]
var current_line = item_config_res.lines[id]
while current_line:
if current_line.has("tags") and current_line.has("translation_key"):