配置线索笔记第一章内容
This commit is contained in:
parent
aeef06d7c8
commit
dc60f7c0a3
72
asset/art/ui/note/aseprite_slice_to_atlas.gd
Normal file
72
asset/art/ui/note/aseprite_slice_to_atlas.gd
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
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()
|
||||||
|
|
||||||
|
|
||||||
|
var export_dir
|
||||||
|
|
||||||
|
|
||||||
|
func _run() -> void:
|
||||||
|
if not json or not texture:
|
||||||
|
printerr("JSON 或 texture 未设置")
|
||||||
|
return
|
||||||
|
|
||||||
|
if not export_dir_root:
|
||||||
|
push_error("导出目录未设置")
|
||||||
|
return
|
||||||
|
|
||||||
|
export_dir = export_dir_root + ("" if export_dir_root.ends_with("/") else "/")
|
||||||
|
export_dir = export_dir + json.resource_path.get_file().split(".")[0] + "/"
|
||||||
|
print("导出目录: ", export_dir)
|
||||||
|
|
||||||
|
# 确保导出目录存在
|
||||||
|
DirAccess.make_dir_recursive_absolute(export_dir)
|
||||||
|
|
||||||
|
# 解析 JSON 数据
|
||||||
|
var data: Dictionary
|
||||||
|
if json:
|
||||||
|
data = json.data
|
||||||
|
|
||||||
|
# 检查 meta.slices
|
||||||
|
if not data.has("meta") or not data.meta.has("slices"):
|
||||||
|
push_error("JSON 中缺少 meta.slices")
|
||||||
|
return
|
||||||
|
|
||||||
|
for slice_dict in data.meta.slices:
|
||||||
|
var slice_name = slice_dict.get("name", "")
|
||||||
|
var keys = slice_dict.get("keys", [])
|
||||||
|
if slice_name == "" or keys.is_empty():
|
||||||
|
continue
|
||||||
|
var key = keys[0]
|
||||||
|
var bounds = key.get("bounds", null)
|
||||||
|
if typeof(bounds) != TYPE_DICTIONARY:
|
||||||
|
continue
|
||||||
|
var rect := Rect2(
|
||||||
|
bounds.get("x", 0), bounds.get("y", 0), bounds.get("w", 0), bounds.get("h", 0)
|
||||||
|
)
|
||||||
|
_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"
|
||||||
|
var atlas_res: AtlasTexture
|
||||||
|
if FileAccess.file_exists(path):
|
||||||
|
atlas_res = load(path)
|
||||||
|
print_rich("[color=cyan]加载已有的 Atlas: ", path)
|
||||||
|
if not atlas_res:
|
||||||
|
atlas_res = AtlasTexture.new()
|
||||||
|
atlas_res.resource_path = path
|
||||||
|
print_rich("[color=green]创建新的 Atlas: ", path)
|
||||||
|
atlas_res.atlas = texture
|
||||||
|
atlas_res.filter_clip = true
|
||||||
|
atlas_res.region = region # 修正了原来拼写错误的 regoin
|
||||||
|
ResourceSaver.save(atlas_res, path)
|
1
asset/art/ui/note/aseprite_slice_to_atlas.gd.uid
Normal file
1
asset/art/ui/note/aseprite_slice_to_atlas.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://16itkrecgwtm
|
10
asset/art/ui/note/aseprite_slice_to_atlas.tscn
Normal file
10
asset/art/ui/note/aseprite_slice_to_atlas.tscn
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://ccws15temu1l7"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://16itkrecgwtm" path="res://asset/art/ui/note/aseprite_slice_to_atlas.gd" id="1_74cad"]
|
||||||
|
[ext_resource type="JSON" path="res://asset/art/ui/note/c02_slices.json" id="2_rv6as"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="3_5ej8b"]
|
||||||
|
|
||||||
|
[node name="AsepriteSliceToAtlas" type="Node2D"]
|
||||||
|
script = ExtResource("1_74cad")
|
||||||
|
json = ExtResource("2_rv6as")
|
||||||
|
texture = ExtResource("3_5ej8b")
|
292
asset/art/ui/note/c02_slices.json
Normal file
292
asset/art/ui/note/c02_slices.json
Normal file
@ -0,0 +1,292 @@
|
|||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://drijblepnhhsw"
|
uid="uid://drijblepnhhsw"
|
||||||
path="res://.godot/imported/笔记线索_第一章.png-5a92d0c0d981e032650977ec75646448.ctex"
|
path="res://.godot/imported/c02_slices.png-b481c314b20ea9e0c9dc0ca54e51f66b.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/ui/note/笔记线索_第一章.png"
|
source_file="res://asset/art/ui/note/c02_slices.png"
|
||||||
dest_files=["res://.godot/imported/笔记线索_第一章.png-5a92d0c0d981e032650977ec75646448.ctex"]
|
dest_files=["res://.godot/imported/c02_slices.png-b481c314b20ea9e0c9dc0ca54e51f66b.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
8
asset/art/ui/note/c02_slices/c02_blotOut.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_blotOut.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://c30s0pieywjpa"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_yfw6c"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_yfw6c")
|
||||||
|
region = Rect2(378, 931, 97, 74)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_gate_chain.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_gate_chain.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://viyauy3w72bv"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_r8xbd"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_r8xbd")
|
||||||
|
region = Rect2(426, 333, 89, 70)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_hand_exchange.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_hand_exchange.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://fnbysuck5nj2"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_036bj"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_036bj")
|
||||||
|
region = Rect2(49, 184, 163, 116)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_hand_requireCoin.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_hand_requireCoin.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cfrr5118wx6f"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_bal72"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_bal72")
|
||||||
|
region = Rect2(1185, 867, 112, 75)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_list_namesAndGoal.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_list_namesAndGoal.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bg1rnxsr5of7v"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_4di5c"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_4di5c")
|
||||||
|
region = Rect2(55, 548, 615, 283)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_map_1Left.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_map_1Left.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dvjqumfy4invx"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_xc11y"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_xc11y")
|
||||||
|
region = Rect2(872, 88, 517, 383)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_map_1Right.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_map_1Right.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cdygjqy3a0ugw"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_lupqk"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_lupqk")
|
||||||
|
region = Rect2(1440, 278, 283, 195)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_map_2.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_map_2.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ddbjvbjpd6nsr"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_m0mgu"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_m0mgu")
|
||||||
|
region = Rect2(1324, 714, 437, 371)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_meat_knockDoor.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_meat_knockDoor.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bds1oni7dlapf"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_5rkoq"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_5rkoq")
|
||||||
|
region = Rect2(226, 253, 101, 53)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_meat_stopMouse.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_meat_stopMouse.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://kiyw03vc3w12"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_4wotv"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_4wotv")
|
||||||
|
region = Rect2(364, 77, 108, 59)
|
||||||
|
filter_clip = true
|
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://clxnk1kujhg3t"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_01jll"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_01jll")
|
||||||
|
region = Rect2(86, 317, 102, 58)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_road_address.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_road_address.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://b87majbgamcqt"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_hneqy"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_hneqy")
|
||||||
|
region = Rect2(1381, 563, 391, 97)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_shoe_giveToMouce.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_shoe_giveToMouce.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bvdpo5k83tb6s"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_hjq36"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_hjq36")
|
||||||
|
region = Rect2(1186, 780, 121, 79)
|
||||||
|
filter_clip = true
|
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bjn4oo0fieim6"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_cu3l7"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_cu3l7")
|
||||||
|
region = Rect2(482, 170, 199, 89)
|
||||||
|
filter_clip = true
|
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ccm0eg5apjro0"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_7ebxh"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_7ebxh")
|
||||||
|
region = Rect2(1466, 166, 168, 49)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_xchan_isSheGohst.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_xchan_isSheGohst.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bs2aus63tgwv1"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_jin8p"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_jin8p")
|
||||||
|
region = Rect2(93, 916, 200, 127)
|
||||||
|
filter_clip = true
|
8
asset/art/ui/note/c02_slices/c02_xchan_sheKnowsMe.tres
Normal file
8
asset/art/ui/note/c02_slices/c02_xchan_sheKnowsMe.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dqg5ha6sg60ti"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://drijblepnhhsw" path="res://asset/art/ui/note/c02_slices.png" id="1_a3qry"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
atlas = ExtResource("1_a3qry")
|
||||||
|
region = Rect2(882, 571, 462, 93)
|
||||||
|
filter_clip = true
|
@ -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_isSheGohst", "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 } }] }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@ -77,4 +77,6 @@ func set_chapter_if_greater(c : int) -> void:
|
|||||||
if current_chapter >= c:
|
if current_chapter >= c:
|
||||||
return
|
return
|
||||||
print("[AssembledArchive] set_chapter_if_greater: " + str(c))
|
print("[AssembledArchive] set_chapter_if_greater: " + str(c))
|
||||||
current_chapter = c
|
current_chapter = c
|
||||||
|
# 笔记也进入下一章
|
||||||
|
EventManager.set_stage_if_greater("handnote_chapter_stage", c)
|
@ -8,13 +8,18 @@ class_name Event2D
|
|||||||
# 前置依赖事件,为空时意味着无前置事件
|
# 前置依赖事件,为空时意味着无前置事件
|
||||||
@export var pre_event: StringName
|
@export var pre_event: StringName
|
||||||
@export var hide_if_pre_on_stage: Array[int] = []
|
@export var hide_if_pre_on_stage: Array[int] = []
|
||||||
@export_tool_button("创建脚本") var create_script := _create_script
|
@export_tool_button("创建脚本") var create_script = _create_script
|
||||||
|
@export_tool_button("复制 greater setter") var copy_greater_setter = _copy_greater_setter
|
||||||
|
@export_tool_button("复制 setter") var copy_setter = _copy_setter
|
||||||
|
@export_tool_button("复制 getter") var copy_getter = _copy_getter
|
||||||
|
|
||||||
var prev_stage := 0
|
var prev_stage := 0
|
||||||
var stage := 0
|
var stage := 0
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
if event != &"":
|
||||||
|
name = "Event_" + event
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
if event == &"":
|
if event == &"":
|
||||||
@ -87,3 +92,20 @@ func _create_script():
|
|||||||
ResourceSaver.save(script, path)
|
ResourceSaver.save(script, path)
|
||||||
set_script(load(path))
|
set_script(load(path))
|
||||||
print("[Event2D] Script created: %s" % path)
|
print("[Event2D] Script created: %s" % path)
|
||||||
|
|
||||||
|
|
||||||
|
func _copy_greater_setter():
|
||||||
|
var text = 'EventManager.set_stage_if_greater(&"%s", 1)' % event
|
||||||
|
DisplayServer.clipboard_set(text)
|
||||||
|
print("Copied event greater setter: %s" % text)
|
||||||
|
|
||||||
|
func _copy_setter():
|
||||||
|
var text = 'EventManager.set_stage(&"%s", 1)' % event
|
||||||
|
DisplayServer.clipboard_set(text)
|
||||||
|
print("Copied event setter: %s" % text)
|
||||||
|
|
||||||
|
|
||||||
|
func _copy_getter():
|
||||||
|
var text = 'EventManager.get_stage(&"%s")' % event
|
||||||
|
DisplayServer.clipboard_set(text)
|
||||||
|
print("Copied event getter: %s" % text)
|
||||||
|
@ -20,10 +20,16 @@ func set_stage(event_name: StringName, stage := 1) -> void:
|
|||||||
# print before emit
|
# print before emit
|
||||||
print("[EventManager] Stage updated: %s, stage: %s" % [event_name, stage])
|
print("[EventManager] Stage updated: %s, stage: %s" % [event_name, stage])
|
||||||
stage_updated.emit(event_name, stage)
|
stage_updated.emit(event_name, stage)
|
||||||
# 如果是 handnote_stage,玩家进行记笔记动作
|
# 如果是 handnote_ 事件,玩家进行记笔记动作
|
||||||
if event_name == "handnote_stage" and SceneManager.get_player().character.begins_with("吕萍"):
|
if (
|
||||||
SceneManager.lock_player(3.0, 16, true)
|
event_name.begins_with("handnote_")
|
||||||
if stage == 1:
|
and SceneManager.get_player().character.begins_with("吕萍")
|
||||||
|
):
|
||||||
|
# 0 初始化隐藏,1 开始显示,2 划掉,3 结束隐藏
|
||||||
|
if stage == 1 or stage == 2:
|
||||||
|
SceneManager.lock_player(3.0, 16, true)
|
||||||
|
# 第一次记笔记,提示查看笔记
|
||||||
|
if event_name == &"handnote_c02_road_address":
|
||||||
SceneManager.pop_center_notification(tr("ui_check_note"))
|
SceneManager.pop_center_notification(tr("ui_check_note"))
|
||||||
|
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ func pop_os_with_str(translation_key: String) -> void:
|
|||||||
if player:
|
if player:
|
||||||
var msg = tr(translation_key).replace("<br>", "\n")
|
var msg = tr(translation_key).replace("<br>", "\n")
|
||||||
var lines = await Util.generate_lines(msg)
|
var lines = await Util.generate_lines(msg)
|
||||||
player.pop_os(lines)
|
await player.pop_os(lines)
|
||||||
else:
|
else:
|
||||||
printerr("Player node not found")
|
printerr("Player node not found")
|
||||||
|
|
||||||
|
@ -117,8 +117,7 @@ func _on_interacted() -> void:
|
|||||||
return
|
return
|
||||||
if icount == 0 and first_interact_os_key:
|
if icount == 0 and first_interact_os_key:
|
||||||
sign_mark.display_sign = false
|
sign_mark.display_sign = false
|
||||||
SceneManager.pop_os_with_str(first_interact_os_key)
|
await SceneManager.pop_os_with_str(first_interact_os_key)
|
||||||
await SceneManager.get_player().os_finished
|
|
||||||
sign_mark.display_sign = true
|
sign_mark.display_sign = true
|
||||||
_do_action()
|
_do_action()
|
||||||
|
|
||||||
|
@ -154,8 +154,7 @@ func _pre_interacted() -> void:
|
|||||||
SceneManager.lock_player(0, action_key)
|
SceneManager.lock_player(0, action_key)
|
||||||
if icount == 0 and first_interact_os_key:
|
if icount == 0 and first_interact_os_key:
|
||||||
sign_mark.display_sign = false
|
sign_mark.display_sign = false
|
||||||
SceneManager.pop_os_with_str(first_interact_os_key)
|
await SceneManager.pop_os_with_str(first_interact_os_key)
|
||||||
await SceneManager.get_player().os_finished
|
|
||||||
sign_mark.display_sign = true
|
sign_mark.display_sign = true
|
||||||
_on_interacted()
|
_on_interacted()
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
@ -180,8 +180,8 @@ func _reset_archive() -> void:
|
|||||||
_setup_ground_data(debug_ground_data, ground)
|
_setup_ground_data(debug_ground_data, ground)
|
||||||
archive.ground_archives[ground.scene_name].data = debug_ground_data
|
archive.ground_archives[ground.scene_name].data = debug_ground_data
|
||||||
# 重置 event 状态
|
# 重置 event 状态
|
||||||
# EventManager.set_stage(&"c02_burning_end_stage", 2)
|
# EventManager.set_stage(&"xxx", 2)
|
||||||
# EventManager.set_stage_if_greater("handnote_stage", 5)
|
# EventManager.set_stage_if_greater(&"xxx", 5)
|
||||||
var event_setter_regx = RegEx.create_from_string(r'EventManager.set_stage\(.?"(.+)"') as RegEx
|
var event_setter_regx = RegEx.create_from_string(r'EventManager.set_stage\(.?"(.+)"') as RegEx
|
||||||
var event_getter_regx = RegEx.create_from_string(r'EventManager.get_stage\(.?"(.+)"') as RegEx
|
var event_getter_regx = RegEx.create_from_string(r'EventManager.get_stage\(.?"(.+)"') as RegEx
|
||||||
var event_set_greater_regx = (
|
var event_set_greater_regx = (
|
||||||
@ -276,8 +276,8 @@ func _auto_setup_node_reference():
|
|||||||
script.source_code = "\n".join(code_lines)
|
script.source_code = "\n".join(code_lines)
|
||||||
ResourceSaver.save(script)
|
ResourceSaver.save(script)
|
||||||
print("auto reference done.")
|
print("auto reference done.")
|
||||||
print("skipped existing_vars:", existing_vars.size(), existing_vars)
|
print_rich("skipped existing_vars:[color=cyan]", existing_vars.size(), existing_vars)
|
||||||
print("created_vars:", created_vars.size(), created_vars)
|
print_rich("created_vars:[color=green]", created_vars.size(), created_vars)
|
||||||
|
|
||||||
|
|
||||||
func _read_existing_vars(code_lines: PackedStringArray) -> Dictionary:
|
func _read_existing_vars(code_lines: PackedStringArray) -> Dictionary:
|
||||||
|
@ -91,8 +91,7 @@ func seller_interacted():
|
|||||||
SceneManager.enable_prop_item_silently("prop_信碎片2")
|
SceneManager.enable_prop_item_silently("prop_信碎片2")
|
||||||
await Util.wait(1.5)
|
await Util.wait(1.5)
|
||||||
$"报童音效".play()
|
$"报童音效".play()
|
||||||
SceneManager.pop_os_with_str("c01_s07_获得报纸")
|
await SceneManager.pop_os_with_str("c01_s07_获得报纸")
|
||||||
await SceneManager.get_player().os_finished
|
|
||||||
# 播放获得动画
|
# 播放获得动画
|
||||||
SceneManager.enable_prop_item("prop_信碎片2")
|
SceneManager.enable_prop_item("prop_信碎片2")
|
||||||
SceneManager.release_player()
|
SceneManager.release_player()
|
||||||
|
@ -20,10 +20,8 @@ func _ready() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_ground_ready() -> void:
|
func _on_ground_ready() -> void:
|
||||||
SceneManager.pop_os_with_str("c02_s01_下黄包车")
|
await SceneManager.pop_os_with_str("c02_s01_下黄包车")
|
||||||
await SceneManager.get_player().os_finished
|
EventManager.set_stage_if_greater(&"handnote_c02_road_address", 1)
|
||||||
EventManager.set_stage_if_greater("handnote_stage", 1)
|
|
||||||
|
|
||||||
# func _give_letter() -> void:
|
# func _give_letter() -> void:
|
||||||
# set_data("received_letter", true)
|
# set_data("received_letter", true)
|
||||||
# SceneManager.enable_prop_item("prop_令牌")
|
# SceneManager.enable_prop_item("prop_令牌")
|
||||||
|
@ -108,6 +108,9 @@ func _on_blink_finished(blink_sprite):
|
|||||||
|
|
||||||
|
|
||||||
func _on_music_box_exited(_arg):
|
func _on_music_box_exited(_arg):
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_musicbox_needPuppet", 1)
|
||||||
|
if 2 <= EventManager.get_stage(&"c02_musicbox_stage"):
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_musicbox_needPuppet", 2)
|
||||||
if 4 <= EventManager.get_stage(&"c02_musicbox_stage"):
|
if 4 <= EventManager.get_stage(&"c02_musicbox_stage"):
|
||||||
_display_paper_man(false)
|
_display_paper_man(false)
|
||||||
# _display_paper_man(true)
|
# _display_paper_man(true)
|
||||||
|
@ -110,7 +110,6 @@ debug_ground_data = Dictionary[String, Variant]({
|
|||||||
"interacted_times": 0
|
"interacted_times": 0
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
auto_ref_type = PackedStringArray("Ambush2D", "Inspectable2D", "Closeup2D", "Note2D", "Interactable2D", "Pickable2D", "Event2D", "Sprite2D", "ProAnimatedSprite2D", "AnimatedSprite2D", "Sfx", "Sfx2D", "VibeSfx", "PointLight2D", "Area2D", "MainPlayer", "CameraFocusMarker")
|
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="冷飕飕Sfx" parent="Ground/AnimationPlayer" index="0" instance=ExtResource("3_fvldj")]
|
[node name="冷飕飕Sfx" parent="Ground/AnimationPlayer" index="0" instance=ExtResource("3_fvldj")]
|
||||||
|
@ -129,6 +129,7 @@ func cg_end() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_gate_failed() -> void:
|
func _on_gate_failed() -> void:
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_gate_chain", 1)
|
||||||
if not ArchiveManager.get_global_value(&"c02_open_gate_first_failed"):
|
if not ArchiveManager.get_global_value(&"c02_open_gate_first_failed"):
|
||||||
ArchiveManager.set_global_entry(&"c02_open_gate_first_failed", true)
|
ArchiveManager.set_global_entry(&"c02_open_gate_first_failed", true)
|
||||||
SceneManager.pop_os_with_str("c02_s03_铁门")
|
SceneManager.pop_os_with_str("c02_s03_铁门")
|
||||||
@ -136,7 +137,8 @@ func _on_gate_failed() -> void:
|
|||||||
|
|
||||||
func _on_gate_interacted() -> void:
|
func _on_gate_interacted() -> void:
|
||||||
gate.get_node("Wall/CollisionShape2D").disabled = true
|
gate.get_node("Wall/CollisionShape2D").disabled = true
|
||||||
EventManager.set_stage_if_greater("handnote_stage", 3)
|
EventManager.set_stage_if_greater(&"handnote_c02_gate_chain", 2)
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_map_1Right", 1)
|
||||||
|
|
||||||
|
|
||||||
func _on_knock_exit(arg):
|
func _on_knock_exit(arg):
|
||||||
@ -185,7 +187,8 @@ func eavesdrop() -> void:
|
|||||||
SceneManager.player_action(14, true)
|
SceneManager.player_action(14, true)
|
||||||
ArchiveManager.set_global_entry(&"c02_eavesdrop_finished", true)
|
ArchiveManager.set_global_entry(&"c02_eavesdrop_finished", true)
|
||||||
await Util.wait(1.5)
|
await Util.wait(1.5)
|
||||||
SceneManager.pop_os_with_str("c02_偷听李癞对话后")
|
await SceneManager.pop_os_with_str("c02_偷听李癞对话后")
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_meat_knockDoor", 1)
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
|
|
||||||
|
@ -298,7 +298,6 @@ debug_global_data = Dictionary[String, Variant]({
|
|||||||
"c02_the_blind_room_unlocked": false,
|
"c02_the_blind_room_unlocked": false,
|
||||||
"c02_watched_the_well": false,
|
"c02_watched_the_well": false,
|
||||||
"enabled_items": ["prop_火柴", "prop_院长的信", "prop_银元"],
|
"enabled_items": ["prop_火柴", "prop_院长的信", "prop_银元"],
|
||||||
"handnote_stage": 0,
|
|
||||||
"player_x": 2030.0
|
"player_x": 2030.0
|
||||||
})
|
})
|
||||||
debug_ground_data = Dictionary[String, Variant]({
|
debug_ground_data = Dictionary[String, Variant]({
|
||||||
@ -355,7 +354,6 @@ debug_ground_data = Dictionary[String, Variant]({
|
|||||||
"interacted_times": 0
|
"interacted_times": 0
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
auto_ref_type = PackedStringArray("Ambush2D", "Inspectable2D", "Closeup2D", "Note2D", "Interactable2D", "Pickable2D", "Event2D", "Sprite2D", "ProAnimatedSprite2D", "AnimatedSprite2D", "Sfx", "Sfx2D", "VibeSfx", "PointLight2D", "Area2D", "MainPlayer", "CameraFocusMarker")
|
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="Sfx闷雷" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="Sfx闷雷" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
@ -58,10 +58,9 @@ func _on_closeup_tin_coin_exited(arg = null):
|
|||||||
await Util.wait(0.5)
|
await Util.wait(0.5)
|
||||||
SceneManager.enable_prop_item("prop_锡箔元宝")
|
SceneManager.enable_prop_item("prop_锡箔元宝")
|
||||||
|
|
||||||
|
|
||||||
func _on_first_read(_arg) -> void:
|
func _on_first_read(_arg) -> void:
|
||||||
SceneManager.pop_os_with_str("c02_保卫科花名册首次互动结束")
|
await SceneManager.pop_os_with_str("c02_保卫科花名册首次互动结束")
|
||||||
|
EventManager.set_stage(&"handnote_c02_list_namesAndGoal", 1)
|
||||||
|
|
||||||
func xiaochan_disappear():
|
func xiaochan_disappear():
|
||||||
#TODO
|
#TODO
|
||||||
|
@ -47,9 +47,14 @@ data = {
|
|||||||
}
|
}
|
||||||
debug_global_data = Dictionary[String, Variant]({
|
debug_global_data = Dictionary[String, Variant]({
|
||||||
"c02_tin_coin_taken": 0,
|
"c02_tin_coin_taken": 0,
|
||||||
"enabled_items": ["prop_火柴", "prop_院长的信", "prop_银元"]
|
"enabled_items": ["prop_火柴", "prop_院长的信", "prop_银元"],
|
||||||
|
"handnote_c02_list_namesAndGoal": 0,
|
||||||
|
"player_x": 30.0
|
||||||
})
|
})
|
||||||
debug_ground_data = Dictionary[String, Variant]({
|
debug_ground_data = Dictionary[String, Variant]({
|
||||||
|
"Ambush进门看到小蝉": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
"AnimationPlayer": {
|
"AnimationPlayer": {
|
||||||
"oneshot_animation_played": false,
|
"oneshot_animation_played": false,
|
||||||
"tin_coin_collected": false
|
"tin_coin_collected": false
|
||||||
|
@ -14,6 +14,7 @@ func _ready() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_ground_ready() -> void:
|
func _on_ground_ready() -> void:
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_map_1Left", 1)
|
||||||
# 粘鼠游戏
|
# 粘鼠游戏
|
||||||
if ArchiveManager.get_global_value(&"c02_meat_dropping"):
|
if ArchiveManager.get_global_value(&"c02_meat_dropping"):
|
||||||
# 肉掉落,检查粘鼠板是否启用
|
# 肉掉落,检查粘鼠板是否启用
|
||||||
@ -54,7 +55,8 @@ func mouse_pick_meat() -> void:
|
|||||||
var sprite = $"../DeployLayer/老鼠叼肉"
|
var sprite = $"../DeployLayer/老鼠叼肉"
|
||||||
sprite.play()
|
sprite.play()
|
||||||
await sprite.animation_finished
|
await sprite.animation_finished
|
||||||
SceneManager.pop_os_with_str("c02_敲门_老鼠叼肉")
|
await SceneManager.pop_os_with_str("c02_敲门_老鼠叼肉")
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_meat_stopMouse", 1)
|
||||||
|
|
||||||
|
|
||||||
func _on_madman_interacted() -> void:
|
func _on_madman_interacted() -> void:
|
||||||
@ -90,8 +92,11 @@ func wood_puppet() -> void:
|
|||||||
closeup.display()
|
closeup.display()
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
await closeup.exit
|
await closeup.exit
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_xchan_sheKnowsMe", 1)
|
||||||
$"Sfx记忆闪回音效".easing_kill()
|
$"Sfx记忆闪回音效".easing_kill()
|
||||||
|
|
||||||
|
|
||||||
func bucket_meat() -> void:
|
func bucket_meat() -> void:
|
||||||
SceneManager.enable_prop_item("prop_新鲜的肉")
|
SceneManager.enable_prop_item("prop_新鲜的肉")
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_meat_stopMouse", 2)
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_meat_knockDoor", 2)
|
@ -151,7 +151,6 @@ debug_ground_data = Dictionary[String, Variant]({
|
|||||||
"picked": false
|
"picked": false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
auto_ref_type = PackedStringArray("Ambush2D", "Inspectable2D", "Closeup2D", "Note2D", "Interactable2D", "Pickable2D", "Event2D", "Sprite2D", "ProAnimatedSprite2D", "AnimatedSprite2D", "Sfx", "Sfx2D", "VibeSfx", "PointLight2D", "Area2D", "MainPlayer", "CameraFocusMarker")
|
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
@ -20,6 +20,7 @@ var c02_final_layer
|
|||||||
|
|
||||||
|
|
||||||
func _on_ground_ready() -> void:
|
func _on_ground_ready() -> void:
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_map_2", 1)
|
||||||
c02_final_layer = $"../DeployLayer/c02_final"
|
c02_final_layer = $"../DeployLayer/c02_final"
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -46,9 +47,9 @@ func _on_ground_ready() -> void:
|
|||||||
mice_hole.enabled = false
|
mice_hole.enabled = false
|
||||||
gas_light_upon_hole.lighted.connect(func():
|
gas_light_upon_hole.lighted.connect(func():
|
||||||
mice_hole.enabled = true
|
mice_hole.enabled = true
|
||||||
Util.timer(1.5,
|
await Util.wait(1.5)
|
||||||
SceneManager.pop_os_with_str.bind("c02_二楼血脚印")
|
await SceneManager.pop_os_with_str("c02_二楼血脚印")
|
||||||
)
|
EventManager.set_stage_if_greater(&"handnote_c02_shoe_giveToMouce", 1)
|
||||||
)
|
)
|
||||||
|
|
||||||
closeup_ball = $"../DeployLayer/Closeup弹珠游戏" as Closeup2D
|
closeup_ball = $"../DeployLayer/Closeup弹珠游戏" as Closeup2D
|
||||||
@ -86,6 +87,7 @@ func _on_mice_hole_interacted():
|
|||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
if mice_hole.interacted_times >= 2:
|
if mice_hole.interacted_times >= 2:
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_shoe_giveToMouce", 2)
|
||||||
# 触发疯子撞墙,疯子在一楼内侧过道中消失
|
# 触发疯子撞墙,疯子在一楼内侧过道中消失
|
||||||
ArchiveManager.set_global_entry(&"c02_madman_hitwall", true)
|
ArchiveManager.set_global_entry(&"c02_madman_hitwall", true)
|
||||||
ArchiveManager.set_global_entry(&"c02_s02_mouse_push_shoe", true)
|
ArchiveManager.set_global_entry(&"c02_s02_mouse_push_shoe", true)
|
||||||
@ -176,6 +178,5 @@ func _on_exit_final_show(_arg):
|
|||||||
SceneManager.release_player()
|
SceneManager.release_player()
|
||||||
# 1: 牵手跑结束; 2: 谢幕演出结束
|
# 1: 牵手跑结束; 2: 谢幕演出结束
|
||||||
EventManager.set_stage(&"c02_burning_end_stage", 2)
|
EventManager.set_stage(&"c02_burning_end_stage", 2)
|
||||||
EventManager.set_stage_if_greater("handnote_stage", 5)
|
|
||||||
# TODO 小蝉上楼后开启第二章
|
# TODO 小蝉上楼后开启第二章
|
||||||
ArchiveManager.archive.set_chapter_if_greater(3)
|
ArchiveManager.archive.set_chapter_if_greater(3)
|
||||||
|
@ -858,7 +858,6 @@ debug_global_data = Dictionary[String, Variant]({
|
|||||||
"c02_s02_mouse_push_shoe": false,
|
"c02_s02_mouse_push_shoe": false,
|
||||||
"c02_the_blind_room_unlocked": true,
|
"c02_the_blind_room_unlocked": true,
|
||||||
"enabled_items": ["prop_火柴", "prop_院长的信", "prop_弹珠"],
|
"enabled_items": ["prop_火柴", "prop_院长的信", "prop_弹珠"],
|
||||||
"handnote_stage": 0,
|
|
||||||
"player_x": 30.0
|
"player_x": 30.0
|
||||||
})
|
})
|
||||||
debug_ground_data = Dictionary[String, Variant]({
|
debug_ground_data = Dictionary[String, Variant]({
|
||||||
@ -893,7 +892,6 @@ debug_ground_data = Dictionary[String, Variant]({
|
|||||||
"interacted_times": 0
|
"interacted_times": 0
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
auto_ref_type = PackedStringArray("Ambush2D", "Inspectable2D", "Closeup2D", "Note2D", "Interactable2D", "Pickable2D", "Event2D", "Sprite2D", "ProAnimatedSprite2D", "AnimatedSprite2D", "Sfx", "Sfx2D", "VibeSfx", "PointLight2D", "Area2D", "MainPlayer", "CameraFocusMarker")
|
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
@ -1186,20 +1184,20 @@ texture = ExtResource("37_osg51")
|
|||||||
collision_width_and_x = Vector2(150, 0)
|
collision_width_and_x = Vector2(150, 0)
|
||||||
hook_method = "glimpse_hide_out"
|
hook_method = "glimpse_hide_out"
|
||||||
|
|
||||||
[node name="Event2D叼纸小猫" type="Node2D" parent="Ground/DeployLayer" index="19"]
|
[node name="Event_c02_ball_game_stage" type="Node2D" parent="Ground/DeployLayer" index="19"]
|
||||||
position = Vector2(164, 42)
|
position = Vector2(164, 42)
|
||||||
script = ExtResource("35_h3h1a")
|
script = ExtResource("35_h3h1a")
|
||||||
event = &"c02_ball_game_stage"
|
event = &"c02_ball_game_stage"
|
||||||
hide_if_on_stage = Array[int]([0, 1, 2, 4])
|
hide_if_on_stage = Array[int]([0, 1, 2, 4])
|
||||||
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
|
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
|
||||||
|
|
||||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D叼纸小猫"]
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event_c02_ball_game_stage"]
|
||||||
position = Vector2(0, 15)
|
position = Vector2(0, 15)
|
||||||
sprite_frames = ExtResource("10_och2w")
|
sprite_frames = ExtResource("10_och2w")
|
||||||
animation = &"叼纸小猫坐着呼吸"
|
animation = &"叼纸小猫坐着呼吸"
|
||||||
autoplay = "叼纸小猫坐着呼吸"
|
autoplay = "叼纸小猫坐着呼吸"
|
||||||
|
|
||||||
[node name="Pickable小猫纸条" parent="Ground/DeployLayer/Event2D叼纸小猫" instance=ExtResource("36_3u30v")]
|
[node name="Pickable小猫纸条" parent="Ground/DeployLayer/Event_c02_ball_game_stage" instance=ExtResource("36_3u30v")]
|
||||||
position = Vector2(-3, 2)
|
position = Vector2(-3, 2)
|
||||||
prop_key = "prop_小猫纸条"
|
prop_key = "prop_小猫纸条"
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@ func _on_flyer_exit(arg):
|
|||||||
if arg:
|
if arg:
|
||||||
set_data("flyer_shaven", true)
|
set_data("flyer_shaven", true)
|
||||||
take_off_flyer()
|
take_off_flyer()
|
||||||
EventManager.set_stage_if_greater("handnote_stage", 2)
|
|
||||||
|
|
||||||
|
|
||||||
func take_off_flyer(immediatelly = false):
|
func take_off_flyer(immediatelly = false):
|
||||||
@ -39,6 +38,7 @@ func take_off_flyer(immediatelly = false):
|
|||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_property(flyer, "modulate:a", 0.0, 1.0)
|
tween.tween_property(flyer, "modulate:a", 0.0, 1.0)
|
||||||
await tween.finished
|
await tween.finished
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_hand_requireCoin", 1)
|
||||||
else:
|
else:
|
||||||
flyer.visible = false
|
flyer.visible = false
|
||||||
var hand = $"../DeployLayer/小手讨东西"
|
var hand = $"../DeployLayer/小手讨东西"
|
||||||
|
@ -24,6 +24,7 @@ var boxcat_portal: Portal2D
|
|||||||
|
|
||||||
|
|
||||||
func _on_ground_ready() -> void:
|
func _on_ground_ready() -> void:
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_split_illusionSpace", 1)
|
||||||
color_mask = $"../BGSprite2D/ColorMask"
|
color_mask = $"../BGSprite2D/ColorMask"
|
||||||
ambush_eavesdrop = $"../DeployLayer/Ambush偷听"
|
ambush_eavesdrop = $"../DeployLayer/Ambush偷听"
|
||||||
ambush_lookback = $"../DeployLayer/Ambush回看洞口"
|
ambush_lookback = $"../DeployLayer/Ambush回看洞口"
|
||||||
|
@ -63,6 +63,7 @@ func _on_ground_ready() -> void:
|
|||||||
xiao_chan_interactable.enabled = false
|
xiao_chan_interactable.enabled = false
|
||||||
xiao_chan_sprite.visible = false
|
xiao_chan_sprite.visible = false
|
||||||
head_cover_closeup.exit.connect(func(_arg):
|
head_cover_closeup.exit.connect(func(_arg):
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_xchan_giveHerPuppet", 1)
|
||||||
head_cover_closeup.hide()
|
head_cover_closeup.hide()
|
||||||
head_cover_closeup.enabled = false
|
head_cover_closeup.enabled = false
|
||||||
xiao_chan_interactable.enabled = true
|
xiao_chan_interactable.enabled = true
|
||||||
@ -122,6 +123,8 @@ func _on_xiao_chan_interacted() -> void:
|
|||||||
xiao_chan_sprite.animation_finished.connect(func():
|
xiao_chan_sprite.animation_finished.connect(func():
|
||||||
create_tween().tween_property(xiao_chan_sprite, "modulate:a", 0.0, 1.0)
|
create_tween().tween_property(xiao_chan_sprite, "modulate:a", 0.0, 1.0)
|
||||||
counter.enabled = true
|
counter.enabled = true
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_xchan_sheKnowsMe", 2)
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_xchan_giveHerPuppet", 2)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -144,6 +147,7 @@ var pushing_counter = false:
|
|||||||
var counter_pushed_out = false
|
var counter_pushed_out = false
|
||||||
var walking = false
|
var walking = false
|
||||||
|
|
||||||
|
|
||||||
func _on_counter_interacted():
|
func _on_counter_interacted():
|
||||||
var player = SceneManager.get_player() as MainPlayer
|
var player = SceneManager.get_player() as MainPlayer
|
||||||
if pushing_counter:
|
if pushing_counter:
|
||||||
|
@ -122,7 +122,6 @@ debug_ground_data = Dictionary[String, Variant]({
|
|||||||
"interacted_times": 1
|
"interacted_times": 1
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
auto_ref_type = PackedStringArray("Ambush2D", "Inspectable2D", "Closeup2D", "Note2D", "Interactable2D", "Pickable2D", "Event2D", "Sprite2D", "ProAnimatedSprite2D", "AnimatedSprite2D", "Sfx", "Sfx2D", "VibeSfx", "PointLight2D", "Area2D", "MainPlayer", "CameraFocusMarker")
|
|
||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
[node name="VibeSfx" type="Node" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
@ -66,7 +66,7 @@ var icount: int:
|
|||||||
# 9 小手交互,吓摔倒
|
# 9 小手交互,吓摔倒
|
||||||
SceneManager.lock_player(0, 9, true)
|
SceneManager.lock_player(0, 9, true)
|
||||||
SceneManager.pop_os_with_str("c02_小手出现摔倒")
|
SceneManager.pop_os_with_str("c02_小手出现摔倒")
|
||||||
Util.timer(1.5, $"Sfx摔倒".play)
|
Util.timer(1.5, $"Sfx摔倒".play)
|
||||||
await SceneManager.get_player().animation_finished
|
await SceneManager.get_player().animation_finished
|
||||||
SceneManager.pop_os_with_str("c02_小手是什么鬼")
|
SceneManager.pop_os_with_str("c02_小手是什么鬼")
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
@ -144,6 +144,7 @@ var interacting := false:
|
|||||||
|
|
||||||
var communicating = false
|
var communicating = false
|
||||||
|
|
||||||
|
|
||||||
func _on_interacted() -> void:
|
func _on_interacted() -> void:
|
||||||
if interacting:
|
if interacting:
|
||||||
print("小手 interacting 锁定中")
|
print("小手 interacting 锁定中")
|
||||||
@ -199,7 +200,8 @@ func _on_interacted() -> void:
|
|||||||
# 稍等片刻再给小鞋子
|
# 稍等片刻再给小鞋子
|
||||||
SceneManager.enable_prop_item("prop_小鞋子1")
|
SceneManager.enable_prop_item("prop_小鞋子1")
|
||||||
await SceneManager.get_inspector().quit_and_hidden
|
await SceneManager.get_inspector().quit_and_hidden
|
||||||
SceneManager.pop_os_with_str("c02_锡箔换小鞋子")
|
await SceneManager.pop_os_with_str("c02_锡箔换小鞋子")
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_hand_requireCoin", 2)
|
||||||
var node = get_node("../自动跟随的老鼠") as Node2D
|
var node = get_node("../自动跟随的老鼠") as Node2D
|
||||||
if node:
|
if node:
|
||||||
node.visible = true
|
node.visible = true
|
||||||
@ -227,7 +229,8 @@ func _on_interacted() -> void:
|
|||||||
SceneManager.pop_debug_dialog_info("美术", "小手_老虎钳_hide + 小手_弹珠_show + 小手_弹珠_idle")
|
SceneManager.pop_debug_dialog_info("美术", "小手_老虎钳_hide + 小手_弹珠_show + 小手_弹珠_idle")
|
||||||
await Util.wait(1.5)
|
await Util.wait(1.5)
|
||||||
holding_prop = "prop_弹珠"
|
holding_prop = "prop_弹珠"
|
||||||
EventManager.set_stage_if_greater("handnote_stage", 4)
|
# 换回弹珠后完全结束
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_hand_exchange", 2)
|
||||||
elif id == 0 and key == "prop_弹珠" and not pliers_to_ball:
|
elif id == 0 and key == "prop_弹珠" and not pliers_to_ball:
|
||||||
interacted_success = true
|
interacted_success = true
|
||||||
sfx_success.play()
|
sfx_success.play()
|
||||||
@ -244,3 +247,5 @@ func _on_interacted() -> void:
|
|||||||
sign_mark.invalid_shake(matched_sign_texture, unmatched_sign_texture)
|
sign_mark.invalid_shake(matched_sign_texture, unmatched_sign_texture)
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
interacting = false
|
interacting = false
|
||||||
|
if id == 0:
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_hand_exchange", 1)
|
||||||
|
54
scene/ux/note/note_event.gd
Normal file
54
scene/ux/note/note_event.gd
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
@tool
|
||||||
|
class_name HandnoteEvent2D
|
||||||
|
extends Sprite2D
|
||||||
|
|
||||||
|
# 当前事件
|
||||||
|
@export var event: StringName
|
||||||
|
@export var hide_if_on_stage: Array[int] = []
|
||||||
|
@export_tool_button("复制 greater setter") var copy_greater_setter = _copy_greater_setter
|
||||||
|
@export_tool_button("复制 setter") var copy_setter = _copy_setter
|
||||||
|
@export_tool_button("复制 getter") var copy_getter = _copy_getter
|
||||||
|
|
||||||
|
var stage := 0
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
if event != &"":
|
||||||
|
name = "Event_" + event
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
return
|
||||||
|
stage = EventManager.get_stage(event)
|
||||||
|
if event == &"":
|
||||||
|
printerr("[HandnoteEvent2D] event is not set. continue processing...")
|
||||||
|
refresh_visibility()
|
||||||
|
var blot_out_node = get_node_or_null("BlotOut")
|
||||||
|
if blot_out_node:
|
||||||
|
# 0 初始化隐藏,1 开始显示,2 划掉,3 结束隐藏
|
||||||
|
blot_out_node.visible = Engine.is_editor_hint() or stage == 2
|
||||||
|
|
||||||
|
|
||||||
|
func refresh_visibility() -> void:
|
||||||
|
var should_show = not stage in hide_if_on_stage
|
||||||
|
if visible != should_show:
|
||||||
|
visible = should_show
|
||||||
|
|
||||||
|
|
||||||
|
###### TOOL BUTTON
|
||||||
|
|
||||||
|
|
||||||
|
func _copy_greater_setter():
|
||||||
|
var text = 'EventManager.set_stage_if_greater(&"%s", 1)' % event
|
||||||
|
DisplayServer.clipboard_set(text)
|
||||||
|
print("Copied event greater setter: %s" % text)
|
||||||
|
|
||||||
|
|
||||||
|
func _copy_setter():
|
||||||
|
var text = 'EventManager.set_stage(&"%s", 1)' % event
|
||||||
|
DisplayServer.clipboard_set(text)
|
||||||
|
print("Copied event setter: %s" % text)
|
||||||
|
|
||||||
|
|
||||||
|
func _copy_getter():
|
||||||
|
var text = 'EventManager.get_stage(&"%s")' % event
|
||||||
|
DisplayServer.clipboard_set(text)
|
||||||
|
print("Copied event getter: %s" % text)
|
1
scene/ux/note/note_event.gd.uid
Normal file
1
scene/ux/note/note_event.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://c5woj7mivdxrh
|
49
scene/ux/note/sync_slices.gd
Normal file
49
scene/ux/note/sync_slices.gd
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
@tool
|
||||||
|
extends HandnoteEvent2D
|
||||||
|
|
||||||
|
@export_range(0, 5) var chapter := 1
|
||||||
|
@export_tool_button("同步") var sync_nodes = _sync_nodes
|
||||||
|
@export var slices_path = "res://asset/art/ui/note/c02_slices/"
|
||||||
|
# 0 初始化隐藏,1 开始显示,2 划掉,3 结束隐藏
|
||||||
|
@export var ignore_stages: Array[int] = [0, 3]
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
return
|
||||||
|
super._ready()
|
||||||
|
visible = stage == chapter
|
||||||
|
|
||||||
|
|
||||||
|
func _sync_nodes() -> void:
|
||||||
|
if not DirAccess.dir_exists_absolute(slices_path):
|
||||||
|
printerr("目录不存在: ", slices_path)
|
||||||
|
return
|
||||||
|
var existed_events = []
|
||||||
|
_travase_existed_nodes(get_tree().edited_scene_root, existed_events)
|
||||||
|
for s in DirAccess.get_files_at(slices_path):
|
||||||
|
var evt = &"handnote_" + s.split(".")[0]
|
||||||
|
if existed_events.has(evt):
|
||||||
|
continue
|
||||||
|
print("[color=green]创建事件节点: ", evt)
|
||||||
|
var event_node = HandnoteEvent2D.new() as HandnoteEvent2D
|
||||||
|
event_node.texture = load(slices_path + s)
|
||||||
|
event_node = event_node
|
||||||
|
event_node.event = evt
|
||||||
|
event_node.hide_if_on_stage = ignore_stages.duplicate()
|
||||||
|
add_child(event_node)
|
||||||
|
event_node.owner = get_tree().edited_scene_root
|
||||||
|
|
||||||
|
|
||||||
|
func _travase_existed_nodes(node, existed_events: Array):
|
||||||
|
if not node:
|
||||||
|
return
|
||||||
|
if node is HandnoteEvent2D:
|
||||||
|
existed_events.append(node.event)
|
||||||
|
print("配置已存在的事件节点: ", node.event)
|
||||||
|
if len(node.hide_if_on_stage) == 0:
|
||||||
|
print_rich("[color=green]设置 hide_if_on_stage: ", ignore_stages)
|
||||||
|
node.hide_if_on_stage = ignore_stages.duplicate()
|
||||||
|
else:
|
||||||
|
print_rich("[color=cyan]已存在 hide_if_on_stage,跳过设置: ", node.hide_if_on_stage)
|
||||||
|
for c in node.get_children():
|
||||||
|
_travase_existed_nodes(c, existed_events)
|
1
scene/ux/note/sync_slices.gd.uid
Normal file
1
scene/ux/note/sync_slices.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://dm8aeml8ndctg
|
@ -1,46 +1,32 @@
|
|||||||
[gd_scene load_steps=13 format=3 uid="uid://cy7wrrsm8e04f"]
|
[gd_scene load_steps=26 format=3 uid="uid://cy7wrrsm8e04f"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bkyg34xfhe60p" path="res://scene/ux/note/ux_note.gd" id="1_e61yw"]
|
[ext_resource type="Script" uid="uid://bkyg34xfhe60p" path="res://scene/ux/note/ux_note.gd" id="1_e61yw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bi7l47cit2xs" path="res://asset/art/ui/ux_panel/完整背景.png" id="2_1ka1m"]
|
[ext_resource type="Texture2D" uid="uid://bi7l47cit2xs" path="res://asset/art/ui/ux_panel/完整背景.png" id="2_1ka1m"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="3_nk0pj"]
|
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="3_nk0pj"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ut4a5gwb4naq" path="res://scene/ux/tabs.tscn" id="4_7vpan"]
|
[ext_resource type="PackedScene" uid="uid://ut4a5gwb4naq" path="res://scene/ux/tabs.tscn" id="4_7vpan"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/ux_panel/小蝶笔记.png" id="5_d1cia"]
|
[ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/ux_panel/小蝶笔记.png" id="5_d1cia"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bv57eyqs03k4y" path="res://asset/art/ui/note/线索笔记内容-29.png" id="6_7vpan"]
|
[ext_resource type="Script" uid="uid://dm8aeml8ndctg" path="res://scene/ux/note/sync_slices.gd" id="5_nk0pj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://blub5hsn6iqit" path="res://asset/art/ui/note/线索笔记内容-30.png" id="6_n8isc"]
|
[ext_resource type="Texture2D" uid="uid://b87majbgamcqt" path="res://asset/art/ui/note/c02_slices/c02_road_address.tres" id="6_dohnv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://beltvxcu7pumi" path="res://asset/art/ui/note/线索笔记内容-31.png" id="7_8rh03"]
|
[ext_resource type="Script" uid="uid://c5woj7mivdxrh" path="res://scene/ux/note/note_event.gd" id="7_nfxph"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ldh387gluo1t" path="res://asset/art/ui/note/线索笔记内容-34.png" id="7_d1cia"]
|
[ext_resource type="Texture2D" uid="uid://bg1rnxsr5of7v" path="res://asset/art/ui/note/c02_slices/c02_list_namesAndGoal.tres" id="8_nfxph"]
|
||||||
[ext_resource type="Texture2D" uid="uid://db1k1t1lc34ut" path="res://asset/art/ui/note/线索笔记内容-32.png" id="8_kiw8q"]
|
[ext_resource type="Texture2D" uid="uid://dvjqumfy4invx" path="res://asset/art/ui/note/c02_slices/c02_map_1Left.tres" id="9_kv812"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://fnbysuck5nj2" path="res://asset/art/ui/note/c02_slices/c02_hand_exchange.tres" id="10_1efbh"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c30s0pieywjpa" path="res://asset/art/ui/note/c02_slices/c02_blotOut.tres" id="11_dohnv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://clxnk1kujhg3t" path="res://asset/art/ui/note/c02_slices/c02_musicbox_needPuppet.tres" id="11_vv1f8"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bds1oni7dlapf" path="res://asset/art/ui/note/c02_slices/c02_meat_knockDoor.tres" id="13_iiemy"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://kiyw03vc3w12" path="res://asset/art/ui/note/c02_slices/c02_meat_stopMouse.tres" id="14_cd76s"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bvdpo5k83tb6s" path="res://asset/art/ui/note/c02_slices/c02_shoe_giveToMouce.tres" id="15_60qdw"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://viyauy3w72bv" path="res://asset/art/ui/note/c02_slices/c02_gate_chain.tres" id="16_c71vy"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cdygjqy3a0ugw" path="res://asset/art/ui/note/c02_slices/c02_map_1Right.tres" id="17_gmufd"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bjn4oo0fieim6" path="res://asset/art/ui/note/c02_slices/c02_split_illusionSpace.tres" id="18_en7n8"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ccm0eg5apjro0" path="res://asset/art/ui/note/c02_slices/c02_xchan_giveHerPuppet.tres" id="19_16oeu"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ddbjvbjpd6nsr" path="res://asset/art/ui/note/c02_slices/c02_map_2.tres" id="20_0me01"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cfrr5118wx6f" path="res://asset/art/ui/note/c02_slices/c02_hand_requireCoin.tres" id="21_x45ak"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dqg5ha6sg60ti" path="res://asset/art/ui/note/c02_slices/c02_xchan_sheKnowsMe.tres" id="22_rkppt"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bs2aus63tgwv1" path="res://asset/art/ui/note/c02_slices/c02_xchan_isSheGohst.tres" id="23_njh4q"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_j3kdg"]
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_j3kdg"]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_7vpan"]
|
|
||||||
script/source = "extends Event2D
|
|
||||||
|
|
||||||
# var prev_stage := 0
|
|
||||||
# var stage := 0
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
super._ready()
|
|
||||||
if stage > 0:
|
|
||||||
get_node(\"../TextureRect\" + str(stage)).visible = true
|
|
||||||
|
|
||||||
func _on_global_stage_updated(e: StringName, s: int):
|
|
||||||
super._on_global_stage_updated(e, s)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_ground_ready(ground: Ground2D):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
func _on_pre_stage_updated():
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
func _on_stage_updated():
|
|
||||||
pass
|
|
||||||
"
|
|
||||||
|
|
||||||
[node name="Note" type="CanvasLayer"]
|
[node name="Note" type="CanvasLayer"]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
script = ExtResource("1_e61yw")
|
script = ExtResource("1_e61yw")
|
||||||
@ -89,69 +75,254 @@ texture = ExtResource("5_d1cia")
|
|||||||
expand_mode = 5
|
expand_mode = 5
|
||||||
stretch_mode = 5
|
stretch_mode = 5
|
||||||
|
|
||||||
[node name="TextureRect1" type="TextureRect" parent="Bag/Book"]
|
[node name="Event_handnote_chapter_stage" type="Sprite2D" parent="Bag/Book"]
|
||||||
visible = false
|
position = Vector2(340, 137)
|
||||||
layout_mode = 1
|
scale = Vector2(0.3, 0.3)
|
||||||
anchors_preset = 15
|
script = ExtResource("5_nk0pj")
|
||||||
anchor_right = 1.0
|
event = &"handnote_chapter_stage"
|
||||||
anchor_bottom = 1.0
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
texture = ExtResource("6_7vpan")
|
|
||||||
expand_mode = 1
|
|
||||||
|
|
||||||
[node name="TextureRect2" type="TextureRect" parent="Bag/Book"]
|
[node name="Event_handnote_c02_road_address" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
|
||||||
visible = false
|
position = Vector2(-493.333, -276.667)
|
||||||
layout_mode = 1
|
texture = ExtResource("6_dohnv")
|
||||||
anchors_preset = 15
|
script = ExtResource("7_nfxph")
|
||||||
anchor_right = 1.0
|
event = &"handnote_c02_road_address"
|
||||||
anchor_bottom = 1.0
|
hide_if_on_stage = Array[int]([0, 3])
|
||||||
grow_horizontal = 2
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
texture = ExtResource("6_n8isc")
|
|
||||||
expand_mode = 1
|
|
||||||
|
|
||||||
[node name="TextureRect3" type="TextureRect" parent="Bag/Book"]
|
[node name="Event_handnote_c02_list_namesAndGoal" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
|
||||||
visible = false
|
position = Vector2(-566.667, -163.333)
|
||||||
layout_mode = 1
|
texture = ExtResource("8_nfxph")
|
||||||
anchors_preset = 15
|
script = ExtResource("7_nfxph")
|
||||||
anchor_right = 1.0
|
event = &"handnote_c02_list_namesAndGoal"
|
||||||
anchor_bottom = 1.0
|
hide_if_on_stage = Array[int]([0, 3])
|
||||||
grow_horizontal = 2
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
texture = ExtResource("7_8rh03")
|
|
||||||
expand_mode = 1
|
|
||||||
|
|
||||||
[node name="TextureRect4" type="TextureRect" parent="Bag/Book"]
|
[node name="Event_handnote_c02_map_1Left" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
|
||||||
visible = false
|
position = Vector2(-660, 250)
|
||||||
layout_mode = 1
|
texture = ExtResource("9_kv812")
|
||||||
anchors_preset = 15
|
script = ExtResource("7_nfxph")
|
||||||
anchor_right = 1.0
|
event = &"handnote_c02_map_1Left"
|
||||||
anchor_bottom = 1.0
|
hide_if_on_stage = Array[int]([0, 3])
|
||||||
grow_horizontal = 2
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
texture = ExtResource("8_kiw8q")
|
|
||||||
expand_mode = 1
|
|
||||||
|
|
||||||
[node name="TextureRect5" type="TextureRect" parent="Bag/Book"]
|
[node name="Event_handnote_c02_hand_exchange" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_map_1Left"]
|
||||||
visible = false
|
position = Vector2(-186.667, 16.6667)
|
||||||
layout_mode = 1
|
texture = ExtResource("10_1efbh")
|
||||||
anchors_preset = 15
|
script = ExtResource("7_nfxph")
|
||||||
anchor_right = 1.0
|
event = &"handnote_c02_hand_exchange"
|
||||||
anchor_bottom = 1.0
|
hide_if_on_stage = Array[int]([0, 3])
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
texture = ExtResource("7_d1cia")
|
|
||||||
expand_mode = 1
|
|
||||||
|
|
||||||
[node name="Event2D" type="Node2D" parent="Bag/Book"]
|
[node name="BlotOut" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_map_1Left/Event_handnote_c02_hand_exchange"]
|
||||||
script = SubResource("GDScript_7vpan")
|
position = Vector2(-16.6663, -20.0001)
|
||||||
metadata/_custom_type_script = "uid://bkkiyk5jkdw4d"
|
scale = Vector2(1.64321, 1.62157)
|
||||||
|
texture = ExtResource("11_dohnv")
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_musicbox_needPuppet" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_map_1Left"]
|
||||||
|
position = Vector2(-153.333, 140)
|
||||||
|
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_map_1Left/Event_handnote_c02_musicbox_needPuppet"]
|
||||||
|
position = Vector2(3.33337, 3.05176e-05)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
texture = ExtResource("11_dohnv")
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_meat_knockDoor" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_map_1Left"]
|
||||||
|
position = Vector2(-40, 53.3333)
|
||||||
|
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_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_stage/Event_handnote_c02_map_1Left"]
|
||||||
|
position = Vector2(160, -80)
|
||||||
|
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_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_gate_chain" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_map_1Left"]
|
||||||
|
position = Vector2(143.333, 136.667)
|
||||||
|
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_map_1Left/Event_handnote_c02_gate_chain"]
|
||||||
|
position = Vector2(0.000396729, 3.33299)
|
||||||
|
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_stage"]
|
||||||
|
position = Vector2(-363.333, 340)
|
||||||
|
texture = ExtResource("17_gmufd")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_map_1Right"
|
||||||
|
hide_if_on_stage = Array[int]([0, 3])
|
||||||
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_split_illusionSpace" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_map_1Right"]
|
||||||
|
position = Vector2(-33.3334, -80)
|
||||||
|
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/Event_handnote_c02_map_1Right"]
|
||||||
|
position = Vector2(50, -56.6666)
|
||||||
|
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_map_1Right/Event_handnote_c02_xchan_giveHerPuppet"]
|
||||||
|
position = Vector2(-0.000321865, -3.3334)
|
||||||
|
rotation = -0.261797
|
||||||
|
scale = Vector2(2, 1.2)
|
||||||
|
texture = ExtResource("11_dohnv")
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_map_2" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
|
||||||
|
position = Vector2(313.333, -143.333)
|
||||||
|
texture = ExtResource("20_0me01")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_map_2"
|
||||||
|
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/Event_handnote_c02_map_2"]
|
||||||
|
position = Vector2(146.667, -3.33331)
|
||||||
|
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_map_2/Event_handnote_c02_hand_requireCoin"]
|
||||||
|
position = Vector2(3.33337, 3.33298)
|
||||||
|
scale = Vector2(1.35575, 1.86951)
|
||||||
|
texture = ExtResource("11_dohnv")
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_shoe_giveToMouce" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage/Event_handnote_c02_map_2"]
|
||||||
|
position = Vector2(-46.6666, -10)
|
||||||
|
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_map_2/Event_handnote_c02_shoe_giveToMouce"]
|
||||||
|
position = Vector2(0.000236511, 3.33301)
|
||||||
|
scale = Vector2(1.35575, 1.86951)
|
||||||
|
texture = ExtResource("11_dohnv")
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_xchan_sheKnowsMe" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage"]
|
||||||
|
position = Vector2(-443.333, -10)
|
||||||
|
texture = ExtResource("22_rkppt")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_xchan_sheKnowsMe"
|
||||||
|
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)
|
||||||
|
texture = ExtResource("23_njh4q")
|
||||||
|
|
||||||
|
[node name="Event_handnote_chapter_stage2" type="Sprite2D" parent="Bag/Book"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(340, 137)
|
||||||
|
scale = Vector2(0.3, 0.3)
|
||||||
|
script = ExtResource("5_nk0pj")
|
||||||
|
chapter = 2
|
||||||
|
slices_path = "res://asset/art/ui/note/c03_slices/"
|
||||||
|
event = &"handnote_chapter_stage"
|
||||||
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_road_address" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage2"]
|
||||||
|
position = Vector2(-493.333, -276.667)
|
||||||
|
texture = ExtResource("6_dohnv")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_road_address"
|
||||||
|
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_stage2"]
|
||||||
|
position = Vector2(-566.667, -163.333)
|
||||||
|
texture = ExtResource("8_nfxph")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_list_namesAndGoal"
|
||||||
|
hide_if_on_stage = Array[int]([0, 3])
|
||||||
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_map_1Left" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage2"]
|
||||||
|
position = Vector2(-660, 250)
|
||||||
|
texture = ExtResource("9_kv812")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_map_1Left"
|
||||||
|
hide_if_on_stage = Array[int]([0, 3])
|
||||||
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_meat_knockDoor" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage2/Event_handnote_c02_map_1Left"]
|
||||||
|
position = Vector2(-40, 53.3333)
|
||||||
|
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_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"]
|
||||||
|
position = Vector2(160, -80)
|
||||||
|
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_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"]
|
||||||
|
position = Vector2(-363.333, 340)
|
||||||
|
texture = ExtResource("17_gmufd")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_map_1Right"
|
||||||
|
hide_if_on_stage = Array[int]([0, 3])
|
||||||
|
metadata/_custom_type_script = "uid://c5woj7mivdxrh"
|
||||||
|
|
||||||
|
[node name="Event_handnote_c02_map_2" type="Sprite2D" parent="Bag/Book/Event_handnote_chapter_stage2"]
|
||||||
|
position = Vector2(313.333, -143.333)
|
||||||
|
texture = ExtResource("20_0me01")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_map_2"
|
||||||
|
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_stage2"]
|
||||||
|
position = Vector2(-443.333, -10)
|
||||||
|
texture = ExtResource("22_rkppt")
|
||||||
|
script = ExtResource("7_nfxph")
|
||||||
|
event = &"handnote_c02_xchan_sheKnowsMe"
|
||||||
|
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_stage2/Event_handnote_c02_xchan_sheKnowsMe"]
|
||||||
|
position = Vector2(96.6663, 26.6666)
|
||||||
|
texture = ExtResource("23_njh4q")
|
||||||
|
|
||||||
[node name="Tabs" parent="Bag" node_paths=PackedStringArray("root") instance=ExtResource("4_7vpan")]
|
[node name="Tabs" parent="Bag" node_paths=PackedStringArray("root") instance=ExtResource("4_7vpan")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
Loading…
Reference in New Issue
Block a user